diff --git a/locales/ar/LC_MESSAGES/messages.po b/locales/ar/LC_MESSAGES/messages.po index c45a4a294..df9deeb12 100644 --- a/locales/ar/LC_MESSAGES/messages.po +++ b/locales/ar/LC_MESSAGES/messages.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2025-12-15 04:00+0000\n" "Last-Translator: HAMDI KHALID \n" "Language-Team: Arabic `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8567,13 +8567,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8581,23 +8588,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8608,21 +8615,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8630,7 +8637,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8638,37 +8645,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8676,7 +8683,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8685,7 +8692,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/ars/LC_MESSAGES/messages.po b/locales/ars/LC_MESSAGES/messages.po index 51f25a758..d4eb49cc4 100644 --- a/locales/ars/LC_MESSAGES/messages.po +++ b/locales/ars/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -4485,8 +4485,8 @@ msgstr "" #: ../source/guides/creating-and-discovering-plugins.rst:167 msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8560,13 +8560,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8574,23 +8581,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8601,21 +8608,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8623,7 +8630,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8631,37 +8638,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8669,7 +8676,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8678,7 +8685,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/cs/LC_MESSAGES/messages.po b/locales/cs/LC_MESSAGES/messages.po index 625528c6e..c63a3788a 100644 --- a/locales/cs/LC_MESSAGES/messages.po +++ b/locales/cs/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2025-10-16 23:52+0000\n" "Last-Translator: Karolína Wallenfelsová \n" "Language-Team: Czech `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8571,13 +8571,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8585,23 +8592,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8612,21 +8619,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8634,7 +8641,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8642,37 +8649,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8680,7 +8687,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8689,7 +8696,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/da/LC_MESSAGES/messages.po b/locales/da/LC_MESSAGES/messages.po index a032f8b6c..71b693166 100644 --- a/locales/da/LC_MESSAGES/messages.po +++ b/locales/da/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2025-10-09 04:07+0000\n" "Last-Translator: Philip Mallegol-Hansen \n" "Language-Team: Danish `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8565,13 +8565,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8579,23 +8586,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8606,21 +8613,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8628,7 +8635,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8636,37 +8643,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8674,7 +8681,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8683,7 +8690,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/de/LC_MESSAGES/messages.po b/locales/de/LC_MESSAGES/messages.po index a8b014c12..7beb0bf9f 100644 --- a/locales/de/LC_MESSAGES/messages.po +++ b/locales/de/LC_MESSAGES/messages.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2026-07-22 20:54+0000\n" "Last-Translator: VfBFan \n" "Language-Team: German `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -9143,13 +9143,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -9157,23 +9164,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -9184,21 +9191,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -9206,7 +9213,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -9214,37 +9221,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -9252,7 +9259,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -9261,7 +9268,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/eo/LC_MESSAGES/messages.po b/locales/eo/LC_MESSAGES/messages.po index e4fbb88e3..fa963d3f0 100644 --- a/locales/eo/LC_MESSAGES/messages.po +++ b/locales/eo/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2025-06-29 12:03+0000\n" "Last-Translator: phlostically \n" "Language-Team: Esperanto ` ." #: ../source/guides/creating-and-discovering-plugins.rst:167 +#, fuzzy +#| msgid "" +#| "Since this specification is part of the :doc:`standard library " +#| "`, most packaging tools other than " +#| "setuptools provide support for defining entry points." msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" "Ĉar ĉi tiu specifo estas parto de la :doc:`norma biblioteko `, multaj iloj krom setuptools subtenas difinadon de " @@ -11071,7 +11076,14 @@ msgstr "" "Ni difinus du taskojn por eldoni al PyPI kaj Prova PyPI respektive kaj " "ekstran taskon por konstrui la distribuajn pakojn." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" @@ -11079,7 +11091,7 @@ msgstr "" "Unue, ni difinas la taskon por konstrui la distribuajn pakojn de via " "projekto kaj konservi ilin por posta uzo:" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -11087,7 +11099,7 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." @@ -11095,7 +11107,7 @@ msgstr "" "Tio elŝutos vian deponejon al la kontinuintegrilo kaj instalos kaj aktivigos " "la plej novan eldonon de Python 3." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" @@ -11104,11 +11116,11 @@ msgstr "" "ekzemplo, ni uzos la pakon ``build``. Do aldonu la jenon al la listo de " "paŝoj:" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "Difini laborfluan taskan medion" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 #, fuzzy #| msgid "" #| "Now, let's add initial setup for our job that will publish to PyPI. It's " @@ -11135,7 +11147,7 @@ msgstr "" "OpenID Connect, kiun la ago ``pypi-publish`` bezonas por sensekreta fidata " "eldonado al PyPI." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." @@ -11143,15 +11155,15 @@ msgstr "" "Tio ankaŭ certigas, ke la PyPI-eldona laborfluo nur ekos, se la aktuala " "enmeto havas etikedon." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "Eldoni la distribuon al PyPI" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "Fine, postmetu la jenajn paŝojn:" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -11162,7 +11174,7 @@ msgstr "" "la distribua pako per la ago `download-artifact`_, ĝi alŝutas la enhavon de " "la dosierujo ``dist/`` al PyPI senkondiĉe." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -11170,11 +11182,11 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "Aparta laborfluo por eldoni al TestPyPI" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" @@ -11182,7 +11194,7 @@ msgstr "" "Nun ripetu tiujn paŝojn, kreante alian taskon por eldonado al la pakindekso " "Prova PyPI sub la sekcio ``jobs``:" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " @@ -11192,20 +11204,20 @@ msgstr "" "necesas, ĉar ĝi laŭfasone ruliĝas post ĉiu enmeto en la ĉefbranĉon kaj ofte " "indikas sanan eldonadan ĉenstablon." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "La plena laborfluo por kontinuaj integrado kaj disponigo" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "Jen alineo pri la plena laborfluo laŭ la ĉi-supra gvidilo." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "Jen fino!" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -11213,7 +11225,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -11222,7 +11234,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/es/LC_MESSAGES/messages.po b/locales/es/LC_MESSAGES/messages.po index 67a0a6894..7cf7dced2 100644 --- a/locales/es/LC_MESSAGES/messages.po +++ b/locales/es/LC_MESSAGES/messages.po @@ -17,7 +17,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2025-12-12 01:00+0000\n" "Last-Translator: Joseph Hale \n" "Language-Team: Spanish `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8964,13 +8964,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8978,23 +8985,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -9005,21 +9012,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -9027,7 +9034,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -9035,37 +9042,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -9073,7 +9080,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -9082,7 +9089,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/fa/LC_MESSAGES/messages.po b/locales/fa/LC_MESSAGES/messages.po index 7e52fee40..64cc3956f 100644 --- a/locales/fa/LC_MESSAGES/messages.po +++ b/locales/fa/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2026-07-30 20:47+0000\n" "Last-Translator: Kamrani \n" "Language-Team: Persian `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8615,13 +8615,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8629,23 +8636,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8656,21 +8663,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8678,7 +8685,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8686,37 +8693,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8724,7 +8731,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8733,7 +8740,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/fil/LC_MESSAGES/messages.po b/locales/fil/LC_MESSAGES/messages.po index eeef52514..c082f0149 100644 --- a/locales/fil/LC_MESSAGES/messages.po +++ b/locales/fil/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2022-11-19 08:28+0000\n" "Last-Translator: RedFurrFox \n" "Language-Team: Filipino `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8566,13 +8566,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8580,23 +8587,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8607,21 +8614,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8629,7 +8636,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8637,37 +8644,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8675,7 +8682,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8684,7 +8691,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/fr/LC_MESSAGES/messages.po b/locales/fr/LC_MESSAGES/messages.po index e77658e81..f77f58de6 100644 --- a/locales/fr/LC_MESSAGES/messages.po +++ b/locales/fr/LC_MESSAGES/messages.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2026-01-20 00:01+0000\n" "Last-Translator: Nathan \n" "Language-Team: French `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8804,13 +8804,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8818,23 +8825,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8845,21 +8852,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8867,7 +8874,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8875,37 +8882,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8913,7 +8920,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8922,7 +8929,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/frc/LC_MESSAGES/messages.po b/locales/frc/LC_MESSAGES/messages.po index dca4a6078..0c92fb2e6 100644 --- a/locales/frc/LC_MESSAGES/messages.po +++ b/locales/frc/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -4485,8 +4485,8 @@ msgstr "" #: ../source/guides/creating-and-discovering-plugins.rst:167 msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8560,13 +8560,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8574,23 +8581,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8601,21 +8608,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8623,7 +8630,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8631,37 +8638,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8669,7 +8676,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8678,7 +8685,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/gl/LC_MESSAGES/messages.po b/locales/gl/LC_MESSAGES/messages.po index 9d7543116..fb96e38c3 100644 --- a/locales/gl/LC_MESSAGES/messages.po +++ b/locales/gl/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -4485,8 +4485,8 @@ msgstr "" #: ../source/guides/creating-and-discovering-plugins.rst:167 msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8560,13 +8560,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8574,23 +8581,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8601,21 +8608,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8623,7 +8630,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8631,37 +8638,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8669,7 +8676,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8678,7 +8685,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/gmh/LC_MESSAGES/messages.po b/locales/gmh/LC_MESSAGES/messages.po index a753f6b58..d5f0d0992 100644 --- a/locales/gmh/LC_MESSAGES/messages.po +++ b/locales/gmh/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -4485,8 +4485,8 @@ msgstr "" #: ../source/guides/creating-and-discovering-plugins.rst:167 msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8560,13 +8560,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8574,23 +8581,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8601,21 +8608,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8623,7 +8630,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8631,37 +8638,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8669,7 +8676,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8678,7 +8685,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/hi/LC_MESSAGES/messages.po b/locales/hi/LC_MESSAGES/messages.po index b79fdcaa3..aaa2eaf93 100644 --- a/locales/hi/LC_MESSAGES/messages.po +++ b/locales/hi/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2024-09-16 10:09+0000\n" "Last-Translator: kumar Shivam \n" "Language-Team: Hindi `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8616,13 +8616,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8630,23 +8637,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8657,21 +8664,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8679,7 +8686,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8687,37 +8694,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8725,7 +8732,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8734,7 +8741,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/id/LC_MESSAGES/messages.po b/locales/id/LC_MESSAGES/messages.po index fbcbfbd0a..3e222a9df 100644 --- a/locales/id/LC_MESSAGES/messages.po +++ b/locales/id/LC_MESSAGES/messages.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2024-10-17 21:16+0000\n" "Last-Translator: oon arfiandwi \n" "Language-Team: Indonesian `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8618,13 +8618,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8632,23 +8639,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8659,21 +8666,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8681,7 +8688,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8689,37 +8696,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8727,7 +8734,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8736,7 +8743,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/ja/LC_MESSAGES/messages.po b/locales/ja/LC_MESSAGES/messages.po index 4e636dcfd..0421fdad5 100644 --- a/locales/ja/LC_MESSAGES/messages.po +++ b/locales/ja/LC_MESSAGES/messages.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" -"PO-Revision-Date: 2026-08-10 20:01+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" +"PO-Revision-Date: 2026-08-23 23:51+0000\n" "Last-Translator: moto kawasaki \n" "Language-Team: Japanese \n" @@ -6057,10 +6057,15 @@ msgstr "" "entry_point>` の全部のセクションに目を通すことをお勧めします。" #: ../source/guides/creating-and-discovering-plugins.rst:167 +#, fuzzy +#| msgid "" +#| "Since this specification is part of the :doc:`standard library " +#| "`, most packaging tools other than " +#| "setuptools provide support for defining entry points." msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" "この仕様は :doc:`標準ライブラリ ` の一部な" "ので、setuptools以外のほとんどのパッケージングツールでもエントリポイントを定" @@ -11632,7 +11637,18 @@ msgstr "" "ければならず、また、配布物のパッケージ群をビルドするための追加のジョブも定義" "しなければなりません。" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" +"ビルドのジョブは、公開のためのジョブとは別にしておきましょう。公開するための" +"ジョブの中で配布物をビルドすることはサポートされていません; 公開するための" +"ジョブは、すでにビルドされた人工物をダウンロードしたりアップロードしたりする" +"だけに留めるべきです。" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" @@ -11640,7 +11656,7 @@ msgstr "" "最初に、あなたのプロジェクトの dist パッケージをビルドして、その後の使用のた" "めに保存するジョブを定義しましょう:" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -11653,7 +11669,7 @@ msgstr "" "GitHub Actions examples`_ がもっと完全な wheel マトリクスレイアウトをお見せし" "ます。" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." @@ -11661,7 +11677,7 @@ msgstr "" "これによって、あなたのリポジトリを CI ランナーにダウンロードして、利用可能な" "最新の Python 3 リリースをインストールしアクティベートすることになります。" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" @@ -11670,11 +11686,11 @@ msgstr "" "できます。この例では、パッケージを ``build`` することになります。ですから、こ" "れをステップリストに加えましょう:" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "ワークフローのジョブ環境を定義する" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -11693,7 +11709,7 @@ msgstr "" "トなしの PyPI への信頼ある公開を実装するために必要となる OpenID Connect の" "トークンを取得することを可能にするものでもあります。" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." @@ -11701,15 +11717,15 @@ msgstr "" "これは、当該コミットがタグ付きである時にだけ PyPI 公開 ワークフ" "ローが起動されることをも保証するものです。" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "PyPI へ配布物を公開する " -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "最後に、次の手続きを末尾に追加しましょう:" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -11721,7 +11737,7 @@ msgstr "" "Action: を使って、 ``dist/`` フォルダの内容物を無条件に PyPI へアップロードし" "ます。" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -11733,11 +11749,11 @@ msgstr "" "に対する :pep:`740` 互換の証明書を生成しアップロードするようになりました。手" "動の署名手順はもはや必要ありません。" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "TestPyPI へ公開 するもうひとつのワークフロー" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" @@ -11745,7 +11761,7 @@ msgstr "" "さて、これらのステップを繰り返して、 ``jobs`` セクションに TestPyPI パッケー" "ジインデックスに公開 するようなもうひとつのジョブを作成しましょう:" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " @@ -11756,22 +11772,22 @@ msgstr "" "いて、使われるとすればリリースの公開 パイプラインが健全であることを" "示すためであることが多いのです。" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "CI/CD ワークフローの全体像" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" "この段落には、上述のガイド文書に従った場合のワークフローの全体像を披露しま" "す。" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "これでできましたよ、皆さん!" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -11784,7 +11800,7 @@ msgstr "" "にテストビルドを提供するためにも、あなたのリリースパイプラインが健全な状態に" "保たれていることを確認するためにも役に立ちます!" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -11799,7 +11815,7 @@ msgstr "" "で :ref:`pypiserver` のような PyPI と互換のあるサーバを使うように構成すること" "かもしれません。" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." @@ -13360,6 +13376,10 @@ msgid "" "optional features (such as an ``all`` extra hosting dependencies from both " "``gui`` and ``cli``):" msgstr "" +"他の追加物を持つような現在のプロジェクトへ参照し返すような追加物を定義するこ" +"ともできます。 (``gui`` と ``cli`` の両方からの依存関係をホストする ``all`` " +"追加物のような) いくつかのオプションの機能を一体化した便利な追加物向けに有用" +"です。" #: ../source/guides/writing-pyproject-toml.rst:189 msgid "" @@ -13367,6 +13387,9 @@ msgid "" "referenced extra's dependencies, which can otherwise fall out of sync after " "a few years of maintenance and bug fixes:" msgstr "" +"一体化された追加物は、参照された先の追加物のそれぞれの依存関係のコピーを手動" +"で維持管理する必要はなく、その代わりに数年後のメンテナンスやバグ修正の時に同" +"期から外れて行くでしょう:" #: ../source/guides/writing-pyproject-toml.rst:203 msgid "" @@ -13374,6 +13397,9 @@ msgid "" "including :ref:`pip`, :ref:`uv`, :ref:`poetry`, :ref:`hatch`, :ref:`pdm` " "and :ref:`pipenv`." msgstr "" +":ref:`pip` ・ :ref:`uv` ・ :ref:`poetry` ・ :ref:`hatch` ・ :ref:`pdm` " +"や :ref:`pipenv` を含む、ほとんどのパッケージ管理機構は、今や、このような種類" +"の追加物をサポートしています。" #: ../source/guides/writing-pyproject-toml.rst:210 #: ../source/specifications/pylock-toml.rst:95 @@ -28945,6 +28971,12 @@ msgid "" "including :ref:`pip`, :ref:`uv`, :ref:`poetry`, :ref:`hatch`, :ref:`pdm` " "and :ref:`pipenv`." msgstr "" +"追加物の中の依存関係指定子は、 (例えば、 ``all = [\"your-project-name[gui, " +"cli]\"]`` のような) 現在のプロジェクトから他の追加物へ自己参照をしても構いま" +"せん。例を見たければ、 :ref:`自己参照用追加物 ` を見" +"て下さい。 :ref:`pip` ・ :ref:`uv` ・ :ref:`poetry` ・ :ref:`hatch` " +"・ :ref:`pdm` や :ref:`pipenv` を含む、ほとんどのパッケージ管理機構は、今や、" +"この種の追加物をサポートしています。" #: ../source/specifications/pyproject-toml.rst:520 msgid "" @@ -29154,9 +29186,10 @@ msgid "" "statically as well as being listed in ``dynamic``, *unless* the key " "represents a list or arbitrary table that can be extended, listed below." msgstr "" -"以下に列挙するように、そのキーが展開可能な知るとないし任意のテーブルでない限" -"り、メタデータ内のあるキーが静的に指定されていて、かつ、 ``dynamic`` にも挙げ" -"てある場合には、ビルド用バックエンドはエラーを発生させなければなりません。" +"以下に列挙するように、そのキーが展開可能な知るとないし任意のテーブル *でない" +"限り* 、メタデータ内のあるキーが静的に指定されていて、かつ、 ``dynamic`` にも" +"挙げてある場合には、ビルド用バックエンドはエラーを発生させなければなりませ" +"ん。" #: ../source/specifications/pyproject-toml.rst:637 msgid "" @@ -29203,12 +29236,20 @@ msgid "" "new keys and MAY append to the values of existing keys (in the case of a " "list), but MUST NOT change or remove the entries given statically." msgstr "" +"ビルド用バックエンドは、その値に *追加* だけを行うことができます; 静的に指定" +"されたエントリについて削除・順序変更や修正を行ってはなりません。 (``optional-" +"dependencies`` や ``entry-points`` のような) テーブルについては、これは、バッ" +"クエンドは新しいキーを追加することや (リストの場合は) 既存のキーにその値を追" +"加することは許されるが、静的に与えられたエントリを修正したり削除したりするこ" +"とは許されないということです。" #: ../source/specifications/pyproject-toml.rst:673 msgid "" "A build back-end SHOULD raise an error if a key is listed in ``dynamic`` and " "it does not support extending that key." msgstr "" +"あるキーが ``dynamic`` に列挙されていて、しかも、そのキーを拡張することをサ" +"ポートしていないなら、ビルド用バックエンドはエラーを発生させるべきです。" #: ../source/specifications/pyproject-toml.rst:680 msgid "Arbitrary tool configuration: the ``[tool]`` table" @@ -29288,12 +29329,17 @@ msgid "" "listed in ``dynamic``, with build back-ends only able to append entries, " "through :pep:`808`." msgstr "" +"2026年5月: ビルド用バックエンドがエントリを追加することしかできないという形" +"で、リストやテーブルのキーが静的に与えられると同時に ``dynamic`` に列挙される" +"ことを :pep:`808` を通じて許可した。" #: ../source/specifications/pyproject-toml.rst:722 msgid "" "August 2026: Document self-referential extra as a supported feature by many " "modern package managers of Python." msgstr "" +"2026年8月: 自己参照型追加物が多くの近代的な Python のパッケージ管理機構によっ" +"てサポートされた機能であることを文書化しました。" #: ../source/specifications/recording-installed-packages.rst:7 msgid "Recording installed projects" diff --git a/locales/kab/LC_MESSAGES/messages.po b/locales/kab/LC_MESSAGES/messages.po index 8d46a8aa7..2d75be5b3 100644 --- a/locales/kab/LC_MESSAGES/messages.po +++ b/locales/kab/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2026-06-24 22:01+0000\n" "Last-Translator: ButterflyOfFire \n" "Language-Team: Kabyle `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8578,13 +8578,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8592,23 +8599,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8619,21 +8626,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8641,7 +8648,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8649,37 +8656,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8687,7 +8694,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8696,7 +8703,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/ko/LC_MESSAGES/messages.po b/locales/ko/LC_MESSAGES/messages.po index fbcd4c0ad..0c8afc379 100644 --- a/locales/ko/LC_MESSAGES/messages.po +++ b/locales/ko/LC_MESSAGES/messages.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2026-02-05 03:01+0000\n" "Last-Translator: 스이미 \n" "Language-Team: Korean `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8775,13 +8775,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8789,23 +8796,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8816,21 +8823,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8838,7 +8845,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8846,37 +8853,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8884,7 +8891,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8893,7 +8900,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/lo/LC_MESSAGES/messages.po b/locales/lo/LC_MESSAGES/messages.po new file mode 100644 index 000000000..6b37b47d8 --- /dev/null +++ b/locales/lo/LC_MESSAGES/messages.po @@ -0,0 +1,32896 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2013–2020, PyPA +# This file is distributed under the same license as the Python Packaging User Guide package. +# Bone NI , 2026. +msgid "" +msgstr "" +"Project-Id-Version: Python Packaging User Guide\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" +"PO-Revision-Date: 2026-08-29 23:24+0000\n" +"Last-Translator: Bone NI \n" +"Language-Team: Lao \n" +"Language: lo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 2026.9.dev0\n" + +#: ../source/contribute.rst:5 +msgid "Contribute to this guide" +msgstr "ປະກອບສ່ວນໃນຄູ່ມືນີ້" + +#: ../source/contribute.rst:7 +msgid "" +"The |PyPUG| welcomes contributors! There are lots of ways to help out, " +"including:" +msgstr "|PyPUG| ຍິນດີຕ້ອນຮັບຜູ້ປະກອບສ່ວນ! ມີຫຼາຍວິທີທີ່ຈະຊ່ວຍເຫຼືອໄດ້, ລວມທັງ:" + +#: ../source/contribute.rst:10 +msgid "Reading the guide and giving feedback" +msgstr "ອ່ານຄູ່ມື ແລະ ໃຫ້ຄຳຄິດເຫັນ" + +#: ../source/contribute.rst:11 +msgid "Reviewing new contributions" +msgstr "ກວດສອບການປະກອບສ່ວນໃໝ່" + +#: ../source/contribute.rst:12 +msgid "Revising existing content" +msgstr "ປັບປຸງເນື້ອຫາທີ່ມີຢູ່" + +#: ../source/contribute.rst:13 +msgid "Writing new content" +msgstr "ຂຽນເນື້ອຫາໃໝ່" + +#: ../source/contribute.rst:14 +msgid "Translating the guide" +msgstr "ແປຄູ່ມື" + +#: ../source/contribute.rst:16 +msgid "" +"Most of the work on the |PyPUG| takes place on the `project's GitHub " +"repository`__. To get started, check out the list of `open issues`__ and " +"`pull requests`__. If you're planning to write or edit the guide, please " +"read the :ref:`style guide `." +msgstr "" +"ວຽກງານສ່ວນໃຫຍ່ຂອງ |PyPUG| ແມ່ນດຳເນີນຢູ່ໃນ `project's GitHub repository`__. " +"ເພື່ອເລີ່ມຕົ້ນ, ໃຫ້ກວດເບິ່ງລາຍການຂອງ `open issues`__ ແລະ `pull requests`__. " +"ຖ້າທ່ານວາງແຜນທີ່ຈະຂຽນ ຫຼື ແກ້ໄຂຄູ່ມື, ກະລຸນາອ່ານ :ref:`style guide " +"`." + +#: ../source/contribute.rst:25 +msgid "" +"By contributing to the |PyPUG|, you're expected to follow the PSF's `Code of " +"Conduct`__." +msgstr "" +"ໃນການປະກອບສ່ວນໃຫ້ກັບ |PyPUG|, ທ່ານຖືກຄາດຫວັງໃຫ້ປະຕິບັດຕາມ `Code of Conduct`__ ຂອງ PSF." + +#: ../source/contribute.rst:32 +msgid "Documentation types" +msgstr "ປະເພດຂອງເອກະສານ" + +#: ../source/contribute.rst:34 +msgid "" +"This project consists of four distinct documentation types with specific " +"purposes. The project aspires to follow the `Diátaxis process`_ for creating " +"quality documentation. When proposing new additions to the project please " +"pick the appropriate documentation type." +msgstr "" +"ໂຄງການນີ້ປະກອບດ້ວຍເອກະສານສີ່ປະເພດທີ່ແຕກຕ່າງກັນ ໂດຍມີຈຸດປະສົງສະເພາະ. " +"ໂຄງການນີ້ມີຄວາມຕັ້ງໃຈທີ່ຈະປະຕິບັດຕາມ `Diátaxis process`_ ເພື່ອສ້າງເອກະສານທີ່ມີຄຸນນະພາບ. " +"ເມື່ອສະເໜີການເພີ່ມເຕີມໃໝ່ເຂົ້າໃນໂຄງການ, ກະລຸນາເລືອກປະເພດເອກະສານທີ່ເໝາະສົມ." + +#: ../source/contribute.rst:42 ../source/index.rst:55 +#: ../source/tutorials/index.rst:2 +msgid "Tutorials" +msgstr "ບົດຮຽນແນະນຳ" + +#: ../source/contribute.rst:44 +msgid "" +"Tutorials are focused on teaching the reader new concepts by accomplishing a " +"goal. They are opinionated step-by-step guides. They do not include " +"extraneous warnings or information. `example tutorial-style document`_." +msgstr "" +"ບົດຮຽນການນຳໃຊ້ (Tutorials) " +"ແມ່ນເນັ້ນໃສ່ການສອນແນວຄວາມຄິດໃໝ່ໃຫ້ກັບຜູ້ອ່ານໂດຍການບັນລຸເປົ້າໝາຍໃດໜຶ່ງ. " +"ພວກມັນແມ່ນຄູ່ມືແບບເປັນຂັ້ນເປັນຕອນ. ພວກມັນຈະບໍ່ລວມເອົາຄຳເຕືອນ ຫຼື ຂໍ້ມູນທີ່ບໍ່ກ່ຽວຂ້ອງເກີນຄວາມຈຳເປັນ. " +"`example tutorial-style document`_." + +#: ../source/contribute.rst:51 ../source/guides/index.rst:2 +#: ../source/index.rst:69 +msgid "Guides" +msgstr "ຄູ່ມືແນະນຳ" + +#: ../source/contribute.rst:53 +msgid "" +"Guides are focused on accomplishing a specific task and can assume some " +"level of pre-requisite knowledge. These are similar to tutorials, but have a " +"narrow and clear focus and can provide lots of caveats and additional " +"information as needed. They may also discuss multiple approaches to " +"accomplishing the task. :doc:`example guide-style document `." +msgstr "" +"ຄູ່ມືແນະນຳ (Guides) ແມ່ນເນັ້ນໃສ່ການເຮັດວຽກສະເພາະໃດໜຶ່ງໃຫ້ສຳເລັດ ແລະ " +"ອາດຈະຄາດການວ່າຜູ້ອ່ານມີຄວາມຮູ້ພື້ນຖານມາແລ້ວບາງສ່ວນ. ເຫຼົ່ານີ້ແມ່ນຄ້າຍຄືກັບບົດຮຽນການນຳໃຊ້, " +"ແຕ່ມີຈຸດເນັ້ນທີ່ແຄບ ແລະ ຊັດເຈນກວ່າ, ແລະ ສາມາດໃຫ້ຄຳເຕືອນ ຫຼື ຂໍ້ມູນເພີ່ມເຕີມໄດ້ຕາມຄວາມຈຳເປັນ. " +"ພວກມັນອາດຈະມີການປຶກສາຫາລືກ່ຽວກັບຫຼາຍວິທີໃນການເຮັດວຽກນັ້ນໃຫ້ສຳເລັດ. :doc:`example guide-" +"style document `." + +#: ../source/contribute.rst:60 ../source/discussions/index.rst:2 +msgid "Discussions" +msgstr "ການສົນທະນາ ແລະ ອະທິບາຍ" + +#: ../source/contribute.rst:62 +msgid "" +"Discussions are focused on understanding and information. These explore a " +"specific topic without a specific goal in mind. :doc:`example discussion-" +"style document `." +msgstr "" +"ການສົນທະນາ ແລະ ອະທິບາຍ (Discussions) ແມ່ນເນັ້ນໃສ່ຄວາມເຂົ້າໃຈ ແລະ ຂໍ້ມູນ. " +"ເຫຼົ່ານີ້ແມ່ນການສຳຫຼວດຫົວຂໍ້ສະເພາະໃດໜຶ່ງ " +"ໂດຍບໍ່ໄດ້ມີເປົ້າໝາຍໃນການເຮັດວຽກໃຫ້ສຳເລັດເປັນຫຼັກ. :doc:`example discussion-style " +"document `." + +#: ../source/contribute.rst:67 +msgid "Specifications" +msgstr "ຂໍ້ກຳນົດທາງເຕັກນິກ" + +#: ../source/contribute.rst:69 +msgid "" +"Specifications are reference documentation focused on comprehensively " +"documenting an agreed-upon interface for interoperability between packaging " +"tools. :doc:`example specification-style document `." +msgstr "" +"ຂໍ້ກຳນົດທາງເຕັກນິກ (Specifications) " +"ແມ່ນເອກະສານອ້າງອີງທີ່ເນັ້ນໃສ່ການບັນທຶກຂໍ້ມູນຢ່າງຄົບຖ້ວນກ່ຽວກັບອິນເຕີເຟສ (interface) ທີ່ໄດ້ຕົກລົງກັນ " +"ເພື່ອໃຫ້ເຄື່ອງມືການຈັດການແພັກເກດສາມາດເຮັດວຽກຮ່ວມກັນໄດ້. :doc:`example specification-" +"style document `." + +#: ../source/contribute.rst:75 +msgid "Translations" +msgstr "ການແປພາສາ" + +#: ../source/contribute.rst:77 +msgid "" +"We use `Weblate`_ to manage translations of this project. Please visit the " +"`packaging.python.org`_ project on Weblate to contribute." +msgstr "" +"ພວກເຮົາໃຊ້ `Weblate`_ ເພື່ອຈັດການການແປພາສາຂອງໂຄງການນີ້. ກະລຸນາເຂົ້າໄປທີ່ໂຄງການ " +"`packaging.python.org`_ ໃນ Weblate ເພື່ອປະກອບສ່ວນ." + +#: ../source/contribute.rst:80 +msgid "" +"If you are experiencing issues while you are working on translations, please " +"open an issue on `GitHub`_." +msgstr "ຖ້າທ່ານພົບຂໍ້ຜິດພາດໃນຂະນະທີ່ກຳລັງແປພາສາ, ກະລຸນາເປີດ issue ໃນ `GitHub`_." + +#: ../source/contribute.rst:85 +msgid "" +"Any translations of this project should follow `reStructuredText syntax`_." +msgstr "ການແປພາສາໃດໆ ຂອງໂຄງການນີ້ຄວນປະຕິບັດຕາມ `reStructuredText syntax`_." + +#: ../source/contribute.rst:93 +msgid "Adding a language" +msgstr "ການເພີ່ມພາສາ" + +#: ../source/contribute.rst:95 +msgid "" +"If your language is not listed on `packaging.python.org`_, click the " +"button :guilabel:`Start new translation` at the bottom of the language list " +"and add the language you want to translate." +msgstr "" +"ຖ້າພາສາຂອງທ່ານບໍ່ມີຢູ່ໃນລາຍຊື່ຂອງ `packaging.python.org`_, ໃຫ້ຄລິກທີ່ປຸ່ມ :guilabel:`Start " +"new translation` ຢູ່ທາງລຸ່ມຂອງລາຍຊື່ພາສາ ແລະ ເພີ່ມພາສາທີ່ທ່ານຕ້ອງການແປ." + +#: ../source/contribute.rst:100 +msgid "Following reStructuredText syntax" +msgstr "ການປະຕິບັດຕາມ syntax ຂອງ reStructuredText" + +#: ../source/contribute.rst:102 +msgid "" +"If you are not familiar with reStructuredText (RST) syntax, please read " +"`this guide`_ before translating on Weblate." +msgstr "" +"ຖ້າທ່ານບໍ່ຄຸ້ນເຄີຍກັບ syntax ຂອງ reStructuredText (RST), ກະລຸນາອ່ານ `ຄູ່ມືນີ້`_ " +"ກ່ອນທີ່ຈະເລີ່ມແປໃນ Weblate." + +#: ../source/contribute.rst:118 +msgid "**Do not translate the text in reference directly**" +msgstr "**ຫ້າມແປຂໍ້ຄວາມໃນການອ້າງອີງໂດຍກົງ**" + +#: ../source/contribute.rst:106 +msgid "" +"When translating the text in reference, please do not translate them " +"directly." +msgstr "ເມື່ອແປຂໍ້ຄວາມທີ່ມີການອ້າງອີງ, ກະລຸນາຢ່າແປພວກມັນໂດຍກົງ." + +#: ../source/contribute.rst:0 +msgid "Wrong: Translate the following text directly:" +msgstr "ຜິດ: ແປຂໍ້ຄວາມຕໍ່ໄປນີ້ໂດຍກົງ:" + +#: ../source/contribute.rst:0 +msgid "" +"Right: Translate the following text with your own language and add the " +"original reference:" +msgstr "ຖືກ: ແປຂໍ້ຄວາມຕໍ່ໄປນີ້ເປັນພາສາຂອງທ່ານເອງ ແລະ ໃສ່ບ່ອນອ້າງອີງເດີມໄວ້:" + +#: ../source/contribute.rst:123 +msgid "Building the guide locally" +msgstr "ການສ້າງ (Build) ຄູ່ມືໃນເຄື່ອງຂອງທ່ານເອງ" + +#: ../source/contribute.rst:125 +msgid "" +"Though not required to contribute, it may be useful to build this guide " +"locally in order to test your changes. In order to build this guide locally, " +"you'll need:" +msgstr "" +"ເຖິງວ່າຈະບໍ່ຈຳເປັນໃນການປະກອບສ່ວນ, ແຕ່ມັນອາດຈະມີປະໂຫຍດໃນການ build " +"ຄູ່ມືນີ້ຢູ່ໃນເຄື່ອງຂອງທ່ານເອງເພື່ອທົດສອບການປ່ຽນແປງ. ເພື່ອ build ຄູ່ມືນີ້, ທ່ານຈະຕ້ອງມີ:" + +#: ../source/contribute.rst:129 +msgid ":doc:`Nox `. You can install or upgrade nox using ``pip``:" +msgstr ":doc:`Nox `. ທ່ານສາມາດຕິດຕັ້ງ ຫຼື ອັບເກຣດ nox ໄດ້ໂດຍໃຊ້ ``pip``:" + +#: ../source/contribute.rst:136 +msgid "" +"Python 3.11. Our build scripts are usually tested with Python 3.11 only. See " +"the :doc:`Hitchhiker's Guide to Python installation instructions ` to install Python 3.11 on your operating " +"system." +msgstr "" +"Python 3.11. ສະຄຣິບສຳລັບ build ຂອງພວກເຮົາປົກກະຕິແລ້ວແມ່ນໄດ້ຮັບການທົດສອບກັບ Python 3.11 " +"ເທົ່ານັ້ນ. ເບິ່ງ :doc:`Hitchhiker's Guide to Python installation instructions " +"` ເພື່ອຕິດຕັ້ງ Python 3.11 " +"ໃນລະບົບປະຕິບັດການຂອງທ່ານ." + +#: ../source/contribute.rst:140 +msgid "" +"To build the guide, run the following shell command in the project's root " +"folder:" +msgstr "ເພື່ອ build ຄູ່ມື, ໃຫ້ລັນຄຳສັ່ງ shell ຕໍ່ໄປນີ້ໃນໂຟນເດີຫຼັກ (root) ຂອງໂຄງການ:" + +#: ../source/contribute.rst:146 +msgid "" +"After the process has completed you can find the HTML output in the ``./" +"build/html`` directory. You can open the ``index.html`` file to view the " +"guide in web browser, but it's recommended to serve the guide using an HTTP " +"server." +msgstr "" +"ຫຼັງຈາກຂະບວນການສຳເລັດແລ້ວ, ທ່ານສາມາດຊອກຫາໄຟລ໌ HTML ໄດ້ໃນໄດເຣັກທໍຣີ ``./build/html``. " +"ທ່ານສາມາດເປີດໄຟລ໌ ``index.html`` ເພື່ອເບິ່ງຄູ່ມືໃນເວັບບຣາວເຊີ, ແຕ່ແນະນຳໃຫ້ເປີດຄູ່ມືຜ່ານ HTTP " +"server." + +#: ../source/contribute.rst:151 +msgid "" +"You can build the guide and serve it via an HTTP server using the following " +"command:" +msgstr "ທ່ານສາມາດ build ຄູ່ມື ແລະ ເປີດໃຊ້ມັນຜ່ານ HTTP server ໄດ້ໂດຍໃຊ້ຄຳສັ່ງຕໍ່ໄປນີ້:" + +#: ../source/contribute.rst:158 +msgid "The guide will be browsable via http://localhost:8000." +msgstr "ຄູ່ມືຈະສາມາດເຂົ້າເບິ່ງໄດ້ຜ່ານ http://localhost:8000." + +#: ../source/contribute.rst:162 +msgid "Where the guide is deployed" +msgstr "ບ່ອນທີ່ຄູ່ມືຖືກນຳໄປໃຊ້ (Deploy)" + +#: ../source/contribute.rst:164 +msgid "" +"The guide is deployed via ReadTheDocs and the configuration lives at https://" +"readthedocs.org/projects/python-packaging-user-guide/. It's served from a " +"custom domain and fronted by Fast.ly." +msgstr "" +"ຄູ່ມືນີ້ຖືກ deploy ຜ່ານ ReadTheDocs ແລະ ການຕັ້ງຄ່າແມ່ນຢູ່ທີ່ https://readthedocs.org/" +"projects/python-packaging-user-guide/. ມັນຖືກເປີດໃຊ້ຜ່ານໂດເມນທີ່ກຳນົດເອງ ແລະ ມີ " +"Fast.ly ຢູ່ທາງໜ້າ." + +#: ../source/contribute.rst:170 +msgid "Style guide" +msgstr "ຄູ່ມືຮູບແບບການຂຽນ" + +#: ../source/contribute.rst:172 +msgid "" +"This style guide has recommendations for how you should write the |PyPUG|. " +"Before you start writing, please review it. By following the style guide, " +"your contributions will help add to a cohesive whole and make it easier for " +"your contributions to be accepted into the project." +msgstr "" +"ຄູ່ມືຮູບແບບນີ້ມີຄຳແນະນຳກ່ຽວກັບວິທີທີ່ທ່ານຄວນຂຽນໃຫ້ກັບ |PyPUG|. ກ່ອນທີ່ທ່ານຈະເລີ່ມຂຽນ, " +"ກະລຸນາກວດສອບເບິ່ງກ່ອນ. ໂດຍການປະຕິບັດຕາມຄູ່ມືຮູບແບບນີ້, " +"ການປະກອບສ່ວນຂອງທ່ານຈະຊ່ວຍໃຫ້ເນື້ອຫາເປັນອັນໜຶ່ງອັນດຽວກັນ ແລະ " +"ເຮັດໃຫ້ການປະກອບສ່ວນຂອງທ່ານຖືກຍອມຮັບເຂົ້າໃນໂຄງການໄດ້ງ່າຍຂຶ້ນ." + +#: ../source/contribute.rst:179 +msgid "Purpose" +msgstr "ຈຸດປະສົງ" + +#: ../source/contribute.rst:181 +msgid "" +"The purpose of the |PyPUG| is to be the authoritative resource on how to " +"package, publish, and install Python projects using current tools." +msgstr "" +"ຈຸດປະສົງຂອງ |PyPUG| ແມ່ນເພື່ອເປັນແຫຼ່ງຂໍ້ມູນທີ່ເຊື່ອຖືໄດ້ກ່ຽວກັບວິທີການເຮັດແພັກເກດ, ການເຜີຍແຜ່, ແລະ " +"ການຕິດຕັ້ງໂຄງການ Python ໂດຍໃຊ້ເຄື່ອງມືໃນປັດຈຸບັນ." + +#: ../source/contribute.rst:186 +msgid "Scope" +msgstr "ຂອບເຂດ" + +#: ../source/contribute.rst:188 +msgid "" +"The guide is meant to answer questions and solve problems with accurate and " +"focused recommendations." +msgstr "ຄູ່ມືນີ້ມີໄວ້ເພື່ອຕອບຄຳຖາມ ແລະ ແກ້ໄຂບັນຫາດ້ວຍຄຳແນະນຳທີ່ຖືກຕ້ອງ ແລະ ກົງປະເດັນ." + +#: ../source/contribute.rst:191 +msgid "" +"The guide isn't meant to be comprehensive and it's not meant to replace " +"individual projects' documentation. For example, pip has dozens of commands, " +"options, and settings. The pip documentation describes each of them in " +"detail, while this guide describes only the parts of pip that are needed to " +"complete the specific tasks described in this guide." +msgstr "" +"ຄູ່ມືນີ້ບໍ່ໄດ້ມີຈຸດປະສົງເພື່ອໃຫ້ກວມເອົາທຸກຢ່າງ ແລະ ບໍ່ໄດ້ມີໄວ້ເພື່ອແທນທີ່ເອກະສານຂອງແຕ່ລະໂຄງການ. ຕົວຢ່າງ: " +"pip ມີຄຳສັ່ງ, ຕົວເລືອກ, ແລະ ການຕັ້ງຄ່າຫຼາຍສິບຢ່າງ. ເອກະສານຂອງ pip " +"ຈະອະທິບາຍແຕ່ລະຢ່າງໂດຍລະອຽດ, ໃນຂະນະທີ່ຄູ່ມືນີ້ຈະອະທິບາຍສະເພາະພາກສ່ວນຂອງ pip " +"ທີ່ຈຳເປັນໃນການເຮັດວຽກສະເພາະທີ່ລະບຸໄວ້ໃນຄູ່ມືນີ້ເທົ່ານັ້ນ." + +#: ../source/contribute.rst:199 +msgid "Audience" +msgstr "ກຸ່ມຜູ້ອ່ານ" + +#: ../source/contribute.rst:201 +msgid "The audience of this guide is anyone who uses Python with packages." +msgstr "ກຸ່ມຜູ້ອ່ານຄູ່ມືນີ້ແມ່ນໃຜກໍຕາມທີ່ໃຊ້ Python ຮ່ວມກັບແພັກເກດຕ່າງໆ." + +#: ../source/contribute.rst:203 +msgid "" +"Don't forget that the Python community is big and welcoming. Readers may not " +"share your age, gender, education, culture, and more, but they deserve to " +"learn about packaging just as much as you do." +msgstr "" +"ຢ່າລືມວ່າຊຸມຊົນ Python ນັ້ນໃຫຍ່ ແລະ ຍິນດີຕ້ອນຮັບທຸກຄົນ. ຜູ້ອ່ານອາດຈະມີອາຍຸ, ເພດ, ການສຶກສາ, " +"ວັດທະນະທຳ ແລະ ອື່ນໆ ທີ່ແຕກຕ່າງຈາກທ່ານ, " +"ແຕ່ພວກເຂົາສົມຄວນທີ່ຈະໄດ້ຮຽນຮູ້ກ່ຽວກັບການຈັດການແພັກເກດຄືກັນກັບທ່ານ." + +#: ../source/contribute.rst:207 +msgid "" +"In particular, keep in mind that not all people who use Python see " +"themselves as programmers. The audience of this guide includes astronomers " +"or painters or students as well as professional software developers." +msgstr "" +"ໂດຍສະເພາະ, ໃຫ້ຈື່ໄວ້ວ່າບໍ່ແມ່ນທຸກຄົນທີ່ໃຊ້ Python ຈະເຫັນວ່າຕົນເອງເປັນນັກຂຽນໂປຣແກຣມ. " +"ຜູ້ອ່ານຄູ່ມືນີ້ລວມມີທັງນັກດາລາສາດ ຫຼື ຈິດຕະກອນ ຫຼື ນັກຮຽນ ນັກສຶກສາ ຕະຫຼອດຮອດນັກພັດທະນາຊອບແວມືອາຊີບ." + +#: ../source/contribute.rst:213 +msgid "Voice and tone" +msgstr "ນ້ຳສຽງ ແລະ ທ່າທາງ" + +#: ../source/contribute.rst:215 +msgid "" +"When writing this guide, strive to write with a voice that's approachable " +"and humble, even if you have all the answers." +msgstr "" +"ເມື່ອຂຽນຄູ່ມືນີ້, ຈົ່ງພະຍາຍາມຂຽນດ້ວຍນ້ຳສຽງທີ່ເຂົ້າເຖິງງ່າຍ ແລະ ອ່ອນນ້ອມ, " +"ເຖິງແມ່ນວ່າທ່ານຈະຮູ້ຄຳຕອບທຸກຢ່າງແລ້ວກໍຕາມ." + +#: ../source/contribute.rst:218 +msgid "" +"Imagine you're working on a Python project with someone you know to be smart " +"and skilled. You like working with them and they like working with you. That " +"person has asked you a question and you know the answer. How do you respond? " +"*That* is how you should write this guide." +msgstr "" +"ລອງນຶກພາບວ່າທ່ານກຳລັງເຮັດວຽກໃນໂຄງການ Python ກັບໃຜບາງຄົນທີ່ທ່ານຮູ້ວ່າມີຄວາມສະຫຼາດ ແລະ ເກັ່ງ. " +"ທ່ານມັກເຮັດວຽກກັບພວກເຂົາ ແລະ ພວກເຂົາກໍມັກເຮັດວຽກກັບທ່ານ. ຄົນນັ້ນໄດ້ຖາມຄຳຖາມທ່ານ ແລະ " +"ທ່ານຮູ້ຄຳຕອບ. ທ່ານຈະຕອບແນວໃດ? *ນັ້ນ* ຄືວິທີທີ່ທ່ານຄວນຂຽນຄູ່ມືນີ້." + +#: ../source/contribute.rst:223 +msgid "" +"Here's a quick check: try reading aloud to get a sense for your writing's " +"voice and tone. Does it sound like something you would say or does it sound " +"like you're acting out a part or giving a speech? Feel free to use " +"contractions and don't worry about sticking to fussy grammar rules. You are " +"hereby granted permission to end a sentence in a preposition, if that's what " +"you want to end it with." +msgstr "" +"ນີ້ແມ່ນວິທີກວດສອບແບບໄວໆ: ລອງອ່ານອອກສຽງເພື່ອໃຫ້ຮູ້ສຶກເຖິງນ້ຳສຽງ ແລະ ທ່າທາງຂອງການຂຽນຂອງທ່ານ. " +"ມັນຟັງຄືກັບສິ່ງທີ່ທ່ານຈະເວົ້າແທ້ໆ ບໍ ຫຼື ມັນຟັງຄືກັບວ່າທ່ານກຳລັງສະແດງລະຄອນ ຫຼື ກຳລັງກ່າວສຸນທອນພົດ? " +"ສາມາດໃຊ້ຄຳຫຍໍ້ໄດ້ຕາມສະບາຍ ແລະ ຢ່າກັງວົນກັບກົດໄວຍາກອນທີ່ຈຸກຈິກເກີນໄປ. " +"ທ່ານໄດ້ຮັບອະນຸຍາດໃຫ້ຈົບປະໂຫຍກດ້ວຍຄຳບຸບພະບົດ (preposition) ໄດ້ ຖ້ານັ້ນຄືສິ່ງທີ່ທ່ານຕ້ອງການ." + +#: ../source/contribute.rst:230 +msgid "" +"When writing the guide, adjust your tone for the seriousness and difficulty " +"of the topic. If you're writing an introductory tutorial, it's OK to make a " +"joke, but if you're covering a sensitive security recommendation, you might " +"want to avoid jokes altogether." +msgstr "" +"ເມື່ອຂຽນຄູ່ມື, ໃຫ້ປັບທ່າທາງຂອງທ່ານຕາມຄວາມຈິງຈັງ ແລະ ຄວາມຍາກຂອງຫົວຂໍ້. " +"ຖ້າທ່ານກຳລັງຂຽນບົດຮຽນການນຳໃຊ້ເບື້ອງຕົ້ນ, ມັນກໍໂອເຄທີ່ຈະມີການເວົ້າຍົວະເຍາະຫຼິ້ນ, " +"ແຕ່ຖ້າທ່ານກຳລັງເວົ້າເຖິງຄຳແນະນຳກ່ຽວກັບຄວາມປອດໄພທີ່ລະອຽດອ່ອນ, ທ່ານຄວນຫຼີກເວັ້ນການເວົ້າຫຼິ້ນທັງໝົດ." + +#: ../source/contribute.rst:237 +msgid "Conventions and mechanics" +msgstr "ຂໍ້ກຳນົດ ແລະ ຫຼັກການຂຽນ" + +#: ../source/contribute.rst:245 +msgid "**Write to the reader**" +msgstr "**ຂຽນຫາຜູ້ອ່ານໂດຍກົງ**" + +#: ../source/contribute.rst:240 +msgid "" +"When giving recommendations or steps to take, address the reader as *you* or " +"use the imperative mood." +msgstr "ເມື່ອໃຫ້ຄຳແນະນຳ ຫຼື ຂັ້ນຕອນທີ່ຕ້ອງເຮັດ, ໃຫ້ເອີ້ນຜູ້ອ່ານວ່າ *ທ່ານ* ຫຼື ໃຊ້ຮູບແບບປະໂຫຍກຄຳສັ່ງ." + +#: ../source/contribute.rst:0 +msgid "Wrong: To install it, the user runs…" +msgstr "ຜິດ: ເພື່ອຕິດຕັ້ງມັນ, ຜູ້ໃຊ້ຈະລັນ…" + +#: ../source/contribute.rst:0 +msgid "Right: You can install it by running…" +msgstr "ຖືກ: ທ່ານສາມາດຕິດຕັ້ງມັນໄດ້ໂດຍການລັນ…" + +#: ../source/contribute.rst:0 +msgid "Right: To install it, run…" +msgstr "ຖືກ: ເພື່ອຕິດຕັ້ງມັນ, ໃຫ້ລັນ…" + +#: ../source/contribute.rst:251 +msgid "**State assumptions**" +msgstr "**ລະບຸຂໍ້ສົມມຸດຖານ**" + +#: ../source/contribute.rst:248 +msgid "" +"Avoid making unstated assumptions. Reading on the web means that any page of " +"the guide may be the first page of the guide that the reader ever sees. If " +"you're going to make assumptions, then say what assumptions that you're " +"going to make." +msgstr "" +"ຫຼີກເວັ້ນການສ້າງຂໍ້ສົມມຸດຖານໂດຍບໍ່ໄດ້ລະບຸ. ການອ່ານໃນເວັບໝາຍຄວາມວ່າ " +"ໜ້າໃດໜຶ່ງຂອງຄູ່ມືອາດຈະເປັນໜ້າທຳອິດທີ່ຜູ້ອ່ານເຄີຍເຫັນ. ຖ້າທ່ານຈະຕັ້ງຂໍ້ສົມມຸດຖານໃດໜຶ່ງ, " +"ກະລຸນາບອກໃຫ້ຊັດເຈນວ່າຂໍ້ສົມມຸດຖານນັ້ນແມ່ນຫຍັງ." + +#: ../source/contribute.rst:256 +msgid "**Cross-reference generously**" +msgstr "**ໃສ່ການອ້າງອີງຂ້າມ (Cross-reference) ໃຫ້ຫຼາຍຂຶ້ນ**" + +#: ../source/contribute.rst:254 +msgid "" +"The first time you mention a tool or practice, link to the part of the guide " +"that covers it, or link to a relevant document elsewhere. Save the reader a " +"search." +msgstr "" +"ຄັ້ງທຳອິດທີ່ທ່ານກ່າວເຖິງເຄື່ອງມື ຫຼື ວິທີການປະຕິບັດ, ໃຫ້ເຊື່ອມຕໍ່ (link) ໄປຫາພາກສ່ວນຂອງຄູ່ມືທີ່ກ່ຽວຂ້ອງ, ຫຼື " +"ເຊື່ອມຕໍ່ໄປຫາເອກະສານອື່ນໆ ທີ່ກ່ຽວຂ້ອງ. ເພື່ອຊ່ວຍໃຫ້ຜູ້ອ່ານບໍ່ຕ້ອງເສຍເວລາຄົ້ນຫາເອງ." + +#: ../source/contribute.rst:266 +msgid "**Respect naming practices**" +msgstr "**ເຄົາລົບວິທີການຕັ້ງຊື່**" + +#: ../source/contribute.rst:259 +msgid "" +"When naming tools, sites, people, and other proper nouns, use their " +"preferred capitalization." +msgstr "" +"ເມື່ອຕັ້ງຊື່ເຄື່ອງມື, ເວັບໄຊ, ບຸກຄົນ, ແລະ ຄຳນາມສະເພາະອື່ນໆ, ໃຫ້ໃຊ້ຕົວອັກສອນໃຫຍ່-ນ້ອຍ " +"ຕາມທີ່ພວກເຂົາກຳນົດ." + +#: ../source/contribute.rst:0 +msgid "Wrong: Pip uses…" +msgstr "ຜິດ: Pip ໃຊ້…" + +#: ../source/contribute.rst:0 +msgid "Right: pip uses…" +msgstr "ຖືກ: pip ໃຊ້…" + +#: ../source/contribute.rst:0 +msgid "Wrong: …hosted on github." +msgstr "ຜິດ: …ຢູ່ເທິງ github." + +#: ../source/contribute.rst:0 +msgid "Right: …hosted on GitHub." +msgstr "ຖືກ: …ຢູ່ເທິງ GitHub." + +#: ../source/contribute.rst:275 +msgid "**Use a gender-neutral style**" +msgstr "**ໃຊ້ຮູບແບບທີ່ບໍ່ລະບຸເພດ**" + +#: ../source/contribute.rst:269 +msgid "" +"Often, you'll address the reader directly with *you*, *your* and *yours*. " +"Otherwise, use gender-neutral pronouns *they*, *their*, and *theirs* or " +"avoid pronouns entirely." +msgstr "" +"ສ່ວນຫຼາຍແລ້ວ, ທ່ານຈະເວົ້າກັບຜູ້ອ່ານໂດຍກົງດ້ວຍຄຳວ່າ *ທ່ານ*. ຖ້າບໍ່ດັ່ງນັ້ນ, ໃຫ້ໃຊ້ຄຳແທນນາມທີ່ບໍ່ລະບຸເພດ ຫຼື " +"ຫຼີກເວັ້ນການໃຊ້ຄຳແທນນາມໄປເລີຍ." + +#: ../source/contribute.rst:0 +msgid "Wrong: A maintainer uploads the file. Then he…" +msgstr "ຜິດ: ຜູ້ເບິ່ງແຍງລະບົບອັບໂຫຼດໄຟລ໌. ຈາກນັ້ນລາວ (ລາວຜູ້ຊາຍ)…" + +#: ../source/contribute.rst:0 +msgid "Right: A maintainer uploads the file. Then they…" +msgstr "ຖືກ: ຜູ້ເບິ່ງແຍງລະບົບອັບໂຫຼດໄຟລ໌. ຈາກນັ້ນພວກເຂົາ (ໃຊ້ເປັນກາງ)…" + +#: ../source/contribute.rst:0 +msgid "Right: A maintainer uploads the file. Then the maintainer…" +msgstr "ຖືກ: ຜູ້ເບິ່ງແຍງລະບົບອັບໂຫຼດໄຟລ໌. ຈາກນັ້ນຜູ້ເບິ່ງແຍງລະບົບ…" + +#: ../source/contribute.rst:287 +msgid "**Headings**" +msgstr "**ຫົວຂໍ້**" + +#: ../source/contribute.rst:278 +msgid "" +"Write headings that use words the reader is searching for. A good way to do " +"this is to have your heading complete an implied question. For example, a " +"reader might want to know *How do I install MyLibrary?* so a good heading " +"might be *Install MyLibrary*." +msgstr "" +"ຂຽນຫົວຂໍ້ໂດຍໃຊ້ຄຳສັບທີ່ຜູ້ອ່ານມັກຈະຄົ້ນຫາ. ວິທີທີ່ດີແມ່ນການເຮັດໃຫ້ຫົວຂໍ້ຂອງທ່ານຕອບຄຳຖາມທີ່ຢູ່ໃນໃຈ. ຕົວຢ່າງ: " +"ຜູ້ອ່ານອາດຈະຢາກຮູ້ວ່າ *ຂ້ອຍຈະຕິດຕັ້ງ MyLibrary ແນວໃດ?* ດັ່ງນັ້ນ ຫົວຂໍ້ທີ່ດີອາດຈະແມ່ນ *ຕິດຕັ້ງ " +"MyLibrary*." + +#: ../source/contribute.rst:283 +msgid "" +"In section headings, use sentence case. In other words, write headings as " +"you would write a typical sentence." +msgstr "" +"ໃນຫົວຂໍ້ຂອງແຕ່ລະພາກສ່ວນ, ໃຫ້ໃຊ້ຕົວອັກສອນແບບປະໂຫຍກທົ່ວໄປ (sentence case). ເວົ້າອີກຢ່າງໜຶ່ງແມ່ນ " +"ຂຽນຫົວຂໍ້ຄືກັບທີ່ທ່ານຂຽນປະໂຫຍກປົກກະຕິ." + +#: ../source/contribute.rst:0 +msgid "Wrong: Things You Should Know About Python" +msgstr "ຜິດ: Things You Should Know About Python (ຂຶ້ນຕົ້ນດ້ວຍຕົວໃຫຍ່ທຸກຄຳ)" + +#: ../source/contribute.rst:0 +msgid "Right: Things you should know about Python" +msgstr "" +"ຖືກ: Things you should know about Python (ຂຶ້ນຕົ້ນດ້ວຍຕົວໃຫຍ່ສະເພາະຄຳທຳອິດ ແລະ " +"ຄຳນາມສະເພາະ)" + +#: ../source/contribute.rst:290 +msgid "**Numbers**" +msgstr "**ຕົວເລກ**" + +#: ../source/contribute.rst:290 +msgid "" +"In body text, write numbers one through nine as words. For other numbers or " +"numbers in tables, use numerals." +msgstr "" +"ໃນເນື້ອຫາ, ໃຫ້ຂຽນຕົວເລກ 1 ຫາ 9 ເປັນຕົວໜັງສື. ສຳລັບຕົວເລກອື່ນໆ ຫຼື ຕົວເລກໃນຕາຕະລາງ, " +"ໃຫ້ໃຊ້ເປັນຕົວເລກ." + +#: ../source/discussions/deploying-python-applications.rst:4 +msgid "Deploying Python applications" +msgstr "ການນຳໃຊ້ (Deploy) ແອັບພລິເຄຊັນ Python" + +#: ../source/discussions/deploying-python-applications.rst:0 +#: ../source/discussions/downstream-packaging.rst:0 +#: ../source/discussions/single-source-version.rst:0 +#: ../source/guides/distributing-packages-using-setuptools.rst:0 +#: ../source/guides/index-mirrors-and-caches.rst:0 +#: ../source/guides/installing-using-linux-tools.rst:0 +#: ../source/guides/migrating-to-pypi-org.rst:0 +#: ../source/guides/multi-version-installs.rst:0 +#: ../source/guides/packaging-binary-extensions.rst:0 +#: ../source/guides/supporting-multiple-python-versions.rst:0 +#: ../source/guides/supporting-windows-using-appveyor.rst:0 +msgid "Page Status" +msgstr "ສະຖານະຂອງໜ້າ" + +#: ../source/discussions/deploying-python-applications.rst:6 +#: ../source/guides/index-mirrors-and-caches.rst:7 +#: ../source/guides/installing-using-linux-tools.rst:7 +#: ../source/guides/packaging-binary-extensions.rst:7 +msgid "Incomplete" +msgstr "ບໍ່ສົມບູນ" + +#: ../source/discussions/deploying-python-applications.rst:0 +#: ../source/discussions/downstream-packaging.rst:0 +#: ../source/discussions/single-source-version.rst:0 +#: ../source/guides/distributing-packages-using-setuptools.rst:0 +#: ../source/guides/index-mirrors-and-caches.rst:0 +#: ../source/guides/installing-using-linux-tools.rst:0 +#: ../source/guides/packaging-binary-extensions.rst:0 +#: ../source/guides/supporting-multiple-python-versions.rst:0 +#: ../source/guides/supporting-windows-using-appveyor.rst:0 +msgid "Last Reviewed" +msgstr "ກວດສອບຄັ້ງລ້າສຸດ" + +#: ../source/discussions/deploying-python-applications.rst:7 +msgid "2021-8-24" +msgstr "2021-8-24" + +#: ../source/discussions/deploying-python-applications.rst:11 +#: ../source/specifications/externally-managed-environments.rst:130 +#: ../source/specifications/platform-compatibility-tags.rst:14 +msgid "Overview" +msgstr "ພາບລວມ" + +#: ../source/discussions/deploying-python-applications.rst:15 +msgid "Supporting multiple hardware platforms" +msgstr "ການສະໜັບສະໜູນຫຼາຍແພລັດຟອມຮາດແວ" + +#: ../source/discussions/deploying-python-applications.rst:37 +msgid "OS packaging & installers" +msgstr "ການເຮັດແພັກເກດຂອງ OS ແລະ ເຄື່ອງມືຕິດຕັ້ງ" + +#: ../source/discussions/deploying-python-applications.rst:49 +#: ../source/discussions/deploying-python-applications.rst:86 +msgid "Windows" +msgstr "" + +#: ../source/discussions/deploying-python-applications.rst:58 +msgid "Pynsist" +msgstr "" + +#: ../source/discussions/deploying-python-applications.rst:60 +msgid "" +"`Pynsist `__ is a tool that bundles Python " +"programs together with the Python-interpreter into a single installer based " +"on NSIS. In most cases, packaging only requires the user to choose a version " +"of the Python-interpreter and declare the dependencies of the program. The " +"tool downloads the specified Python-interpreter for Windows and packages it " +"with all the dependencies in a single Windows-executable installer." +msgstr "" +"`Pynsist `__ ແມ່ນເຄື່ອງມືທີ່ລວມໂປຣແກຣມ Python " +"ເຂົ້າກັບ Python-interpreter ໃຫ້ເປັນຕົວຕິດຕັ້ງດຽວໂດຍອີງໃສ່ NSIS. ໃນກໍລະນີສ່ວນໃຫຍ່, " +"ການເຮັດແພັກເກດພຽງແຕ່ຕ້ອງການໃຫ້ຜູ້ໃຊ້ເລືອກເວີຊັນຂອງ Python-interpreter ແລະ ລະບຸ " +"dependencies ຂອງໂປຣແກຣມ. ເຄື່ອງມືນີ້ຈະດາວໂຫຼດ Python-interpreter ທີ່ລະບຸໄວ້ສຳລັບ " +"Windows ແລະ ແພັກມັນລວມກັບ dependencies ທັງໝົດເຂົ້າໃນຕົວຕິດຕັ້ງ Windows-executable ອັນດຽວ." + +#: ../source/discussions/deploying-python-applications.rst:67 +msgid "" +"The installed program can be started from a shortcut that the installer adds " +"to the start-menu. It uses a Python interpreter installed within its " +"application directory, independent of any other Python installation on the " +"computer." +msgstr "" +"ໂປຣແກຣມທີ່ຕິດຕັ້ງແລ້ວສາມາດເລີ່ມເຮັດວຽກໄດ້ຈາກ shortcut ທີ່ຕົວຕິດຕັ້ງເພີ່ມເຂົ້າໃນ start-menu. ມັນໃຊ້ " +"Python interpreter ທີ່ຕິດຕັ້ງໄວ້ພາຍໃນໄດເຣັກທໍຣີຂອງແອັບພລິເຄຊັນເອງ, " +"ເຊິ່ງເປັນເອກະລາດຈາກການຕິດຕັ້ງ Python ອື່ນໆ ໃນຄອມພິວເຕີ." + +#: ../source/discussions/deploying-python-applications.rst:71 +msgid "" +"A big advantage of Pynsist is that the Windows packages can be built on " +"Linux. There are several examples for different kinds of programs (console, " +"GUI) in the :any:`documentation `. The tool is released under " +"the MIT-licence." +msgstr "" +"ຂໍ້ດີທີ່ສຳຄັນຂອງ Pynsist ແມ່ນແພັກເກດ Windows ສາມາດ build ໄດ້ໃນ Linux. " +"ມີຕົວຢ່າງຫຼາຍຢ່າງສຳລັບໂປຣແກຣມປະເພດຕ່າງໆ (console, GUI) ໃນ :any:`documentation " +"`. ເຄື່ອງມືນີ້ຖືກເຜີຍແຜ່ພາຍໃຕ້ໃບອະນຸຍາດ MIT." + +#: ../source/discussions/deploying-python-applications.rst:77 +msgid "Application bundles" +msgstr "ການລວມແອັບພລິເຄຊັນ (Application bundles)" + +#: ../source/discussions/deploying-python-applications.rst:89 +msgid "py2exe" +msgstr "" + +#: ../source/discussions/deploying-python-applications.rst:91 +msgid "" +"`py2exe `__ is a distutils extension which " +"allows to build standalone Windows executable programs (32-bit and 64-bit) " +"from Python scripts. Python versions included in the official development " +"cycle are supported (refers to `Status of Python branches`__). py2exe can " +"build console executables and windows (GUI) executables. Building windows " +"services, and DLL/EXE COM servers might work but it is not actively " +"supported. The distutils extension is released under the MIT-licence and " +"Mozilla Public License 2.0." +msgstr "" +"`py2exe `__ ແມ່ນສ່ວນເສີມຂອງ distutils ທີ່ຊ່ວຍໃຫ້ " +"build ໂປຣແກຣມ Windows executable ທີ່ເຮັດວຽກໄດ້ດ້ວຍຕົນເອງ (32-bit ແລະ 64-bit) " +"ຈາກສະຄຣິບ Python. ຮອງຮັບເວີຊັນຂອງ Python ທີ່ຢູ່ໃນຮອບວຽນການພັດທະນາຢ່າງເປັນທາງການ " +"(ອ້າງອີງເຖິງ `Status of Python branches`__). py2exe ສາມາດ build ທັງ console " +"executables ແລະ windows (GUI) executables. ການ build windows services, ແລະ " +"DLL/EXE COM servers ອາດຈະເຮັດວຽກໄດ້ແຕ່ບໍ່ໄດ້ຮັບການສະໜັບສະໜູນຢ່າງເປັນທາງການ. ສ່ວນເສີມ " +"distutils ນີ້ຖືກເຜີຍແຜ່ພາຍໃຕ້ໃບອະນຸຍາດ MIT ແລະ Mozilla Public License 2.0." + +#: ../source/discussions/deploying-python-applications.rst:103 +#: ../source/specifications/platform-compatibility-tags.rst:200 +msgid "macOS" +msgstr "" + +#: ../source/discussions/deploying-python-applications.rst:106 +msgid "py2app" +msgstr "" + +#: ../source/discussions/deploying-python-applications.rst:108 +msgid "" +"`py2app `__ is a Python setuptools command " +"which will allow you to make standalone macOS application bundles and " +"plugins from Python scripts. Note that py2app MUST be used on macOS to build " +"applications, it cannot create Mac applications on other platforms. py2app " +"is released under the MIT-license." +msgstr "" +"`py2app `__ ແມ່ນຄຳສັ່ງຂອງ Python setuptools " +"ທີ່ຈະຊ່ວຍໃຫ້ທ່ານສ້າງ macOS application bundles ແລະ plugins " +"ທີ່ເຮັດວຽກໄດ້ດ້ວຍຕົນເອງຈາກສະຄຣິບ Python. ໝາຍເຫດ: ທ່ານຕ້ອງໃຊ້ py2app ເທິງ macOS ເພື່ອ " +"build ແອັບພລິເຄຊັນ, ມັນບໍ່ສາມາດສ້າງແອັບພລິເຄຊັນ Mac ເທິງແພລັດຟອມອື່ນໄດ້. py2app " +"ຖືກເຜີຍແຜ່ພາຍໃຕ້ໃບອະນຸຍາດ MIT." + +#: ../source/discussions/deploying-python-applications.rst:115 +msgid "Unix (including Linux and macOS)" +msgstr "Unix (ລວມທັງ Linux ແລະ macOS)" + +#: ../source/discussions/deploying-python-applications.rst:118 +#: ../source/key_projects.rst:576 +msgid "pex" +msgstr "pex" + +#: ../source/discussions/deploying-python-applications.rst:120 +msgid "" +"`pex `__ is a library for generating .pex " +"(Python EXecutable) files which are executable Python environments in the " +"spirit of virtualenvs. pex is an expansion upon the ideas outlined " +"in :pep:`441` and makes the deployment of Python applications as simple as " +"cp. pex files may even include multiple platform-specific Python " +"distributions, meaning that a single pex file can be portable across Linux " +"and macOS. pex is released under the Apache License 2.0." +msgstr "" +"`pex `__ ແມ່ນໄລບຣາຣີສຳລັບສ້າງໄຟລ໌ .pex (Python " +"EXecutable) ເຊິ່ງເປັນສະພາບແວດລ້ອມ Python ທີ່ສາມາດລັນໄດ້ໃນຮູບແບບຂອງ virtualenvs. pex " +"ແມ່ນການຂະຫຍາຍແນວຄວາມຄິດທີ່ລະບຸໄວ້ໃນ :pep:`441` ແລະ ເຮັດໃຫ້ການ deploy ແອັບພລິເຄຊັນ " +"Python ງ່າຍຄືກັບການໃຊ້ຄຳສັ່ງ cp. ໄຟລ໌ pex ອາດຈະລວມເອົາ Python distributions " +"ຂອງຫຼາຍແພລັດຟອມໄວ້ນຳກັນ, ເຮັດໃຫ້ໄຟລ໌ pex ດຽວສາມາດພົກພາໄປໃຊ້ໄດ້ທັງໃນ Linux ແລະ macOS. " +"pex ຖືກເຜີຍແຜ່ພາຍໃຕ້ໃບອະນຸຍາດ Apache License 2.0." + +#: ../source/discussions/deploying-python-applications.rst:129 +msgid "Configuration management" +msgstr "ການຈັດການການຕັ້ງຄ່າ" + +#: ../source/discussions/distribution-package-vs-import-package.rst:5 +msgid "Distribution package vs. import package" +msgstr "" +"ແພັກເກດການແຈກຢາຍ (Distribution package) ທຽບກັບ ແພັກເກດການນຳເຂົ້າ (import package)" + +#: ../source/discussions/distribution-package-vs-import-package.rst:7 +msgid "" +"A number of different concepts are commonly referred to by the word " +"\"package\". This page clarifies the differences between two distinct but " +"related meanings in Python packaging, \"distribution package\" and \"import " +"package\"." +msgstr "" +"ມີຫຼາຍແນວຄວາມຄິດທີ່ແຕກຕ່າງກັນເຊິ່ງມັກຈະຖືກເອີ້ນລວມໆ ວ່າ \"package\". " +"ໜ້ານີ້ຈະອະທິບາຍໃຫ້ຊັດເຈນກ່ຽວກັບຄວາມແຕກຕ່າງລະຫວ່າງສອງຄວາມໝາຍທີ່ຕ່າງກັນແຕ່ກ່ຽວຂ້ອງກັນໃນ Python " +"packaging, ນັ້ນຄື \"distribution package\" ແລະ \"import package\"." + +#: ../source/discussions/distribution-package-vs-import-package.rst:13 +msgid "What's a distribution package?" +msgstr "Distribution package ແມ່ນຫຍັງ?" + +#: ../source/discussions/distribution-package-vs-import-package.rst:15 +msgid "" +"A distribution package is a piece of software that you can install. Most of " +"the time, this is synonymous with \"project\". When you type ``pip install " +"pkg``, or when you write ``dependencies = [\"pkg\"]`` in your " +"``pyproject.toml``, ``pkg`` is the name of a distribution package. When you " +"search or browse the PyPI_, the most widely known centralized source for " +"installing Python libraries and tools, what you see is a list of " +"distribution packages. Alternatively, the term \"distribution package\" can " +"be used to refer to a specific file that contains a certain version of a " +"project." +msgstr "" +"Distribution package ແມ່ນຊອບແວສ່ວນໜຶ່ງທີ່ທ່ານສາມາດຕິດຕັ້ງໄດ້. ສ່ວນຫຼາຍແລ້ວ, " +"ມັນມີຄວາມໝາຍດຽວກັນກັບ \"ໂຄງການ (project)\". ເມື່ອທ່ານພິມ ``pip install pkg``, ຫຼື " +"ເມື່ອທ່ານຂຽນ ``dependencies = [\"pkg\"]`` ໃນໄຟລ໌ ``pyproject.toml``, ``pkg`` " +"ກໍຄືຊື່ຂອງ distribution package. ເມື່ອທ່ານຄົ້ນຫາໃນ PyPI_, " +"ເຊິ່ງເປັນແຫຼ່ງລວມສູນທີ່ຮູ້ຈັກກັນດີທີ່ສຸດສຳລັບການຕິດຕັ້ງໄລບຣາຣີ ແລະ ເຄື່ອງມື Python, " +"ສິ່ງທີ່ທ່ານເຫັນກໍຄືລາຍຊື່ຂອງ distribution packages. ນອກຈາກນັ້ນ, ຄຳວ່າ \"distribution " +"package\" ຍັງສາມາດໃຊ້ເພື່ອອ້າງເຖິງໄຟລ໌ສະເພາະທີ່ບັນຈຸເວີຊັນໃດໜຶ່ງຂອງໂຄງການ." + +#: ../source/discussions/distribution-package-vs-import-package.rst:24 +msgid "" +"Note that in the Linux world, a \"distribution package\", most commonly " +"abbreviated as \"distro package\" or just \"package\", is something provided " +"by the system package manager of the `Linux distribution `_, which " +"is a different meaning." +msgstr "" +"ໝາຍເຫດ: ໃນໂລກຂອງ Linux, \"distribution package\" (ມັກຈະຫຍໍ້ເປັນ \"distro " +"package\" ຫຼື ແຄ່ \"package\") ແມ່ນສິ່ງທີ່ສະໜອງໃຫ້ໂດຍຕົວຈັດການແພັກເກດຂອງລະບົບ `Linux " +"distribution `_, ເຊິ່ງມີຄວາມໝາຍທີ່ແຕກຕ່າງກັນ." + +#: ../source/discussions/distribution-package-vs-import-package.rst:31 +msgid "What's an import package?" +msgstr "Import package ແມ່ນຫຍັງ?" + +#: ../source/discussions/distribution-package-vs-import-package.rst:33 +msgid "" +"An import package is a Python module. Thus, when you write ``import pkg`` or " +"``from pkg import func`` in your Python code, ``pkg`` is the name of an " +"import package. More precisely, import packages are special Python modules " +"that can contain submodules. For example, the ``numpy`` package contains " +"modules like ``numpy.linalg`` and ``numpy.fft``. Usually, an import package " +"is a directory on the file system, containing modules as ``.py`` files and " +"subpackages as subdirectories." +msgstr "" +"Import package ແມ່ນໂມດູນ (module) ຂອງ Python. ດັ່ງນັ້ນ, ເມື່ອທ່ານຂຽນ ``import pkg`` ຫຼື " +"``from pkg import func`` ໃນໂຄ້ດ Python ຂອງທ່ານ, ``pkg`` ກໍຄືຊື່ຂອງ import package. " +"ເວົ້າໃຫ້ຊັດເຈນກວ່າແມ່ນ, import packages ແມ່ນໂມດູນ Python ພິເສດທີ່ສາມາດບັນຈຸໂມດູນຍ່ອຍ " +"(submodules) ໄດ້. ຕົວຢ່າງ: ແພັກເກດ ``numpy`` ປະກອບດ້ວຍໂມດູນຕ່າງໆ ເຊັ່ນ " +"``numpy.linalg`` ແລະ ``numpy.fft``. ໂດຍປົກກະຕິແລ້ວ, import package " +"ຈະເປັນໄດເຣັກທໍຣີໃນລະບົບໄຟລ໌ ທີ່ບັນຈຸໂມດູນເປັນໄຟລ໌ ``.py`` ແລະ ແພັກເກດຍ່ອຍ (subpackages) " +"ເປັນໄດເຣັກທໍຣີຍ່ອຍ." + +#: ../source/discussions/distribution-package-vs-import-package.rst:42 +msgid "" +"You can use an import package as soon as you have installed a distribution " +"package that provides it." +msgstr "" +"ທ່ານສາມາດໃຊ້ import package ໄດ້ທັນທີທີ່ທ່ານໄດ້ຕິດຕັ້ງ distribution package ທີ່ສະໜອງມັນໃຫ້." + +#: ../source/discussions/distribution-package-vs-import-package.rst:47 +msgid "What are the links between distribution packages and import packages?" +msgstr "ຄວາມກ່ຽວພັນລະຫວ່າງ distribution packages ແລະ import packages ແມ່ນຫຍັງ?" + +#: ../source/discussions/distribution-package-vs-import-package.rst:49 +msgid "" +"Most of the time, a distribution package provides one single import package " +"(or non-package module), with a matching name. For example, ``pip install " +"numpy`` lets you ``import numpy``." +msgstr "" +"ສ່ວນຫຼາຍແລ້ວ, distribution package ຈະສະໜອງ import package ພຽງອັນດຽວ (ຫຼື " +"ໂມດູນທີ່ບໍ່ແມ່ນແພັກເກດ), ໂດຍມີຊື່ທີ່ກົງກັນ. ຕົວຢ່າງ: ``pip install numpy`` ຈະຊ່ວຍໃຫ້ທ່ານສາມາດ " +"``import numpy`` ໄດ້." + +#: ../source/discussions/distribution-package-vs-import-package.rst:53 +msgid "" +"However, this is only a convention. PyPI and other package indices *do not " +"enforce any relationship* between the name of a distribution package and the " +"import packages it provides. (A consequence of this is that you cannot " +"blindly install the PyPI package ``foo`` if you see ``import foo``; this may " +"install an unintended, and potentially even malicious package.)" +msgstr "" +"ຢ່າງໃດກໍຕາມ, ນີ້ເປັນພຽງຂໍ້ຕົກລົງຮ່ວມກັນເທົ່ານັ້ນ. PyPI ແລະ ດັດຊະນີແພັກເກດອື່ນໆ " +"*ບໍ່ໄດ້ບັງຄັບຄວາມກ່ຽວພັນໃດໆ* ລະຫວ່າງຊື່ຂອງ distribution package ແລະ import packages " +"ທີ່ມັນສະໜອງໃຫ້. (ຜົນທີ່ຕາມມາຄື ທ່ານບໍ່ຄວນຕິດຕັ້ງແພັກເກດ ``foo`` ຈາກ PyPI " +"ໂດຍບໍ່ກວດສອບພຽງເພາະທ່ານເຫັນຄຳສັ່ງ ``import foo``; ເພາະມັນອາດຈະຕິດຕັ້ງແພັກເກດທີ່ທ່ານບໍ່ໄດ້ຕັ້ງໃຈ " +"ຫຼື ອາດຈະເປັນແພັກເກດທີ່ເປັນອັນຕະລາຍກໍໄດ້.)" + +#: ../source/discussions/distribution-package-vs-import-package.rst:59 +msgid "" +"A distribution package could provide an import package with a different " +"name. An example of this is the popular Pillow_ library for image " +"processing. Its distribution package name is ``Pillow``, but it provides the " +"import package ``PIL``. This is for historical reasons: Pillow started as a " +"fork of the PIL library, thus it kept the import name ``PIL`` so that " +"existing PIL users could switch to Pillow with little effort. More " +"generally, a fork of an existing library is a common reason for differing " +"names between the distribution package and the import package." +msgstr "" +"Distribution package ສາມາດສະໜອງ import package ທີ່ມີຊື່ແຕກຕ່າງກັນໄດ້. ຕົວຢ່າງຄືໄລບຣາຣີ " +"Pillow_ ທີ່ໄດ້ຮັບຄວາມນິຍົມສຳລັບການຈັດການຮູບພາບ. ຊື່ distribution package ຂອງມັນແມ່ນ " +"``Pillow``, ແຕ່ມັນສະໜອງ import package ທີ່ມີຊື່ວ່າ ``PIL``. ນີ້ແມ່ນຍ້ອນເຫດຜົນທາງປະຫວັດສາດ: " +"Pillow ເລີ່ມຕົ້ນຈາກການ fork ໄລບຣາຣີ PIL, ດັ່ງນັ້ນມັນຈຶ່ງຮັກສາຊື່ import ວ່າ ``PIL`` ໄວ້ " +"ເພື່ອໃຫ້ຜູ້ໃຊ້ PIL ເດີມສາມາດປ່ຽນມາໃຊ້ Pillow ໄດ້ໂດຍບໍ່ຕ້ອງແກ້ໄຂຫຍັງຫຼາຍ. ໂດຍທົ່ວໄປແລ້ວ, ການ " +"fork ໄລບຣາຣີທີ່ມີຢູ່ແລ້ວແມ່ນເຫດຜົນຫຼັກທີ່ເຮັດໃຫ້ຊື່ຂອງ distribution package ແລະ import " +"package ແຕກຕ່າງກັນ." + +#: ../source/discussions/distribution-package-vs-import-package.rst:69 +msgid "" +"On a given package index (like PyPI), distribution package names must be " +"unique. On the other hand, import packages have no such requirement. Import " +"packages with the same name can be provided by several distribution " +"packages. Again, forks are a common reason for this." +msgstr "" +"ໃນດັດຊະນີແພັກເກດໃດໜຶ່ງ (ເຊັ່ນ PyPI), ຊື່ຂອງ distribution package ຕ້ອງບໍ່ຊ້ຳກັນ. " +"ໃນທາງກົງກັນຂ້າມ, import packages ບໍ່ມີຂໍ້ກຳນົດດັ່ງກ່າວ. Import packages " +"ທີ່ມີຊື່ຄືກັນສາມາດຖືກສະໜອງໂດຍ distribution packages ຫຼາຍອັນໄດ້. ເຊິ່ງການ fork " +"ກໍເປັນເຫດຜົນທົ່ວໄປຂອງກໍລະນີນີ້ນຳ." + +#: ../source/discussions/distribution-package-vs-import-package.rst:74 +msgid "" +"Conversely, a distribution package can provide several import packages, " +"although this is less common. An example is the attrs_ distribution package, " +"which provides both an ``attrs`` import package with a newer API, and an " +"``attr`` import package with an older but supported API." +msgstr "" +"ໃນທາງກົງກັນຂ້າມ, distribution package ອັນດຽວກໍສາມາດສະໜອງ import packages ຫຼາຍອັນໄດ້, " +"ເຖິງວ່າມັນຈະບໍ່ຄ່ອຍພົບເຫັນຫຼາຍປານໃດ. ຕົວຢ່າງຄື distribution package ຂອງ attrs_, " +"ເຊິ່ງສະໜອງທັງ import package ``attrs`` ທີ່ມີ API ລຸ້ນໃໝ່ ແລະ import package ``attr`` " +"ທີ່ມີ API ລຸ້ນເກົ່າແຕ່ຍັງຮອງຮັບຢູ່." + +#: ../source/discussions/distribution-package-vs-import-package.rst:81 +msgid "How do distribution package names and import package names compare?" +msgstr "ຊື່ distribution package ແລະ import package ແຕກຕ່າງກັນແນວໃດ?" + +#: ../source/discussions/distribution-package-vs-import-package.rst:83 +msgid "" +"Import packages should have valid Python identifiers as their name " +"(the :ref:`exact rules ` are found in the Python " +"documentation) [#non-identifier-mod-name]_. In particular, they use " +"underscores ``_`` as word separator and they are case-sensitive." +msgstr "" +"Import packages ຄວນມີຊື່ທີ່ເປັນ Python identifiers ທີ່ຖືກຕ້ອງ " +"(ສາມາດເບິ່ງ :ref:`ກົດເກນທີ່ລະອຽດ ` ໄດ້ໃນເອກະສານຂອງ Python). " +"ໂດຍສະເພາະແມ່ນ ພວກມັນໃຊ້ underscores ``_`` ເພື່ອແຍກຄຳ ແລະ ໃຫ້ຄວາມສຳຄັນກັບຕົວອັກສອນໃຫຍ່-" +"ນ້ອຍ (case-sensitive)." + +#: ../source/discussions/distribution-package-vs-import-package.rst:88 +msgid "" +"On the other hand, distribution packages can use hyphens ``-`` or " +"underscores ``_``. They can also contain dots ``.``, which is sometimes used " +"for packaging a subpackage of a :ref:`namespace package `. For most purposes, they are insensitive to case and to ``-`` " +"vs. ``_`` differences, e.g., ``pip install Awesome_Package`` is the same as " +"``pip install awesome-package`` (the precise rules are given in " +"the :ref:`name normalization specification `)." +msgstr "" +"ໃນທາງກົງກັນຂ້າມ, distribution packages ສາມາດໃຊ້ hyphens ``-`` ຫຼື underscores " +"``_``. ພວກມັນຍັງສາມາດມີຈຸດ ``.`` " +"ເຊິ່ງບາງຄັ້ງຖືກໃຊ້ສຳລັບການເຮັດແພັກເກດຍ່ອຍຂອງ :ref:`namespace package `. ສ່ວນຫຼາຍແລ້ວ, ພວກມັນຈະບໍ່ແຍກຄວາມແຕກຕ່າງລະຫວ່າງຕົວໃຫຍ່-ນ້ອຍ ແລະ " +"ລະຫວ່າງ ``-`` ກັບ ``_``, ເຊັ່ນ: ``pip install Awesome_Package`` ຈະມີຄ່າເທົ່າກັບ ``pip " +"install awesome-package``." + +#: ../source/discussions/distribution-package-vs-import-package.rst:101 +msgid "" +"Although it is technically possible to import packages/modules that do not " +"have a valid Python identifier as their name, using :doc:`importlib " +"`, this is vanishingly rare and strongly " +"discouraged." +msgstr "" +"ເຖິງວ່າໃນທາງເຕັກນິກຈະສາມາດ import ແພັກເກດ/ໂມດູນ ທີ່ບໍ່ມີຊື່ເປັນ Python identifier ທີ່ຖືກຕ້ອງໄດ້ " +"ໂດຍການໃຊ້ :doc:`importlib `, ແຕ່ມັນເປັນເລື່ອງທີ່ພົບໄດ້ໜ້ອຍທີ່ສຸດ " +"ແລະ ບໍ່ແນະນຳຢ່າງເດັດຂາດ." + +#: ../source/discussions/downstream-packaging.rst:5 +msgid "Supporting downstream packaging" +msgstr "ການສະໜັບສະໜູນການເຮັດແພັກເກດປາຍນ້ຳ (Downstream Packaging)" + +#: ../source/discussions/downstream-packaging.rst:7 +msgid "Draft" +msgstr "ສະບັບຮ່າງ" + +#: ../source/discussions/downstream-packaging.rst:8 +msgid "2025-?" +msgstr "2025-?" + +#: ../source/discussions/downstream-packaging.rst:10 +msgid "" +"While PyPI and the Python packaging tools such as :ref:`pip` are the primary " +"means of distributing Python packages, they are also often made available as " +"part of other packaging ecosystems. These repackaging efforts are " +"collectively called *downstream* packaging (your own efforts are called " +"*upstream* packaging), and include such projects as Linux distributions, " +"Conda, Homebrew and MacPorts. They generally aim to provide improved support " +"for use cases that cannot be handled via Python packaging tools alone, such " +"as native integration with a specific operating system, or assured " +"compatibility with specific versions of non-Python software." +msgstr "" +"ໃນຂະນະທີ່ PyPI ແລະ ເຄື່ອງມືການຈັດການແພັກເກດ Python ເຊັ່ນ :ref:`pip` " +"ແມ່ນຊ່ອງທາງຫຼັກໃນການແຈກຢາຍແພັກເກດ Python, " +"ພວກມັນມັກຈະຖືກເຮັດໃຫ້ພ້ອມໃຊ້ງານໃນລະບົບນິເວດການຈັດການແພັກເກດອື່ນໆ ນຳ. " +"ຄວາມພະຍາຍາມໃນການເຮັດແພັກເກດໃໝ່ເຫຼົ່ານີ້ຖືກເອີ້ນລວມກັນວ່າ *downstream* packaging " +"(ສ່ວນຄວາມພະຍາຍາມຂອງທ່ານເອງເອີ້ນວ່າ *upstream* packaging), ເຊິ່ງລວມມີໂຄງການຕ່າງໆ ເຊັ່ນ " +"Linux distributions, Conda, Homebrew ແລະ MacPorts. ໂດຍທົ່ວໄປແລ້ວ " +"ພວກເຂົາມີເປົ້າໝາຍເພື່ອໃຫ້ການສະໜັບສະໜູນທີ່ດີຂຶ້ນສຳລັບກໍລະນີການນຳໃຊ້ທີ່ເຄື່ອງມື Python " +"ພຽງຢ່າງດຽວບໍ່ສາມາດຈັດການໄດ້, ເຊັ່ນການເຊື່ອມໂຍງກັບລະບົບປະຕິບັດການສະເພາະ, ຫຼື " +"ການຮັບປະກັນຄວາມເຂົ້າກັນໄດ້ກັບຊອບແວອື່ນທີ່ບໍ່ແມ່ນ Python." + +#: ../source/discussions/downstream-packaging.rst:19 +msgid "" +"This discussion attempts to explain how downstream packaging is usually " +"done, and what additional challenges downstream packagers typically face. It " +"aims to provide some optional guidelines that project maintainers may choose " +"to follow which help make downstream packaging *significantly* easier " +"(without imposing any major maintenance hassles on the upstream project). " +"Note that this is not an all-or-nothing proposal — anything that upstream " +"maintainers can do is useful, even if it's only a small part. Downstream " +"maintainers are also willing to prepare patches to resolve these issues. " +"Having these patches merged can be very helpful, since it removes the need " +"for different downstreams to carry and keep rebasing the same patches, and " +"the risk of applying inconsistent solutions to the same problem." +msgstr "" +"ການສົນທະນານີ້ພະຍາຍາມອະທິບາຍວ່າການເຮັດແພັກເກດປາຍນ້ຳ (downstream packaging) " +"ປົກກະຕິແລ້ວເຮັດແນວໃດ, ແລະ ສິ່ງທ້າທາຍເພີ່ມເຕີມທີ່ພວກເຂົາມັກຈະພົບແມ່ນຫຍັງ. " +"ມັນມີຈຸດປະສົງເພື່ອໃຫ້ແນວທາງບາງຢ່າງທີ່ຜູ້ເບິ່ງແຍງໂຄງການສາມາດເລືອກປະຕິບັດຕາມ " +"ເພື່ອຊ່ວຍໃຫ້ການເຮັດແພັກເກດປາຍນ້ຳງ່າຍຂຶ້ນ *ຢ່າງຫຼວງຫຼາຍ*. ໝາຍເຫດ: ນີ້ບໍ່ແມ່ນຂໍ້ສະເໜີທີ່ຕ້ອງເຮັດທັງໝົດ — " +"ສິ່ງໃດກໍຕາມທີ່ຜູ້ເບິ່ງແຍງຕົ້ນນ້ຳ (upstream) ສາມາດເຮັດໄດ້ແມ່ນມີປະໂຫຍດທັງໝົດ. " +"ຜູ້ເບິ່ງແຍງປາຍນ້ຳຍັງຍິນດີທີ່ຈະກຽມ patch ເພື່ອແກ້ໄຂບັນຫາເຫຼົ່ານີ້. ການມີ patch " +"ເຫຼົ່ານີ້ລວມເຂົ້າໃນຕົ້ນນ້ຳຈະມີປະໂຫຍດຫຼາຍ ເພາະມັນຈະຊ່ວຍຫຼຸດຜ່ອນຄວາມຈຳເປັນທີ່ແຕ່ລະປາຍນ້ຳຕ້ອງມາຈັດການ " +"patch ດຽວກັນຊ້ຳໆ." + +#: ../source/discussions/downstream-packaging.rst:31 +msgid "" +"Establishing a good relationship between software maintainers and downstream " +"packagers can bring mutual benefits. Downstreams are often willing to share " +"their experience, time and hardware to improve your package. They are " +"sometimes in a better position to see how your package is used in practice, " +"and to provide information about its relationships with other packages that " +"would otherwise require significant effort to obtain. Packagers can often " +"find bugs before your users hit them in production, provide bug reports of " +"good quality, and supply patches whenever they can. For example, they are " +"regularly active in ensuring the packages they redistribute are updated for " +"any compatibility issues that arise when a new Python version is released." +msgstr "" +"ການສ້າງຄວາມສຳພັນທີ່ດີລະຫວ່າງຜູ້ເບິ່ງແຍງຊອບແວ ແລະ ຜູ້ເຮັດແພັກເກດປາຍນ້ຳ " +"ສາມາດນຳມາເຊິ່ງຜົນປະໂຫຍດຮ່ວມກັນ. ປາຍນ້ຳມັກຈະຍິນດີທີ່ຈະແບ່ງປັນປະສົບການ, ເວລາ ແລະ " +"ຮາດແວເພື່ອປັບປຸງແພັກເກດຂອງທ່ານ. " +"ບາງຄັ້ງພວກເຂົາຢູ່ໃນຈຸດທີ່ເຫັນໄດ້ດີກວ່າວ່າແພັກເກດຂອງທ່ານຖືກນຳໃຊ້ແທ້ແນວໃດ. ຜູ້ເຮັດແພັກເກດມັກຈະພົບ bug " +"ກ່ອນທີ່ຜູ້ໃຊ້ຂອງທ່ານຈະພົບໃນລະບົບຈິງ, ສາມາດໃຫ້ລາຍງານ bug ທີ່ມີຄຸນນະພາບ ແລະ ສົ່ງ patch " +"ໃຫ້ເມື່ອເປັນໄປໄດ້." + +#: ../source/discussions/downstream-packaging.rst:43 +msgid "" +"Please note that downstream builds include not only binary redistribution, " +"but also source builds done on user systems (in source-first distributions " +"such as Gentoo Linux, for example)." +msgstr "" +"ກະລຸນາໝາຍເຫດວ່າ ການ build ຂອງປາຍນ້ຳບໍ່ໄດ້ລວມເອົາພຽງແຕ່ການແຈກຢາຍແບບ binary ເທົ່ານັ້ນ, " +"ແຕ່ຍັງລວມເຖິງການ build ຈາກ source ໃນລະບົບຂອງຜູ້ໃຊ້ (ເຊັ່ນໃນ Gentoo Linux ເປັນຕົ້ນ)." + +#: ../source/discussions/downstream-packaging.rst:51 +msgid "Provide complete source distributions" +msgstr "ສະໜອງ source distributions ທີ່ຄົບຖ້ວນ" + +#: ../source/discussions/downstream-packaging.rst:54 +#: ../source/discussions/downstream-packaging.rst:150 +#: ../source/discussions/downstream-packaging.rst:213 +#: ../source/discussions/downstream-packaging.rst:303 +#: ../source/discussions/downstream-packaging.rst:412 +msgid "Why?" +msgstr "ເປັນຫຍັງ?" + +#: ../source/discussions/downstream-packaging.rst:56 +msgid "" +"The vast majority of downstream packagers prefer to build packages from " +"source, rather than use the upstream-provided binary packages. In some " +"cases, using sources is actually required for the package to be included in " +"the distribution. This is also true of pure Python packages that provide " +"universal wheels. The reasons for using source distributions may include:" +msgstr "" +"ຜູ້ເຮັດແພັກເກດປາຍນ້ຳສ່ວນໃຫຍ່ມັກ build ແພັກເກດຈາກ source ຫຼາຍກວ່າການໃຊ້ binary ທີ່ຕົ້ນນ້ຳຈັດໃຫ້. " +"ໃນບາງກໍລະນີ, ການໃຊ້ source ແມ່ນຂໍ້ກຳນົດເພື່ອໃຫ້ແພັກເກດຖືກລວມເຂົ້າໃນ distro ນັ້ນໆ. " +"ເຫດຜົນໃນການໃຊ້ source distribution ອາດຈະລວມມີ:" + +#: ../source/discussions/downstream-packaging.rst:62 +msgid "Being able to audit the source code of all packages." +msgstr "ສາມາດກວດສອບ (audit) source code ຂອງທຸກແພັກເກດໄດ້." + +#: ../source/discussions/downstream-packaging.rst:64 +msgid "Being able to run the test suite and build documentation." +msgstr "ສາມາດລັນຊຸດການທົດສອບ (test suite) ແລະ build ເອກະສານໄດ້." + +#: ../source/discussions/downstream-packaging.rst:66 +msgid "" +"Being able to easily apply patches, including backporting commits from the " +"project's repository and sending patches back to the project." +msgstr "" +"ສາມາດໃຊ້ patch ໄດ້ງ່າຍ, ລວມທັງການ backport commits ຈາກ repository ຂອງໂຄງການ ແລະ " +"ການສົ່ງ patch ກັບຄືນໄປຫາໂຄງການ." + +#: ../source/discussions/downstream-packaging.rst:69 +msgid "" +"Being able to build on a specific platform that is not covered by upstream " +"builds." +msgstr "ສາມາດ build ໃນແພລັດຟອມສະເພາະທີ່ຕົ້ນນ້ຳບໍ່ໄດ້ຮອງຮັບ." + +#: ../source/discussions/downstream-packaging.rst:72 +msgid "Being able to build against specific versions of system libraries." +msgstr "ສາມາດ build ຮ່ວມກັບເວີຊັນສະເພາະຂອງ system libraries ໄດ້." + +#: ../source/discussions/downstream-packaging.rst:74 +msgid "Having a consistent build process across all Python packages." +msgstr "ເພື່ອໃຫ້ມີຂະບວນການ build ທີ່ສອດຄ່ອງກັນໃນທຸກແພັກເກດ Python." + +#: ../source/discussions/downstream-packaging.rst:76 +msgid "" +"While it is usually possible to build packages from a Git repository, there " +"are a few important reasons to provide a static archive file instead:" +msgstr "" +"ເຖິງວ່າປົກກະຕິແລ້ວຈະສາມາດ build ແພັກເກດຈາກ Git repository ໄດ້, " +"ແຕ່ມີເຫດຜົນສຳຄັນບາງຢ່າງທີ່ຄວນສະໜອງໄຟລ໌ static archive ແທນ:" + +#: ../source/discussions/downstream-packaging.rst:79 +msgid "" +"Fetching a single file is often more efficient, more reliable and better " +"supported than e.g. using a Git clone. This can help users with poor " +"Internet connectivity." +msgstr "" +"ການດຶງໄຟລ໌ດຽວມັກຈະມີປະສິດທິພາບກວ່າ, ເຊື່ອຖືໄດ້ກວ່າ ແລະ ໄດ້ຮັບການຮອງຮັບດີກວ່າການໃຊ້ Git clone. " +"ນີ້ສາມາດຊ່ວຍຜູ້ໃຊ້ທີ່ມີການເຊື່ອມຕໍ່ອິນເຕີເນັດບໍ່ດີໄດ້." + +#: ../source/discussions/downstream-packaging.rst:83 +msgid "" +"Downstreams often use hashes to verify the authenticity of source files on " +"subsequent builds, which require that they remain bitwise identical over " +"time. For example, automatically generated Git archives do not guarantee " +"this, as the compressed data may change if gzip is upgraded on the server." +msgstr "" +"ປາຍນ້ຳມັກຈະໃຊ້ hash ເພື່ອຢືນຢັນຄວາມຖືກຕ້ອງຂອງໄຟລ໌ source, ເຊິ່ງຕ້ອງການໃຫ້ໄຟລ໌ຄືກັນທຸກບິດ " +"(bitwise identical). ຕົວຢ່າງ: Git archives ທີ່ສ້າງໂດຍອັດຕະໂນມັດບໍ່ສາມາດຮັບປະກັນເລື່ອງນີ້ໄດ້ " +"ເພາະຂໍ້ມູນທີ່ຖືກບີບອັດອາດຈະປ່ຽນແປງຖ້າ gzip ໃນ server ຖືກອັບເກຣດ." + +#: ../source/discussions/downstream-packaging.rst:88 +msgid "" +"Archive files can be mirrored, reducing both upstream and downstream " +"bandwidth use. The actual builds can afterwards be performed in firewalled " +"or offline environments, that can only access source files provided by the " +"local mirror or redistributed earlier." +msgstr "" +"ໄຟລ໌ Archive ສາມາດເຮັດ mirror ໄດ້, ເຊິ່ງຊ່ວຍຫຼຸດຜ່ອນການໃຊ້ bandwidth ທັງຕົ້ນນ້ຳ ແລະ ປາຍນ້ຳ. " +"ຈາກນັ້ນການ build ແທ້ໆ ສາມາດເຮັດໄດ້ໃນສະພາບແວດລ້ອມທີ່ມີ firewall ຫຼື offline " +"ທີ່ເຂົ້າເຖິງໄດ້ສະເພາະໄຟລ໌ຈາກ local mirror ເທົ່ານັ້ນ." + +#: ../source/discussions/downstream-packaging.rst:93 +msgid "" +"Explicitly publishing archive files can ensure that any dependencies on " +"version control system metadata are resolved when creating the source " +"archive. For example, automatically generated Git archives omit all of the " +"commit tag information, potentially resulting in incorrect version details " +"in the resulting builds." +msgstr "" +"ການເຜີຍແຜ່ໄຟລ໌ archive ຢ່າງຊັດເຈນຊ່ວຍໃຫ້ແນ່ໃຈວ່າ ຂໍ້ມູນກຳກັບ (metadata) " +"ຂອງລະບົບຄວບຄຸມເວີຊັນຖືກຈັດການຢ່າງຖືກຕ້ອງ." + +#: ../source/discussions/downstream-packaging.rst:99 +#: ../source/discussions/downstream-packaging.rst:179 +#: ../source/discussions/downstream-packaging.rst:277 +#: ../source/discussions/downstream-packaging.rst:337 +#: ../source/discussions/downstream-packaging.rst:441 +msgid "How?" +msgstr "ເຮັດແນວໃດ?" + +#: ../source/discussions/downstream-packaging.rst:101 +msgid "" +"Ideally, **a source distribution archive published on PyPI should include " +"all the files from the package's Git repository** that are necessary to " +"build the package itself, run its test suite, build and install its " +"documentation, and any other files that may be useful to end users, such as " +"shell completions, editor support files, and so on." +msgstr "" +"ຕາມທີ່ຄວນຈະເປັນ, **source distribution archive ທີ່ເຜີຍແຜ່ໃນ PyPI ຄວນລວມເອົາທຸກໄຟລ໌ຈາກ " +"Git repository ຂອງແພັກເກດ** ທີ່ຈຳເປັນໃນການ build ແພັກເກດ, ລັນຊຸດການທົດສອບ, build ແລະ " +"ຕິດຕັ້ງເອກະສານ, ແລະ ໄຟລ໌ອື່ນໆ ທີ່ມີປະໂຫຍດຕໍ່ຜູ້ໃຊ້." + +#: ../source/discussions/downstream-packaging.rst:107 +msgid "" +"This point applies only to the files belonging to the package itself. The " +"downstream packaging process, much like Python package managers, will " +"provision the necessary Python dependencies, system tools and external " +"libraries that are needed by your package and its build scripts. However, " +"the files listing these dependencies (for example, ``requirements*.txt`` " +"files) should also be included, to help downstreams determine the needed " +"dependencies, and check for changes in them." +msgstr "" +"ຈຸດນີ້ໝາຍເຖິງສະເພາະໄຟລ໌ທີ່ເປັນຂອງແພັກເກດເອງເທົ່ານັ້ນ. ຂະບວນການຂອງປາຍນ້ຳຈະຈັດການ " +"dependencies ຂອງ Python ແລະ ເຄື່ອງມືຕ່າງໆ ເອງ. ແຕ່ຢ່າງໃດກໍຕາມ, ໄຟລ໌ທີ່ລະບຸ dependencies " +"ເຫຼົ່ານີ້ (ຕົວຢ່າງ: ``requirements*.txt``) ກໍຄວນລວມເຂົ້ານຳ." + +#: ../source/discussions/downstream-packaging.rst:115 +msgid "" +"Some projects have concerns related to Python package managers using source " +"distributions from PyPI. They do not wish to increase their size with files " +"that are not used by these tools, or they do not wish to publish source " +"distributions at all, as they enable a problematic or outright nonfunctional " +"fallback to building the particular project from source. In these cases, a " +"good compromise may be to publish a separate source archive for downstream " +"use elsewhere, for example by attaching it to a GitHub release. " +"Alternatively, large files, such as test data, can be split into separate " +"archives." +msgstr "" +"ບາງໂຄງການອາດຈະກັງວົນເລື່ອງຂະໜາດຂອງໄຟລ໌ໃນ PyPI. ໃນກໍລະນີນີ້, ການແກ້ໄຂທີ່ດີຄືການເຜີຍແຜ່ source " +"archive ແຍກໄວ້ບ່ອນອື່ນ ເຊັ່ນໃນ GitHub release." + +#: ../source/discussions/downstream-packaging.rst:124 +msgid "" +"On the other hand, some projects (NumPy_, for instance) decide to include " +"tests in their installed packages. This has the added advantage of " +"permitting users to run tests after installing them, for example to check " +"for regressions after upgrading a dependency. Yet another approach is to " +"split tests or test data into a separate Python package. Such an approach " +"was taken by the cryptography_ project, with the large test vectors being " +"split to cryptography-vectors_ package." +msgstr "" +"ໃນທາງກົງກັນຂ້າມ, ບາງໂຄງການ (ເຊັ່ນ NumPy_) " +"ຕັດສິນໃຈລວມເອົາການທົດສອບເຂົ້າໃນແພັກເກດທີ່ຕິດຕັ້ງແລ້ວເລີຍ. " +"ນີ້ມີຂໍ້ດີຄືຊ່ວຍໃຫ້ຜູ້ໃຊ້ສາມາດລັນການທົດສອບຫຼັງຈາກຕິດຕັ້ງໄດ້." + +#: ../source/discussions/downstream-packaging.rst:132 +msgid "" +"A good idea is to use your source distribution in the release workflow. For " +"example, the :ref:`build` tool does exactly that — it first builds a source " +"distribution, and then uses it to build a wheel. This ensures that the " +"source distribution actually works, and that it won't accidentally install " +"fewer files than the official wheels." +msgstr "" +"ແນວຄິດທີ່ດີຄືການໃຊ້ source distribution ຂອງທ່ານໃນຂະບວນການ release (workflow). " +"ຕົວຢ່າງ: ເຄື່ອງມື :ref:`build` ຈະ build source distribution ກ່ອນ, ແລ້ວຈຶ່ງໃຊ້ມັນເພື່ອ " +"build wheel. ນີ້ຈະຮັບປະກັນວ່າ source distribution ເຮັດວຽກໄດ້ແທ້." + +#: ../source/discussions/downstream-packaging.rst:138 +msgid "" +"Ideally, also use the source distribution to run tests, build documentation, " +"and so on, or add specific tests to make sure that all necessary files were " +"actually included. Understandably, this requires more effort, so it's fine " +"not do that — downstream packagers will report any missing files promptly." +msgstr "" +"ຖ້າເປັນໄປໄດ້, ໃຫ້ໃຊ້ source distribution ເພື່ອລັນການທົດສອບ ແລະ build ເອກະສານ " +"ເພື່ອໃຫ້ແນ່ໃຈວ່າທຸກໄຟລ໌ທີ່ຈຳເປັນຖືກລວມເຂົ້າແລ້ວ." + +#: ../source/discussions/downstream-packaging.rst:147 +msgid "Do not use the Internet during the build process" +msgstr "ຫ້າມໃຊ້ອິນເຕີເນັດໃນລະຫວ່າງຂະບວນການ build" + +#: ../source/discussions/downstream-packaging.rst:152 +msgid "" +"Downstream builds are frequently done in sandboxed environments that cannot " +"access the Internet. The package sources are unpacked into this environment, " +"and all the necessary dependencies are installed." +msgstr "" +"ການ build ຂອງປາຍນ້ຳມັກຈະເຮັດໃນສະພາບແວດລ້ອມທີ່ຖືກແຍກສ່ວນ (sandboxed) " +"ເຊິ່ງບໍ່ສາມາດເຂົ້າເຖິງອິນເຕີເນັດໄດ້." + +#: ../source/discussions/downstream-packaging.rst:156 +msgid "" +"Even if this is not the case, and assuming that you took sufficient care to " +"properly authenticate downloads, using the Internet is discouraged for a " +"number of reasons:" +msgstr "" +"ເຖິງແມ່ນວ່າຈະເຂົ້າເຖິງອິນເຕີເນັດໄດ້, ແຕ່ການໃຊ້ອິນເຕີເນັດກໍບໍ່ໄດ້ຮັບການແນະນຳຍ້ອນເຫດຜົນຫຼາຍປະການ:" + +#: ../source/discussions/downstream-packaging.rst:160 +msgid "" +"The Internet connection may be unstable (e.g. due to poor reception) or " +"suffer from temporary problems that could cause the process to fail or hang." +msgstr "" +"ການເຊື່ອມຕໍ່ອິນເຕີເນັດອາດຈະບໍ່ສະຖຽນ ຫຼື ມີບັນຫາຊົ່ວຄາວ ເຊິ່ງອາດຈະເຮັດໃຫ້ການ build ຫຼົ້ມເຫຼວ ຫຼື ຄ້າງ." + +#: ../source/discussions/downstream-packaging.rst:164 +msgid "" +"The remote resources may become temporarily or even permanently unavailable, " +"making the build no longer possible. This is especially problematic when " +"someone needs to build an old package version." +msgstr "" +"ຊັບພະຍາກອນຈາກໄລຍະໄກອາດຈະບໍ່ພ້ອມໃຊ້ງານຊົ່ວຄາວ ຫຼື ຖາວອນ, ເຮັດໃຫ້ບໍ່ສາມາດ build ໄດ້ອີກຕໍ່ໄປ. " +"ນີ້ຈະເປັນບັນຫາຫຼາຍເມື່ອຕ້ອງການ build ແພັກເກດເວີຊັນເກົ່າ." + +#: ../source/discussions/downstream-packaging.rst:168 +msgid "The remote resources may change, making the build not reproducible." +msgstr "" +"ຊັບພະຍາກອນຈາກໄລຍະໄກອາດຈະປ່ຽນແປງ, ເຮັດໃຫ້ການ build ບໍ່ໄດ້ຜົນລັບຄືເກົ່າ (not reproducible)." + +#: ../source/discussions/downstream-packaging.rst:170 +msgid "" +"Accessing remote servers poses a privacy issue and a potential security " +"issue, as it exposes information about the system building the package." +msgstr "ການເຂົ້າເຖິງ server ຈາກໄລຍະໄກອາດຈະມີບັນຫາເລື່ອງຄວາມເປັນສ່ວນຕົວ ແລະ ຄວາມປອດໄພ." + +#: ../source/discussions/downstream-packaging.rst:174 +msgid "" +"The user may be using a service with a limited data plan, in which " +"uncontrolled Internet access may result in additional charges or other " +"inconveniences." +msgstr "" +"ຜູ້ໃຊ້ອາດຈະໃຊ້ອິນເຕີເນັດທີ່ມີການຈຳກັດຂໍ້ມູນ, " +"ການເຂົ້າເຖິງອິນເຕີເນັດໂດຍບໍ່ຄວບຄຸມອາດຈະເຮັດໃຫ້ມີຄ່າໃຊ້ຈ່າຍເພີ່ມເຕີມ." + +#: ../source/discussions/downstream-packaging.rst:181 +msgid "" +"If the package is implementing any custom build *backend* actions that use " +"the Internet, for example by automatically downloading vendored dependencies " +"or fetching Git submodules, its source distribution should either include " +"all of these files or allow provisioning them externally, and the Internet " +"must not be used if the files are already present." +msgstr "" +"ຖ້າແພັກເກດມີການ build *backend* ທີ່ຕ້ອງໃຊ້ອິນເຕີເນັດ, source distribution " +"ຄວນລວມເອົາໄຟລ໌ເຫຼົ່ານັ້ນໄວ້ນຳເລີຍ ຫຼື ອະນຸຍາດໃຫ້ຈັດຫາຈາກພາຍນອກໄດ້." + +#: ../source/discussions/downstream-packaging.rst:187 +msgid "" +"Note that this point does not apply to Python dependencies that are " +"specified in the package metadata, and are fetched during the build and " +"installation process by *frontends* (such as :ref:`build` or :ref:`pip`). " +"Downstreams use frontends that use local provisioning for Python " +"dependencies." +msgstr "" +"ໝາຍເຫດ: ຈຸດນີ້ບໍ່ໄດ້ໃຊ້ກັບ Python dependencies ທີ່ລະບຸໄວ້ໃນ metadata ເຊິ່ງຈະຖືກດຶງໂດຍ " +"*frontends* (ເຊັ່ນ :ref:`build` ຫຼື :ref:`pip`)." + +#: ../source/discussions/downstream-packaging.rst:192 +msgid "" +"Ideally, custom build scripts should not even attempt to access the Internet " +"at all, unless explicitly requested to. If any resources are missing and " +"need to be fetched, they should ask the user for permission first. If that " +"is not feasible, the next best thing is to provide an opt-out switch to " +"disable all Internet access. This could be done e.g. by checking whether a " +"``NO_NETWORK`` environment variable is set to a non-empty value." +msgstr "" +"ຕາມທີ່ຄວນຈະເປັນ, build scripts ທີ່ກຳນົດເອງບໍ່ຄວນພະຍາຍາມເຂົ້າເຖິງອິນເຕີເນັດເລີຍ " +"ຍົກເວັ້ນແຕ່ມີການຮ້ອງຂໍຢ່າງຊັດເຈນ. ທາງເລືອກທີ່ດີຄືການມີປຸ່ມປິດ (switch) " +"ເພື່ອປິດການເຂົ້າເຖິງອິນເຕີເນັດທັງໝົດ." + +#: ../source/discussions/downstream-packaging.rst:199 +msgid "" +"Since downstreams frequently also run tests and build documentation, the " +"above should ideally extend to these processes as well." +msgstr "" +"ເນື່ອງຈາກປາຍນ້ຳມັກຈະລັນການທົດສອບ ແລະ build ເອກະສານນຳ, " +"ສິ່ງທີ່ກ່າວມາຂ້າງເທິງນັ້ນກໍຄວນໃຊ້ກັບຂະບວນການເຫຼົ່ານີ້ຄືກັນ." + +#: ../source/discussions/downstream-packaging.rst:202 +msgid "" +"Please also remember that if you are fetching remote resources, you " +"absolutely must *verify their authenticity* (usually against a hash), to " +"protect against the file being substituted by a malicious party." +msgstr "" +"ກະລຸນາຈື່ໄວ້ວ່າ ຖ້າທ່ານມີການດຶງຊັບພະຍາກອນຈາກໄລຍະໄກ, ທ່ານຕ້ອງ *ກວດສອບຄວາມຖືກຕ້ອງ* " +"(ປົກກະຕິແລ້ວແມ່ນໃຊ້ hash) ເພື່ອປ້ອງກັນການຖືກປ່ຽນແທນດ້ວຍໄຟລ໌ທີ່ເປັນອັນຕະລາຍ." + +#: ../source/discussions/downstream-packaging.rst:210 +msgid "Support building against system dependencies" +msgstr "ສະໜັບສະໜູນການ build ໂດຍໃຊ້ dependencies ຂອງລະບົບ" + +#: ../source/discussions/downstream-packaging.rst:215 +msgid "" +"Some Python projects have non-Python dependencies, such as libraries written " +"in C or C++. Trying to use the system versions of these dependencies in " +"upstream packaging may cause a number of problems for end users:" +msgstr "" +"ບາງໂຄງການ Python ມີ dependencies ທີ່ບໍ່ແມ່ນ Python ເຊັ່ນ libraries ທີ່ຂຽນດ້ວຍ C ຫຼື C++. " +"ການພະຍາຍາມໃຊ້ເວີຊັນຂອງລະບົບໃນຕົ້ນນ້ຳອາດຈະເຮັດໃຫ້ເກີດບັນຫາຫຼາຍຢ່າງສຳລັບຜູ້ໃຊ້:" + +#: ../source/discussions/downstream-packaging.rst:219 +msgid "" +"The published wheels require a binary-compatible version of the used library " +"to be present on the user's system. If the library is missing or an " +"incompatible version is installed, the Python package may fail with errors " +"that are not clear to inexperienced users, or even misbehave at runtime." +msgstr "" +"Wheels ທີ່ເຜີຍແຜ່ຕ້ອງການ library ທີ່ເຂົ້າກັນໄດ້ໃນລະບົບຂອງຜູ້ໃຊ້. ຖ້າບໍ່ມີ ຫຼື ເວີຊັນບໍ່ເຂົ້າກັນ, ແພັກເກດ " +"Python ອາດຈະຫຼົ້ມເຫຼວ." + +#: ../source/discussions/downstream-packaging.rst:224 +msgid "" +"Building from a source distribution requires a source-compatible version of " +"the dependency to be present, along with its development headers and other " +"auxiliary files that some systems package separately from the library itself." +msgstr "" +"ການ build ຈາກ source distribution ຕ້ອງການເວີຊັນທີ່ເຂົ້າກັນໄດ້ ພ້ອມທັງ development " +"headers ແລະ ໄຟລ໌ເສີມອື່ນໆ." + +#: ../source/discussions/downstream-packaging.rst:229 +msgid "" +"Even for an experienced user, installing a compatible dependency version may " +"be very hard. For example, the used Linux distribution may not provide the " +"required version, or some other package may require an incompatible version." +msgstr "ເຖິງແມ່ນວ່າຈະເປັນຜູ້ໃຊ້ທີ່ມີປະສົບການ, ການຕິດຕັ້ງ dependency ໃຫ້ເຂົ້າກັນໄດ້ກໍອາດຈະຍາກຫຼາຍ." + +#: ../source/discussions/downstream-packaging.rst:234 +msgid "" +"The linkage between the Python package and its system dependency is not " +"recorded by the packaging system. The next system update may upgrade the " +"library to a newer version that breaks binary compatibility with the Python " +"package, and requires user intervention to fix." +msgstr "" +"ຄວາມກ່ຽວພັນລະຫວ່າງແພັກເກດ Python ແລະ system dependency " +"ບໍ່ໄດ້ຖືກບັນທຶກໄວ້ໂດຍລະບົບການຈັດການແພັກເກດ." + +#: ../source/discussions/downstream-packaging.rst:239 +msgid "" +"For these reasons, you may reasonably decide to either statically link your " +"dependencies, or to provide local copies in the installed package. You may " +"also vendor the dependency in your source distribution. Sometimes these " +"dependencies are also repackaged on PyPI, and can be declared as project " +"dependencies like any other Python package." +msgstr "" +"ດ້ວຍເຫດຜົນເຫຼົ່ານີ້, ທ່ານອາດຈະຕັດສິນໃຈໃຊ້ການ link ແບບ static ຫຼື ລວມ library " +"ໄວ້ໃນແພັກເກດເລີຍ (vendor)." + +#: ../source/discussions/downstream-packaging.rst:245 +msgid "" +"However, none of these issues apply to downstream packaging, and downstreams " +"have good reasons to prefer dynamically linking to system dependencies. In " +"particular:" +msgstr "" +"ແນວໃດກໍຕາມ, ບັນຫາເຫຼົ່ານີ້ບໍ່ໄດ້ເກີດຂຶ້ນກັບການເຮັດແພັກເກດປາຍນ້ຳ, ແລະ " +"ປາຍນ້ຳມີເຫດຜົນທີ່ດີກວ່າໃນການເລືອກ link ແບບ dynamic ກັບ dependencies ຂອງລະບົບ:" + +#: ../source/discussions/downstream-packaging.rst:249 +msgid "" +"In many cases, reliably sharing dynamic dependencies between components is a " +"large part of the *purpose* of a downstream packaging ecosystem. Helping to " +"support that makes it easier for users of those systems to access upstream " +"projects in their preferred format." +msgstr "" +"ໃນຫຼາຍກໍລະນີ, ການແບ່ງປັນ dependencies ແບບ dynamic ແມ່ນສ່ວນໜຶ່ງຂອງ *ຈຸດປະສົງ* " +"ຂອງລະບົບນິເວດປາຍນ້ຳ." + +#: ../source/discussions/downstream-packaging.rst:253 +msgid "" +"Static linking and vendoring obscures the use of external dependencies, " +"making source auditing harder." +msgstr "" +"ການ link ແບບ static ແລະ ການເຮັດ vendor ເຮັດໃຫ້ການກວດສອບ (audit) source code " +"ຍາກຂຶ້ນ." + +#: ../source/discussions/downstream-packaging.rst:256 +msgid "" +"Dynamic linking makes it possible to quickly and systematically replace the " +"used libraries across an entire downstream packaging ecosystem, which can be " +"particularly important when they turn out to contain a security " +"vulnerability or critical bug." +msgstr "" +"ການ link ແບບ dynamic ຊ່ວຍໃຫ້ສາມາດປ່ຽນແທນ library ໄດ້ຢ່າງໄວວາໃນທົ່ວລະບົບ " +"ເມື່ອພົບຊ່ອງໂຫວ່ດ້ານຄວາມປອດໄພ." + +#: ../source/discussions/downstream-packaging.rst:260 +msgid "" +"Using system dependencies makes the package benefit from downstream " +"customization that can improve the user experience on a particular platform, " +"without the downstream maintainers having to consistently patch the " +"dependencies vendored in different packages. This can include compatibility " +"improvements and security hardening." +msgstr "ການໃຊ້ dependencies ຂອງລະບົບຊ່ວຍໃຫ້ແພັກເກດໄດ້ຮັບຜົນປະໂຫຍດຈາກການປັບແຕ່ງຂອງປາຍນ້ຳ." + +#: ../source/discussions/downstream-packaging.rst:266 +msgid "" +"Static linking and vendoring can result in multiple different versions of " +"the same library being loaded in the same process (for example, attempting " +"to import two Python packages that link to different versions of the same " +"library). This sometimes works without incident, but it can also lead to " +"anything from library loading errors, to subtle runtime bugs, to " +"catastrophic failures (like suddenly crashing and losing data)." +msgstr "" +"ການ link ແບບ static ແລະ ການເຮັດ vendor ອາດຈະເຮັດໃຫ້ມີການໂຫຼດ library " +"ດຽວກັນຫຼາຍເວີຊັນໃນ process ດຽວ ເຊິ່ງອາດຈະເຮັດໃຫ້ໂປຣແກຣມ crash ໄດ້." + +#: ../source/discussions/downstream-packaging.rst:273 +msgid "" +"Last but not least, static linking and vendoring results in duplication, and " +"may increase the use of both disk space and memory." +msgstr "" +"ສຸດທ້າຍ, ການ link ແບບ static ແລະ ການເຮັດ vendor ເຮັດໃຫ້ເກີດຄວາມຊ້ຳຊ້ອນ ແລະ " +"ເພີ່ມການໃຊ້ເນື້ອທີ່ໃນ disk ແລະ memory." + +#: ../source/discussions/downstream-packaging.rst:279 +msgid "" +"A good compromise between the needs of both parties is to provide a switch " +"between using vendored and system dependencies. Ideally, if the package has " +"multiple vendored dependencies, it should provide both individual switches " +"for each dependency, and a general switch to control the default for them, " +"e.g. via a ``USE_SYSTEM_DEPS`` environment variable." +msgstr "" +"ການແກ້ໄຂທີ່ດີຄືການມີປຸ່ມປິດ (switch) ເພື່ອເລືອກລະຫວ່າງການໃຊ້ vendored ແລະ system " +"dependencies ເຊັ່ນການໃຊ້ environment variable ``USE_SYSTEM_DEPS``." + +#: ../source/discussions/downstream-packaging.rst:285 +msgid "" +"If the user requests using system dependencies, and a particular dependency " +"is either missing or incompatible, the build should fail with an explanatory " +"message rather than fall back to a vendored version. This gives the packager " +"the opportunity to notice their mistake and a chance to consciously decide " +"how to solve it." +msgstr "" +"ຖ້າຜູ້ໃຊ້ຮ້ອງຂໍການໃຊ້ dependencies ຂອງລະບົບ ແຕ່ມັນບໍ່ມີ ຫຼື ບໍ່ເຂົ້າກັນ, ການ build " +"ຄວນຈະຫຼົ້ມເຫຼວພ້ອມແຈ້ງຂໍ້ຄວາມອະທິບາຍ." + +#: ../source/discussions/downstream-packaging.rst:291 +msgid "" +"It is reasonable for upstream projects to leave *testing* of building with " +"system dependencies to their downstream repackagers. The goal of these " +"guidelines is to facilitate more effective collaboration between upstream " +"projects and downstream repackagers, not to suggest upstream projects take " +"on tasks that downstream repackagers are better equipped to handle." +msgstr "" +"ມັນເປັນເລື່ອງສົມຄວນທີ່ຕົ້ນນ້ຳຈະໃຫ້ການ *ທົດສອບ* ການ build ດ້ວຍ dependencies ຂອງລະບົບ " +"ເປັນໜ້າທີ່ຂອງປາຍນ້ຳ." + +#: ../source/discussions/downstream-packaging.rst:300 +msgid "Support downstream testing" +msgstr "ສະໜັບສະໜູນການທົດສອບຂອງປາຍນ້ຳ" + +#: ../source/discussions/downstream-packaging.rst:305 +msgid "" +"A variety of downstream projects run some degree of testing on the packaged " +"Python projects. Depending on the particular case, this can range from " +"minimal smoke testing to comprehensive runs of the complete test suite. " +"There can be various reasons for doing this, for example:" +msgstr "ໂຄງການປາຍນ້ຳຫຼາຍແຫ່ງມີການລັນການທົດສອບແພັກເກດ Python. ເຫດຜົນໃນການເຮັດແບບນີ້ລວມມີ:" + +#: ../source/discussions/downstream-packaging.rst:310 +msgid "Verifying that the downstream packaging did not introduce any bugs." +msgstr "ເພື່ອກວດສອບວ່າການເຮັດແພັກເກດຂອງປາຍນ້ຳບໍ່ໄດ້ສ້າງ bug ໃໝ່." + +#: ../source/discussions/downstream-packaging.rst:312 +msgid "" +"Testing on additional platforms that are not covered by upstream testing." +msgstr "ເພື່ອທົດສອບໃນແພລັດຟອມເພີ່ມເຕີມທີ່ຕົ້ນນ້ຳບໍ່ໄດ້ທົດສອບ." + +#: ../source/discussions/downstream-packaging.rst:314 +msgid "" +"Finding subtle bugs that can only be reproduced with particular hardware, " +"system package versions, and so on." +msgstr "ເພື່ອຊອກຫາ bug ທີ່ເກີດຂຶ້ນສະເພາະກັບຮາດແວ ຫຼື ເວີຊັນຂອງລະບົບໃດໜຶ່ງ." + +#: ../source/discussions/downstream-packaging.rst:317 +msgid "" +"Testing the released package against newer (or older) dependency versions " +"than the ones present during upstream release testing." +msgstr "ເພື່ອທົດສອບແພັກເກດກັບ dependency ເວີຊັນໃໝ່ (ຫຼື ເກົ່າ) ກວ່າທີ່ໃຊ້ໃນຕອນທົດສອບຕົ້ນນ້ຳ." + +#: ../source/discussions/downstream-packaging.rst:320 +msgid "" +"Testing the package in an environment closely resembling the production " +"setup. This can detect issues caused by non-trivial interactions between " +"different installed packages, including packages that are not dependencies " +"of your package, but nevertheless can cause issues." +msgstr "ເພື່ອທົດສອບແພັກເກດໃນສະພາບແວດລ້ອມທີ່ໃກ້ຄຽງກັບການໃຊ້ງານຈິງ." + +#: ../source/discussions/downstream-packaging.rst:325 +msgid "" +"Testing the released package against newer Python versions (including newer " +"point releases), or less tested Python implementations such as PyPy." +msgstr "ເພື່ອທົດສອບແພັກເກດກັບ Python ເວີຊັນໃໝ່ໆ ຫຼື Python ປະເພດອື່ນ ເຊັ່ນ PyPy." + +#: ../source/discussions/downstream-packaging.rst:328 +msgid "" +"Admittedly, sometimes downstream testing may yield false positives or bug " +"reports about scenarios the upstream project is not interested in " +"supporting. However, perhaps even more often it does provide early notice of " +"problems, or find non-trivial bugs that would otherwise cause issues for the " +"upstream project's users. While mistakes do happen, the majority of " +"downstream packagers are doing their best to double-check their results, and " +"help upstream maintainers triage and fix the bugs that they reported." +msgstr "" +"ເຖິງວ່າບາງຄັ້ງການທົດສອບຂອງປາຍນ້ຳອາດຈະໄດ້ຜົນທີ່ຄາດເຄື່ອນ, ແຕ່ສ່ວນໃຫຍ່ແລ້ວມັນຊ່ວຍໃຫ້ພົບບັນຫາໄດ້ໄວຂຶ້ນ." + +#: ../source/discussions/downstream-packaging.rst:339 +msgid "" +"There are a number of things that upstream projects can do to help " +"downstream repackagers test their packages efficiently and effectively, " +"including some of the suggestions already mentioned above. These are " +"typically improvements that make the test suite more reliable and easier to " +"use for everyone, not just downstream packagers. Some specific suggestions " +"are:" +msgstr "ມີຫຼາຍຢ່າງທີ່ຕົ້ນນ້ຳສາມາດເຮັດໄດ້ເພື່ອຊ່ວຍໃຫ້ປາຍນ້ຳທົດສອບໄດ້ງ່າຍຂຶ້ນ:" + +#: ../source/discussions/downstream-packaging.rst:345 +msgid "" +"Include the test files and fixtures in the source distribution, or make it " +"possible to easily download them separately." +msgstr "" +"ລວມໄຟລ໌ທົດສອບ ແລະ fixtures ໄວ້ໃນ source distribution ຫຼື ເຮັດໃຫ້ດາວໂຫຼດແຍກໄດ້ງ່າຍ." + +#: ../source/discussions/downstream-packaging.rst:348 +msgid "" +"Do not write to the package directories during testing. Downstream test " +"setups sometimes run tests on top of the installed package, and " +"modifications performed during testing and temporary test files may end up " +"being part of the installed package!" +msgstr "ຢ່າຂຽນຂໍ້ມູນລົງໃນໄດເຣັກທໍຣີຂອງແພັກເກດໃນລະຫວ່າງການທົດສອບ." + +#: ../source/discussions/downstream-packaging.rst:353 +msgid "" +"Make the test suite work offline. Mock network interactions, using packages " +"such as responses_ or vcrpy_. If that is not possible, make it possible to " +"easily disable the tests using Internet access, e.g. via a pytest_ marker. " +"Use pytest-socket_ to verify that your tests work offline. This often makes " +"your own test workflows faster and more reliable as well." +msgstr "ເຮັດໃຫ້ຊຸດການທົດສອບເຮັດວຽກແບບ offline ໄດ້. ໃຊ້ການ mock ເຄືອຂ່າຍ." + +#: ../source/discussions/downstream-packaging.rst:359 +msgid "" +"Make your tests work without a specialized setup, or perform the necessary " +"setup as part of test fixtures. Do not ever assume that you can connect to " +"system services such as databases — in an extreme case, you could crash a " +"production service!" +msgstr "" +"ເຮັດໃຫ້ການທົດສອບເຮັດວຽກໄດ້ໂດຍບໍ່ຕ້ອງມີການຕັ້ງຄ່າພິເສດ. " +"ຢ່າຄາດການວ່າຈະສາມາດເຊື່ອມຕໍ່ກັບບໍລິການຂອງລະບົບ ເຊັ່ນ ຖານຂໍ້ມູນ ໄດ້ສະເໝີ." + +#: ../source/discussions/downstream-packaging.rst:364 +msgid "" +"If your package has optional dependencies, make their tests optional as " +"well. Either skip them if the needed packages are not installed, or add " +"markers to make deselecting easy." +msgstr "ຖ້າແພັກເກດມີ optional dependencies, ໃຫ້ການທົດສອບຂອງພວກມັນເປັນທາງເລືອກຄືກັນ." + +#: ../source/discussions/downstream-packaging.rst:368 +msgid "" +"More generally, add markers to tests with special requirements. These can " +"include e.g. significant space usage, significant memory usage, long " +"runtime, incompatibility with parallel testing." +msgstr "ເພີ່ມ markers ໃຫ້ກັບການທົດສອບທີ່ມີຄວາມຕ້ອງການພິເສດ ເຊັ່ນ ໃຊ້ memory ຫຼາຍ ຫຼື ໃຊ້ເວລາດົນ." + +#: ../source/discussions/downstream-packaging.rst:372 +msgid "" +"Do not assume that the test suite will be run with ``-Werror``. Downstreams " +"often need to disable that, as it causes false positives, e.g. due to newer " +"dependency versions. Assert for warnings using ``pytest.warns()`` rather " +"than ``pytest.raises()``!" +msgstr "ຢ່າຄາດການວ່າຊຸດການທົດສອບຈະຖືກລັນດ້ວຍ ``-Werror``." + +#: ../source/discussions/downstream-packaging.rst:377 +msgid "" +"Aim to make your test suite reliable and reproducible. Avoid flaky tests. " +"Avoid depending on specific platform details, don't rely on exact results of " +"floating-point computation, or timing of operations, and so on. Fuzzing has " +"its advantages, but you want to have static test cases for completeness as " +"well." +msgstr "ພະຍາຍາມເຮັດໃຫ້ຊຸດການທົດສອບມີຄວາມໜ້າເຊື່ອຖື ແລະ ໃຫ້ຜົນຄືເກົ່າທຸກຄັ້ງ." + +#: ../source/discussions/downstream-packaging.rst:383 +msgid "" +"Split tests by their purpose, and make it easy to skip categories that are " +"irrelevant or problematic. Since the primary purpose of downstream testing " +"is to ensure that the package itself works, downstreams are not generally " +"interested in tasks such as checking code coverage, code formatting, " +"typechecking or running benchmarks. These tests can fail as dependencies are " +"upgraded or the system is under load, without actually affecting the package " +"itself." +msgstr "ແຍກການທົດສອບຕາມຈຸດປະສົງ." + +#: ../source/discussions/downstream-packaging.rst:390 +msgid "" +"If your test suite takes significant time to run, support testing in " +"parallel. Downstreams often maintain a large number of packages, and testing " +"them all takes a lot of time. Using pytest-xdist_ can help them avoid " +"bottlenecks." +msgstr "ຖ້າການທົດສອບໃຊ້ເວລານານ, ຄວນຮອງຮັບການທົດສອບແບບຂະໜານ (parallel)." + +#: ../source/discussions/downstream-packaging.rst:395 +msgid "" +"Ideally, support running your test suite via ``pytest``. pytest_ has many " +"command-line arguments that are truly helpful to downstreams, such as the " +"ability to conveniently deselect tests, rerun flaky tests (via pytest-" +"rerunfailures_), add a timeout to prevent tests from hanging (via pytest-" +"timeout_) or run tests in parallel (via pytest-xdist_). Note that test " +"suites don't need to be *written* with ``pytest`` to be *executed* with " +"``pytest``: ``pytest`` is able to find and execute almost all test cases " +"that are compatible with the standard library's ``unittest`` test discovery." +msgstr "ຕາມທີ່ຄວນຈະເປັນ, ຄວນຮອງຮັບການລັນການທົດສອບຜ່ານ ``pytest``." + +#: ../source/discussions/downstream-packaging.rst:409 +msgid "Aim for stable releases" +msgstr "ຕັ້ງເປົ້າໝາຍສຳລັບການ release ທີ່ສະຖຽນ" + +#: ../source/discussions/downstream-packaging.rst:414 +msgid "" +"Many downstreams provide stable release channels in addition to the main " +"package streams. The goal of these channels is to provide more conservative " +"upgrades to users with higher stability needs. These users often prefer to " +"trade having the newest features available for lower risk of issues." +msgstr "ປາຍນ້ຳຫຼາຍແຫ່ງມີຊ່ອງທາງ stable release." + +#: ../source/discussions/downstream-packaging.rst:419 +msgid "" +"While the exact policies differ, an important criterion for including a new " +"package version in a stable release channel is for it to be available in " +"testing for some time already, and have no known major regressions. For " +"example, in Gentoo Linux a package is usually marked stable after being " +"available in testing for a month, and being tested against the versions of " +"its dependencies that are marked stable at the time." +msgstr "" +"ເງື່ອນໄຂສຳຄັນໃນການເອົາແພັກເກດເຂົ້າ stable channel ແມ່ນມັນຕ້ອງຜ່ານການທົດສອບມາໄລຍະໜຶ່ງ." + +#: ../source/discussions/downstream-packaging.rst:426 +msgid "" +"However, there are circumstances which demand more prompt action. For " +"example, if a security vulnerability or a major bug is found in the version " +"that is currently available in the stable channel, the downstream is facing " +"a need to resolve it. In this case, they need to consider various options, " +"such as:" +msgstr "" +"ຢ່າງໃດກໍຕາມ, ບາງກໍລະນີອາດຈະຕ້ອງການການແກ້ໄຂຢ່າງຮີບດ່ວນ ເຊັ່ນ ເມື່ອພົບຊ່ອງໂຫວ່ດ້ານຄວາມປອດໄພ." + +#: ../source/discussions/downstream-packaging.rst:431 +msgid "putting a new version in the stable channel early," +msgstr "ການເອົາເວີຊັນໃໝ່ເຂົ້າ stable channel ໄວກວ່າກຳນົດ," + +#: ../source/discussions/downstream-packaging.rst:433 +msgid "adding patches to the version currently published," +msgstr "ການເພີ່ມ patch ໃນເວີຊັນທີ່ເຜີຍແຜ່ຢູ່ໃນປັດຈຸບັນ," + +#: ../source/discussions/downstream-packaging.rst:435 +msgid "or even downgrading the stable channel to an earlier release." +msgstr "ຫຼື ແມ່ນແຕ່ການ downgrade ກັບໄປໃຊ້ເວີຊັນກ່ອນໜ້າ." + +#: ../source/discussions/downstream-packaging.rst:437 +msgid "" +"Each of these options involves certain risks and a certain amount of work, " +"and packagers needs to weigh them to determine the course of action." +msgstr "ແຕ່ລະທາງເລືອກມີຄວາມສ່ຽງ ແລະ ປະລິມານວຽກທີ່ແຕກຕ່າງກັນ." + +#: ../source/discussions/downstream-packaging.rst:443 +msgid "" +"There are some things that upstreams can do to tailor their workflow to " +"stable release channels. These actions often are beneficial to the package's " +"users as well. Some specific suggestions are:" +msgstr "ມີບາງຢ່າງທີ່ຕົ້ນນ້ຳສາມາດເຮັດໄດ້ເພື່ອຊ່ວຍໃນການ release ແບບ stable:" + +#: ../source/discussions/downstream-packaging.rst:447 +msgid "" +"Adjust the release frequency to the rate of code changes. Packages that are " +"released rarely often bring significant changes with every release, and a " +"higher risk of accidental regressions." +msgstr "ປັບຄວາມຖີ່ຂອງການ release ໃຫ້ເໝາະສົມ." + +#: ../source/discussions/downstream-packaging.rst:451 +msgid "" +"Avoid mixing bug fixes and new features, if possible. In particular, if " +"there are known bug fixes merged already, consider making a new release " +"before merging feature branches." +msgstr "ຫຼີກເວັ້ນການລວມ bug fixes ເຂົ້າກັບ features ໃໝ່." + +#: ../source/discussions/downstream-packaging.rst:455 +msgid "" +"Consider making prereleases after major changes, to provide more testing " +"opportunities for users and downstreams willing to opt-in." +msgstr "ພິຈາລະນາການເຮັດ prereleases ຫຼັງຈາກມີການປ່ຽນແປງຄັ້ງໃຫຍ່." + +#: ../source/discussions/downstream-packaging.rst:458 +msgid "" +"If your project is subject to very intense development, consider splitting " +"one or more branches that include a more conservative subset of commits, and " +"are released separately. For example, Django_ currently maintains three " +"release branches in addition to main." +msgstr "ຖ້າໂຄງການມີການພັດທະນາຢ່າງຕໍ່ເນື່ອງ, ໃຫ້ພິຈາລະນາການແຍກ branches." + +#: ../source/discussions/downstream-packaging.rst:463 +msgid "" +"Even if you don't wish to maintain additional branches permanently, consider " +"making additional patch releases with minimal changes to the previous " +"version, especially when a security vulnerability is discovered." +msgstr "" +"ພິຈາລະນາການເຮັດ patch releases ທີ່ມີການປ່ຽນແປງໜ້ອຍທີ່ສຸດ ເມື່ອພົບຊ່ອງໂຫວ່ດ້ານຄວາມປອດໄພ." + +#: ../source/discussions/downstream-packaging.rst:467 +msgid "" +"Split your changes into focused commits that address one problem at a time, " +"to make it easier to cherry-pick changes to earlier releases when necessary." +msgstr "ແຍກ commits ໃຫ້ຊັດເຈນ ເພື່ອໃຫ້ງ່າຍໃນການ cherry-pick." + +#: ../source/discussions/index.rst:4 +msgid "" +"**Discussions** are focused on providing comprehensive information about a " +"specific topic. If you're just trying to get stuff done, see :doc:`/guides/" +"index`." +msgstr "" +"**ການສົນທະນາ ແລະ ອະທິບາຍ (Discussions)** ແມ່ນເນັ້ນໃສ່ການໃຫ້ຂໍ້ມູນທີ່ຄົບຖ້ວນກ່ຽວກັບຫົວຂໍ້ໃດໜຶ່ງ. " +"ຖ້າທ່ານຕ້ອງການພຽງແຕ່ເຮັດວຽກໃຫ້ສຳເລັດ, ໃຫ້ເບິ່ງ :doc:`/guides/index`." + +#: ../source/discussions/install-requires-vs-requirements.rst:5 +msgid "install_requires vs requirements files" +msgstr "install_requires ທຽບກັບໄຟລ໌ requirements" + +#: ../source/discussions/install-requires-vs-requirements.rst:9 +msgid "install_requires" +msgstr "" + +#: ../source/discussions/install-requires-vs-requirements.rst:11 +msgid "" +"``install_requires`` is a :ref:`setuptools` :file:`setup.py` keyword that " +"should be used to specify what a project **minimally** needs to run " +"correctly. When the project is installed by :ref:`pip`, this is the " +"specification that is used to install its dependencies." +msgstr "" +"``install_requires`` ແມ່ນ keyword ໃນ :file:`setup.py` ຂອງ :ref:`setuptools` " +"ທີ່ຄວນໃຊ້ເພື່ອລະບຸສິ່ງທີ່ໂຄງການຕ້ອງການ **ຂັ້ນຕ່ຳ** ເພື່ອໃຫ້ເຮັດວຽກໄດ້ຢ່າງຖືກຕ້ອງ. " +"ເມື່ອໂຄງການຖືກຕິດຕັ້ງໂດຍ :ref:`pip`, ນີ້ຄືຂໍ້ກຳນົດທີ່ຈະຖືກໃຊ້ເພື່ອຕິດຕັ້ງ dependencies ຂອງມັນ." + +#: ../source/discussions/install-requires-vs-requirements.rst:16 +msgid "" +"For example, if the project requires A and B, your ``install_requires`` " +"would be like so:" +msgstr "ຕົວຢ່າງ: ຖ້າໂຄງການຕ້ອງການ A ແລະ B, ``install_requires`` ຂອງທ່ານຈະເປັນແບບນີ້:" + +#: ../source/discussions/install-requires-vs-requirements.rst:26 +msgid "" +"Additionally, it's best practice to indicate any known lower or upper bounds." +msgstr "ນອກຈາກນັ້ນ, ວິທີການທີ່ດີທີ່ສຸດຄືການລະບຸຂອບເຂດຕ່ຳສຸດ ຫຼື ສູງສຸດທີ່ຮູ້ຈັກ." + +#: ../source/discussions/install-requires-vs-requirements.rst:28 +msgid "" +"For example, it may be known, that your project requires at least v1 of 'A', " +"and v2 of 'B', so it would be like so:" +msgstr "ຕົວຢ່າງ: ຖ້າຮູ້ວ່າໂຄງການຕ້ອງການ 'A' ຢ່າງໜ້ອຍ v1, ແລະ 'B' v2, ມັນຈະເປັນແບບນີ້:" + +#: ../source/discussions/install-requires-vs-requirements.rst:38 +msgid "" +"It may also be known that project 'A' introduced a change in its v2 that " +"breaks the compatibility of your project with v2 of 'A' and later, so it " +"makes sense to not allow v2:" +msgstr "ຖ້າຮູ້ວ່າ 'A' v2 ຈະເຮັດໃຫ້ໂຄງການມີບັນຫາ, ກໍບໍ່ຄວນອະນຸຍາດໃຫ້ໃຊ້ v2:" + +#: ../source/discussions/install-requires-vs-requirements.rst:49 +msgid "" +"It is not considered best practice to use ``install_requires`` to pin " +"dependencies to specific versions, or to specify sub-dependencies (i.e. " +"dependencies of your dependencies). This is overly-restrictive, and " +"prevents the user from gaining the benefit of dependency upgrades." +msgstr "" +"ບໍ່ແນະນຳໃຫ້ໃຊ້ ``install_requires`` ເພື່ອລັອກເວີຊັນ (pin) ທີ່ແນ່ນອນເກີນໄປ ຫຼື ລະບຸ " +"dependencies ຂອງ dependencies ອີກເທື່ອໜຶ່ງ." + +#: ../source/discussions/install-requires-vs-requirements.rst:54 +msgid "" +"Lastly, it's important to understand that ``install_requires`` is a listing " +"of \"Abstract\" requirements, i.e just names and version restrictions that " +"don't determine where the dependencies will be fulfilled from (i.e. from " +"what index or source). The where (i.e. how they are to be made " +"\"Concrete\") is to be determined at install time using :ref:`pip` options. " +"[1]_" +msgstr "" +"ສຸດທ້າຍ, ສິ່ງສຳຄັນທີ່ຕ້ອງເຂົ້າໃຈຄື ``install_requires`` ແມ່ນການລະບຸຄວາມຕ້ອງການແບບ " +"\"ນາມມະທຳ (Abstract)\" ເຊິ່ງລະບຸພຽງແຕ່ຊື່ ແລະ ຂໍ້ຈຳກັດຂອງເວີຊັນເທົ່ານັ້ນ." + +#: ../source/discussions/install-requires-vs-requirements.rst:62 +#: ../source/tutorials/installing-packages.rst:463 +msgid "Requirements files" +msgstr "ໄຟລ໌ Requirements" + +#: ../source/discussions/install-requires-vs-requirements.rst:64 +msgid "" +":ref:`Requirements Files ` described most simply, " +"are just a list of :ref:`pip:pip install` arguments placed into a file." +msgstr "" +":ref:`Requirements Files ` ຖ້າອະທິບາຍແບບງ່າຍທີ່ສຸດ, " +"ກໍຄືລາຍການຂອງ arguments ສຳລັບ :ref:`pip:pip install` ທີ່ຖືກຈັດໃສ່ໃນໄຟລ໌." + +#: ../source/discussions/install-requires-vs-requirements.rst:67 +msgid "" +"Whereas ``install_requires`` defines the dependencies for a single " +"project, :ref:`Requirements Files ` are often used " +"to define the requirements for a complete Python environment." +msgstr "" +"ໃນຂະນະທີ່ ``install_requires`` ກຳນົດ dependencies " +"ສຳລັບໂຄງການດຽວ, :ref:`Requirements Files ` " +"ມັກຈະຖືກໃຊ້ເພື່ອ ກຳນົດຄວາມຕ້ອງການສຳລັບສະພາບແວດລ້ອມ Python ທັງໝົດ." + +#: ../source/discussions/install-requires-vs-requirements.rst:71 +msgid "" +"Whereas ``install_requires`` requirements are minimal, requirements files " +"often contain an exhaustive listing of pinned versions for the purpose of " +"achieving :ref:`repeatable installations ` of a complete " +"environment." +msgstr "" +"ໃນຂະນະທີ່ ``install_requires`` ລະບຸຄວາມຕ້ອງການຂັ້ນຕ່ຳ, ໄຟລ໌ requirements " +"ມັກຈະບັນຈຸລາຍການເວີຊັນທີ່ລະບຸໄວ້ຢ່າງແນ່ນອນເພື່ອໃຫ້ສາມາດຕິດຕັ້ງຊ້ຳໄດ້ (repeatable)." + +#: ../source/discussions/install-requires-vs-requirements.rst:76 +msgid "" +"Whereas ``install_requires`` requirements are \"Abstract\", i.e. not " +"associated with any particular index, requirements files often contain pip " +"options like ``--index-url`` or ``--find-links`` to make requirements " +"\"Concrete\", i.e. associated with a particular index or directory of " +"packages. [1]_" +msgstr "" +"ໃນຂະນະທີ່ ``install_requires`` ເປັນແບບ \"Abstract\", ໄຟລ໌ requirements " +"ມັກຈະມີຕົວເລືອກຂອງ pip ເພື່ອເຮັດໃຫ້ຄວາມຕ້ອງການນັ້ນເປັນແບບ \"ຮູບປະທຳ (Concrete)\"." + +#: ../source/discussions/install-requires-vs-requirements.rst:82 +msgid "" +"Whereas ``install_requires`` metadata is automatically analyzed by pip " +"during an install, requirements files are not, and only are used when a user " +"specifically installs them using ``python -m pip install -r``." +msgstr "" +"ໃນຂະນະທີ່ metadata ຂອງ ``install_requires`` ຈະຖືກວິເຄາະໂດຍອັດຕະໂນມັດ, ໄຟລ໌ " +"requirements ຈະຖືກໃຊ້ກໍຕໍ່ເມື່ອຜູ້ໃຊ້ລະບຸຄຳສັ່ງຕິດຕັ້ງໂດຍກົງເທົ່ານັ້ນ." + +#: ../source/discussions/install-requires-vs-requirements.rst:88 +msgid "" +"For more on \"Abstract\" vs \"Concrete\" requirements, see https://" +"caremad.io/posts/2013/07/setup-vs-requirement/." +msgstr "" +"ສຳລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບຄວາມຕ້ອງການແບບ \"Abstract\" ແລະ \"Concrete\", ເບິ່ງ https://" +"caremad.io/posts/2013/07/setup-vs-requirement/." + +#: ../source/discussions/package-formats.rst:5 +msgid "Package Formats" +msgstr "ຮູບແບບຂອງແພັກເກດ (Package Formats)" + +#: ../source/discussions/package-formats.rst:7 +msgid "" +"This page discusses the file formats that are used to distribute Python " +"packages and the differences between them." +msgstr "" +"ໜ້ານີ້ຈະປຶກສາຫາລືກ່ຽວກັບຮູບແບບໄຟລ໌ທີ່ໃຊ້ໃນການແຈກຢາຍແພັກເກດ Python ແລະ " +"ຄວາມແຕກຕ່າງລະຫວ່າງພວກມັນ." + +#: ../source/discussions/package-formats.rst:10 +msgid "" +"You will find files in two formats on package indices such as PyPI_: " +"**source distributions**, or **sdists** for short, and **binary " +"distributions**, commonly called **wheels**. For example, the `PyPI page " +"for pip 23.3.1 `_ lets you download two files, " +"``pip-23.3.1.tar.gz`` and ``pip-23.3.1-py3-none-any.whl``. The former is an " +"sdist, the latter is a wheel. As explained below, these serve different " +"purposes. When publishing a package on PyPI (or elsewhere), you should " +"always upload both an sdist and one or more wheel." +msgstr "" +"ທ່ານຈະພົບຮູບແບບໄຟລ໌ສອງປະເພດໃນ PyPI_: **source distributions** (ຫຼື **sdists**) ແລະ " +"**binary distributions** (ຫຼື **wheels**). ເມື່ອເຜີຍແຜ່ແພັກເກດ, ທ່ານຄວນອັບໂຫຼດທັງ sdist " +"ແລະ wheel ສະເໝີ." + +#: ../source/discussions/package-formats.rst:21 +msgid "What is a source distribution?" +msgstr "Source distribution ແມ່ນຫຍັງ?" + +#: ../source/discussions/package-formats.rst:23 +msgid "" +"Conceptually, a source distribution is an archive of the source code in raw " +"form. Concretely, an sdist is a ``.tar.gz`` archive containing the source " +"code plus an additional special file called ``PKG-INFO``, which holds the " +"project metadata. The presence of this file helps packaging tools to be more " +"efficient by not needing to compute the metadata themselves. The ``PKG-" +"INFO`` file follows the format specified in :ref:`core-metadata` and is not " +"intended to be written by hand [#core-metadata-format]_." +msgstr "" +"ໃນທາງແນວຄິດ, source distribution ແມ່ນໄຟລ໌ archive ຂອງ source code ໃນຮູບແບບດິບ. " +"ໃນທາງປະຕິບັດ, sdist ແມ່ນໄຟລ໌ ``.tar.gz`` ທີ່ບັນຈຸ source code ພ້ອມກັບໄຟລ໌ພິເສດທີ່ຊື່ວ່າ ``PKG-" +"INFO`` ເຊິ່ງເກັບຂໍ້ມູນ metadata ຂອງໂຄງການ." + +#: ../source/discussions/package-formats.rst:31 +msgid "" +"You can thus inspect the contents of an sdist by unpacking it using standard " +"tools to work with tar archives, such as ``tar -xvf`` on UNIX platforms " +"(like Linux and macOS), or :ref:`the command line interface of Python's " +"tarfile module ` on any platform." +msgstr "" +"ທ່ານສາມາດກວດສອບເນື້ອຫາຂອງ sdist ໄດ້ໂດຍການແຕກໄຟລ໌ດ້ວຍເຄື່ອງມືມາດຕະຖານ ເຊັ່ນ ``tar -xvf``." + +#: ../source/discussions/package-formats.rst:36 +msgid "" +"Sdists serve several purposes in the packaging ecosystem. When :ref:`pip`, " +"the standard Python package installer, cannot find a wheel to install, it " +"will fall back on downloading a source distribution, compiling a wheel from " +"it, and installing the wheel. Furthermore, sdists are often used as the " +"package source by downstream packagers (such as Linux distributions, Conda, " +"Homebrew and MacPorts on macOS, ...), who, for various reasons, may prefer " +"them over, e.g., pulling from a Git repository." +msgstr "" +"Sdists ມີປະໂຫຍດຫຼາຍຢ່າງ. ເມື່ອ :ref:`pip` ບໍ່ພົບ wheel, ມັນຈະໄປດາວໂຫຼດ sdist ມາແທນ." + +#: ../source/discussions/package-formats.rst:44 +msgid "" +"A source distribution is recognized by its file name, which has the " +"form :samp:`{package_name}-{version}.tar.gz`, e.g., ``pip-23.3.1.tar.gz``." +msgstr "" +"Source distribution ສັງເກດໄດ້ຈາກຊື່ໄຟລ໌ ເຊິ່ງຈະຢູ່ໃນຮູບແບບ :samp:`{package_name}-" +"{version}.tar.gz`." + +#: ../source/discussions/package-formats.rst:50 +msgid "" +"If you want technical details on the sdist format, read the :ref:`sdist " +"specification `." +msgstr "" +"ຖ້າຕ້ອງການລາຍລະອຽດທາງເຕັກນິກຂອງຮູບແບບ sdist, ໃຫ້ອ່ານ :ref:`sdist specification " +"`." + +#: ../source/discussions/package-formats.rst:55 +msgid "What is a wheel?" +msgstr "Wheel ແມ່ນຫຍັງ?" + +#: ../source/discussions/package-formats.rst:57 +msgid "" +"Conceptually, a wheel contains exactly the files that need to be copied when " +"installing the package." +msgstr "ໃນທາງແນວຄິດ, wheel ບັນຈຸໄຟລ໌ທີ່ຕ້ອງຖືກ copy ເຂົ້າໄປໃນລະບົບໃນຕອນຕິດຕັ້ງແພັກເກດ." + +#: ../source/discussions/package-formats.rst:60 +msgid "" +"There is a big difference between sdists and wheels for packages " +"with :term:`extension modules `, written in compiled " +"languages like C, C++ and Rust, which need to be compiled into platform-" +"dependent machine code. With these packages, wheels do not contain source " +"code (like C source files) but compiled, executable code (like ``.so`` files " +"on Linux or DLLs on Windows)." +msgstr "" +"ມີຄວາມແຕກຕ່າງຢ່າງຫຼວງຫຼາຍລະຫວ່າງ sdist ແລະ wheel ສຳລັບແພັກເກດທີ່ມີ :term:`extension " +"modules `." + +#: ../source/discussions/package-formats.rst:66 +msgid "" +"Furthermore, while there is only one sdist per version of a project, there " +"may be many wheels. Again, this is most relevant in the context of extension " +"modules. The compiled code of an extension module is tied to an operating " +"system and processor architecture, and often also to the version of the " +"Python interpreter (unless the :ref:`Python stable ABI ` " +"is used)." +msgstr "ນອກຈາກນັ້ນ, ໃນຂະນະທີ່ມີ sdist ພຽງອັນດຽວຕໍ່ໜຶ່ງເວີຊັນ, ແຕ່ອາດຈະມີ wheel ໄດ້ຫຼາຍອັນ." + +#: ../source/discussions/package-formats.rst:72 +msgid "" +"For pure-Python packages, the difference between sdists and wheels is less " +"marked. There is normally one single wheel, for all platforms and Python " +"versions. Python is an interpreted language, which does not need ahead-of-" +"time compilation, so wheels contain ``.py`` files just like sdists." +msgstr "" +"ສຳລັບແພັກເກດທີ່ເປັນ Python ລ້ວນໆ (pure-Python), ຄວາມແຕກຕ່າງລະຫວ່າງ sdist ແລະ wheel " +"ຈະມີໜ້ອຍລົງ." + +#: ../source/discussions/package-formats.rst:77 +msgid "" +"If you are wondering about ``.pyc`` bytecode files: they are not included in " +"wheels, since they are cheap to generate, and including them would " +"unnecessarily force a huge number of packages to distribute one wheel per " +"Python version instead of one single wheel. Instead, installers " +"like :ref:`pip` generate them while installing the package." +msgstr "ໄຟລ໌ bytecode ``.pyc`` ຈະບໍ່ຖືກລວມເຂົ້າໃນ wheel." + +#: ../source/discussions/package-formats.rst:83 +msgid "" +"With that being said, there are still important differences between sdists " +"and wheels, even for pure Python projects. Wheels are meant to contain " +"exactly what is to be installed, and nothing more. In particular, wheels " +"should never include tests and documentation, while sdists commonly do. " +"Also, the wheel format is more complex than sdist. For example, it includes " +"a special file -- called ``RECORD`` -- that lists all files in the wheel " +"along with a hash of their content, as a safety check of the download's " +"integrity." +msgstr "Wheel ຖືກອອກແບບມາເພື່ອບັນຈຸສິ່ງທີ່ຈະຖືກຕິດຕັ້ງແທ້ໆ ເທົ່ານັ້ນ." + +#: ../source/discussions/package-formats.rst:91 +msgid "" +"At a glance, you might wonder if wheels are really needed for \"plain and " +"basic\" pure Python projects. Keep in mind that due to the flexibility of " +"sdists, installers like pip cannot install from sdists directly -- they need " +"to first build a wheel, by invoking the :term:`build backend` that the sdist " +"specifies (the build backend may do all sorts of transformations while " +"building the wheel, such as compiling C extensions). For this reason, even " +"for a pure Python project, you should always upload *both* an sdist and a " +"wheel to PyPI or other package indices. This makes installation much faster " +"for your users, since a wheel is directly installable. By only including " +"files that must be installed, wheels also make for smaller downloads." +msgstr "ທ່ານຄວນອັບໂຫຼດທັງ sdist ແລະ wheel ເຂົ້າ PyPI ສະເໝີ ເພື່ອໃຫ້ການຕິດຕັ້ງໄວຂຶ້ນ." + +#: ../source/discussions/package-formats.rst:102 +msgid "" +"On the technical level, a wheel is a ZIP archive (unlike sdists which are " +"TAR archives). You can inspect its contents by unpacking it as a normal ZIP " +"archive, e.g., using ``unzip`` on UNIX platforms like Linux and macOS, " +"``Expand-Archive`` in Powershell on Windows, or :ref:`the command line " +"interface of Python's zipfile module `. This can " +"be very useful to check that the wheel includes all the files you need it to." +msgstr "ໃນທາງເຕັກນິກ, wheel ແມ່ນ ZIP archive (ຕ່າງຈາກ sdist ທີ່ເປັນ TAR archive)." + +#: ../source/discussions/package-formats.rst:109 +msgid "" +"Inside a wheel, you will find the package's files, plus an additional " +"directory called :samp:`{package_name}-{version}.dist-info`. This directory " +"contains various files, including a ``METADATA`` file which is the " +"equivalent of ``PKG-INFO`` in sdists, as well as ``RECORD``. This can be " +"useful to ensure no files are missing from your wheels." +msgstr "" +"ພາຍໃນ wheel, ທ່ານຈະພົບເຫັນໄຟລ໌ຂອງແພັກເກັດ, " +"ບວກກັບໄດເຣັກທໍຣີເພີ່ມເຕີມທີ່ເອີ້ນວ່າ :samp:`{package_name}-{version}.dist-info`. " +"ໄດເຣັກທໍຣີນີ້ປະກອບດ້ວຍໄຟລ໌ຕ່າງໆ, ລວມທັງໄຟລ໌ ``METADATA`` ເຊິ່ງທຽບເທົ່າກັບ ``PKG-INFO`` ໃນ " +"sdists, ເຊັ່ນດຽວກັນກັບ ``RECORD``. ສິ່ງນີ້ສາມາດມີປະໂຫຍດເພື່ອຮັບປະກັນວ່າບໍ່ມີໄຟລ໌ໃດຂາດຫາຍໄປຈາກ " +"wheel ຂອງທ່ານ." + +#: ../source/discussions/package-formats.rst:115 +msgid "" +"The file name of a wheel (ignoring some rarely used features) looks like " +"this: :samp:`{package_name}-{version}-{python_tag}-{abi_tag}-" +"{platform_tag}.whl`. This naming convention identifies which platforms and " +"Python versions the wheel is compatible with. For example, the name " +"``pip-23.3.1-py3-none-any.whl`` means that:" +msgstr "" +"ຊື່ໄຟລ໌ຂອງ wheel ຈະຢູ່ໃນຮູບແບບ :samp:`{package_name}-{version}-{python_tag}-" +"{abi_tag}-{platform_tag}.whl`." + +#: ../source/discussions/package-formats.rst:121 +msgid "" +"(``py3``) This wheel can be installed on any implementation of Python 3, " +"whether CPython, the most widely used Python implementation, or an " +"alternative implementation like PyPy_;" +msgstr "(``py3``) Wheel ນີ້ສາມາດຕິດຕັ້ງໄດ້ໃນ Python 3 ທຸກປະເພດ;" + +#: ../source/discussions/package-formats.rst:124 +msgid "(``none``) It does not depend on the Python version;" +msgstr "(``none``) ມັນບໍ່ຂຶ້ນກັບເວີຊັນຂອງ Python;" + +#: ../source/discussions/package-formats.rst:125 +msgid "(``any``) It does not depend on the platform." +msgstr "(``any``) ມັນບໍ່ຂຶ້ນກັບແພລັດຟອມໃດໜຶ່ງ." + +#: ../source/discussions/package-formats.rst:127 +msgid "" +"The pattern ``py3-none-any`` is common for pure Python projects. Packages " +"with extension modules typically ship multiple wheels with more complex tags." +msgstr "ຮູບແບບ ``py3-none-any`` ແມ່ນພົບໄດ້ທົ່ວໄປໃນໂຄງການ Python ລ້ວນໆ." + +#: ../source/discussions/package-formats.rst:130 +msgid "" +"All technical details on the wheel format can be found in the :ref:`wheel " +"specification `." +msgstr "" +"ລາຍລະອຽດທາງເຕັກນິກທັງໝົດຂອງ wheel ສາມາດເບິ່ງໄດ້ທີ່ :ref:`wheel specification `." + +#: ../source/discussions/package-formats.rst:138 +msgid "What about eggs?" +msgstr "ແລ້ວ Eggs ເດ?" + +#: ../source/discussions/package-formats.rst:140 +msgid "" +"\"Egg\" is an old package format that has been replaced with the wheel " +"format. It should not be used anymore. Since August 2023, PyPI `rejects egg " +"uploads `_." +msgstr "\"Egg\" ແມ່ນຮູບແບບແພັກເກດແບບເກົ່າທີ່ຖືກແທນທີ່ດ້ວຍ wheel ແລ້ວ. ມັນບໍ່ຄວນຖືກໃຊ້ອີກຕໍ່ໄປ." + +#: ../source/discussions/package-formats.rst:144 +msgid "Here's a breakdown of the important differences between wheel and egg." +msgstr "ນີ້ຄືຄວາມແຕກຕ່າງທີ່ສຳຄັນລະຫວ່າງ wheel ແລະ egg." + +#: ../source/discussions/package-formats.rst:146 +msgid "" +"The egg format was introduced by :ref:`setuptools` in 2004, whereas the " +"wheel format was introduced by :pep:`427` in 2012." +msgstr "ຮູບແບບ egg ຖືກນຳໃຊ້ໃນປີ 2004, ສ່ວນ wheel ແມ່ນປີ 2012." + +#: ../source/discussions/package-formats.rst:149 +msgid "" +"Wheel has an :doc:`official standard specification `. Egg did not." +msgstr "Wheel ມີຂໍ້ກຳນົດມາດຕະຖານຢ່າງເປັນທາງການ, ສ່ວນ Egg ບໍ່ມີ." + +#: ../source/discussions/package-formats.rst:152 +msgid "" +"Wheel is a :term:`distribution ` format, i.e a " +"packaging format. [#wheel-importable]_ Egg was both a distribution format " +"and a runtime installation format (if left zipped), and was designed to be " +"importable." +msgstr "Wheel ແມ່ນຮູບແບບການແຈກຢາຍ (distribution format)." + +#: ../source/discussions/package-formats.rst:156 +msgid "" +"Wheel archives do not include ``.pyc`` files. Therefore, when the " +"distribution only contains Python files (i.e. no compiled extensions), and " +"is compatible with Python 2 and 3, it's possible for a wheel to be " +"\"universal\", similar to an :term:`sdist `." +msgstr "Wheel ບໍ່ໄດ້ລວມເອົາໄຟລ໌ ``.pyc`` ໄວ້ນຳ." + +#: ../source/discussions/package-formats.rst:161 +msgid "" +"Wheel uses standard :ref:`.dist-info directories `. Egg used ``.egg-info``." +msgstr "Wheel ໃຊ້ໄດເຣັກທໍຣີ ``.dist-info``, ສ່ວນ Egg ໃຊ້ ``.egg-info``." + +#: ../source/discussions/package-formats.rst:164 +msgid "" +"Wheel has a :ref:`richer file naming convention `. A " +"single wheel archive can indicate its compatibility with a number of Python " +"language versions and implementations, ABIs, and system architectures." +msgstr "Wheel ມີວິທີການຕັ້ງຊື່ໄຟລ໌ທີ່ໃຫ້ຂໍ້ມູນໄດ້ລະອຽດກວ່າ." + +#: ../source/discussions/package-formats.rst:168 +msgid "" +"Wheel is versioned. Every wheel file contains the version of the wheel " +"specification and the implementation that packaged it." +msgstr "Wheel ມີການລະບຸເວີຊັນຂອງຂໍ້ກຳນົດ." + +#: ../source/discussions/package-formats.rst:171 +msgid "" +"Wheel is internally organized by `sysconfig path type `_, therefore " +"making it easier to convert to other formats." +msgstr "Wheel ຖືກຈັດລະບຽບພາຍໃນຕາມ sysconfig path type ເຮັດໃຫ້ປ່ຽນໄປເປັນຮູບແບບອື່ນໄດ້ງ່າຍ." + +#: ../source/discussions/package-formats.rst:177 +msgid "" +"This format is email-based. Although this would be unlikely to be chosen " +"today, backwards compatibility considerations lead to it being kept as the " +"canonical format. From the user point of view, this is mostly invisible, " +"since the metadata is specified by the user in a way understood by the build " +"backend, typically ``[project]`` in ``pyproject.toml``, and translated by " +"the build backend into ``PKG-INFO``." +msgstr "ຮູບແບບນີ້ແມ່ນອີງໃສ່ email-based." + +#: ../source/discussions/package-formats.rst:184 +msgid "" +"Circumstantially, in some cases, wheels can be used as an importable runtime " +"format, although :ref:`this is not officially supported at this time `." +msgstr "" +"ໃນບາງກໍລະນີ, wheel ສາມາດໃຊ້ເປັນ importable runtime format ໄດ້, " +"ແຕ່ຍັງບໍ່ໄດ້ຮັບການສະໜັບສະໜູນຢ່າງເປັນທາງການ." + +#: ../source/discussions/pip-vs-easy-install.rst:6 +msgid "pip vs easy_install" +msgstr "pip ທຽບກັບ easy_install" + +#: ../source/discussions/pip-vs-easy-install.rst:9 +msgid "" +":ref:`easy_install `, now `deprecated`_, was released in 2004 " +"as part of :ref:`setuptools`. It was notable at the time for " +"installing :term:`packages ` from :term:`PyPI ` using requirement specifiers, and automatically " +"installing dependencies." +msgstr "" +":ref:`easy_install ` ຕອນນີ້ຖືກຍົກເລີກການນຳໃຊ້ (deprecated) ແລ້ວ." + +#: ../source/discussions/pip-vs-easy-install.rst:14 +msgid "" +":ref:`pip` came later in 2008, as an alternative to :ref:`easy_install " +"`, although still largely built on top of :ref:`setuptools` " +"components. It was notable at the time for *not* installing packages " +"as :term:`Eggs ` or from :term:`Eggs ` (but rather simply as " +"'flat' packages from :term:`sdists `), " +"and introducing the idea of :ref:`Requirements Files `, which gave users the power to easily replicate environments." +msgstr "" +":ref:`pip` ຖືກເປີດຕົວໃນປີ 2008 ເພື່ອເປັນທາງເລືອກແທນ :ref:`easy_install " +"`." + +#: ../source/discussions/pip-vs-easy-install.rst:22 +msgid "" +"Here's a breakdown of the important differences between pip and the " +"deprecated easy_install:" +msgstr "ນີ້ຄືຄວາມແຕກຕ່າງທີ່ສຳຄັນລະຫວ່າງ pip ແລະ easy_install ທີ່ຖືກຍົກເລີກໄປແລ້ວ:" + +#: ../source/discussions/pip-vs-easy-install.rst:25 +msgid "**pip**" +msgstr "" + +#: ../source/discussions/pip-vs-easy-install.rst:25 +msgid "**easy_install**" +msgstr "" + +#: ../source/discussions/pip-vs-easy-install.rst:27 +msgid "Installs from :term:`Wheels `" +msgstr "ຕິດຕັ້ງຈາກ Wheels" + +#: ../source/discussions/pip-vs-easy-install.rst:27 +#: ../source/discussions/pip-vs-easy-install.rst:38 +#: ../source/discussions/pip-vs-easy-install.rst:44 +#: ../source/discussions/pip-vs-easy-install.rst:48 +#: ../source/discussions/pip-vs-easy-install.rst:54 +#: ../source/discussions/pip-vs-easy-install.rst:57 +msgid "Yes" +msgstr "ແມ່ນ" + +#: ../source/discussions/pip-vs-easy-install.rst:27 +#: ../source/discussions/pip-vs-easy-install.rst:30 +#: ../source/discussions/pip-vs-easy-install.rst:32 +#: ../source/discussions/pip-vs-easy-install.rst:35 +#: ../source/discussions/pip-vs-easy-install.rst:38 +#: ../source/discussions/pip-vs-easy-install.rst:44 +#: ../source/discussions/pip-vs-easy-install.rst:48 +#: ../source/discussions/pip-vs-easy-install.rst:51 +#: ../source/discussions/pip-vs-easy-install.rst:54 +#: ../source/discussions/pip-vs-easy-install.rst:57 +msgid "No" +msgstr "ບໍ່" + +#: ../source/discussions/pip-vs-easy-install.rst:30 +msgid "Uninstall Packages" +msgstr "ຖອນການຕິດຕັ້ງແພັກເກດ" + +#: ../source/discussions/pip-vs-easy-install.rst:30 +msgid "Yes (``python -m pip uninstall``)" +msgstr "ໄດ້ (``python -m pip uninstall``)" + +#: ../source/discussions/pip-vs-easy-install.rst:32 +msgid "Dependency Overrides" +msgstr "ການແທນທີ່ Dependency" + +#: ../source/discussions/pip-vs-easy-install.rst:32 +msgid "Yes (:ref:`Requirements Files `)" +msgstr "ໄດ້ (:ref:`Requirements Files `)" + +#: ../source/discussions/pip-vs-easy-install.rst:35 +msgid "List Installed Packages" +msgstr "ສະແດງລາຍຊື່ແພັກເກດທີ່ຕິດຕັ້ງແລ້ວ" + +#: ../source/discussions/pip-vs-easy-install.rst:35 +msgid "Yes (``python -m pip list`` and ``python -m pip freeze``)" +msgstr "ໄດ້ (``python -m pip list`` ແລະ ``python -m pip freeze``)" + +#: ../source/discussions/pip-vs-easy-install.rst:38 +msgid ":pep:`438` Support" +msgstr "ຮອງຮັບ :pep:`438`" + +#: ../source/discussions/pip-vs-easy-install.rst:41 +msgid "Installation format" +msgstr "ຮູບແບບການຕິດຕັ້ງ" + +#: ../source/discussions/pip-vs-easy-install.rst:41 +msgid "'Flat' packages with :file:`egg-info` metadata." +msgstr "ແພັກເກດແບບ 'Flat' ພ້ອມ metadata :file:`egg-info`." + +#: ../source/discussions/pip-vs-easy-install.rst:41 +msgid "Encapsulated Egg format" +msgstr "ຮູບແບບ Encapsulated Egg" + +#: ../source/discussions/pip-vs-easy-install.rst:44 +msgid "sys.path modification" +msgstr "ການແກ້ໄຂ sys.path" + +#: ../source/discussions/pip-vs-easy-install.rst:48 +msgid "Installs from :term:`Eggs `" +msgstr "ຕິດຕັ້ງຈາກ Eggs" + +#: ../source/discussions/pip-vs-easy-install.rst:51 +msgid "`pylauncher support`_" +msgstr "ຮອງຮັບ `pylauncher`_" + +#: ../source/discussions/pip-vs-easy-install.rst:51 +msgid "Yes [1]_" +msgstr "ແມ່ນ [1]_" + +#: ../source/discussions/pip-vs-easy-install.rst:54 +msgid ":ref:`Multi-version Installs`" +msgstr "ຕິດຕັ້ງໄດ້ຫຼາຍເວີຊັນ" + +#: ../source/discussions/pip-vs-easy-install.rst:57 +msgid "Exclude scripts during install" +msgstr "ບໍ່ລວມ scripts ໃນລະຫວ່າງການຕິດຕັ້ງ" + +#: ../source/discussions/pip-vs-easy-install.rst:60 +msgid "per project index" +msgstr "ດັດຊະນີແຍກຕາມໂຄງການ" + +#: ../source/discussions/pip-vs-easy-install.rst:60 +msgid "Only in virtualenv" +msgstr "ສະເພາະໃນ virtualenv ເທົ່ານັ້ນ" + +#: ../source/discussions/pip-vs-easy-install.rst:60 +msgid "Yes, via setup.cfg" +msgstr "ໄດ້, ຜ່ານ setup.cfg" + +#: ../source/discussions/pip-vs-easy-install.rst:68 +msgid "" +"https://setuptools.readthedocs.io/en/latest/deprecated/" +"easy_install.html#natural-script-launcher" +msgstr "" + +#: ../source/discussions/setup-py-deprecated.rst:6 +msgid "Is ``setup.py`` deprecated?" +msgstr "``setup.py`` ຖືກຍົກເລີກການນຳໃຊ້ແລ້ວບໍ?" + +#: ../source/discussions/setup-py-deprecated.rst:8 +msgid "No, :term:`setup.py` and :ref:`setuptools` are not deprecated." +msgstr "ບໍ່, :term:`setup.py` ແລະ :ref:`setuptools` ຍັງບໍ່ໄດ້ຖືກຍົກເລີກການນຳໃຊ້." + +#: ../source/discussions/setup-py-deprecated.rst:10 +msgid "" +"Setuptools is perfectly usable as a :term:`build backend` for packaging " +"Python projects. And :file:`setup.py` is a valid configuration file " +"for :ref:`setuptools` that happens to be written in Python, instead of in " +"*TOML* for example (a similar practice is used by other tools like *nox* and " +"its :file:`noxfile.py` configuration file, or *pytest* " +"and :file:`conftest.py`)." +msgstr "Setuptools ຍັງສາມາດໃຊ້ເປັນ :term:`build backend` ໄດ້ຕາມປົກກະຕິ." + +#: ../source/discussions/setup-py-deprecated.rst:18 +msgid "" +"However, ``python setup.py`` and the use of :file:`setup.py` as a command " +"line tool are deprecated." +msgstr "" +"ຢ່າງໃດກໍຕາມ, ການໃຊ້ ``python setup.py`` ເປັນເຄື່ອງມືຄຳສັ່ງ (command line tool) " +"ແມ່ນຖືກຍົກເລີກແລ້ວ." + +#: ../source/discussions/setup-py-deprecated.rst:21 +msgid "" +"This means that commands such as the following **MUST NOT** be run anymore:" +msgstr "ນີ້ໝາຍຄວາມວ່າຄຳສັ່ງຕໍ່ໄປນີ້ **ຫ້າມ** ໃຊ້ງານອີກຕໍ່ໄປ:" + +#: ../source/discussions/setup-py-deprecated.rst:23 +#: ../source/discussions/setup-py-deprecated.rst:35 +#: ../source/guides/modernize-setup-py-project.rst:32 +msgid "``python setup.py install``" +msgstr "``python setup.py install``" + +#: ../source/discussions/setup-py-deprecated.rst:24 +#: ../source/discussions/setup-py-deprecated.rst:37 +#: ../source/guides/modernize-setup-py-project.rst:34 +msgid "``python setup.py develop``" +msgstr "``python setup.py develop``" + +#: ../source/discussions/setup-py-deprecated.rst:25 +#: ../source/discussions/setup-py-deprecated.rst:39 +#: ../source/guides/modernize-setup-py-project.rst:36 +msgid "``python setup.py sdist``" +msgstr "``python setup.py sdist``" + +#: ../source/discussions/setup-py-deprecated.rst:26 +#: ../source/discussions/setup-py-deprecated.rst:41 +#: ../source/guides/modernize-setup-py-project.rst:38 +msgid "``python setup.py bdist_wheel``" +msgstr "``python setup.py bdist_wheel``" + +#: ../source/discussions/setup-py-deprecated.rst:30 +msgid "What commands should be used instead?" +msgstr "ຄວນໃຊ້ຄຳສັ່ງໃດແທນ?" + +#: ../source/discussions/setup-py-deprecated.rst:33 +#: ../source/guides/modernize-setup-py-project.rst:30 +msgid "Deprecated" +msgstr "ຍົກເລີກແລ້ວ" + +#: ../source/discussions/setup-py-deprecated.rst:33 +#: ../source/guides/modernize-setup-py-project.rst:30 +msgid "Recommendation" +msgstr "ຄຳແນະນຳ" + +#: ../source/discussions/setup-py-deprecated.rst:35 +#: ../source/guides/modernize-setup-py-project.rst:32 +msgid "``python -m pip install .``" +msgstr "``python -m pip install .``" + +#: ../source/discussions/setup-py-deprecated.rst:37 +#: ../source/guides/modernize-setup-py-project.rst:34 +msgid "``python -m pip install --editable .``" +msgstr "``python -m pip install --editable .``" + +#: ../source/discussions/setup-py-deprecated.rst:39 +msgid "``python -m build`` [#needs-build]_" +msgstr "``python -m build`` [#needs-build]_" + +#: ../source/discussions/setup-py-deprecated.rst:45 +msgid "" +"This requires the :ref:`build` dependency. It is recommended to always build " +"and publish both the source distribution and wheel of a project, which is " +"what ``python -m build`` does. If necessary the ``--sdist`` and ``--wheel`` " +"options can be used to generate only one or the other." +msgstr "ນີ້ຕ້ອງການ dependency :ref:`build`." + +#: ../source/discussions/setup-py-deprecated.rst:52 +msgid "" +"In order to install a setuptools based project, it was common to " +"run :file:`setup.py`'s ``install`` command such as: ``python setup.py " +"install``. Nowadays, the recommended method is to use :ref:`pip` directly " +"with a command like this one: ``python -m pip install .``. Where the dot " +"``.`` is actually a file system path, it is the path notation for the " +"current directory. Indeed, *pip* accepts a path to a project's source tree " +"directory on the local filesystem as argument to its ``install`` sub-" +"command. So this would also be a valid command: ``python -m pip install path/" +"to/project``." +msgstr "ແນະນຳໃຫ້ໃຊ້ ``python -m pip install .`` ແທນ." + +#: ../source/discussions/setup-py-deprecated.rst:65 +msgid "" +"As for the installation in *develop* mode aka *editable* mode, instead of " +"``python setup.py develop`` one can use the ``--editable`` option of pip's " +"*install* sub-command: ``python -m pip install --editable .``." +msgstr "" +"ສຳລັບການຕິດຕັ້ງແບບ *editable*, ໃຫ້ໃຊ້ ``python -m pip install --editable .``." + +#: ../source/discussions/setup-py-deprecated.rst:70 +msgid "" +"One recommended, simple, and straightforward method of " +"building :term:`source distributions ` " +"and :term:`wheels ` is to use the :ref:`build` tool with a command " +"like ``python -m build`` which triggers the generation of both distribution " +"formats. If necessary the ``--sdist`` and ``--wheel`` options can be used to " +"generate only one or the other. Note that the build tool needs to be " +"installed separately." +msgstr "ວິທີການທີ່ແນະນຳໃນການ build ແມ່ນການໃຊ້ເຄື່ອງມື :ref:`build`." + +#: ../source/discussions/setup-py-deprecated.rst:80 +msgid "" +"The command ``python setup.py install`` was deprecated in setuptools version " +"*58.3.0*." +msgstr "" +"ຄຳສັ່ງ ``python setup.py install`` ຖືກຍົກເລີກການນຳໃຊ້ໃນ setuptools ເວີຊັນ *58.3.0*." + +#: ../source/discussions/setup-py-deprecated.rst:85 +msgid "What about other commands?" +msgstr "ແລ້ວຄຳສັ່ງອື່ນໆ ເດ?" + +#: ../source/discussions/setup-py-deprecated.rst:87 +msgid "What are some replacements for the other ``python setup.py`` commands?" +msgstr "ມີສິ່ງໃດມາແທນທີ່ຄຳສັ່ງ ``python setup.py`` ອື່ນໆ?" + +#: ../source/discussions/setup-py-deprecated.rst:91 +msgid "``python setup.py test``" +msgstr "``python setup.py test``" + +#: ../source/discussions/setup-py-deprecated.rst:93 +msgid "The recommendation is to use a test runner such as pytest_." +msgstr "ຄຳແນະນຳແມ່ນໃຫ້ໃຊ້ test runner ເຊັ່ນ pytest_." + +#: ../source/discussions/setup-py-deprecated.rst:99 +msgid "" +"``python setup.py check``, ``python setup.py register``, and ``python " +"setup.py upload``" +msgstr "" +"``python setup.py check``, ``python setup.py register``, ແລະ ``python " +"setup.py upload``" + +#: ../source/discussions/setup-py-deprecated.rst:101 +msgid "A trusted replacement is :ref:`twine`:" +msgstr "ສິ່ງທີ່ມາແທນທີ່ ແລະ ເຊື່ອຖືໄດ້ແມ່ນ :ref:`twine`:" + +#: ../source/discussions/setup-py-deprecated.rst:103 +msgid "``python -m twine check --strict dist/*``" +msgstr "``python -m twine check --strict dist/*``" + +#: ../source/discussions/setup-py-deprecated.rst:104 +msgid "``python -m twine register dist/*.whl`` [#not-pypi]_" +msgstr "``python -m twine register dist/*.whl`` [#not-pypi]_" + +#: ../source/discussions/setup-py-deprecated.rst:105 +msgid "``python -m twine upload dist/*``" +msgstr "``python -m twine upload dist/*``" + +#: ../source/discussions/setup-py-deprecated.rst:107 +msgid "" +"Not necessary, nor supported on :term:`PyPI `. " +"But might be necessary on other :term:`package indexes ` (for " +"example :ref:`devpi`)." +msgstr "ບໍ່ຈຳເປັນ ແລະ ບໍ່ໄດ້ຮັບການສະໜັບສະໜູນໃນ PyPI." + +#: ../source/discussions/setup-py-deprecated.rst:112 +msgid "``python setup.py --version``" +msgstr "``python setup.py --version``" + +#: ../source/discussions/setup-py-deprecated.rst:114 +msgid "" +"A possible replacement solution (among others) is to rely on setuptools-scm_:" +msgstr "ທາງເລືອກໃນການແທນທີ່ແມ່ນການໃຊ້ setuptools-scm_:" + +#: ../source/discussions/setup-py-deprecated.rst:116 +msgid "``python -m setuptools_scm``" +msgstr "``python -m setuptools_scm``" + +#: ../source/discussions/setup-py-deprecated.rst:122 +msgid "Remaining commands" +msgstr "ຄຳສັ່ງທີ່ເຫຼືອ" + +#: ../source/discussions/setup-py-deprecated.rst:124 +msgid "" +"This guide does not make suggestions of replacement solutions for those " +"commands:" +msgstr "ຄູ່ມືນີ້ບໍ່ມີຂໍ້ສະເໜີແນະສຳລັບການແທນທີ່ຄຳສັ່ງເຫຼົ່ານີ້:" + +#: ../source/discussions/setup-py-deprecated.rst:129 +msgid "``alias``" +msgstr "``alias``" + +#: ../source/discussions/setup-py-deprecated.rst:130 +msgid "``bdist``" +msgstr "``bdist``" + +#: ../source/discussions/setup-py-deprecated.rst:131 +msgid "``bdist_dumb``" +msgstr "``bdist_dumb``" + +#: ../source/discussions/setup-py-deprecated.rst:132 +msgid "``bdist_egg``" +msgstr "``bdist_egg``" + +#: ../source/discussions/setup-py-deprecated.rst:133 +msgid "``bdist_rpm``" +msgstr "``bdist_rpm``" + +#: ../source/discussions/setup-py-deprecated.rst:134 +msgid "``build``" +msgstr "``build``" + +#: ../source/discussions/setup-py-deprecated.rst:135 +msgid "``build_clib``" +msgstr "``build_clib``" + +#: ../source/discussions/setup-py-deprecated.rst:136 +msgid "``build_ext``" +msgstr "``build_ext``" + +#: ../source/discussions/setup-py-deprecated.rst:137 +msgid "``build_py``" +msgstr "``build_py``" + +#: ../source/discussions/setup-py-deprecated.rst:138 +msgid "``build_scripts``" +msgstr "``build_scripts``" + +#: ../source/discussions/setup-py-deprecated.rst:139 +msgid "``clean``" +msgstr "``clean``" + +#: ../source/discussions/setup-py-deprecated.rst:140 +msgid "``dist_info``" +msgstr "``dist_info``" + +#: ../source/discussions/setup-py-deprecated.rst:141 +msgid "``easy_install``" +msgstr "``easy_install``" + +#: ../source/discussions/setup-py-deprecated.rst:142 +msgid "``editable_wheel``" +msgstr "``editable_wheel``" + +#: ../source/discussions/setup-py-deprecated.rst:143 +msgid "``egg_info``" +msgstr "``egg_info``" + +#: ../source/discussions/setup-py-deprecated.rst:144 +msgid "``install_data``" +msgstr "``install_data``" + +#: ../source/discussions/setup-py-deprecated.rst:145 +msgid "``install_egg_info``" +msgstr "``install_egg_info``" + +#: ../source/discussions/setup-py-deprecated.rst:146 +msgid "``install_headers``" +msgstr "``install_headers``" + +#: ../source/discussions/setup-py-deprecated.rst:147 +msgid "``install_lib``" +msgstr "``install_lib``" + +#: ../source/discussions/setup-py-deprecated.rst:148 +msgid "``install_scripts``" +msgstr "``install_scripts``" + +#: ../source/discussions/setup-py-deprecated.rst:149 +msgid "``rotate``" +msgstr "``rotate``" + +#: ../source/discussions/setup-py-deprecated.rst:150 +msgid "``saveopts``" +msgstr "``saveopts``" + +#: ../source/discussions/setup-py-deprecated.rst:151 +msgid "``setopt``" +msgstr "``setopt``" + +#: ../source/discussions/setup-py-deprecated.rst:152 +msgid "``upload_docs``" +msgstr "``upload_docs``" + +#: ../source/discussions/setup-py-deprecated.rst:156 +msgid "What about custom commands?" +msgstr "ແລ້ວຄຳສັ່ງທີ່ກຳນົດເອງ (custom commands) ເດ?" + +#: ../source/discussions/setup-py-deprecated.rst:158 +msgid "" +"Likewise, custom :file:`setup.py` commands are deprecated. The " +"recommendation is to migrate those custom commands to a task runner tool or " +"any other similar tool. Some examples of such tools are: chuy, make, nox or " +"tox, pydoit, pyinvoke, taskipy, and thx." +msgstr "ຄຳສັ່ງ custom ໃນ :file:`setup.py` ກໍຖືກຍົກເລີກການນຳໃຊ້ເຊັ່ນກັນ." + +#: ../source/discussions/setup-py-deprecated.rst:166 +msgid "What about custom build steps?" +msgstr "ແລ້ວຂັ້ນຕອນການ build ທີ່ກຳນົດເອງເດ?" + +#: ../source/discussions/setup-py-deprecated.rst:168 +msgid "" +"Custom build steps that for example either overwrite existing steps such as " +"``build_py``, ``build_ext``, and ``bdist_wheel`` or add new build steps are " +"not deprecated. Those will be automatically called as expected." +msgstr "" +"ຂັ້ນຕອນການ build ທີ່ກຳນົດເອງ ເຊັ່ນ ການຂຽນທັບ ``build_py`` ແມ່ນຍັງບໍ່ໄດ້ຖືກຍົກເລີກການນຳໃຊ້." + +#: ../source/discussions/setup-py-deprecated.rst:175 +#: ../source/guides/modernize-setup-py-project.rst:21 +msgid "Should ``setup.py`` be deleted?" +msgstr "ຄວນລຶບ ``setup.py`` ຖິ້ມເລີຍບໍ?" + +#: ../source/discussions/setup-py-deprecated.rst:177 +msgid "" +"Although the usage of :file:`setup.py` as an executable script is " +"deprecated, its usage as a configuration file for setuptools is absolutely " +"fine. There is likely no modification needed in :file:`setup.py`." +msgstr "" +"ເຖິງວ່າການໃຊ້ :file:`setup.py` ເປັນ script ຈະຖືກຍົກເລີກ, ແຕ່ການໃຊ້ມັນເປັນໄຟລ໌ " +"configuration ສຳລັບ setuptools ແມ່ນຍັງໃຊ້ໄດ້ປົກກະຕິ." + +#: ../source/discussions/setup-py-deprecated.rst:183 +msgid "Is ``pyproject.toml`` mandatory?" +msgstr "``pyproject.toml`` ເປັນສິ່ງທີ່ຕ້ອງມີ (mandatory) ບໍ?" + +#: ../source/discussions/setup-py-deprecated.rst:185 +msgid "" +"While it is not technically necessary yet, it is **STRONGLY RECOMMENDED** " +"for a project to have a :file:`pyproject.toml` file at the root of its " +"source tree with a content like this:" +msgstr "" +"ເຖິງວ່າໃນທາງເຕັກນິກຈະຍັງບໍ່ຈຳເປັນ, ແຕ່ **ແນະນຳຢ່າງຍິ່ງ** " +"ໃຫ້ແຕ່ລະໂຄງການມີໄຟລ໌ :file:`pyproject.toml`." + +#: ../source/discussions/setup-py-deprecated.rst:196 +msgid "" +"The guide :ref:`modernize-setup-py-project` has more details about this." +msgstr "ຄູ່ມື :ref:`modernize-setup-py-project` ມີລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບເລື່ອງນີ້." + +#: ../source/discussions/setup-py-deprecated.rst:198 +msgid "" +"The standard fallback behavior for a :term:`build frontend ` " +"in the absence of a :file:`pyproject.toml` file and its ``[build-system]`` " +"table is to assume that the :term:`build backend ` is " +"setuptools." +msgstr "" +"ຖ້າບໍ່ມີໄຟລ໌ :file:`pyproject.toml`, build frontend ຈະສົມມຸດວ່າ build backend ແມ່ນ " +"setuptools." + +#: ../source/discussions/setup-py-deprecated.rst:204 +msgid "Why? What does it all mean?" +msgstr "ເປັນຫຍັງ? ທັງໝົດນີ້ໝາຍຄວາມວ່າແນວໃດ?" + +#: ../source/discussions/setup-py-deprecated.rst:206 +msgid "" +"One way to look at it is that the scope of setuptools has now been reduced " +"to the role of a build backend." +msgstr "" +"ໃຫ້ເບິ່ງວ່າ ຂອບເຂດຂອງ setuptools ໃນຕອນນີ້ໄດ້ຖືກຫຼຸດລົງມາໃຫ້ເຮັດໜ້າທີ່ພຽງແຕ່ເປັນ build backend " +"ເທົ່ານັ້ນ." + +#: ../source/discussions/setup-py-deprecated.rst:211 +#: ../source/guides/modernize-setup-py-project.rst:244 +msgid "Where to read more about this?" +msgstr "ສາມາດອ່ານຂໍ້ມູນເພີ່ມເຕີມໄດ້ບ່ອນໃດ?" + +#: ../source/discussions/setup-py-deprecated.rst:213 +msgid "" +"`Why you shouldn't invoke setup.py directly `__ by Paul Ganssle" +msgstr "" +"`Why you shouldn't invoke setup.py directly `__ ໂດຍ Paul Ganssle" + +#: ../source/discussions/setup-py-deprecated.rst:215 +msgid ":doc:`setuptools:deprecated/commands`" +msgstr ":doc:`setuptools:deprecated/commands`" + +#: ../source/discussions/single-source-version.rst:5 +msgid "Single-sourcing the Project Version" +msgstr "ການຈັດການເວີຊັນຂອງໂຄງການຈາກແຫຼ່ງດຽວ (Single-sourcing)" + +#: ../source/discussions/single-source-version.rst:7 +msgid "Complete" +msgstr "ສຳເລັດແລ້ວ" + +#: ../source/discussions/single-source-version.rst:8 +msgid "2024-10-07" +msgstr "2024-10-07" + +#: ../source/discussions/single-source-version.rst:10 +msgid "" +"Many Python :term:`distribution packages ` publish a " +"single Python :term:`import package ` where it is desired " +"that the runtime ``__version__`` attribute on the import package report the " +"same version specifier as :func:`importlib.metadata.version` reports for the " +"distribution package (as described in :ref:`runtime-version-access`)." +msgstr "" +"ຫຼາຍແພັກເກດ Python ຕ້ອງການໃຫ້ຄ່າ ``__version__`` ໃນຕອນ runtime ກົງກັບເວີຊັນທີ່ລະບຸໄວ້ໃນ " +"distribution package." + +#: ../source/discussions/single-source-version.rst:16 +msgid "" +"It is also frequently desired that this version information be derived from " +"a version control system *tag* (such as ``v1.2.3``) rather than being " +"manually updated in the source code." +msgstr "" +"ນອກຈາກນັ້ນ ຍັງມັກມີການຕ້ອງການໃຫ້ຂໍ້ມູນເວີຊັນນີ້ຖືກດຶງມາຈາກ *tag* ຂອງລະບົບຄວບຄຸມເວີຊັນ (ເຊັ່ນ " +"``v1.2.3``)." + +#: ../source/discussions/single-source-version.rst:20 +msgid "" +"Some projects may choose to simply live with the data entry duplication, and " +"rely on automated testing to ensure the different values do not diverge." +msgstr "" +"ບາງໂຄງການອາດຈະເລືອກທີ່ຈະປ່ອຍໃຫ້ມີຂໍ້ມູນຊ້ຳຊ້ອນກັນ ແລະ " +"ໃຊ້ການທົດສອບອັດຕະໂນມັດເພື່ອຮັບປະກັນວ່າຄ່າຕ່າງໆ ຈະບໍ່ຕ່າງກັນ." + +#: ../source/discussions/single-source-version.rst:23 +msgid "" +"Alternatively, a project's chosen build system may offer a way to define a " +"single source of truth for the version number." +msgstr "" +"ຫຼື ທາງເລືອກອື່ນ, ລະບົບ build ທີ່ເລືອກໃຊ້ອາດຈະມີວິທີການກຳນົດແຫຼ່ງຂໍ້ມູນຄວາມຈິງອັນດຽວ (single " +"source of truth) ສຳລັບເລກເວີຊັນ." + +#: ../source/discussions/single-source-version.rst:26 +msgid "In general, the options are:" +msgstr "ໂດຍທົ່ວໄປແລ້ວ, ທາງເລືອກມີດັ່ງນີ້:" + +#: ../source/discussions/single-source-version.rst:28 +msgid "" +"If the code is in a version control system (VCS), such as Git, then the " +"version can be extracted from the VCS." +msgstr "ຖ້າໂຄ້ດຢູ່ໃນລະບົບຄວບຄຸມເວີຊັນ (VCS) ເຊັ່ນ Git, ເວີຊັນສາມາດຖືກດຶງອອກມາຈາກ VCS ໄດ້." + +#: ../source/discussions/single-source-version.rst:30 +msgid "" +"The version can be hard-coded into the :file:`pyproject.toml` file -- and " +"the build system can copy it into other locations it may be required." +msgstr "ເວີຊັນສາມາດຖືກລະບຸໄວ້ (hard-coded) ໃນໄຟລ໌ :file:`pyproject.toml`." + +#: ../source/discussions/single-source-version.rst:33 +msgid "" +"The version string can be hard-coded into the source code -- either in a " +"special purpose file, such as :file:`_version.txt` (which must then be " +"shipped as part of the project's source distribution package), or as an " +"attribute in a particular module, such as :file:`__init__.py`. The build " +"system can then extract it from the runtime location at build time." +msgstr "ເວີຊັນສາມາດຖືກລະບຸໄວ້ໃນ source code." + +#: ../source/discussions/single-source-version.rst:38 +msgid "Consult your build system's documentation for their recommended method." +msgstr "ໃຫ້ສຶກສາເອກະສານຂອງລະບົບ build ຂອງທ່ານສຳລັບວິທີການທີ່ແນະນຳ." + +#: ../source/discussions/single-source-version.rst:40 +msgid "" +"When the intention is that a distribution package and its associated import " +"package share the same version, it is recommended that the project include " +"an automated test case that ensures ``import_name.__version__`` and " +"``importlib.metadata.version(\"dist-name\")`` report the same value (note: " +"for many projects, ``import_name`` and ``dist-name`` will be the same name)." +msgstr "" +"ເມື່ອຕ້ອງການໃຫ້ແພັກເກດທັງສອງປະເພດໃຊ້ເວີຊັນດຽວກັນ, ແນະນຳໃຫ້ມີການທົດສອບອັດຕະໂນມັດເພື່ອຢືນຢັນເລື່ອງນີ້." + +#: ../source/discussions/single-source-version.rst:50 +msgid "Build System Version Handling" +msgstr "ການຈັດການເວີຊັນໂດຍລະບົບ Build" + +#: ../source/discussions/single-source-version.rst:52 +msgid "" +"The following are links to some build system's documentation for handling " +"version strings." +msgstr "ຕໍ່ໄປນີ້ແມ່ນລິ້ງໄປຫາເອກະສານຂອງລະບົບ build ບາງຢ່າງສຳລັບການຈັດການເວີຊັນ." + +#: ../source/discussions/single-source-version.rst:54 +msgid "`Flit `_" +msgstr "`Flit `_" + +#: ../source/discussions/single-source-version.rst:56 +msgid "`Hatchling `_" +msgstr "`Hatchling `_" + +#: ../source/discussions/single-source-version.rst:58 +msgid "" +"`PDM `_" +msgstr "" +"`PDM `_" + +#: ../source/discussions/single-source-version.rst:60 +msgid "" +"`Setuptools `_" +msgstr "" +"`Setuptools `_" + +#: ../source/discussions/single-source-version.rst:62 +msgid "`setuptools_scm `_" +msgstr "`setuptools_scm `_" + +#: ../source/discussions/src-layout-vs-flat-layout.rst:5 +msgid "src layout vs flat layout" +msgstr "ໂຄງຮ່າງແບບ src ທຽບກັບ ໂຄງຮ່າງແບບແປ (flat layout)" + +#: ../source/discussions/src-layout-vs-flat-layout.rst:7 +msgid "" +"The \"flat layout\" refers to organising a project's files in a folder or " +"repository, such that the various configuration files and :term:`import " +"packages ` are all in the top-level directory." +msgstr "" +"\"ໂຄງຮ່າງແບບແປ (flat layout)\" ໝາຍເຖິງການຈັດລະບຽບໄຟລ໌ຂອງໂຄງການໃນໂຟນເດີ ຫຼື ຄັງເກັບ " +"(repository), ໂດຍທີ່ໄຟລ໌ກຳນົດຄ່າຕ່າງໆ ແລະ :term:`ແພັກເກດນຳເຂົ້າ ` " +"ທັງໝົດຈະຢູ່ໃນໄດເຣັກທໍຣີລະດັບສູງສຸດ." + +#: ../source/discussions/src-layout-vs-flat-layout.rst:25 +msgid "" +"The \"src layout\" deviates from the flat layout by moving the code that is " +"intended to be importable (i.e. ``import awesome_package``, also known " +"as :term:`import packages `) into a subdirectory. This " +"subdirectory is typically named ``src/``, hence \"src layout\"." +msgstr "" +"\"ໂຄງຮ່າງແບບ src\" ຈະແຕກຕ່າງຈາກໂຄງຮ່າງແບບແປ ໂດຍການຍ້າຍໂຄ້ດທີ່ຕ້ອງການໃຫ້ສາມາດນຳເຂົ້າໄດ້ " +"(ເຊັ່ນ ``import awesome_package``, ຫຼືທີ່ຮູ້ຈັກກັນໃນຊື່ :term:`ແພັກເກດນຳເຂົ້າ `) ເຂົ້າໄປໃນໄດເຣັກທໍຣີຍ່ອຍ. ໄດເຣັກທໍຣີຍ່ອຍນີ້ປົກກະຕິຈະຖືກຕັ້ງຊື່ວ່າ ``src/``, " +"ຈຶ່ງເປັນທີ່ມາຂອງຊື່ \"ໂຄງຮ່າງແບບ src\"." + +#: ../source/discussions/src-layout-vs-flat-layout.rst:45 +msgid "" +"Here's a breakdown of the important behaviour differences between the src " +"layout and the flat layout:" +msgstr "ນີ້ຄືລາຍລະອຽດຄວາມແຕກຕ່າງຂອງພຶດຕິກຳທີ່ສຳຄັນລະຫວ່າງ ໂຄງຮ່າງແບບ src ແລະ ໂຄງຮ່າງແບບແປ:" + +#: ../source/discussions/src-layout-vs-flat-layout.rst:48 +msgid "" +"The src layout requires installation of the project to be able to run its " +"code, and the flat layout does not." +msgstr "" +"ໂຄງຮ່າງແບບ src ຈຳເປັນຕ້ອງມີການຕິດຕັ້ງໂຄງການກ່ອນຈຶ່ງຈະສາມາດລັນໂຄ້ດໄດ້, ແຕ່ໂຄງຮ່າງແບບແປບໍ່ຈຳເປັນ." + +#: ../source/discussions/src-layout-vs-flat-layout.rst:51 +msgid "" +"This means that the src layout involves an additional step in the " +"development workflow of a project (typically, an :doc:`editable installation " +"` is used for development and a " +"regular installation is used for testing)." +msgstr "" +"ນີ້ໝາຍຄວາມວ່າ ໂຄງຮ່າງແບບ src ຈະມີຂັ້ນຕອນເພີ່ມເຕີມໃນຂະບວນການພັດທະນາໂຄງການ " +"(ໂດຍປົກກະຕິ, :doc:`ການຕິດຕັ້ງແບບແກ້ໄຂໄດ້ ` " +"ຈະຖືກໃຊ້ສຳລັບການພັດທະນາ ແລະ ການຕິດຕັ້ງແບບປົກກະຕິຈະຖືກໃຊ້ສຳລັບການທົດສອບ)." + +#: ../source/discussions/src-layout-vs-flat-layout.rst:56 +msgid "" +"The src layout helps prevent accidental usage of the in-development copy of " +"the code." +msgstr "ໂຄງຮ່າງແບບ src ຊ່ວຍປ້ອງກັນການນຳໃຊ້ໂຄ້ດສະບັບທີ່ກຳລັງພັດທະນາຢູ່ໂດຍບໍ່ໄດ້ຕັ້ງໃຈ." + +#: ../source/discussions/src-layout-vs-flat-layout.rst:59 +msgid "" +"This is relevant since the Python interpreter includes the current working " +"directory as the first item on the import path. This means that if an import " +"package exists in the current working directory with the same name as an " +"installed import package, the variant from the current working directory " +"will be used. This can lead to subtle misconfiguration of the project's " +"packaging tooling, which could result in files not being included in a " +"distribution." +msgstr "" +"ເລື່ອງນີ້ມີຄວາມສຳຄັນເນື່ອງຈາກ Python interpreter ຈະລວມເອົາໄດເຣັກທໍຣີທີ່ກຳລັງເຮັດວຽກຢູ່ " +"(current working directory) ເປັນລາຍການທຳອິດໃນເສັ້ນທາງການນຳເຂົ້າ (import path). " +"ນີ້ໝາຍຄວາມວ່າ ຖ້າມີແພັກເກດນຳເຂົ້າຢູ່ໃນໄດເຣັກທໍຣີປະຈຸບັນທີ່ມີຊື່ດຽວກັນກັບແພັກເກດທີ່ຕິດຕັ້ງໄວ້, " +"ຕົວທີ່ຢູ່ໃນໄດເຣັກທໍຣີປະຈຸບັນຈະຖືກນຳມາໃຊ້ແທນ. " +"ສິ່ງນີ້ອາດນຳໄປສູ່ການຕັ້ງຄ່າທີ່ຜິດພາດຂອງເຄື່ອງມືການຈັດເຮັດແພັກເກດ, " +"ເຊິ່ງອາດເຮັດໃຫ້ບາງໄຟລ໌ບໍ່ຖືກລວມເຂົ້າໃນຊຸດແຈກຢາຍ (distribution)." + +#: ../source/discussions/src-layout-vs-flat-layout.rst:66 +msgid "" +"The src layout helps avoid this by keeping import packages in a directory " +"separate from the root directory of the project, ensuring that the installed " +"copy is used." +msgstr "" +"ໂຄງຮ່າງແບບ src " +"ຊ່ວຍຫຼີກເວັ້ນບັນຫານີ້ໄດ້ໂດຍການເກັບແພັກເກດນຳເຂົ້າໄວ້ໃນໄດເຣັກທໍຣີທີ່ແຍກຕ່າງຫາກຈາກໄດເຣັກທໍຣີຮາກ (root) " +"ຂອງໂຄງການ, ເພື່ອຮັບປະກັນວ່າຕົວທີ່ຕິດຕັ້ງແລ້ວຈະຖືກນຳມາໃຊ້." + +#: ../source/discussions/src-layout-vs-flat-layout.rst:70 +msgid "" +"The src layout helps enforce that an :doc:`editable installation " +"` is only able to import files that " +"were meant to be importable." +msgstr "" +"ໂຄງຮ່າງແບບ src ຊ່ວຍບັງຄັບໃຫ້ :doc:`ການຕິດຕັ້ງແບບແກ້ໄຂໄດ້ ` ສາມາດນຳເຂົ້າໄດ້ສະເພາະໄຟລ໌ທີ່ຕັ້ງໃຈໃຫ້ສາມາດນຳເຂົ້າໄດ້ເທົ່ານັ້ນ." + +#: ../source/discussions/src-layout-vs-flat-layout.rst:74 +msgid "" +"This is especially relevant when the editable installation is implemented " +"using a `path configuration file `_ that adds the directory to the import path." +msgstr "" +"ສິ່ງນີ້ມີຄວາມສຳຄັນເປັນພິເສດເມື່ອການຕິດຕັ້ງແບບແກ້ໄຂໄດ້ຖືກນຳໃຊ້ຜ່ານ `ໄຟລ໌ກຳນົດຄ່າເສັ້ນທາງ (path " +"configuration file) `_ " +"ທີ່ເພີ່ມໄດເຣັກທໍຣີເຂົ້າໃນເສັ້ນທາງການນຳເຂົ້າ." + +#: ../source/discussions/src-layout-vs-flat-layout.rst:78 +msgid "" +"The flat layout would add the other project files (eg: ``README.md``, " +"``tox.ini``) and packaging/tooling configuration files (eg: ``setup.py``, " +"``noxfile.py``) on the import path. This would make certain imports work in " +"editable installations but not regular installations." +msgstr "" +"ໂຄງຮ່າງແບບແປຈະເພີ່ມໄຟລ໌ອື່ນໆຂອງໂຄງການ (ເຊັ່ນ: ``README.md``, ``tox.ini``) ແລະ " +"ໄຟລ໌ກຳນົດຄ່າການຈັດເຮັດແພັກເກດ/ເຄື່ອງມື (ເຊັ່ນ: ``setup.py``, ``noxfile.py``) " +"ເຂົ້າໃນເສັ້ນທາງການນຳເຂົ້າ. ສິ່ງນີ້ຈະເຮັດໃຫ້ການນຳເຂົ້າບາງຢ່າງໃຊ້ງານໄດ້ໃນການຕິດຕັ້ງແບບແກ້ໄຂໄດ້ " +"ແຕ່ຈະໃຊ້ງານບໍ່ໄດ້ໃນການຕິດຕັ້ງແບບປົກກະຕິ." + +#: ../source/discussions/src-layout-vs-flat-layout.rst:86 +msgid "Running a command-line interface from source with src-layout" +msgstr "ການລັນ interface ແບບບັນທັດຄຳສັ່ງ (CLI) ຈາກຊອດໂຄ້ດດ້ວຍ src-layout" + +#: ../source/discussions/src-layout-vs-flat-layout.rst:88 +msgid "" +"Due to the firstly mentioned specialty of the src layout, a command-line " +"interface can not be run directly from the :term:`source tree `, but requires installation of the package in :doc:`Development " +"Mode ` for testing purposes. Since " +"this can be unpractical in some situations, a workaround could be to prepend " +"the package folder to Python's :py:data:`sys.path` when called via " +"its :file:`__main__.py` file:" +msgstr "" +"ເນື່ອງຈາກຄຸນລັກສະນະພິເສດຂອງໂຄງຮ່າງແບບ src ທີ່ໄດ້ກ່າວມາຂ້າງເທິງ, interface " +"ແບບບັນທັດຄຳສັ່ງຈຶ່ງບໍ່ສາມາດລັນໂດຍກົງຈາກ :term:`ຊອດໂຄ້ດຕົ້ນສະບັບ (source tree) `, ແຕ່ຈຳເປັນຕ້ອງມີການຕິດຕັ້ງແພັກເກດໃນ :doc:`ໂໝດການພັດທະນາ (Development " +"Mode) ` ເພື່ອຈຸດປະສົງໃນການທົດສອບ. " +"ເນື່ອງຈາກສິ່ງນີ້ອາດບໍ່ສະດວກໃນບາງສະຖານະການ, " +"ວິທີແກ້ໄຂຊົ່ວຄາວຄືການເພີ່ມໂຟນເດີແພັກເກດໄວ້ທາງໜ້າຂອງ :py:data:`sys.path` ຂອງ Python " +"ເມື່ອຖືກເອີ້ນໃຊ້ຜ່ານໄຟລ໌ :file:`__main__.py`:" + +#: ../source/discussions/versioning.rst:6 +#: ../source/specifications/simple-repository-api.rst:358 +msgid "Versioning" +msgstr "ການກຳນົດເວີຊັນ" + +#: ../source/discussions/versioning.rst:8 +msgid "This discussion covers all aspects of versioning Python packages." +msgstr "ການສົນທະນານີ້ກວມເອົາທຸກດ້ານຂອງການກຳນົດເວີຊັນສຳລັບແພັກເກດ Python." + +#: ../source/discussions/versioning.rst:12 +msgid "Valid version numbers" +msgstr "ໝາຍເລກເວີຊັນທີ່ຖືກຕ້ອງ" + +#: ../source/discussions/versioning.rst:14 +msgid "" +"Different Python projects may use different versioning schemes based on the " +"needs of that particular project, but in order to be compatible with tools " +"like :ref:`pip`, all of them are required to comply with a flexible format " +"for version identifiers, for which the authoritative reference is " +"the :ref:`specification of version specifiers `. Here " +"are some examples of version numbers [#version-examples]_:" +msgstr "" +"ໂຄງການ Python ຕ່າງໆອາດໃຊ້ຮູບແບບການກຳນົດເວີຊັນທີ່ແຕກຕ່າງກັນຕາມຄວາມຕ້ອງການຂອງໂຄງການນັ້ນໆ, " +"ແຕ່ເພື່ອໃຫ້ສາມາດໃຊ້ງານຮ່ວມກັບເຄື່ອງມືຢ່າງ :ref:`pip` ໄດ້, " +"ທຸກໂຄງການຈຳເປັນຕ້ອງປະຕິບັດຕາມຮູບແບບທີ່ຢືດຢຸ່ນສຳລັບຕົວລະບຸເວີຊັນ, " +"ເຊິ່ງສາມາດອ້າງອີງໄດ້ຈາກ :ref:`ຂໍ້ກຳນົດຂອງຕົວລະບຸເວີຊັນ `. " +"ນີ້ຄືບາງຕົວຢ່າງຂອງໝາຍເລກເວີຊັນ [#version-examples]_:" + +#: ../source/discussions/versioning.rst:21 +msgid "A simple version (final release): ``1.2.0``" +msgstr "ເວີຊັນແບບງ່າຍ (ເວີຊັນປ່ອຍຕົວຈິງ): ``1.2.0``" + +#: ../source/discussions/versioning.rst:22 +msgid "A development release: ``1.2.0.dev1``" +msgstr "ເວີຊັນສຳລັບການພັດທະນາ (development release): ``1.2.0.dev1``" + +#: ../source/discussions/versioning.rst:23 +msgid "An alpha release: ``1.2.0a1``" +msgstr "ເວີຊັນອັລຟາ (alpha release): ``1.2.0a1``" + +#: ../source/discussions/versioning.rst:24 +msgid "A beta release: ``1.2.0b1``" +msgstr "ເວີຊັນເບຕ້າ (beta release): ``1.2.0b1``" + +#: ../source/discussions/versioning.rst:25 +msgid "A release candidate: ``1.2.0rc1``" +msgstr "ເວີຊັນກ່ອນປ່ອຍຕົວຈິງ (release candidate): ``1.2.0rc1``" + +#: ../source/discussions/versioning.rst:26 +msgid "A post-release: ``1.2.0.post1``" +msgstr "ເວີຊັນຫຼັງການປ່ອຍ (post-release): ``1.2.0.post1``" + +#: ../source/discussions/versioning.rst:27 +msgid "" +"A post-release of an alpha release (possible, but discouraged): " +"``1.2.0a1.post1``" +msgstr "ເວີຊັນຫຼັງການປ່ອຍຂອງເວີຊັນອັລຟາ (ສາມາດເຮັດໄດ້, ແຕ່ບໍ່ແນະນຳ): ``1.2.0a1.post1``" + +#: ../source/discussions/versioning.rst:28 +msgid "A simple version with only two components: ``23.12``" +msgstr "ເວີຊັນແບບງ່າຍທີ່ມີພຽງສອງສ່ວນ: ``23.12``" + +#: ../source/discussions/versioning.rst:29 +msgid "A simple version with just one component: ``42``" +msgstr "ເວີຊັນແບບງ່າຍທີ່ມີພຽງສ່ວນດຽວ: ``42``" + +#: ../source/discussions/versioning.rst:30 +msgid "A version with an epoch (discouraged): ``1!1.0``" +msgstr "ເວີຊັນທີ່ມີ epoch (ບໍ່ແນະນຳ): ``1!1.0``" + +#: ../source/discussions/versioning.rst:32 +msgid "" +"Projects can use a cycle of pre-releases to support testing by their users " +"before a final release. In order, the steps are: alpha releases, beta " +"releases, release candidates, final release. Pip and other modern Python " +"package installers ignore pre-releases by default when deciding which " +"versions of dependencies to install, unless explicitly requested (e.g., with " +"``pip install pkg==1.1a3`` or ``pip install --pre pkg``)." +msgstr "" +"ໂຄງການຕ່າງໆສາມາດໃຊ້ວົງຈອນການປ່ອຍກ່ອນກຳນົດ (pre-release) " +"ເພື່ອສະໜັບສະໜູນການທົດສອບໂດຍຜູ້ໃຊ້ກ່ອນຈະປ່ອຍຕົວຈິງ. ຕາມລຳດັບຂັ້ນຕອນຄື: ເວີຊັນອັລຟາ, ເວີຊັນເບຕ້າ, " +"ເວີຊັນກ່ອນປ່ອຍຕົວຈິງ, ແລະ ເວີຊັນປ່ອຍຕົວຈິງ. Pip ແລະ ເຄື່ອງມືຕິດຕັ້ງແພັກເກດ Python " +"ທີ່ທັນສະໄໝອື່ນໆຈະຂ້າມເວີຊັນ pre-release ໂດຍຄ່າເລີ່ມຕົ້ນໃນເວລາເລືອກເວີຊັນຂອງສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ " +"(dependencies) ເພື່ອຕິດຕັ້ງ, ເວັ້ນເສຍແຕ່ຈະມີການລະບຸຢ່າງຊັດເຈນ (ເຊັ່ນ: ດ້ວຍຄຳສັ່ງ ``pip " +"install pkg==1.1a3`` ຫຼື ``pip install --pre pkg``)." + +#: ../source/discussions/versioning.rst:39 +msgid "" +"The purpose of development releases is to support releases made early during " +"a development cycle, for example, a nightly build, or a build from the " +"latest source in a Linux distribution." +msgstr "" +"ຈຸດປະສົງຂອງ development releases " +"ແມ່ນເພື່ອສະໜັບສະໜູນການປ່ອຍເວີຊັນໃນໄລຍະເລີ່ມຕົ້ນຂອງວົງຈອນການພັດທະນາ, ຕົວຢ່າງເຊັ່ນ: nightly " +"build, ຫຼື ການສ້າງຈາກຊອດໂຄ້ດຫຼ້າສຸດໃນຊຸດແຈກຢາຍ Linux." + +#: ../source/discussions/versioning.rst:43 +msgid "" +"Post-releases are used to address minor errors in a final release that do " +"not affect the distributed software, such as correcting an error in the " +"release notes. They should not be used for bug fixes; these should be done " +"with a new final release (e.g., incrementing the third component when using " +"semantic versioning)." +msgstr "" +"Post-releases " +"ຖືກນຳໃຊ້ເພື່ອແກ້ໄຂຂໍ້ຜິດພາດເລັກໆນ້ອຍໆໃນເວີຊັນປ່ອຍຕົວຈິງທີ່ບໍ່ມີຜົນກະທົບຕໍ່ຊອບແວທີ່ແຈກຢາຍໄປ, " +"ເຊັ່ນການແກ້ໄຂຂໍ້ຜິດພາດໃນບັນທຶກການປ່ອຍ (release notes). ພວກມັນບໍ່ຄວນຖືກນຳໃຊ້ເພື່ອແກ້ໄຂບັກ (bug " +"fixes); ການແກ້ໄຂບັກຄວນເຮັດໃນເວີຊັນປ່ອຍຕົວຈິງໃໝ່ (ເຊັ່ນ: " +"ການເພີ່ມຕົວເລກສ່ວນທີສາມເມື່ອໃຊ້ການກຳນົດເວີຊັນຕາມຄວາມໝາຍ)." + +#: ../source/discussions/versioning.rst:49 +msgid "" +"Finally, epochs were intended to fix the sorting order when changing the " +"versioning scheme. For example, if a project was using calendar versioning, " +"with versions like ``23.12``, and switched to semantic versioning, with " +"versions like ``1.0``, the comparison between ``1.0`` and ``23.12`` would go " +"the wrong way. To correct this, the new version numbers would have an " +"explicit epoch, as in ``1!1.0``, in order to be treated as more recent than " +"the old version numbers. However, this is discouraged, and it is preferable " +"to use a higher version number that is unlikely to cause user confusion, " +"such as ``100.0``." +msgstr "" +"ສຸດທ້າຍ, epochs ມີໄວ້ເພື່ອແກ້ໄຂລຳດັບການຈັດລຽງເມື່ອມີການປ່ຽນຮູບແບບການກຳນົດເວີຊັນ. ຕົວຢ່າງ: " +"ຖ້າໂຄງການເຄີຍໃຊ້ການກຳນົດເວີຊັນຕາມປະຕິທິນ ເຊັ່ນ ``23.12``, " +"ແລ້ວປ່ຽນມາໃຊ້ການກຳນົດເວີຊັນຕາມຄວາມໝາຍ ເຊັ່ນ ``1.0``, ການປຽບທຽບລະຫວ່າງ ``1.0`` ແລະ " +"``23.12`` ຈະຜິດລຳດັບ. ເພື່ອແກ້ໄຂສິ່ງນີ້, ໝາຍເລກເວີຊັນໃໝ່ຈະມີ epoch ລະບຸໄວ້ຢ່າງຊັດເຈນ ເຊັ່ນ ``1!" +"1.0`` ເພື່ອໃຫ້ຖືກນັບວ່າໃໝ່ກວ່າໝາຍເລກເວີຊັນເກົ່າ. ເຖິງຢ່າງໃດກໍຕາມ, ວິທີນີ້ບໍ່ແນະນຳ ແລະ " +"ຄວນໃຊ້ໝາຍເລກເວີຊັນທີ່ສູງຂຶ້ນເຊິ່ງຈະບໍ່ເຮັດໃຫ້ຜູ້ໃຊ້ສັບສົນ ເຊັ່ນ ``100.0`` ຈະດີກວ່າ." + +#: ../source/discussions/versioning.rst:60 +msgid "Semantic versioning vs. calendar versioning" +msgstr "ການກຳນົດເວີຊັນຕາມຄວາມໝາຍ (Semantic) ທຽບກັບ ການກຳນົດເວີຊັນຕາມປະຕິທິນ (Calendar)" + +#: ../source/discussions/versioning.rst:62 +msgid "" +"A versioning scheme is a formalized way to interpret the segments of a " +"version number, and to decide which should be the next version number for a " +"new release of a package. Two versioning schemes are commonly used for " +"Python packages, semantic versioning and calendar versioning." +msgstr "" +"ຮູບແບບການກຳນົດເວີຊັນແມ່ນວິທີການທີ່ເປັນທາງການໃນການຕີຄວາມໝາຍສ່ວນຕ່າງໆຂອງໝາຍເລກເວີຊັນ, ແລະ " +"ເພື່ອຕັດສິນໃຈວ່າໝາຍເລກເວີຊັນຖັດໄປສຳລັບການປ່ອຍແພັກເກດໃໝ່ຄວນເປັນແນວໃດ. " +"ມີສອງຮູບແບບທີ່ນິຍົມໃຊ້ສຳລັບແພັກເກດ Python ຄື: ການກຳນົດເວີຊັນຕາມຄວາມໝາຍ ແລະ " +"ການກຳນົດເວີຊັນຕາມປະຕິທິນ." + +#: ../source/discussions/versioning.rst:69 +msgid "" +"The decision which version number to choose is up to a project's maintainer. " +"This effectively means that version bumps reflect the maintainer's view. " +"That view may differ from the end-users' perception of what said formalized " +"versioning scheme promises them." +msgstr "" +"ການຕັດສິນໃຈເລືອກໝາຍເລກເວີຊັນແມ່ນຂຶ້ນກັບຜູ້ດູແລໂຄງການ. " +"ສິ່ງນີ້ໝາຍຄວາມວ່າການປ່ຽນໝາຍເລກເວີຊັນສະທ້ອນເຖິງມຸມມອງຂອງຜູ້ດູແລ. " +"ມຸມມອງນັ້ນອາດຈະແຕກຕ່າງຈາກການຮັບຮູ້ຂອງຜູ້ໃຊ້ກ່ຽວກັບສິ່ງທີ່ຮູບແບບການກຳນົດເວີຊັນນັ້ນໄດ້ບອກໄວ້." + +#: ../source/discussions/versioning.rst:75 +msgid "" +"There are known exceptions for selecting the next version number. The " +"maintainers may consciously choose to break the assumption that the last " +"version segment only contains backwards-compatible changes. One such case is " +"when a security vulnerability needs to be addressed. Security releases often " +"come in patch versions but contain breaking changes inevitably." +msgstr "" +"ມີຂໍ້ຍົກເວັ້ນບາງປະການໃນການເລືອກໝາຍເລກເວີຊັນຖັດໄປ. " +"ຜູ້ດູແລອາດຕັ້ງໃຈທີ່ຈະເຮັດໃຫ້ການປ່ຽນແປງໃນສ່ວນສຸດທ້າຍຂອງເວີຊັນບໍ່ສາມາດໃຊ້ງານຮ່ວມກັບເວີຊັນເກົ່າໄດ້ " +"(break backwards compatibility). ກໍລະນີໜຶ່ງຄືເມື່ອມີການແກ້ໄຂຊ່ອງໂຫວ່ດ້ານຄວາມປອດໄພ. " +"ການປ່ອຍເວີຊັນດ້ານຄວາມປອດໄພມັກຈະມາໃນຮູບແບບຂອງ patch " +"ແຕ່ອາດມີການປ່ຽນແປງທີ່ຫຼີກເວັ້ນບໍ່ໄດ້ເຊິ່ງເຮັດໃຫ້ລະບົບເກົ່າໃຊ້ງານບໍ່ໄດ້." + +#: ../source/discussions/versioning.rst:85 +#: ../source/specifications/version-specifiers.rst:738 +msgid "Semantic versioning" +msgstr "ການກຳນົດເວີຊັນຕາມຄວາມໝາຍ (Semantic versioning)" + +#: ../source/discussions/versioning.rst:87 +msgid "" +"The idea of *semantic versioning* (or SemVer) is to use 3-part version " +"numbers, *major.minor.patch*, where the project author increments:" +msgstr "" +"ແນວຄິດຂອງ *ການກຳນົດເວີຊັນຕາມຄວາມໝາຍ* (ຫຼື SemVer) ແມ່ນການໃຊ້ໝາຍເລກເວີຊັນ 3 ສ່ວນ ຄື " +"*major.minor.patch*, ໂດຍທີ່ຜູ້ຂຽນໂຄງການຈະເພີ່ມຕົວເລກ:" + +#: ../source/discussions/versioning.rst:90 +msgid "*major* when they make incompatible API changes," +msgstr "*major* ເມື່ອມີການປ່ຽນແປງ API ທີ່ບໍ່ສາມາດໃຊ້ງານຮ່ວມກັບເວີຊັນເກົ່າໄດ້," + +#: ../source/discussions/versioning.rst:91 +msgid "" +"*minor* when they add functionality in a backwards-compatible manner, and" +msgstr "*minor* ເມື່ອມີການເພີ່ມຟັງຊັນໃໝ່ທີ່ຍັງສາມາດໃຊ້ງານຮ່ວມກັບເວີຊັນເກົ່າໄດ້, ແລະ" + +#: ../source/discussions/versioning.rst:92 +msgid "*patch*, when they make backwards-compatible bug fixes." +msgstr "*patch* ເມື່ອມີການແກ້ໄຂບັກທີ່ຍັງສາມາດໃຊ້ງານຮ່ວມກັບເວີຊັນເກົ່າໄດ້." + +#: ../source/discussions/versioning.rst:94 +msgid "" +"A majority of Python projects use a scheme that resembles semantic " +"versioning. However, most projects, especially larger ones, do not strictly " +"adhere to semantic versioning, since many changes are technically breaking " +"changes but affect only a small fraction of users. Such projects tend to " +"increment the major number when the incompatibility is high, or to signal a " +"shift in the project, rather than for any tiny incompatibility [#semver-" +"strictness]_. Conversely, a bump of the major version number is sometimes " +"used to signal significant but backwards-compatible new features." +msgstr "" +"ໂຄງການ Python ສ່ວນໃຫຍ່ໃຊ້ຮູບແບບທີ່ຄ້າຍຄືກັບການກຳນົດເວີຊັນຕາມຄວາມໝາຍ. ເຖິງຢ່າງໃດກໍຕາມ, " +"ຫຼາຍໂຄງການ ໂດຍສະເພາະໂຄງການຂະໜາດໃຫຍ່, ບໍ່ໄດ້ປະຕິບັດຕາມ SemVer ຢ່າງເຄັ່ງຄັດ, " +"ເນື່ອງຈາກການປ່ຽນແປງຫຼາຍຢ່າງທາງດ້ານເຕັກນິກອາດຈະ break ລະບົບ " +"ແຕ່ມີຜົນກະທົບຕໍ່ຜູ້ໃຊ້ພຽງສ່ວນໜ້ອຍເທົ່ານັ້ນ. ໂຄງການເຫຼົ່ານີ້ມັກຈະເພີ່ມເລກ major ເມື່ອມີການປ່ຽນແປງທີ່ໃຫຍ່ຫຼາຍ " +"ຫຼື ເພື່ອສົ່ງສັນຍານເຖິງການປ່ຽນແປງຄັ້ງສຳຄັນຂອງໂຄງການ ຫຼາຍກວ່າຈະປ່ຽນຍ້ອນຄວາມບໍ່ເຂົ້າກັນເລັກໆນ້ອຍໆ " +"[#semver-strictness]_. ໃນທາງກັບກັນ, ບາງຄັ້ງການເພີ່ມເລກ major " +"ກໍຖືກໃຊ້ເພື່ອບອກເຖິງຟີເຈີໃໝ່ທີ່ສຳຄັນແຕ່ຍັງຄົງໃຊ້ງານຮ່ວມກັບເວີຊັນເກົ່າໄດ້." + +#: ../source/discussions/versioning.rst:104 +msgid "" +"For those projects that do use strict semantic versioning, this approach " +"allows users to make use of :ref:`compatible release version specifiers " +"`, with the ``~=`` operator. For " +"example, ``name ~= X.Y`` is roughly equivalent to ``name >= X.Y, == X.*``, " +"i.e., it requires at least release X.Y, and allows any later release with " +"greater Y as long as X is the same. Likewise, ``name ~= X.Y.Z`` is roughly " +"equivalent to ``name >= X.Y.Z, == X.Y.*``, i.e., it requires at least X.Y.Z " +"and allows a later release with same X and Y but higher Z." +msgstr "" +"ສຳລັບໂຄງການທີ່ໃຊ້ SemVer ຢ່າງເຄັ່ງຄັດ, ວິທີນີ້ຊ່ວຍໃຫ້ຜູ້ໃຊ້ສາມາດໃຊ້ :ref:`ຕົວລະບຸເວີຊັນທີ່ເຂົ້າກັນໄດ້ " +"` ດ້ວຍເຄື່ອງໝາຍ ``~=``. ຕົວຢ່າງ: ``name ~= " +"X.Y`` ຈະທຽບເທົ່າກັບ ``name >= X.Y, == X.*``, ໝາຍຄວາມວ່າຕ້ອງການຢ່າງໜ້ອຍເວີຊັນ X.Y ແລະ " +"ອະນຸຍາດໃຫ້ໃຊ້ເວີຊັນທີ່ Y ສູງກວ່າໄດ້ ຕາບໃດທີ່ X ຍັງຄືເກົ່າ. ໃນທຳນອງດຽວກັນ, ``name ~= X.Y.Z`` " +"ຈະທຽບເທົ່າກັບ ``name >= X.Y.Z, == X.Y.*``, ຄືຕ້ອງການຢ່າງໜ້ອຍ X.Y.Z ແລະ " +"ອະນຸຍາດໃຫ້ໃຊ້ເວີຊັນທີ່ Z ສູງກວ່າໄດ້ ຕາບໃດທີ່ X ແລະ Y ຍັງຄືເກົ່າ." + +#: ../source/discussions/versioning.rst:113 +msgid "" +"Python projects adopting semantic versioning should abide by clauses 1-8 of " +"the `Semantic Versioning 2.0.0 specification `_." +msgstr "" +"ໂຄງການ Python ທີ່ນຳໃຊ້ການກຳນົດເວີຊັນຕາມຄວາມໝາຍ ຄວນປະຕິບັດຕາມຂໍ້ກຳນົດທີ 1-8 ຂອງ `Semantic " +"Versioning 2.0.0 `_." + +#: ../source/discussions/versioning.rst:116 +msgid "" +"The popular :doc:`Sphinx ` documentation generator is an " +"example project that uses strict semantic versioning (:doc:`Sphinx " +"versioning policy `). The " +"famous :doc:`NumPy ` scientific computing package explicitly " +"uses \"loose\" semantic versioning, where releases incrementing the minor " +"version can contain backwards-incompatible API changes (:doc:`NumPy " +"versioning policy `)." +msgstr "" +"ເຄື່ອງມືສ້າງເອກະສານ :doc:`Sphinx ` ທີ່ນິຍົມແມ່ນຕົວຢ່າງຂອງໂຄງການທີ່ໃຊ້ SemVer " +"ຢ່າງເຄັ່ງຄັດ (:doc:`ນະໂຍບາຍການກຳນົດເວີຊັນຂອງ Sphinx `). ສ່ວນແພັກເກດ :doc:`NumPy ` " +"ທີ່ມີຊື່ສຽງສຳລັບການຄຳນວນທາງວິທະຍາສາດ ແມ່ນໃຊ້ SemVer ແບບ \"ຢືດຢຸ່ນ\", ເຊິ່ງການປ່ຽນເລກ minor " +"ອາດຈະມີການປ່ຽນແປງ API ທີ່ບໍ່ສາມາດໃຊ້ງານຮ່ວມກັບເວີຊັນເກົ່າໄດ້ (:doc:`ນະໂຍບາຍການກຳນົດເວີຊັນຂອງ " +"NumPy `)." + +#: ../source/discussions/versioning.rst:125 +msgid "Calendar versioning" +msgstr "ການກຳນົດເວີຊັນຕາມປະຕິທິນ (Calendar versioning)" + +#: ../source/discussions/versioning.rst:127 +msgid "" +"Semantic versioning is not a suitable choice for all projects, such as those " +"with a regular time-based release cadence and a deprecation process that " +"provides warnings for a number of releases prior to removal of a feature." +msgstr "" +"ການກຳນົດເວີຊັນຕາມຄວາມໝາຍອາດບໍ່ເໝາະສົມກັບທຸກໂຄງການ, ເຊັ່ນໂຄງການທີ່ມີຮອບການປ່ອຍທີ່ແນ່ນອນຕາມເວລາ " +"ແລະ ມີຂະບວນການຍົກເລີກຟີເຈີ (deprecation) " +"ທີ່ຈະມີການແຈ້ງເຕືອນລ່ວງໜ້າຫຼາຍເວີຊັນກ່ອນຈະເອົາຟີເຈີນັ້ນອອກ." + +#: ../source/discussions/versioning.rst:131 +msgid "" +"A key advantage of date-based versioning, or `calendar versioning " +"`_ (CalVer), is that it is straightforward to tell how old the base " +"feature set of a particular release is given just the version number." +msgstr "" +"ຂໍ້ດີຫຼັກຂອງການກຳນົດເວີຊັນຕາມວັນທີ ຫຼື `ການກຳນົດເວີຊັນຕາມປະຕິທິນ `_ (CalVer) " +"ແມ່ນສາມາດຮູ້ໄດ້ທັນທີວ່າຟີເຈີຂອງເວີຊັນນັ້ນເກົ່າ ຫຼື ໃໝ່ປານໃດ ພຽງແຕ່ເບິ່ງຈາກໝາຍເລກເວີຊັນ." + +#: ../source/discussions/versioning.rst:135 +msgid "" +"Calendar version numbers typically take the form *year.month* (for example, " +"23.12 for December 2023)." +msgstr "" +"ໝາຍເລກເວີຊັນຕາມປະຕິທິນປົກກະຕິຈະຢູ່ໃນຮູບແບບ *ປີ.ເດືອນ* (ຕົວຢ່າງ: 23.12 ສຳລັບເດືອນທັນວາ 2023)." + +#: ../source/discussions/versioning.rst:138 +msgid "" +":doc:`Pip `, the standard Python package installer, uses calendar " +"versioning." +msgstr "" +":doc:`Pip `, ເຄື່ອງມືຕິດຕັ້ງແພັກເກດ Python ມາດຕະຖານ, " +"ໃຊ້ການກຳນົດເວີຊັນຕາມປະຕິທິນ." + +#: ../source/discussions/versioning.rst:143 +msgid "Other schemes" +msgstr "ຮູບແບບອື່ນໆ" + +#: ../source/discussions/versioning.rst:145 +msgid "" +"Serial versioning refers to the simplest possible versioning scheme, which " +"consists of a single number incremented every release. While serial " +"versioning is very easy to manage as a developer, it is the hardest to track " +"as an end user, as serial version numbers convey little or no information " +"regarding API backwards compatibility." +msgstr "" +"ການກຳນົດເວີຊັນແບບລຳດັບ (Serial versioning) ໝາຍເຖິງຮູບແບບການກຳນົດເວີຊັນທີ່ງ່າຍທີ່ສຸດ, " +"ເຊິ່ງປະກອບດ້ວຍຕົວເລກດຽວທີ່ເພີ່ມຂຶ້ນໃນທຸກໆການປ່ອຍ. " +"ເຖິງວ່າການກຳນົດເວີຊັນແບບລຳດັບຈະຈັດການງ່າຍສຳລັບຜູ້ພັດທະນາ, ແຕ່ມັນຍາກທີ່ສຸດສຳລັບຜູ້ໃຊ້ໃນການຕິດຕາມ " +"ເນື່ອງຈາກໝາຍເລກເວີຊັນແບບລຳດັບບໍ່ໄດ້ບອກຂໍ້ມູນກ່ຽວກັບຄວາມສາມາດໃນການໃຊ້ງານຮ່ວມກັບ API " +"ເວີຊັນເກົ່າເລີຍ." + +#: ../source/discussions/versioning.rst:151 +msgid "" +"Combinations of the above schemes are possible. For example, a project may " +"combine date-based versioning with serial versioning to create a " +"*year.serial* numbering scheme that readily conveys the approximate age of a " +"release, but doesn't otherwise commit to a particular release cadence within " +"the year." +msgstr "" +"ການປະສົມປະສານຮູບແບບຂ້າງເທິງເຂົ້າກັນກໍສາມາດເຮັດໄດ້. ຕົວຢ່າງ: " +"ໂຄງການອາດຈະລວມເອົາການກຳນົດເວີຊັນຕາມວັນທີເຂົ້າກັບແບບລຳດັບ ເພື່ອສ້າງຮູບແບບ *ປີ.ລຳດັບ* " +"ເຊິ່ງຈະບອກອາຍຸໂດຍປະມານຂອງເວີຊັນນັ້ນ ແຕ່ບໍ່ໄດ້ບັງຄັບຮອບການປ່ອຍທີ່ແນ່ນອນພາຍໃນປີ." + +#: ../source/discussions/versioning.rst:158 +#: ../source/specifications/version-specifiers.rst:114 +msgid "Local version identifiers" +msgstr "ຕົວລະບຸເວີຊັນທ້ອງຖິ່ນ (Local version identifiers)" + +#: ../source/discussions/versioning.rst:160 +msgid "" +"Public version identifiers are designed to support distribution " +"via :term:`PyPI `. Python packaging tools also " +"support the notion of a :ref:`local version identifier `, which can be used to identify local development builds not " +"intended for publication, or modified variants of a release maintained by a " +"redistributor." +msgstr "" +"ຕົວລະບຸເວີຊັນສາທາລະນະຖືກອອກແບບມາເພື່ອຮອງຮັບການແຈກຢາຍຜ່ານ :term:`PyPI `. ເຄື່ອງມືການຈັດເຮັດແພັກເກດ Python " +"ຍັງຮອງຮັບແນວຄິດຂອງ :ref:`ຕົວລະບຸເວີຊັນທ້ອງຖິ່ນ `, " +"ເຊິ່ງສາມາດໃຊ້ເພື່ອລະບຸເວີຊັນທີ່ສ້າງຂຶ້ນໃນເຄື່ອງເພື່ອພັດທະນາໂດຍບໍ່ໄດ້ຕັ້ງໃຈຈະເຜີຍແຜ່, ຫຼື " +"ເວີຊັນທີ່ຖືກດັດແປງໂດຍຜູ້ແຈກຢາຍຕໍ່." + +#: ../source/discussions/versioning.rst:166 +msgid "" +"A local version identifier takes the form of a public version identifier, " +"followed by \"+\" and a local version label. For example, a package with " +"Fedora-specific patches applied could have the version \"1.2.1+fedora.4\". " +"Another example is versions computed by setuptools-scm_, a setuptools plugin " +"that reads the version from Git data. In a Git repository with some commits " +"since the latest release, setuptools-scm generates a version like " +"\"0.5.dev1+gd00980f\", or if the repository has untracked changes, like " +"\"0.5.dev1+gd00980f.d20231217\"." +msgstr "" +"ຕົວລະບຸເວີຊັນທ້ອງຖິ່ນຈະຢູ່ໃນຮູບແບບຂອງຕົວລະບຸເວີຊັນສາທາລະນະ, ຕາມດ້ວຍເຄື່ອງໝາຍ \"+\" ແລະ " +"ປ້າຍກຳກັບເວີຊັນທ້ອງຖິ່ນ. ຕົວຢ່າງ: ແພັກເກດທີ່ຖືກ patch ສະເພາະສຳລັບ Fedora ອາດຈະມີເວີຊັນເປັນ " +"\"1.2.1+fedora.4\". ອີກຕົວຢ່າງໜຶ່ງຄືເວີຊັນທີ່ຄຳນວນໂດຍ setuptools-scm_, ເຊິ່ງເປັນປລັກອິນຂອງ " +"setuptools ທີ່ອ່ານເວີຊັນຈາກຂໍ້ມູນ Git. ໃນຄັງເກັບ Git ທີ່ມີການ commit ຫຼັງຈາກການປ່ອຍເວີຊັນຫຼ້າສຸດ, " +"setuptools-scm ຈະສ້າງເວີຊັນເຊັ່ນ \"0.5.dev1+gd00980f\", ຫຼື " +"ຖ້າຄັງເກັບມີການປ່ຽນແປງທີ່ຍັງບໍ່ໄດ້ຕິດຕາມ (untracked), ກໍຈະເປັນ " +"\"0.5.dev1+gd00980f.d20231217\"." + +#: ../source/discussions/versioning.rst:178 +msgid "Accessing version information at runtime" +msgstr "ການເຂົ້າເຖິງຂໍ້ມູນເວີຊັນໃນຂະນະທີ່ໂປຣແກຣມກຳລັງເຮັດວຽກ (Runtime)" + +#: ../source/discussions/versioning.rst:180 +msgid "" +"Version information for all :term:`distribution packages ` that are locally available in the current environment can be " +"obtained at runtime using the standard " +"library's :func:`importlib.metadata.version` function::" +msgstr "" +"ຂໍ້ມູນເວີຊັນສຳລັບທຸກໆ :term:`ຊຸດແຈກຢາຍ (distribution package) ` ທີ່ມີຢູ່ໃນສະພາບແວດລ້ອມປະຈຸບັນ " +"ສາມາດເອົາມາໄດ້ໃນຂະນະເຮັດວຽກໂດຍໃຊ້ຟັງຊັນ :func:`importlib.metadata.version` " +"ຂອງໄລບຣາຣີມາດຕະຖານ::" + +#: ../source/discussions/versioning.rst:187 +msgid "" +"Many projects also choose to version their top level :term:`import packages " +"` by providing a package level ``__version__`` attribute::" +msgstr "" +"ຫຼາຍໂຄງການຍັງເລືອກທີ່ຈະກຳນົດເວີຊັນໃຫ້ກັບ :term:`ແພັກເກດນຳເຂົ້າ (import package) ` ລະດັບສູງສຸດຂອງພວກເຂົາ ໂດຍການກຳນົດແອັດທຣິບິວ (attribute) ``__version__`` " +"ໃນລະດັບແພັກເກດ::" + +#: ../source/discussions/versioning.rst:195 +msgid "" +"This technique can be particularly valuable for CLI applications which want " +"to ensure that version query invocations (such as ``pip -V``) run as quickly " +"as possible." +msgstr "" +"ເຕັກນິກນີ້ມີປະໂຫຍດເປັນພິເສດສຳລັບແອັບພລິເຄຊັນ CLI ທີ່ຕ້ອງການໃຫ້ການກວດສອບເວີຊັນ (ເຊັ່ນ ``pip " +"-V``) ເຮັດວຽກໄດ້ໄວທີ່ສຸດເທົ່າທີ່ຈະໄວໄດ້." + +#: ../source/discussions/versioning.rst:199 +msgid "" +"Package publishers wishing to ensure their reported distribution package and " +"import package versions are consistent with each other can review " +"the :ref:`single-source-version` discussion for potential approaches to " +"doing so." +msgstr "" +"ຜູ້ເຜີຍແຜ່ແພັກເກດທີ່ຕ້ອງການໃຫ້ແນ່ໃຈວ່າເວີຊັນຂອງຊຸດແຈກຢາຍ ແລະ ເວີຊັນຂອງແພັກເກດນຳເຂົ້າກົງກັນ " +"ສາມາດສຶກສາການສົນທະນາເລື່ອງ :ref:`single-source-version` ເພື່ອເບິ່ງວິທີການຕ່າງໆ." + +#: ../source/discussions/versioning.rst:203 +msgid "" +"As import packages and modules are not *required* to publish runtime version " +"information in this way (see the withdrawn proposal in :pep:`PEP 396 " +"<396>`), the ``__version__`` attribute should either only be queried with " +"interfaces that are known to provide it (such as a project querying its own " +"version or the version of one of its direct dependencies), or else the " +"querying code should be designed to handle the case where the attribute is " +"missing [#fallback-to-dist-version]_." +msgstr "" +"ເນື່ອງຈາກແພັກເກດນຳເຂົ້າ ແລະ ໂມດູນບໍ່ໄດ້ຖືກ *ບັງຄັບ* ໃຫ້ເຜີຍແຜ່ຂໍ້ມູນເວີຊັນໃນຮູບແບບນີ້ " +"(ເບິ່ງຂໍ້ສະເໜີທີ່ຖືກຖອນອອກໃນ :pep:`PEP 396 <396>`), ດັ່ງນັ້ນແອັດທຣິບິວ ``__version__`` " +"ຄວນຖືກເອີ້ນໃຊ້ສະເພາະກັບ interface ທີ່ຮູ້ແນ່ນອນວ່າມີມັນ (ເຊັ່ນ ໂຄງການທີ່ກວດສອບເວີຊັນຂອງຕົວເອງ ຫຼື " +"ເວີຊັນຂອງສິ່ງທີ່ມັນຈຳເປັນຕ້ອງໃຊ້ໂດຍກົງ), ຖ້າບໍ່ດັ່ງນັ້ນ " +"ໂຄ້ດທີ່ໃຊ້ກວດສອບຄວນຖືກອອກແບບມາເພື່ອຮອງຮັບກໍລະນີທີ່ບໍ່ມີແອັດທຣິບິວດັ່ງກ່າວ [#fallback-to-dist-" +"version]_." + +#: ../source/discussions/versioning.rst:211 +msgid "" +"Some projects may need to publish version information for external APIs that " +"aren't the version of the module itself. Such projects should define their " +"own project-specific ways of obtaining the relevant information at runtime. " +"For example, the standard library's :mod:`ssl` module offers multiple ways " +"to access the underlying OpenSSL library version::" +msgstr "" +"ບາງໂຄງການອາດຈໍາເປັນຕ້ອງເຜີຍແຜ່ຂໍ້ມູນເວີຊັນສໍາລັບ API ພາຍນອກທີ່ບໍ່ແມ່ນເວີຊັນຂອງໂມດູນນັ້ນເອງ. " +"ໂຄງການດັ່ງກ່າວຄວນກໍານົດວິທີການສະເພາະຂອງໂຄງການເພື່ອຂໍຂໍ້ມູນທີ່ກ່ຽວຂ້ອງໃນເວລາເຮັດວຽກ (runtime). " +"ຕົວຢ່າງ, ໂມດູນ :mod:`ssl` ຂອງຄັງມາດຕະຖານມີຫຼາຍວິທີໃນການເຂົ້າເຖິງເວີຊັນຂອງຄັງ OpenSSL " +"ທີ່ຢູ່ເບື້ອງຫຼັງ::" + +#: ../source/discussions/versioning.rst:226 +msgid "" +"Some more examples of unusual version numbers are given in a `blog post " +"`_ by Seth Larson." +msgstr "" +"ຕົວຢ່າງເພີ່ມເຕີມຂອງໝາຍເລກເວີຊັນທີ່ບໍ່ປົກກະຕິສາມາດເບິ່ງໄດ້ໃນ `ບົດຄວາມບລັອກ `_ ໂດຍ Seth Larson." + +#: ../source/discussions/versioning.rst:229 +msgid "" +"For some personal viewpoints on this issue, see these blog posts: `by Hynek " +"Schlawak `_, `by Donald Stufft `_, `by Bernát Gábor `_, `by Brett Cannon " +"`_. For a humoristic take, read about ZeroVer_." +msgstr "" +"ສຳລັບມຸມມອງສ່ວນຕົວໃນເລື່ອງນີ້, ສາມາດອ່ານໄດ້ຈາກບົດຄວາມບລັອກເຫຼົ່ານີ້: `ໂດຍ Hynek Schlawak " +"`_, `ໂດຍ Donald Stufft `_, " +"`ໂດຍ Bernát Gábor `_, `ໂດຍ Brett Cannon `_. ແລະ ສຳລັບມຸມມອງແບບຕະຫຼົກ, ສາມາດອ່ານກ່ຽວກັບ ZeroVer_." + +#: ../source/discussions/versioning.rst:235 +msgid "" +"A full list mapping the top level names available for import to the " +"distribution packages that provide those import packages and modules may be " +"obtained through the standard " +"library's :func:`importlib.metadata.packages_distributions` function. This " +"means that even code that is attempting to infer a version to report for all " +"importable top-level names has a means to fall back to reporting the " +"distribution version information if no ``__version__`` attribute is defined. " +"Only standard library modules, and modules added via means other than Python " +"package installation would fail to have version information reported in that " +"case." +msgstr "" +"ລາຍຊື່ທັງໝົດທີ່ຈັບຄູ່ລະຫວ່າງຊື່ລະດັບສູງສຸດທີ່ສາມາດນຳເຂົ້າໄດ້ ກັບ ຊຸດແຈກຢາຍທີ່ໃຫ້ແພັກເກດນຳເຂົ້າ ແລະ " +"ໂມດູນເຫຼົ່ານັ້ນ " +"ສາມາດເອົາມາໄດ້ຜ່ານຟັງຊັນ :func:`importlib.metadata.packages_distributions` " +"ຂອງໄລບຣາຣີມາດຕະຖານ. ນີ້ໝາຍຄວາມວ່າ " +"ເຖິງແມ່ນວ່າໂຄ້ດຈະພະຍາຍາມຄົ້ນຫາເວີຊັນເພື່ອລາຍງານສຳລັບທຸກຊື່ລະດັບສູງສຸດ, " +"ມັນກໍຍັງມີວິທີທີ່ຈະກັບໄປລາຍງານຂໍ້ມູນເວີຊັນຂອງຊຸດແຈກຢາຍໄດ້ ຖ້າຫາກບໍ່ມີການກຳນົດແອັດທຣິບິວ " +"``__version__`` ໄວ້. ໃນກໍລະນີນັ້ນ, ຈະມີພຽງແຕ່ໂມດູນໄລບຣາຣີມາດຕະຖານ ແລະ " +"ໂມດູນທີ່ຖືກເພີ່ມມາດ້ວຍວິທີອື່ນທີ່ບໍ່ແມ່ນການຕິດຕັ້ງແພັກເກດ Python ເທົ່ານັ້ນ ທີ່ຈະບໍ່ມີຂໍ້ມູນເວີຊັນລາຍງານ." + +#: ../source/flow.rst:3 +msgid "The Packaging Flow" +msgstr "ຂັ້ນຕອນການຈັດເຮັດແພັກເກດ (Packaging Flow)" + +#: ../source/flow.rst:5 +msgid "" +"The document aims to outline the flow involved in publishing/distributing " +"a :term:`distribution package `, usually to the " +"`Python Package Index (PyPI)`_. It is written for package publishers, who " +"are assumed to be the package author." +msgstr "" +"ເອກະສານນີ້ມີຈຸດປະສົງເພື່ອສະຫຼຸບຂັ້ນຕອນທີ່ກ່ຽວຂ້ອງກັບການເຜີຍແຜ່/ແຈກຢາຍ :term:`ຊຸດແຈກຢາຍ " +"(distribution package) `, ເຊິ່ງປົກກະຕິຈະແມ່ນການສົ່ງໄປທີ່ " +"`Python Package Index (PyPI)`_. ມັນຖືກຂຽນຂຶ້ນສຳລັບຜູ້ເຜີຍແຜ່ແພັກເກດ, " +"ເຊິ່ງສົມມຸດວ່າເປັນຜູ້ຂຽນແພັກເກດເອງ." + +#: ../source/flow.rst:12 +msgid "" +"While the :doc:`tutorial ` walks through the " +"process of preparing a simple package for release, it does not fully " +"enumerate what steps and files are required, and for what purpose." +msgstr "" +"ເຖິງແມ່ນວ່າ :doc:`ບົດຮຽນ (tutorial) ` " +"ຈະແນະນຳຂັ້ນຕອນການກຽມແພັກເກດແບບງ່າຍໆເພື່ອປ່ອຍ, ແຕ່ມັນບໍ່ໄດ້ລະບຸຂັ້ນຕອນ ແລະ ໄຟລ໌ທີ່ຈຳເປັນທັງໝົດ " +"ລວມເຖິງຈຸດປະສົງຂອງແຕ່ລະຢ່າງໄວ້ຢ່າງຄົບຖ້ວນ." + +#: ../source/flow.rst:16 +msgid "" +"Publishing a package requires a flow from the author's source code to an end " +"user's Python environment. The steps to achieve this are:" +msgstr "" +"ການເຜີຍແຜ່ແພັກເກດຕ້ອງມີຂັ້ນຕອນເລີ່ມຕັ້ງແຕ່ຊອດໂຄ້ດຂອງຜູ້ຂຽນ ໄປຈົນເຖິງສະພາບແວດລ້ອມ Python " +"ຂອງຜູ້ໃຊ້ປາຍທາງ. ຂັ້ນຕອນຕ່າງໆມີດັ່ງນີ້:" + +#: ../source/flow.rst:19 +msgid "" +"Have a source tree containing the package. This is typically a checkout from " +"a version control system (VCS)." +msgstr "" +"ມີຊອດໂຄ້ດຕົ້ນສະບັບ (source tree) ທີ່ບັນຈຸແພັກເກດໄວ້. ໂດຍທົ່ວໄປແລ້ວແມ່ນໄດ້ມາຈາກລະບົບຄວບຄຸມເວີຊັນ " +"(VCS)." + +#: ../source/flow.rst:22 +msgid "" +"Prepare a configuration file describing the package metadata (name, version " +"and so forth) and how to create the build artifacts. For most packages, this " +"will be a :file:`pyproject.toml` file, maintained manually in the source " +"tree." +msgstr "" +"ກຽມໄຟລ໌ກຳນົດຄ່າທີ່ອະທິບາຍຂໍ້ມູນເມຕາດາຕາຂອງແພັກເກດ (ຊື່, ເວີຊັນ ແລະ ອື່ນໆ) ແລະ ວິທີການສ້າງ build " +"artifacts. ສຳລັບແພັກເກດສ່ວນໃຫຍ່, ສິ່ງນີ້ຈະແມ່ນໄຟລ໌ :file:`pyproject.toml`, " +"ເຊິ່ງຖືກດູແລດ້ວຍຕົວເອງໃນຊອດໂຄ້ດຕົ້ນສະບັບ." + +#: ../source/flow.rst:27 +msgid "" +"Create build artifacts to be sent to the package distribution service " +"(usually PyPI); these will normally be a :term:`source distribution " +"(\"sdist\") ` and one or " +"more :term:`built distributions (\"wheels\") `. These " +"are made by a build tool using the configuration file from the previous " +"step. Often there is just one generic wheel for a pure Python package." +msgstr "" +"ສ້າງ build artifacts ເພື່ອສົ່ງໄປຍັງບໍລິການແຈກຢາຍແພັກເກດ (ໂດຍທົ່ວໄປແມ່ນ PyPI); " +"ປົກກະຕິແລ້ວຈະປະກອບດ້ວຍ :term:`ຊຸດແຈກຢາຍແບບຊອດໂຄ້ດ (\"sdist\") ` ແລະ :term:`ຊຸດແຈກຢາຍທີ່ສ້າງແລ້ວ (\"wheels\") ` ໜຶ່ງ ຫຼື ຫຼາຍໄຟລ໌. ສິ່ງເຫຼົ່ານີ້ຖືກສ້າງຂຶ້ນໂດຍເຄື່ອງມື build " +"ໂດຍໃຊ້ໄຟລ໌ກຳນົດຄ່າຈາກຂັ້ນຕອນກ່ອນໜ້າ. ສ່ວນຫຼາຍມັກຈະມີພຽງແຕ່ wheel ດຽວສຳລັບແພັກເກດ Python ແທ້ໆ " +"(pure Python package)." + +#: ../source/flow.rst:35 +msgid "Upload the build artifacts to the package distribution service." +msgstr "ອັບໂຫຼດ build artifacts ໄປຍັງບໍລິການແຈກຢາຍແພັກເກດ." + +#: ../source/flow.rst:37 +msgid "" +"At that point, the package is present on the package distribution service. " +"To use the package, end users must:" +msgstr "" +"ເມື່ອຮອດຈຸດນັ້ນ, ແພັກເກດຈະໄປຢູ່ເທິງບໍລິການແຈກຢາຍແພັກເກດແລ້ວ. ເພື່ອຈະໃຊ້ງານແພັກເກດ, " +"ຜູ້ໃຊ້ປາຍທາງຈະຕ້ອງ:" + +#: ../source/flow.rst:40 +msgid "" +"Download one of the package's build artifacts from the package distribution " +"service." +msgstr "ດາວໂຫຼດ build artifacts ຂອງແພັກເກດຈາກບໍລິການແຈກຢາຍ." + +#: ../source/flow.rst:43 +msgid "" +"Install it in their Python environment, usually in its ``site-packages`` " +"directory. This step may involve a build/compile step which, if needed, must " +"be described by the package metadata." +msgstr "" +"ຕິດຕັ້ງມັນລົງໃນສະພາບແວດລ້ອມ Python, ເຊິ່ງປົກກະຕິຈະຢູ່ໃນໄດເຣັກທໍຣີ ``site-packages``. " +"ຂັ້ນຕອນນີ້ອາດມີການ build ຫຼື compile ເຊິ່ງຖ້າຈຳເປັນ, ຈະຕ້ອງຖືກລະບຸໄວ້ໃນເມຕາດາຕາຂອງແພັກເກດ." + +#: ../source/flow.rst:47 +msgid "" +"These last 2 steps are typically performed by :ref:`pip` when an end user " +"runs ``pip install``." +msgstr "" +"ສອງຂັ້ນຕອນສຸດທ້າຍນີ້ ປົກກະຕິແລ້ວຈະຖືກເຮັດໂດຍ :ref:`pip` ເມື່ອຜູ້ໃຊ້ລັນຄຳສັ່ງ ``pip install``." + +#: ../source/flow.rst:50 +msgid "The steps above are described in more detail below." +msgstr "ຂັ້ນຕອນຂ້າງເທິງນີ້ຈະຖືກອະທິບາຍຢ່າງລະອຽດຕື່ມຢູ່ດ້ານລຸ່ມ." + +#: ../source/flow.rst:53 +msgid "The source tree" +msgstr "ຊອດໂຄ້ດຕົ້ນສະບັບ (The source tree)" + +#: ../source/flow.rst:55 +msgid "" +"The source tree contains the package source code, usually a checkout from a " +"VCS. The particular version of the code used to create the build artifacts " +"will typically be a checkout based on a tag associated with the version." +msgstr "" +"ຊອດໂຄ້ດຕົ້ນສະບັບ (source tree) ປະກອບດ້ວຍຊອດໂຄ້ດຂອງແພັກເກດ, ປົກກະຕິຈະໄດ້ມາຈາກ VCS. " +"ເວີຊັນຂອງໂຄ້ດທີ່ໃຊ້ໃນການສ້າງ build artifacts ໂດຍທົ່ວໄປຈະເປັນການ checkout ໂດຍອີງຕາມ tag " +"ທີ່ກ່ຽວຂ້ອງກັບເວີຊັນນັ້ນ." + +#: ../source/flow.rst:60 +msgid "The configuration file" +msgstr "ໄຟລ໌ກຳນົດຄ່າ" + +#: ../source/flow.rst:62 +msgid "" +"The configuration file depends on the tool used to create the build " +"artifacts. The standard practice is to use a :file:`pyproject.toml` file in " +"the `TOML format`_." +msgstr "" +"ໄຟລ໌ກຳນົດຄ່າແມ່ນຂຶ້ນກັບເຄື່ອງມືທີ່ໃຊ້ໃນການສ້າງ build artifacts. " +"ວິທີການມາດຕະຖານແມ່ນການໃຊ້ໄຟລ໌ :file:`pyproject.toml` ໃນຮູບແບບ `TOML`_." + +#: ../source/flow.rst:68 +msgid "" +"At a minimum, the :file:`pyproject.toml` file needs a ``[build-system]`` " +"table specifying your build tool. There are many build tools available, " +"including but not limited " +"to :ref:`flit`, :ref:`hatch`, :ref:`pdm`, :ref:`poetry`, :ref:`setuptools`, " +"`trampolim`_, and `whey`_. Each tool's documentation will show what to put " +"in the ``[build-system]`` table." +msgstr "" +"ຢ່າງໜ້ອຍທີ່ສຸດ, ໄຟລ໌ :file:`pyproject.toml` ຈະຕ້ອງມີຕາຕະລາງ ``[build-system]`` " +"ເພື່ອລະບຸເຄື່ອງມື build ຂອງທ່ານ. ມີເຄື່ອງມື build ຫຼາຍຢ່າງໃຫ້ເລືອກໃຊ້ " +"ເຊັ່ນ :ref:`flit`, :ref:`hatch`, :ref:`pdm`, :ref:`poetry`, :ref:`setuptools`, " +"`trampolim`_, ແລະ `whey`_. ເອກະສານຂອງແຕ່ລະເຄື່ອງມືຈະບອກວິທີການຕັ້ງຄ່າໃນຕາຕະລາງ " +"``[build-system]``." + +#: ../source/flow.rst:77 +msgid "For example, here is a table for using :ref:`hatch`:" +msgstr "ຕົວຢ່າງ, ນີ້ຄືຕາຕະລາງສຳລັບການໃຊ້ :ref:`hatch`:" + +#: ../source/flow.rst:85 +msgid "" +"With such a table in the :file:`pyproject.toml` file, a \":term:`frontend " +"`\" tool like :ref:`build` can run your chosen build tool's " +"\":term:`backend `\" to create the build artifacts. Your " +"build tool may also provide its own frontend. An install tool " +"like :ref:`pip` also acts as a frontend when it runs your build tool's " +"backend to install from a source distribution." +msgstr "" +"ເມື່ອມີຕາຕະລາງດັ່ງກ່າວໃນໄຟລ໌ :file:`pyproject.toml`, ເຄື່ອງມື \":term:`frontend `\" ຢ່າງ :ref:`build` ຈະສາມາດລັນ \":term:`backend `\" " +"ຂອງເຄື່ອງມື build ທີ່ທ່ານເລືອກເພື່ອສ້າງ build artifacts ໄດ້. ເຄື່ອງມື build ຂອງທ່ານອາດຈະມີ " +"frontend ຂອງມັນເອງນຳ. ເຄື່ອງມືຕິດຕັ້ງຢ່າງ :ref:`pip` ກໍເຮັດໜ້າທີ່ເປັນ frontend ເຊັ່ນກັນ " +"ເມື່ອມັນລັນ backend ຂອງເຄື່ອງມື build ເພື່ອຕິດຕັ້ງຈາກຊຸດແຈກຢາຍແບບຊອດໂຄ້ດ." + +#: ../source/flow.rst:94 +msgid "" +"The particular build tool you choose dictates what additional information is " +"required in the :file:`pyproject.toml` file. For example, you might specify:" +msgstr "" +"ເຄື່ອງມື build " +"ແຕ່ລະຢ່າງທີ່ທ່ານເລືອກຈະກຳນົດຂໍ້ມູນເພີ່ມເຕີມທີ່ຈຳເປັນໃນໄຟລ໌ :file:`pyproject.toml`. ຕົວຢ່າງ, " +"ທ່ານອາດຈະລະບຸ:" + +#: ../source/flow.rst:97 +msgid "" +"a ``[project]`` table containing project :doc:`Core Metadata ` (name, version, author and so forth)," +msgstr "" +"ຕາຕະລາງ ``[project]`` ທີ່ບັນຈຸ :doc:`ເມຕາດາຕາຫຼັກ (Core Metadata) ` ຂອງໂຄງການ (ຊື່, ເວີຊັນ, ຜູ້ຂຽນ ແລະ ອື່ນໆ)," + +#: ../source/flow.rst:101 +msgid "a ``[tool]`` table containing tool-specific configuration options." +msgstr "ຕາຕະລາງ ``[tool]`` ທີ່ບັນຈຸຕົວເລືອກການກຳນົດຄ່າສະເພາະສຳລັບເຄື່ອງມືນັ້ນໆ." + +#: ../source/flow.rst:103 +msgid "" +"Refer to the :ref:`pyproject.toml guide ` for a " +"complete guide to ``pyproject.toml`` configuration." +msgstr "" +"ອ້າງອີງເຖິງ :ref:`ຄູ່ມື pyproject.toml ` " +"ສຳລັບຄຳແນະນຳການກຳນົດຄ່າ ``pyproject.toml`` ທີ່ຄົບຖ້ວນ." + +#: ../source/flow.rst:108 +msgid "Build artifacts" +msgstr "Build artifacts" + +#: ../source/flow.rst:111 +msgid "The source distribution (sdist)" +msgstr "ຊຸດແຈກຢາຍແບບຊອດໂຄ້ດ (sdist)" + +#: ../source/flow.rst:113 +msgid "" +"A source distribution contains enough to install the package from source in " +"an end user's Python environment. As such, it needs the package source, and " +"may also include tests and documentation. These are useful for end users " +"wanting to develop your sources, and for end user systems where some local " +"compilation step is required (such as a C extension)." +msgstr "" +"ຊຸດແຈກຢາຍແບບຊອດໂຄ້ດປະກອບດ້ວຍຂໍ້ມູນພຽງພໍທີ່ຈະຕິດຕັ້ງແພັກເກດຈາກຊອດໂຄ້ດໃນສະພາບແວດລ້ອມ Python " +"ຂອງຜູ້ໃຊ້ໄດ້. ມັນປະກອບດ້ວຍຊອດໂຄ້ດຂອງແພັກເກດ, ແລະ ອາດຈະລວມເຖິງການທົດສອບ (tests) ແລະ " +"ເອກະສານ (documentation). ສິ່ງເຫຼົ່ານີ້ມີປະໂຫຍດສຳລັບຜູ້ໃຊ້ທີ່ຕ້ອງການພັດທະນາຊອດໂຄ້ດຂອງທ່ານຕໍ່, ແລະ " +"ສຳລັບລະບົບຂອງຜູ້ໃຊ້ທີ່ຈຳເປັນຕ້ອງມີຂັ້ນຕອນການ compile ໃນເຄື່ອງ (ເຊັ່ນ C extension)." + +#: ../source/flow.rst:119 ../source/flow.rst:143 +msgid "" +"The :ref:`build` package knows how to invoke your build tool to create one " +"of these:" +msgstr "ແພັກເກດ :ref:`build` ຮູ້ວິທີການເອີ້ນໃຊ້ເຄື່ອງມື build ຂອງທ່ານເພື່ອສ້າງສິ່ງເຫຼົ່ານີ້:" + +#: ../source/flow.rst:126 +msgid "" +"Or, your build tool may provide its own interface for creating an sdist." +msgstr "ຫຼື ເຄື່ອງມື build ຂອງທ່ານອາດຈະມີ interface ຂອງມັນເອງສຳລັບການສ້າງ sdist." + +#: ../source/flow.rst:130 +msgid "The built distributions (wheels)" +msgstr "ຊຸດແຈກຢາຍທີ່ສ້າງແລ້ວ (wheels)" + +#: ../source/flow.rst:132 +msgid "" +"A built distribution contains only the files needed for an end user's Python " +"environment. No compilation steps are required during the install, and the " +"wheel file can simply be unpacked into the ``site-packages`` directory. This " +"makes the install faster and more convenient for end users." +msgstr "" +"ຊຸດແຈກຢາຍທີ່ສ້າງແລ້ວ (built distribution) ປະກອບດ້ວຍໄຟລ໌ທີ່ຈຳເປັນສຳລັບສະພາບແວດລ້ອມ Python " +"ຂອງຜູ້ໃຊ້ເທົ່ານັ້ນ. ບໍ່ມີຂັ້ນຕອນການ compile ໃນລະຫວ່າງການຕິດຕັ້ງ, ແລະ ໄຟລ໌ wheel " +"ສາມາດຖືກແຕກໄຟລ໌ລົງໃນໄດເຣັກທໍຣີ ``site-packages`` ໄດ້ເລີຍ. ສິ່ງນີ້ເຮັດໃຫ້ການຕິດຕັ້ງໄວຂຶ້ນ ແລະ " +"ສະດວກກວ່າສຳລັບຜູ້ໃຊ້." + +#: ../source/flow.rst:137 +msgid "" +"A pure Python package typically needs only one \"generic\" wheel. A package " +"with compiled binary extensions needs a wheel for each supported combination " +"of Python interpreter, operating system, and CPU architecture that it " +"supports. If a suitable wheel file is not available, tools like :ref:`pip` " +"will fall back to installing the source distribution." +msgstr "" +"ແພັກເກດ Python ແທ້ໆ (pure Python package) ໂດຍທົ່ວໄປຕ້ອງການພຽງແຕ່ wheel ແບບ \"ທົ່ວໄປ " +"(generic)\" ອັນດຽວ. ສ່ວນແພັກເກດທີ່ມີ binary extensions ທີ່ຖືກ compile ແລ້ວ ຕ້ອງການ " +"wheel ສຳລັບແຕ່ລະຮູບແບບຂອງ Python interpreter, ລະບົບປະຕິບັດການ, ແລະ ສະຖາປັດຕະຍະກຳ " +"CPU ທີ່ມັນຮອງຮັບ. ຖ້າບໍ່ມີໄຟລ໌ wheel ທີ່ເໝາະສົມ, ເຄື່ອງມືຢ່າງ :ref:`pip` " +"ຈະປ່ຽນໄປຕິດຕັ້ງຈາກຊຸດແຈກຢາຍແບບຊອດໂຄ້ດແທນ." + +#: ../source/flow.rst:150 +msgid "Or, your build tool may provide its own interface for creating a wheel." +msgstr "ຫຼື ເຄື່ອງມື build ຂອງທ່ານອາດຈະມີ interface ຂອງມັນເອງສຳລັບການສ້າງ wheel." + +#: ../source/flow.rst:154 +msgid "" +"The default behaviour of :ref:`build` is to make both an sdist and a wheel " +"from the source in the current directory; the above examples are " +"deliberately specific." +msgstr "" +"ພຶດຕິກຳເລີ່ມຕົ້ນຂອງ :ref:`build` ແມ່ນການສ້າງທັງ sdist ແລະ wheel " +"ຈາກຊອດໂຄ້ດໃນໄດເຣັກທໍຣີປະຈຸບັນ; ຕົວຢ່າງຂ້າງເທິງນັ້ນແມ່ນການລະບຸໃຫ້ເຫັນຢ່າງຊັດເຈນ." + +#: ../source/flow.rst:159 +msgid "Upload to the package distribution service" +msgstr "ອັບໂຫຼດໄປຍັງບໍລິການແຈກຢາຍແພັກເກດ" + +#: ../source/flow.rst:161 +msgid "" +"The :ref:`twine` tool can upload build artifacts to PyPI for distribution, " +"using a command like:" +msgstr "" +"ເຄື່ອງມື :ref:`twine` ສາມາດອັບໂຫຼດ build artifacts ໄປຍັງ PyPI ເພື່ອແຈກຢາຍ, " +"ໂດຍໃຊ້ຄຳສັ່ງເຊັ່ນ:" + +#: ../source/flow.rst:168 +msgid "Or, your build tool may provide its own interface for uploading." +msgstr "ຫຼື ເຄື່ອງມື build ຂອງທ່ານອາດຈະມີ interface ຂອງມັນເອງສຳລັບການອັບໂຫຼດ." + +#: ../source/flow.rst:171 +msgid "Download and install" +msgstr "ດາວໂຫຼດ ແລະ ຕິດຕັ້ງ" + +#: ../source/flow.rst:173 +msgid "" +"Now that the package is published, end users can download and install the " +"package into their Python environment. Typically this is done " +"with :ref:`pip`, using a command like:" +msgstr "" +"ເມື່ອແພັກເກດຖືກເຜີຍແຜ່ແລ້ວ, ຜູ້ໃຊ້ສາມາດດາວໂຫຼດ ແລະ ຕິດຕັ້ງແພັກເກດລົງໃນສະພາບແວດລ້ອມ Python " +"ຂອງພວກເຂົາໄດ້. ໂດຍທົ່ວໄປແມ່ນເຮັດດ້ວຍ :ref:`pip`, ໂດຍໃຊ້ຄຳສັ່ງເຊັ່ນ:" + +#: ../source/flow.rst:181 +msgid "" +"End users may also use other tools like :ref:`pipenv`, :ref:`poetry`, " +"or :ref:`pdm`." +msgstr "ຜູ້ໃຊ້ອາດຈະໃຊ້ເຄື່ອງມືອື່ນໆນຳ ເຊັ່ນ :ref:`pipenv`, :ref:`poetry`, ຫຼື :ref:`pdm`." + +#: ../source/glossary.rst:3 +msgid "Glossary" +msgstr "ອະພິທານສັບ" + +#: ../source/glossary.rst:8 +msgid "Binary Distribution" +msgstr "ການແຈກຈ່າຍແບບໄບນາຣີ" + +#: ../source/glossary.rst:11 +msgid "" +"A specific kind of :term:`Built Distribution` that contains compiled " +"extensions." +msgstr "" +":term:`ຊຸດແຈກຢາຍທີ່ສ້າງແລ້ວ (Built Distribution)` ປະເພດສະເພາະທີ່ປະກອບດ້ວຍ extensions " +"ທີ່ຖືກ compile ແລ້ວ." + +#: ../source/glossary.rst:14 +msgid "Build Backend" +msgstr "ລະບົບເບື້ອງຫຼັງການສ້າງ (Build Backend)" + +#: ../source/glossary.rst:17 +msgid "" +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." +msgstr "" +"ໄລບຣາຣີທີ່ນຳເອົາ :term:`ຊອດໂຄ້ດຕົ້ນສະບັບ (source tree) ` " +"ມາສ້າງເປັນ :term:`ຊຸດແຈກຢາຍແບບຊອດໂຄ້ດ ` " +"ຫຼື :term:`ຊຸດແຈກຢາຍທີ່ສ້າງແລ້ວ `. ການ build ຈະຖືກມອບໝາຍໃຫ້ " +"backend ໂດຍ :term:`frontend `. backend ທັງໝົດຈະມີ interface " +"ທີ່ເປັນມາດຕະຖານ." + +#: ../source/glossary.rst:24 +msgid "" +"Examples of build backends are :ref:`flit's flit-core `, :ref:`hatch's " +"hatchling `, :ref:`maturin`, :ref:`meson-python`, :ref:`scikit-build-" +"core`, and :ref:`setuptools`." +msgstr "" +"ຕົວຢ່າງຂອງ build backends ແມ່ນ :ref:`flit-core ຂອງ flit " +"`, :ref:`hatchling ຂອງ hatch `, :ref:`maturin`, :ref:`meson-" +"python`, :ref:`scikit-build-core`, ແລະ :ref:`setuptools`." + +#: ../source/glossary.rst:32 +msgid "Build Frontend" +msgstr "ລະບົບສ່ວນໜ້າການສ້າງ (Build Frontend)" + +#: ../source/glossary.rst:35 +msgid "" +"A tool that users might run that takes arbitrary source trees " +"or :term:`source distributions ` and " +"builds source distributions or :term:`wheels ` from them. The actual " +"building is delegated to each source tree's :term:`build backend `." +msgstr "" +"ເຄື່ອງມືທີ່ຜູ້ໃຊ້ລັນເພື່ອປ່ຽນຊອດໂຄ້ດຕົ້ນສະບັບ ຫຼື :term:`ຊຸດແຈກຢາຍແບບຊອດໂຄ້ດ ` ໃຫ້ເປັນຊຸດແຈກຢາຍແບບຊອດໂຄ້ດ ຫຼື :term:`wheels " +"`. ການ build ຕົວຈິງຈະຖືກມອບໝາຍໃຫ້ກັບ :term:`build backend ` " +"ຂອງແຕ່ລະຊອດໂຄ້ດ." + +#: ../source/glossary.rst:42 +msgid "Examples of build frontends are :ref:`pip` and :ref:`build`." +msgstr "ຕົວຢ່າງຂອງ build frontends ແມ່ນ :ref:`pip` ແລະ :ref:`build`." + +#: ../source/glossary.rst:44 +msgid "Built Distribution" +msgstr "ການແຈກຈ່າຍທີ່ສ້າງສຳເລັດແລ້ວ" + +#: ../source/glossary.rst:47 +msgid "" +"A :term:`Distribution ` format containing files and " +"metadata that only need to be moved to the correct location on the target " +"system, to be installed. :term:`Wheel` is such a format, " +"whereas :term:`Source Distribution ` is " +"not, in that it requires a build step before it can be installed. This " +"format does not imply that Python files have to be precompiled " +"(:term:`Wheel` intentionally does not include compiled Python files). " +"See :ref:`package-formats` for more information." +msgstr "" +"ຮູບແບບ :term:`ຊຸດແຈກຢາຍ (Distribution Package)` ທີ່ປະກອບດ້ວຍໄຟລ໌ ແລະ " +"ເມຕາດາຕາທີ່ພຽງແຕ່ຍ້າຍໄປໄວ້ໃນບ່ອນທີ່ຖືກຕ້ອງໃນລະບົບເປົ້າໝາຍກໍສາມາດຕິດຕັ້ງໄດ້ເລີຍ. :term:`Wheel` " +"ແມ່ນຮູບແບບດັ່ງກ່າວ, ໃນຂະນະທີ່ :term:`ຊຸດແຈກຢາຍແບບຊອດໂຄ້ດ ` ບໍ່ແມ່ນ ເພາະມັນຕ້ອງມີຂັ້ນຕອນການ build ກ່ອນຈຶ່ງຈະຕິດຕັ້ງໄດ້. " +"ຮູບແບບນີ້ບໍ່ໄດ້ໝາຍຄວາມວ່າໄຟລ໌ Python ຕ້ອງຖືກ precompile ໄວ້ກ່ອນ (:term:`Wheel` " +"ຕັ້ງໃຈທີ່ຈະບໍ່ລວມເອົາໄຟລ໌ Python ທີ່ compile ແລ້ວ). ເບິ່ງ :ref:`package-formats` " +"ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ." + +#: ../source/glossary.rst:56 +msgid "Built Metadata" +msgstr "ເມຕາດາຕາທີ່ສ້າງແລ້ວ (Built Metadata)" + +#: ../source/glossary.rst:59 +msgid "" +"The concrete form :term:`Core Metadata` takes when included inside an " +"installed :term:`Project` (``METADATA`` file) or a :term:`Distribution " +"Archive` (``PKG-INFO`` in a :term:`Sdist ` and ``METADATA`` in a :term:`Wheel`)." +msgstr "" +"ຮູບແບບຕົວຈິງຂອງ :term:`ເມຕາດາຕາຫຼັກ (Core Metadata)` ເມື່ອຖືກລວມເຂົ້າໃນ :term:`ໂຄງການ` " +"ທີ່ຕິດຕັ້ງແລ້ວ (ໄຟລ໌ ``METADATA``) ຫຼື :term:`ໄຟລ໌ຈັດເກັບຊຸດແຈກຢາຍ (Distribution " +"Archive)` (``PKG-INFO`` ໃນ :term:`Sdist ` ແລະ ``METADATA`` ໃນ :term:`Wheel`)." + +#: ../source/glossary.rst:66 +msgid "Core Metadata" +msgstr "ເມຕາດາຕາຫຼັກ (Core Metadata)" + +#: ../source/glossary.rst:69 +msgid "" +"The :ref:`specification ` and the set of :term:`Core Metadata " +"Field`\\s it defines that describe key static attributes of " +"a :term:`Distribution Package` or :term:`Installed Project`." +msgstr "" +":ref:`ຂໍ້ກຳນົດ ` ແລະ ຊຸດຂອງ :term:`ຟິວເມຕາດາຕາຫຼັກ (Core Metadata " +"Field)` ທີ່ອະທິບາຍຄຸນລັກສະນະຄົງທີ່ຂອງ :term:`ຊຸດແຈກຢາຍ (Distribution Package)` " +"ຫຼື :term:`ໂຄງການທີ່ຕິດຕັ້ງແລ້ວ (Installed Project)`." + +#: ../source/glossary.rst:74 +msgid "Core Metadata Field" +msgstr "ຟິວເມຕາດາຕາຫຼັກ (Core Metadata Field)" + +#: ../source/glossary.rst:77 +msgid "" +"A single key-value pair (or sequence of such with the same name, for " +"multiple-use fields) defined in the :term:`Core Metadata` spec and stored in " +"the :term:`Built Metadata`. Notably, distinct from a :term:`Pyproject " +"Metadata Key`." +msgstr "" +"ຄູ່ຄ່າ key-value ອັນດຽວ (ຫຼື ຊຸດຂອງຄ່າທີ່ມີຊື່ດຽວກັນ ສຳລັບຟິວທີ່ໃຊ້ໄດ້ຫຼາຍຄັ້ງ) " +"ທີ່ຖືກກຳນົດໃນຂໍ້ກຳນົດ :term:`ເມຕາດາຕາຫຼັກ` ແລະ ຖືກເກັບໄວ້ໃນ :term:`ເມຕາດາຕາທີ່ສ້າງແລ້ວ`. " +"ສິ່ງນີ້ມີຄວາມແຕກຕ່າງຈາກ :term:`ຄີເມຕາດາຕາຂອງ Pyproject (Pyproject Metadata Key)`." + +#: ../source/glossary.rst:83 +msgid "Distribution Archive" +msgstr "ໄຟລ໌ຈັດເກັບຊຸດແຈກຢາຍ (Distribution Archive)" + +#: ../source/glossary.rst:86 +msgid "" +"The physical distribution artifact (i.e. a file on disk) for " +"a :term:`Distribution Package`." +msgstr "ໄຟລ໌ຕົວຈິງ (ເຊັ່ນ ໄຟລ໌ໃນດິສກ໌) ຂອງ :term:`ຊຸດແຈກຢາຍ (Distribution Package)`." + +#: ../source/glossary.rst:89 +msgid "Distribution Package" +msgstr "ແພັກເກດການແຈກຈ່າຍ" + +#: ../source/glossary.rst:92 +msgid "" +"A versioned archive file that contains Python :term:`packages `, :term:`modules `, and other resource files that are used " +"to distribute a :term:`Release`. The archive file is what an end-user will " +"download from the internet and install." +msgstr "" +"ໄຟລ໌ຈັດເກັບທີ່ມີການລະບຸເວີຊັນ ເຊິ່ງປະກອບດ້ວຍ Python :term:`ແພັກເກດ `, :term:`ໂມດູນ `, ແລະ ໄຟລ໌ຊັບພະຍາກອນອື່ນໆ " +"ທີ່ໃຊ້ໃນການແຈກຢາຍ :term:`ລຸ້ນ (Release)`. ໄຟລ໌ຈັດເກັບນີ້ຄືສິ່ງທີ່ຜູ້ໃຊ້ຈະດາວໂຫຼດຈາກອິນເຕີເນັດ ແລະ " +"ຕິດຕັ້ງ." + +#: ../source/glossary.rst:97 +msgid "" +"A distribution package is more commonly referred to with the single words " +"\"package\" or \"distribution\", but this guide may use the expanded term " +"when more clarity is needed to prevent confusion with an :term:`Import " +"Package` (which is also commonly called a \"package\") or another kind of " +"distribution (e.g. a Linux distribution or the Python language " +"distribution), which are often referred to with the single term " +"\"distribution\". See :ref:`distribution-package-vs-import-package` for a " +"breakdown of the differences." +msgstr "" +"ຊຸດແຈກຢາຍ (distribution package) ມັກຈະຖືກເອີ້ນສັ້ນໆວ່າ \"ແພັກເກດ\" ຫຼື \"ຊຸດແຈກຢາຍ " +"(distribution)\", ແຕ່ຄູ່ມືນີ້ອາດຈະໃຊ້ຄຳເຕັມເມື່ອຕ້ອງການຄວາມຊັດເຈນ " +"ເພື່ອປ້ອງກັນຄວາມສັບສົນກັບ :term:`ແພັກເກດນຳເຂົ້າ (Import Package)` (ເຊິ່ງກໍມັກຈະຖືກເອີ້ນວ່າ " +"\"ແພັກເກດ\" ຄືກັນ) ຫຼື ການແຈກຢາຍປະເພດອື່ນໆ (ເຊັ່ນ ຊຸດແຈກຢາຍ Linux). " +"ເບິ່ງ :ref:`distribution-package-vs-import-package` ສຳລັບລາຍລະອຽດຂອງຄວາມແຕກຕ່າງ." + +#: ../source/glossary.rst:105 +msgid "Egg" +msgstr "Egg" + +#: ../source/glossary.rst:108 +msgid "" +"A :term:`Built Distribution` format introduced by :ref:`setuptools`, which " +"has been replaced by :term:`Wheel`. For details, see :ref:`egg-format`." +msgstr "" +"ຮູບແບບ :term:`ຊຸດແຈກຢາຍທີ່ສ້າງແລ້ວ (Built Distribution)` " +"ທີ່ແນະນຳໂດຍ :ref:`setuptools`, ເຊິ່ງປະຈຸບັນຖືກປ່ຽນແທນດ້ວຍ :term:`Wheel`. " +"ສຳລັບລາຍລະອຽດ, ເບິ່ງ :ref:`egg-format`." + +#: ../source/glossary.rst:111 +msgid "Extension Module" +msgstr "ໂມດູນສ່ວນເສີມ" + +#: ../source/glossary.rst:114 +msgid "" +"A :term:`Module` written in the low-level language of the Python " +"implementation: C/C++ for Python, Java for Jython. Typically contained in a " +"single dynamically loadable pre-compiled file, e.g. a shared object (.so) " +"file for Python extensions on Unix, a DLL (given the .pyd extension) for " +"Python extensions on Windows, or a Java class file for Jython extensions." +msgstr "" +":term:`ໂມດູນ` ທີ່ຂຽນດ້ວຍພາສາລະດັບຕ່ຳຂອງການນຳໃຊ້ Python: C/C++ ສຳລັບ Python, Java " +"ສຳລັບ Jython. ໂດຍປົກກະຕິຈະຖືກບັນຈຸໃນໄຟລ໌ດຽວທີ່ຖືກ pre-compile ມາແລ້ວ ແລະ " +"ສາມາດໂຫຼດໄດ້ແບບໄດນາມິກ ເຊັ່ນ ໄຟລ໌ .so ໃນ Unix, ໄຟລ໌ .pyd ໃນ Windows, ຫຼື ໄຟລ໌ Java " +"class ສຳລັບ Jython." + +#: ../source/glossary.rst:121 +msgid "Import Package" +msgstr "ແພັກເກດນຳເຂົ້າ" + +#: ../source/glossary.rst:124 +msgid "" +"A Python module which can contain other modules or recursively, other " +"packages." +msgstr "ໂມດູນ Python ທີ່ສາມາດບັນຈຸໂມດູນອື່ນໆ ຫຼື ແພັກເກດອື່ນໆຊ້ອນກັນຢູ່ພາຍໃນໄດ້." + +#: ../source/glossary.rst:127 +msgid "" +"An import package is more commonly referred to with the single word " +"\"package\", but this guide will use the expanded term when more clarity is " +"needed to prevent confusion with a :term:`Distribution Package` which is " +"also commonly called a \"package\". See :ref:`distribution-package-vs-import-" +"package` for a breakdown of the differences." +msgstr "" +"ແພັກເກດນຳເຂົ້າ (import package) ມັກຈະຖືກເອີ້ນສັ້ນໆວ່າ \"ແພັກເກດ\", " +"ແຕ່ຄູ່ມືນີ້ຈະໃຊ້ຄຳເຕັມເມື່ອຕ້ອງການຄວາມຊັດເຈນ ເພື່ອປ້ອງກັນຄວາມສັບສົນກັບ :term:`ຊຸດແຈກຢາຍ " +"(Distribution Package)` ເຊິ່ງມັກຈະຖືກເອີ້ນວ່າ \"ແພັກເກດ\" ຄືກັນ. " +"ເບິ່ງ :ref:`distribution-package-vs-import-package` ສຳລັບລາຍລະອຽດຂອງຄວາມແຕກຕ່າງ." + +#: ../source/glossary.rst:133 +msgid "Installed Project" +msgstr "ໂໂຄງການທີ່ຕິດຕັ້ງແລ້ວ (Installed Project)" + +#: ../source/glossary.rst:136 +msgid "" +"A :term:`Project` that is installed for use with a Python interpreter " +"or :term:`Virtual Environment`, as described in the " +"specification :ref:`recording-installed-packages`." +msgstr "" +":term:`ໂຄງການ` ທີ່ຖືກຕິດຕັ້ງເພື່ອໃຊ້ງານກັບ Python interpreter " +"ຫຼື :term:`ສະພາບແວດລ້ອມສະເືອນ (Virtual Environment)`, " +"ຕາມທີ່ອະທິບາຍໃນຂໍ້ກຳນົດ :ref:`recording-installed-packages`." + +#: ../source/glossary.rst:140 +msgid "Known Good Set (KGS)" +msgstr "ຊຸດທີ່ຮູ້ວ່າດີ (Known Good Set - KGS)" + +#: ../source/glossary.rst:143 +msgid "" +"A set of distributions at specified versions which are compatible with each " +"other. Typically a test suite will be run which passes all tests before a " +"specific set of packages is declared a known good set. This term is commonly " +"used by frameworks and toolkits which are comprised of multiple individual " +"distributions." +msgstr "" +"ຊຸດຂອງຊຸດແຈກຢາຍໃນເວີຊັນທີ່ລະບຸໄວ້ເຊິ່ງສາມາດໃຊ້ງານຮ່ວມກັນໄດ້. ໂດຍປົກກະຕິຈະມີການລັນຊຸດການທົດສອບ " +"(test suite) ໃຫ້ຜ່ານທັງໝົດກ່ອນທີ່ຈະປະກາດວ່າຊຸດແພັກເກດນັ້ນເປັນຊຸດທີ່ຮູ້ວ່າດີ. ຄຳສັບນີ້ມັກໃຊ້ກັບ " +"framework ແລະ toolkit ທີ່ປະກອບດ້ວຍຫຼາຍຊຸດແຈກຢາຍແຍກກັນ." + +#: ../source/glossary.rst:149 +msgid "License Classifier" +msgstr "ຕົວຈຳແນກໃບອະນຸຍາດ (License Classifier)" + +#: ../source/glossary.rst:152 +msgid "" +"A PyPI Trove classifier (as :ref:`described ` in " +"the :term:`Core Metadata` specification) which begins with ``License ::``." +msgstr "" +"ຕົວຈຳແນກ PyPI Trove (ຕາມທີ່ :ref:`ອະທິບາຍ ` " +"ໃນຂໍ້ກຳນົດ :term:`ເມຕາດາຕາຫຼັກ`) ເຊິ່ງເລີ່ມຕົ້ນດ້ວຍ ``License ::``." + +#: ../source/glossary.rst:157 ../source/specifications/license-expression.rst:3 +msgid "License Expression" +msgstr "ນິພົດໃບອະນຸຍາດ (License Expression)" + +#: ../source/glossary.rst:158 +msgid "SPDX Expression" +msgstr "ນິພົດ SPDX" + +#: ../source/glossary.rst:161 +msgid "" +"A string with valid SPDX license expression syntax, including one or more " +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" +msgstr "" +"ຂໍ້ຄວາມທີ່ມີໄວຍາກອນນິພົດໃບອະນຸຍາດ SPDX ທີ່ຖືກຕ້ອງ, ລວມເຖິງ :term:`ຕົວລະບຸໃບອະນຸຍາດ (License " +"Identifier)` ຂອງ SPDX ໜຶ່ງຢ່າງ ຫຼື ຫຼາຍກວ່າ, " +"ເຊິ່ງອະທິບາຍໃບອະນຸຍາດຂອງ :term:`ໄຟລ໌ຈັດເກັບຊຸດແຈກຢາຍ` ແລະ ຄວາມສຳພັນລະຫວ່າງພວກມັນ. " +"ຕົວຢ່າງ: ``GPL-3.0-or-later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" + +#: ../source/glossary.rst:169 +msgid "License Identifier" +msgstr "ຕົວລະບຸໃບອະນຸຍາດ (License Identifier)" + +#: ../source/glossary.rst:170 +msgid "SPDX Identifier" +msgstr "ຕົວລະບຸ SPDX" + +#: ../source/glossary.rst:173 +msgid "" +"A valid SPDX short-form license identifier, originally specified " +"in :pep:`639`. This includes all valid SPDX identifiers and the custom " +"``LicenseRef-[idstring]`` strings conforming to the SPDX specification. " +"Examples: ``MIT``, ``GPL-3.0-only``, ``LicenseRef-My-Custom-License``" +msgstr "" +"ຕົວລະບຸໃບອະນຸຍາດແບບສັ້ນຂອງ SPDX ທີ່ຖືກຕ້ອງ, ເຊິ່ງກຳນົດໄວ້ໃນ :pep:`639`. ສິ່ງນີ້ລວມເຖິງຕົວລະບຸ " +"SPDX ທີ່ຖືກຕ້ອງທັງໝົດ ແລະ ຂໍ້ຄວາມ ``LicenseRef-[idstring]`` ທີ່ສ້າງຂຶ້ນເອງຕາມຂໍ້ກຳນົດຂອງ " +"SPDX. ຕົວຢ່າງ: ``MIT``, ``GPL-3.0-only``, ``LicenseRef-My-Custom-License``" + +#: ../source/glossary.rst:183 +msgid "Module" +msgstr "ໂມດູນ" + +#: ../source/glossary.rst:186 +msgid "" +"The basic unit of code reusability in Python, existing in one of two " +"types: :term:`Pure Module`, or :term:`Extension Module`." +msgstr "" +"ໜ່ວຍພື້ນຖານຂອງໂຄ້ດທີ່ສາມາດນຳມາໃຊ້ໃໝ່ໄດ້ໃນ Python, ມີສອງປະເພດຄື: :term:`ໂມດູນແທ້ (Pure " +"Module)` ຫຼື :term:`ໂມດູນສ່ວນຂະຫຍາຍ (Extension Module)`." + +#: ../source/glossary.rst:189 +msgid "Package Index" +msgstr "ດັດຊະນີແພັກເກດ" + +#: ../source/glossary.rst:192 +msgid "" +"A repository of distributions with a web interface to " +"automate :term:`package ` discovery and consumption." +msgstr "" +"ຄັງເກັບຊຸດແຈກຢາຍທີ່ມີ interface ແບບເວັບ ເພື່ອຊ່ວຍໃນການຄົ້ນຫາ ແລະ ການນຳໃຊ້ :term:`ແພັກເກດ " +"` ແບບອັດຕະໂນມັດ." + +#: ../source/glossary.rst:195 +msgid "Per Project Index" +msgstr "ດັດຊະນີສະເພາະໂຄງການ (Per Project Index)" + +#: ../source/glossary.rst:198 +msgid "" +"A private or other non-canonical :term:`Package Index` indicated by a " +"specific :term:`Project` as the index preferred or required to resolve " +"dependencies of that project." +msgstr "" +":term:`ດັດຊະນີແພັກເກດ` ສ່ວນຕົວ ຫຼື ແບບອື່ນໆທີ່ບໍ່ແມ່ນມາດຕະຖານ ເຊິ່ງຖືກລະບຸໂດຍ :term:`ໂຄງການ` " +"ໃດໜຶ່ງວ່າເປັນດັດຊະນີທີ່ຕ້ອງການ ຫຼື ຈຳເປັນສຳລັບການແກ້ໄຂ dependencies ຂອງໂຄງການນັ້ນ." + +#: ../source/glossary.rst:202 ../source/guides/hosting-your-own-index.rst:62 +#: ../source/guides/index-mirrors-and-caches.rst:52 +msgid "Project" +msgstr "ໂຄງການ" + +#: ../source/glossary.rst:205 +msgid "" +"A library, framework, script, plugin, application, or collection of data or " +"other resources, or some combination thereof that is intended to be packaged " +"into a :term:`Distribution `." +msgstr "" +"ໄລບຣາຣີ, ເຟຣມເວີກ (framework), ສະຄຣິບ (script), ປລັກອິນ (plugin), ແອັບພລິເຄຊັນ, ຫຼື " +"ກຸ່ມຂອງຂໍ້ມູນ ຫຼື ຊັບພະຍາກອນອື່ນໆ, ຫຼື ສິ່ງເຫຼົ່ານີ້ລວມກັນ ເຊິ່ງຕັ້ງໃຈຈະຖືກຈັດເຮັດເປັນ :term:`ຊຸດແຈກຢາຍ " +"`." + +#: ../source/glossary.rst:209 +msgid "" +"Since most projects create :term:`Distributions ` " +"using either :pep:`518` ``build-system``, :ref:`distutils` " +"or :ref:`setuptools`, another practical way to define projects currently is " +"something that contains a :term:`pyproject.toml`, :term:`setup.py`, " +"or :term:`setup.cfg` file at the root of the project source directory." +msgstr "" +"ເນື່ອງຈາກໂຄງການສ່ວນໃຫຍ່ສ້າງ :term:`ຊຸດແຈກຢາຍ ` ໂດຍໃຊ້ ``build-" +"system`` ຕາມ :pep:`518`, :ref:`distutils` ຫຼື :ref:`setuptools`, " +"ອີກວິທີໜຶ່ງໃນການນິຍາມໂຄງການໃນປະຈຸບັນຄື " +"ສິ່ງທີ່ມີໄຟລ໌ :term:`pyproject.toml`, :term:`setup.py`, ຫຼື :term:`setup.cfg` ຢູ່ທີ່ຮາກ " +"(root) ຂອງໄດເຣັກທໍຣີຊອດໂຄ້ດຂອງໂຄງການ." + +#: ../source/glossary.rst:215 +msgid "" +"Python projects must have unique names, which are registered on :term:`PyPI " +"`. Each project will then contain one or " +"more :term:`Releases `, and each release may comprise one or " +"more :term:`distributions `." +msgstr "" +"ໂຄງການ Python ຕ້ອງມີຊື່ທີ່ບໍ່ຊ້ຳກັນ, ເຊິ່ງຖືກລົງທະບຽນໄວ້ໃນ :term:`PyPI `. ແຕ່ລະໂຄງການຈະປະກອບດ້ວຍ :term:`ລຸ້ນ (Release)` ໜຶ່ງ ຫຼື ຫຼາຍລຸ້ນ, ແລະ " +"ແຕ່ລະລຸ້ນອາດຈະປະກອບດ້ວຍ :term:`ຊຸດແຈກຢາຍ ` ໜຶ່ງ ຫຼື ຫຼາຍຊຸດ." + +#: ../source/glossary.rst:220 +msgid "" +"Note that there is a strong convention to name a project after the name of " +"the package that is imported to run that project. However, this doesn't have " +"to hold true. It's possible to install a distribution from the project 'foo' " +"and have it provide a package importable only as 'bar'." +msgstr "" +"ໃຫ້ສັງເກດວ່າມີທຳນຽມການຕັ້ງຊື່ໂຄງການຕາມຊື່ຂອງແພັກເກດທີ່ຖືກນຳເຂົ້າເພື່ອລັນໂຄງການນັ້ນ. ເຖິງຢ່າງໃດກໍຕາມ, " +"ສິ່ງນີ້ບໍ່ຈຳເປັນຕ້ອງເປັນຈິງສະເໝີໄປ. ມັນເປັນໄປໄດ້ທີ່ຈະຕິດຕັ້ງຊຸດແຈກຢາຍຈາກໂຄງການ 'foo' " +"ແຕ່ໃຫ້ແພັກເກດທີ່ນຳເຂົ້າໄດ້ໃນຊື່ 'bar' ເທົ່ານັ້ນ." + +#: ../source/glossary.rst:226 +msgid "Project Root Directory" +msgstr "ໄດເຣັກທໍຣີຮາກຂອງໂຄງການ (Project Root Directory)" + +#: ../source/glossary.rst:229 +msgid "" +"The filesystem directory in which a :term:`Project`'s :term:`source tree " +"` is located." +msgstr "" +"ໄດເຣັກທໍຣີໃນລະບົບໄຟລ໌ທີ່ :term:`ຊອດໂຄ້ດຕົ້ນສະບັບ ` " +"ຂອງ :term:`ໂຄງການ` ຕັ້ງຢູ່." + +#: ../source/glossary.rst:232 +msgid "Project Source Tree" +msgstr "ຊອດໂຄ້ດຕົ້ນສະບັບຂອງໂຄງການ (Project Source Tree)" + +#: ../source/glossary.rst:235 +msgid "" +"The on-disk format of a :term:`Project` used for development, containing its " +"raw source code before being packaged into a :term:`Source Distribution " +"` or :term:`Built Distribution`." +msgstr "" +"ຮູບແບບໃນດິສກ໌ຂອງ :term:`ໂຄງການ` ທີ່ໃຊ້ສຳລັບການພັດທະນາ, " +"ເຊິ່ງປະກອບດ້ວຍຊອດໂຄ້ດດິບກ່ອນທີ່ຈະຖືກຈັດເຮັດເປັນ :term:`ຊຸດແຈກຢາຍແບບຊອດໂຄ້ດ ` ຫຼື :term:`ຊຸດແຈກຢາຍທີ່ສ້າງແລ້ວ `." + +#: ../source/glossary.rst:241 +msgid "Project Source Metadata" +msgstr "ເມຕາດາຕາຊອດໂຄ້ດຂອງໂຄງການ (Project Source Metadata)" + +#: ../source/glossary.rst:244 +msgid "" +"Metadata defined by the package author in a :term:`Project`'s :term:`source " +"tree `, to be transformed into :term:`Core Metadata " +"field`\\s in the :term:`Built Metadata` by the project's :term:`build " +"backend `. Can be written as :term:`Pyproject Metadata`, or " +"in a tool-specific format (under the ``[tool]`` table in ``pyproject.toml``, " +"or in a tool's own configuration file)." +msgstr "" +"ເມຕາດາຕາທີ່ກຳນົດໂດຍຜູ້ຂຽນແພັກເກດໃນ :term:`ຊອດໂຄ້ດຕົ້ນສະບັບ ` " +"ຂອງ :term:`ໂຄງການ`, ເພື່ອຖືກປ່ຽນໃຫ້ເປັນ :term:`ຟິວເມຕາດາຕາຫຼັກ (Core Metadata Field)` " +"ໃນ :term:`ເມຕາດາຕາທີ່ສ້າງແລ້ວ` ໂດຍ :term:`build backend ` " +"ຂອງໂຄງການ. ສາມາດຂຽນໃນຮູບແບບ :term:`Pyproject Metadata`, ຫຼື " +"ໃນຮູບແບບສະເພາະຂອງເຄື່ອງມື (ພາຍໃຕ້ຕາຕະລາງ ``[tool]`` ໃນ ``pyproject.toml``, ຫຼື " +"ໃນໄຟລ໌ກຳນົດຄ່າຂອງເຄື່ອງມືນັ້ນເອງ)." + +#: ../source/glossary.rst:254 +msgid "Pure Module" +msgstr "ໂມດູນບໍລິສຸດ" + +#: ../source/glossary.rst:257 +msgid "" +"A :term:`Module` written in Python and contained in a single ``.py`` file " +"(and possibly associated ``.pyc`` and/or ``.pyo`` files)." +msgstr "" +":term:`ໂໂມດູນ` ທີ່ຂຽນດ້ວຍ Python ແລະ ຖືກບັນຈຸໃນໄຟລ໌ ``.py`` ພຽງໄຟລ໌ດຽວ (ແລະ ອາດຈະມີໄຟລ໌ " +"``.pyc`` ແລະ/ຫຼື ``.pyo`` ທີ່ກ່ຽວຂ້ອງ)." + +#: ../source/glossary.rst:260 +msgid "Pyproject Metadata" +msgstr "ເມຕາດາຕາ Pyproject" + +#: ../source/glossary.rst:263 +msgid "" +"The :term:`Project Source Metadata` format defined by the :ref:`declaring-" +"project-metadata` specification and originally introduced in :pep:`621`, " +"stored as :term:`Pyproject Metadata Key`\\s under the ``[project]`` table of " +"a :term:`pyproject.toml` file. Notably, *not* a tool-specific source " +"metadata format under the ``[tool]`` table in ``pyproject.toml``." +msgstr "" +"ຮູບແບບ :term:`ເມຕາດາຕາຊອດໂຄ້ດຂອງໂຄງການ` ທີ່ກຳນົດໂດຍຂໍ້ກຳນົດ :ref:`declaring-project-" +"metadata` ແລະ ເລີ່ມໃຊ້ໃນ :pep:`621`, ຖືກເກັບໄວ້ໃນຮູບແບບ :term:`ຄີເມຕາດາຕາຂອງ " +"Pyproject (Pyproject Metadata Key)` ພາຍໃຕ້ຕາຕະລາງ ``[project]`` " +"ຂອງໄຟລ໌ :term:`pyproject.toml`. ໃຫ້ສັງເກດວ່າ ສິ່ງນີ້ *ບໍ່ແມ່ນ* " +"ຮູບແບບເມຕາດາຕາສະເພາະຂອງເຄື່ອງມືພາຍໃຕ້ຕາຕະລາງ ``[tool]``." + +#: ../source/glossary.rst:271 +msgid "Pyproject Metadata Key" +msgstr "ຄີເມຕາດາຕາ Pyproject" + +#: ../source/glossary.rst:274 +msgid "" +"A top-level TOML key in the ``[project]`` table in ``pyproject.toml``; part " +"of the :term:`Pyproject Metadata`. Notably, distinct from a :term:`Core " +"Metadata Field`." +msgstr "" +"ຄີ TOML ລະດັບສູງສຸດໃນຕາຕະລາງ ``[project]`` ໃນ ``pyproject.toml``; " +"ເປັນສ່ວນໜຶ່ງຂອງ :term:`ເມຕາດາຕາ Pyproject`. ມີຄວາມແຕກຕ່າງຈາກ :term:`ຟິວເມຕາດາຕາຫຼັກ " +"(Core Metadata Field)`." + +#: ../source/glossary.rst:278 +msgid "Pyproject Metadata Subkey" +msgstr "ຄີຍ່ອຍເມຕາດາຕາ Pyproject" + +#: ../source/glossary.rst:281 +msgid "" +"A second-level TOML key under a table-valued :term:`Pyproject Metadata Key`." +msgstr "ຄີ TOML ລະດັບທີສອງ ພາຍໃຕ້ :term:`ຄີເມຕາດາຕາ Pyproject` ທີ່ມີຄ່າເປັນຕາຕະລາງ." + +#: ../source/glossary.rst:284 +msgid "Python Packaging Authority (PyPA)" +msgstr "Python Packaging Authority (PyPA)" + +#: ../source/glossary.rst:287 +msgid "" +"PyPA is a working group that maintains many of the relevant projects in " +"Python packaging. They maintain a site at :doc:`pypa.io `, host " +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." +msgstr "" +"PyPA ແມ່ນກຸ່ມເຮັດວຽກທີ່ເບິ່ງແຍງຫຼາຍໂຄງການທີ່ກ່ຽວຂ້ອງກັບການຈັດເຮັດແພັກເກດ Python. " +"ພວກເຂົາດູແລເວັບໄຊ :doc:`pypa.io `, ເກັບໂຄງການໄວ້ໃນ `GitHub `_, ແລະ ສົນທະນາບັນຫາຕ່າງໆໃນ `ລາຍຊື່ຜູ້ຮັບອີເມວ distutils-sig `_ ແລະ `ເວັບບອດ " +"Python Discourse `__." + +#: ../source/glossary.rst:295 +msgid "Python Package Index (PyPI)" +msgstr "Python Package Index (PyPI)" + +#: ../source/glossary.rst:298 +msgid "" +"`PyPI `_ is the default :term:`Package Index` for the " +"Python community. It is open to all Python developers to consume and " +"distribute their distributions." +msgstr "" +"`PyPI `_ ແມ່ນ :term:`ດັດຊະນີແພັກເກດ` ເລີ່ມຕົ້ນສຳລັບຊຸມຊົນ Python. " +"ມັນເປີດໃຫ້ຜູ້ພັດທະນາ Python ທຸກຄົນສາມາດນຳໃຊ້ ແລະ ແຈກຢາຍຊຸດແຈກຢາຍຂອງພວກເຂົາໄດ້." + +#: ../source/glossary.rst:301 +msgid "pypi.org" +msgstr "pypi.org" + +#: ../source/glossary.rst:304 +msgid "" +"`pypi.org `_ is the domain name for the :term:`Python " +"Package Index (PyPI)`. It replaced the legacy index domain name, " +"``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." +msgstr "" +"`pypi.org `_ ແມ່ນຊື່ໂດເມນຂອງ :term:`Python Package Index " +"(PyPI)`. ມັນຖືກນຳມາແທນຊື່ໂດເມນເກົ່າ ``pypi.python.org`` ໃນປີ 2017. " +"ມັນເຮັດວຽກດ້ວຍ :ref:`warehouse`." + +#: ../source/glossary.rst:308 +msgid "pyproject.toml" +msgstr "pyproject.toml" + +#: ../source/glossary.rst:311 +msgid "" +"The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." +msgstr "ໄຟລ໌ຂໍ້ກຳນົດ :term:`ໂຄງການ` ທີ່ບໍ່ຂຶ້ນກັບເຄື່ອງມືໃດໜຶ່ງ. ຖືກກຳນົດໃນ :pep:`518`." + +#: ../source/glossary.rst:313 +msgid "Release" +msgstr "ລຸ້ນ (Release)" + +#: ../source/glossary.rst:316 +msgid "" +"A snapshot of a :term:`Project` at a particular point in time, denoted by a " +"version identifier." +msgstr "ສະຖານະຂອງ :term:`ໂຄງການ` ໃນເວລາໃດໜຶ່ງ, ເຊິ່ງຖືກລະບຸດ້ວຍຕົວລະບຸເວີຊັນ." + +#: ../source/glossary.rst:319 +msgid "" +"Making a release may entail the publishing of multiple :term:`Distributions " +"`. For example, if version 1.0 of a project was " +"released, it could be available in both a source distribution format and a " +"Windows installer distribution format." +msgstr "" +"ການປ່ອຍລຸ້ນ (release) ອາດຈະລວມເຖິງການເຜີຍແຜ່ຫຼາຍ :term:`ຊຸດແຈກຢາຍ `. ຕົວຢ່າງ: ຖ້າເວີຊັນ 1.0 ຂອງໂຄງການຖືກປ່ອຍອອກມາ, " +"ມັນອາດຈະມີໃຫ້ໃຊ້ທັງໃນຮູບແບບຊຸດແຈກຢາຍແບບຊອດໂຄ້ດ ແລະ ຮູບແບບຕົວຕິດຕັ້ງສຳລັບ Windows." + +#: ../source/glossary.rst:324 +msgid "Requirement" +msgstr "ຄວາມຕ້ອງການ (Requirement)" + +#: ../source/glossary.rst:327 +msgid "" +"A specification for a :term:`package ` to be " +"installed. :ref:`pip`, the :term:`PYPA ` " +"recommended installer, allows various forms of specification that can all be " +"considered a \"requirement\". For more information, see the :ref:`pip:pip " +"install` reference." +msgstr "" +"ຂໍ້ກຳນົດສຳລັບ :term:`ແພັກເກດ ` ທີ່ຈະຕິດຕັ້ງ. :ref:`pip`, " +"ເຊິ່ງເປັນເຄື່ອງມືຕິດຕັ້ງທີ່ :term:`PYPA ` ແນະນຳ, " +"ອະນຸຍາດໃຫ້ລະບຸໄດ້ຫຼາຍຮູບແບບເຊິ່ງທັງໝົດຖືວ່າເປັນ \"ຄວາມຕ້ອງການ\". ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ, " +"ເບິ່ງເອກະສານອ້າງອີງ :ref:`pip:pip install`." + +#: ../source/glossary.rst:333 +msgid "Requirement Specifier" +msgstr "ຕົວລະບຸຂໍ້ກຳນົດ" + +#: ../source/glossary.rst:336 +msgid "" +"A format used by :ref:`pip` to install packages from a :term:`Package " +"Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " +"For example, \"foo>=1.3\" is a requirement specifier, where \"foo\" is the " +"project name, and the \">=1.3\" portion is the :term:`Version Specifier`" +msgstr "" +"ຮູບແບບທີ່ :ref:`pip` ໃຊ້ເພື່ອຕິດຕັ້ງແພັກເກດຈາກ :term:`ດັດຊະນີແພັກເກດ`. ສຳລັບແຜນວາດ EBNF " +"ຂອງຮູບແບບນີ້, ເບິ່ງ :ref:`dependency-specifiers`. ຕົວຢ່າງ: \"foo>=1.3\" " +"ແມ່ນຕົວລະບຸຄວາມຕ້ອງການ, ໂດຍທີ່ \"foo\" ແມ່ນຊື່ໂຄງການ ແລະ ສ່ວນ \">=1.3\" " +"ແມ່ນ :term:`ຕົວລະບຸເວີຊັນ (Version Specifier)`." + +#: ../source/glossary.rst:341 +msgid "Requirements File" +msgstr "ໄຟລ໌ລາຍການຄວາມຕ້ອງການ (Requirements File)" + +#: ../source/glossary.rst:344 +msgid "" +"A file containing a list of :term:`Requirements ` that can be " +"installed using :ref:`pip`. For more information, see the :ref:`pip` docs " +"on :ref:`pip:Requirements Files`." +msgstr "" +"ໄຟລ໌ທີ່ບັນຈຸລາຍຊື່ຂອງ :term:`ຄວາມຕ້ອງການ ` " +"ທີ່ສາມາດຕິດຕັ້ງໄດ້ໂດຍໃຊ້ :ref:`pip`. ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ, ເບິ່ງເອກະສານ :ref:`pip` " +"ກ່ຽວກັບ :ref:`pip:Requirements Files`." + +#: ../source/glossary.rst:348 +msgid "Root License Directory" +msgstr "ໄໄດເຣັກທໍຣີຮາກຂອງໃບອະນຸຍາດ (Root License Directory)" + +#: ../source/glossary.rst:349 +msgid "License Directory" +msgstr "ໄໄດເຣັກທໍຣີໃບອະນຸຍາດ (License Directory)" + +#: ../source/glossary.rst:352 +msgid "" +"The directory under which license files are stored in a :term:`Project " +"Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " +"a :term:`Project Source Tree` or :term:`Source Distribution (or \"sdist\")`, " +"this is the :term:`Project Root Directory`. For a :term:`Built Distribution` " +"or :term:`Installed Project`, this is the :file:`.dist-info/licenses/` " +"directory of the wheel archive or project folder respectively. Also, the " +"root directory that paths recorded in the ``License-File`` :term:`Core " +"Metadata Field` are relative to." +msgstr "" +"ໄດເຣັກທໍຣີທີ່ເກັບຮັກສາໄຟລ໌ໃບອະນຸຍາດໄວ້ໃນ :term:`Project Source " +"Tree`, :term:`Distribution Archive` ຫຼື :term:`Installed Project`. " +"ສໍາລັບ :term:`Project Source Tree` ຫຼື :term:`Source Distribution (ຫຼື " +"\"sdist\")`, ນີ້ແມ່ນ :term:`Project Root Directory`. ສໍາລັບ :term:`Built " +"Distribution` ຫຼື :term:`Installed Project`, ນີ້ແມ່ນໄດເຣັກທໍຣີ :file:`.dist-info/" +"licenses/` ຂອງ wheel archive ຫຼື ໂຟນເດີໂຄງການຕາມລໍາດັບ. ນອກຈາກນັ້ນ, " +"ຍັງເປັນໄດເຣັກທໍຣີຮາກທີ່ເສັ້ນທາງເຊິ່ງຖືກບັນທຶກໄວ້ໃນ ``License-File`` :term:`Core Metadata " +"Field` ອ້າງອີງໃສ່." + +#: ../source/glossary.rst:365 +#: ../source/guides/distributing-packages-using-setuptools.rst:59 +msgid "setup.py" +msgstr "setup.py" + +#: ../source/glossary.rst:366 +#: ../source/guides/distributing-packages-using-setuptools.rst:80 +msgid "setup.cfg" +msgstr "setup.cfg" + +#: ../source/glossary.rst:369 +msgid "" +"The project specification files for :ref:`distutils` and :ref:`setuptools`. " +"See also :term:`pyproject.toml`." +msgstr "" +"ໄໄຟລ໌ຂໍ້ກຳນົດໂຄງການສຳລັບ :ref:`distutils` ແລະ :ref:`setuptools`. " +"ເບິ່ງ :term:`pyproject.toml` ປະກອບນຳ." + +#: ../source/glossary.rst:372 +msgid "Source Archive" +msgstr "ໄຟລ໌ຈັດເກັບຊອດໂຄ້ດ" + +#: ../source/glossary.rst:375 +msgid "" +"An archive containing the raw source code for a :term:`Release`, prior to " +"creation of a :term:`Source Distribution ` or :term:`Built Distribution`." +msgstr "" +"ໄໄຟລ໌ຈັດເກັບທີ່ປະກອບດ້ວຍຊອດໂຄ້ດດິບສຳລັບ :term:`ລຸ້ນ (Release)`, " +"ກ່ອນທີ່ຈະມີການສ້າງ :term:`ຊຸດແຈກຢາຍແບບຊອດໂຄ້ດ (sdist)` ຫຼື :term:`ຊຸດແຈກຢາຍທີ່ສ້າງແລ້ວ`." + +#: ../source/glossary.rst:379 +msgid "Source Distribution (or \"sdist\")" +msgstr "ຊຸດແຈກຢາຍແບບຊອດໂຄ້ດ (ຫຼື \"sdist\")" + +#: ../source/glossary.rst:382 +msgid "" +"A :term:`distribution ` format (usually generated " +"using ``python -m build --sdist``) that provides metadata and the essential " +"source files needed for installing by a tool like :ref:`pip`, or for " +"generating a :term:`Built Distribution`. See :ref:`package-formats` for more " +"information." +msgstr "" +"ຮູບແບບ :term:`ຊຸດແຈກຢາຍ ` (ປົກກະຕິສ້າງໂດຍໃຊ້ ``python -m " +"build --sdist``) ທີ່ໃຫ້ເມຕາດາຕາ ແລະ " +"ໄຟລ໌ຊອດໂຄ້ດທີ່ຈຳເປັນສຳລັບການຕິດຕັ້ງດ້ວຍເຄື່ອງມືຢ່າງ :ref:`pip`, ຫຼື " +"ສຳລັບການສ້າງ :term:`ຊຸດແຈກຢາຍທີ່ສ້າງແລ້ວ`. ເບິ່ງ :ref:`package-formats` ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ." + +#: ../source/glossary.rst:388 +msgid "System Package" +msgstr "ແພັກເກດຂອງລະບົບ (System Package)" + +#: ../source/glossary.rst:391 +msgid "" +"A package provided in a format native to the operating system, e.g. an rpm " +"or dpkg file." +msgstr "ແພັກເກດທີ່ໃຫ້ມາໃນຮູບແບບມາດຕະຖານຂອງລະບົບປະຕິບັດການ, ເຊັ່ນ ໄຟລ໌ rpm ຫຼື dpkg." + +#: ../source/glossary.rst:394 +msgid "Version Specifier" +msgstr "ຕົວລະບຸເວີຊັນ" + +#: ../source/glossary.rst:397 +msgid "" +"The version component of a :term:`Requirement Specifier`. For example, the " +"\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " +"specification ` for a full description of the specifiers " +"that Python packaging currently supports. Support for this specification " +"was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." +msgstr "" +"ສ່ວນປະກອບຂອງເວີຊັນໃນ :term:`ຕົວລະບຸຄວາມຕ້ອງການ (Requirement Specifier)`. ຕົວຢ່າງເຊັ່ນ " +"ສ່ວນ \">=1.3\" ໃນ \"foo>=1.3\". ສາມາດອ່ານ :ref:`ຂໍ້ກຳນົດຕົວລະບຸເວີຊັນ ` ສຳລັບລາຍລະອຽດທັງໝົດຂອງຕົວລະບຸທີ່ການຈັດເຮັດແພັກເກດ Python ຮອງຮັບໃນປະຈຸບັນ. " +"ການຮອງຮັບຂໍ້ກຳນົດນີ້ຖືກເລີ່ມໃຊ້ໃນ :ref:`setuptools` v8.0 ແລະ :ref:`pip` v6.0." + +#: ../source/glossary.rst:402 +msgid "Virtual Environment" +msgstr "ສະພາບແວດລ້ອມສະເໝືອນ (Virtual Environment)" + +#: ../source/glossary.rst:405 +msgid "" +"An isolated Python environment that allows packages to be installed for use " +"by a particular application, rather than being installed system wide. For " +"more information, see the section on :ref:`Creating and using Virtual " +"Environments`." +msgstr "" +"ສະພາບແວດລ້ອມ Python ທີ່ຖືກແຍກອອກມາຕ່າງຫາກ " +"ເພື່ອໃຫ້ສາມາດຕິດຕັ້ງແພັກເກດສຳລັບໃຊ້ໃນແອັບພລິເຄຊັນໃດໜຶ່ງໂດຍສະເພາະ, ແທນທີ່ຈະຕິດຕັ້ງລົງໃນລະບົບທັງໝົດ. " +"ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ, ເບິ່ງພາກ :ref:`ການສ້າງ ແລະ ການໃຊ້ສະພາບແວດລ້ອມສະເໝືອນ`." + +#: ../source/glossary.rst:410 +msgid "Wheel Format" +msgstr "ຮູບແບບ Wheel" + +#: ../source/glossary.rst:411 +msgid "Wheel" +msgstr "Wheel" + +#: ../source/glossary.rst:414 +msgid "" +"The standard :term:`Built Distribution` format originally introduced " +"in :pep:`427` and defined by the :ref:`binary-distribution-format` " +"specification. See :ref:`package-formats` for more information. Not to be " +"confused with its reference implementation, the :term:`Wheel Project`." +msgstr "" +"ຮູບແບບ :term:`ຊຸດແຈກຢາຍທີ່ສ້າງແລ້ວ` ມາດຕະຖານ ທີ່ເລີ່ມໃຊ້ໃນ :pep:`427` ແລະ " +"ກຳນົດໂດຍຂໍ້ກຳນົດ :ref:`binary-distribution-format`. ເບິ່ງ :ref:`package-formats` " +"ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ. ຢ່າສັບສົນກັບຕົວການນຳໃຊ້ຕົວຈິງ (reference implementation) " +"ທີ່ຊື່ວ່າ :term:`Wheel Project`." + +#: ../source/glossary.rst:421 +msgid "Wheel Project" +msgstr "Wheel Project" + +#: ../source/glossary.rst:424 +msgid "" +"The PyPA reference implementation of the :term:`Wheel Format`; " +"see :ref:`wheel`." +msgstr "ການນຳໃຊ້ຕົວຈິງອ້າງອີງຂອງ PyPA ສຳລັບ :term:`ຮູບແບບ Wheel`; ເບິ່ງ :ref:`wheel`." + +#: ../source/glossary.rst:426 +msgid "Working Set" +msgstr "Working Set" + +#: ../source/glossary.rst:429 +msgid "" +"A collection of :term:`distributions ` available for " +"importing. These are the distributions that are on the `sys.path` variable. " +"At most, one :term:`Distribution ` for a project is " +"possible in a working set." +msgstr "" +"ກຸ່ມຂອງ :term:`ຊຸດແຈກຢາຍ ` ທີ່ມີໃຫ້ສາມາດນຳເຂົ້າໄດ້. " +"ເຫຼົ່ານີ້ແມ່ນຊຸດແຈກຢາຍທີ່ຢູ່ໃນຕົວປ່ຽນ `sys.path`. ໃນ working set ໜຶ່ງ, ຈະມີ :term:`ຊຸດແຈກຢາຍ " +"` ຂອງໂຄງການໃດໜຶ່ງໄດ້ພຽງຊຸດດຽວເທົ່ານັ້ນ." + +#: ../source/guides/analyzing-pypi-package-downloads.rst:5 +msgid "Analyzing PyPI package downloads" +msgstr "ການວິເຄາະການດາວໂຫຼດແພັກເກດຈາກ PyPI" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:7 +msgid "" +"This section covers how to use the public PyPI download statistics dataset " +"to learn more about downloads of a package (or packages) hosted on PyPI. For " +"example, you can use it to discover the distribution of Python versions used " +"to download a package." +msgstr "" +"ພາກນີ້ອະທິບາຍວິທີການໃຊ້ຂໍ້ມູນສະຖິຕິການດາວໂຫຼດ PyPI ແບບສາທາລະນະ " +"ເພື່ອຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບການດາວໂຫຼດແພັກເກດທີ່ຢູ່ເທິງ PyPI. ຕົວຢ່າງ: " +"ທ່ານສາມາດໃຊ້ມັນເພື່ອເບິ່ງສັດສ່ວນຂອງເວີຊັນ Python ທີ່ຖືກໃຊ້ໃນການດາວໂຫຼດແພັກເກດ." + +#: ../source/guides/analyzing-pypi-package-downloads.rst:14 +#: ../source/guides/supporting-windows-using-appveyor.rst:17 +msgid "Background" +msgstr "ຄວາມເປັນມາ" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:16 +msgid "PyPI does not display download statistics for a number of reasons: [#]_" +msgstr "PyPI ບໍ່ສະແດງສະຖິຕິການດາວໂຫຼດຍ້ອນເຫດຜົນຫຼາຍປະການ: [#]_" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:18 +msgid "" +"**Inefficient to make work with a Content Distribution Network (CDN):** " +"Download statistics change constantly. Including them in project pages, " +"which are heavily cached, would require invalidating the cache more often, " +"and reduce the overall effectiveness of the cache." +msgstr "" +"**ຂາດປະສິດທິພາບໃນການເຮັດວຽກຮ່ວມກັບ Content Distribution Network (CDN):** " +"ສະຖິຕິການດາວໂຫຼດມີການປ່ຽນແປງຕະຫຼອດເວລາ. ການສະແດງສະຖິຕິເຫຼົ່ານີ້ໃນໜ້າໂຄງການ (ເຊິ່ງມີການໃຊ້ " +"cache ຢ່າງໜັກ) ຈະເຮັດໃຫ້ຕ້ອງມີການລ້າງ cache ດຸຂຶ້ນ, ແລະ ຫຼຸດປະສິດທິພາບໂດຍລວມຂອງ cache ລົງ." + +#: ../source/guides/analyzing-pypi-package-downloads.rst:23 +msgid "" +"**Highly inaccurate:** A number of things prevent the download counts from " +"being accurate, some of which include:" +msgstr "**ຂາດຄວາມແມ່ັນຢຳຢ່າງສູງ:** ມີຫຼາຍປັດໄຈທີ່ເຮັດໃຫ້ການນັບຈຳນວນການດາວໂຫຼດບໍ່ແມ່ັນຢຳ, ເຊັ່ນ:" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:26 +msgid "``pip``'s download cache (lowers download counts)" +msgstr "cache ການດາວໂຫຼດຂອງ ``pip`` (ເຮັດໃຫ້ຈຳນວນການດາວໂຫຼດຕໍ່າກວ່າຄວາມເປັນຈິງ)" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:27 +msgid "" +"Internal or unofficial mirrors (can both raise or lower download counts)" +msgstr "Mirror ພາຍໃນ ຫຼື Mirror ທີ່ບໍ່ເປັນທາງການ (ອາດເຮັດໃຫ້ຈຳນວນການດາວໂຫຼດສູງຂຶ້ນ ຫຼື ຫຼຸດລົງ)" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:28 +msgid "Packages not hosted on PyPI (for comparisons sake)" +msgstr "ແພັກເກດທີ່ບໍ່ໄດ້ຢູ່ເທິງ PyPI (ເຮັດໃຫ້ປຽບທຽບໄດ້ຍາກ)" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:29 +msgid "" +"Unofficial scripts or attempts at download count inflation (raises download " +"counts)" +msgstr "" +"ສະຄຣິບທີ່ບໍ່ເປັນທາງການ ຫຼື ຄວາມພະຍາຍາມໃນການປັ້ມຍອດການດາວໂຫຼດ " +"(ເຮັດໃຫ້ຈຳນວນການດາວໂຫຼດສູງເກີນຈິງ)" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:31 +msgid "Known historical data quality issues (lowers download counts)" +msgstr "ບັນຫາດ້ານຄຸນນະພາບຂໍ້ມູນໃນອະດີດ (ເຮັດໃຫ້ຈຳນວນການດາວໂຫຼດຕໍ່າກວ່າຄວາມເປັນຈິງ)" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:33 +msgid "" +"**Not particularly useful:** Just because a project has been downloaded a " +"lot doesn't mean it's good; Similarly just because a project hasn't been " +"downloaded a lot doesn't mean it's bad!" +msgstr "" +"**ບໍ່ມີປະໂຫຍດຫຼາຍປານໃດ:** ພຽງແຕ່ໂຄງການມີຍອດດາວໂຫຼດຫຼາຍ ບໍ່ໄດ້ໝາຍຄວາມວ່າມັນດີ; " +"ໃນທຳນອງດຽວກັນ, ໂຄງການທີ່ມິຍອດດາວໂຫຼດໜ້ອຍ ກໍບໍ່ໄດ້ໝາຍຄວາມວ່າມັນບໍ່ດີ!" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:37 +msgid "" +"In short, because its value is low for various reasons, and the tradeoffs " +"required to make it work are high, it has been not an effective use of " +"limited resources." +msgstr "" +"ສະຫຼຸບຄື, ເນື່ອງຈາກຄຸນຄ່າຂອງມັນຕໍ່າດ້ວຍເຫດຜົນຕ່າງໆ ແລະ ຄວາມຫຍຸ້ງຍາກໃນການເຮັດໃຫ້ມັນໃຊ້ງານໄດ້ມີສູງ, " +"ມັນຈຶ່ງບໍ່ແມ່ນການໃຊ້ຊັບພະຍາກອນທີ່ມີຈຳກັດຢ່າງມີປະສິດທິພາບ." + +#: ../source/guides/analyzing-pypi-package-downloads.rst:42 +msgid "Public dataset" +msgstr "ຊຸດຂໍ້ມູນສາທາລະນະ (Public dataset)" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:44 +msgid "" +"As an alternative, the `Linehaul project `__ streams download logs from PyPI to `Google BigQuery`_ " +"[#]_, where they are stored as a public dataset." +msgstr "" +"ເພື່ອເປັນທາງເລືອກ, `ໂຄງການ Linehaul `__ ຈະສົ່ງຂໍ້ມູນບັນທຶກ (logs) ການດາວໂຫຼດຈາກ PyPI ໄປທີ່ `Google BigQuery`_ " +"[#]_, ເຊິ່ງພວກມັນຈະຖືກເກັບໄວ້ເປັນຊຸດຂໍ້ມູນສາທາລະນະ." + +#: ../source/guides/analyzing-pypi-package-downloads.rst:49 +msgid "Getting set up" +msgstr "ການຕັ້ງຄ່າເພື່ອເລີ່ມຕົ້ນ" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:51 +msgid "" +"In order to use `Google BigQuery`_ to query the `public PyPI download " +"statistics dataset`_, you'll need a Google account and to enable the " +"BigQuery API on a Google Cloud Platform project. You can run up to 1TB of " +"queries per month `using the BigQuery free tier without a credit card " +"`__" +msgstr "" +"ໃນການໃຊ້ `Google BigQuery`_ ເພື່ອສອບຖາມ (query) `ຊຸດຂໍ້ມູນສະຖິຕິການດາວໂຫຼດ PyPI " +"ສາທາລະນະ`_, ທ່ານຕ້ອງມີບັນຊີ Google ແລະ ເປີດໃຊ້ BigQuery API ໃນໂຄງການ Google Cloud " +"Platform. ທ່ານສາມາດສອບຖາມຂໍ້ມູນໄດ້ຟຣີສູງສຸດ 1TB ຕໍ່ເດືອນ `ໂດຍໃຊ້ BigQuery free tier " +"ໂດຍບໍ່ຕ້ອງມີບັດເຄຣດິດ `__" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:57 +msgid "Navigate to the `BigQuery web UI`_." +msgstr "ໄປທີ່ `BigQuery web UI`_." + +#: ../source/guides/analyzing-pypi-package-downloads.rst:58 +msgid "Create a new project." +msgstr "ສ້າງໂຄງການໃໝ່." + +#: ../source/guides/analyzing-pypi-package-downloads.rst:59 +msgid "" +"Enable the `BigQuery API `__." +msgstr "" +"ເປີດໃຊ້ `BigQuery API `__." + +#: ../source/guides/analyzing-pypi-package-downloads.rst:62 +msgid "" +"For more detailed instructions on how to get started with BigQuery, check " +"out the `BigQuery quickstart guide `__." +msgstr "" +"ສຳລັບຄຳແນະນຳລະອຽດກ່ຽວກັບການເລີ່ມຕົ້ນໃຊ້ BigQuery, ສາມາດເບິ່ງໄດ້ທີ່ `ຄູ່ມືເລີ່ມຕົ້ນ BigQuery " +"`__." + +#: ../source/guides/analyzing-pypi-package-downloads.rst:68 +msgid "Data schema" +msgstr "ໂຄງສ້າງຂໍ້ມູນ (Data schema)" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:70 +msgid "" +"Linehaul writes an entry in a ``bigquery-public-data.pypi.file_downloads`` " +"table for each download. The table contains information about what file was " +"downloaded and how it was downloaded. Some useful columns from the `table " +"schema `__ include:" +msgstr "" +"Linehaul ຈະບັນທຶກຂໍ້ມູນລົງໃນຕາຕະລາງ ``bigquery-public-data.pypi.file_downloads`` " +"ສຳລັບແຕ່ລະການດາວໂຫຼດ. ຕາຕະລາງນີ້ປະກອບດ້ວຍຂໍ້ມູນວ່າໄຟລ໌ໃດຖືກດາວໂຫຼດ ແລະ ດາວໂຫຼດແນວໃດ. " +"ບາງຄໍລຳ (column) ທີ່ເປັນປະໂຫຍດຈາກ `ໂຄງສ້າງຕາຕະລາງ `__ ມີດັ່ງນີ້:" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:77 +msgid "Column" +msgstr "ຄໍລຳ" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:77 +#: ../source/specifications/core-metadata.rst:214 +#: ../source/specifications/well-known-project-urls.rst:106 +msgid "Description" +msgstr "ຄຳອະທິບາຍ" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:77 +#: ../source/specifications/dependency-groups.rst:23 +#: ../source/specifications/dependency-specifiers.rst:33 +#: ../source/specifications/direct-url-data-structure.rst:242 +#: ../source/specifications/version-specifiers.rst:1085 +msgid "Examples" +msgstr "ຕົວຢ່າງ" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:79 +msgid "timestamp" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:79 +msgid "Date and time" +msgstr "ວັນທີ ແລະ ເວລາ" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:79 +msgid "``2020-03-09 00:33:03 UTC``" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:81 +msgid "file.project" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:81 +msgid "Project name" +msgstr "ຊື່ໂຄງການ" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:81 +msgid "``pipenv``, ``nose``" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:83 +msgid "file.version" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:83 +msgid "Package version" +msgstr "ເວີຊັນຂອງແພັກເກດ" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:83 +msgid "``0.1.6``, ``1.4.2``" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:85 +msgid "details.installer.name" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:85 +msgid "Installer" +msgstr "ເຄື່ອງມືຕິດຕັ້ງ" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:85 +msgid "pip, :ref:`bandersnatch`" +msgstr "pip, :ref:`bandersnatch`" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:87 +msgid "details.python" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:87 +msgid "Python version" +msgstr "ເວີຊັນ Python" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:87 +msgid "``2.7.12``, ``3.6.4``" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:92 +msgid "Useful queries" +msgstr "ຄຳສັ່ງສອບຖາມ (query) ທີ່ເປັນປະໂຫຍດ" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:94 +msgid "" +"Run queries in the `BigQuery web UI`_ by clicking the \"Compose query\" " +"button." +msgstr "ລັນຄຳສັ່ງສອບຖາມໃນ `BigQuery web UI`_ ໂດຍການຄລິກປຸ່ມ \"Compose query\"." + +#: ../source/guides/analyzing-pypi-package-downloads.rst:96 +msgid "" +"Note that the rows are stored in a partitioned table, which helps limit the " +"cost of queries. These example queries analyze downloads from recent history " +"by filtering on the ``timestamp`` column." +msgstr "" +"ໃຫ້ສັງເກດວ່າແຖວຂໍ້ມູນຖືກເກັບໄວ້ໃນຕາຕະລາງແບບ partitioned, " +"ເຊິ່ງຊ່ວຍຈຳກັດຄ່າໃຊ້ຈ່າຍໃນການສອບຖາມ. " +"ຕົວຢ່າງຄຳສັ່ງເຫຼົ່ານີ້ຈະວິເຄາະການດາວໂຫຼດຈາກປະຫວັດຫຼ້າສຸດໂດຍການກັ່ນຕອງ (filter) ຈາກຄໍລຳ " +"``timestamp``." + +#: ../source/guides/analyzing-pypi-package-downloads.rst:101 +msgid "Counting package downloads" +msgstr "ການນັບຈຳນວນການດາວໂຫຼດແພັກເກດ" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:103 +msgid "" +"The following query counts the total number of downloads for the project " +"\"pytest\"." +msgstr "ຄຳສັ່ງຕໍ່ໄປນີ້ຈະນັບຈຳນວນການດາວໂຫຼດທັງໝົດຂອງໂຄງການ \"pytest\"." + +#: ../source/guides/analyzing-pypi-package-downloads.rst:118 +#: ../source/guides/analyzing-pypi-package-downloads.rst:139 +#: ../source/guides/analyzing-pypi-package-downloads.rst:167 +#: ../source/guides/analyzing-pypi-package-downloads.rst:204 +msgid "num_downloads" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:120 +msgid "26190085" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:123 +msgid "" +"To count downloads from pip only, filter on the ``details.installer.name`` " +"column." +msgstr "" +"ໃນການນັບຈຳນວນການດາວໂຫຼດຈາກ pip ເທົ່ານັ້ນ, ໃຫ້ກັ່ນຕອງຈາກຄໍລຳ ``details.installer.name``." + +#: ../source/guides/analyzing-pypi-package-downloads.rst:141 +msgid "24334215" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:145 +msgid "Package downloads over time" +msgstr "ຈຳນວນການດາວໂຫຼດແພັກເກດຕາມໄລຍະເວລາ" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:147 +msgid "" +"To group by monthly downloads, use the ``TIMESTAMP_TRUNC`` function. Also " +"filtering by this column reduces corresponding costs." +msgstr "" +"ໃນການຈັດກຸ່ມການດາວໂຫຼດຕາມເດືອນ, ໃຫ້ໃຊ້ຟັງຊັນ ``TIMESTAMP_TRUNC``. ນອກຈາກນີ້ " +"ການກັ່ນຕອງດ້ວຍຄໍລຳນີ້ຍັງຊ່ວຍຫຼຸດຄ່າໃຊ້ຈ່າຍທີ່ກ່ຽວຂ້ອງນຳ." + +#: ../source/guides/analyzing-pypi-package-downloads.rst:167 +msgid "month" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:169 +msgid "1956741" +msgstr "1956741" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:169 +msgid "2018-01-01" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:171 +msgid "2344692" +msgstr "2344692" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:171 +msgid "2017-12-01" +msgstr "2017-12-01" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:173 +msgid "1730398" +msgstr "1730398" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:173 +msgid "2017-11-01" +msgstr "2017-11-01" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:175 +msgid "2047310" +msgstr "2047310" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:175 +msgid "2017-10-01" +msgstr "2017-10-01" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:177 +msgid "1744443" +msgstr "1744443" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:177 +msgid "2017-09-01" +msgstr "2017-09-01" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:179 +msgid "1916952" +msgstr "1916952" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:179 +msgid "2017-08-01" +msgstr "2017-08-01" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:183 +msgid "Python versions over time" +msgstr "ເວີຊັນ Python ຕາມໄລຍະເວລາ" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:185 +msgid "" +"Extract the Python version from the ``details.python`` column. Warning: This " +"query processes over 500 GB of data." +msgstr "" +"ການດຶງຂໍ້ມູນເວີຊັນ Python ຈາກຄໍລຳ ``details.python``. ຄຳເຕືອນ: " +"ຄຳສັ່ງສອບຖາມນີ້ຈະປະມວນຜົນຂໍ້ມູນຫຼາຍກວ່າ 500 GB." + +#: ../source/guides/analyzing-pypi-package-downloads.rst:204 +msgid "python" +msgstr "python" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:206 +msgid "3.7" +msgstr "3.7" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:206 +msgid "18051328726" +msgstr "18051328726" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:208 +msgid "3.6" +msgstr "3.6" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:208 +msgid "9635067203" +msgstr "9635067203" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:210 +msgid "3.8" +msgstr "3.8" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:210 +msgid "7781904681" +msgstr "7781904681" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:212 +msgid "2.7" +msgstr "2.7" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:212 +msgid "6381252241" +msgstr "6381252241" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:214 +msgid "null" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:214 +msgid "2026630299" +msgstr "2026630299" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:216 +msgid "3.5" +msgstr "3.5" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:216 +msgid "1894153540" +msgstr "1894153540" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:221 +msgid "Getting absolute links to artifacts" +msgstr "ການເອົາລິ້ງຖາວອນ (absolute links) ໄປຍັງ artifacts" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:223 +msgid "" +"It's sometimes helpful to be able to get the absolute links to download " +"artifacts from PyPI based on their hashes, e.g. if a particular project or " +"release has been deleted from PyPI. The metadata table includes the ``path`` " +"column, which includes the hash and artifact filename." +msgstr "" +"ບາງຄັ້ງມັນມີປະໂຫຍດທີ່ຈະສາມາດເອົາລິ້ງຖາວອນເພື່ອດາວໂຫຼດ artifacts ຈາກ PyPI ໂດຍອີງຕາມ hash " +"ຂອງພວກມັນ, ເຊັ່ນ ຖ້າໂຄງການ ຫຼື ລຸ້ນໃດໜຶ່ງຖືກລຶບອອກຈາກ PyPI. ຕາຕະລາງເມຕາດາຕາຈະລວມເອົາຄໍລຳ " +"``path``, ເຊິ່ງມີທັງ hash ແລະ ຊື່ໄຟລ໌ artifact." + +#: ../source/guides/analyzing-pypi-package-downloads.rst:229 +msgid "" +"The URL generated here is not guaranteed to be stable, but currently aligns " +"with the URL where PyPI artifacts are hosted." +msgstr "" +"URL ທີ່ສ້າງຂຶ້ນຢູ່ນີ້ບໍ່ໄດ້ຮັບປະກັນວ່າຈະຄົງທີ່ຕະຫຼອດໄປ, ແຕ່ປະຈຸບັນແມ່ນກົງກັບ URL ທີ່ artifacts ຂອງ PyPI " +"ຖືກເກັບໄວ້." + +#: ../source/guides/analyzing-pypi-package-downloads.rst:242 +msgid "url" +msgstr "url" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:244 +msgid "" +"https://files.pythonhosted.org/packages/eb/" +"45/79be82bdeafcecb9dca474cad4003e32ef8e4a0dec6abbd4145ccb02abe1/" +"sampleproject-1.2.0.tar.gz" +msgstr "" +"https://files.pythonhosted.org/packages/eb/" +"45/79be82bdeafcecb9dca474cad4003e32ef8e4a0dec6abbd4145ccb02abe1/" +"sampleproject-1.2.0.tar.gz" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:246 +msgid "" +"https://files.pythonhosted.org/packages/56/0a/" +"178e8bbb585ec5b13af42dae48b1d7425d6575b3ff9b02e5ec475e38e1d6/" +"sampleproject_nomura-1.2.0-py2.py3-none-any.whl" +msgstr "" +"https://files.pythonhosted.org/packages/56/0a/" +"178e8bbb585ec5b13af42dae48b1d7425d6575b3ff9b02e5ec475e38e1d6/" +"sampleproject_nomura-1.2.0-py2.py3-none-any.whl" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:248 +msgid "" +"https://files.pythonhosted.org/packages/" +"63/88/3200eeaf22571f18d2c41e288862502e33365ccbdc12b892db23f51f8e70/" +"sampleproject_nomura-1.2.0.tar.gz" +msgstr "" +"https://files.pythonhosted.org/packages/" +"63/88/3200eeaf22571f18d2c41e288862502e33365ccbdc12b892db23f51f8e70/" +"sampleproject_nomura-1.2.0.tar.gz" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:250 +msgid "" +"https://files.pythonhosted.org/packages/21/" +"e9/2743311822e71c0756394b6c5ab15cb64ca66c78c6c6a5cd872c9ed33154/" +"sampleproject_doubleyoung18-1.3.0-py2.py3-none-any.whl" +msgstr "" +"https://files.pythonhosted.org/packages/21/" +"e9/2743311822e71c0756394b6c5ab15cb64ca66c78c6c6a5cd872c9ed33154/" +"sampleproject_doubleyoung18-1.3.0-py2.py3-none-any.whl" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:252 +msgid "" +"https://files.pythonhosted.org/packages/6f/5b/" +"2f3fe94e1c02816fe23c7ceee5292fb186912929e1972eee7fb729fa27af/" +"sampleproject-1.3.1.tar.gz" +msgstr "" +"https://files.pythonhosted.org/packages/6f/5b/" +"2f3fe94e1c02816fe23c7ceee5292fb186912929e1972eee7fb729fa27af/" +"sampleproject-1.3.1.tar.gz" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:257 +msgid "Caveats" +msgstr "ຂໍ້ຄວນລະວັງ" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:259 +msgid "" +"In addition to the caveats listed in the background above, Linehaul suffered " +"from a bug which caused it to significantly under-report download statistics " +"prior to July 26, 2018. Downloads before this date are proportionally " +"accurate (e.g. the percentage of Python 2 vs. Python 3 downloads) but total " +"numbers are lower than actual by an order of magnitude." +msgstr "" +"ນອກຈາກຂໍ້ຄວນລະວັງທີ່ລະບຸໄວ້ໃນສ່ວນຄວາມເປັນມາຂ້າງເທິງແລ້ວ, Linehaul " +"ເຄີຍພົບກັບບັກທີ່ເຮັດໃຫ້ການລາຍງານສະຖິຕິການດາວໂຫຼດຕໍ່າກວ່າຄວາມເປັນຈິງຢ່າງຫຼວງຫຼາຍ ກ່ອນວັນທີ 26 ກໍລະກົດ " +"2018. ການດາວໂຫຼດກ່ອນວັນທີນີ້ມີຄວາມແມ່ັນຢຳໃນແງ່ຂອງສັດສ່ວນ (ເຊັ່ນ ເປີເຊັນຂອງການດາວໂຫຼດ Python 2 " +"ທຽບກັບ Python 3) ແຕ່ຈຳນວນທັງໝົດແມ່ນຕໍ່າກວ່າຄວາມເປັນຈິງຫຼາຍເທົ່າ." + +#: ../source/guides/analyzing-pypi-package-downloads.rst:267 +msgid "Additional tools" +msgstr "ເຄື່ອງມືເພີ່ມເຕີມ" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:269 +msgid "" +"Besides using the BigQuery console, there are some additional tools which " +"may be useful when analyzing download statistics." +msgstr "" +"ນອກຈາກການໃຊ້ BigQuery console ແລ້ວ, " +"ຍັງມີເຄື່ອງມືເພີ່ມເຕີມບາງຢ່າງທີ່ອາດຈະເປັນປະໂຫຍດໃນການວິເຄາະສະຖິຕິການດາວໂຫຼດ." + +#: ../source/guides/analyzing-pypi-package-downloads.rst:273 +msgid "``google-cloud-bigquery``" +msgstr "``google-cloud-bigquery``" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:275 +msgid "" +"You can also access the public PyPI download statistics dataset " +"programmatically via the BigQuery API and the `google-cloud-bigquery`_ " +"project, the official Python client library for BigQuery." +msgstr "" +"ທ່ານຍັງສາມາດເຂົ້າເຖິງຊຸດຂໍ້ມູນສະຖິຕິການດາວໂຫຼດ PyPI ສາທາລະນະຜ່ານການຂຽນໂປຣແກຣມດ້ວຍ BigQuery " +"API ແລະ ໂຄງການ `google-cloud-bigquery`_, ເຊິ່ງເປັນໄລບຣາຣີລູກຂ່າຍ Python " +"ຢ່າງເປັນທາງການສຳລັບ BigQuery." + +#: ../source/guides/analyzing-pypi-package-downloads.rst:303 +msgid "``pypinfo``" +msgstr "``pypinfo``" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:305 +msgid "" +"`pypinfo`_ is a command-line tool which provides access to the dataset and " +"can generate several useful queries. For example, you can query the total " +"number of download for a package with the command ``pypinfo package_name``." +msgstr "" +"`pypinfo`_ ແມ່ນເຄື່ອງມືແບບບັນທັດຄຳສັ່ງທີ່ໃຫ້ການເຂົ້າເຖິງຊຸດຂໍ້ມູນ ແລະ " +"ສາມາດສ້າງຄຳສັ່ງສອບຖາມທີ່ເປັນປະໂຫຍດໄດ້ຫຼາຍຢ່າງ. ຕົວຢ່າງ: " +"ທ່ານສາມາດສອບຖາມຈຳນວນການດາວໂຫຼດທັງໝົດຂອງແພັກເກດໄດ້ດ້ວຍຄຳສັ່ງ ``pypinfo package_name``." + +#: ../source/guides/analyzing-pypi-package-downloads.rst:309 +msgid "Install `pypinfo`_ using pip." +msgstr "ຕິດຕັ້ງ `pypinfo`_ ໂດຍໃຊ້ pip." + +#: ../source/guides/analyzing-pypi-package-downloads.rst:315 +msgid "Usage:" +msgstr "ວິທີໃຊ້:" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:331 +msgid "``pandas-gbq``" +msgstr "``pandas-gbq``" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:333 +msgid "" +"The `pandas-gbq`_ project allows for accessing query results via `Pandas`_." +msgstr "ໂຄງການ `pandas-gbq`_ ຊ່ວຍໃຫ້ສາມາດເຂົ້າເຖິງຜົນການສອບຖາມຜ່ານ `Pandas`_ ໄດ້." + +#: ../source/guides/analyzing-pypi-package-downloads.rst:337 +msgid "``ClickPy``" +msgstr "``ClickPy``" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:339 +msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" +"ໂຄງການ `ClickPy`_ ໃຫ້ບໍລິການແອັບພລິເຄຊັນສາທາລະນະເພື່ອສະແດງພາບສະຖິຕິການດາວໂຫຼດ, " +"ໂດຍມີການເຂົ້າເຖິງ SQL ໂດຍກົງຟຣີໄປຍັງຖານຂໍ້ມູນ `ClickHouse`_ ທີ່ເປັນ open-source ແລະ " +"ມີການອັບເດດທຸກໆມື້." + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:713 +msgid "References" +msgstr "ເອກະສານອ້າງອີງ" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" +"`PyPI Download Counts deprecation email `__" +msgstr "" +"`ອີເມວແຈ້ງການຍົກເລີກການນັບຈຳນວນການດາວໂຫຼດຂອງ PyPI `__" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 +msgid "" +"`PyPI BigQuery dataset announcement email `__" +msgstr "" +"`ອີເມວປະກາດຊຸດຂໍ້ມູນ PyPI BigQuery `__" + +#: ../source/guides/creating-and-discovering-plugins.rst:3 +msgid "Creating and discovering plugins" +msgstr "ການສ້າງ ແລະ ການຄົ້ນຫາປລັກອິນ (plugins)" + +#: ../source/guides/creating-and-discovering-plugins.rst:5 +msgid "" +"Often when creating a Python application or library you'll want the ability " +"to provide customizations or extra features via **plugins**. Because Python " +"packages can be separately distributed, your application or library may want " +"to automatically **discover** all of the plugins available." +msgstr "" +"ເລື້ອຍໆໃນເວລາສ້າງແອັບພລິເຄຊັນ ຫຼື ໄລບຣາຣີດ້ວຍ Python, " +"ທ່ານອາດຈະຕ້ອງການໃຫ້ມີຄວາມສາມາດໃນການປັບແຕ່ງ ຫຼື ເພີ່ມຟີເຈີພິເສດຜ່ານ **ປລັກອິນ**. " +"ເນື່ອງຈາກແພັກເກດ Python ສາມາດແຈກຢາຍແຍກກັນໄດ້, ແອັບພລິເຄຊັນ ຫຼື ໄລບຣາຣີຂອງທ່ານອາດຈະຕ້ອງການ " +"**ຄົ້ນຫາ (discover)** ປລັກອິນທັງໝົດທີ່ມີຢູ່ໂດຍອັດຕະໂນມັດ." + +#: ../source/guides/creating-and-discovering-plugins.rst:10 +msgid "There are three major approaches to doing automatic plugin discovery:" +msgstr "ມີສາມວິທີຫຼັກໆໃນການເຮັດການຄົ້ນຫາປລັກອິນແບບອັດຕະໂນມັດ:" + +#: ../source/guides/creating-and-discovering-plugins.rst:12 +msgid "`Using naming convention`_." +msgstr "`ການໃຊ້ທຳນຽມການຕັ້ງຊື່ (naming convention)`_." + +#: ../source/guides/creating-and-discovering-plugins.rst:13 +msgid "`Using namespace packages`_." +msgstr "`ການໃຊ້ແພັກເກດແບບ namespace`_." + +#: ../source/guides/creating-and-discovering-plugins.rst:14 +msgid "`Using package metadata`_." +msgstr "`ການໃຊ້ເມຕາດາຕາຂອງແພັກເກດ (package metadata)`_." + +#: ../source/guides/creating-and-discovering-plugins.rst:18 +msgid "Using naming convention" +msgstr "ການໃຊ້ທຳນຽມການຕັ້ງຊື່" + +#: ../source/guides/creating-and-discovering-plugins.rst:20 +msgid "" +"If all of the plugins for your application follow the same naming " +"convention, you can use :func:`pkgutil.iter_modules` to discover all of the " +"top-level modules that match the naming convention. For example, `Flask`_ " +"uses the naming convention ``flask_{plugin_name}``. If you wanted to " +"automatically discover all of the Flask plugins installed:" +msgstr "" +"ຖ້າປລັກອິນທັງໝົດສຳລັບແອັບພລິເຄຊັນຂອງທ່ານປະຕິບັດຕາມທຳນຽມການຕັ້ງຊື່ດຽວກັນ, " +"ທ່ານສາມາດໃຊ້ :func:`pkgutil.iter_modules` " +"ເພື່ອຄົ້ນຫາໂມດູນລະດັບສູງສຸດທັງໝົດທີ່ກົງກັບທຳນຽມການຕັ້ງຊື່ນັ້ນ. ຕົວຢ່າງ: `Flask`_ ໃຊ້ທຳນຽມການຕັ້ງຊື່ " +"``flask_{plugin_name}``. ຖ້າທ່ານຕ້ອງການຄົ້ນຫາປລັກອິນ Flask ທັງໝົດທີ່ຕິດຕັ້ງໄວ້ໂດຍອັດຕະໂນມັດ:" + +#: ../source/guides/creating-and-discovering-plugins.rst:38 +msgid "" +"If you had both the `Flask-SQLAlchemy`_ and `Flask-Talisman`_ plugins " +"installed then ``discovered_plugins`` would be:" +msgstr "" +"ຖ້າທ່ານຕິດຕັ້ງທັງປລັກອິນ `Flask-SQLAlchemy`_ ແລະ `Flask-Talisman`_, ແລ້ວ " +"``discovered_plugins`` ຈະເປັນ:" + +#: ../source/guides/creating-and-discovering-plugins.rst:48 +msgid "" +"Using naming convention for plugins also allows you to query the Python " +"Package Index's :ref:`simple repository API ` for all " +"packages that conform to your naming convention." +msgstr "" +"ການໃຊ້ທຳນຽມການຕັ້ງຊື່ສຳລັບປລັກອິນຍັງຊ່ວຍໃຫ້ທ່ານສາມາດສອບຖາມ :ref:`simple repository API " +"` ຂອງ PyPI ສຳລັບທຸກແພັກເກດທີ່ປະຕິບັດຕາມທຳນຽມການຕັ້ງຊື່ຂອງທ່ານໄດ້." + +#: ../source/guides/creating-and-discovering-plugins.rst:58 +msgid "Using namespace packages" +msgstr "ການໃຊ້ແພັກເກດແບບ namespace" + +#: ../source/guides/creating-and-discovering-plugins.rst:60 +msgid "" +":doc:`Namespace packages ` can be used to " +"provide a convention for where to place plugins and also provides a way to " +"perform discovery. For example, if you make the sub-package " +"``myapp.plugins`` a namespace package then other :term:`distributions " +"` can provide modules and packages to that namespace. " +"Once installed, you can use :func:`pkgutil.iter_modules` to discover all " +"modules and packages installed under that namespace:" +msgstr "" +":doc:`ແພັກເກດແບບ namespace ` " +"ສາມາດໃຊ້ເພື່ອສ້າງຂໍ້ຕົກລົງວ່າຄວນວາງປລັກອິນໄວ້ບ່ອນໃດ ແລະ ຍັງເປັນວິທີໃນການຄົ້ນຫາປລັກອິນນຳ. ຕົວຢ່າງ: " +"ຖ້າທ່ານເຮັດໃຫ້ແພັກເກດຍ່ອຍ ``myapp.plugins`` ເປັນແພັກເກດແບບ namespace, " +"ແລ້ວ :term:`ຊຸດແຈກຢາຍ ` ອື່ນໆກໍຈະສາມາດໃຫ້ໂມດູນ ແລະ ແພັກເກດແກ່ " +"namespace ນັ້ນໄດ້. ເມື່ອຕິດຕັ້ງແລ້ວ, ທ່ານສາມາດໃຊ້ :func:`pkgutil.iter_modules` " +"ເພື່ອຄົ້ນຫາທຸກໂມດູນ ແລະ ແພັກເກດທີ່ຕິດຕັ້ງຢູ່ພາຍໃຕ້ namespace ນັ້ນ:" + +#: ../source/guides/creating-and-discovering-plugins.rst:88 +msgid "" +"Specifying ``myapp.plugins.__path__`` to :func:`~pkgutil.iter_modules` " +"causes it to only look for the modules directly under that namespace. For " +"example, if you have installed distributions that provide the modules " +"``myapp.plugins.a`` and ``myapp.plugins.b`` then ``discovered_plugins`` in " +"this case would be:" +msgstr "" +"ການລະບຸ ``myapp.plugins.__path__`` ໃຫ້ກັບ :func:`~pkgutil.iter_modules` " +"ຈະເຮັດໃຫ້ມັນຊອກຫາສະເພາະໂມດູນທີ່ຢູ່ພາຍໃຕ້ namespace ນັ້ນໂດຍກົງ. ຕົວຢ່າງ: " +"ຖ້າທ່ານຕິດຕັ້ງຊຸດແຈກຢາຍທີ່ໃຫ້ໂມດູນ ``myapp.plugins.a`` ແລະ ``myapp.plugins.b``, ແລ້ວ " +"``discovered_plugins`` ໃນກໍລະນີນັ້ນຈະເປັນ:" + +#: ../source/guides/creating-and-discovering-plugins.rst:100 +msgid "" +"This sample uses a sub-package as the namespace package (``myapp.plugins``), " +"but it's also possible to use a top-level package for this purpose (such as " +"``myapp_plugins``). How to pick the namespace to use is a matter of " +"preference, but it's not recommended to make your project's main top-level " +"package (``myapp`` in this case) a namespace package for the purpose of " +"plugins, as one bad plugin could cause the entire namespace to break which " +"would in turn make your project unimportable. For the \"namespace sub-" +"package\" approach to work, the plugin packages must omit " +"the :file:`__init__.py` for your top-level package directory (``myapp`` in " +"this case) and include the namespace-package style :file:`__init__.py` in " +"the namespace sub-package directory (``myapp/plugins``). This also means " +"that plugins will need to explicitly pass a list of packages " +"to :func:`setup`'s ``packages`` argument instead of " +"using :func:`setuptools.find_packages`." +msgstr "" +"ຕົວຢ່າງນີ້ໃຊ້ແພັກເກດຍ່ອຍເປັນແພັກເກດແບບ namespace (``myapp.plugins``), " +"ແຕ່ມັນກໍເປັນໄປໄດ້ທີ່ຈະໃຊ້ແພັກເກດລະດັບສູງສຸດເພື່ອຈຸດປະສົງນີ້ (ເຊັ່ນ ``myapp_plugins``). ການເລືອກໃຊ້ " +"namespace ແບບໃດແມ່ນຂຶ້ນກັບຄວາມມັກ, ແຕ່ບໍ່ແນະນຳໃຫ້ເຮັດໃຫ້ແພັກເກດຫຼັກລະດັບສູງສຸດຂອງໂຄງການ " +"(ໃນກໍລະນີນີ້ຄື ``myapp``) ເປັນແພັກເກດແບບ namespace ເພື່ອໃຊ້ເປັນປລັກອິນ, " +"ເພາະຖ້າມີປລັກອິນໃດໜຶ່ງທີ່ບໍ່ດີ ມັນອາດຈະເຮັດໃຫ້ທັງໝົດຂອງ namespace ເພພັງ ແລະ " +"ສົ່ງຜົນໃຫ້ໂຄງການຂອງທ່ານບໍ່ສາມາດນຳເຂົ້າໄດ້. ເພື່ອໃຫ້ວິທີ \"ແພັກເກດຍ່ອຍແບບ namespace\" " +"ເຮັດວຽກໄດ້, ແພັກເກດປລັກອິນຈະຕ້ອງບໍ່ມີໄຟລ໌ :file:`__init__.py` " +"ໃນໄດເຣັກທໍຣີແພັກເກດລະດັບສູງສຸດຂອງທ່ານ (ໃນກໍລະນີນີ້ຄື ``myapp``) ແລະ " +"ຕ້ອງລວມເອົາ :file:`__init__.py` ແບບ namespace-package ໄວ້ໃນໄດເຣັກທໍຣີແພັກເກດຍ່ອຍ " +"(``myapp/plugins``). ນີ້ຍັງໝາຍຄວາມວ່າປລັກອິນຈະຕ້ອງສົ່ງລາຍຊື່ແພັກເກດໃຫ້ກັບອາກິວເມນ " +"(argument) ``packages`` ຂອງ :func:`setup` ໂດຍກົງ " +"ແທນທີ່ຈະໃຊ້ :func:`setuptools.find_packages`." + +#: ../source/guides/creating-and-discovering-plugins.rst:114 +msgid "" +"Namespace packages are a complex feature and there are several different " +"ways to create them. It's highly recommended to read the :doc:`packaging-" +"namespace-packages` documentation and clearly document which approach is " +"preferred for plugins to your project." +msgstr "" +"ແພັກເກດແບບ namespace ແມ່ນຟີເຈີທີ່ຊັບຊ້ອນ ແລະ ມີຫຼາຍວິທີໃນການສ້າງ. " +"ແນະນຳຢ່າງຍິ່ງໃຫ້ອ່ານເອກະສານ :doc:`packaging-namespace-packages` ແລະ " +"ຂຽນເອກະສານໃຫ້ຊັດເຈນວ່າວິທີໃດທີ່ເໝາະສົມສຳລັບປລັກອິນໃນໂຄງການຂອງທ່ານ." + +#: ../source/guides/creating-and-discovering-plugins.rst:122 +msgid "Using package metadata" +msgstr "ການໃຊ້ເມຕາດາຕາຂອງແພັກເກດ" + +#: ../source/guides/creating-and-discovering-plugins.rst:124 +msgid "" +"Packages can have metadata for plugins described in the :ref:`entry-points`. " +"By specifying them, a package announces that it contains a specific kind of " +"plugin. Another package supporting this kind of plugin can use the metadata " +"to discover that plugin." +msgstr "" +"ແພັກເກດສາມາດມີເມຕາດາຕາສຳລັບປລັກອິນທີ່ຖືກອະທິບາຍໄວ້ໃນ :ref:`entry-points`. " +"ໂດຍການລະບຸພວກມັນ, ແພັກເກດຈະບອກໃຫ້ຮູ້ວ່າມັນປະກອບດ້ວຍປລັກອິນປະເພດໃດໜຶ່ງ. " +"ແພັກເກດອື່ນທີ່ຮອງຮັບປລັກອິນປະເພດນັ້ນກໍຈະສາມາດໃຊ້ເມຕາດາຕານີ້ເພື່ອຄົ້ນຫາປລັກອິນດັ່ງກ່າວໄດ້." + +#: ../source/guides/creating-and-discovering-plugins.rst:128 +msgid "" +"For example if you have a package named ``myapp-plugin-a`` and it includes " +"the following in its ``pyproject.toml``:" +msgstr "" +"ຕົວຢ່າງ: ຖ້າທ່ານມີແພັກເກດຊື່ ``myapp-plugin-a`` ແລະ ມັນລວມເອົາສິ່ງຕໍ່ໄປນີ້ໄວ້ໃນ " +"``pyproject.toml``:" + +#: ../source/guides/creating-and-discovering-plugins.rst:136 +msgid "" +"Then you can discover and load all of the registered entry points by " +"using :func:`importlib.metadata.entry_points` (or the backport_ " +"``importlib_metadata >= 3.6`` for Python 3.6-3.9):" +msgstr "" +"ຈາກນັ້ນທ່ານສາມາດຄົ້ນຫາ ແລະ ໂຫຼດທຸກ entry points " +"ທີ່ລົງທະບຽນໄວ້ໄດ້ໂດຍໃຊ້ :func:`importlib.metadata.entry_points` (ຫຼື backport_ " +"``importlib_metadata >= 3.6`` ສຳລັບ Python 3.6-3.9):" + +#: ../source/guides/creating-and-discovering-plugins.rst:151 +msgid "" +"In this example, ``discovered_plugins`` would be a collection of " +"type :class:`importlib.metadata.EntryPoint`:" +msgstr "" +"ໃນຕົວຢ່າງນີ້, ``discovered_plugins`` " +"ຈະເປັນກຸ່ມຂອງຂໍ້ມູນປະເພດ :class:`importlib.metadata.EntryPoint`:" + +#: ../source/guides/creating-and-discovering-plugins.rst:160 +msgid "" +"Now the module of your choice can be imported by executing " +"``discovered_plugins['a'].load()``." +msgstr "" +"ຕອນນີ້ໂມດູນທີ່ທ່ານເລືອກສາມາດຖືກນຳເຂົ້າໄດ້ໂດຍການລັນຄຳສັ່ງ " +"``discovered_plugins['a'].load()``." + +#: ../source/guides/creating-and-discovering-plugins.rst:163 +msgid "" +"The ``entry_point`` specification in :file:`setup.py` is fairly flexible and " +"has a lot of options. It's recommended to read over the entire section " +"on :doc:`entry points ` ." +msgstr "" +"ຂໍ້ກຳນົດ ``entry_point`` ໃນ :file:`setup.py` ແມ່ນມີຄວາມຢືດຢຸ່ນ ແລະ ມີຕົວເລືອກຫຼາຍຢ່າງ. " +"ແນະນຳໃຫ້ອ່ານທັງໝົດໃນພາກ :doc:`entry points `." + +#: ../source/guides/creating-and-discovering-plugins.rst:167 +#, fuzzy +#| msgid "" +#| "Since this specification is part of the :doc:`standard library " +#| "`, most packaging tools other than " +#| "setuptools provide support for defining entry points." +msgid "" +"Since this specification is part of the :doc:`standard library " +"`, packaging tools including setuptools " +"provide support for defining entry points." +msgstr "" +"ເນື່ອງຈາກຂໍ້ກຳນົດນີ້ເປັນສ່ວນໜຶ່ງຂອງ :doc:`ໄລບຣາຣີມາດຕະຖານ `, ເຄື່ອງມືການຈັດເຮັດແພັກເກດສ່ວນໃຫຍ່ນອກຈາກ setuptools " +"ກໍໃຫ້ການຮອງຮັບການກຳນົດ entry points ຄືກັນ." + +#: ../source/guides/creating-command-line-tools.rst:5 +msgid "Creating and packaging command-line tools" +msgstr "ການສ້າງ ແລະ ການຈັດເຮັດແພັກເກດສຳລັບເຄື່ອງມືແບບບັນທັດຄຳສັ່ງ" + +#: ../source/guides/creating-command-line-tools.rst:7 +msgid "" +"This guide will walk you through creating and packaging a standalone command-" +"line application that can be installed with :ref:`pipx`, a tool for creating " +"and managing :term:`Python Virtual Environments ` and " +"exposing the executable scripts of packages (and available manual pages) for " +"use on the command-line." +msgstr "" +"ຄູ່ມືນີ້ຈະພາທ່ານໄປເບິ່ງຂັ້ນຕອນການສ້າງ ແລະ ການຈັດເຮັດແພັກເກດສຳລັບແອັບພລິເຄຊັນແບບບັນທັດຄຳສັ່ງ " +"(command-line) ແບບ standalone ທີ່ສາມາດຕິດຕັ້ງໄດ້ດ້ວຍ :ref:`pipx`, " +"ເຊິ່ງເປັນເຄື່ອງມືສຳລັບສ້າງ ແລະ ຈັດການ :term:`ສະພາບແວດລ້ອມສະເໝືອນ (Virtual Environment) " +"` ຂອງ Python ແລະ ເປີດໃຊ້ສະຄຣິບທີ່ສາມາດລັນໄດ້ຂອງແພັກເກດ " +"(ລວມເຖິງໜ້າຄູ່ມື manual pages ທີ່ມີຢູ່) ເພື່ອໃຊ້ງານໃນບັນທັດຄຳສັ່ງ." + +#: ../source/guides/creating-command-line-tools.rst:12 +msgid "Creating the package" +msgstr "ການສ້າງແພັກເກດ" + +#: ../source/guides/creating-command-line-tools.rst:14 +msgid "" +"First of all, create a source tree for the :term:`project `. For " +"the sake of an example, we'll build a simple tool outputting a greeting (a " +"string) for a person based on arguments given on the command-line." +msgstr "" +"ກ່ອນອື່ນໝົດ, ໃຫ້ສ້າງຊອດໂຄ້ດຕົ້ນສະບັບ (source tree) ສຳລັບ :term:`ໂຄງການ `. " +"ເພື່ອເປັນຕົວຢ່າງ, ພວກເຮົາຈະສ້າງເຄື່ອງມືງ່າຍໆທີ່ຈະສະແດງຄຳທັກທາຍ (ຂໍ້ຄວາມ) " +"ໃຫ້ກັບບຸກຄົນໂດຍອີງຕາມອາກິວເມນທີ່ລະບຸໃນບັນທັດຄຳສັ່ງ." + +#: ../source/guides/creating-command-line-tools.rst:17 +#: ../source/guides/tool-recommendations.rst:45 +msgid "Todo" +msgstr "Todo" + +#: ../source/guides/creating-command-line-tools.rst:17 +msgid "" +"Advise on the optimal structure of a Python package in another guide or " +"discussion and link to it here." +msgstr "ແນະນຳກ່ຽວກັບໂຄງສ້າງທີ່ດີທີ່ສຸດຂອງແພັກເກດ Python ໃນຄູ່ມື ຫຼື ການສົນທະນາອື່ນ ແລະ ເພີ່ມລິ້ງທີ່ນີ້." + +#: ../source/guides/creating-command-line-tools.rst:19 +msgid "" +"This project will adhere to :ref:`src-layout ` " +"and in the end be alike this file tree, with the top-level folder and " +"package name ``greetings``:" +msgstr "" +"ໂຄງການນີ້ຈະປະຕິບັດຕາມ :ref:`src-layout ` ແລະ " +"ສຸດທ້າຍຈະມີໂຄງສ້າງໄຟລ໌ແບບນີ້, ໂດຍມີໂຟນເດີລະດັບສູງສຸດ ແລະ ຊື່ແພັກເກດວ່າ ``greetings``:" + +#: ../source/guides/creating-command-line-tools.rst:33 +msgid "" +"The actual code responsible for the tool's functionality will be stored in " +"the file :file:`greet.py`, named after the main module:" +msgstr "" +"ໂຄ້ດຕົວຈິງທີ່ເຮັດໜ້າທີ່ໃນການເຮັດວຽກຂອງເຄື່ອງມືຈະຖືກເກັບໄວ້ໃນໄຟລ໌ :file:`greet.py`, " +"ເຊິ່ງຕັ້ງຊື່ຕາມໂມດູນຫຼັກ:" + +#: ../source/guides/creating-command-line-tools.rst:62 +msgid "" +"The above function receives several keyword arguments that determine how the " +"greeting to output is constructed. Now, construct the command-line interface " +"to provision it with the same, which is done in :file:`cli.py`:" +msgstr "" +"ຟັງຊັນຂ້າງເທິງຈະຮັບອາກິວເມນຫຼາຍຢ່າງເພື່ອເລືອກວິທີສ້າງຄຳທັກທາຍທີ່ຈະສະແດງ. ຕອນນີ້, ໃຫ້ສ້າງ " +"interface ແບບບັນທັດຄຳສັ່ງເພື່ອສົ່ງຄ່າເຫຼົ່ານັ້ນເຂົ້າໄປ, ເຊິ່ງຈະເຮັດໃນໄຟລ໌ :file:`cli.py`:" + +#: ../source/guides/creating-command-line-tools.rst:80 +msgid "" +"The command-line interface is built with typer_, an easy-to-use CLI parser " +"based on Python type hints. It provides auto-completion and nicely styled " +"command-line help out of the box. Another option would " +"be :py:mod:`argparse`, a command-line parser which is included in Python's " +"standard library. It is sufficient for most needs, but requires a lot of " +"code, usually in ``cli.py``, to function properly. Alternatively, docopt_ " +"makes it possible to create CLI interfaces based solely on docstrings; " +"advanced users are encouraged to make use of click_ (on which ``typer`` is " +"based)." +msgstr "" +"ອິນເຕີເຟດແບບຄຳສັ່ງ (command-line interface) ຖືກສ້າງຂຶ້ນດ້ວຍ typer_, ເຊິ່ງເປັນຕົວວິເຄາະ CLI " +"ທີ່ໃຊ້ງ່າຍໂດຍອີງໃສ່ Python type hints. ມັນມີລະບົບຕື່ມຄຳສັ່ງອັດຕະໂນມັດ ແລະ " +"ການຊ່ວຍເຫຼືອແບບຄຳສັ່ງທີ່ສວຍງາມມາໃຫ້ພ້ອມໃຊ້ງານເລີຍ. ອີກທາງເລືອກໜຶ່ງແມ່ນ :py:mod:`argparse`, " +"ເຊິ່ງເປັນຕົວວິເຄາະແບບຄຳສັ່ງທີ່ລວມຢູ່ໃນໄລບຣາຣີມາດຕະຖານຂອງ Python. " +"ມັນພຽງພໍສຳລັບຄວາມຕ້ອງການສ່ວນໃຫຍ່, ແຕ່ຕ້ອງໃຊ້ໂຄດຫຼາຍ, ໂດຍປົກກະຕິແມ່ນຢູ່ໃນ ``cli.py``, " +"ເພື່ອໃຫ້ເຮັດວຽກໄດ້ຢ່າງຖືກຕ້ອງ. ນອກຈາກນັ້ນ, docopt_ ເຮັດໃຫ້ສາມາດສ້າງອິນເຕີເຟດ CLI ໂດຍອີງໃສ່ " +"docstrings ພຽງຢ່າງດຽວ; ຜູ້ໃຊ້ລະດັບສູງແມ່ນໄດ້ຮັບການແນະນຳໃຫ້ໃຊ້ click_ (ເຊິ່ງເປັນພື້ນຖານຂອງ " +"``typer``)." + +#: ../source/guides/creating-command-line-tools.rst:86 +msgid "" +"Now, add an empty :file:`__init__.py` file, to define the project as a " +"regular :term:`import package `." +msgstr "" +"ຕອນນີ້, ໃຫ້ເພີ່ມໄຟລ໌ :file:`__init__.py` ຫວ່າງເປົ່າ " +"ເພື່ອກຳນົດໃຫ້ໂຄງການເປັນ :term:`ແພັກເກດນຳເຂົ້າ (Import Package) ` " +"ປົກກະຕິ." + +#: ../source/guides/creating-command-line-tools.rst:88 +msgid "" +"The file :file:`__main__.py` marks the main entry point for the application " +"when running it via :mod:`runpy` (i.e. ``python -m greetings``, which works " +"immediately with flat layout, but requires installation of the package with " +"src layout), so initialize the command-line interface here:" +msgstr "" +"ໄຟລ໌ :file:`__main__.py` ຈະເປັນຈຸດເລີ່ມຕົ້ນຫຼັກຂອງແອັບພລິເຄຊັນເມື່ອລັນຜ່ານ :mod:`runpy` (ເຊັ່ນ " +"``python -m greetings``, ເຊິ່ງຈະໃຊ້ງານໄດ້ທັນທີກັບ flat layout, " +"ແຕ່ຕ້ອງການການຕິດຕັ້ງແພັກເກດກ່ອນສຳລັບ src layout), ດັ່ງນັ້ນໃຫ້ເລີ່ມຕົ້ນ interface " +"ແບບບັນທັດຄຳສັ່ງຢູ່ບ່ອນນີ້:" + +#: ../source/guides/creating-command-line-tools.rst:100 +msgid "" +"In order to enable calling the command-line interface directly from " +"the :term:`source tree `, i.e. as ``python src/" +"greetings``, a certain hack could be placed in this file; read more " +"at :ref:`running-cli-from-source-src-layout`." +msgstr "" +"ເພື່ອໃຫ້ສາມາດເອີ້ນໃຊ້ interface ແບບບັນທັດຄຳສັ່ງໄດ້ໂດຍກົງຈາກ :term:`ຊອດໂຄ້ດຕົ້ນສະບັບ `, ເຊັ່ນ ``python src/greetings``, ອາດຈະຕ້ອງໃຊ້ເຕັກນິກບາງຢ່າງໃນໄຟລ໌ນີ້; " +"ອ່ານເພີ່ມເຕີມໄດ້ທີ່ :ref:`running-cli-from-source-src-layout`." + +#: ../source/guides/creating-command-line-tools.rst:106 +msgid "``pyproject.toml``" +msgstr "``pyproject.toml``" + +#: ../source/guides/creating-command-line-tools.rst:108 +msgid "" +"The project's :term:`metadata ` is placed " +"in :term:`pyproject.toml`. The :term:`pyproject metadata keys ` and the ``[build-system]`` table may be filled in as " +"described in :ref:`writing-pyproject-toml`, adding a dependency on ``typer`` " +"(this tutorial uses version *0.12.3*)." +msgstr "" +":term:`ເມຕາດາຕາ ` " +"ຂອງໂຄງການຈະຖືກວາງໄວ້ໃນ :term:`pyproject.toml`. ສາມາດຕື່ມ :term:`ຄີເມຕາດາຕາຂອງ " +"pyproject (Pyproject Metadata Key) ` ແລະ ຕາຕະລາງ " +"``[build-system]`` ຕາມທີ່ອະທິບາຍໄວ້ໃນ :ref:`writing-pyproject-toml`, ໂດຍເພີ່ມ " +"dependency ຂອງ ``typer`` ເຂົ້າໄປ (ບົດຮຽນນີ້ໃຊ້ເວີຊັນ *0.12.3*)." + +#: ../source/guides/creating-command-line-tools.rst:111 +msgid "" +"For the project to be recognised as a command-line tool, additionally a " +"``console_scripts`` :ref:`entry point ` " +"(see :ref:`console_scripts`) needs to be added as a :term:`subkey `:" +msgstr "" +"ເພື່ອໃຫ້ໂຄງການຖືກຮັບຮູ້ວ່າເປັນເຄື່ອງມືແບບບັນທັດຄຳສັ່ງ, ຈຳເປັນຕ້ອງເພີ່ມ :ref:`entry point ` ແບບ ``console_scripts`` (ເບິ່ງ :ref:`console_scripts`) " +"ເປັນ :term:`ຄີຍ່ອຍ (subkey) `:" + +#: ../source/guides/creating-command-line-tools.rst:118 +msgid "" +"Now, the project's source tree is ready to be transformed into " +"a :term:`distribution package `, which makes it " +"installable." +msgstr "" +"ຕອນນີ້, ຊອດໂຄ້ດຕົ້ນສະບັບຂອງໂຄງການພ້ອມແລ້ວທີ່ຈະຖືກປ່ຽນໃຫ້ເປັນ :term:`ຊຸດແຈກຢາຍ (distribution " +"package) `, ເຊິ່ງຈະເຮັດໃຫ້ມັນສາມາດຕິດຕັ້ງໄດ້." + +#: ../source/guides/creating-command-line-tools.rst:123 +msgid "Installing the package with ``pipx``" +msgstr "ການຕິດຕັ້ງແພັກເກດດ້ວຍ ``pipx``" + +#: ../source/guides/creating-command-line-tools.rst:125 +msgid "" +"After installing ``pipx`` as described in :ref:`installing-stand-alone-" +"command-line-tools`, install your project:" +msgstr "" +"ຫຼັງຈາກຕິດຕັ້ງ ``pipx`` ຕາມທີ່ອະທິບາຍໃນ :ref:`installing-stand-alone-command-line-" +"tools`, ໃຫ້ຕິດຕັ້ງໂຄງການຂອງທ່ານ:" + +#: ../source/guides/creating-command-line-tools.rst:132 +msgid "" +"This will expose the executable script we defined as an entry point and make " +"the command ``greet`` available. Let's test it:" +msgstr "" +"ສິ່ງນີ້ຈະເຮັດໃຫ້ສະຄຣິບທີ່ເຮົາກຳນົດໄວ້ໃນ entry point ສາມາດລັນໄດ້ ແລະ ເຮັດໃຫ້ມີຄຳສັ່ງ ``greet`` " +"ໃຫ້ໃຊ້ງານ. ລອງທົດສອບເບິ່ງ:" + +#: ../source/guides/creating-command-line-tools.rst:146 +msgid "" +"Since this example uses ``typer``, you could now also get an overview of the " +"program's usage by calling it with the ``--help`` option, or configure " +"completions via the ``--install-completion`` option." +msgstr "" +"ເນື່ອງຈາກຕົວຢ່າງນີ້ໃຊ້ ``typer``, " +"ຕອນນີ້ທ່ານສາມາດເບິ່ງພາບລວມຂອງວິທີໃຊ້ໂປຣແກຣມໄດ້ໂດຍການເອີ້ນໃຊ້ດ້ວຍຕົວເລືອກ ``--help``, ຫຼື " +"ຕັ້ງຄ່າການຕື່ມຄຳອັດຕະໂນມັດຜ່ານຕົວເລືອກ ``--install-completion``." + +#: ../source/guides/creating-command-line-tools.rst:149 +msgid "" +"To just run the program without installing it permanently, use ``pipx run``, " +"which will create a temporary (but cached) virtual environment for it:" +msgstr "" +"ຖ້າຕ້ອງການພຽງແຕ່ລັນໂປຣແກຣມໂດຍບໍ່ຕ້ອງຕິດຕັ້ງແບບຖາວອນ, ໃຫ້ໃຊ້ ``pipx run``, " +"ເຊິ່ງມັນຈະສ້າງສະພາບແວດລ້ອມສະເໝືອນຊົ່ວຄາວ (ແຕ່ມີການ cache ໄວ້) ໃຫ້ກັບໂປຣແກຣມ:" + +#: ../source/guides/creating-command-line-tools.rst:156 +msgid "" +"This syntax is a bit impractical, however; as the name of the entry point we " +"defined above does not match the package name, we need to state explicitly " +"which executable script to run (even though there is only one in existence)." +msgstr "" +"ແນວໃດກໍຕາມ, ວິທີນີ້ອາດຈະບໍ່ສະດວກປານໃດ; ເນື່ອງຈາກຊື່ຂອງ entry point " +"ທີ່ເຮົາກຳນົດໄວ້ຂ້າງເທິງບໍ່ກົງກັບຊື່ແພັກເກດ, ເຮົາຈຶ່ງຕ້ອງລະບຸໃຫ້ຊັດເຈນວ່າຈະລັນສະຄຣິບໃດ " +"(ເຖິງແມ່ນວ່າມັນຈະມີພຽງອັນດຽວກໍຕາມ)." + +#: ../source/guides/creating-command-line-tools.rst:159 +msgid "" +"There is, however, a more practical solution to this problem, in the form of " +"an entry point specific to ``pipx run``. The same can be defined as follows " +"in :file:`pyproject.toml`:" +msgstr "" +"ແຕ່ຍັງມີວິທີແກ້ໄຂທີ່ສະດວກກວ່າ, ຄືການໃຊ້ entry point ສະເພາະສຳລັບ ``pipx run``. " +"ສາມາດກຳນົດໄດ້ດັ່ງນີ້ໃນ :file:`pyproject.toml`:" + +#: ../source/guides/creating-command-line-tools.rst:168 +msgid "" +"Thanks to this entry point (which *must* match the package name), ``pipx`` " +"will pick up the executable script as the default one and run it, which " +"makes this command possible:" +msgstr "" +"ຍ້ອນມີ entry point ນີ້ (ເຊິ່ງ *ຕ້ອງ* ກົງກັບຊື່ແພັກເກດ), ``pipx`` ຈະເລືອກສະຄຣິບນັ້ນເປັນຄ່າເລີ່ມຕົ້ນ " +"ແລະ ລັນມັນທັນທີ, ເຊິ່ງເຮັດໃຫ້ສາມາດໃຊ້ຄຳສັ່ງນີ້ໄດ້:" + +#: ../source/guides/creating-command-line-tools.rst:176 +msgid "Conclusion" +msgstr "ສະຫຼຸບ" + +#: ../source/guides/creating-command-line-tools.rst:178 +msgid "" +"You know by now how to package a command-line application written in Python. " +"A further step could be to distribute your package, meaning uploading it to " +"a :term:`package index `, most commonly :term:`PyPI `. To do that, follow the instructions " +"at :ref:`Packaging your project`. And once you're done, don't forget " +"to :ref:`do some research ` on how your " +"package is received!" +msgstr "" +"ຕອນນີ້ທ່ານຮູ້ແລ້ວວ່າຈະຈັດເຮັດແພັກເກດສຳລັບແອັບພລິເຄຊັນແບບບັນທັດຄຳສັ່ງທີ່ຂຽນດ້ວຍ Python ແນວໃດ. " +"ຂັ້ນຕອນຕໍ່ໄປອາດຈະເປັນການແຈກຢາຍແພັກເກດຂອງທ່ານ, " +"ເຊິ່ງໝາຍເຖິງການອັບໂຫຼດໄປຍັງ :term:`ດັດຊະນີແພັກເກດ `, " +"ເຊິ່ງໂດຍທົ່ວໄປແມ່ນ :term:`PyPI `. ໃນການເຮັດສິ່ງນັ້ນ, " +"ໃຫ້ປະຕິບັດຕາມຄຳແນະນຳທີ່ :ref:`ການຈັດເຮັດແພັກເກດໃຫ້ໂຄງການຂອງທ່ານ`. ແລະ ເມື່ອສຳເລັດແລ້ວ, " +"ຢ່າລືມ :ref:`ວິໄຈ ` " +"ເບິ່ງວ່າແພັກເກດຂອງທ່ານໄດ້ຮັບການຕອບຮັບແນວໃດ!" + +#: ../source/guides/distributing-packages-using-setuptools.rst:5 +msgid "Packaging and distributing projects" +msgstr "ການຈັດເຮັດແພັກເກດ ແລະ ການແຈກຢາຍໂຄງການ" + +#: ../source/guides/distributing-packages-using-setuptools.rst:7 +msgid "Outdated" +msgstr "ຫຼ້າສະໄໝ" + +#: ../source/guides/distributing-packages-using-setuptools.rst:8 +msgid "2023-12-14" +msgstr "2023-12-14" + +#: ../source/guides/distributing-packages-using-setuptools.rst:10 +msgid "" +"This section covers some additional details on configuring, packaging and " +"distributing Python projects with ``setuptools`` that aren't covered by the " +"introductory tutorial in :doc:`/tutorials/packaging-projects`. It still " +"assumes that you are already familiar with the contents of the :doc:`/" +"tutorials/installing-packages` page." +msgstr "" +"ພາກນີ້ກວມເອົາລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບການກຳນົດຄ່າ, ການຈັດເຮັດແພັກເກດ ແລະ ການແຈກຢາຍໂຄງການ " +"Python ດ້ວຍ ``setuptools`` ເຊິ່ງບໍ່ໄດ້ຖືກເວົ້າເຖິງໃນບົດຮຽນເບື້ອງຕົ້ນໃນ :doc:`/tutorials/" +"packaging-projects`. ມັນຍັງຄົງສົມມຸດວ່າທ່ານມີຄວາມຄຸ້ນເຄີຍກັບເນື້ອໃນຂອງໜ້າ :doc:`/tutorials/" +"installing-packages` ແລ້ວ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:16 +msgid "" +"The section does *not* aim to cover best practices for Python project " +"development as a whole. For example, it does not provide guidance or tool " +"recommendations for version control, documentation, or testing." +msgstr "" +"ພາກນີ້ *ບໍ່ໄດ້* ມີຈຸດປະສົງເພື່ອໃຫ້ຂໍ້ມູນກ່ຽວກັບວິທີການທີ່ດີທີ່ສຸດ (best practices) " +"ສຳລັບການພັດທະນາໂຄງການ Python ໂດຍລວມ. ຕົວຢ່າງເຊັ່ນ ມັນບໍ່ໄດ້ໃຫ້ຄຳແນະນຳ ຫຼື " +"ເຄື່ອງມືແນະນຳສຳລັບການຄວບຄຸມເວີຊັນ, ການເຮັດເອກະສານ, ຫຼື ການທົດສອບ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:20 +msgid "" +"For more reference material, see :std:doc:`Building and Distributing " +"Packages ` in the :ref:`setuptools` docs, but " +"note that some advisory content there may be outdated. In the event of " +"conflicts, prefer the advice in the Python Packaging User Guide." +msgstr "" +"ສຳລັບເອກະສານອ້າງອີງເພີ່ມເຕີມ, ເບິ່ງ :std:doc:`Building and Distributing Packages " +"` ໃນເອກະສານຂອງ :ref:`setuptools`, " +"ແຕ່ໃຫ້ສັງເກດວ່າບາງເນື້ອໃນທີ່ແນະນຳຢູ່ທີ່ນັ້ນອາດຈະຫຼ້າສະໄໝ. ໃນກໍລະນີທີ່ມີຂໍ້ມູນຂັດແຍ່ງກັນ, " +"ໃຫ້ຍຶດຕາມຄຳແນະນຳໃນ Python Packaging User Guide ເປັນຫຼັກ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:28 +msgid "Requirements for packaging and distributing" +msgstr "ຄວາມຕ້ອງການສຳລັບການຈັດເຮັດແພັກເກດ ແລະ ການແຈກຢາຍ" + +#: ../source/guides/distributing-packages-using-setuptools.rst:29 +msgid "" +"First, make sure you have already fulfilled the :ref:`requirements for " +"installing packages `." +msgstr "" +"ທຳອິດ, ໃຫ້ແນ່ໃຈວ່າທ່ານໄດ້ປະຕິບັດຕາມ :ref:`ຄວາມຕ້ອງການສຳລັບການຕິດຕັ້ງແພັກເກດ " +"` ຮຽບຮ້ອຍແລ້ວ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:32 +msgid "Install \"twine\" [1]_:" +msgstr "ຕິດຕັ້ງ \"twine\" [1]_:" + +#: ../source/guides/distributing-packages-using-setuptools.rst:46 +msgid "" +"You'll need this to upload your project :term:`distributions ` to :term:`PyPI ` (see :ref:`below " +"`)." +msgstr "" +"ທ່ານຈະຕ້ອງໃຊ້ສິ່ງນີ້ເພື່ອອັບໂຫຼດ :term:`ຊຸດແຈກຢາຍ (distributions) ` ຂອງໂຄງການຂອງທ່ານໄປຍັງ :term:`PyPI ` " +"(ເບິ່ງ :ref:`ດ້ານລຸ່ມ `)." + +#: ../source/guides/distributing-packages-using-setuptools.rst:52 +msgid "Configuring your project" +msgstr "ການກຳນົດຄ່າໂຄງການຂອງທ່ານ" + +#: ../source/guides/distributing-packages-using-setuptools.rst:56 +msgid "Initial files" +msgstr "ໄຟລ໌ເລີ່ມຕົ້ນ" + +#: ../source/guides/distributing-packages-using-setuptools.rst:61 +msgid "" +"The most important file is :file:`setup.py` which exists at the root of your " +"project directory. For an example, see the `setup.py `_ " +"in the `PyPA sample project `_." +msgstr "" +"ໄຟລ໌ທີ່ສຳຄັນທີ່ສຸດແມ່ນ :file:`setup.py` ເຊິ່ງຢູ່ທີ່ຮາກ (root) ຂອງໄດເຣັກທໍຣີໂຄງການຂອງທ່ານ. " +"ສຳລັບຕົວຢ່າງ, ສາມາດເບິ່ງໄດ້ທີ່ `setup.py `_ ໃນ `ໂຄງການຕົວຢ່າງຂອງ PyPA " +"`_." + +#: ../source/guides/distributing-packages-using-setuptools.rst:66 +msgid ":file:`setup.py` serves two primary functions:" +msgstr ":file:`setup.py` ເຮັດໜ້າທີ່ຫຼັກສອງຢ່າງ:" + +#: ../source/guides/distributing-packages-using-setuptools.rst:68 +msgid "" +"It's the file where various aspects of your project are configured. The " +"primary feature of :file:`setup.py` is that it contains a global ``setup()`` " +"function. The keyword arguments to this function are how specific details " +"of your project are defined. The most relevant arguments are explained " +"in :ref:`the section below `." +msgstr "" +"ມັນແມ່ນໄຟລ໌ທີ່ໃຊ້ກຳນົດຄ່າຕ່າງໆຂອງໂຄງການ. ຄຸນລັກສະນະຫຼັກຂອງ :file:`setup.py` " +"ແມ່ນມັນປະກອບດ້ວຍຟັງຊັນ ``setup()``. ອາກິວເມນ (keyword arguments) " +"ຂອງຟັງຊັນນີ້ແມ່ນວິທີທີ່ໃຊ້ລະບຸລາຍລະອຽດສະເພາະຂອງໂຄງການ. " +"ອາກິວເມນທີ່ກ່ຽວຂ້ອງທີ່ສຸດຈະຖືກອະທິບາຍໃນ :ref:`ພາກສ່ວນດ້ານລຸ່ມ `." + +#: ../source/guides/distributing-packages-using-setuptools.rst:74 +msgid "" +"It's the command line interface for running various commands that relate to " +"packaging tasks. To get a listing of available commands, run ``python3 " +"setup.py --help-commands``." +msgstr "" +"ມັນເປັນ interface ແບບບັນທັດຄຳສັ່ງສຳລັບລັນຄຳສັ່ງຕ່າງໆທີ່ກ່ຽວຂ້ອງກັບວຽກງານການຈັດເຮັດແພັກເກດ. " +"ເພື່ອເບິ່ງລາຍຊື່ຄຳສັ່ງທີ່ມີຢູ່, ໃຫ້ລັນ ``python3 setup.py --help-commands``." + +#: ../source/guides/distributing-packages-using-setuptools.rst:82 +msgid "" +":file:`setup.cfg` is an ini file that contains option defaults " +"for :file:`setup.py` commands. For an example, see the `setup.cfg `_ in the `PyPA sample project `_." +msgstr "" +":file:`setup.cfg` ແມ່ນໄຟລ໌ ini ທີ່ປະກອບດ້ວຍຄ່າເລີ່ມຕົ້ນສຳລັບຄຳສັ່ງໃນ :file:`setup.py`. " +"ສຳລັບຕົວຢ່າງ, ເບິ່ງ `setup.cfg `_ ໃນ `ໂຄງການຕົວຢ່າງຂອງ " +"PyPA `_." + +#: ../source/guides/distributing-packages-using-setuptools.rst:89 +msgid "README.rst / README.md" +msgstr "README.rst / README.md" + +#: ../source/guides/distributing-packages-using-setuptools.rst:91 +msgid "" +"All projects should contain a readme file that covers the goal of the " +"project. The most common format is `reStructuredText `_ with an \"rst\" extension, although this " +"is not a requirement; multiple variants of `Markdown `_ are supported as well (look at " +"``setup()``'s :ref:`long_description_content_type ` argument)." +msgstr "" +"ທຸກໆໂຄງການຄວນມີໄຟລ໌ readme ທີ່ບອກເຖິງເປົ້າໝາຍຂອງໂຄງການ. ຮູບແບບທີ່ນິຍົມທີ່ສຸດແມ່ນ " +"`reStructuredText `_ ທີ່ມີນາມສະກຸນ " +"\"rst\", ເຖິງວ່າຈະບໍ່ແມ່ນຂໍ້ບັງຄັບ; ຮູບແບບຕ່າງໆຂອງ `Markdown `_ ກໍໄດ້ຮັບການຮອງຮັບເຊັ່ນກັນ " +"(ເບິ່ງອາກິວເມນ :ref:`long_description_content_type ` ຂອງ " +"``setup()``)." + +#: ../source/guides/distributing-packages-using-setuptools.rst:98 +msgid "" +"For an example, see `README.md `_ from the `PyPA sample project `_." +msgstr "" +"ສຳລັບຕົວຢ່າງ, ເບິ່ງ `README.md `_ ຈາກ `ໂຄງການຕົວຢ່າງຂອງ PyPA `_." + +#: ../source/guides/distributing-packages-using-setuptools.rst:102 +msgid "" +"Projects using :ref:`setuptools` 0.6.27+ have standard readme files " +"(:file:`README.rst`, :file:`README.txt`, or :file:`README`) included in " +"source distributions by default. The built-in :ref:`distutils` library " +"adopts this behavior beginning in Python 3.7. " +"Additionally, :ref:`setuptools` 36.4.0+ will include a :file:`README.md` if " +"found. If you are using setuptools, you don't need to list your readme file " +"in :file:`MANIFEST.in`. Otherwise, include it to be explicit." +msgstr "" +"ໂຄງການທີ່ໃຊ້ :ref:`setuptools` 0.6.27 ຂຶ້ນໄປ ຈະມີໄຟລ໌ readme ມາດຕະຖານ " +"(:file:`README.rst`, :file:`README.txt`, ຫຼື :file:`README`) " +"ລວມຢູ່ໃນຊຸດແຈກຢາຍແບບຊອດໂຄ້ດໂດຍຄ່າເລີ່ມຕົ້ນ. ໄລບຣາຣີ :ref:`distutils` ທີ່ມາກັບ Python " +"ກໍເລີ່ມໃຊ້ພຶດຕິກຳນີ້ຕັ້ງແຕ່ Python 3.7 ເປັນຕົ້ນມາ. ນອກຈາກນີ້, :ref:`setuptools` 36.4.0 ຂຶ້ນໄປ " +"ຈະລວມເອົາ :file:`README.md` ເຂົ້ານຳຖ້າພົບເຫັນ. ຖ້າທ່ານໃຊ້ setuptools, " +"ທ່ານບໍ່ຈຳເປັນຕ້ອງລະບຸໄຟລ໌ readme ໃນ :file:`MANIFEST.in`. ຖ້າບໍ່ດັ່ງນັ້ນ, " +"ໃຫ້ລະບຸໄວ້ເພື່ອຄວາມຊັດເຈນ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:111 +msgid "MANIFEST.in" +msgstr "MANIFEST.in" + +#: ../source/guides/distributing-packages-using-setuptools.rst:113 +msgid "" +"A :file:`MANIFEST.in` is needed when you need to package additional files " +"that are not automatically included in a source distribution. For details " +"on writing a :file:`MANIFEST.in` file, including a list of what's included " +"by default, see \":ref:`Using MANIFEST.in`\"." +msgstr "" +"ໄຟລ໌ :file:`MANIFEST.in` " +"ແມ່ນຈຳເປັນເມື່ອທ່ານຕ້ອງການລວມເອົາໄຟລ໌ເພີ່ມເຕີມທີ່ບໍ່ໄດ້ຖືກລວມເຂົ້າໃນຊຸດແຈກຢາຍແບບຊອດໂຄ້ດໂດຍອັດຕະໂນມັດ. " +"ສຳລັບລາຍລະອຽດການຂຽນໄຟລ໌ :file:`MANIFEST.in`, ລວມເຖິງລາຍຊື່ສິ່ງທີ່ຖືກລວມມາໃຫ້ໂດຍຄ່າເລີ່ມຕົ້ນ, " +"ເບິ່ງ \":ref:`ການໃຊ້ MANIFEST.in`\"." + +#: ../source/guides/distributing-packages-using-setuptools.rst:118 +msgid "" +"However, you may not have to use a :file:`MANIFEST.in`. For an example, the " +"`PyPA sample project `_ has removed " +"its manifest file, since all the necessary files have been included " +"by :ref:`setuptools` 43.0.0 and newer." +msgstr "" +"ແນວໃດກໍຕາມ, ທ່ານອາດບໍ່ຈຳເປັນຕ້ອງໃຊ້ :file:`MANIFEST.in`. ຕົວຢ່າງ: `ໂໂຄງການຕົວຢ່າງຂອງ " +"PyPA `_ ໄດ້ເອົາໄຟລ໌ manifest ອອກແລ້ວ, " +"ເນື່ອງຈາກໄຟລ໌ທີ່ຈຳເປັນທັງໝົດໄດ້ຖືກລວມເຂົ້າໂດຍ :ref:`setuptools` 43.0.0 ແລະ ເວີຊັນໃໝ່ກວ່າ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:123 +msgid "" +":file:`MANIFEST.in` does not affect binary distributions such as wheels." +msgstr ":file:`MANIFEST.in` ບໍ່ມີຜົນຕໍ່ຊຸດແຈກຢາຍແບບໄບນາຣີ ເຊັ່ນ wheels." + +#: ../source/guides/distributing-packages-using-setuptools.rst:126 +msgid "LICENSE.txt" +msgstr "LICENSE.txt" + +#: ../source/guides/distributing-packages-using-setuptools.rst:128 +msgid "" +"Every package should include a license file detailing the terms of " +"distribution. In many jurisdictions, packages without an explicit license " +"can not be legally used or distributed by anyone other than the copyright " +"holder. If you're unsure which license to choose, you can use resources such " +"as `GitHub's Choose a License `_ or consult a " +"lawyer." +msgstr "" +"ທຸກໆແພັກເກດຄວນລວມເອົາໄຟລ໌ໃບອະນຸຍາດທີ່ລະບຸເງື່ອນໄຂການແຈກຢາຍ. ໃນຫຼາຍຂົງເຂດກົດໝາຍ, " +"ແພັກເກດທີ່ບໍ່ມີໃບອະນຸຍາດທີ່ຊັດເຈນຈະບໍ່ສາມາດຖືກໃຊ້ ຫຼື " +"ແຈກຢາຍໄດ້ຢ່າງຖືກກົດໝາຍໂດຍບຸກຄົນອື່ນນອກຈາກເຈົ້າຂອງລິຂະສິດ. ຖ້າທ່ານບໍ່ແນ່ໃຈວ່າຈະເລືອກໃບອະນຸຍາດໃດ, " +"ທ່ານສາມາດໃຊ້ຊັບພະຍາກອນເຊັ່ນ `Choose a License ຂອງ GitHub `_ ຫຼື ປຶກສານັກກົດໝາຍ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:134 +msgid "" +"For an example, see the `LICENSE.txt `_ from the `PyPA sample project `_." +msgstr "" +"ສຳລັບຕົວຢ່າງ, ເບິ່ງ `LICENSE.txt `_ ຈາກ `ໂໂຄງການຕົວຢ່າງຂອງ PyPA `_." + +#: ../source/guides/distributing-packages-using-setuptools.rst:139 +msgid "" +msgstr "" + +#: ../source/guides/distributing-packages-using-setuptools.rst:141 +msgid "" +"Although it's not required, the most common practice is to include your " +"Python modules and packages under a single top-level package that has the " +"same :ref:`name ` as your project, or something very close." +msgstr "" +"ເຖິງແມ່ນວ່າຈະບໍ່ແມ່ນຂໍ້ບັງຄັບ, ແຕ່ວິທີການທົ່ວໄປທີ່ສຸດຄືການລວມເອົາໂມດູນ ແລະ ແພັກເກດ Python " +"ຂອງທ່ານໄວ້ພາຍໃຕ້ແພັກເກດລະດັບສູງສຸດພຽງອັນດຽວ ທີ່ມີ :ref:`ຊື່ ` " +"ດຽວກັນກັບໂຄງການຂອງທ່ານ, ຫຼື ຊື່ທີ່ໃກ້ຄຽງທີ່ສຸດ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:145 +msgid "" +"For an example, see the `sample `_ package that's included in the `PyPA sample project " +"`_." +msgstr "" +"ສຳລັບຕົວຢ່າງ, ເບິ່ງແພັກເກດ `sample `_ ທີ່ລວມຢູ່ໃນ `ໂໂຄງການຕົວຢ່າງຂອງ PyPA `_." + +#: ../source/guides/distributing-packages-using-setuptools.rst:153 +msgid "setup() args" +msgstr "ອາກິວເມນຂອງ setup()" + +#: ../source/guides/distributing-packages-using-setuptools.rst:155 +msgid "" +"As mentioned above, the primary feature of :file:`setup.py` is that it " +"contains a global ``setup()`` function. The keyword arguments to this " +"function are how specific details of your project are defined." +msgstr "" +"ຕາມທີ່ໄດ້ກ່າວມາຂ້າງເທິງ, ຄຸນລັກສະນະຫຼັກຂອງ :file:`setup.py` ແມ່ນມັນປະກອບດ້ວຍຟັງຊັນ " +"``setup()``. ອາກິວເມນຂອງຟັງຊັນນີ້ແມ່ນວິທີທີ່ໃຊ້ລະບຸລາຍລະອຽດສະເພາະຂອງໂຄງການ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:159 +msgid "" +"Some are temporarily explained below until their information is moved " +"elsewhere. The full list can be found :doc:`in the setuptools documentation " +"`." +msgstr "" +"ບາງສ່ວນຈະຖືກອະທິບາຍຊົ່ວຄາວຢູ່ດ້ານລຸ່ມນີ້ ຈົນກວ່າຂໍ້ມູນຈະຖືກຍ້າຍໄປບ່ອນອື່ນ. " +"ລາຍຊື່ທັງໝົດສາມາດເບິ່ງໄດ້ :doc:`ໃນເອກະສານຂອງ setuptools `." + +#: ../source/guides/distributing-packages-using-setuptools.rst:163 +msgid "" +"Most of the snippets given are taken from the `setup.py `_ " +"contained in the `PyPA sample project `_." +msgstr "" +"ຂໍ້ຄວາມສ່ວນໃຫຍ່ທີ່ໃຫ້ມາແມ່ນມາຈາກ `setup.py `_ ທີ່ຢູ່ໃນ `ໂຄງການຕົວຢ່າງ " +"PyPA `_." + +#: ../source/guides/distributing-packages-using-setuptools.rst:170 +msgid "" +"See :ref:`Choosing a versioning scheme` for more information on ways to use " +"versions to convey compatibility information to your users." +msgstr "" +"ເບິ່ງ :ref:`ການເລືອກຮູບແບບການກຳນົດເວີຊັນ` ສຳລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບວິທີການນຳໃຊ້ " +"ເວີຊັນເພື່ອສື່ສານຂໍ້ມູນຄວາມເຂົ້າກັນໄດ້ໃຫ້ກັບຜູ້ໃຊ້ຂອງທ່ານ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:177 +msgid "``packages``" +msgstr "``packages``" + +#: ../source/guides/distributing-packages-using-setuptools.rst:183 +msgid "" +"Set ``packages`` to a list of all :term:`packages ` in your " +"project, including their subpackages, sub-subpackages, etc. Although the " +"packages can be listed manually, ``setuptools.find_packages()`` finds them " +"automatically. Use the ``include`` keyword argument to find only the given " +"packages. Use the ``exclude`` keyword argument to omit packages that are " +"not intended to be released and installed." +msgstr "" +"ກຳນົດ ``packages`` ໃຫ້ເປັນລາຍຊື່ຂອງ :term:`ແພັກເກດ ` ທັງໝົດໃນ " +"ໂຄງການຂອງທ່ານ, ລວມທັງແພັກເກດຍ່ອຍ, ແພັກເກດຍ່ອຍຊັ້ນຕໍ່ໆໄປ ແລະ ອື່ນໆ. ເຖິງແມ່ນວ່າ " +"ແພັກເກດສາມາດລະບຸໄດ້ດ້ວຍຕົນເອງ, ແຕ່ ``setuptools.find_packages()`` ຈະຄົ້ນຫາພວກມັນ " +"ໃຫ້ໂດຍອັດຕະໂນມັດ. ໃຊ້ຕົວປ່ຽນ ``include`` ເພື່ອຄົ້ນຫາສະເພາະແພັກເກດທີ່ກຳນົດໄວ້. ໃຊ້ຕົວປ່ຽນ " +"``exclude`` ເພື່ອຍົກເວັ້ນແພັກເກດທີ່ບໍ່ຕ້ອງການຈະເຜີຍແຜ່ ຫຼື ຕິດຕັ້ງ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:192 +msgid "``py_modules``" +msgstr "``py_modules``" + +#: ../source/guides/distributing-packages-using-setuptools.rst:198 +msgid "" +"If your project contains any single-file Python modules that aren't part of " +"a package, set ``py_modules`` to a list of the names of the modules (minus " +"the ``.py`` extension) in order to make :ref:`setuptools` aware of them." +msgstr "" +"ຖ້າໂຄງການຂອງທ່ານມີໂມດູນ Python ໄຟລ໌ດຽວໃດໜຶ່ງທີ່ບໍ່ໄດ້ເປັນສ່ວນໜຶ່ງຂອງ ແພັກເກດ, ໃຫ້ກຳນົດ " +"``py_modules`` ເປັນລາຍຊື່ຂອງຊື່ໂມດູນ (ໂດຍບໍ່ຕ້ອງໃສ່ນາມສະກຸນ ``.py``) " +"ເພື່ອໃຫ້ :ref:`setuptools` ຮັບຮູ້ພວກມັນ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:204 +msgid "``install_requires``" +msgstr "" + +#: ../source/guides/distributing-packages-using-setuptools.rst:210 +msgid "" +"\"install_requires\" should be used to specify what dependencies a project " +"minimally needs to run. When the project is installed by :ref:`pip`, this is " +"the specification that is used to install its dependencies." +msgstr "" +"\"install_requires\" ຄວນຖືກໃຊ້ເພື່ອລະບຸສິ່ງທີ່ໂຄງການຈຳເປັນຕ້ອງໃຊ້ (dependencies) " +"ໃນການເຮັດວຽກຂັ້ນຕ່ຳ. ເມື່ອໂຄງການຖືກຕິດຕັ້ງໂດຍ :ref:`pip`, ຂໍ້ມູນສ່ວນນີ້ " +"ຈະຖືກໃຊ້ເພື່ອຕິດຕັ້ງສິ່ງທີ່ໂຄງການຕ້ອງການເພີ່ມເຕີມ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:214 +msgid "" +"For more on using \"install_requires\" see :ref:`install_requires vs " +"Requirements files`." +msgstr "" +"ສຳລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບການນຳໃຊ້ \"install_requires\" ເບິ່ງໄດ້ທີ່ :ref:`install_requires " +"vs Requirements files`." + +#: ../source/guides/distributing-packages-using-setuptools.rst:221 +msgid "``package_data``" +msgstr "``package_data``" + +#: ../source/guides/distributing-packages-using-setuptools.rst:230 +msgid "" +"Often, additional files need to be installed into a :term:`package `. These files are often data that’s closely related to the " +"package’s implementation, or text files containing documentation that might " +"be of interest to programmers using the package. These files are called " +"\"package data\"." +msgstr "" +"ເລື້ອຍໆທີ່ໄຟລ໌ເພີ່ມເຕີມຈຳເປັນຕ້ອງໄດ້ຕິດຕັ້ງເຂົ້າໄປໃນ :term:`ແພັກເກດ `. " +"ໄຟລ໌ເຫຼົ່ານີ້ມັກຈະເປັນຂໍ້ມູນທີ່ກ່ຽວຂ້ອງຢ່າງໃກ້ຊິດກັບການເຮັດວຽກຂອງ ແພັກເກດ, ຫຼື " +"ເປັນໄຟລ໌ຂໍ້ຄວາມທີ່ມີເອກະສານອ້າງອີງທີ່ນັກພັດທະນາຜູ້ໃຊ້ແພັກເກດ ອາດຈະສົນໃຈ. ໄຟລ໌ເຫຼົ່ານີ້ເອີ້ນວ່າ " +"\"package data\" (ຂໍ້ມູນແພັກເກດ)." + +#: ../source/guides/distributing-packages-using-setuptools.rst:235 +msgid "" +"The value must be a mapping from package name to a list of relative path " +"names that should be copied into the package. The paths are interpreted as " +"relative to the directory containing the package." +msgstr "" +"ຄ່າຕ້ອງເປັນການຈັບຄູ່ລະຫວ່າງຊື່ແພັກເກດກັບລາຍຊື່ຂອງເສັ້ນທາງ (path) ທີ່ກ່ຽວຂ້ອງ " +"ເຊິ່ງຄວນຈະຖືກສຳເນົາເຂົ້າໄປໃນແພັກເກດ. ເສັ້ນທາງເຫຼົ່ານີ້ຈະຖືກຕີຄວາມໝາຍ " +"ໂດຍອີງຕາມໂຟນເດີທີ່ບັນຈຸແພັກເກດນັ້ນຢູ່." + +#: ../source/guides/distributing-packages-using-setuptools.rst:239 +msgid "" +"For more information, see :std:doc:`Including Data Files " +"` from the :std:doc:`setuptools docs " +"`." +msgstr "" +"ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ, ເບິ່ງ :std:doc:`Including Data Files ` ຈາກ :std:doc:`ເອກະສານ setuptools `." + +#: ../source/guides/distributing-packages-using-setuptools.rst:247 +msgid "``data_files``" +msgstr "``data_files``" + +#: ../source/guides/distributing-packages-using-setuptools.rst:253 +msgid "" +"Although configuring :ref:`Package Data` is sufficient for most needs, in " +"some cases you may need to place data files *outside* of " +"your :term:`packages `. The ``data_files`` directive allows " +"you to do that. It is mostly useful if you need to install files which are " +"used by other programs, which may be unaware of Python packages." +msgstr "" +"ເຖິງແມ່ນວ່າການຕັ້ງຄ່າ :ref:`Package Data` ຈະພຽງພໍສຳລັບຄວາມຕ້ອງການສ່ວນໃຫຍ່, ແຕ່ໃນ " +"ບາງກໍລະນີທ່ານອາດຈະຕ້ອງວາງໄຟລ໌ຂໍ້ມູນໄວ້ *ພາຍນອກ* ຂອງ :term:`ແພັກເກດ ` " +"ຂອງທ່ານ. ຄຳສັ່ງ ``data_files`` ຊ່ວຍໃຫ້ທ່ານເຮັດສິ່ງນັ້ນໄດ້. ມັນມີປະໂຫຍດຫຼາຍທີ່ສຸດ " +"ຫາກທ່ານຕ້ອງການຕິດຕັ້ງໄຟລ໌ທີ່ຖືກໃຊ້ໂດຍໂປຣແກຣມອື່ນໆ, ເຊິ່ງອາດຈະບໍ່ຮູ້ຈັກແພັກເກດ Python." + +#: ../source/guides/distributing-packages-using-setuptools.rst:259 +msgid "" +"Each ``(directory, files)`` pair in the sequence specifies the installation " +"directory and the files to install there. The ``directory`` must be a " +"relative path (although this may change in the future, see `wheel Issue #92 " +"`_), and it is interpreted relative " +"to the installation prefix (Python’s ``sys.prefix`` for a default " +"installation; ``site.USER_BASE`` for a user installation). Each file name in " +"``files`` is interpreted relative to the :file:`setup.py` script at the top " +"of the project source distribution." +msgstr "" +"ແຕ່ລະຄູ່ ``(directory, files)`` ໃນລຳດັບຈະລະບຸໂຟນເດີຕິດຕັ້ງ ແລະ ໄຟລ໌ທີ່ຈະ ຕິດຕັ້ງໄວ້ທີ່ນັ້ນ. " +"``directory`` ຕ້ອງເປັນເສັ້ນທາງທີ່ກ່ຽວຂ້ອງ (ເຖິງແມ່ນວ່າສິ່ງນີ້ອາດຈະ ປ່ຽນແປງໃນອະນາຄົດ, ເບິ່ງ " +"`wheel Issue #92 `_), ແລະ " +"ມັນຖືກຕີຄວາມໝາຍໂດຍອີງຕາມຄ່ານຳໜ້າການຕິດຕັ້ງ (``sys.prefix`` ຂອງ Python ສຳລັບ " +"ການຕິດຕັ້ງແບບມາດຕະຖານ; ``site.USER_BASE`` ສຳລັບການຕິດຕັ້ງຂອງຜູ້ໃຊ້). ແຕ່ລະຊື່ໄຟລ໌ໃນ " +"``files`` ແມ່ນຖືກຕີຄວາມໝາຍໂດຍອີງຕາມສະຄຣິບ :file:`setup.py` ທີ່ຢູ່ສ່ວນເທິງສຸດ " +"ຂອງໄຟລ໌ແຫຼ່ງກຳເນີດໂຄງການ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:269 +msgid "" +"For more information see the distutils section on :ref:`Installing " +"Additional Files `." +msgstr "" +"ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ ເບິ່ງພາກ distutils ໃນ :ref:`Installing Additional Files " +"`." + +#: ../source/guides/distributing-packages-using-setuptools.rst:274 +msgid "" +"When installing packages as egg, ``data_files`` is not supported. So, if " +"your project uses :ref:`setuptools`, you must use ``pip`` to install it. " +"Alternatively, if you must use ``python setup.py``, then you need to pass " +"the ``--old-and-unmanageable`` option." +msgstr "" +"ເມື່ອຕິດຕັ້ງແພັກເກດແບບ egg, ``data_files`` ຈະບໍ່ຖືກຮອງຮັບ. ດັ່ງນັ້ນ, ຖ້າ " +"ໂຄງການຂອງທ່ານໃຊ້ :ref:`setuptools`, ທ່ານຕ້ອງໃຊ້ ``pip`` ເພື່ອຕິດຕັ້ງມັນ. ຫຼື ຫາກທ່ານຕ້ອງໃຊ້ " +"``python setup.py``, ທ່ານຈຳເປັນຕ້ອງສົ່ງຄ່າຕົວເລືອກ ``--old-and-unmanageable`` ນຳ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:281 +#: ../source/specifications/pyproject-toml.rst:158 +#: ../source/specifications/pyproject-toml.rst:661 +msgid "``scripts``" +msgstr "" + +#: ../source/guides/distributing-packages-using-setuptools.rst:283 +msgid "" +"Although ``setup()`` supports a :ref:`scripts ` keyword for pointing to pre-made scripts to install, " +"the recommended approach to achieve cross-platform compatibility is to " +"use :ref:`console_scripts` entry points (see below)." +msgstr "" +"ເຖິງແມ່ນວ່າ ``setup()`` ຈະຮອງຮັບຄຳສັບຫຼັກ :ref:`scripts ` ເພື່ອຊີ້ໄປຫາສະຄຣິບທີ່ກຽມໄວ້ກ່ອນໜ້າສຳລັບການຕິດຕັ້ງ, " +"ແຕ່ວິທີທີ່ແນະນຳເພື່ອໃຫ້ສາມາດເຮັດວຽກໄດ້ໃນຫຼາຍລະບົບ (cross-platform) " +"ແມ່ນການໃຊ້ :ref:`console_scripts` entry points (ເບິ່ງລຸ່ມນີ້)." + +#: ../source/guides/distributing-packages-using-setuptools.rst:291 +msgid "Choosing a versioning scheme" +msgstr "ການເລືອກຮູບແບບການກຳນົດເວີຊັນ" + +#: ../source/guides/distributing-packages-using-setuptools.rst:293 +msgid "" +"See :ref:`versioning` for information on common version schemes and how to " +"choose between them." +msgstr "" +"ເບິ່ງ :ref:`versioning` ສຳລັບຂໍ້ມູນກ່ຽວກັບຮູບແບບເວີຊັນທີ່ນິຍົມໃຊ້ ແລະ ວິທີ ການເລືອກລະຫວ່າງພວກມັນ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:298 +msgid "Working in \"development mode\"" +msgstr "ການເຮັດວຽກໃນ \"ໂໝດນັກພັດທະນາ\"" + +#: ../source/guides/distributing-packages-using-setuptools.rst:300 +msgid "" +"You can install a project in \"editable\" or \"develop\" mode while you're " +"working on it. When installed as editable, a project can be edited in-place " +"without reinstallation: changes to Python source files in projects installed " +"as editable will be reflected the next time an interpreter process is " +"started." +msgstr "" +"ທ່ານສາມາດຕິດຕັ້ງໂຄງການໃນໂໝດ \"editable\" (ແກ້ໄຂໄດ້) ຫຼື \"develop\" (ພັດທະນາ) ໃນຂະນະທີ່ " +"ທ່ານກຳລັງເຮັດວຽກຢູ່. ເມື່ອຕິດຕັ້ງແບບ editable, ໂຄງການສາມາດຖືກແກ້ໄຂໄດ້ໂດຍກົງ ໂດຍບໍ່ຕ້ອງຕິດຕັ້ງໃໝ່: " +"ການປ່ຽນແປງໃນໄຟລ໌ແຫຼ່ງກຳເນີດ Python ໃນໂຄງການທີ່ຕິດຕັ້ງ ແບບ editable " +"ຈະມີຜົນໃນຄັ້ງຕໍ່ໄປທີ່ໂປຣແກຣມ Python ເລີ່ມເຮັດວຽກ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:306 +msgid "" +"To install a Python package in \"editable\"/\"development\" mode Change " +"directory to the root of the project directory and run:" +msgstr "" +"ເພື່ອຕິດຕັ້ງແພັກເກດ Python ໃນໂໝດ \"editable\"/\"development\" ໃຫ້ປ່ຽນ ໂຟນເດີໄປຫາສ່ວນຫຼັກ " +"(root) ຂອງໂຄງການ ແລະ ຣັນຄຳສັ່ງ:" + +#: ../source/guides/distributing-packages-using-setuptools.rst:314 +msgid "" +"The pip command-line flag ``-e`` is short for ``--editable``, and ``.`` " +"refers to the current working directory, so together, it means to install " +"the current directory (i.e. your project) in editable mode. This will also " +"install any dependencies declared with ``install_requires`` and any scripts " +"declared with ``console_scripts``. Dependencies will be installed in the " +"usual, non-editable mode." +msgstr "" +"ຕົວເລືອກ ``-e`` ໃນຄຳສັ່ງ pip ແມ່ນຫຍໍ້ມາຈາກ ``--editable``, ແລະ ``.`` " +"ໝາຍເຖິງໂຟນເດີທີ່ກຳລັງເຮັດວຽກຢູ່, ດັ່ງນັ້ນເມື່ອລວມກັນແລ້ວ ມັນໝາຍເຖິງການຕິດຕັ້ງ ໂຟນເດີປັດຈຸບັນ " +"(ກໍ່ຄືໂຄງການຂອງທ່ານ) ໃນໂໝດ editable. ສິ່ງນີ້ຈະ ຕິດຕັ້ງສິ່ງທີ່ໂຄງການຕ້ອງການ (dependencies) " +"ທີ່ລະບຸໄວ້ໃນ ``install_requires`` ແລະ ສະຄຣິບທີ່ລະບຸໄວ້ໃນ ``console_scripts``. ສ່ວນ " +"dependencies ຈະຖືກຕິດຕັ້ງໃນ ໂໝດປົກກະຕິ (ທີ່ບໍ່ແມ່ນ editable)." + +#: ../source/guides/distributing-packages-using-setuptools.rst:321 +msgid "" +"You may want to install some of your dependencies in editable mode as well. " +"For example, supposing your project requires \"foo\" and \"bar\", but you " +"want \"bar\" installed from VCS in editable mode, then you could construct a " +"requirements file like so::" +msgstr "" +"ທ່ານອາດຈະຕ້ອງການຕິດຕັ້ງບາງ dependencies ໃນໂໝດ editable ຄືກັນ. ຕົວຢ່າງ, " +"ສົມມຸດວ່າໂຄງການຂອງທ່ານຕ້ອງການ \"foo\" ແລະ \"bar\", ແຕ່ທ່ານ ຕ້ອງການຕິດຕັ້ງ \"bar\" ຈາກ " +"VCS ໃນໂໝດ editable, ທ່ານສາມາດສ້າງ ໄຟລ໌ requirements ໄດ້ດັ່ງນີ້::" + +#: ../source/guides/distributing-packages-using-setuptools.rst:329 +msgid "" +"The first line says to install your project and any dependencies. The second " +"line overrides the \"bar\" dependency, such that it's fulfilled from VCS, " +"not PyPI." +msgstr "" +"ແຖວທຳອິດໝາຍເຖິງການຕິດຕັ້ງໂຄງການຂອງທ່ານ ແລະ dependencies ທັງໝົດ. ແຖວທີສອງ ຈະຂຽນທັບ " +"dependency \"bar\", ເພື່ອໃຫ້ມັນຖືກຕິດຕັ້ງຈາກ VCS ແທນທີ່ຈະເປັນ PyPI." + +#: ../source/guides/distributing-packages-using-setuptools.rst:333 +msgid "" +"If, however, you want \"bar\" installed from a local directory in editable " +"mode, the requirements file should look like this, with the local paths at " +"the top of the file::" +msgstr "" +"ແຕ່ຖ້າຫາກທ່ານຕ້ອງການຕິດຕັ້ງ \"bar\" ຈາກໂຟນເດີພາຍໃນເຄື່ອງໃນໂໝດ editable, ໄຟລ໌ " +"requirements ຄວນຈະເປັນແບບນີ້, ໂດຍວາງເສັ້ນທາງພາຍໃນເຄື່ອງໄວ້ ສ່ວນເທິງຂອງໄຟລ໌::" + +#: ../source/guides/distributing-packages-using-setuptools.rst:338 +msgid "" +"Otherwise, the dependency will be fulfilled from PyPI, due to the " +"installation order of the requirements file. For more on requirements " +"files, see the :ref:`Requirements File ` section in " +"the pip docs. For more on VCS installs, see the :ref:`VCS Support ` section of the pip docs." +msgstr "" +"ຖ້າບໍ່ດັ່ງນັ້ນ, dependency ຈະຖືກຕິດຕັ້ງຈາກ PyPI ເນື່ອງຈາກລຳດັບການຕິດຕັ້ງ ຂອງໄຟລ໌ requirements. " +"ສຳລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບໄຟລ໌ requirements, ເບິ່ງທີ່ພາກ :ref:`Requirements File " +"` ໃນເອກະສານຂອງ pip. ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ ກ່ຽວກັບການຕິດຕັ້ງຈາກ " +"VCS, ເບິ່ງທີ່ພາກ :ref:`VCS Support ` ໃນເອກະສານຂອງ pip." + +#: ../source/guides/distributing-packages-using-setuptools.rst:342 +msgid "" +"Lastly, if you don't want to install any dependencies at all, you can run:" +msgstr "ສຸດທ້າຍ, ຫາກທ່ານບໍ່ຕ້ອງການຕິດຕັ້ງ dependencies ໃດໆເລີຍ, ທ່ານສາມາດຣັນຄຳສັ່ງ:" + +#: ../source/guides/distributing-packages-using-setuptools.rst:349 +msgid "" +"For more information, see the :doc:`Development Mode ` section of the :ref:`setuptools` docs." +msgstr "" +"ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ, ເບິ່ງພາກ :doc:`Development Mode ` ໃນເອກະສານຂອງ :ref:`setuptools`." + +#: ../source/guides/distributing-packages-using-setuptools.rst:356 +msgid "Packaging your project" +msgstr "ການເຮັດແພັກເກດໃຫ້ໂຄງການຂອງທ່ານ" + +#: ../source/guides/distributing-packages-using-setuptools.rst:358 +msgid "" +"To have your project installable from a :term:`Package Index` " +"like :term:`PyPI `, you'll need to create " +"a :term:`Distribution ` (aka \":term:`Package " +"`\") for your project." +msgstr "" +"ເພື່ອໃຫ້ໂຄງການຂອງທ່ານສາມາດຕິດຕັ້ງໄດ້ຈາກ :term:`Package Index` ເຊັ່ນ :term:`PyPI " +"`, ທ່ານຈຳເປັນຕ້ອງສ້າງ :term:`Distribution " +"` (ຫຼື \":term:`Package `\") " +"ສຳລັບໂຄງການຂອງທ່ານ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:363 +msgid "" +"Before you can build wheels and sdists for your project, you'll need to " +"install the ``build`` package:" +msgstr "" +"ກ່ອນທີ່ທ່ານຈະສາມາດສ້າງໄຟລ໌ wheel ແລະ sdist ສຳລັບໂຄງການຂອງທ່ານ, ທ່ານຈຳເປັນຕ້ອງ " +"ຕິດຕັ້ງແພັກເກດ ``build`` ກ່ອນ:" + +#: ../source/guides/distributing-packages-using-setuptools.rst:380 +msgid "Source distributions" +msgstr "ການແຈກຢາຍແບບໄຟລ໌ແຫຼ່ງກຳເນີດ (Source distributions)" + +#: ../source/guides/distributing-packages-using-setuptools.rst:382 +msgid "" +"Minimally, you should create a :term:`Source Distribution `:" +msgstr "" +"ຢ່າງໜ້ອຍທີ່ສຸດ, ທ່ານຄວນສ້າງ :term:`Source Distribution `:" + +#: ../source/guides/distributing-packages-using-setuptools.rst:398 +msgid "" +"A \"source distribution\" is unbuilt (i.e. it's not a :term:`Built " +"Distribution`), and requires a build step when installed by pip. Even if " +"the distribution is pure Python (i.e. contains no extensions), it still " +"involves a build step to build out the installation metadata " +"from :file:`setup.py` and/or :file:`setup.cfg`." +msgstr "" +"\"source distribution\" ແມ່ນສິ່ງທີ່ຍັງບໍ່ທັນໄດ້ຖືກບິວ (ບໍ່ແມ່ນ :term:`Built Distribution`), " +"ແລະ ຕ້ອງການຂັ້ນຕອນການບິວເມື່ອຕິດຕັ້ງໂດຍ pip. ເຖິງແມ່ນວ່າ ການແຈກຢາຍນັ້ນຈະເປັນ Python ລ້ວນໆ " +"(ບໍ່ມີສ່ວນຂະຫຍາຍອື່ນໆ), ມັນກໍ່ຍັງ ຕ້ອງມີຂັ້ນຕອນການບິວເພື່ອສ້າງຂໍ້ມູນ metadata " +"ສຳລັບການຕິດຕັ້ງຈາກ :file:`setup.py` ແລະ/ຫຼື :file:`setup.cfg`." + +#: ../source/guides/distributing-packages-using-setuptools.rst:406 +msgid "Wheels" +msgstr "Wheels" + +#: ../source/guides/distributing-packages-using-setuptools.rst:408 +msgid "" +"You should also create a wheel for your project. A wheel is a :term:`built " +"package ` that can be installed without needing to go " +"through the \"build\" process. Installing wheels is substantially faster for " +"the end user than installing from a source distribution." +msgstr "" +"ທ່ານຄວນສ້າງ wheel ສໍາລັບໂຄງການຂອງທ່ານນຳ. wheel ແມ່ນ :term:`built package ` ທີ່ສາມາດຕິດຕັ້ງໄດ້ໂດຍບໍ່ຈໍາເປັນຕ້ອງຜ່ານຂັ້ນຕອນການ \"build\". ການຕິດຕັ້ງ wheel " +"ແມ່ນໄວເວີກວ່າການຕິດຕັ້ງຈາກ source distribution ສໍາລັບຜູ້ໃຊ້ທົ່ວໄປ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:413 +msgid "" +"If your project is pure Python then you'll be creating a :ref:`\"Pure Python " +"Wheel\" (see section below) `." +msgstr "" +"ຖ້າໂຄງການຂອງທ່ານເປັນ Python ລ້ວນໆ, ທ່ານຈະໄດ້ສ້າງ :ref:`\"Pure Python Wheel\" " +"(ເບິ່ງພາກລຸ່ມນີ້) `." + +#: ../source/guides/distributing-packages-using-setuptools.rst:416 +msgid "" +"If your project contains compiled extensions, then you'll be creating what's " +"called a :ref:`*Platform Wheel* (see section below) `." +msgstr "" +"ຖ້າໂຄງການຂອງທ່ານມີສ່ວນຂະຫຍາຍທີ່ຕ້ອງໄດ້ຄອມໄພລ໌ (compiled extensions), ທ່ານຈະໄດ້ສ້າງ " +"ສິ່ງທີ່ເອີ້ນວ່າ :ref:`*Platform Wheel* (ເບິ່ງພາກລຸ່ມນີ້) `." + +#: ../source/guides/distributing-packages-using-setuptools.rst:419 +msgid "" +"If your project also supports Python 2 *and* contains no C extensions, then " +"you should create what's called a *Universal Wheel* by adding the following " +"to your :file:`setup.cfg` file:" +msgstr "" +"ຖ້າໂຄງການຂອງທ່ານຮອງຮັບ Python 2 *ແລະ* ບໍ່ມີສ່ວນຂະຫຍາຍ C, ທ່ານຄວນ ສ້າງສິ່ງທີ່ເອີ້ນວ່າ " +"*Universal Wheel* ໂດຍການເພີ່ມຂໍ້ຄວາມລຸ່ມນີ້ໃສ່ໃນໄຟລ໌ :file:`setup.cfg` ຂອງທ່ານ:" + +#: ../source/guides/distributing-packages-using-setuptools.rst:428 +msgid "" +"Only use this setting if your project does not have any C extensions *and* " +"supports Python 2 and 3." +msgstr "" +"ໃຊ້ການຕັ້ງຄ່ານີ້ສະເພາະຫາກໂຄງການຂອງທ່ານບໍ່ມີສ່ວນຂະຫຍາຍ C *ແລະ* ຮອງຮັບທັງ Python 2 ແລະ 3." + +#: ../source/guides/distributing-packages-using-setuptools.rst:435 +msgid "Pure Python Wheels" +msgstr "Pure Python Wheels" + +#: ../source/guides/distributing-packages-using-setuptools.rst:437 +msgid "" +"*Pure Python Wheels* contain no compiled extensions, and therefore only " +"require a single Python wheel." +msgstr "" +"*Pure Python Wheels* ບໍ່ມີສ່ວນຂະຫຍາຍທີ່ຖືກຄອມໄພລ໌, ດັ່ງນັ້ນຈຶ່ງ ຕ້ອງການພຽງແຕ່ Python wheel " +"ໄຟລ໌ດຽວ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:440 +#: ../source/guides/distributing-packages-using-setuptools.rst:469 +msgid "To build the wheel:" +msgstr "ເພື່ອບິວ wheel:" + +#: ../source/guides/distributing-packages-using-setuptools.rst:454 +msgid "" +"The ``wheel`` package will detect that the code is pure Python, and build a " +"wheel that's named such that it's usable on any Python 3 installation. For " +"details on the naming of wheel files, see :pep:`425`." +msgstr "" +"ແພັກເກດ ``wheel`` ຈະກວດສອບວ່າໂຄ້ດເປັນ Python ລ້ວນໆ, ແລະ ຈະບິວ wheel " +"ທີ່ຖືກຕັ້ງຊື່ໃຫ້ສາມາດໃຊ້ໄດ້ກັບການຕິດຕັ້ງ Python 3 ໃດໆກໍ່ໄດ້. ສຳລັບ ລາຍລະອຽດກ່ຽວກັບການຕັ້ງຊື່ໄຟລ໌ " +"wheel, ເບິ່ງ :pep:`425`." + +#: ../source/guides/distributing-packages-using-setuptools.rst:458 +msgid "" +"If you run ``build`` without ``--wheel`` or ``--sdist``, it will build both " +"files for you; this is useful when you don't need multiple wheels." +msgstr "" +"ຫາກທ່ານຣັນ ``build`` ໂດຍບໍ່ໃສ່ ``--wheel`` ຫຼື ``--sdist``, ມັນຈະບິວທັງສອງ ໄຟລ໌ໃຫ້ທ່ານ; " +"ສິ່ງນີ້ມີປະໂຫຍດເມື່ອທ່ານບໍ່ຕ້ອງການ wheel ຫຼາຍໆຮູບແບບ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:464 +msgid "Platform Wheels" +msgstr "Platform Wheels" + +#: ../source/guides/distributing-packages-using-setuptools.rst:466 +msgid "" +"*Platform Wheels* are wheels that are specific to a certain platform like " +"Linux, macOS, or Windows, usually due to containing compiled extensions." +msgstr "" +"*Platform Wheels* ແມ່ນ wheel ທີ່ສະເພາະເຈາະຈົງກັບບາງແພລັດຟອມ ເຊັ່ນ Linux, macOS, ຫຼື " +"Windows, ເຊິ່ງມັກຈະເປັນເພາະມັນມີສ່ວນຂະຫຍາຍທີ່ຖືກຄອມໄພລ໌." + +#: ../source/guides/distributing-packages-using-setuptools.rst:484 +msgid "" +"The ``wheel`` package will detect that the code is not pure Python, and " +"build a wheel that's named such that it's only usable on the platform that " +"it was built on. For details on the naming of wheel files, see :pep:`425`." +msgstr "" +"ແພັກເກດ ``wheel`` ຈະກວດສອບວ່າໂຄ້ດບໍ່ແມ່ນ Python ລ້ວນໆ, ແລະ ຈະ ບິວ wheel " +"ທີ່ຖືກຕັ້ງຊື່ໃຫ້ສາມາດໃຊ້ໄດ້ສະເພາະໃນແພລັດຟອມທີ່ມັນຖືກບິວຂຶ້ນມາເທົ່ານັ້ນ. ສຳລັບລາຍລະອຽດກ່ຽວກັບການຕັ້ງຊື່ໄຟລ໌ " +"wheel, ເບິ່ງ :pep:`425`." + +#: ../source/guides/distributing-packages-using-setuptools.rst:490 +msgid "" +":term:`PyPI ` currently supports uploads of " +"platform wheels for Windows, macOS, and the multi-distro ``manylinux*`` ABI. " +"Details of the latter are defined in :pep:`513`." +msgstr "" +"ປັດຈຸບັນ :term:`PyPI ` ຮອງຮັບການອັບໂຫຼດ platform " +"wheels ສຳລັບ Windows, macOS, ແລະ ``manylinux*`` ABI ທີ່ໃຊ້ໄດ້ກັບຫຼາຍດິສໂຕຣ. " +"ລາຍລະອຽດຂອງ manylinux ແມ່ນຖືກກຳນົດໄວ້ໃນ :pep:`513`." + +#: ../source/guides/distributing-packages-using-setuptools.rst:498 +msgid "Uploading your Project to PyPI" +msgstr "ການອັບໂຫຼດໂຄງການຂອງທ່ານຂຶ້ນ PyPI" + +#: ../source/guides/distributing-packages-using-setuptools.rst:500 +msgid "" +"When you ran the command to create your distribution, a new directory ``dist/" +"`` was created under your project's root directory. That's where you'll find " +"your distribution file(s) to upload." +msgstr "" +"ເມື່ອທ່ານຣັນຄຳສັ່ງເພື່ອສ້າງ distribution, ໂຟນເດີໃໝ່ຊື່ ``dist/`` " +"ຈະຖືກສ້າງຂຶ້ນພາຍໃຕ້ໂຟນເດີຫຼັກຂອງໂຄງການ. ນັ້ນຄືບ່ອນທີ່ທ່ານຈະພົບ ໄຟລ໌ distribution ທີ່ຈະໃຊ້ອັບໂຫຼດ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:504 +msgid "" +"These files are only created when you run the command to create your " +"distribution. This means that any time you change the source of your project " +"or the configuration in your :file:`setup.py` file, you will need to rebuild " +"these files again before you can distribute the changes to PyPI." +msgstr "" +"ໄຟລ໌ເຫຼົ່ານີ້ຈະຖືກສ້າງຂຶ້ນເມື່ອທ່ານຣັນຄຳສັ່ງສ້າງ distribution ເທົ່ານັ້ນ. " +"ໝາຍຄວາມວ່າທຸກໆຄັ້ງທີ່ທ່ານມີການປ່ຽນແປງໂຄ້ດ ຫຼື ການຕັ້ງຄ່າໃນ :file:`setup.py`, " +"ທ່ານຈະຕ້ອງບິວໄຟລ໌ເຫຼົ່ານີ້ໃໝ່ອີກຄັ້ງ ກ່ອນທີ່ຈະເຜີຍແຜ່ ການປ່ຽນແປງໄປຍັງ PyPI." + +#: ../source/guides/distributing-packages-using-setuptools.rst:509 +msgid "" +"Before releasing on main PyPI repo, you might prefer training with the `PyPI " +"test site `_ which is cleaned on a semi regular " +"basis. See :ref:`using-test-pypi` on how to setup your configuration in " +"order to use it." +msgstr "" +"ກ່ອນທີ່ຈະເຜີຍແຜ່ໃນ PyPI ຫຼັກ, ທ່ານອາດຈະຢາກທົດລອງກັບ `ເວັບໄຊທົດສອບ PyPI `_ ເຊິ່ງຈະຖືກລ້າງຂໍ້ມູນເປັນໄລຍະ. ເບິ່ງ :ref:`using-test-pypi` " +"ກ່ຽວກັບວິທີການ ຕັ້ງຄ່າເພື່ອໃຊ້ມັນ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:514 +msgid "" +"In other resources you may encounter references to using ``python setup.py " +"register`` and ``python setup.py upload``. These methods of registering and " +"uploading a package are **strongly discouraged** as it may use a plaintext " +"HTTP or unverified HTTPS connection on some Python versions, allowing your " +"username and password to be intercepted during transmission." +msgstr "" +"ໃນແຫຼ່ງຂໍ້ມູນອື່ນໆ ທ່ານອາດຈະເຫັນການອ້າງອີງເຖິງການໃຊ້ ``python setup.py register`` ແລະ " +"``python setup.py upload``. ວິທີການລົງທະບຽນ ແລະ ອັບໂຫຼດແພັກເກດແບບນີ້ " +"**ບໍ່ແນະນຳຢ່າງເດັດຂາດ** ເພາະມັນອາດຈະໃຊ້ການເຊື່ອມຕໍ່ແບບ HTTP ທຳມະດາ ຫຼື HTTPS " +"ທີ່ບໍ່ໄດ້ຮັບການຢືນຢັນໃນບາງເວີຊັນຂອງ Python, ເຮັດໃຫ້ຊື່ຜູ້ໃຊ້ ແລະ ລະຫັດຜ່ານ " +"ຂອງທ່ານຖືກດັກຈັບໄດ້ໃນລະຫວ່າງການສົ່ງຂໍ້ມູນ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:520 +msgid "" +"The reStructuredText parser used on PyPI is **not** Sphinx! Furthermore, to " +"ensure safety of all users, certain kinds of URLs and directives are " +"forbidden or stripped out (e.g., the ``.. raw::`` directive). **Before** " +"trying to upload your distribution, you should check to see if your brief / " +"long descriptions provided in :file:`setup.py` are valid. You can do this " +"by running :std:doc:`twine check ` on your package files:" +msgstr "" +"ຕົວແປພາສາ reStructuredText ທີ່ໃຊ້ໃນ PyPI **ບໍ່ແມ່ນ** Sphinx! ນອກຈາກນັ້ນ, " +"ເພື່ອຄວາມປອດໄພຂອງຜູ້ໃຊ້ທຸກຄົນ, URL ແລະ ຄຳສັ່ງບາງປະເພດແມ່ນຖືກຫ້າມ ຫຼື ຖືກຕັດອອກ (ເຊັ່ນ ຄຳສັ່ງ " +"``.. raw::``). **ກ່ອນ** ທີ່ຈະພະຍາຍາມ ອັບໂຫຼດ distribution, ທ່ານຄວນກວດສອບເບິ່ງວ່າ " +"ຄຳອະທິບາຍສັ້ນ / ຍາວ ທີ່ລະບຸໃນ :file:`setup.py` ນັ້ນຖືກຕ້ອງຫຼືບໍ່. " +"ທ່ານສາມາດເຮັດໄດ້ໂດຍການຣັນ :std:doc:`twine check ` ກັບໄຟລ໌ແພັກເກດຂອງທ່ານ:" + +#: ../source/guides/distributing-packages-using-setuptools.rst:533 +msgid "Create an account" +msgstr "ສ້າງບັນຊີ" + +#: ../source/guides/distributing-packages-using-setuptools.rst:535 +msgid "" +"First, you need a :term:`PyPI ` user account. " +"You can create an account `using the form on the PyPI website `_." +msgstr "" +"ກ່ອນອື່ນ, ທ່ານຕ້ອງມີບັນຊີຜູ້ໃຊ້ :term:`PyPI `. " +"ທ່ານສາມາດສ້າງບັນຊີໄດ້ `ໂດຍໃຊ້ແບບຟອມໃນເວັບໄຊ PyPI `_." + +#: ../source/guides/distributing-packages-using-setuptools.rst:539 +msgid "" +"Now you'll create a PyPI `API token`_ so you will be able to securely upload " +"your project." +msgstr "" +"ຕອນນີ້ທ່ານຈະຕ້ອງສ້າງ PyPI `API token`_ ເພື່ອໃຫ້ສາມາດອັບໂຫຼດໂຄງການ ຂອງທ່ານໄດ້ຢ່າງປອດໄພ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:542 +msgid "" +"Go to https://pypi.org/manage/account/#api-tokens and create a new `API " +"token`_; don't limit its scope to a particular project, since you are " +"creating a new project." +msgstr "" +"ໄປທີ່ https://pypi.org/manage/account/#api-tokens ແລະ ສ້າງ `API token`_ ໃໝ່; " +"ຢ່າຈຳກັດຂອບເຂດຂອງມັນໄວ້ກັບໂຄງການໃດໜຶ່ງໂດຍສະເພາະ, ເພາະວ່າທ່ານກຳລັງສ້າງໂຄງການໃໝ່." + +#: ../source/guides/distributing-packages-using-setuptools.rst:546 +msgid "" +"**Don't close the page until you have copied and saved the token — you won't " +"see that token again.**" +msgstr "" +"**ຢ່າປິດໜ້າເວັບຈົນກວ່າທ່ານຈະໄດ້ສຳເນົາ ແລະ ບັນທຶກ token ໄວ້ — ທ່ານຈະບໍ່ເຫັນ token ນັ້ນອີກ.**" + +#: ../source/guides/distributing-packages-using-setuptools.rst:549 +msgid "" +"To avoid having to copy and paste the token every time you upload, you can " +"create a :file:`$HOME/.pypirc` file:" +msgstr "" +"ເພື່ອຫຼີກເວັ້ນການຕ້ອງສຳເນົາ ແລະ ວາງ token ທຸກຄັ້ງທີ່ອັບໂຫຼດ, ທ່ານສາມາດສ້າງ " +"ໄຟລ໌ :file:`$HOME/.pypirc` ໄດ້:" + +#: ../source/guides/distributing-packages-using-setuptools.rst:558 +msgid "**Be aware that this stores your token in plaintext.**" +msgstr "**ຈົ່ງລະວັງວ່າສິ່ງນີ້ຈະເກັບ token ຂອງທ່ານໃນຮູບແບບຂໍ້ຄວາມທຳມະດາ (plaintext).**" + +#: ../source/guides/distributing-packages-using-setuptools.rst:560 +#: ../source/guides/migrating-to-pypi-org.rst:74 +#: ../source/guides/migrating-to-pypi-org.rst:113 +#: ../source/guides/using-testpypi.rst:84 +msgid "" +"For more details, see the :ref:`specification ` for :file:`.pypirc`." +msgstr "" +"ສຳລັບລາຍລະອຽດເພີ່ມເຕີມ, ເບິ່ງ :ref:`specification ` ສຳລັບ :file:`.pypirc`." + +#: ../source/guides/distributing-packages-using-setuptools.rst:566 +msgid "Upload your distributions" +msgstr "ອັບໂຫຼດ distributions ຂອງທ່ານ" + +#: ../source/guides/distributing-packages-using-setuptools.rst:568 +msgid "" +"Once you have an account you can upload your distributions to :term:`PyPI " +"` using :ref:`twine`." +msgstr "" +"ເມື່ອທ່ານມີບັນຊີແລ້ວ ທ່ານສາມາດອັບໂຫຼດ distributions ຂອງທ່ານໄປຍັງ :term:`PyPI ` ໂດຍໃຊ້ :ref:`twine`." + +#: ../source/guides/distributing-packages-using-setuptools.rst:571 +msgid "" +"The process for uploading a release is the same regardless of whether or not " +"the project already exists on PyPI - if it doesn't exist yet, it will be " +"automatically created when the first release is uploaded." +msgstr "" +"ຂັ້ນຕອນການອັບໂຫຼດການເຜີຍແຜ່ (release) ແມ່ນຄືກັນ ບໍ່ວ່າໂຄງການນັ້ນຈະມີຢູ່ໃນ PyPI ແລ້ວຫຼືບໍ່ - " +"ຖ້າຍັງບໍ່ມີ, ມັນຈະຖືກສ້າງຂຶ້ນໂດຍອັດຕະໂນມັດເມື່ອມີການອັບໂຫຼດ release ທຳອິດ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:575 +msgid "" +"For the second and subsequent releases, PyPI only requires that the version " +"number of the new release differ from any previous releases." +msgstr "" +"ສຳລັບ release ທີສອງ ແລະ ຕໍ່ໆໄປ, PyPI ພຽງແຕ່ກຳນົດວ່າ ເລກເວີຊັນ ຂອງ release " +"ໃໝ່ຕ້ອງແຕກຕ່າງຈາກເວີຊັນກ່ອນໜ້ານີ້ທັງໝົດ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:582 +msgid "" +"You can see if your package has successfully uploaded by navigating to the " +"URL ``https://pypi.org/project/`` where ``sampleproject`` is " +"the name of your project that you uploaded. It may take a minute or two for " +"your project to appear on the site." +msgstr "" +"ທ່ານສາມາດກວດສອບໄດ້ວ່າແພັກເກດຂອງທ່ານຖືກອັບໂຫຼດສຳເລັດຫຼືບໍ່ ໂດຍເຂົ້າໄປທີ່ URL ``https://" +"pypi.org/project/`` ເຊິ່ງ ``sampleproject`` ແມ່ນ " +"ຊື່ໂຄງການຂອງທ່ານທີ່ໄດ້ອັບໂຫຼດໄປ. ອາດຈະໃຊ້ເວລາໜຶ່ງ ຫຼື ສອງນາທີເພື່ອໃຫ້ໂຄງການ ປະກົດຂຶ້ນໃນເວັບໄຊ." + +#: ../source/guides/distributing-packages-using-setuptools.rst:589 +#: ../source/tutorials/installing-packages.rst:669 +msgid "" +"Depending on your platform, this may require root or Administrator " +"access. :ref:`pip` is currently considering changing this by `making user " +"installs the default behavior `_." +msgstr "" +"ຂຶ້ນກັບແພລັດຟອມຂອງທ່ານ, ສິ່ງນີ້ອາດຈະຕ້ອງໃຊ້ສິດ root ຫຼື Administrator. ປັດຈຸບັນ :ref:`pip` " +"ກຳລັງພິຈາລະນາປ່ຽນແປງສິ່ງນີ້ໂດຍ `ການເຮັດໃຫ້ການຕິດຕັ້ງໂດຍຜູ້ໃຊ້ ເປັນຄ່າເລີ່ມຕົ້ນ `_." + +#: ../source/guides/dropping-older-python-versions.rst:5 +msgid "Dropping support for older Python versions" +msgstr "ການຍົກເລີກການຮອງຮັບ Python ເວີຊັນເກົ່າ" + +#: ../source/guides/dropping-older-python-versions.rst:7 +msgid "" +"The ability to drop support for older Python versions is enabled by the " +"standard :ref:`core-metadata` 1.2 specification via the :ref:`\"Requires-" +"Python\" ` attribute." +msgstr "" +"ຄວາມສາມາດໃນການຍົກເລີກການຮອງຮັບ Python ເວີຊັນເກົ່າແມ່ນເຮັດໄດ້ຜ່ານ " +"ຂໍ້ກຳນົດມາດຕະຖານ :ref:`core-metadata` 1.2 ຜ່ານຄຸນລັກສະນະ :ref:`\"Requires-Python\" " +"`." + +#: ../source/guides/dropping-older-python-versions.rst:9 +msgid "" +"Metadata 1.2+ installers, such as Pip, will adhere to this specification by " +"matching the current Python runtime and comparing it with the required " +"version in the package metadata. If they do not match, it will attempt to " +"install the last package distribution that supported that Python runtime." +msgstr "" +"ເຄື່ອງມືຕິດຕັ້ງ Metadata 1.2+ ເຊັ່ນ Pip, ຈະປະຕິບັດຕາມຂໍ້ກຳນົດນີ້ໂດຍ ການກວດສອບ Python " +"runtime ປັດຈຸບັນ ແລະ ສົມທຽບກັບເວີຊັນທີ່ຕ້ອງການໃນ metadata ຂອງແພັກເກດ. ຫາກພວກມັນບໍ່ກົງກັນ, " +"ມັນຈະພະຍາຍາມຕິດຕັ້ງ distribution ຂອງແພັກເກດລຸ້ນສຸດທ້າຍທີ່ຍັງຮອງຮັບ Python runtime ນັ້ນຢູ່." + +#: ../source/guides/dropping-older-python-versions.rst:12 +msgid "" +"This mechanism can be used to drop support for older Python versions, by " +"amending the ``Requires-Python`` attribute in the package metadata." +msgstr "" +"ກົນໄກນີ້ສາມາດໃຊ້ເພື່ອຍົກເລີກການຮອງຮັບ Python ເວີຊັນເກົ່າໄດ້ ໂດຍການ ແກ້ໄຂຄຸນລັກສະນະ ``Requires-" +"Python`` ໃນ metadata ຂອງແພັກເກດ." + +#: ../source/guides/dropping-older-python-versions.rst:15 +msgid "Requirements" +msgstr "ສິ່ງທີ່ຈຳເປັນຕ້ອງມີ" + +#: ../source/guides/dropping-older-python-versions.rst:17 +msgid "" +"This workflow requires that the user installing the package uses Pip [#]_, " +"or another installer that supports the Metadata 1.2 specification." +msgstr "" +"ຂັ້ນຕອນການເຮັດວຽກນີ້ກຳນົດໃຫ້ຜູ້ທີ່ຕິດຕັ້ງແພັກເກດຕ້ອງໃຊ້ Pip [#]_, ຫຼື ເຄື່ອງມືຕິດຕັ້ງອື່ນໆທີ່ຮອງຮັບຂໍ້ກຳນົດ " +"Metadata 1.2." + +#: ../source/guides/dropping-older-python-versions.rst:20 +msgid "Dealing with the universal wheels" +msgstr "ການຈັດການກັບ universal wheels" + +#: ../source/guides/dropping-older-python-versions.rst:22 +msgid "" +"Traditionally, :ref:`setuptools` projects providing Python code that is " +"semantically compatible with both Python 2 and Python 3, " +"produce :term:`wheels ` that have a ``py2.py3`` tag in their names. " +"When dropping support for Python 2, it is important not to forget to change " +"this tag to just ``py3``. It is often configured within :file:`setup.cfg` " +"under the ``[bdist_wheel]`` section by setting ``universal = 1``." +msgstr "" +"ໂດຍປົກກະຕິແລ້ວ, ໂຄງການ :ref:`setuptools` ທີ່ໃຫ້ໂຄ້ດ Python ເຊິ່ງ ສາມາດເຮັດວຽກໄດ້ກັບທັງ " +"Python 2 ແລະ Python 3 ຈະສ້າງ :term:`wheels ` ທີ່ມີແທັກ ``py2.py3`` ໃນຊື່ໄຟລ໌. " +"ເມື່ອຍົກເລີກການຮອງຮັບ Python 2, ມັນເປັນສິ່ງສຳຄັນທີ່ຈະຕ້ອງບໍ່ລືມປ່ຽນແທັກນີ້ໃຫ້ເປັນພຽງແຕ່ ``py3``. " +"ມັນມັກຈະ ຖືກຕັ້ງຄ່າພາຍໃນ :file:`setup.cfg` ພາຍໃຕ້ຫົວຂໍ້ ``[bdist_wheel]`` ໂດຍການກຳນົດ " +"``universal = 1``." + +#: ../source/guides/dropping-older-python-versions.rst:29 +msgid "" +"If you use this method, either remove this option or section, or explicitly " +"set ``universal`` to ``0``:" +msgstr "" +"ຫາກທ່ານໃຊ້ວິທີນີ້, ໃຫ້ລຶບຕົວເລືອກ ຫຼື ຫົວຂໍ້ນີ້ອອກ, ຫຼື ກຳນົດ ``universal`` ເປັນ ``0`` ຢ່າງຊັດເຈນ:" + +#: ../source/guides/dropping-older-python-versions.rst:41 +msgid "" +"Regarding :ref:`deprecated ` direct ``setup.py`` " +"invocations, passing the ``--universal`` flag on the command line could " +"override this setting." +msgstr "" +"ກ່ຽວກັບການໃຊ້ຄຳສັ່ງ ``setup.py`` ໂດຍກົງທີ່ :ref:`ບໍ່ແນະນຳໃຫ້ໃຊ້ແລ້ວ `, ການສົ່ງແຟລັກ ``--universal`` ໃນຄຳສັ່ງ (command line) " +"ອາດຈະໄປຂຽນທັບການຕັ້ງຄ່ານີ້." + +#: ../source/guides/dropping-older-python-versions.rst:45 +msgid "Defining the Python version required" +msgstr "ການກຳນົດເວີຊັນ Python ທີ່ຕ້ອງການ" + +#: ../source/guides/dropping-older-python-versions.rst:48 +msgid "1. Install twine" +msgstr "1. ຕິດຕັ້ງ twine" + +#: ../source/guides/dropping-older-python-versions.rst:50 +msgid "Ensure that you have twine available at its latest version. Steps:" +msgstr "ກວດສອບໃຫ້ແນ່ໃຈວ່າທ່ານມີ twine ເວີຊັນຫຼ້າສຸດ. ຂັ້ນຕອນ:" + +#: ../source/guides/dropping-older-python-versions.rst:66 +msgid "2. Specify the version ranges for supported Python distributions" +msgstr "2. ລະບຸຊ່ວງເວີຊັນສຳລັບ Python ທີ່ຮອງຮັບ" + +#: ../source/guides/dropping-older-python-versions.rst:68 +msgid "" +"Set the version ranges declaring which Python distributions are supported " +"within your project's :file:`pyproject.toml`. The :ref:`requires-python` " +"configuration field corresponds to the :ref:`Requires-Python ` core metadata field:" +msgstr "" +"ກຳນົດຊ່ວງເວີຊັນເພື່ອປະກາດວ່າ Python ເວີຊັນໃດແດ່ທີ່ຮອງຮັບ ພາຍໃນໄຟລ໌ :file:`pyproject.toml` " +"ຂອງໂຄງການ. ຫ້ອງຂໍ້ມູນການຕັ້ງຄ່າ :ref:`requires-python` ຈະກົງກັບຫ້ອງຂໍ້ມູນ metadata " +"ຫຼັກ :ref:`Requires-Python `:" + +#: ../source/guides/dropping-older-python-versions.rst:80 +msgid "" +"You can specify version ranges and exclusion rules (complying with " +"the :ref:`version-specifiers` specification), such as at least Python 3.9. " +"Or, at least Python 3.7 and beyond, skipping the 3.7.0 and 3.7.1 point " +"releases:" +msgstr "" +"ທ່ານສາມາດລະບຸຊ່ວງເວີຊັນ ແລະ ກົດການຍົກເວັ້ນ (ຕາມຂໍ້ກຳນົດ :ref:`version-specifiers`), ເຊັ່ນ " +"ຢ່າງໜ້ອຍ Python 3.9. ຫຼື ຢ່າງໜ້ອຍ Python 3.7 ຂຶ້ນໄປ, ໂດຍຂ້າມເວີຊັນຍ່ອຍ 3.7.0 ແລະ 3.7.1:" + +#: ../source/guides/dropping-older-python-versions.rst:89 +msgid "" +"If using the :ref:`setuptools` build backend, consult the `dependency-" +"management`_ documentation for more options." +msgstr "" +"ຫາກໃຊ້ :ref:`setuptools` ເປັນ build backend, ໃຫ້ເບິ່ງເອກະສານ `dependency-" +"management`_ ສຳລັບຕົວເລືອກເພີ່ມເຕີມ." + +#: ../source/guides/dropping-older-python-versions.rst:92 +msgid "" +"Avoid adding upper bounds to the version ranges, e.g. ``\">= 3.8, < " +"3.10\"``. Doing so can cause different errors and version conflicts. See the " +"`discourse-discussion`_ for more information." +msgstr "" +"ຫຼີກເວັ້ນການເພີ່ມຂີດຈຳກັດສູງສຸດໃຫ້ກັບຊ່ວງເວີຊັນ, ເຊັ່ນ ``\">= 3.8, < 3.10\"``. " +"ການເຮັດແບບນັ້ນອາດຈະເຮັດໃຫ້ເກີດຂໍ້ຜິດພາດ ແລະ ການຂັດແຍ້ງຂອງເວີຊັນ. ເບິ່ງ `discourse-" +"discussion`_ ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ." + +#: ../source/guides/dropping-older-python-versions.rst:96 +msgid "3. Validating the Metadata before publishing" +msgstr "3. ການກວດສອບ Metadata ກ່ອນການເຜີຍແຜ່" + +#: ../source/guides/dropping-older-python-versions.rst:98 +msgid "" +"Within a Python source package (the zip or the tar-gz file you download) is " +"a text file called PKG-INFO." +msgstr "" +"ພາຍໃນແພັກເກດແຫຼ່ງກຳເນີດ Python (ໄຟລ໌ zip ຫຼື tar-gz ທີ່ທ່ານດາວໂຫຼດ) ຈະມີໄຟລ໌ຂໍ້ຄວາມທີ່ຊື່ວ່າ PKG-" +"INFO." + +#: ../source/guides/dropping-older-python-versions.rst:100 +msgid "" +"This file is generated by the :term:`build backend ` when it " +"generates the source package. The file contains a set of keys and values, " +"the list of keys is part of the PyPA standard metadata format." +msgstr "" +"ໄຟລ໌ນີ້ຖືກສ້າງຂຶ້ນໂດຍ :term:`build backend ` ເມື່ອມັນ " +"ສ້າງແພັກເກດແຫຼ່ງກຳເນີດ. ໄຟລ໌ນີ້ປະກອບດ້ວຍຊຸດຂອງ keys ແລະ values, ເຊິ່ງລາຍຊື່ຂອງ keys " +"ແມ່ນສ່ວນໜຶ່ງຂອງຮູບແບບ metadata ມາດຕະຖານຂອງ PyPA." + +#: ../source/guides/dropping-older-python-versions.rst:103 +msgid "You can see the contents of the generated file like this:" +msgstr "ທ່ານສາມາດເບິ່ງເນື້ອໃນຂອງໄຟລ໌ທີ່ຖືກສ້າງຂຶ້ນໄດ້ດັ່ງນີ້:" + +#: ../source/guides/dropping-older-python-versions.rst:109 +msgid "Validate that the following is in place, before publishing the package:" +msgstr "ກວດສອບໃຫ້ແນ່ໃຈວ່າສິ່ງຕໍ່ໄປນີ້ຖືກຕ້ອງ ກ່ອນທີ່ຈະເຜີຍແຜ່ແພັກເກດ:" + +#: ../source/guides/dropping-older-python-versions.rst:111 +msgid "" +"If you have upgraded correctly, the ``Metadata-Version`` value should be 1.2 " +"or higher." +msgstr "ຫາກທ່ານໄດ້ອັບເກຣດຢ່າງຖືກຕ້ອງ, ຄ່າ ``Metadata-Version`` ຄວນຈະເປັນ 1.2 ຫຼື ສູງກວ່າ." + +#: ../source/guides/dropping-older-python-versions.rst:112 +msgid "" +"The ``Requires-Python`` field is set and matches your specification in the " +"configuration file." +msgstr "ຫ້ອງຂໍ້ມູນ ``Requires-Python`` ຖືກກຳນົດໄວ້ ແລະ ກົງກັບທີ່ທ່ານລະບຸໃນ ໄຟລ໌ການຕັ້ງຄ່າ." + +#: ../source/guides/dropping-older-python-versions.rst:115 +msgid "4. Publishing the package" +msgstr "4. ການເຜີຍແຜ່ແພັກເກດ" + +#: ../source/guides/dropping-older-python-versions.rst:117 +msgid "Proceed as suggested in :ref:`Uploading your Project to PyPI`." +msgstr "ດຳເນີນການຕາມທີ່ແນະນຳໃນ :ref:`Uploading your Project to PyPI`." + +#: ../source/guides/dropping-older-python-versions.rst:120 +msgid "Dropping a Python version" +msgstr "ການຍົກເລີກການຮອງຮັບ Python ເວີຊັນໃດໜຶ່ງ" + +#: ../source/guides/dropping-older-python-versions.rst:122 +msgid "" +"In principle, at least metadata support for Python versions should be kept " +"as long as possible, because once that has been dropped, people still " +"depending on a version will be forced to downgrade. If however supporting a " +"specific version becomes a blocker for a new feature or other issues occur, " +"the metadata ``Requires-Python`` should be amended. Of course this also " +"depends on whether the project needs to be stable and well-covered for a " +"wider range of users." +msgstr "" +"ຕາມຫຼັກການແລ້ວ, ຢ່າງໜ້ອຍຄວນຮັກສາການຮອງຮັບ metadata ສຳລັບ Python ເວີຊັນຕ່າງໆ " +"ໄວ້ໃຫ້ດົນທີ່ສຸດເທົ່າທີ່ຈະເຮັດໄດ້, ເພາະວ່າເມື່ອຖືກຍົກເລີກແລ້ວ, ຄົນທີ່ຍັງ " +"ຕ້ອງໃຊ້ເວີຊັນນັ້ນຢູ່ຈະຖືກບັງຄັບໃຫ້ຫຼຸດເວີຊັນ (downgrade). ຢ່າງໃດກໍ່ຕາມ, ຫາກ " +"ການຮອງຮັບເວີຊັນໃດໜຶ່ງກາຍເປັນອຸປະສັກສຳລັບຟີເຈີໃໝ່ ຫຼື ເກີດບັນຫາອື່ນໆ, metadata ``Requires-" +"Python`` ກໍ່ຄວນຈະຖືກແກ້ໄຂ. ແນ່ນອນວ່າສິ່ງນີ້ຍັງ ຂຶ້ນກັບວ່າໂຄງການຕ້ອງການຄວາມສະຖຽນ ແລະ " +"ຄອບຄຸມຜູ້ໃຊ້ໃນວົງກວ້າງຫຼືບໍ່." + +#: ../source/guides/dropping-older-python-versions.rst:128 +msgid "Each version compatibility change should have its own release." +msgstr "ການປ່ຽນແປງຄວາມເຂົ້າກັນໄດ້ຂອງແຕ່ລະເວີຊັນຄວນຈະມີການເຜີຍແຜ່ (release) ແຍກຕ່າງຫາກ." + +#: ../source/guides/dropping-older-python-versions.rst:132 +msgid "" +"When dropping a Python version, it might also be rewarding to upgrade the " +"project's code syntax generally, apart from updating the versions used in " +"visible places (like the testing environment). Tools like pyupgrade_ or " +"`ruff `_ can automate some of this work." +msgstr "" +"ເມື່ອຍົກເລີກການຮອງຮັບ Python ເວີຊັນໃດໜຶ່ງ, ມັນອາດຈະເປັນການດີທີ່ຈະອັບເກຣດ ໄວຍາກອນໂຄ້ດ " +"(syntax) ຂອງໂຄງການໂດຍທົ່ວໄປນຳ, ນອກເໜືອຈາກການອັບເດດເວີຊັນທີ່ໃຊ້ໃນ ບ່ອນທີ່ເຫັນໄດ້ຊັດເຈນ (ເຊັ່ນ " +"ສະພາບແວດລ້ອມການທົດສອບ). ເຄື່ອງມືເຊັ່ນ pyupgrade_ ຫຼື `ruff `_ ສາມາດຊ່ວຍເຮັດວຽກບາງສ່ວນນີ້ແບບອັດຕະໂນມັດໄດ້." + +#: ../source/guides/dropping-older-python-versions.rst:138 +msgid "Support for the Metadata 1.2 specification has been added in Pip 9.0." +msgstr "ການຮອງຮັບຂໍ້ກຳນົດ Metadata 1.2 ໄດ້ຖືກເພີ່ມເຂົ້າມາໃນ Pip 9.0." + +#: ../source/guides/hosting-your-own-index.rst:5 +msgid "Hosting your own simple repository" +msgstr "ການໂຮສຄັງເກັບ (repository) ແບບງ່າຍໆຂອງທ່ານເອງ" + +#: ../source/guides/hosting-your-own-index.rst:8 +msgid "" +"If you wish to host your own simple repository [1]_, you can either use a " +"software package like :doc:`devpi ` or you can simply create " +"the proper directory structure and use any web server that can serve static " +"files and generate an autoindex." +msgstr "" +"ຫາກທ່ານຕ້ອງການໂຮສຄັງເກັບແບບງ່າຍໆຂອງທ່ານເອງ [1]_, ທ່ານສາມາດໃຊ້ " +"ແພັກເກດຊອບແວເຊັ່ນ :doc:`devpi ` ຫຼື ທ່ານສາມາດສ້າງ ໂຄງສ້າງໂຟນເດີທີ່ຖືກຕ້ອງ " +"ແລະ ໃຊ້ເວັບເຊີເວີໃດກໍ່ໄດ້ທີ່ສາມາດໃຫ້ບໍລິການໄຟລ໌ຄົງທີ່ (static files) ແລະ " +"ສ້າງລາຍຊື່ໄຟລ໌ແບບອັດຕະໂນມັດ (autoindex)." + +#: ../source/guides/hosting-your-own-index.rst:13 +msgid "" +"In either case, since you'll be hosting a repository that is likely not in " +"your user's default repositories, you should instruct them in your project's " +"description to configure their installer appropriately. For example with pip:" +msgstr "" +"ບໍ່ວ່າຈະໃຊ້ວິທີໃດ, ເນື່ອງຈາກທ່ານຈະໂຮສຄັງເກັບທີ່ອາດຈະບໍ່ໄດ້ຢູ່ໃນລາຍຊື່ ຄັງເກັບເລີ່ມຕົ້ນຂອງຜູ້ໃຊ້, " +"ທ່ານຄວນແນະນຳພວກເຂົາໃນຄຳອະທິບາຍໂຄງການ ໃຫ້ຕັ້ງຄ່າເຄື່ອງມືຕິດຕັ້ງໃຫ້ເໝາະສົມ. ຕົວຢ່າງສຳລັບ pip:" + +#: ../source/guides/hosting-your-own-index.rst:29 +msgid "" +"In addition, it is **highly** recommended that you serve your repository " +"with valid HTTPS. At this time, the security of your user's installations " +"depends on all repositories using a valid HTTPS setup." +msgstr "" +"ນອກຈາກນັ້ນ, ຂໍແນະນຳ **ຢ່າງຍິ່ງ** ໃຫ້ທ່ານໃຫ້ບໍລິການຄັງເກັບຂອງທ່ານ ຜ່ານ HTTPS ທີ່ຖືກຕ້ອງ. " +"ໃນປັດຈຸບັນ, ຄວາມປອດໄພໃນການຕິດຕັ້ງຂອງຜູ້ໃຊ້ ແມ່ນຂຶ້ນກັບທຸກໆຄັງເກັບທີ່ຕ້ອງໃຊ້ການຕັ້ງຄ່າ HTTPS ທີ່ຖືກຕ້ອງ." + +#: ../source/guides/hosting-your-own-index.rst:35 +msgid "\"Manual\" repository" +msgstr "ຄັງເກັບແບບ \"ຈັດການເອງ\"" + +#: ../source/guides/hosting-your-own-index.rst:37 +msgid "" +"The directory layout is fairly simple, within a root directory you need to " +"create a directory for each project. This directory should be " +"the :ref:`normalized name ` of the project. Within each " +"of these directories simply place each of the downloadable files. If you " +"have the projects \"Foo\" (with the versions 1.0 and 2.0) and \"bar\" (with " +"the version 0.1) You should end up with a structure that looks like::" +msgstr "" +"ຮູບແບບໂຟນເດີແມ່ນຂ້ອນຂ້າງງ່າຍດາຍ, ພາຍໃນໂຟນເດີຫຼັກທ່ານຈຳເປັນຕ້ອງ ສ້າງໂຟນເດີສຳລັບແຕ່ລະໂຄງການ. " +"ໂຟນເດີນີ້ຄວນຈະເປັນ :ref:`normalized name ` ຂອງໂຄງການ. " +"ພາຍໃນແຕ່ລະໂຟນເດີເຫຼົ່ານີ້ ພຽງແຕ່ວາງໄຟລ໌ທີ່ສາມາດດາວໂຫຼດໄດ້ລົງໄປ. ຫາກທ່ານມີໂຄງການ \"Foo\" " +"(ທີ່ມີເວີຊັນ 1.0 ແລະ 2.0) ແລະ \"bar\" (ທີ່ມີ ເວີຊັນ 0.1) ທ່ານຈະໄດ້ໂຄງສ້າງທີ່ເປັນແບບນີ້::" + +#: ../source/guides/hosting-your-own-index.rst:50 +msgid "" +"Once you have this layout, simply configure your webserver to serve the root " +"directory with autoindex enabled. For an example using the built in Web " +"server in `Twisted`_, you would simply run ``twistd -n web --path .`` and " +"then instruct users to add the URL to their installer's configuration." +msgstr "" +"ເມື່ອທ່ານມີຮູບແບບນີ້ແລ້ວ, ພຽງແຕ່ຕັ້ງຄ່າເວັບເຊີເວີຂອງທ່ານໃຫ້ບໍລິການໂຟນເດີຫຼັກ ໂດຍເປີດໃຊ້ autoindex. " +"ຕົວຢ່າງຫາກໃຊ້ເວັບເຊີເວີທີ່ມາພ້ອມກັບ `Twisted`_, ທ່ານພຽງແຕ່ຣັນ ``twistd -n web --path .`` " +"ແລະ ຈາກນັ້ນແນະນຳໃຫ້ຜູ້ໃຊ້ ເພີ່ມ URL ເຂົ້າໄປໃນການຕັ້ງຄ່າເຄື່ອງມືຕິດຕັ້ງຂອງພວກເຂົາ." + +#: ../source/guides/hosting-your-own-index.rst:57 +#: ../source/guides/index-mirrors-and-caches.rst:47 +msgid "Existing projects" +msgstr "ໂຄງການທີ່ມີຢູ່ແລ້ວ" + +#: ../source/guides/hosting-your-own-index.rst:63 +msgid "Package upload" +msgstr "ການອັບໂຫຼດແພັກເກດ" + +#: ../source/guides/hosting-your-own-index.rst:64 +msgid "PyPI fall-through [2]_" +msgstr "ການດຶງຂໍ້ມູນຈາກ PyPI ຫາກບໍ່ພົບ [2]_" + +#: ../source/guides/hosting-your-own-index.rst:65 +#: ../source/guides/index-mirrors-and-caches.rst:56 +#: ../source/guides/supporting-windows-using-appveyor.rst:139 +msgid "Additional notes" +msgstr "ໝາຍເຫດເພີ່ມເຕີມ" + +#: ../source/guides/hosting-your-own-index.rst:67 +#: ../source/guides/index-mirrors-and-caches.rst:58 +msgid ":ref:`devpi`" +msgstr ":ref:`devpi`" + +#: ../source/guides/hosting-your-own-index.rst:68 +#: ../source/guides/hosting-your-own-index.rst:69 +#: ../source/guides/hosting-your-own-index.rst:75 +#: ../source/guides/hosting-your-own-index.rst:79 +#: ../source/guides/hosting-your-own-index.rst:99 +#: ../source/guides/hosting-your-own-index.rst:120 +#: ../source/guides/index-mirrors-and-caches.rst:59 +#: ../source/guides/index-mirrors-and-caches.rst:60 +#: ../source/guides/index-mirrors-and-caches.rst:66 +#: ../source/guides/index-mirrors-and-caches.rst:67 +#: ../source/guides/index-mirrors-and-caches.rst:74 +#: ../source/guides/index-mirrors-and-caches.rst:78 +#: ../source/guides/index-mirrors-and-caches.rst:80 +#: ../source/guides/index-mirrors-and-caches.rst:85 +#: ../source/guides/index-mirrors-and-caches.rst:86 +#: ../source/guides/index-mirrors-and-caches.rst:90 +#: ../source/guides/index-mirrors-and-caches.rst:92 +#: ../source/guides/index-mirrors-and-caches.rst:96 +#: ../source/guides/index-mirrors-and-caches.rst:98 +#: ../source/guides/index-mirrors-and-caches.rst:102 +#: ../source/guides/index-mirrors-and-caches.rst:104 +#: ../source/guides/index-mirrors-and-caches.rst:108 +#: ../source/guides/index-mirrors-and-caches.rst:110 +msgid "✔" +msgstr "✔" + +#: ../source/guides/hosting-your-own-index.rst:70 +msgid "" +"multiple indexes with inheritance, with syncing, replication, fail-over; " +"mirroring" +msgstr "" +"ຮອງຮັບຫຼາຍ index ແບບສືບທອດ, ມີການຊິງຄ໌ຂໍ້ມູນ, ການເຮັດສຳເນົາ, ລະບົບສຳຮອງ; ການເຮັດ mirror" + +#: ../source/guides/hosting-your-own-index.rst:73 +#: ../source/guides/index-mirrors-and-caches.rst:71 +msgid ":ref:`simpleindex`" +msgstr ":ref:`simpleindex`" + +#: ../source/guides/hosting-your-own-index.rst:78 +msgid ":ref:`pypiserver`" +msgstr ":ref:`pypiserver`" + +#: ../source/guides/hosting-your-own-index.rst:83 +msgid ":ref:`pypiprivate`" +msgstr ":ref:`pypiprivate`" + +#: ../source/guides/hosting-your-own-index.rst:88 +#: ../source/guides/index-mirrors-and-caches.rst:77 +msgid ":ref:`pypicloud`" +msgstr ":ref:`pypicloud`" + +#: ../source/guides/hosting-your-own-index.rst:91 +msgid "unmaintained; also cached proxying; authentication, authorisation" +msgstr "ບໍ່ໄດ້ຮັບການເບິ່ງແຍງແລ້ວ; ຮອງຮັບການເຮັດແຄຊ໌ພຣັອກຊີ; ການຢືນຢັນຕົວຕົນ, ການກຳນົດສິດ" + +#: ../source/guides/hosting-your-own-index.rst:93 +msgid ":ref:`pywharf`" +msgstr ":ref:`pywharf`" + +#: ../source/guides/hosting-your-own-index.rst:96 +msgid "unmaintained; serve files in GitHub" +msgstr "ບໍ່ໄດ້ຮັບການເບິ່ງແຍງແລ້ວ; ໃຫ້ບໍລິການໄຟລ໌ໃນ GitHub" + +#: ../source/guides/hosting-your-own-index.rst:98 +#: ../source/guides/index-mirrors-and-caches.rst:83 +msgid ":ref:`pulppython`" +msgstr ":ref:`pulppython`" + +#: ../source/guides/hosting-your-own-index.rst:101 +msgid "also mirroring, proxying; plugin for Pulp" +msgstr "ຮອງຮັບການເຮັດ mirror, proxy; ເປັນປລັກອິນສຳລັບ Pulp" + +#: ../source/guides/hosting-your-own-index.rst:103 +msgid ":ref:`pip2pi`" +msgstr ":ref:`pip2pi`" + +#: ../source/guides/hosting-your-own-index.rst:106 +msgid "also mirroring; manual synchronisation" +msgstr "ຮອງຮັບການເຮັດ mirror; ການຊິງຄ໌ຂໍ້ມູນດ້ວຍຕົນເອງ" + +#: ../source/guides/hosting-your-own-index.rst:108 +msgid ":ref:`dumb-pypi`" +msgstr ":ref:`dumb-pypi`" + +#: ../source/guides/hosting-your-own-index.rst:111 +msgid "not a server, but a static file site generator" +msgstr "ບໍ່ແມ່ນເຊີເວີ, ແຕ່ເປັນເຄື່ອງມືສ້າງເວັບໄຊໄຟລ໌ຄົງທີ່ (static file)" + +#: ../source/guides/hosting-your-own-index.rst:113 +msgid ":ref:`httpserver`" +msgstr ":ref:`httpserver`" + +#: ../source/guides/hosting-your-own-index.rst:116 +msgid "standard-library" +msgstr "standard-library" + +#: ../source/guides/hosting-your-own-index.rst:118 +#: ../source/guides/index-mirrors-and-caches.rst:107 +msgid "`Apache `_" +msgstr "`Apache `_" + +#: ../source/guides/hosting-your-own-index.rst:121 +#: ../source/guides/index-mirrors-and-caches.rst:111 +msgid "" +"using `mod_rewrite `_ and `mod_cache_disk `_, you can cache requests to package " +"indexes through an Apache server" +msgstr "" +"ການນຳໃຊ້ `mod_rewrite `_ ແລະ `mod_cache_disk `_ ຈະຊ່ວຍໃຫ້ທ່ານສາມາດເຮັດແຄຊ໌ຄຳຮ້ອງຂໍໄປຍັງ package " +"indexes ຜ່ານເຊີເວີ Apache ໄດ້" + +#: ../source/guides/hosting-your-own-index.rst:131 +msgid "" +"For complete documentation of the simple repository protocol, " +"see :ref:`simple repository API `." +msgstr "" +"ສຳລັບເອກະສານທີ່ສົມບູນຂອງ simple repository protocol, ເບິ່ງທີ່ :ref:`simple repository " +"API `." + +#: ../source/guides/hosting-your-own-index.rst:134 +msgid "" +"Can be configured to fall back to PyPI (or another package index) if a " +"requested package is missing." +msgstr "ສາມາດຕັ້ງຄ່າໃຫ້ກັບໄປດຶງຂໍ້ມູນຈາກ PyPI (ຫຼື package index ອື່ນ) ຫາກບໍ່ພົບແພັກເກດທີ່ຕ້ອງການ." + +#: ../source/guides/index.rst:4 +msgid "" +"**Guides** are focused on accomplishing a specific task and assume that you " +"are already familiar with the basics of Python packaging. If you're looking " +"for an introduction to packaging, see :doc:`/tutorials/index`." +msgstr "" +"**ຄຳແນະນຳ (Guides)** ແມ່ນເນັ້ນໃສ່ການເຮັດວຽກໃດໜຶ່ງໃຫ້ສຳເລັດ ແລະ ສົມມຸດວ່າທ່ານ " +"ຄຸ້ນເຄີຍກັບພື້ນຖານຂອງການເຮັດແພັກເກດ Python ຢູ່ແລ້ວ. ຫາກທ່ານກຳລັງຊອກຫາ ບົດຮຽນພື້ນຖານ, " +"ເບິ່ງໄດ້ທີ່ :doc:`/tutorials/index`." + +#: ../source/guides/index-mirrors-and-caches.rst:5 +msgid "Package index mirrors and caches" +msgstr "ການເຮັດ Mirror ແລະ Cache ຂອງ Package index" + +#: ../source/guides/index-mirrors-and-caches.rst:8 +msgid "2023-11-08" +msgstr "2023-11-08" + +#: ../source/guides/index-mirrors-and-caches.rst:10 +msgid "" +"Mirroring or caching of PyPI (and other :term:`package indexes `) can be used to speed up local package installation, allow offline " +"work, handle corporate firewalls or just plain Internet flakiness." +msgstr "" +"ການເຮັດ Mirroring ຫຼື caching ຂອງ PyPI (ແລະ :term:`package indexes ` ອື່ນໆ) ສາມາດໃຊ້ເພື່ອເລັ່ງຄວາມໄວໃນການຕິດຕັ້ງແພັກເກດພາຍໃນ, " +"ຊ່ວຍໃຫ້ເຮັດວຽກແບບອອຟລາຍໄດ້, ຈັດການກັບໄຟວໍຂອງອົງກອນ ຫຼື ບັນຫາອິນເຕີເນັດທີ່ບໍ່ສະຖຽນ." + +#: ../source/guides/index-mirrors-and-caches.rst:15 +msgid "There are multiple classes of options in this area:" +msgstr "ມີຕົວເລືອກຫຼາຍປະເພດໃນສ່ວນນີ້:" + +#: ../source/guides/index-mirrors-and-caches.rst:17 +msgid "local/hosted caching of package indexes." +msgstr "ການເຮັດ caching ຂອງ package indexes ແບບພາຍໃນ ຫຼື ແບບໂຮສ." + +#: ../source/guides/index-mirrors-and-caches.rst:19 +msgid "" +"local/hosted mirroring of a package index. A mirror is a (whole or partial) " +"copy of a package index, which can be used in place of the original index." +msgstr "" +"ການເຮັດ mirroring ຂອງ package index ແບບພາຍໃນ ຫຼື ແບບໂຮສ. mirror ແມ່ນການສຳເນົາ ຂໍ້ມູນ " +"(ທັງໝົດ ຫຼື ບາງສ່ວນ) ຂອງ package index, ເຊິ່ງສາມາດໃຊ້ແທນ index ຕົ້ນສະບັບໄດ້." + +#: ../source/guides/index-mirrors-and-caches.rst:23 +msgid "" +"private package index with fall-through to public package indexes (for " +"example, to mitigate dependency confusion attacks), also known as a proxy." +msgstr "" +"package index ສ່ວນຕົວທີ່ສາມາດດຶງຂໍ້ມູນຈາກ package index ສາທາລະນະຫາກບໍ່ພົບ (ຕົວຢ່າງ: " +"ເພື່ອປ້ອງກັນການໂຈມຕີແບບ dependency confusion), ເຊິ່ງເອີ້ນກັນວ່າ ພຣັອກຊີ (proxy)." + +#: ../source/guides/index-mirrors-and-caches.rst:29 +msgid "Caching with pip" +msgstr "ການເຮັດ Caching ດ້ວຍ pip" + +#: ../source/guides/index-mirrors-and-caches.rst:31 +msgid "" +"pip provides a number of facilities for speeding up installation by using " +"local cached copies of :term:`packages `:" +msgstr "" +"pip ມີເຄື່ອງມືຫຼາຍຢ່າງເພື່ອເລັ່ງຄວາມໄວໃນການຕິດຕັ້ງໂດຍການໃຊ້ແຄຊ໌ ຂອງ :term:`ແພັກເກດ " +"` ພາຍໃນເຄື່ອງ:" + +#: ../source/guides/index-mirrors-and-caches.rst:34 +msgid "" +":ref:`Fast & local installs ` by " +"downloading all the requirements for a project and then pointing pip at " +"those downloaded files instead of going to PyPI." +msgstr "" +":ref:`ການຕິດຕັ້ງແບບໄວ ແລະ ພາຍໃນ ` ໂດຍ " +"ການດາວໂຫຼດສິ່ງທີ່ຕ້ອງການທັງໝົດຂອງໂຄງການມາກ່ອນ ແລ້ວຊີ້ pip ໄປຫາ ໄຟລ໌ເຫຼົ່ານັ້ນແທນທີ່ຈະໄປທີ່ PyPI." + +#: ../source/guides/index-mirrors-and-caches.rst:37 +msgid "" +"A variation on the above which pre-builds the installation files for the " +"requirements using :ref:`python3 -m pip wheel `:" +msgstr "" +"ອີກຮູບແບບໜຶ່ງຂອງຂ້າງເທິງແມ່ນການບິວໄຟລ໌ຕິດຕັ້ງສຳລັບສິ່ງທີ່ຕ້ອງການລ່ວງໜ້າ ໂດຍໃຊ້ :ref:`python3 -m " +"pip wheel `:" + +#: ../source/guides/index-mirrors-and-caches.rst:53 +msgid "Cache" +msgstr "Cache" + +#: ../source/guides/index-mirrors-and-caches.rst:54 +msgid "Mirror" +msgstr "Mirror" + +#: ../source/guides/index-mirrors-and-caches.rst:55 +msgid "Proxy" +msgstr "Proxy" + +#: ../source/guides/index-mirrors-and-caches.rst:62 +msgid "" +"multiple indexes with inheritance; syncing, replication, fail-over; package " +"upload" +msgstr "" +"ຮອງຮັບຫຼາຍ index ແບບສືບທອດ; ການຊິງຄ໌ຂໍ້ມູນ, ການເຮັດສຳເນົາ, ລະບົບສຳຮອງ; ການອັບໂຫຼດແພັກເກດ" + +#: ../source/guides/index-mirrors-and-caches.rst:65 +msgid ":ref:`bandersnatch`" +msgstr ":ref:`bandersnatch`" + +#: ../source/guides/index-mirrors-and-caches.rst:75 +msgid "custom plugin enables caching; re-routing to other package indexes" +msgstr "ປລັກອິນທີ່ປັບແຕ່ງເອງຊ່ວຍໃຫ້ໃຊ້ແຄຊ໌ໄດ້; ການປ່ຽນເສັ້ນທາງໄປຫາ package indexes ອື່ນ" + +#: ../source/guides/index-mirrors-and-caches.rst:81 +msgid "unmaintained; authentication, authorisation" +msgstr "ບໍ່ໄດ້ຮັບການເບິ່ງແຍງແລ້ວ; ການຢືນຢັນຕົວຕົນ, ການກຳນົດສິດ" + +#: ../source/guides/index-mirrors-and-caches.rst:87 +msgid "plugin for Pulp; multiple proxied indexes; package upload" +msgstr "ປລັກອິນສຳລັບ Pulp; ຮອງຮັບຫຼາຍ proxied indexes; ການອັບໂຫຼດແພັກເກດ" + +#: ../source/guides/index-mirrors-and-caches.rst:89 +msgid ":ref:`proxpi`" +msgstr ":ref:`proxpi`" + +#: ../source/guides/index-mirrors-and-caches.rst:93 +#: ../source/guides/index-mirrors-and-caches.rst:99 +msgid "multiple proxied indexes" +msgstr "ຮອງຮັບຫຼາຍ proxied indexes" + +#: ../source/guides/index-mirrors-and-caches.rst:95 +msgid ":ref:`nginx_pypi_cache`" +msgstr ":ref:`nginx_pypi_cache`" + +#: ../source/guides/index-mirrors-and-caches.rst:101 +msgid ":ref:`flaskpypiproxy`" +msgstr ":ref:`flaskpypiproxy`" + +#: ../source/guides/index-mirrors-and-caches.rst:105 +msgid "unmaintained" +msgstr "ບໍ່ໄດ້ຮັບການເບິ່ງແຍງແລ້ວ" + +#: ../source/guides/installing-scientific-packages.rst:5 +msgid "Installing scientific packages" +msgstr "ການຕິດຕັ້ງແພັກເກດດ້ານວິທະຍາສາດ" + +#: ../source/guides/installing-scientific-packages.rst:8 +msgid "" +"Scientific software tends to have more complex dependencies than most, and " +"it will often have multiple build options to take advantage of different " +"kinds of hardware, or to interoperate with different pieces of external " +"software." +msgstr "" +"ຊອບແວດ້ານວິທະຍາສາດມັກຈະມີ dependencies ທີ່ຊັບຊ້ອນກວ່າທົ່ວໄປ, ແລະ " +"ມັນມັກຈະມີຕົວເລືອກການບິວຫຼາຍຮູບແບບເພື່ອດຶງປະສິດທິພາບຂອງຮາດແວແຕ່ລະປະເພດ, ຫຼື " +"ເພື່ອເຮັດວຽກຮ່ວມກັບຊອບແວພາຍນອກອື່ນໆ." + +#: ../source/guides/installing-scientific-packages.rst:13 +msgid "" +"In particular, `NumPy `__, which provides the basis for " +"most of the software in the `scientific Python stack `_ can be configured to interoperate with different FORTRAN " +"libraries, and can take advantage of different levels of vectorized " +"instructions available in modern CPUs." +msgstr "" +"ໂດຍສະເພາະ, `NumPy `__, ເຊິ່ງເປັນພື້ນຖານໃຫ້ກັບຊອບແວສ່ວນໃຫຍ່ໃນ " +"`scientific Python stack `_ ສາມາດຖືກຕັ້ງຄ່າໃຫ້ " +"ເຮັດວຽກຮ່ວມກັບໄລບຣາຣີ FORTRAN ທີ່ແຕກຕ່າງກັນ, ແລະ ສາມາດນຳໃຊ້ຄຳສັ່ງ vectorized " +"ໃນລະດັບຕ່າງໆທີ່ມີຢູ່ໃນ CPU ສະໄໝໃໝ່." + +#: ../source/guides/installing-scientific-packages.rst:19 +msgid "" +"Starting with version 1.10.4 of NumPy and version 1.0.0 of SciPy, pre-built " +"32-bit and 64-bit binaries in the ``wheel`` format are available for all " +"major operating systems (Windows, macOS, and Linux) on PyPI. Note, however, " +"that on Windows, NumPy binaries are linked against the `ATLAS `__ BLAS/LAPACK library, restricted to SSE2 " +"instructions, so they may not provide optimal linear algebra performance." +msgstr "" +"ເລີ່ມແຕ່ NumPy ເວີຊັນ 1.10.4 ແລະ SciPy ເວີຊັນ 1.0.0 ເປັນຕົ້ນມາ, ໄຟລ໌ binary ແບບ 32-bit " +"ແລະ 64-bit ທີ່ບິວໄວ້ແລ້ວໃນຮູບແບບ ``wheel`` ແມ່ນມີໃຫ້ ສຳລັບທຸກລະບົບປະຕິບັດການຫຼັກ (Windows, " +"macOS, ແລະ Linux) ໃນ PyPI. ຢ່າງໃດກໍ່ຕາມ, ໃນ Windows, binary ຂອງ NumPy " +"ແມ່ນຖືກເຊື່ອມໂຍງກັບໄລບຣາຣີ `ATLAS `__ BLAS/" +"LAPACK, ເຊິ່ງຈຳກັດຢູ່ທີ່ຄຳສັ່ງ SSE2, ດັ່ງນັ້ນພວກມັນອາດຈະບໍ່ໄດ້ໃຫ້ປະສິດທິພາບ ສູງສຸດໃນການຄຳນວນ " +"linear algebra." + +#: ../source/guides/installing-scientific-packages.rst:26 +msgid "" +"There are a number of alternative options for obtaining scientific Python " +"libraries (or any other Python libraries that require a compilation " +"environment to install from source and don't provide pre-built wheel files " +"on PyPI)." +msgstr "" +"ມີທາງເລືອກອື່ນໆໃນການຕິດຕັ້ງໄລບຣາຣີ Python ດ້ານວິທະຍາສາດ (ຫຼື ໄລບຣາຣີ Python ອື່ນໆ " +"ທີ່ຕ້ອງໃຊ້ສະພາບແວດລ້ອມໃນການຄອມໄພລ໌ເພື່ອຕິດຕັ້ງຈາກ source ແລະ ບໍ່ມີໄຟລ໌ wheel ທີ່ບິວໄວ້ແລ້ວໃນ " +"PyPI)." + +#: ../source/guides/installing-scientific-packages.rst:32 +msgid "Building from source" +msgstr "ການບິວຈາກ source" + +#: ../source/guides/installing-scientific-packages.rst:34 +msgid "" +"The same complexity which makes it difficult to distribute NumPy (and many " +"of the projects that depend on it) as wheel files also make them difficult " +"to build from source yourself. However, for intrepid folks that are willing " +"to spend the time wrangling compilers and linkers for both C and FORTRAN, " +"building from source is always an option." +msgstr "" +"ຄວາມຊັບຊ້ອນແບບດຽວກັນທີ່ເຮັດໃຫ້ການແຈກຢາຍ NumPy (ແລະ ຫຼາຍໂຄງການທີ່ຕ້ອງໃຊ້ມັນ) ໃນຮູບແບບໄຟລ໌ " +"wheel ເປັນເລື່ອງຍາກ ກໍ່ເຮັດໃຫ້ການບິວຈາກ source ດ້ວຍຕົນເອງເປັນເລື່ອງຍາກຄືກັນ. ຢ່າງໃດກໍ່ຕາມ, " +"ສຳລັບຜູ້ທີ່ກ້າຫານ ແລະ ເຕັມໃຈທີ່ຈະໃຊ້ເວລາກັບ compilers ແລະ linkers ສຳລັບທັງ C ແລະ FORTRAN, " +"ການບິວຈາກ source ກໍ່ເປັນທາງເລືອກສະເໝີ." + +#: ../source/guides/installing-scientific-packages.rst:42 +msgid "Linux distribution packages" +msgstr "ແພັກເກດຈາກລະບົບ Linux (Linux distribution packages)" + +#: ../source/guides/installing-scientific-packages.rst:44 +msgid "" +"For Linux users, the system package manager will often have pre-compiled " +"versions of various pieces of scientific software, including NumPy and other " +"parts of the scientific Python stack." +msgstr "" +"ສຳລັບຜູ້ໃຊ້ Linux, ຕົວຈັດການແພັກເກດຂອງລະບົບມັກຈະມີເວີຊັນທີ່ຄອມໄພລ໌ໄວ້ແລ້ວ " +"ສຳລັບຊອບແວວິທະຍາສາດຕ່າງໆ, ລວມທັງ NumPy ແລະ ສ່ວນອື່ນໆຂອງ scientific Python stack." + +#: ../source/guides/installing-scientific-packages.rst:48 +msgid "" +"If using versions which may be several months old is acceptable, then this " +"is likely to be a good option (just make sure to allow access to " +"distributions installed into the system Python when using virtual " +"environments)." +msgstr "" +"ຫາກການໃຊ້ເວີຊັນທີ່ອາດຈະເກົ່າກວ່າສອງສາມເດືອນເປັນເລື່ອງທີ່ຮັບໄດ້, ວິທີນີ້ ກໍ່ເປັນທາງເລືອກທີ່ດີ " +"(ພຽງແຕ່ກວດສອບໃຫ້ແນ່ໃຈວ່າໄດ້ອະນຸຍາດໃຫ້ເຂົ້າເຖິງ distributions ທີ່ຕິດຕັ້ງໃນ system Python " +"ເມື່ອໃຊ້ virtual environments)." + +#: ../source/guides/installing-scientific-packages.rst:54 +msgid "Windows installers" +msgstr "ຕົວຕິດຕັ້ງສຳລັບ Windows" + +#: ../source/guides/installing-scientific-packages.rst:56 +msgid "" +"Many Python projects that don't (or can't) currently publish wheel files at " +"least publish Windows installers, either on PyPI or on their project " +"download page. Using these installers allows users to avoid the need to set " +"up a suitable environment to build extensions locally." +msgstr "" +"ຫຼາຍໂຄງການ Python ທີ່ຍັງບໍ່ໄດ້ (ຫຼື ບໍ່ສາມາດ) ເຜີຍແຜ່ໄຟລ໌ wheel ໃນປັດຈຸບັນ " +"ຢ່າງໜ້ອຍກໍ່ຈະເຜີຍແຜ່ຕົວຕິດຕັ້ງ Windows, ບໍ່ວ່າຈະໃນ PyPI ຫຼື ໃນໜ້າດາວໂຫຼດ ຂອງໂຄງການ. " +"ການໃຊ້ຕົວຕິດຕັ້ງເຫຼົ່ານີ້ຊ່ວຍໃຫ້ຜູ້ໃຊ້ບໍ່ຈຳເປັນຕ້ອງຕັ້ງຄ່າ ສະພາບແວດລ້ອມທີ່ເໝາະສົມເພື່ອບິວ extensions " +"ພາຍໃນເຄື່ອງ." + +#: ../source/guides/installing-scientific-packages.rst:61 +msgid "" +"The extensions provided in these installers are typically compatible with " +"the CPython Windows installers published on python.org." +msgstr "" +"ສ່ວນເສີມ (extensions) ທີ່ສະໜອງໃຫ້ໃນຕົວຕິດຕັ້ງເຫຼົ່ານີ້ " +"ໂດຍທົ່ວໄປແລ້ວແມ່ນສາມາດໃຊ້ງານຮ່ວມກັນໄດ້ກັບຕົວຕິດຕັ້ງ CPython Windows ທີ່ເຜີຍແຜ່ຢູ່ python.org." + +#: ../source/guides/installing-scientific-packages.rst:64 +msgid "" +"As with Linux system packages, the Windows installers will only install into " +"a system Python installation - they do not support installation in virtual " +"environments. Allowing access to distributions installed into the system " +"Python when using virtual environments is a common approach to working " +"around this limitation." +msgstr "" +"ເຊັ່ນດຽວກັນກັບແພັກເກດລະບົບ Linux, ຕົວຕິດຕັ້ງ Windows ຈະຕິດຕັ້ງລົງໃນ system Python ເທົ່ານັ້ນ - " +"ພວກມັນບໍ່ຮອງຮັບການຕິດຕັ້ງໃນ virtual environments. ການອະນຸຍາດໃຫ້ເຂົ້າເຖິງ distributions " +"ທີ່ຕິດຕັ້ງໃນ system Python ເມື່ອໃຊ້ virtual environments ແມ່ນວິທີທົ່ວໄປໃນການແກ້ໄຂຂໍ້ຈຳກັດນີ້." + +#: ../source/guides/installing-scientific-packages.rst:70 +msgid "" +"The :term:`Wheel` project also provides a :command:`wheel convert` " +"subcommand that can convert a Windows :command:`bdist_wininst` installer to " +"a wheel." +msgstr "" +"ໂຄງການ :term:`Wheel` ຍັງມີຄຳສັ່ງຍ່ອຍ :command:`wheel convert` ທີ່ສາມາດປ່ຽນຕົວຕິດຕັ້ງ " +"Windows :command:`bdist_wininst` ໃຫ້ເປັນ wheel ໄດ້." + +#: ../source/guides/installing-scientific-packages.rst:77 +msgid "macOS installers and package managers" +msgstr "ຕົວຕິດຕັ້ງ ແລະ ຕົວຈັດການແພັກເກດສຳລັບ macOS" + +#: ../source/guides/installing-scientific-packages.rst:79 +msgid "" +"Similar to the situation on Windows, many projects (including NumPy) publish " +"macOS installers that are compatible with the macOS CPython binaries " +"published on python.org." +msgstr "" +"ຄ້າຍຄືກັບໃນ Windows, ຫຼາຍໂຄງການ (ລວມທັງ NumPy) ໄດ້ເຜີຍແຜ່ຕົວຕິດຕັ້ງ macOS ທີ່ເຂົ້າກັນໄດ້ກັບ " +"binary ຂອງ macOS CPython ທີ່ເຜີຍແຜ່ໃນ python.org." + +#: ../source/guides/installing-scientific-packages.rst:83 +msgid "" +"macOS users also have access to Linux distribution style package managers " +"such as ``Homebrew``. The SciPy site has more details on using Homebrew to " +"`install SciPy on macOS `_." +msgstr "" +"ຜູ້ໃຊ້ macOS ຍັງສາມາດເຂົ້າເຖິງຕົວຈັດການແພັກເກດແບບດຽວກັບ Linux ເຊັ່ນ ``Homebrew``. ເວັບໄຊ " +"SciPy ມີລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບການໃຊ້ Homebrew ເພື່ອ `ຕິດຕັ້ງ SciPy ໃນ macOS `_." + +#: ../source/guides/installing-scientific-packages.rst:89 +msgid "SciPy distributions" +msgstr "ການແຈກຢາຍ SciPy" + +#: ../source/guides/installing-scientific-packages.rst:91 +msgid "" +"The SciPy site lists `several distributions `_ " +"that provide the full SciPy stack to end users in an easy to use and update " +"format." +msgstr "" +"ເວັບໄຊ SciPy ໄດ້ລະບຸ `ການແຈກຢາຍຫຼາຍຮູບແບບ `_ ທີ່ໃຫ້ " +"SciPy stack ແບບເຕັມຮູບແບບແກ່ຜູ້ໃຊ້ໃນຮູບແບບທີ່ໃຊ້ງ່າຍ ແລະ ອັບເດດໄດ້ງ່າຍ." + +#: ../source/guides/installing-scientific-packages.rst:96 +msgid "" +"Some of these distributions may not be compatible with the standard ``pip`` " +"and ``virtualenv`` based toolchain." +msgstr "" +"ບາງການແຈກຢາຍເຫຼົ່ານີ້ອາດຈະບໍ່ເຂົ້າກັນໄດ້ກັບເຄື່ອງມືມາດຕະຖານທີ່ອີງຕາມ ``pip`` ແລະ " +"``virtualenv``." + +#: ../source/guides/installing-scientific-packages.rst:100 +#: ../source/key_projects.rst:812 +msgid "Spack" +msgstr "Spack" + +#: ../source/guides/installing-scientific-packages.rst:101 +msgid "" +"`Spack `_ is a flexible package manager " +"designed to support multiple versions, configurations, platforms, and " +"compilers. It was built to support the needs of large supercomputing centers " +"and scientific application teams, who must often build software many " +"different ways. Spack is not limited to Python; it can install packages for " +"``C``, ``C++``, ``Fortran``, ``R``, and other languages. It is non-" +"destructive; installing a new version of one package does not break existing " +"installations, so many configurations can coexist on the same system." +msgstr "" +"`Spack `_ ແມ່ນຕົວຈັດການແພັກເກດທີ່ຢືດຢຸ່ນ " +"ທີ່ຖືກອອກແບບມາເພື່ອຮອງຮັບຫຼາຍເວີຊັນ, ການຕັ້ງຄ່າ, ແພລັດຟອມ, ແລະ compilers. " +"ມັນຖືກສ້າງຂຶ້ນເພື່ອຮອງຮັບຄວາມຕ້ອງການຂອງສູນຊຸບເປີຄອມພິວເຕີຂະໜາດໃຫຍ່ ແລະ " +"ທີມງານພັດທະນາຊອບແວວິທະຍາສາດ, ເຊິ່ງມັກຈະຕ້ອງບິວຊອບແວໃນຫຼາຍວິທີ. Spack ບໍ່ໄດ້ຈຳກັດຢູ່ແຕ່ Python; " +"ມັນສາມາດຕິດຕັ້ງແພັກເກດສຳລັບ ``C``, ``C++``, ``Fortran``, ``R``, ແລະ ພາສາອື່ນໆ. " +"ມັນເປັນລະບົບທີ່ບໍ່ທຳລາຍຂໍ້ມູນເກົ່າ; ການຕິດຕັ້ງເວີຊັນໃໝ່ຂອງແພັກເກດໜຶ່ງ " +"ຈະບໍ່ໄປເຮັດໃຫ້ການຕິດຕັ້ງທີ່ມີຢູ່ກ່ອນແລ້ວເພພັງ, ດັ່ງນັ້ນຫຼາຍການຕັ້ງຄ່າຈຶ່ງສາມາດຢູ່ຮ່ວມກັນໃນລະບົບດຽວກັນໄດ້." + +#: ../source/guides/installing-scientific-packages.rst:110 +msgid "" +"Spack offers a simple but powerful syntax that allows users to specify " +"versions and configuration options concisely. Package files are written in " +"pure Python, and they are templated so that it is easy to swap compilers, " +"dependency implementations (like MPI), versions, and build options with a " +"single package file. Spack also generates *module* files so that packages " +"can be loaded and unloaded from the user's environment." +msgstr "" +"Spack ມີໄວຍາກອນທີ່ງ່າຍດາຍແຕ່ຊົງພະລັງ ເຊິ່ງຊ່ວຍໃຫ້ຜູ້ໃຊ້ລະບຸເວີຊັນ ແລະ " +"ຕົວເລືອກການຕັ້ງຄ່າໄດ້ຢ່າງກະທັດຮັດ. ໄຟລ໌ແພັກເກດຖືກຂຽນດ້ວຍ Python ລ້ວນໆ, ແລະ " +"ພວກມັນເປັນແບບແມ່ແບບ (templated) ເພື່ອໃຫ້ງ່າຍຕໍ່ການສະຫຼັບ compilers, ການນຳໃຊ້ dependency " +"(ເຊັ່ນ MPI), ເວີຊັນ, ແລະ ຕົວເລືອກການບິວ ດ້ວຍໄຟລ໌ ແພັກເກດດຽວ. Spack ຍັງສ້າງໄຟລ໌ *module* " +"ເພື່ອໃຫ້ແພັກເກດ ສາມາດຖືກໂຫຼດເຂົ້າ ຫຼື ຖອນອອກຈາກສະພາບແວດລ້ອມຂອງຜູ້ໃຊ້ໄດ້." + +#: ../source/guides/installing-scientific-packages.rst:119 +msgid "The conda cross-platform package manager" +msgstr "ຕົວຈັດການແພັກເກດແບບຂ້າມແພລັດຟອມ conda" + +#: ../source/guides/installing-scientific-packages.rst:121 +msgid "" +"``conda`` is an open source (BSD licensed) package management system and " +"environment management system that allows users to install multiple versions " +"of binary software packages and their dependencies, and easily switch " +"between them. It is a cross-platform tool working on Windows, MacOS, and " +"Linux. Conda can be used to package up and distribute all kinds of packages, " +"it is not limited to just Python packages. It has full support for native " +"virtual environments. Conda makes environments first-class citizens, making " +"it easy to create independent environments even for C libraries. It is " +"written in Python, but is Python-agnostic. Conda manages Python itself as a " +"package, so that :command:`conda update python` is possible, in contrast to " +"pip, which only manages Python packages." +msgstr "" +"``conda`` ແມ່ນລະບົບຈັດການແພັກເກດ ແລະ ລະບົບຈັດການສະພາບແວດລ້ອມແບບໂອເພນຊອດ (ລິຂະສິດ BSD) " +"ທີ່ຊ່ວຍໃຫ້ຜູ້ໃຊ້ຕິດຕັ້ງຊອບແວ binary ຫຼາຍເວີຊັນ ແລະ dependencies ຂອງພວກມັນ, ແລະ " +"ສາມາດສະຫຼັບລະຫວ່າງພວກມັນໄດ້ຢ່າງງ່າຍດາຍ. ມັນເປັນເຄື່ອງມື ແບບຂ້າມແພລັດຟອມທີ່ເຮັດວຽກໄດ້ໃນ " +"Windows, MacOS, ແລະ Linux. Conda ສາມາດ ໃຊ້ເພື່ອເຮັດແພັກເກດ ແລະ " +"ແຈກຢາຍແພັກເກດທຸກປະເພດ, ບໍ່ໄດ້ຈຳກັດພຽງແຕ່ ແພັກເກດ Python. ມັນຮອງຮັບ virtual " +"environments ຢ່າງເຕັມຮູບແບບ. Conda ໃຫ້ ຄວາມສຳຄັນກັບ environments ເປັນອັນດັບທຳອິດ, " +"ເຮັດໃຫ້ງ່າຍຕໍ່ການສ້າງ environments ທີ່ເປັນອິດສະຫຼະເຖິງແມ່ນວ່າຈະເປັນໄລບຣາຣີ C. ມັນຖືກຂຽນດ້ວຍ " +"Python, ແຕ່ ບໍ່ໄດ້ຍຶດຕິດກັບ Python ເທົ່ານັ້ນ. Conda ຈັດການ Python ເອງໃນຮູບແບບແພັກເກດ, " +"ດັ່ງນັ້ນ :command:`conda update python` ຈຶ່ງສາມາດເຮັດໄດ້, ເຊິ່ງຕ່າງຈາກ pip " +"ທີ່ຈັດການພຽງແຕ່ແພັກເກດ Python." + +#: ../source/guides/installing-scientific-packages.rst:133 +msgid "" +"Anaconda `Anaconda `_ is a Python " +"distribution published by Anaconda, Inc. It is a stable collection of Open " +"Source packages for big data and scientific use, and a collection of " +"Graphical Interface utilities for managing conda environments." +msgstr "" +"Anaconda `Anaconda `_ ແມ່ນການແຈກຢາຍ " +"Python ທີ່ເຜີຍແຜ່ໂດຍ Anaconda, Inc. ມັນແມ່ນການລວບລວມແພັກເກດໂອເພນຊອດ " +"ທີ່ສະຖຽນສຳລັບການໃຊ້ງານດ້ານ big data ແລະ ວິທະຍາສາດ, ແລະ ເປັນການລວບລວມ ເຄື່ອງມືແບບກຣາຟິກ " +"(GUI) ສຳລັບການຈັດການ conda environments." + +#: ../source/guides/installing-scientific-packages.rst:135 +msgid "" +"In addition to the full distribution provided by Anaconda, the conda package " +"manager itself is available in `miniconda `_, `miniforge `_, and " +"`pixi `_." +msgstr "" +"ນອກເໜືອຈາກການແຈກຢາຍແບບເຕັມຮູບແບບຂອງ Anaconda ແລ້ວ, ຕົວຈັດການແພັກເກດ conda " +"ເອງກໍ່ມີໃຫ້ໃຊ້ໃນ `miniconda `_, `miniforge " +"`_, ແລະ `pixi `_." + +#: ../source/guides/installing-scientific-packages.rst:138 +msgid "" +"Conda packages are available on multiple channels on Anaconda.org, including " +"the default channel supported by Anaconda, Inc, the community supported " +"conda-forge channel, which provides a wide variety of pre-built packages, " +"and some domain-specific package collections." +msgstr "" +"ແພັກເກດ Conda ມີໃຫ້ໃຊ້ໃນຫຼາຍຊ່ອງທາງ (channels) ໃນ Anaconda.org, ລວມທັງ " +"ຊ່ອງທາງເລີ່ມຕົ້ນທີ່ສະໜັບສະໜູນໂດຍ Anaconda, Inc, ຊ່ອງທາງ conda-forge ທີ່ ສະໜັບສະໜູນໂດຍຊຸມຊົນ, " +"ເຊິ່ງມີແພັກເກດທີ່ບິວໄວ້ແລ້ວຫຼາກຫຼາຍຊະນິດ, ແລະ ການລວບລວມແພັກເກດສະເພາະທາງບາງຢ່າງ." + +#: ../source/guides/installing-stand-alone-command-line-tools.rst:4 +msgid "Installing stand alone command line tools" +msgstr "ການຕິດຕັ້ງເຄື່ອງມືຄຳສັ່ງ (command line) ແບບສະແຕນອາໂລນ" + +#: ../source/guides/installing-stand-alone-command-line-tools.rst:6 +msgid "" +"Many packages provide command line applications. Examples of such packages " +"are `mypy `_, `flake8 `_, `black `_, and :ref:`pipenv`." +msgstr "" +"ຫຼາຍແພັກເກດມີແອັບພລິເຄຊັນແບບຄຳສັ່ງ (command line). ຕົວຢ່າງຂອງແພັກເກດເຫຼົ່ານັ້ນ ແມ່ນ `mypy " +"`_, `flake8 `_, `black `_, ແລະ :ref:`pipenv`." + +#: ../source/guides/installing-stand-alone-command-line-tools.rst:12 +msgid "" +"Usually you want to be able to access these applications from anywhere on " +"your system, but installing packages and their dependencies to the same " +"global environment can cause version conflicts and break dependencies the " +"operating system has on Python packages." +msgstr "" +"ໂດຍປົກກະຕິແລ້ວ ທ່ານຕ້ອງການເຂົ້າເຖິງແອັບພລິເຄຊັນເຫຼົ່ານີ້ໄດ້ຈາກທຸກບ່ອນໃນລະບົບ ຂອງທ່ານ, " +"ແຕ່ການຕິດຕັ້ງແພັກເກດ ແລະ dependencies ຂອງພວກມັນລົງໃນ global environment ດຽວກັນ " +"ອາດຈະເຮັດໃຫ້ເກີດການຂັດແຍ້ງຂອງເວີຊັນ ແລະ ເຮັດໃຫ້ dependencies " +"ທີ່ລະບົບປະຕິບັດການໃຊ້ງານຢູ່ເພພັງໄດ້." + +#: ../source/guides/installing-stand-alone-command-line-tools.rst:17 +msgid "" +":ref:`pipx` solves this by creating a virtual environment for each package, " +"while also ensuring that its applications are accessible through a directory " +"that is on your ``$PATH``. This allows each package to be upgraded or " +"uninstalled without causing conflicts with other packages, and allows you to " +"safely run the applications from anywhere." +msgstr "" +":ref:`pipx` ແກ້ໄຂບັນຫານີ້ໂດຍການສ້າງ virtual environment ໃຫ້ກັບແຕ່ລະແພັກເກດ, " +"ພ້ອມທັງຮັບປະກັນວ່າແອັບພລິເຄຊັນຂອງມັນສາມາດເຂົ້າເຖິງໄດ້ຜ່ານໂຟນເດີທີ່ຢູ່ໃນ ``$PATH`` ຂອງທ່ານ. " +"ສິ່ງນີ້ຊ່ວຍໃຫ້ແຕ່ລະແພັກເກດສາມາດອັບເກຣດ ຫຼື ຖອນການຕິດຕັ້ງ ໄດ້ໂດຍບໍ່ເຮັດໃຫ້ເກີດການຂັດແຍ້ງກັບແພັກເກດອື່ນ, " +"ແລະ ຊ່ວຍໃຫ້ທ່ານ ຣັນແອັບພລິເຄຊັນໄດ້ຢ່າງປອດໄພຈາກທຸກບ່ອນ." + +#: ../source/guides/installing-stand-alone-command-line-tools.rst:23 +msgid "pipx only works with Python 3.6+." +msgstr "pipx ເຮັດວຽກໄດ້ກັບ Python 3.6 ຂຶ້ນໄປເທົ່ານັ້ນ." + +#: ../source/guides/installing-stand-alone-command-line-tools.rst:25 +msgid "pipx is installed with pip:" +msgstr "pipx ຖືກຕິດຕັ້ງດ້ວຍ pip:" + +#: ../source/guides/installing-stand-alone-command-line-tools.rst:43 +msgid "" +"``ensurepath`` ensures that the application directory is on your ``$PATH``. " +"You may need to restart your terminal for this update to take effect." +msgstr "" +"``ensurepath`` ຈະຮັບປະກັນວ່າໂຟນເດີແອັບພລິເຄຊັນຢູ່ໃນ ``$PATH`` ຂອງທ່ານ. " +"ທ່ານອາດຈະຕ້ອງເລີ່ມຕົ້ນເທີມິນໍ (terminal) ໃໝ່ເພື່ອໃຫ້ການປ່ຽນແປງນີ້ມີຜົນ." + +#: ../source/guides/installing-stand-alone-command-line-tools.rst:46 +msgid "" +"Now you can install packages with ``pipx install`` and run the package's " +"applications(s) from anywhere." +msgstr "" +"ຕອນນີ້ທ່ານສາມາດຕິດຕັ້ງແພັກເກດດ້ວຍ ``pipx install`` ແລະ ຣັນ " +"ແອັບພລິເຄຊັນຂອງແພັກເກດໄດ້ຈາກທຸກບ່ອນ." + +#: ../source/guides/installing-stand-alone-command-line-tools.rst:54 +#: ../source/specifications/entry-points.rst:113 +msgid "For example:" +msgstr "ຕົວຢ່າງ:" + +#: ../source/guides/installing-stand-alone-command-line-tools.rst:76 +msgid "" +"To see a list of packages installed with pipx and which applications are " +"available, use ``pipx list``:" +msgstr "" +"ເພື່ອເບິ່ງລາຍຊື່ແພັກເກດທີ່ຕິດຕັ້ງດ້ວຍ pipx ແລະ ເບິ່ງວ່າແອັບພລິເຄຊັນໃດແດ່ທີ່ ສາມາດໃຊ້ໄດ້, ໃຫ້ໃຊ້ຄຳສັ່ງ " +"``pipx list``:" + +#: ../source/guides/installing-stand-alone-command-line-tools.rst:100 +msgid "To upgrade or uninstall a package:" +msgstr "ເພື່ອອັບເກຣດ ຫຼື ຖອນການຕິດຕັ້ງແພັກເກດ:" + +#: ../source/guides/installing-stand-alone-command-line-tools.rst:107 +msgid "pipx can be upgraded or uninstalled with pip:" +msgstr "pipx ສາມາດອັບເກຣດ ຫຼື ຖອນການຕິດຕັ້ງໄດ້ດ້ວຍ pip:" + +#: ../source/guides/installing-stand-alone-command-line-tools.rst:123 +msgid "" +"pipx also allows you to install and run the latest version of an application " +"in a temporary, ephemeral environment. For example:" +msgstr "" +"pipx ຍັງຊ່ວຍໃຫ້ທ່ານຕິດຕັ້ງ ແລະ ຣັນແອັບພລິເຄຊັນເວີຊັນຫຼ້າສຸດ ໃນສະພາບແວດລ້ອມຊົ່ວຄາວໄດ້. ຕົວຢ່າງ:" + +#: ../source/guides/installing-stand-alone-command-line-tools.rst:130 +msgid "To see the full list of commands pipx offers, run:" +msgstr "ເພື່ອເບິ່ງລາຍຊື່ຄຳສັ່ງທັງໝົດທີ່ pipx ມີໃຫ້, ຣັນຄຳສັ່ງ:" + +#: ../source/guides/installing-stand-alone-command-line-tools.rst:136 +msgid "You can learn more about pipx at https://pipx.pypa.io/." +msgstr "ທ່ານສາມາດຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບ pipx ໄດ້ທີ່ https://pipx.pypa.io/." + +#: ../source/guides/installing-using-linux-tools.rst:5 +msgid "Installing pip/setuptools/wheel with Linux Package Managers" +msgstr "ການຕິດຕັ້ງ pip/setuptools/wheel ດ້ວຍຕົວຈັດການແພັກເກດຂອງ Linux" + +#: ../source/guides/installing-using-linux-tools.rst:8 +msgid "2021-07-26" +msgstr "2021-07-26" + +#: ../source/guides/installing-using-linux-tools.rst:10 +msgid "" +"This section covers how to install :ref:`pip`, :ref:`setuptools`, " +"and :ref:`wheel` using Linux package managers." +msgstr "" +"ພາກນີ້ຈະເວົ້າເຖິງວິທີການຕິດຕັ້ງ :ref:`pip`, :ref:`setuptools`, ແລະ :ref:`wheel` " +"ໂດຍໃຊ້ຕົວຈັດການແພັກເກດຂອງ Linux." + +#: ../source/guides/installing-using-linux-tools.rst:13 +msgid "" +"If you're using a Python that was downloaded from `python.org `_, then this section does not apply. See " +"the :ref:`installing_requirements` section instead." +msgstr "" +"ຫາກທ່ານກຳລັງໃຊ້ Python ທີ່ດາວໂຫຼດມາຈາກ `python.org `_, " +"ພາກນີ້ຈະບໍ່ກ່ຽວຂ້ອງ. ໃຫ້ເບິ່ງທີ່ພາກ :ref:`installing_requirements` ແທນ." + +#: ../source/guides/installing-using-linux-tools.rst:17 +msgid "" +"Note that it's common for the versions of :ref:`pip`, :ref:`setuptools`, " +"and :ref:`wheel` supported by a specific Linux Distribution to be outdated " +"by the time it's released to the public, and updates generally only occur " +"for security reasons, not for feature updates. For certain Distributions, " +"there are additional repositories that can be enabled to provide newer " +"versions. The repositories we know about are explained below." +msgstr "" +"ໃຫ້ສັງເກດວ່າເວີຊັນຂອງ :ref:`pip`, :ref:`setuptools`, ແລະ :ref:`wheel` ທີ່ ຮອງຮັບໂດຍ " +"Linux Distribution ໃດໜຶ່ງ ມັກຈະເກົ່າກວ່າປົກກະຕິເມື່ອ ເຜີຍແຜ່ສູ່ສາທາລະນະ, ແລະ " +"ການອັບເດດໂດຍທົ່ວໄປຈະເກີດຂຶ້ນສະເພາະເຫດຜົນ ດ້ານຄວາມປອດໄພ, ບໍ່ແມ່ນການອັບເດດຟີເຈີໃໝ່. ສຳລັບບາງ " +"Distribution, ຈະມີ repositories ເພີ່ມເຕີມທີ່ສາມາດເປີດໃຊ້ເພື່ອໃຫ້ໄດ້ເວີຊັນໃໝ່ກວ່າ. " +"ພວກເຮົາຈະອະທິບາຍ repositories ທີ່ພວກເຮົາຮູ້ຈັກໄວ້ດ້ານລຸ່ມນີ້." + +#: ../source/guides/installing-using-linux-tools.rst:24 +msgid "" +"Also note that it's somewhat common for Distributions to apply patches for " +"the sake of security and normalization to their own standards. In some " +"cases, this can lead to bugs or unexpected behaviors that vary from the " +"original unpatched versions. When this is known, we will make note of it " +"below." +msgstr "" +"ນອກຈາກນັ້ນ, ມັນເປັນເລື່ອງປົກກະຕິທີ່ Distribution ຈະມີການແກ້ໄຂ (patch) ເພື່ອຄວາມປອດໄພ ແລະ " +"ຄວາມເປັນມາດຕະຖານຂອງພວກເຂົາເອງ. ໃນບາງ ກໍລະນີ, ສິ່ງນີ້ອາດຈະເຮັດໃຫ້ເກີດບັກ ຫຼື ພຶດຕິກຳທີ່ບໍ່ຄາດຄິດ " +"ເຊິ່ງແຕກຕ່າງ ຈາກເວີຊັນຕົ້ນສະບັບທີ່ບໍ່ໄດ້ແກ້ໄຂ. ຫາກມີຂໍ້ມູນສ່ວນນີ້, ພວກເຮົາຈະ ໝາຍເຫດໄວ້ໃຫ້." + +#: ../source/guides/installing-using-linux-tools.rst:31 +msgid "Fedora" +msgstr "Fedora" + +#: ../source/guides/installing-using-linux-tools.rst:37 +msgid "" +"To learn more about Python in Fedora, please visit the `official Fedora " +"docs`_, `Python Classroom`_ or `Fedora Loves Python`_." +msgstr "" +"ເພື່ອຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບ Python ໃນ Fedora, ໃຫ້ໄປທີ່ `official Fedora docs`_, `Python " +"Classroom`_ ຫຼື `Fedora Loves Python`_." + +#: ../source/guides/installing-using-linux-tools.rst:45 +msgid "CentOS/RHEL" +msgstr "CentOS/RHEL" + +#: ../source/guides/installing-using-linux-tools.rst:47 +msgid "" +"CentOS and RHEL don't offer :ref:`pip` or :ref:`wheel` in their core " +"repositories, although :ref:`setuptools` is installed by default." +msgstr "" +"CentOS ແລະ RHEL ບໍ່ມີ :ref:`pip` ຫຼື :ref:`wheel` ໃນ repositories ຫຼັກ, " +"ເຖິງແມ່ນວ່າ :ref:`setuptools` ຈະຖືກຕິດຕັ້ງມາໃຫ້ເປັນຄ່າເລີ່ມຕົ້ນກໍ່ຕາມ." + +#: ../source/guides/installing-using-linux-tools.rst:50 +msgid "To install pip and wheel for the system Python, there are two options:" +msgstr "ເພື່ອຕິດຕັ້ງ pip ແລະ wheel ສຳລັບ system Python, ມີສອງທາງເລືອກ:" + +#: ../source/guides/installing-using-linux-tools.rst:52 +msgid "" +"Enable the `EPEL repository `_ using " +"`these instructions `__. On EPEL 7, you can install pip and wheel like so:" +msgstr "" +"ເປີດໃຊ້ `EPEL repository `_ ໂດຍໃຊ້ " +"`ຄຳແນະນຳເຫຼົ່ານີ້ `__. ໃນ EPEL 7, ທ່ານສາມາດຕິດຕັ້ງ pip ແລະ wheel ໄດ້ດັ່ງນີ້:" + +#: ../source/guides/installing-using-linux-tools.rst:61 +msgid "" +"Since EPEL only offers extra, non-conflicting packages, EPEL does not offer " +"setuptools, since it's in the core repository." +msgstr "" +"ເນື່ອງຈາກ EPEL ໃຫ້ບໍລິການສະເພາະແພັກເກດເສີມທີ່ບໍ່ຂັດແຍ້ງກັບລະບົບ, EPEL ຈຶ່ງບໍ່ມີ setuptools ໃຫ້, " +"ເພາະມັນມີຢູ່ໃນ repository ຫຼັກຢູ່ແລ້ວ." + +#: ../source/guides/installing-using-linux-tools.rst:65 +msgid "" +"Enable the `PyPA Copr Repo `_ using `these instructions `__ [1]_. You can install pip and " +"wheel like so:" +msgstr "" +"ເປີດໃຊ້ `PyPA Copr Repo `_ " +"ໂດຍໃຊ້ `ຄຳແນະນຳເຫຼົ່ານີ້ `__ [1]_. ທ່ານສາມາດຕິດຕັ້ງ pip ແລະ wheel ໄດ້ດັ່ງນີ້:" + +#: ../source/guides/installing-using-linux-tools.rst:74 +msgid "To additionally upgrade setuptools, run:" +msgstr "ເພື່ອອັບເກຣດ setuptools ເພີ່ມເຕີມ, ຣັນຄຳສັ່ງ:" + +#: ../source/guides/installing-using-linux-tools.rst:81 +msgid "" +"To install pip, wheel, and setuptools, in a parallel, non-system environment " +"(using yum) then there are two options:" +msgstr "" +"ເພື່ອຕິດຕັ້ງ pip, wheel, ແລະ setuptools ໃນສະພາບແວດລ້ອມຂະໜານທີ່ບໍ່ແມ່ນ ຂອງລະບົບ (ໂດຍໃຊ້ " +"yum), ມີສອງທາງເລືອກ:" + +#: ../source/guides/installing-using-linux-tools.rst:85 +msgid "" +"Use the \"Software Collections\" feature to enable a parallel collection " +"that includes pip, setuptools, and wheel." +msgstr "" +"ໃຊ້ຟີເຈີ \"Software Collections\" ເພື່ອເປີດໃຊ້ຄໍເລັກຊັນຂະໜານ ເຊິ່ງລວມມີ pip, setuptools, " +"ແລະ wheel." + +#: ../source/guides/installing-using-linux-tools.rst:88 +msgid "" +"For Redhat, see here: https://developers.redhat.com/products/" +"softwarecollections/overview" +msgstr "" +"ສຳລັບ Redhat, ເບິ່ງທີ່ນີ້: https://developers.redhat.com/products/" +"softwarecollections/overview" + +#: ../source/guides/installing-using-linux-tools.rst:90 +msgid "For CentOS, see here: https://github.com/sclorg" +msgstr "ສຳລັບ CentOS, ເບິ່ງທີ່ນີ້: https://github.com/sclorg" + +#: ../source/guides/installing-using-linux-tools.rst:92 +msgid "Be aware that collections may not contain the most recent versions." +msgstr "ຈົ່ງລະວັງວ່າ collections ອາດຈະບໍ່ມີເວີຊັນຫຼ້າສຸດ." + +#: ../source/guides/installing-using-linux-tools.rst:94 +msgid "" +"Enable the `IUS repository `_ and install one of the " +"`parallel-installable `_ " +"Pythons, along with pip, setuptools, and wheel, which are kept fairly up to " +"date." +msgstr "" +"ເປີດໃຊ້ `IUS repository `_ ແລະ ຕິດຕັ້ງ Python ທີ່ " +"`ຕິດຕັ້ງແບບຂະໜານໄດ້ `_ ພ້ອມກັບ " +"pip, setuptools, ແລະ wheel ເຊິ່ງມີການອັບເດດຢູ່ສະເໝີ." + +#: ../source/guides/installing-using-linux-tools.rst:100 +msgid "For example, for Python 3.4 on CentOS7/RHEL7:" +msgstr "ຕົວຢ່າງ, ສຳລັບ Python 3.4 ໃນ CentOS7/RHEL7:" + +#: ../source/guides/installing-using-linux-tools.rst:108 +msgid "openSUSE" +msgstr "openSUSE" + +#: ../source/guides/installing-using-linux-tools.rst:118 +msgid "Debian/Ubuntu and derivatives" +msgstr "Debian/Ubuntu ແລະ ລະບົບທີ່ກ່ຽວຂ້ອງ" + +#: ../source/guides/installing-using-linux-tools.rst:120 +msgid "Firstly, update and refresh repository lists by running this command:" +msgstr "ກ່ອນອື່ນ, ໃຫ້ອັບເດດ ແລະ ຣີເຟຣຊລາຍຊື່ repository ໂດຍຣັນຄຳສັ່ງ:" + +#: ../source/guides/installing-using-linux-tools.rst:129 +msgid "" +"Recent Debian/Ubuntu versions have modified pip to use the `\"User Scheme\" " +"`_ by default, " +"which is a significant behavior change that can be surprising to some users." +msgstr "" +"Debian/Ubuntu ເວີຊັນຫຼ້າສຸດໄດ້ມີການປັບປ່ຽນ pip ໃຫ້ໃຊ້ `\"User Scheme\" `_ ເປັນຄ່າເລີ່ມຕົ້ນ, " +"ເຊິ່ງເປັນການປ່ຽນແປງພຶດຕິກຳທີ່ສຳຄັນ ແລະ ອາດຈະເຮັດໃຫ້ຜູ້ໃຊ້ບາງຄົນແປກໃຈ." + +#: ../source/guides/installing-using-linux-tools.rst:135 +msgid "Arch Linux" +msgstr "Arch Linux" + +#: ../source/guides/installing-using-linux-tools.rst:143 +msgid "" +"Currently, there is no \"copr\" yum plugin available for CentOS/RHEL, so the " +"only option is to manually place the repo files as described." +msgstr "" +"ປັດຈຸບັນ, ຍັງບໍ່ມີປລັກອິນ yum \"copr\" ສຳລັບ CentOS/RHEL, ດັ່ງນັ້ນທາງເລືອກດຽວ ແມ່ນການວາງໄຟລ໌ " +"repo ດ້ວຍຕົນເອງຕາມທີ່ໄດ້ອະທິບາຍໄວ້." + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:2 +msgid "Install packages in a virtual environment using pip and venv" +msgstr "ການຕິດຕັ້ງແພັກເກດໃນ virtual environment ໂດຍໃຊ້ pip ແລະ venv" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:4 +msgid "" +"This guide discusses how to create and activate a virtual environment using " +"the standard library's virtual environment tool :ref:`venv` and install " +"packages. The guide covers how to:" +msgstr "" +"ຄຳແນະນຳນີ້ຈະເວົ້າເຖິງວິທີການສ້າງ ແລະ ເປີດໃຊ້ virtual environment ໂດຍໃຊ້ " +"ເຄື່ອງມືມາດຕະຖານ :ref:`venv` ແລະ ການຕິດຕັ້ງແພັກເກດ. ຄຳແນະນຳນີ້ຄອບຄຸມ:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:8 +msgid "Create and activate a virtual environment" +msgstr "ການສ້າງ ແລະ ເປີດໃຊ້ virtual environment" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:9 +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:153 +msgid "Prepare pip" +msgstr "ການກຽມ pip ໃຫ້ພ້ອມ" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:10 +msgid "Install packages into a virtual environment using the ``pip`` command" +msgstr "ການຕິດຕັ້ງແພັກເກດລົງໃນ virtual environment ໂດຍໃຊ້ຄຳສັ່ງ ``pip``" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:11 +msgid "Use and create a requirements file" +msgstr "ການໃຊ້ ແລະ ສ້າງໄຟລ໌ requirements" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:14 +msgid "" +"This guide applies to supported versions of Python, currently 3.8 and higher." +msgstr "ຄຳແນະນຳນີ້ໃຊ້ໄດ້ກັບ Python ເວີຊັນທີ່ໄດ້ຮັບການຮອງຮັບ, ປັດຈຸບັນແມ່ນ 3.8 ຂຶ້ນໄປ." + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:18 +msgid "" +"This guide uses the term **package** to refer to a :term:`Distribution " +"Package`, which commonly is installed from an external host. This differs " +"from the term :term:`Import Package` which refers to import modules in your " +"Python source code." +msgstr "" +"ຄຳແນະນຳນີ້ໃຊ້ຄຳວ່າ **ແພັກເກດ (package)** ເພື່ອໝາຍເຖິງ :term:`Distribution Package`, " +"ເຊິ່ງປົກກະຕິແລ້ວຈະຖືກຕິດຕັ້ງຈາກແຫຼ່ງພາຍນອກ. ສິ່ງນີ້ແຕກຕ່າງຈາກຄຳວ່າ :term:`Import Package` " +"ເຊິ່ງໝາຍເຖິງໂມດູນທີ່ທ່ານ import ໃນໂຄ້ດ Python ຂອງທ່ານ." + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:25 +msgid "" +"This guide has the prerequisite that you are using an official Python " +"version obtained from . If you are using " +"your operating system's package manager to install Python, please ensure " +"that Python is installed before proceeding with these steps." +msgstr "" +"ຄຳແນະນຳນີ້ມີເງື່ອນໄຂເບື້ອງຕົ້ນວ່າທ່ານກຳລັງໃຊ້ Python ເວີຊັນທາງການຈາກ . ຫາກທ່ານໃຊ້ຕົວຈັດການແພັກເກດຂອງ ລະບົບປະຕິບັດການເພື່ອຕິດຕັ້ງ " +"Python, ກະລຸນາກວດສອບໃຫ້ແນ່ໃຈວ່າ Python ຖືກຕິດຕັ້ງແລ້ວ ກ່ອນທີ່ຈະດຳເນີນການຕາມຂັ້ນຕອນເຫຼົ່ານີ້." + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:32 +msgid "Create and Use Virtual Environments" +msgstr "ການສ້າງ ແລະ ນຳໃຊ້ Virtual Environments" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:35 +msgid "Create a new virtual environment" +msgstr "ສ້າງ virtual environment ໃໝ່" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:37 +msgid "" +":ref:`venv` (for Python 3) allows you to manage separate package " +"installations for different projects. It creates a \"virtual\" isolated " +"Python installation. When you switch projects, you can create a new virtual " +"environment which is isolated from other virtual environments. You benefit " +"from the virtual environment since packages can be installed confidently and " +"will not interfere with another project's environment." +msgstr "" +":ref:`venv` (ສຳລັບ Python 3) ຊ່ວຍໃຫ້ທ່ານຈັດການການຕິດຕັ້ງແພັກເກດແຍກກັນ ສຳລັບແຕ່ລະໂຄງການ. " +"ມັນຈະສ້າງການຕິດຕັ້ງ Python ແບບ \"ຈຳລອງ\" ທີ່ແຍກຕ່າງຫາກ. ເມື່ອທ່ານສະຫຼັບໂຄງການ, " +"ທ່ານສາມາດສ້າງ virtual environment ໃໝ່ທີ່ ແຍກອອກຈາກ virtual environment ອື່ນໆ. " +"ທ່ານຈະໄດ້ຮັບປະໂຫຍດຈາກ virtual environment ເນື່ອງຈາກສາມາດຕິດຕັ້ງແພັກເກດໄດ້ຢ່າງໝັ້ນໃຈ ແລະ " +"ມັນຈະບໍ່ໄປລົບກວນ ສະພາບແວດລ້ອມຂອງໂຄງການອື່ນ." + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:45 +msgid "" +"It is recommended to use a virtual environment when working with third party " +"packages." +msgstr "" +"ຂໍແນະນຳໃຫ້ໃຊ້ virtual environment ເມື່ອເຮັດວຽກກັບແພັກເກດຈາກພາຍນອກ (third party)." + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:48 +msgid "" +"To create a virtual environment, go to your project's directory and run the " +"following command. This will create a new virtual environment in a local " +"folder named ``.venv``:" +msgstr "" +"ເພື່ອສ້າງ virtual environment, ໃຫ້ໄປທີ່ໂຟນເດີໂຄງການຂອງທ່ານ ແລະ ຣັນ ຄຳສັ່ງຕໍ່ໄປນີ້. ສິ່ງນີ້ຈະສ້າງ " +"virtual environment ໃໝ່ໃນໂຟນເດີພາຍໃນ ທີ່ຊື່ວ່າ ``.venv``:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:64 +msgid "" +"The second argument is the location to create the virtual environment. " +"Generally, you can just create this in your project and call it ``.venv``." +msgstr "" +"ຄ່າທີສອງແມ່ນສະຖານທີ່ທີ່ຈະສ້າງ virtual environment. ໂດຍທົ່ວໄປແລ້ວ, " +"ທ່ານພຽງແຕ່ສ້າງມັນໄວ້ໃນໂຄງການຂອງທ່ານ ແລະ ຕັ້ງຊື່ວ່າ ``.venv``." + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:67 +msgid "" +"``venv`` will create a virtual Python installation in the ``.venv`` folder." +msgstr "``venv`` ຈະສ້າງການຕິດຕັ້ງ Python ແບບຈຳລອງໄວ້ໃນໂຟນເດີ ``.venv``." + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:69 +msgid "" +"You should exclude your virtual environment directory from your version " +"control system using ``.gitignore`` or similar." +msgstr "" +"ທ່ານຄວນຍົກເວັ້ນໂຟນເດີ virtual environment ຂອງທ່ານອອກຈາກລະບົບຄວບຄຸມເວີຊັນ (VCS) ໂດຍໃຊ້ " +"``.gitignore`` ຫຼື ສິ່ງທີ່ຄ້າຍຄືກັນ." + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:74 +msgid "Activate a virtual environment" +msgstr "ເປີດໃຊ້ virtual environment" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:76 +msgid "" +"Before you can start installing or using packages in your virtual " +"environment you'll need to ``activate`` it. Activating a virtual environment " +"will put the virtual environment-specific ``python`` and ``pip`` executables " +"into your shell's ``PATH``." +msgstr "" +"ກ່ອນທີ່ທ່ານຈະເລີ່ມຕິດຕັ້ງ ຫຼື ໃຊ້ແພັກເກດໃນ virtual environment, ທ່ານ ຈຳເປັນຕ້ອງ ``activate`` " +"(ເປີດໃຊ້) ມັນກ່ອນ. ການເປີດໃຊ້ virtual environment ຈະນຳເອົາໄຟລ໌ຣັນ ``python`` ແລະ " +"``pip`` ສະເພາະຂອງ environment ນັ້ນ ເຂົ້າໄປໃນ ``PATH`` ຂອງ shell ຂອງທ່ານ." + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:93 +msgid "" +"To confirm the virtual environment is activated, check the location of your " +"Python interpreter:" +msgstr "" +"ເພື່ອຢືນຢັນວ່າ virtual environment ຖືກເປີດໃຊ້ແລ້ວ, ໃຫ້ກວດສອບສະຖານທີ່ຂອງ Python " +"interpreter ຂອງທ່ານ:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:108 +msgid "" +"While the virtual environment is active, the above command will output a " +"filepath that includes the ``.venv`` directory, by ending with the following:" +msgstr "" +"ໃນຂະນະທີ່ virtual environment ກຳລັງເຮັດວຽກຢູ່, ຄຳສັ່ງຂ້າງເທິງຈະສະແດງ ເສັ້ນທາງໄຟລ໌ທີ່ມີໂຟນເດີ " +"``.venv`` ຢູ່ດ້ວຍ, ໂດຍຈະລົງທ້າຍດັ່ງນີ້:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:124 +msgid "" +"While a virtual environment is activated, pip will install packages into " +"that specific environment. This enables you to import and use packages in " +"your Python application." +msgstr "" +"ໃນຂະນະທີ່ virtual environment ຖືກເປີດໃຊ້, pip ຈະຕິດຕັ້ງແພັກເກດລົງໃນ environment " +"ນັ້ນໂດຍສະເພາະ. ສິ່ງນີ້ຊ່ວຍໃຫ້ທ່ານສາມາດ import ແລະ ໃຊ້ແພັກເກດ ໃນແອັບພລິເຄຊັນ Python " +"ຂອງທ່ານໄດ້." + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:130 +msgid "Deactivate a virtual environment" +msgstr "ປິດການໃຊ້ virtual environment" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:132 +msgid "" +"If you want to switch projects or leave your virtual environment, " +"``deactivate`` the environment:" +msgstr "" +"ຫາກທ່ານຕ້ອງການສະຫຼັບໂຄງການ ຫຼື ອອກຈາກ virtual environment, ໃຫ້ ``deactivate`` " +"(ປິດການໃຊ້) environment ນັ້ນ:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:140 +msgid "" +"Closing your shell will deactivate the virtual environment. If you open a " +"new shell window and want to use the virtual environment, reactivate it." +msgstr "" +"ການປິດ shell ຈະເປັນການປິດການໃຊ້ virtual environment ໂດຍອັດຕະໂນມັດ. ຫາກທ່ານເປີດ ໜ້າຕ່າງ " +"shell ໃໝ່ ແລະ ຕ້ອງການໃຊ້ virtual environment, ໃຫ້ເປີດໃຊ້ມັນຄືນໃໝ່." + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:145 +msgid "Reactivate a virtual environment" +msgstr "ເປີດໃຊ້ virtual environment ຄືນໃໝ່" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:147 +msgid "" +"If you want to reactivate an existing virtual environment, follow the same " +"instructions about activating a virtual environment. There's no need to " +"create a new virtual environment." +msgstr "" +"ຫາກທ່ານຕ້ອງການເປີດໃຊ້ virtual environment ທີ່ມີຢູ່ແລ້ວຄືນໃໝ່, ໃຫ້ປະຕິບັດຕາມ ຂັ້ນຕອນການເປີດໃຊ້ " +"virtual environment ແບບເກົ່າ. ບໍ່ຈຳເປັນຕ້ອງສ້າງ virtual environment ໃໝ່." + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:155 +msgid "" +":ref:`pip` is the reference Python package manager. It's used to install and " +"update packages into a virtual environment." +msgstr "" +":ref:`pip` ແມ່ນຕົວຈັດການແພັກເກດມາດຕະຖານຂອງ Python. ມັນຖືກໃຊ້ເພື່ອຕິດຕັ້ງ ແລະ " +"ອັບເດດແພັກເກດລົງໃນ virtual environment." + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:161 +msgid "" +"The Python installers for macOS include pip. On Linux, you may have to " +"install an additional package such as ``python3-pip``. You can make sure " +"that pip is up-to-date by running:" +msgstr "" +"ຕົວຕິດຕັ້ງ Python ສຳລັບ macOS ຈະລວມມີ pip ມາໃຫ້ແລ້ວ. ໃນ Linux, ທ່ານອາດຈະຕ້ອງ " +"ຕິດຕັ້ງແພັກເກດເພີ່ມເຕີມເຊັ່ນ ``python3-pip``. ທ່ານສາມາດກວດສອບໃຫ້ແນ່ໃຈ ວ່າ pip " +"ເປັນເວີຊັນຫຼ້າສຸດໄດ້ໂດຍຣັນຄຳສັ່ງ:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:170 +msgid "" +"Afterwards, you should have the latest version of pip installed in your user " +"site:" +msgstr "ຫຼັງຈາກນັ້ນ, ທ່ານຈະມີ pip ເວີຊັນຫຼ້າສຸດຖືກຕິດຕັ້ງຢູ່ໃນ user site ຂອງທ່ານ:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:179 +msgid "" +"The Python installers for Windows include pip. You can make sure that pip is " +"up-to-date by running:" +msgstr "" +"ຕົວຕິດຕັ້ງ Python ສຳລັບ Windows ຈະລວມມີ pip ມາໃຫ້ແລ້ວ. ທ່ານສາມາດກວດສອບໃຫ້ແນ່ໃຈ ວ່າ pip " +"ເປັນເວີຊັນຫຼ້າສຸດໄດ້ໂດຍຣັນຄຳສັ່ງ:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:187 +msgid "Afterwards, you should have the latest version of pip:" +msgstr "ຫຼັງຈາກນັ້ນ, ທ່ານຈະມີ pip ເວີຊັນຫຼ້າສຸດ:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:195 +msgid "Install packages using pip" +msgstr "ການຕິດຕັ້ງແພັກເກດໂດຍໃຊ້ pip" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:197 +msgid "" +"When your virtual environment is activated, you can install packages. Use " +"the ``pip install`` command to install packages." +msgstr "" +"ເມື່ອ virtual environment ຂອງທ່ານຖືກເປີດໃຊ້ແລ້ວ, ທ່ານສາມາດຕິດຕັ້ງແພັກເກດໄດ້. ໃຫ້ໃຊ້ຄຳສັ່ງ " +"``pip install`` ເພື່ອຕິດຕັ້ງແພັກເກດ." + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:201 +msgid "Install a package" +msgstr "ຕິດຕັ້ງແພັກເກດ" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:203 +msgid "" +"For example, let's install the `Requests`_ library from the :term:`Python " +"Package Index (PyPI)`:" +msgstr "" +"ຕົວຢ່າງ, ລອງຕິດຕັ້ງໄລບຣາຣີ `Requests`_ ຈາກ :term:`Python Package Index (PyPI)`:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:218 +msgid "" +"pip should download requests and all of its dependencies and install them:" +msgstr "pip ຈະດາວໂຫຼດ requests ແລະ dependencies ທັງໝົດຂອງມັນ ແລ້ວຕິດຕັ້ງພວກມັນ:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:239 +msgid "Install a specific package version" +msgstr "ຕິດຕັ້ງແພັກເກດເວີຊັນທີ່ລະບຸ" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:241 +msgid "" +"pip allows you to specify which version of a package to install " +"using :term:`version specifiers `. For example, to " +"install a specific version of ``requests``:" +msgstr "" +"pip ຊ່ວຍໃຫ້ທ່ານລະບຸເວີຊັນຂອງແພັກເກດທີ່ຈະຕິດຕັ້ງໄດ້ ໂດຍໃຊ້ :term:`version specifiers " +"`. ຕົວຢ່າງ, ເພື່ອຕິດຕັ້ງ ``requests`` ເວີຊັນທີ່ລະບຸ:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:257 +msgid "To install the latest ``2.x`` release of requests:" +msgstr "ເພື່ອຕິດຕັ້ງ requests ເວີຊັນຫຼ້າສຸດໃນຕະກູນ ``2.x``:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:271 +msgid "To install pre-release versions of packages, use the ``--pre`` flag:" +msgstr "ເພື່ອຕິດຕັ້ງແພັກເກດເວີຊັນທົດລອງ (pre-release), ໃຫ້ໃຊ້ແຟລັກ ``--pre``:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:287 +msgid "Install extras" +msgstr "ຕິດຕັ້ງສ່ວນເສີມ (extras)" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:289 +msgid "" +"Some packages have optional `extras`_. You can tell pip to install these by " +"specifying the extra in brackets:" +msgstr "" +"ບາງແພັກເກດມີ `ສ່ວນເສີມ`_ ໃຫ້ເລືອກ. ທ່ານສາມາດບອກໃຫ້ pip ຕິດຕັ້ງສິ່ງເຫຼົ່ານີ້ໄດ້ " +"ໂດຍການລະບຸສ່ວນເສີມໃນວົງຂໍ:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:309 +msgid "Install a package from source" +msgstr "ຕິດຕັ້ງແພັກເກດຈາກ source" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:311 +msgid "" +"pip can install a package directly from its source code. For example, to " +"install the source code in the ``google-auth`` directory:" +msgstr "" +"pip ສາມາດຕິດຕັ້ງແພັກເກດໄດ້ໂດຍກົງຈາກ source code ຂອງມັນ. ຕົວຢ່າງ, ເພື່ອຕິດຕັ້ງ source code " +"ໃນໂຟນເດີ ``google-auth``:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:328 +msgid "" +"Additionally, pip can install packages from source in :doc:`development mode " +"`, meaning that changes to the source " +"directory will immediately affect the installed package without needing to " +"re-install:" +msgstr "" +"ນອກຈາກນັ້ນ, pip ຍັງສາມາດຕິດຕັ້ງແພັກເກດຈາກ source ໃນ :doc:`ໂໝດນັກພັດທະນາ " +"`, ເຊິ່ງໝາຍຄວາມວ່າການປ່ຽນແປງໃດໆໃນ ໂຟນເດີ " +"source ຈະມີຜົນກັບແພັກເກດທີ່ຕິດຕັ້ງແລ້ວທັນທີ ໂດຍບໍ່ຕ້ອງ ຕິດຕັ້ງໃໝ່:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:347 +msgid "Install from version control systems" +msgstr "ຕິດຕັ້ງຈາກລະບົບຄວບຄຸມເວີຊັນ (VCS)" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:349 +msgid "" +"pip can install packages directly from their version control system. For " +"example, you can install directly from a git repository:" +msgstr "" +"pip ສາມາດຕິດຕັ້ງແພັກເກດໄດ້ໂດຍກົງຈາກລະບົບຄວບຄຸມເວີຊັນ. ຕົວຢ່າງ, ທ່ານສາມາດຕິດຕັ້ງໂດຍກົງຈາກ git " +"repository:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:356 +msgid "" +"For more information on supported version control systems and syntax, see " +"pip's documentation on :ref:`VCS Support `." +msgstr "" +"ສຳລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບລະບົບຄວບຄຸມເວີຊັນທີ່ຮອງຮັບ ແລະ ໄວຍາກອນ, ເບິ່ງ ເອກະສານຂອງ pip " +"ໃນສ່ວນ :ref:`VCS Support `." + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:361 +msgid "Install from local archives" +msgstr "ຕິດຕັ້ງຈາກໄຟລ໌ບີບອັດພາຍໃນເຄື່ອງ" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:363 +msgid "" +"If you have a local copy of a :term:`Distribution Package`'s archive (a zip, " +"wheel, or tar file) you can install it directly with pip:" +msgstr "" +"ຫາກທ່ານມີໄຟລ໌ບີບອັດຂອງ :term:`Distribution Package` ຢູ່ໃນເຄື່ອງ (ໄຟລ໌ zip, wheel, ຫຼື " +"tar) ທ່ານສາມາດຕິດຕັ້ງມັນໄດ້ໂດຍກົງດ້ວຍ pip:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:378 +msgid "" +"If you have a directory containing archives of multiple packages, you can " +"tell pip to look for packages there and not to use the :term:`Python Package " +"Index (PyPI)` at all:" +msgstr "" +"ຫາກທ່ານມີໂຟນເດີທີ່ບັນຈຸໄຟລ໌ບີບອັດຂອງຫຼາຍໆແພັກເກດ, ທ່ານສາມາດບອກໃຫ້ pip ໄປຊອກຫາແພັກເກດຢູ່ທີ່ນັ້ນ " +"ແລະ ບໍ່ໃຫ້ໃຊ້ :term:`Python Package Index (PyPI)` ເລີຍ:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:394 +msgid "" +"This is useful if you are installing packages on a system with limited " +"connectivity or if you want to strictly control the origin of distribution " +"packages." +msgstr "" +"ສິ່ງນີ້ມີປະໂຫຍດຫາກທ່ານກຳລັງຕິດຕັ້ງແພັກເກດໃນລະບົບທີ່ມີການເຊື່ອມຕໍ່ຈຳກັດ ຫຼື " +"ຫາກທ່ານຕ້ອງການຄວບຄຸມແຫຼ່ງທີ່ມາຂອງແພັກເກດຢ່າງເຂັ້ມງວດ." + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:400 +msgid "Install from other package indexes" +msgstr "ຕິດຕັ້ງຈາກ package indexes ອື່ນໆ" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:402 +msgid "" +"If you want to download packages from a different index than " +"the :term:`Python Package Index (PyPI)`, you can use the ``--index-url`` " +"flag:" +msgstr "" +"ຫາກທ່ານຕ້ອງການດາວໂຫຼດແພັກເກດຈາກ index ອື່ນທີ່ບໍ່ແມ່ນ :term:`Python Package Index " +"(PyPI)`, ທ່ານສາມາດໃຊ້ແຟລັກ ``--index-url``:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:417 +msgid "" +"If you want to allow packages from both the :term:`Python Package Index " +"(PyPI)` and a separate index, you can use the ``--extra-index-url`` flag " +"instead:" +msgstr "" +"ຫາກທ່ານຕ້ອງການອະນຸຍາດໃຫ້ຕິດຕັ້ງແພັກເກດໄດ້ຈາກທັງ :term:`Python Package Index (PyPI)` " +"ແລະ index ອື່ນ, ທ່ານສາມາດໃຊ້ແຟລັກ ``--extra-index-url`` ແທນ:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:434 +#: ../source/tutorials/installing-packages.rst:392 +msgid "Upgrading packages" +msgstr "ການອັບເກຣດແພັກເກດ" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:436 +msgid "" +"pip can upgrade packages in-place using the ``--upgrade`` flag. For example, " +"to install the latest version of ``requests`` and all of its dependencies:" +msgstr "" +"pip ສາມາດອັບເກຣດແພັກເກດໄດ້ໂດຍໃຊ້ແຟລັກ ``--upgrade``. ຕົວຢ່າງ, ເພື່ອຕິດຕັ້ງ ``requests`` " +"ເວີຊັນຫຼ້າສຸດ ພ້ອມກັບ dependencies ທັງໝົດຂອງມັນ:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:452 +msgid "Using a requirements file" +msgstr "ການໃຊ້ໄຟລ໌ requirements" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:454 +msgid "" +"Instead of installing packages individually, pip allows you to declare all " +"dependencies in a :ref:`Requirements File `. For " +"example you could create a :file:`requirements.txt` file containing:" +msgstr "" +"ແທນທີ່ຈະຕິດຕັ້ງແພັກເກດເທື່ອລະອັນ, pip ຊ່ວຍໃຫ້ທ່ານປະກາດ dependencies ທັງໝົດ " +"ໄວ້ໃນ :ref:`Requirements File `. ຕົວຢ່າງ ທ່ານສາມາດ " +"ສ້າງໄຟລ໌ :file:`requirements.txt` ທີ່ມີເນື້ອໃນດັ່ງນີ້:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:463 +msgid "" +"And tell pip to install all of the packages in this file using the ``-r`` " +"flag:" +msgstr "ແລະ ບອກໃຫ້ pip ຕິດຕັ້ງທຸກແພັກເກດທີ່ມີໃນໄຟລ໌ນີ້ ໂດຍໃຊ້ແຟລັກ ``-r``:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:478 +msgid "Freezing dependencies" +msgstr "ການເກັບລາຍຊື່ dependencies (Freezing)" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:480 +msgid "" +"Pip can export a list of all installed packages and their versions using the " +"``freeze`` command:" +msgstr "" +"Pip ສາມາດສົ່ງອອກລາຍຊື່ຂອງທຸກແພັກເກດທີ່ຕິດຕັ້ງແລ້ວ ພ້ອມກັບເວີຊັນຂອງພວກມັນ ໂດຍໃຊ້ຄຳສັ່ງ ``freeze``:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:495 +msgid "Which will output a list of package specifiers such as:" +msgstr "ເຊິ່ງຈະສະແດງລາຍຊື່ແພັກເກດອອກມາ ເຊັ່ນ:" + +#: ../source/guides/installing-using-pip-and-virtual-environments.rst:511 +msgid "" +"The ``pip freeze`` command is useful for creating :ref:`pip:Requirements " +"Files` that can re-create the exact versions of all packages installed in an " +"environment." +msgstr "" +"ຄຳສັ່ງ ``pip freeze`` ມີປະໂຫຍດໃນການສ້າງ :ref:`pip:Requirements Files` " +"ເພື່ອໃຫ້ສາມາດຈຳລອງເວີຊັນທີ່ແນ່ນອນຂອງທຸກແພັກເກດທີ່ຕິດຕັ້ງໃນ environment ນັ້ນ." + +#: ../source/guides/installing-using-virtualenv.rst:2 +msgid "Installing packages using virtualenv" +msgstr "ການຕິດຕັ້ງແພັກເກດໂດຍໃຊ້ virtualenv" + +#: ../source/guides/installing-using-virtualenv.rst:4 +msgid "" +"This guide discusses how to install packages using :ref:`pip` " +"and :ref:`virtualenv`, a tool to create isolated Python environments." +msgstr "" +"ຄຳແນະນຳນີ້ຈະເວົ້າເຖິງວິທີການຕິດຕັ້ງແພັກເກດໂດຍໃຊ້ :ref:`pip` ແລະ :ref:`virtualenv`, " +"ເຊິ່ງເປັນເຄື່ອງມືສ້າງ Python environments ແບບແຍກຕ່າງຫາກ." + +#: ../source/guides/installing-using-virtualenv.rst:8 +msgid "" +"This \"how to\" guide on installing packages and using :ref:`virtualenv` is " +"under development. Please refer to the :ref:`virtualenv` documentation for " +"details on installation and usage." +msgstr "" +"ຄຳແນະນຳ \"ວິທີການ\" ນີ້ກ່ຽວກັບການຕິດຕັ້ງແພັກເກດ ແລະ ການໃຊ້ :ref:`virtualenv` " +"ແມ່ນກຳລັງຢູ່ໃນຂັ້ນຕອນພັດທະນາ. ກະລຸນາເບິ່ງເອກະສານຂອງ :ref:`virtualenv` ສຳລັບ " +"ລາຍລະອຽດກ່ຽວກັບການຕິດຕັ້ງ ແລະ ການໃຊ້ງານ." + +#: ../source/guides/installing-using-virtualenv.rst:13 +msgid "" +"This doc uses the term **package** to refer to a :term:`Distribution " +"Package` which is different from an :term:`Import Package` that which is " +"used to import modules in your Python source code." +msgstr "" +"ເອກະສານນີ້ໃຊ້ຄຳວ່າ **ແພັກເກດ (package)** ເພື່ອໝາຍເຖິງ :term:`Distribution Package` " +"ເຊິ່ງແຕກຕ່າງຈາກ :term:`Import Package` ທີ່ໃຊ້ ເພື່ອ import ໂມດູນໃນໂຄ້ດ Python ຂອງທ່ານ." + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:6 +msgid "Licensing examples and user scenarios" +msgstr "ຕົວຢ່າງລິຂະສິດ ແລະ ສະຖານະການຂອງຜູ້ໃຊ້" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:9 +msgid "" +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." +msgstr "" +":pep:`639` ໄດ້ກຳນົດວິທີການປະກາດລິຂະສິດຂອງ :term:`Distribution Archive` ແລະ " +"ເສັ້ນທາງໄປຫາໄຟລ໌ລິຂະສິດ ລວມທັງຂໍ້ມູນອື່ນໆທີ່ກົດໝາຍກຳນົດ. " +"ເອກະສານນີ້ມີຈຸດປະສົງເພື່ອໃຫ້ຄຳແນະນຳທີ່ຊັດເຈນກ່ຽວກັບການຍ້າຍຈາກວິທີເກົ່າ " +"ໄປຫາວິທີມາດຕະຖານໃນການປະກາດລິຂະສິດ. ກວດສອບໃຫ້ແນ່ໃຈວ່າ build backend " +"ທີ່ທ່ານໃຊ້ຮອງຮັບ :pep:`639` ກ່ອນທີ່ຈະນຳໃຊ້ຄຳແນະນຳໃໝ່ນີ້." + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:18 +msgid "Licensing Examples" +msgstr "ຕົວຢ່າງການກຳນົດລິຂະສິດ" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:23 +msgid "Basic example" +msgstr "ຕົວຢ່າງພື້ນຖານ" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:25 +msgid "" +"The Setuptools project itself, as of `version 75.6.0 `__, " +"does not use the ``License`` field in its own project source metadata. " +"Further, it no longer explicitly specifies ``license_file``/" +"``license_files`` as it did previously, since Setuptools relies on its own " +"automatic inclusion of license-related files matching common patterns, such " +"as the :file:`LICENSE` file it uses." +msgstr "" +"ໂຄງການ Setuptools ເອງ, ນັບຕັ້ງແຕ່ `ເວີຊັນ 75.6.0 `__, ບໍ່ໄດ້ໃຊ້ຫ້ອງຂໍ້ມູນ " +"``License`` ໃນ metadata ຂອງໂຄງການເອງແລ້ວ. ນອກຈາກນັ້ນ, ມັນຍັງບໍ່ໄດ້ລະບຸ " +"``license_file``/``license_files`` ຢ່າງຊັດເຈນ ຄືກັບທີ່ເຄີຍເຮັດມາກ່ອນ, ເພາະວ່າ " +"Setuptools ຈະດຶງເອົາໄຟລ໌ທີ່ກ່ຽວຂ້ອງກັບ ລິຂະສິດທີ່ກົງກັບຮູບແບບທົ່ວໄປມາໃຫ້ໂດຍອັດຕະໂນມັດ, " +"ເຊັ່ນໄຟລ໌ :file:`LICENSE` ທີ່ມັນໃຊ້." + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:32 +msgid "" +"It includes the following license-related metadata in " +"its :file:`pyproject.toml`:" +msgstr "ມັນລວມມີ metadata ທີ່ກ່ຽວຂ້ອງກັບລິຂະສິດຕໍ່ໄປນີ້ໃນໄຟລ໌ :file:`pyproject.toml`:" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:42 +msgid "The simplest migration to PEP 639 would consist of using this instead:" +msgstr "ການຍ້າຍໄປໃຊ້ PEP 639 ທີ່ງ່າຍທີ່ສຸດແມ່ນການໃຊ້ສິ່ງນີ້ແທນ:" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:49 +msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" +msgstr "ຫຼື, ຫາກໂຄງການໃຊ້ :file:`setup.cfg`, ໃນຕາຕະລາງ ``[metadata]``:" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:56 +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" +msgstr "Core Metadata ທີ່ໄດ້ສຳລັບ :term:`Distribution Package` ກໍ່ຈະເປັນ:" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:63 +msgid "" +"The :file:`LICENSE` file would be stored at :file:`/setuptools-{VERSION}/" +"LICENSE` in the sdist and :file:`/setuptools-{VERSION}.dist-info/licenses/" +"LICENSE` in the wheel, and unpacked from there into the site directory " +"(e.g. :file:`site-packages/`) on installation; :file:`/` is the root of the " +"respective archive and ``{VERSION}`` the version of the Setuptools release " +"in the Core Metadata." +msgstr "" +"ໄຟລ໌ :file:`LICENSE` ຈະຖືກເກັບໄວ້ທີ່ :file:`/setuptools-{VERSION}/LICENSE` ໃນ " +"sdist ແລະ :file:`/setuptools-{VERSION}.dist-info/licenses/LICENSE` ໃນ wheel, " +"ແລະ ຈະຖືກແຕກອອກຈາກບ່ອນນັ້ນລົງໃນ site directory (ເຊັ່ນ :file:`site-packages/`) " +"ເມື່ອມີການຕິດຕັ້ງ; :file:`/` ແມ່ນ root ຂອງແຕ່ລະ ໄຟລ໌ບີບອັດ ແລະ ``{VERSION}`` ແມ່ນເວີຊັນຂອງ " +"Setuptools ທີ່ລະບຸໃນ Core Metadata." + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 +msgid "Advanced example" +msgstr "ຕົວຢ່າງຂັ້ນສູງ" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 +msgid "" +"Suppose Setuptools were to include the licenses of the third-party projects " +"that are vendored in the :file:`setuptools/_vendor/` " +"and :file:`pkg_resources/_vendor/` directories; specifically:" +msgstr "" +"ສົມມຸດວ່າ Setuptools ຈະຕ້ອງລວມເອົາລິຂະສິດຂອງໂຄງການພາຍນອກ " +"ທີ່ຖືກລວມໄວ້ໃນໂຟນເດີ :file:`setuptools/_vendor/` ແລະ :file:`pkg_resources/_vendor/" +"`; ໂດຍສະເພາະແມ່ນ:" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" +msgstr "ຂໍ້ຄວາມລະບຸລິຂະສິດທີ່ເໝາະສົມແມ່ນ:" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 +msgid "" +"A comprehensive license expression covering both Setuptools proper and its " +"vendored dependencies would contain these metadata, combining all the " +"license expressions into one. Such an expression might be:" +msgstr "" +"ຂໍ້ຄວາມລະບຸລິຂະສິດທີ່ຄອບຄຸມທັງ Setuptools ເອງ ແລະ dependencies ທີ່ຖືກລວມໄວ້ ຈະປະກອບດ້ວຍ " +"metadata ເຫຼົ່ານີ້, ໂດຍລວມເອົາທຸກລິຂະສິດເຂົ້າເປັນອັນດຽວ. ຂໍ້ຄວາມນັ້ນອາດຈະເປັນ:" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 +msgid "" +"In addition, per the requirements of the licenses, the relevant license " +"files must be included in the package. Suppose the :file:`LICENSE` file " +"contains the text of the MIT license and the copyrights used by Setuptools, " +"``pyparsing``, ``more_itertools`` and ``ordered-set``; and " +"the :file:`LICENSE*` files in the :file:`setuptools/_vendor/packaging/` " +"directory contain the Apache 2.0 and 2-clause BSD license text, and the " +"Packaging copyright statement and `license choice notice " +"`__." +msgstr "" +"ນອກຈາກນັ້ນ, ຕາມຂໍ້ກຳນົດຂອງລິຂະສິດ, ໄຟລ໌ລິຂະສິດທີ່ກ່ຽວຂ້ອງ ຕ້ອງຖືກລວມໄວ້ໃນແພັກເກດນຳ. " +"ສົມມຸດວ່າໄຟລ໌ :file:`LICENSE` ປະກອບດ້ວຍເນື້ອໃນຂອງລິຂະສິດ MIT ແລະ ຂໍ້ມູນລິຂະສິດທີ່ໃຊ້ໂດຍ " +"Setuptools, ``pyparsing``, ``more_itertools`` ແລະ ``ordered-set``; ແລະ " +"ໄຟລ໌ :file:`LICENSE*` ໃນໂຟນເດີ :file:`setuptools/_vendor/packaging/` " +"ປະກອບດ້ວຍເນື້ອໃນລິຂະສິດ Apache 2.0 ແລະ BSD 2-clause, ລວມທັງຂໍ້ຄວາມລິຂະສິດຂອງ Packaging " +"ແລະ `ແຈ້ງການການເລືອກລິຂະສິດ `__." + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 +msgid "" +"Specifically, we assume the license files are located at the following paths " +"in the project source tree (relative to the project root " +"and :file:`pyproject.toml`):" +msgstr "" +"ໂດຍສະເພາະ, ພວກເຮົາສົມມຸດວ່າໄຟລ໌ລິຂະສິດແມ່ນຕັ້ງຢູ່ຕາມເສັ້ນທາງຕໍ່ໄປນີ້ ໃນໂຄງສ້າງ source ຂອງໂຄງການ " +"(ທຽບກັບ root ຂອງໂຄງການ ແລະ :file:`pyproject.toml`):" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 +msgid "Putting it all together, our :file:`pyproject.toml` would be:" +msgstr "ເມື່ອລວມທັງໝົດເຂົ້າກັນ, ໄຟລ໌ :file:`pyproject.toml` ຂອງພວກເຮົາຈະເປັນ:" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 +msgid "" +"Or alternatively, the license files can be specified explicitly (paths will " +"be interpreted as glob patterns):" +msgstr "" +"ຫຼື ອີກທາງເລືອກໜຶ່ງ, ໄຟລ໌ລິຂະສິດສາມາດລະບຸໄດ້ຢ່າງຊັດເຈນ (ເສັ້ນທາງຈະຖືກຕີຄວາມໝາຍເປັນຮູບແບບ glob):" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 +msgid "If our project used :file:`setup.cfg`, we could define this in :" +msgstr "ຫາກໂຄງການຂອງພວກເຮົາໃຊ້ :file:`setup.cfg`, ພວກເຮົາສາມາດກຳນົດສິ່ງນີ້ໄດ້ໃນ:" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 +msgid "" +"With either approach, the output Core Metadata in the distribution would be:" +msgstr "ບໍ່ວ່າຈະໃຊ້ວິທີໃດ, Core Metadata ທີ່ໄດ້ໃນ distribution ຈະເປັນ:" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 +msgid "" +"In the resulting sdist, with :file:`/` as the root of the archive and " +"``{VERSION}`` the version of the Setuptools release specified in the Core " +"Metadata, the license files would be located at the paths:" +msgstr "" +"ໃນ sdist ທີ່ໄດ້, ໂດຍມີ :file:`/` ເປັນ root ແລະ ``{VERSION}`` ເປັນເວີຊັນຂອງ " +"Setuptools ທີ່ລະບຸໃນ Core Metadata, ໄຟລ໌ລິຂະສິດຈະຕັ້ງຢູ່ທີ່:" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 +msgid "" +"In the built wheel, with :file:`/` being the root of the archive and " +"``{VERSION}`` as the previous, the license files would be stored at:" +msgstr "" +"ໃນ wheel ທີ່ບິວແລ້ວ, ໂດຍມີ :file:`/` ເປັນ root ແລະ ``{VERSION}`` ຄືກັບຂ້າງເທິງ, " +"ໄຟລ໌ລິຂະສິດຈະຖືກເກັບໄວ້ທີ່:" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 +msgid "" +"Finally, in the installed project, with :file:`site-packages/` being the " +"site dir and ``{VERSION}`` as the previous, the license files would be " +"installed to:" +msgstr "" +"ສຸດທ້າຍ, ໃນໂຄງການທີ່ຕິດຕັ້ງແລ້ວ, ໂດຍມີ :file:`site-packages/` ເປັນ site dir ແລະ " +"``{VERSION}`` ຄືກັບຂ້າງເທິງ, ໄຟລ໌ລິຂະສິດຈະຖືກຕິດຕັ້ງລົງທີ່:" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 +msgid "Expression examples" +msgstr "ຕົວຢ່າງຂໍ້ຄວາມລະບຸລິຂະສິດ" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 +msgid "Some additional examples of valid ``License-Expression`` values:" +msgstr "ຕົວຢ່າງເພີ່ມເຕີມຂອງຄ່າ ``License-Expression`` ທີ່ຖືກຕ້ອງ:" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 +msgid "User Scenarios" +msgstr "ສະຖານະການຂອງຜູ້ໃຊ້" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 +msgid "" +"The following covers the range of common use cases from a user perspective, " +"providing guidance for each. Do note that the following should **not** be " +"considered legal advice, and readers should consult a licensed legal " +"practitioner in their jurisdiction if they are unsure about the specifics " +"for their situation." +msgstr "" +"ຂໍ້ມູນຕໍ່ໄປນີ້ຄອບຄຸມກໍລະນີການໃຊ້ງານທົ່ວໄປຈາກມຸມມອງຂອງຜູ້ໃຊ້, ພ້ອມທັງ ໃຫ້ຄຳແນະນຳໃນແຕ່ລະກໍລະນີ. " +"ຂໍໃຫ້ສັງເກດວ່າສິ່ງຕໍ່ໄປນີ້ **ບໍ່ແມ່ນ** ຄຳແນະນຳດ້ານກົດໝາຍ, ແລະ ຜູ້ອ່ານຄວນປຶກສາທີ່ປຶກສາດ້ານກົດໝາຍໃນ " +"ທ້ອງຖິ່ນຂອງທ່ານ ຫາກທ່ານບໍ່ໝັ້ນໃຈກ່ຽວກັບລາຍລະອຽດສະເພາະສຳລັບສະຖານະການຂອງທ່ານ." + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 +msgid "I have a private package that won't be distributed" +msgstr "ຂ້ອຍມີແພັກເກດສ່ວນຕົວທີ່ຈະບໍ່ມີການແຈກຢາຍ" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 +msgid "" +"If your package isn't shared publicly, i.e. outside your company, " +"organization or household, it *usually* isn't strictly necessary to include " +"a formal license, so you wouldn't necessarily have to do anything extra here." +msgstr "" +"ຫາກແພັກເກດຂອງທ່ານບໍ່ໄດ້ຖືກແບ່ງປັນສູ່ສາທາລະນະ, ເຊັ່ນ ພາຍນອກບໍລິສັດ, ອົງກອນ ຫຼື ຄອບຄົວຂອງທ່ານ, ມັນ " +"*ປົກກະຕິ* ແລ້ວແມ່ນບໍ່ຈຳເປັນຕ້ອງ ລະບຸລິຂະສິດຢ່າງເປັນທາງການ, " +"ດັ່ງນັ້ນທ່ານຈຶ່ງບໍ່ຈຳເປັນຕ້ອງເຮັດຫຍັງເພີ່ມເຕີມໃນສ່ວນນີ້." + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 +msgid "" +"However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " +"license expression in your package configuration, and/or a copyright " +"statement and any legal notices in a :file:`LICENSE.txt` file in the root of " +"your project directory, which will be automatically included by packaging " +"tools." +msgstr "" +"ຢ່າງໃດກໍ່ຕາມ, ມັນຍັງເປັນການດີທີ່ຈະລະບຸ ``LicenseRef-Proprietary`` ເປັນ " +"ຂໍ້ຄວາມລິຂະສິດໃນການຕັ້ງຄ່າແພັກເກດຂອງທ່ານ, ແລະ/ຫຼື ລະບຸຂໍ້ຄວາມລິຂະສິດ ແລະ " +"ແຈ້ງການທາງກົດໝາຍຕ່າງໆໃນໄຟລ໌ :file:`LICENSE.txt` ທີ່ root ຂອງ ໂຟນເດີໂຄງການ, " +"ເຊິ່ງຈະຖືກລວມເຂົ້າໄປໂດຍເຄື່ອງມືເຮັດແພັກເກດແບບອັດຕະໂນມັດ." + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 +msgid "I just want to share my own work without legal restrictions" +msgstr "ຂ້ອຍຢາກແບ່ງປັນຜົນງານຂອງຂ້ອຍໂດຍບໍ່ມີຂໍ້ຈຳກັດທາງກົດໝາຍ" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 +msgid "" +"While you aren't required to include a license, if you don't, no one has " +"`any permission to download, use or improve your work " +"`__, so that's probably the *opposite* of what you " +"actually want. The `MIT license `__ is a great choice " +"instead, as it's simple, widely used and allows anyone to do whatever they " +"want with your work (other than sue you, which you probably also don't want)." +msgstr "" +"ເຖິງແມ່ນວ່າທ່ານຈະບໍ່ໄດ້ຖືກບັງຄັບໃຫ້ລະບຸລິຂະສິດ, ແຕ່ຫາກທ່ານບໍ່ເຮັດ, ຈະບໍ່ມີໃຜ `ມີສິດໃນການດາວໂຫຼດ, ນຳໃຊ້ " +"ຫຼື ປັບປຸງຜົນງານຂອງທ່ານ `__, ເຊິ່ງນັ້ນອາດຈະເປັນສິ່ງທີ່ *ກົງກັນຂ້າມ* " +"ກັບສິ່ງທີ່ທ່ານຕ້ອງການແທ້ໆ. ດັ່ງນັ້ນ `ລິຂະສິດ MIT `__ " +"ຈຶ່ງເປັນທາງເລືອກທີ່ດີເລີດ, ເພາະມັນງ່າຍດາຍ, ຖືກໃຊ້ຢ່າງແຜ່ຫຼາຍ ແລະ " +"ອະນຸຍາດໃຫ້ໃຜກໍ່ຕາມເຮັດຫຍັງກໍ່ໄດ້ກັບຜົນງານຂອງທ່ານ (ຍົກເວັ້ນການຟ້ອງຮ້ອງທ່ານ, " +"ເຊິ່ງທ່ານເອງກໍ່ຄົງບໍ່ຕ້ອງການແບບນັ້ນ)." + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 +msgid "" +"To apply it, just paste `the text `__ into a file " +"named :file:`LICENSE.txt` at the root of your repo, and add the year and " +"your name to the copyright line. Then, just add ``license = \"MIT\"`` under " +"``[project]`` in your :file:`pyproject.toml` if your packaging tool supports " +"it, or in its config file/section. You're done!" +msgstr "" +"ເພື່ອເລີ່ມໃຊ້ງານ, ພຽງແຕ່ວາງ `ຂໍ້ຄວາມ `__ " +"ລົງໃນໄຟລ໌ທີ່ຊື່ວ່າ :file:`LICENSE.txt` ທີ່ root ຂອງຄັງເກັບໂຄ້ດ, ແລະ ເພີ່ມປີພ້ອມກັບຊື່ຂອງທ່ານ " +"ໃນແຖວລິຂະສິດ. ຈາກນັ້ນ, ພຽງແຕ່ເພີ່ມ ``license = \"MIT\"`` ພາຍໃຕ້ ``[project]`` " +"ໃນໄຟລ໌ :file:`pyproject.toml` ຂອງທ່ານ (ຫາກເຄື່ອງມືເຮັດແພັກເກດຮອງຮັບ), ຫຼື " +"ໃນສ່ວນການຕັ້ງຄ່າຂອງມັນ. ເທົ່ານີ້ກໍ່ສຳເລັດແລ້ວ!" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 +msgid "I want to distribute my project under a specific license" +msgstr "ຂ້ອຍຕ້ອງການແຈກຢາຍໂຄງການຂອງຂ້ອຍພາຍໃຕ້ລິຂະສິດສະເພາະ" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 +msgid "" +"To use a particular license, simply paste its text into " +"a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " +"a file starting with :file:`LICENSE` or :file:`COPYING` already, and add " +"``license = \"LICENSE-ID\"`` under ``[project]`` in " +"your :file:`pyproject.toml` if your packaging tool supports it, or else in " +"its config file. You can find the ``LICENSE-ID`` and copyable license text " +"on sites like `ChooseALicense `__ or `SPDX " +"`__." +msgstr "" +"ເພື່ອໃຊ້ລິຂະສິດໃດໜຶ່ງ, ພຽງແຕ່ວາງເນື້ອໃນຂອງມັນລົງໃນໄຟລ໌ :file:`LICENSE.txt` ທີ່ root " +"ຂອງຄັງເກັບໂຄ້ດ (ຫາກຍັງບໍ່ມີໄຟລ໌ທີ່ຂຶ້ນຕົ້ນດ້ວຍ :file:`LICENSE` ຫຼື :file:`COPYING`), ແລະ ເພີ່ມ " +"``license = \"LICENSE-ID\"`` ພາຍໃຕ້ ``[project]`` ໃນ :file:`pyproject.toml` " +"(ຫາກເຄື່ອງມືເຮັດແພັກເກດຮອງຮັບ). ທ່ານສາມາດຊອກຫາ ``LICENSE-ID`` ແລະ " +"ເນື້ອໃນລິຂະສິດທີ່ສຳເນົາໄດ້ຈາກເວັບໄຊເຊັ່ນ `ChooseALicense `__ ຫຼື " +"`SPDX `__." + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 +msgid "" +"Many popular code hosts, project templates and packaging tools can add the " +"license file for you, and may support the expression as well in the future." +msgstr "" +"ຜູ້ໃຫ້ບໍລິການຝາກໂຄ້ດຍອດນິຍົມ, ແບບແມ່ແບບໂຄງການ ແລະ ເຄື່ອງມືເຮັດແພັກເກດຫຼາຍຢ່າງ " +"ສາມາດເພີ່ມໄຟລ໌ລິຂະສິດໃຫ້ທ່ານໄດ້, ແລະ ອາດຈະຮອງຮັບການໃຊ້ຂໍ້ຄວາມລິຂະສິດ ໃນອະນາຄົດນຳ." + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 +msgid "I maintain an existing package that's already licensed" +msgstr "ຂ້ອຍເບິ່ງແຍງແພັກເກດທີ່ມີຢູ່ແລ້ວ ແລະ ມີລິຂະສິດຢູ່ແລ້ວ" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 +msgid "" +"If you already have license files and metadata in your project, you should " +"only need to make a couple of tweaks to take advantage of the new " +"functionality." +msgstr "" +"ຫາກທ່ານມີໄຟລ໌ລິຂະສິດ ແລະ metadata ໃນໂຄງການຂອງທ່ານຢູ່ແລ້ວ, ທ່ານພຽງແຕ່ " +"ຕ້ອງປັບປ່ຽນເລັກນ້ອຍເພື່ອໃຊ້ປະໂຫຍດຈາກຟັງຊັນໃໝ່ນີ້." + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 +msgid "" +"In your project config file, enter your license expression under ``license`` " +"(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " +"packaging tool, and make sure to remove any legacy ``license`` table subkeys " +"or ``License ::`` classifiers. Your existing ``license`` value may already " +"be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " +"otherwise, check the `SPDX license list `__ for the identifier " +"that matches the license used." +msgstr "" +"ໃນໄຟລ໌ຕັ້ງຄ່າໂຄງການ, ໃຫ້ໃສ່ຂໍ້ຄວາມລິຂະສິດພາຍໃຕ້ ``license`` (ຕາຕະລາງ ``[project]`` " +"ໃນ :file:`pyproject.toml`), ແລະ ກວດສອບໃຫ້ແນ່ໃຈວ່າ ໄດ້ລຶບ subkeys ຂອງຕາຕະລາງ " +"``license`` ແບບເກົ່າ ຫຼື ``License ::`` classifiers ອອກ. ຄ່າ ``license`` " +"ທີ່ມີຢູ່ຂອງທ່ານອາດຈະຖືກຕ້ອງຢູ່ແລ້ວ (ເຊັ່ນ ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, ແລະ " +"ອື່ນໆ); ຖ້າບໍ່ດັ່ງນັ້ນ, ໃຫ້ກວດສອບ `ລາຍຊື່ລິຂະສິດ SPDX `__ ເພື່ອຫາຊື່ທີ່ກົງກັບລິຂະສິດທີ່ໃຊ້." + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 +msgid "" +"Make sure to list your license files under ``license-files`` under " +"``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " +"file." +msgstr "" +"ກວດສອບໃຫ້ແນ່ໃຈວ່າໄດ້ລະບຸລາຍຊື່ໄຟລ໌ລິຂະສິດພາຍໃຕ້ ``license-files`` ພາຍໃຕ້ ``[project]`` " +"ໃນ :file:`pyproject.toml` ຫຼື ໃນໄຟລ໌ຕັ້ງຄ່າເຄື່ອງມືຂອງທ່ານ." + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 +msgid "" +"See the :ref:`licensing-example-basic` for a simple but complete real-world " +"demo of how this works in practice. See also the best-effort guidance on how " +"to translate license classifiers into license expression provided by " +"the :pep:`639` authors: `Mapping License Classifiers to SPDX Identifiers " +"`__. Packaging tools may support automatically " +"converting legacy licensing metadata; check your tool's documentation for " +"more information." +msgstr "" +"ເບິ່ງ :ref:`licensing-example-basic` ສຳລັບການສາທິດທີ່ງ່າຍດາຍແຕ່ສົມບູນ " +"ກ່ຽວກັບວິທີການເຮັດວຽກຕົວຈິງ. ນອກຈາກນັ້ນ ຍັງສາມາດເບິ່ງຄຳແນະນຳໃນການ ປ່ຽນ license " +"classifiers ໃຫ້ເປັນ license expression ທີ່ຈັດທຳໂດຍຜູ້ຂຽນ :pep:`639`: `Mapping " +"License Classifiers to SPDX Identifiers `__. " +"ເຄື່ອງມືເຮັດແພັກເກດບາງຢ່າງອາດຈະຮອງຮັບການປ່ຽນ metadata ລິຂະສິດແບບເກົ່າ ໂດຍອັດຕະໂນມັດ; " +"ໃຫ້ກວດສອບເອກະສານຂອງເຄື່ອງມືຂອງທ່ານ ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ." + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 +msgid "My package includes other code under different licenses" +msgstr "ແພັກເກດຂອງຂ້ອຍລວມມີໂຄ້ດອື່ນພາຍໃຕ້ລິຂະສິດທີ່ແຕກຕ່າງກັນ" + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 +msgid "" +"If your project includes code from others covered by different licenses, " +"such as vendored dependencies or files copied from other open source " +"software, you can construct a license expression to describe the licenses " +"involved and the relationship between them." +msgstr "" +"ຫາກໂຄງການຂອງທ່ານລວມມີໂໂຄ້ດຈາກບ່ອນອື່ນທີ່ຢູ່ພາຍໃຕ້ລິຂະສິດທີ່ຕ່າງກັນ, ເຊັ່ນ dependencies " +"ທີ່ຖືກລວມມາໃນຕົວ ຫຼື ໄຟລ໌ທີ່ສຳເນົາມາຈາກຊອບແວໂອເພນຊອດ ອື່ນໆ, " +"ທ່ານສາມາດສ້າງຂໍ້ຄວາມລິຂະສິດເພື່ອອະທິບາຍລິຂະສິດທີ່ກ່ຽວຂ້ອງ ແລະ ຄວາມສຳພັນລະຫວ່າງພວກມັນໄດ້." + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 +msgid "" +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." +msgstr "" +"ສະຫຼຸບສັ້ນໆ, ``License-1 AND License-2`` ໝາຍຄວາມວ່າ *ທັງສອງ* ລິຂະສິດມີຜົນ ບັງຄັບໃຊ້ " +"(ຕົວຢ່າງ: ທ່ານລວມເອົາໄຟລ໌ທີ່ຢູ່ພາຍໃຕ້ລິຂະສິດອື່ນເຂົ້າມາ), ແລະ ``License-1 OR License-2`` " +"ໝາຍຄວາມວ່າ ສາມາດເລືອກໃຊ້ລິຂະສິດ *ໃດໜຶ່ງ* ກໍ່ໄດ້ (ຕົວຢ່າງ: " +"ທ່ານຕ້ອງການໃຫ້ຜູ້ໃຊ້ເລືອກລະຫວ່າງຫຼາຍລິຂະສິດ). ທ່ານສາມາດໃຊ້ ວົງເລັບ (``()``) " +"ເພື່ອຈັດກຸ່ມຂໍ້ຄວາມໃຫ້ຄອບຄຸມສະຖານະການທີ່ຊັບຊ້ອນໄດ້." + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:322 +msgid "" +"In your project config file, enter your license expression under ``license`` " +"(``[project]`` table of :file:`pyproject.toml`), or the equivalent for your " +"packaging tool, and make sure to remove any legacy ``license`` table subkeys " +"or ``License ::`` classifiers." +msgstr "" +"ໃນໄຟລ໌ຕັ້ງຄ່າໂຄງການ, ໃຫ້ໃສ່ຂໍ້ຄວາມລິຂະສິດພາຍໃຕ້ ``license`` (ຕາຕະລາງ ``[project]`` " +"ຂອງ :file:`pyproject.toml`), ແລະ ກວດສອບໃຫ້ແນ່ໃຈວ່າ ໄດ້ລຶບ subkeys ຂອງຕາຕະລາງ " +"``license`` ແບບເກົ່າ ຫຼື ``License ::`` classifiers ອອກ." + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:328 +msgid "" +"Also, make sure you add the full license text of all the licenses as files " +"somewhere in your project repository. List the relative path or glob " +"patterns to each of them under ``license-files`` under ``[project]`` " +"in :file:`pyproject.toml` (if your tool supports it), or else in your tool's " +"configuration file." +msgstr "" +"ນອກຈາກນັ້ນ, ກວດສອບໃຫ້ແນ່ໃຈວ່າທ່ານໄດ້ເພີ່ມເນື້ອໃນລິຂະສິດສະບັບເຕັມຂອງທຸກໆ " +"ລິຂະສິດເປັນໄຟລ໌ໄວ້ບ່ອນໃດບ່ອນໜຶ່ງໃນຄັງເກັບໂຄງການ. ລະບຸເສັ້ນທາງທີ່ກ່ຽວຂ້ອງ ຫຼື ຮູບແບບ glob " +"ໄປຫາແຕ່ລະໄຟລ໌ພາຍໃຕ້ ``license-files`` ພາຍໃຕ້ ``[project]`` " +"ໃນ :file:`pyproject.toml` (ຫາກເຄື່ອງມືຂອງທ່ານຮອງຮັບ)." + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:334 +msgid "" +"As an example, if your project was licensed MIT but incorporated a vendored " +"dependency (say, ``packaging``) that was licensed under either Apache 2.0 or " +"the 2-clause BSD, your license expression would be ``MIT AND (Apache-2.0 OR " +"BSD-2-Clause)``. You might have a :file:`LICENSE.txt` in your repo root, and " +"a :file:`LICENSE-APACHE.txt` and :file:`LICENSE-BSD.txt` in " +"the :file:`_vendor/` subdirectory, so to include all of them, you'd specify " +"``[\"LICENSE.txt\", \"_vendor/packaging/LICENSE*\"]`` as glob patterns, or " +"``[\"LICENSE.txt\", \"_vendor/LICENSE-APACHE.txt\", \"_vendor/LICENSE-" +"BSD.txt\"]`` as literal file paths." +msgstr "" +"ຕົວຢ່າງ: ຫາກໂຄງການຂອງທ່ານໃຊ້ລິຂະສິດ MIT ແຕ່ລວມເອົາ dependency ພາຍໃນ (ສົມມຸດວ່າແມ່ນ " +"``packaging``) ທີ່ໃຊ້ລິຂະສິດ Apache 2.0 ຫຼື BSD 2-clause, ຂໍ້ຄວາມລິຂະສິດຂອງທ່ານກໍ່ຈະເປັນ " +"``MIT AND (Apache-2.0 OR BSD-2-Clause)``. ທ່ານອາດຈະມີໄຟລ໌ :file:`LICENSE.txt` " +"ໃນ root ຂອງຄັງເກັບໂຄ້ດ, ແລະ ມີ :file:`LICENSE-APACHE.txt` ພ້ອມກັບ :file:`LICENSE-" +"BSD.txt` ໃນໂຟນເດີຍ່ອຍ :file:`_vendor/`. ເພື່ອລວມເອົາທັງໝົດ, ທ່ານກໍ່ລະບຸ " +"``[\"LICENSE.txt\", \"_vendor/packaging/LICENSE*\"]`` ເປັນຮູບແບບ glob, ຫຼື " +"``[\"LICENSE.txt\", \"_vendor/LICENSE-APACHE.txt\", \"_vendor/LICENSE-" +"BSD.txt\"]`` ເປັນເສັ້ນທາງໄຟລ໌ໂດຍກົງ." + +#: ../source/guides/licensing-examples-and-user-scenarios.rst:345 +msgid "" +"See a fully worked out :ref:`licensing-example-advanced` for an end-to-end " +"application of this to a real-world complex project, with many technical " +"details, and consult a `tutorial `__ for more help and " +"examples using SPDX identifiers and expressions." +msgstr "" +"ເບິ່ງ :ref:`licensing-example-advanced` ສຳລັບການນຳໃຊ້ແບບຄົບວົງຈອນ " +"ກັບໂຄງການທີ່ມີຄວາມຊັບຊ້ອນໃນໂລກຕົວຈິງ, ພ້ອມກັບລາຍລະອຽດທາງເຕັກນິກ ແລະ ສາມາດເບິ່ງ `ບົດຮຽນ " +"`__ ສຳລັບຄວາມຊ່ວຍເຫຼືອເພີ່ມເຕີມ ແລະ ຕົວຢ່າງການໃຊ້ SPDX identifiers ແລະ " +"expressions." + +#: ../source/guides/making-a-pypi-friendly-readme.rst:2 +msgid "Making a PyPI-friendly README" +msgstr "ການສ້າງ README ໃຫ້ເໝາະສຳລັບ PyPI" + +#: ../source/guides/making-a-pypi-friendly-readme.rst:4 +msgid "" +"README files can help your users understand your project and can be used to " +"set your project's description on PyPI. This guide helps you create a README " +"in a PyPI-friendly format and include your README in your package so it " +"appears on PyPI." +msgstr "" +"ໄຟລ໌ README ສາມາດຊ່ວຍໃຫ້ຜູ້ໃຊ້ເຂົ້າໃຈໂຄງການຂອງທ່ານ ແລະ ສາມາດໃຊ້ " +"ເພື່ອກຳນົດຄຳອະທິບາຍໂຄງການຂອງທ່ານໃນ PyPI. ຄຳແນະນຳນີ້ຈະຊ່ວຍໃຫ້ທ່ານ ສ້າງ README " +"ໃນຮູບແບບທີ່ເໝາະສຳລັບ PyPI ແລະ ລວມ README ເຂົ້າໃນແພັກເກດ ເພື່ອໃຫ້ມັນສະແດງຜົນໃນ PyPI." + +#: ../source/guides/making-a-pypi-friendly-readme.rst:9 +msgid "Creating a README file" +msgstr "ການສ້າງໄຟລ໌ README" + +#: ../source/guides/making-a-pypi-friendly-readme.rst:11 +msgid "" +"README files for Python projects are often named ``README``, ``README.txt``, " +"``README.rst``, or ``README.md``." +msgstr "" +"ໄຟລ໌ README ສຳລັບໂຄງການ Python ມັກຈະຖືກຕັ້ງຊື່ວ່າ ``README``, ``README.txt``, " +"``README.rst``, ຫຼື ``README.md``." + +#: ../source/guides/making-a-pypi-friendly-readme.rst:13 +msgid "" +"For your README to display properly on PyPI, choose a markup language " +"supported by PyPI. Formats supported by `PyPI's README renderer `_ are:" +msgstr "" +"ເພື່ອໃຫ້ README ຂອງທ່ານສະແດງຜົນຢ່າງຖືກຕ້ອງໃນ PyPI, ໃຫ້ເລືອກພາສາ markup ທີ່ PyPI ຮອງຮັບ. " +"ຮູບແບບທີ່ຮອງຮັບໂດຍ `PyPI's README renderer `_ ແມ່ນ:" + +#: ../source/guides/making-a-pypi-friendly-readme.rst:16 +msgid "plain text" +msgstr "ຂໍ້ຄວາມທຳມະດາ (plain text)" + +#: ../source/guides/making-a-pypi-friendly-readme.rst:17 +msgid "" +"`reStructuredText `_ (without " +"Sphinx extensions)" +msgstr "" +"`reStructuredText `_ " +"(ໂດຍບໍ່ມີສ່ວນຂະຫຍາຍຂອງ Sphinx)" + +#: ../source/guides/making-a-pypi-friendly-readme.rst:18 +msgid "" +"Markdown (`GitHub Flavored Markdown `_ by " +"default, or `CommonMark `_)" +msgstr "" +"Markdown (ເລີ່ມຕົ້ນແມ່ນ `GitHub Flavored Markdown `_, ຫຼື `CommonMark `_)" + +#: ../source/guides/making-a-pypi-friendly-readme.rst:21 +msgid "" +"It's customary to save your README file in the root of your project, in the " +"same directory as your :file:`setup.py` file." +msgstr "" +"ໂດຍທົ່ວໄປແລ້ວ ຄວນບັນທຶກໄຟລ໌ README ໄວ້ທີ່ root ຂອງໂຄງການ, " +"ໃນໂຟນເດີດຽວກັນກັບໄຟລ໌ :file:`setup.py` ຂອງທ່ານ." + +#: ../source/guides/making-a-pypi-friendly-readme.rst:25 +msgid "Including your README in your package's metadata" +msgstr "ການລວມ README ເຂົ້າໃນ metadata ຂອງແພັກເກດ" + +#: ../source/guides/making-a-pypi-friendly-readme.rst:27 +msgid "" +"To include your README's contents as your package description, set your " +"project's ``Description`` and ``Description-Content-Type`` metadata, " +"typically in your project's :file:`setup.py` file." +msgstr "" +"ເພື່ອລວມເອົາເນື້ອໃນຂອງ README ເປັນຄຳອະທິບາຍແພັກເກດ, ໃຫ້ກຳນົດ metadata ``Description`` " +"ແລະ ``Description-Content-Type`` ຂອງໂຄງການ, " +"ເຊິ່ງປົກກະຕິແລ້ວຈະຢູ່ໃນໄຟລ໌ :file:`setup.py`." + +#: ../source/guides/making-a-pypi-friendly-readme.rst:33 +msgid ":ref:`description-optional`" +msgstr ":ref:`description-optional`" + +#: ../source/guides/making-a-pypi-friendly-readme.rst:34 +msgid ":ref:`description-content-type-optional`" +msgstr ":ref:`description-content-type-optional`" + +#: ../source/guides/making-a-pypi-friendly-readme.rst:36 +msgid "" +"For example, to set these values in a package's :file:`setup.py` file, use " +"``setup()``'s ``long_description`` and ``long_description_content_type``." +msgstr "" +"ຕົວຢ່າງ: ເພື່ອກຳນົດຄ່າເຫຼົ່ານີ້ໃນໄຟລ໌ :file:`setup.py`, ໃຫ້ໃຊ້ ``long_description`` ແລະ " +"``long_description_content_type`` ໃນ ``setup()``." + +#: ../source/guides/making-a-pypi-friendly-readme.rst:39 +msgid "" +"Set the value of ``long_description`` to the contents (not the path) of the " +"README file itself. Set the ``long_description_content_type`` to an accepted " +"``Content-Type``-style value for your README file's markup, such as ``text/" +"plain``, ``text/x-rst`` (for reStructuredText), or ``text/markdown``." +msgstr "" +"ກຳນົດຄ່າຂອງ ``long_description`` ເປັນເນື້ອໃນ (ບໍ່ແມ່ນເສັ້ນທາງ) ຂອງໄຟລ໌ README. ກຳນົດ " +"``long_description_content_type`` ເປັນຄ່າ ``Content-Type`` ທີ່ຮອງຮັບສຳລັບພາສາ " +"markup ຂອງ README ຂອງທ່ານ, ເຊັ່ນ ``text/plain``, ``text/x-rst`` (ສຳລັບ " +"reStructuredText), ຫຼື ``text/markdown``." + +#: ../source/guides/making-a-pypi-friendly-readme.rst:45 +msgid "" +"If you're using GitHub-flavored Markdown to write a project's description, " +"ensure you upgrade the following tools:" +msgstr "" +"ຫາກທ່ານໃຊ້ GitHub-flavored Markdown ໃນການຂຽນຄຳອະທິບາຍໂຄງການ, " +"ກວດສອບໃຫ້ແນ່ໃຈວ່າໄດ້ອັບເກຣດເຄື່ອງມືຕໍ່ໄປນີ້:" + +#: ../source/guides/making-a-pypi-friendly-readme.rst:60 +msgid "The minimum required versions of the respective tools are:" +msgstr "ເວີຊັນຂັ້ນຕ່ຳທີ່ຕ້ອງການຂອງແຕ່ລະເຄື່ອງມືແມ່ນ:" + +#: ../source/guides/making-a-pypi-friendly-readme.rst:62 +msgid "``setuptools >= 38.6.0``" +msgstr "" + +#: ../source/guides/making-a-pypi-friendly-readme.rst:63 +msgid "``wheel >= 0.31.0``" +msgstr "" + +#: ../source/guides/making-a-pypi-friendly-readme.rst:64 +msgid "``twine >= 1.11.0``" +msgstr "" + +#: ../source/guides/making-a-pypi-friendly-readme.rst:66 +msgid "" +"It's recommended that you use ``twine`` to upload the project's distribution " +"packages:" +msgstr "ຂໍແນະນຳໃຫ້ທ່ານໃຊ້ ``twine`` ໃນການອັບໂຫຼດ distribution packages ຂອງໂຄງການ:" + +#: ../source/guides/making-a-pypi-friendly-readme.rst:72 +msgid "" +"For example, see this :file:`setup.py` file, which reads the contents " +"of :file:`README.md` as ``long_description`` and identifies the markup as " +"GitHub-flavored Markdown:" +msgstr "" +"ຕົວຢ່າງ: ເບິ່ງໄຟລ໌ :file:`setup.py` ນີ້, ເຊິ່ງຈະອ່ານເນື້ອໃນຂອງ :file:`README.md` ເປັນ " +"``long_description`` ແລະ ລະບຸຮູບແບບເປັນ GitHub-flavored Markdown:" + +#: ../source/guides/making-a-pypi-friendly-readme.rst:94 +msgid "Validating reStructuredText markup" +msgstr "ການກວດສອບ reStructuredText markup" + +#: ../source/guides/making-a-pypi-friendly-readme.rst:96 +msgid "" +"If your README is written in reStructuredText, any invalid markup will " +"prevent it from rendering, causing PyPI to instead just show the README's " +"raw source." +msgstr "" +"ຫາກ README ຂອງທ່ານຖືກຂຽນດ້ວຍ reStructuredText, markup ທີ່ບໍ່ຖືກຕ້ອງ " +"ຈະເຮັດໃຫ້ມັນບໍ່ສາມາດສະແດງຜົນໄດ້, ເຮັດໃຫ້ PyPI ສະແດງພຽງແຕ່ ໂຄ້ດຕົ້ນສະບັບ (raw source) ຂອງ " +"README ແທນ." + +#: ../source/guides/making-a-pypi-friendly-readme.rst:99 +msgid "" +"Note that Sphinx extensions used in docstrings, such as :doc:`directives " +"` and :doc:`roles ` (e.g., \"``:py:func:`getattr```\" or \"``:ref:`my-" +"reference-label```\"), are not allowed here and will result in error " +"messages like \"``Error: Unknown interpreted text role \"py:func\".``\"." +msgstr "" +"ສັງເກດວ່າສ່ວນຂະຫຍາຍຂອງ Sphinx ທີ່ໃຊ້ໃນ docstrings, ເຊັ່ນ :doc:`directives " +"` ແລະ :doc:`roles ` (ເຊັ່ນ: \"``:py:func:`getattr```\" ຫຼື \"``:ref:`my-" +"reference-label```\"), ແມ່ນບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ໃຊ້ຢູ່ບ່ອນນີ້ ແລະ ຈະເຮັດໃຫ້ເກີດຂໍ້ຄວາມຜິດພາດ ເຊັ່ນ " +"\"``Error: Unknown interpreted text role \"py:func\".``\"." + +#: ../source/guides/making-a-pypi-friendly-readme.rst:104 +msgid "" +"You can check your README for markup errors before uploading as follows:" +msgstr "ທ່ານສາມາດກວດສອບຂໍ້ຜິດພາດຂອງ markup ໃນ README ກ່ອນການອັບໂຫຼດໄດ້ດັ່ງນີ້:" + +#: ../source/guides/making-a-pypi-friendly-readme.rst:106 +msgid "" +"Install the latest version of `twine `_; " +"version 1.12.0 or higher is required:" +msgstr "" +"ຕິດຕັ້ງ `twine `_ ເວີຊັນຫຼ້າສຸດ; ຕ້ອງການເວີຊັນ 1.12.0 ຫຼື " +"ສູງກວ່າ:" + +#: ../source/guides/making-a-pypi-friendly-readme.rst:121 +msgid "" +"Build the sdist and wheel for your project as described " +"under :ref:`Packaging Your Project`." +msgstr "" +"ບິວ sdist ແລະ wheel ສຳລັບໂຄງການຂອງທ່ານຕາມທີ່ໄດ້ອະທິບາຍໄວ້ໃນ :ref:`Packaging Your " +"Project`." + +#: ../source/guides/making-a-pypi-friendly-readme.rst:124 +msgid "Run ``twine check`` on the sdist and wheel:" +msgstr "ຣັນ ``twine check`` ກັບໄຟລ໌ sdist ແລະ wheel:" + +#: ../source/guides/making-a-pypi-friendly-readme.rst:130 +msgid "" +"This command will report any problems rendering your README. If your markup " +"renders fine, the command will output ``Checking distribution FILENAME: " +"Passed``." +msgstr "" +"ຄຳສັ່ງນີ້ຈະລາຍງານທຸກບັນຫາໃນການສະແດງຜົນ README ຂອງທ່ານ. ຫາກ markup ສະແດງຜົນໄດ້ປົກກະຕິ, " +"ຄຳສັ່ງຈະສະແດງຂໍ້ຄວາມວ່າ ``Checking distribution FILENAME: Passed``." + +#: ../source/guides/migrating-to-pypi-org.rst:6 +msgid "Migrating to PyPI.org" +msgstr "ການຍ້າຍໄປໃຊ້ PyPI.org" + +#: ../source/guides/migrating-to-pypi-org.rst:8 +#: ../source/guides/multi-version-installs.rst:8 +#: ../source/guides/supporting-multiple-python-versions.rst:9 +#: ../source/guides/supporting-windows-using-appveyor.rst:7 +msgid "Obsolete" +msgstr "ຍົກເລີກການໃຊ້ແລ້ວ" + +#: ../source/guides/migrating-to-pypi-org.rst:10 +msgid "" +":term:`pypi.org` is the new, rewritten version of PyPI that has replaced the " +"legacy PyPI code base. It is the default version of PyPI that people are " +"expected to use. These are the tools and processes that people will need to " +"interact with ``PyPI.org``." +msgstr "" +":term:`pypi.org` ແມ່ນເວີຊັນໃໝ່ຂອງ PyPI ທີ່ຖືກຂຽນຂຶ້ນມາໃໝ່ເພື່ອແທນທີ່ ລະບົບ PyPI ແບບເກົ່າ. " +"ມັນແມ່ນເວີຊັນມາດຕະຖານທີ່ທຸກຄົນຄວນ ຈະໃຊ້ງານ. ນີ້ຄືເຄື່ອງມື ແລະ " +"ຂັ້ນຕອນຕ່າງໆທີ່ຈຳເປັນໃນການເຮັດວຽກຮ່ວມກັບ ``PyPI.org``." + +#: ../source/guides/migrating-to-pypi-org.rst:16 +msgid "Publishing releases" +msgstr "ການເຜີຍແຜ່ releases" + +#: ../source/guides/migrating-to-pypi-org.rst:18 +msgid "``pypi.org`` is the default upload platform as of September 2016." +msgstr "``pypi.org`` ເປັນແພລັດຟອມອັບໂຫຼດມາດຕະຖານຕັ້ງແຕ່ເດືອນກັນຍາ 2016." + +#: ../source/guides/migrating-to-pypi-org.rst:20 +msgid "" +"Uploads through ``pypi.python.org`` were *switched off* on **July 3, 2017**. " +"As of April 13th, 2018, ``pypi.org`` is the URL for PyPI." +msgstr "" +"ການອັບໂຫຼດຜ່ານ ``pypi.python.org`` ໄດ້ຖືກ *ປິດໃຊ້ງານ* ໃນວັນທີ **3 ກໍລະກົດ 2017**. " +"ນັບຕັ້ງແຕ່ວັນທີ 13 ເມສາ 2018, ``pypi.org`` ແມ່ນ URL ທາງການສຳລັບ PyPI." + +#: ../source/guides/migrating-to-pypi-org.rst:23 +msgid "" +"The recommended way to migrate to PyPI.org for uploading is to ensure that " +"you are using a new enough version of your upload tool." +msgstr "" +"ວິທີທີ່ແນະນຳໃນການຍ້າຍໄປໃຊ້ PyPI.org ສຳລັບການອັບໂຫຼດ ແມ່ນການກວດສອບໃຫ້ແນ່ໃຈ " +"ວ່າທ່ານກຳລັງໃຊ້ເຄື່ອງມືອັບໂຫຼດເວີຊັນໃໝ່ພຽງພໍ." + +#: ../source/guides/migrating-to-pypi-org.rst:26 +msgid "" +"The default upload settings switched to ``pypi.org`` in the following " +"versions:" +msgstr "ການຕັ້ງຄ່າການອັບໂຫຼດມາດຕະຖານໄດ້ປ່ຽນເປັນ ``pypi.org`` ໃນເວີຊັນຕໍ່ໄປນີ້:" + +#: ../source/guides/migrating-to-pypi-org.rst:28 +msgid "``twine`` 1.8.0" +msgstr "" + +#: ../source/guides/migrating-to-pypi-org.rst:29 +msgid "``setuptools`` 27.0.0" +msgstr "" + +#: ../source/guides/migrating-to-pypi-org.rst:30 +msgid "Python 2.7.13 (``distutils`` update)" +msgstr "Python 2.7.13 (ອັບເດດ ``distutils``)" + +#: ../source/guides/migrating-to-pypi-org.rst:31 +msgid "Python 3.4.6 (``distutils`` update)" +msgstr "Python 3.4.6 (ອັບເດດ ``distutils``)" + +#: ../source/guides/migrating-to-pypi-org.rst:32 +msgid "Python 3.5.3 (``distutils`` update)" +msgstr "Python 3.5.3 (ອັບເດດ ``distutils``)" + +#: ../source/guides/migrating-to-pypi-org.rst:33 +msgid "Python 3.6.0 (``distutils`` update)" +msgstr "Python 3.6.0 (ອັບເດດ ``distutils``)" + +#: ../source/guides/migrating-to-pypi-org.rst:35 +msgid "" +"In addition to ensuring you're on a new enough version of the tool for the " +"tool's default to have switched, you must also make sure that you have not " +"configured the tool to override its default upload URL. Typically this is " +"configured in a file located at :file:`$HOME/.pypirc`. If you see a file " +"like:" +msgstr "" +"ນອກຈາກການກວດສອບວ່າທ່ານໃຊ້ເຄື່ອງມືເວີຊັນໃໝ່ແລ້ວ, ທ່ານຍັງຕ້ອງກວດສອບ " +"ໃຫ້ແນ່ໃຈວ່າທ່ານບໍ່ໄດ້ຕັ້ງຄ່າເຄື່ອງມືໃຫ້ໄປຂຽນທັບ URL ການອັບໂຫຼດມາດຕະຖານ. " +"ໂດຍປົກກະຕິແລ້ວສິ່ງນີ້ຈະຖືກຕັ້ງຄ່າໃນໄຟລ໌ທີ່ :file:`$HOME/.pypirc`. ຫາກທ່ານເຫັນ ໄຟລ໌ທີ່ມີຂໍ້ຄວາມແບບນີ້:" + +#: ../source/guides/migrating-to-pypi-org.rst:52 +msgid "" +"Then simply delete the line starting with ``repository`` and you will use " +"your upload tool's default URL." +msgstr "" +"ໃຫ້ລຶບແຖວທີ່ຂຶ້ນຕົ້ນດ້ວຍ ``repository`` ອອກ ແລະ ທ່ານກໍ່ຈະໃຊ້ URL " +"ມາດຕະຖານຂອງເຄື່ອງມືອັບໂຫຼດຂອງທ່ານ." + +#: ../source/guides/migrating-to-pypi-org.rst:55 +msgid "" +"If for some reason you're unable to upgrade the version of your tool to a " +"version that defaults to using PyPI.org, then you may " +"edit :file:`$HOME/.pypirc` and include the ``repository:`` line, but use the " +"value ``https://upload.pypi.org/legacy/`` instead:" +msgstr "" +"ຫາກດ້ວຍເຫດຜົນໃດໜຶ່ງ ທ່ານບໍ່ສາມາດອັບເກຣດເວີຊັນຂອງເຄື່ອງມືໃຫ້ເປັນເວີຊັນ ທີ່ໃຊ້ PyPI.org " +"ເປັນຄ່າເລີ່ມຕົ້ນໄດ້, ທ່ານສາມາດແກ້ໄຂ :file:`$HOME/.pypirc` ແລະ ເພີ່ມແຖວ ``repository:`` " +"ໂດຍໃຊ້ຄ່າ ``https://upload.pypi.org/legacy/`` ແທນ:" + +#: ../source/guides/migrating-to-pypi-org.rst:71 +msgid "" +"(``legacy`` in this URL refers to the fact that this is the new server " +"implementation's emulation of the legacy server implementation's upload API.)" +msgstr "" +"(``legacy`` ໃນ URL ນີ້ໝາຍເຖິງຄວາມຈິງທີ່ວ່າ ນີ້ແມ່ນການຈຳລອງ API ການອັບໂຫຼດ ຂອງເຊີເວີແບບເກົ່າ " +"ໂດຍໃຊ້ລະບົບເຊີເວີໃໝ່.)" + +#: ../source/guides/migrating-to-pypi-org.rst:77 +msgid "Registering package names & metadata" +msgstr "ການລົງທະບຽນຊື່ແພັກເກດ ແລະ metadata" + +#: ../source/guides/migrating-to-pypi-org.rst:79 +msgid "" +"Explicit pre-registration of package names with the ``setup.py register`` " +"command prior to the first upload is no longer required, and is not " +"currently supported by the legacy upload API emulation on PyPI.org." +msgstr "" +"ການລົງທະບຽນຊື່ແພັກເກດລ່ວງໜ້າຢ່າງຊັດເຈນດ້ວຍຄຳສັ່ງ ``setup.py register`` " +"ກ່ອນການອັບໂຫຼດຄັ້ງທຳອິດແມ່ນບໍ່ຈຳເປັນອີກຕໍ່ໄປ, ແລະ ປັດຈຸບັນກໍ່ບໍ່ໄດ້ຮັບ ການຮອງຮັບໂດຍການຈຳລອງ API " +"ການອັບໂຫຼດແບບເກົ່າໃນ PyPI.org." + +#: ../source/guides/migrating-to-pypi-org.rst:83 +msgid "" +"As a result, attempting explicit registration after switching to using " +"PyPI.org for uploads will give the following error message::" +msgstr "" +"ດັ່ງນັ້ນ, ຫາກພະຍາຍາມລົງທະບຽນຢ່າງຊັດເຈນ ຫຼັງຈາກປ່ຽນໄປໃຊ້ PyPI.org ໃນການອັບໂຫຼດ " +"ຈະໄດ້ຮັບຂໍ້ຄວາມຜິດພາດດັ່ງນີ້::" + +#: ../source/guides/migrating-to-pypi-org.rst:88 +msgid "" +"The solution is to skip the registration step, and proceed directly to " +"uploading artifacts." +msgstr "ວິທີແກ້ໄຂແມ່ນໃຫ້ຂ້າມຂັ້ນຕອນການລົງທະບຽນ, ແລະ ດຳເນີນການອັບໂຫຼດ ໄຟລ໌ໂດຍກົງເລີຍ." + +#: ../source/guides/migrating-to-pypi-org.rst:93 +#: ../source/guides/using-testpypi.rst:5 +msgid "Using TestPyPI" +msgstr "ການໃຊ້ TestPyPI" + +#: ../source/guides/migrating-to-pypi-org.rst:95 +msgid "" +"Legacy TestPyPI (testpypi.python.org) is no longer available; use " +"`test.pypi.org `_ instead. If you use TestPyPI, you " +"must update your :file:`$HOME/.pypirc` to handle TestPyPI's new location, by " +"replacing ``https://testpypi.python.org/pypi`` with ``https://test.pypi.org/" +"legacy/``, for example:" +msgstr "" +"TestPyPI ແບບເກົ່າ (testpypi.python.org) ບໍ່ສາມາດໃຊ້ງານໄດ້ແລ້ວ; ໃຫ້ໃຊ້ `test.pypi.org " +"`_ ແທນ. ຫາກທ່ານໃຊ້ TestPyPI, ທ່ານ " +"ຕ້ອງອັບເດດ :file:`$HOME/.pypirc` ຂອງທ່ານເພື່ອໃຫ້ໃຊ້ສະຖານທີ່ໃໝ່ຂອງ TestPyPI, ໂດຍ ປ່ຽນ " +"``https://testpypi.python.org/pypi`` ເປັນ ``https://test.pypi.org/legacy/``, " +"ຕົວຢ່າງ:" + +#: ../source/guides/migrating-to-pypi-org.rst:117 +msgid "Registering new user accounts" +msgstr "ການລົງທະບຽນບັນຊີຜູ້ໃຊ້ໃໝ່" + +#: ../source/guides/migrating-to-pypi-org.rst:119 +msgid "" +"In order to help mitigate spam attacks against PyPI, new user registration " +"through ``pypi.python.org`` was *switched off* on **February 20, 2018**. New " +"user registrations at ``pypi.org`` are open." +msgstr "" +"ເພື່ອຊ່ວຍຫຼຸດຜ່ອນການໂຈມຕີແບບສະແປມ (spam) ຕໍ່ PyPI, ການລົງທະບຽນຜູ້ໃຊ້ໃໝ່ ຜ່ານ " +"``pypi.python.org`` ໄດ້ຖືກ *ປິດໃຊ້ງານ* ໃນວັນທີ **20 ກຸມພາ 2018**. " +"ການລົງທະບຽນຜູ້ໃຊ້ໃໝ່ແມ່ນເປີດໃຫ້ໃຊ້ງານທີ່ ``pypi.org``." + +#: ../source/guides/migrating-to-pypi-org.rst:125 +msgid "Browsing packages" +msgstr "ການເລືອກເບິ່ງແພັກເກດ" + +#: ../source/guides/migrating-to-pypi-org.rst:127 +msgid "" +"While ``pypi.python.org`` is may still be used in links from other PyPA " +"documentation, etc, the default interface for browsing packages is " +"``pypi.org``. The domain pypi.python.org now redirects to pypi.org, and may " +"be disabled sometime in the future." +msgstr "" +"ເຖິງວ່າ ``pypi.python.org`` ອາດຈະຍັງຖືກນຳໃຊ້ໃນລິ້ງຈາກເອກະສານອື່ນໆຂອງ PyPA ແລະ ອື່ນໆ, " +"ແຕ່ສ່ວນຕິດຕໍ່ຜູ້ໃຊ້ມາດຕະຖານສຳລັບການເລືອກເບິ່ງແພັກເກດແມ່ນ ``pypi.org``. ໂດເມນ " +"pypi.python.org ໃນຕອນນີ້ຈະຖືກປ່ຽນເສັ້ນທາງໄປຫາ pypi.org, ແລະ " +"ອາດຈະຖືກປິດການນຳໃຊ້ໃນອະນາຄົດ." + +#: ../source/guides/migrating-to-pypi-org.rst:134 +msgid "Downloading packages" +msgstr "ການດາວໂຫຼດແພັກເກດ" + +#: ../source/guides/migrating-to-pypi-org.rst:136 +msgid "``pypi.org`` is the default host for downloading packages." +msgstr "``pypi.org`` ແມ່ນໂຮສມາດຕະຖານສຳລັບການດາວໂຫຼດແພັກເກດ." + +#: ../source/guides/migrating-to-pypi-org.rst:139 +msgid "Managing published packages and releases" +msgstr "ການຈັດການແພັກເກດ ແລະ ລຸ້ນທີ່ເຜີຍແຜ່ແລ້ວ" + +#: ../source/guides/migrating-to-pypi-org.rst:141 +msgid "" +"``pypi.org`` provides a fully functional interface for logged in users to " +"manage their published packages and releases." +msgstr "" +"``pypi.org`` ມີສ່ວນຕິດຕໍ່ຜູ້ໃຊ້ທີ່ເຮັດວຽກໄດ້ຢ່າງເຕັມຮູບແບບສຳລັບຜູ້ໃຊ້ທີ່ເຂົ້າສູ່ລະບົບ ເພື່ອຈັດການແພັກເກດ " +"ແລະ ລຸ້ນທີ່ເຂົາເຈົ້າເຜີຍແຜ່." + +#: ../source/guides/modernize-setup-py-project.rst:6 +msgid "How to modernize a ``setup.py`` based project?" +msgstr "ວິທີປັບປຸງໂຄງການທີ່ອີງໃສ່ ``setup.py`` ໃຫ້ທັນສະໄໝ?" + +#: ../source/guides/modernize-setup-py-project.rst:10 +msgid "Should ``pyproject.toml`` be added?" +msgstr "ຄວນເພີ່ມ ``pyproject.toml`` ເຂົ້າໄປບໍ່?" + +#: ../source/guides/modernize-setup-py-project.rst:12 +msgid "" +"A :term:`pyproject.toml` file is strongly recommended. The presence of " +"a :file:`pyproject.toml` file itself does not bring much. [#]_ What is " +"actually strongly recommended is the ``[build-system]`` table " +"in :file:`pyproject.toml`." +msgstr "" +"ຂໍແນະນຳຢ່າງຍິ່ງໃຫ້ມີໄຟລ໌ :term:`pyproject.toml`. " +"ການມີພຽງແຕ່ໄຟລ໌ :file:`pyproject.toml` ເອງນັ້ນອາດຈະບໍ່ໄດ້ຊ່ວຍຫຍັງຫຼາຍ. [#]_ " +"ສິ່ງທີ່ແນະນຳຢ່າງຍິ່ງແທ້ໆແມ່ນຕາຕະລາງ ``[build-system]`` ໃນໄຟລ໌ :file:`pyproject.toml`." + +#: ../source/guides/modernize-setup-py-project.rst:16 +msgid "" +"Note that it has influence on the build isolation feature of pip, see below." +msgstr "" +"ໝາຍເຫດ ມັນມີຜົນຕໍ່ຄຸນສົມບັດການແຍກສ່ວນການສ້າງ (build isolation) ຂອງ pip, " +"ເບິ່ງລາຍລະອຽດດ້ານລຸ່ມ." + +#: ../source/guides/modernize-setup-py-project.rst:23 +msgid "" +"No, :file:`setup.py` can exist in a modern :ref:`setuptools` based project. " +"The :term:`setup.py` file is a valid configuration file for setuptools that " +"happens to be written in Python. However, the following commands are " +"deprecated and **MUST NOT** be run anymore, and their recommended " +"replacement commands should be used instead:" +msgstr "" +"ບໍ່, ໄຟລ໌ :file:`setup.py` ຍັງສາມາດມີຢູ່ໃນໂຄງການທີ່ອີງໃສ່ :ref:`setuptools` " +"ແບບທັນສະໄໝໄດ້. ໄຟລ໌ :term:`setup.py` ແມ່ນໄຟລ໌ການຕັ້ງຄ່າທີ່ຖືກຕ້ອງສຳລັບ setuptools " +"ທີ່ຂຽນດ້ວຍພາສາ Python. ເຖິງຢ່າງໃດກໍຕາມ, ຄຳສັ່ງຕໍ່ໄປນີ້ແມ່ນຖືກຍົກເລີກແລ້ວ ແລະ **ຫ້າມ** " +"ນຳໃຊ້ອີກຕໍ່ໄປ, ແລະ ຄວນໃຊ້ຄຳສັ່ງທົດແທນທີ່ແນະນຳແທນ:" + +#: ../source/guides/modernize-setup-py-project.rst:36 +msgid "``python -m build``" +msgstr "``python -m build``" + +#: ../source/guides/modernize-setup-py-project.rst:42 +#: ../source/guides/modernize-setup-py-project.rst:66 +#: ../source/guides/modernize-setup-py-project.rst:111 +#: ../source/guides/modernize-setup-py-project.rst:129 +#: ../source/guides/modernize-setup-py-project.rst:221 +msgid "For more details:" +msgstr "ສຳລັບລາຍລະອຽດເພີ່ມເຕີມ:" + +#: ../source/guides/modernize-setup-py-project.rst:44 +msgid ":ref:`setup-py-deprecated`" +msgstr ":ref:`setup-py-deprecated`" + +#: ../source/guides/modernize-setup-py-project.rst:48 +msgid "Where to start?" +msgstr "ເລີ່ມຕົ້ນຢູ່ໃສ?" + +#: ../source/guides/modernize-setup-py-project.rst:50 +msgid "" +"The :term:`project` must contain a :file:`pyproject.toml` file at the root " +"of its source tree that contains a ``[build-system]`` table like so:" +msgstr "" +"ໃນ :term:`ໂຄງການ (project)` ຈະຕ້ອງມີໄຟລ໌ :file:`pyproject.toml` " +"ຢູ່ທີ່ໂຟນເດີຫຼັກຂອງຊອສໂຄ້ດ ເຊິ່ງມີຕາຕະລາງ ``[build-system]`` ດັ່ງນີ້:" + +#: ../source/guides/modernize-setup-py-project.rst:60 +msgid "" +"This is the standardized method of letting :term:`build frontends ` know that :ref:`setuptools` is the :term:`build backend ` for this project." +msgstr "" +"ນີ້ແມ່ນວິທີມາດຕະຖານໃນການບອກໃຫ້ :term:`ຕົວສ້າງສ່ວນໜ້າ (build frontends)` " +"ຮູ້ວ່າ :ref:`setuptools` ແມ່ນ :term:`ຕົວສ້າງສ່ວນຫຼັງ (build backend)` ສຳລັບໂຄງການນີ້." + +#: ../source/guides/modernize-setup-py-project.rst:63 +msgid "" +"Note that the presence of a :file:`pyproject.toml` file (even if empty) " +"triggers :ref:`pip` to change its default behavior to use *build isolation*." +msgstr "" +"ໝາຍເຫດ ການມີໄຟລ໌ :file:`pyproject.toml` (ເຖິງແມ່ນວ່າຈະເປັນໄຟລ໌ເປົ່າ) " +"ຈະເຮັດໃຫ້ :ref:`pip` ປ່ຽນພຶດຕິກຳມາດຕະຖານໄປໃຊ້ *build isolation*." + +#: ../source/guides/modernize-setup-py-project.rst:68 +msgid ":ref:`distributing-packages`" +msgstr ":ref:`distributing-packages`" + +#: ../source/guides/modernize-setup-py-project.rst:69 +#: ../source/guides/modernize-setup-py-project.rst:113 +msgid ":ref:`pyproject-build-system-table`" +msgstr ":ref:`pyproject-build-system-table`" + +#: ../source/guides/modernize-setup-py-project.rst:70 +#: ../source/guides/modernize-setup-py-project.rst:131 +#: ../source/guides/modernize-setup-py-project.rst:247 +msgid ":doc:`pip:reference/build-system`" +msgstr ":doc:`pip:reference/build-system`" + +#: ../source/guides/modernize-setup-py-project.rst:74 +msgid "How to handle additional build-time dependencies?" +msgstr "ວິທີຈັດການກັບສ່ວນປະກອບທີ່ຈຳເປັນເພີ່ມເຕີມໃນເວລາສ້າງ (build-time dependencies)?" + +#: ../source/guides/modernize-setup-py-project.rst:76 +msgid "" +"On top of setuptools itself, if :file:`setup.py` depends on other third-" +"party libraries (outside of Python's standard library), those must be listed " +"in the ``requires`` list of the ``[build-system]`` table, so that the build " +"frontend knows to install them when building the :term:`distributions " +"`." +msgstr "" +"ນອກຈາກ setuptools ແລ້ວ, ຖ້າ :file:`setup.py` ອີງໃສ່ໄລບຣາຣີອື່ນໆ " +"(ທີ່ບໍ່ແມ່ນໄລບຣາຣີມາດຕະຖານຂອງ Python), ສິ່ງເຫຼົ່ານັ້ນຕ້ອງຖືກລະບຸໄວ້ໃນລາຍການ ``requires`` " +"ຂອງຕາຕະລາງ ``[build-system]`` " +"ເພື່ອໃຫ້ຕົວສ້າງສ່ວນໜ້າຮູ້ວ່າຕ້ອງຕິດຕັ້ງພວກມັນໃນເວລາສ້າງ :term:`ຊຸດແຈກຢາຍ (distributions)`." + +#: ../source/guides/modernize-setup-py-project.rst:82 +#: ../source/guides/modernize-setup-py-project.rst:139 +#: ../source/guides/modernize-setup-py-project.rst:174 +msgid "For example, a :file:`setup.py` file such as this:" +msgstr "ຕົວຢ່າງ, ໄຟລ໌ :file:`setup.py` ຄືດັ່ງນີ້:" + +#: ../source/guides/modernize-setup-py-project.rst:99 +msgid "" +"requires a :file:`pyproject.toml` file like this (:file:`setup.py` stays " +"unchanged):" +msgstr "ຕ້ອງການໄຟລ໌ :file:`pyproject.toml` ແບບນີ້ (ໂດຍທີ່ :file:`setup.py` ຍັງຄືເກົ່າ):" + +#: ../source/guides/modernize-setup-py-project.rst:117 +msgid "What is the build isolation feature?" +msgstr "ຄຸນສົມບັດ build isolation ແມ່ນຫຍັງ?" + +#: ../source/guides/modernize-setup-py-project.rst:119 +msgid "" +"Build frontends typically create an ephemeral virtual environment where they " +"install only the build dependencies (and their dependencies) that are listed " +"under ``build-system.requires`` and trigger the build in that environment." +msgstr "" +"ໂດຍທົ່ວໄປແລ້ວ ຕົວສ້າງສ່ວນໜ້າຈະສ້າງສະພາບແວດລ້ອມສະເໝືອນຊົ່ວຄາວ " +"ເພື່ອຕິດຕັ້ງສະເພາະສິ່ງທີ່ຈຳເປັນໃນການສ້າງທີ່ລະບຸໄວ້ພາຍໃຕ້ ``build-system.requires`` ແລະ " +"ເລີ່ມການສ້າງໃນສະພາບແວດລ້ອມນັ້ນ." + +#: ../source/guides/modernize-setup-py-project.rst:124 +msgid "" +"For some projects this isolation is unwanted and it can be deactivated as " +"follows:" +msgstr "ສຳລັບບາງໂຄງການ ການແຍກສ່ວນແບບນີ້ອາດບໍ່ເປັນທີ່ຕ້ອງການ ແລະ ສາມາດປິດການນຳໃຊ້ໄດ້ດັ່ງນີ້:" + +#: ../source/guides/modernize-setup-py-project.rst:126 +msgid "``python -m build --no-isolation``" +msgstr "``python -m build --no-isolation``" + +#: ../source/guides/modernize-setup-py-project.rst:127 +msgid "``python -m pip install --no-build-isolation``" +msgstr "``python -m pip install --no-build-isolation``" + +#: ../source/guides/modernize-setup-py-project.rst:135 +msgid "How to handle packaging metadata?" +msgstr "ວິທີຈັດການກັບຂໍ້ມູນກ່ຽວກັບແພັກເກດ (packaging metadata)?" + +#: ../source/guides/modernize-setup-py-project.rst:137 +msgid "" +"All static metadata can optionally be moved to a ``[project]`` table " +"in :file:`pyproject.toml`." +msgstr "" +"ຂໍ້ມູນເມຕາເດຕາແບບສະແຕຕິກ (static metadata) ທັງໝົດສາມາດຍ້າຍໄປໄວ້ໃນຕາຕະລາງ " +"``[project]`` ໃນໄຟລ໌ :file:`pyproject.toml` ໄດ້." + +#: ../source/guides/modernize-setup-py-project.rst:151 +msgid "can be entirely replaced by a :file:`pyproject.toml` file like this:" +msgstr "ສາມາດຖືກແທນທີ່ທັງໝົດດ້ວຍໄຟລ໌ :file:`pyproject.toml` ແບບນີ້:" + +#: ../source/guides/modernize-setup-py-project.rst:164 +msgid "" +"Read :ref:`pyproject-project-table` for the full specification of the " +"content allowed in the ``[project]`` table." +msgstr "" +"ອ່ານ :ref:`pyproject-project-table` " +"ສຳລັບລາຍລະອຽດທັງໝົດຂອງເນື້ອຫາທີ່ອະນຸຍາດໃຫ້ມີໃນຕາຕະລາງ ``[project]``." + +#: ../source/guides/modernize-setup-py-project.rst:169 +msgid "How to handle dynamic metadata?" +msgstr "ວິທີຈັດການກັບຂໍ້ມູນເມຕາເດຕາແບບໄດນາມິກ (dynamic metadata)?" + +#: ../source/guides/modernize-setup-py-project.rst:171 +msgid "" +"If some packaging metadata fields are not static they need to be listed as " +"``dynamic`` in this ``[project]`` table." +msgstr "" +"ຖ້າບາງຟີວຂອງຂໍ້ມູນເມຕາເດຕາບໍ່ແມ່ນແບບຄົງທີ່, ພວກມັນຈະຕ້ອງຖືກລະບຸເປັນ ``dynamic`` ໃນຕາຕະລາງ " +"``[project]`` ນີ້." + +#: ../source/guides/modernize-setup-py-project.rst:191 +msgid "can be modernized as follows:" +msgstr "ສາມາດປັບປຸງໃຫ້ທັນສະໄໝໄດ້ດັ່ງນີ້:" + +#: ../source/guides/modernize-setup-py-project.rst:223 +msgid ":ref:`declaring-project-metadata-dynamic`" +msgstr ":ref:`declaring-project-metadata-dynamic`" + +#: ../source/guides/modernize-setup-py-project.rst:227 +msgid "What if something that can not be changed expects a ``setup.py`` file?" +msgstr "ຈະເຮັດແນວໃດ ຖ້າຫາກມີບາງສິ່ງທີ່ປ່ຽນແປງບໍ່ໄດ້ຍັງຕ້ອງການໄຟລ໌ ``setup.py``?" + +#: ../source/guides/modernize-setup-py-project.rst:229 +msgid "" +"For example, a process exists that can not be changed easily and it needs to " +"execute a command such as ``python setup.py --name``." +msgstr "" +"ຕົວຢ່າງ, ມີຂະບວນການທີ່ປ່ຽນແປງບໍ່ໄດ້ງ່າຍ ແລະ ມັນຈຳເປັນຕ້ອງໃຊ້ຄຳສັ່ງເຊັ່ນ ``python setup.py --" +"name``." + +#: ../source/guides/modernize-setup-py-project.rst:232 +msgid "" +"It is perfectly fine to leave a :file:`setup.py` file in the project source " +"tree even after all its content has been moved to :file:`pyproject.toml`. " +"This file can be as minimalistic as this:" +msgstr "" +"ມັນບໍ່ເປັນຫຍັງເລີຍທີ່ຈະປະໄຟລ໌ :file:`setup.py` ໄວ້ໃນຊອສໂຄ້ດຂອງໂຄງການ " +"ເຖິງແມ່ນວ່າເນື້ອຫາທັງໝົດຈະຖືກຍ້າຍໄປທີ່ :file:`pyproject.toml` ແລ້ວກໍຕາມ. " +"ໄຟລ໌ນີ້ສາມາດມີເນື້ອຫາໜ້ອຍທີ່ສຸດດັ່ງນີ້:" + +#: ../source/guides/modernize-setup-py-project.rst:246 +msgid ":ref:`pyproject-toml-spec`" +msgstr ":ref:`pyproject-toml-spec`" + +#: ../source/guides/modernize-setup-py-project.rst:248 +msgid ":doc:`setuptools:build_meta`" +msgstr ":doc:`setuptools:build_meta`" + +#: ../source/guides/multi-version-installs.rst:6 +msgid "Multi-version installs" +msgstr "ການຕິດຕັ້ງຫຼາຍລຸ້ນພ້ອມກັນ" + +#: ../source/guides/multi-version-installs.rst:11 +msgid "" +"easy_install allows simultaneous installation of different versions of the " +"same project into a single environment shared by multiple programs which " +"must ``require`` the appropriate version of the project at run time (using " +"``pkg_resources``)." +msgstr "" +"easy_install " +"ອະນຸຍາດໃຫ້ຕິດຕັ້ງໂຄງການດຽວກັນຫຼາຍລຸ້ນພ້ອມກັນໃນສະພາບແວດລ້ອມດຽວທີ່ໃຊ້ຮ່ວມກັນໂດຍຫຼາຍໂປຣແກຣມ " +"ເຊິ່ງຈະຕ້ອງ ``require`` ລຸ້ນຂອງໂຄງການທີ່ເໝາະສົມໃນເວລາເຮັດວຽກ (ໂດຍໃຊ້ " +"``pkg_resources``)." + +#: ../source/guides/multi-version-installs.rst:16 +msgid "" +"For many use cases, virtual environments address this need without the " +"complication of the ``require`` directive. However, the advantage of " +"parallel installations within the same environment is that it works for an " +"environment shared by multiple applications, such as the system Python in a " +"Linux distribution." +msgstr "" +"ສຳລັບຫຼາຍໆກໍລະນີ, ສະພາບແວດລ້ອມສະເໝືອນ (virtual environments) " +"ສາມາດຕອບໂຈດຄວາມຕ້ອງການນີ້ໄດ້ໂດຍບໍ່ຕ້ອງໃຊ້ຄຳສັ່ງ ``require`` ທີ່ຊັບຊ້ອນ. ເຖິງຢ່າງໃດກໍຕາມ, " +"ຂໍ້ດີຂອງການຕິດຕັ້ງແບບຂະໜານໃນສະພາບແວດລ້ອມດຽວກັນແມ່ນ " +"ມັນສາມາດໃຊ້ໄດ້ກັບສະພາບແວດລ້ອມທີ່ໃຊ້ຮ່ວມກັນໂດຍຫຼາຍແອັບພລິເຄຊັນ ເຊັ່ນ Python ຂອງລະບົບໃນ Linux " +"distribution." + +#: ../source/guides/multi-version-installs.rst:22 +msgid "" +"The major limitation of ``pkg_resources`` based parallel installation is " +"that as soon as you import ``pkg_resources`` it locks in the *default* " +"version of everything which is already available on sys.path. This can cause " +"problems, since ``setuptools`` created command line scripts use " +"``pkg_resources`` to find the entry point to execute. This means that, for " +"example, you can't use ``require`` tests invoked through ``nose`` or a WSGI " +"application invoked through ``gunicorn`` if your application needs a non-" +"default version of anything that is available on the standard ``sys.path`` - " +"the script wrapper for the main application will lock in the version that is " +"available by default, so the subsequent ``require`` call in your own code " +"fails with a spurious version conflict." +msgstr "" +"ຂໍ້ຈຳກັດຫຼັກຂອງການຕິດຕັ້ງແບບຂະໜານທີ່ອີງໃສ່ ``pkg_resources`` ແມ່ນ ທັນທີທີ່ທ່ານ import " +"``pkg_resources`` ມັນຈະລັອກລຸ້ນ *ມາດຕະຖານ* ຂອງທຸກຢ່າງທີ່ມີຢູ່ໃນ sys.path. " +"ສິ່ງນີ້ອາດເຮັດໃຫ້ເກີດບັນຫາ ເພາະວ່າສະຄຣິບຄຳສັ່ງທີ່ສ້າງໂດຍ ``setuptools`` ໃຊ້ " +"``pkg_resources`` ເພື່ອຊອກຫາຈຸດເລີ່ມຕົ້ນ (entry point) ໃນການເຮັດວຽກ. ນີ້ໝາຍຄວາມວ່າ " +"ຕົວຢ່າງ ທ່ານບໍ່ສາມາດໃຊ້ການທົດສອບ ``require`` ທີ່ເອີ້ນຜ່ານ ``nose`` ຫຼື ແອັບພລິເຄຊັນ WSGI " +"ທີ່ເອີ້ນຜ່ານ ``gunicorn`` ໄດ້ ຫາກແອັບພລິເຄຊັນຂອງທ່ານຕ້ອງການລຸ້ນທີ່ບໍ່ແມ່ນມາດຕະຖານຂອງສິ່ງທີ່ມີຢູ່ໃນ " +"``sys.path`` ປົກກະຕິ." + +#: ../source/guides/multi-version-installs.rst:34 +msgid "" +"This can be worked around by setting all dependencies in " +"``__main__.__requires__`` before importing ``pkg_resources`` for the first " +"time, but that approach does mean that standard command line invocations of " +"the affected tools can't be used - it's necessary to write a custom wrapper " +"script or use ``python3 -c ''`` to invoke the application's main " +"entry point directly." +msgstr "" +"ບັນຫານີ້ສາມາດແກ້ໄຂໄດ້ໂດຍການຕັ້ງຄ່າ dependencies ທັງໝົດໃນ ``__main__.__requires__`` " +"ກ່ອນທີ່ຈະ import ``pkg_resources`` ເປັນຄັ້ງທຳອິດ, " +"ແຕ່ວິທີນັ້ນໝາຍຄວາມວ່າການເອີ້ນໃຊ້ເຄື່ອງມືທີ່ໄດ້ຮັບຜົນກະທົບຜ່ານຄຳສັ່ງມາດຕະຖານຈະບໍ່ສາມາດໃຊ້ໄດ້ - " +"ຈຳເປັນຕ້ອງຂຽນສະຄຣິບ wrapper ເອງ ຫຼື ໃຊ້ ``python3 -c ''`` " +"ເພື່ອເອີ້ນໃຊ້ຈຸດເລີ່ມຕົ້ນຂອງແອັບພລິເຄຊັນໂດຍກົງ." + +#: ../source/guides/packaging-binary-extensions.rst:5 +msgid "Packaging binary extensions" +msgstr "ການເຮັດແພັກເກດສ່ວນຂະຫຍາຍໄບນາຣີ (binary extensions)" + +#: ../source/guides/packaging-binary-extensions.rst:8 +msgid "2013-12-08" +msgstr "2013-12-08" + +#: ../source/guides/packaging-binary-extensions.rst:10 +msgid "" +"One of the features of the CPython reference interpreter is that, in " +"addition to allowing the execution of Python code, it also exposes a rich C " +"API for use by other software. One of the most common uses of this C API is " +"to create importable C extensions that allow things which aren't always easy " +"to achieve in pure Python code." +msgstr "" +"ໜຶ່ງໃນຄຸນສົມບັດຂອງຕົວແປພາສາ CPython ແມ່ນ ນອກຈາກຈະອະນຸຍາດໃຫ້ປະມວນຜົນໂຄ້ດ Python ແລ້ວ, " +"ມັນຍັງມີ C API ທີ່ຫຼາກຫຼາຍສຳລັບໃຫ້ຊອບແວອື່ນນຳໃຊ້. ການນຳໃຊ້ C API " +"ທີ່ພົບເລື້ອຍທີ່ສຸດແມ່ນການສ້າງສ່ວນຂະຫຍາຍ C (C extensions) ທີ່ສາມາດ import ໄດ້ " +"ເພື່ອເຮັດໃນສິ່ງທີ່ເຮັດໄດ້ຍາກໃນໂຄ້ດ Python ບໍລິສຸດ." + +#: ../source/guides/packaging-binary-extensions.rst:18 +msgid "An overview of binary extensions" +msgstr "ພາບລວມຂອງສ່ວນຂະຫຍາຍໄບນາຣີ" + +#: ../source/guides/packaging-binary-extensions.rst:21 +msgid "Use cases" +msgstr "ກໍລະນີການນຳໃຊ້" + +#: ../source/guides/packaging-binary-extensions.rst:23 +msgid "" +"The typical use cases for binary extensions break down into just three " +"conventional categories:" +msgstr "ກໍລະນີການນຳໃຊ້ທົ່ວໄປສຳລັບສ່ວນຂະຫຍາຍໄບນາຣີ ສາມາດແບ່ງອອກເປັນສາມປະເພດຫຼັກດັ່ງນີ້:" + +#: ../source/guides/packaging-binary-extensions.rst:26 +msgid "" +"**accelerator modules**: these modules are completely self-contained, and " +"are created solely to run faster than the equivalent pure Python code runs " +"in CPython. Ideally, accelerator modules will always have a pure Python " +"equivalent to use as a fallback if the accelerated version isn't available " +"on a given system. The CPython standard library makes extensive use of " +"accelerator modules. *Example*: When importing ``datetime``, Python falls " +"back to the `datetime.py `_ module if the C implementation ( `_datetimemodule.c `_) is not " +"available." +msgstr "" +"**ໂມດູນເລັ່ງຄວາມໄວ (accelerator modules)**: ໂມດູນເຫຼົ່ານີ້ເຮັດວຽກໄດ້ດ້ວຍຕົວເອງ ແລະ " +"ຖືກສ້າງຂຶ້ນເພື່ອໃຫ້ເຮັດວຽກໄດ້ໄວກວ່າໂຄ້ດ Python ບໍລິສຸດໃນ CPython. ໃນທາງທີ່ດີ, " +"ໂມດູນເລັ່ງຄວາມໄວຄວນມີໂຄ້ດ Python ບໍລິສຸດທີ່ເຮັດວຽກຄືກັນໄວ້ສຳຮອງ " +"ໃນກໍລະນີທີ່ລະບົບບໍໍ່ຮອງຮັບລຸ້ນທີ່ເລັ່ງຄວາມໄວ. ໄລບຣາຣີມາດຕະຖານຂອງ CPython " +"ມີການໃຊ້ໂມດູນເລັ່ງຄວາມໄວຢ່າງຫຼວງຫຼາຍ. *ຕົວຢ່າງ*: ເມື່ອ import ``datetime``, Python " +"ຈະກັບໄປໃຊ້ໂມດູນ `datetime.py` ຖ້າຫາກບໍ່ມີລຸ້ນທີ່ຂຽນດ້ວຍ C." + +#: ../source/guides/packaging-binary-extensions.rst:37 +msgid "" +"**wrapper modules**: these modules are created to expose existing C " +"interfaces to Python code. They may either expose the underlying C interface " +"directly, or else expose a more \"Pythonic\" API that makes use of Python " +"language features to make the API easier to use. The CPython standard " +"library makes extensive use of wrapper modules. *Example*: `functools.py " +"`_ is a Python " +"module wrapper for `_functoolsmodule.c `_." +msgstr "" +"**ໂມດູນຄຸມ (wrapper modules)**: ໂມດູນເຫຼົ່ານີ້ຖືກສ້າງຂຶ້ນເພື່ອເຊື່ອມຕໍ່ C interface ທີ່ມີຢູ່ແລ້ວໃຫ້ " +"Python ສາມາດໃຊ້ໄດ້. ພວກມັນອາດຈະເປີດໃຫ້ໃຊ້ C interface ໂດຍກົງ ຫຼື ສ້າງ API ທີ່ເປັນແບບ " +"\"Pythonic\" ຫຼາຍຂຶ້ນເພື່ອໃຫ້ໃຊ້ງານໄດ້ງ່າຍ." + +#: ../source/guides/packaging-binary-extensions.rst:45 +msgid "" +"**low-level system access**: these modules are created to access lower level " +"features of the CPython runtime, the operating system, or the underlying " +"hardware. Through platform specific code, extension modules may achieve " +"things that aren't possible in pure Python code. A number of CPython " +"standard library modules are written in C in order to access interpreter " +"internals that aren't exposed at the language level. *Example*: ``sys``, " +"which comes from `sysmodule.c `_." +msgstr "" +"**ການເຂົ້າເຖິງລະບົບລະດັບຕ່ຳ (low-level system access)**: " +"ໂມດູນເຫຼົ່ານີ້ສ້າງຂຶ້ນເພື່ອເຂົ້າເຖິງຄຸນສົມບັດລະດັບຕ່ຳຂອງ CPython runtime, ລະບົບປະຕິບັດການ ຫຼື ຮາດແວ. " +"ໂມດູນສ່ວນຂະຫຍາຍສາມາດເຮັດສິ່ງທີ່ Python ບໍລິສຸດເຮັດບໍ່ໄດ້. ຫຼາຍໂມດູນໃນໄລບຣາຣີມາດຕະຖານຖືກຂຽນດ້ວຍ " +"C ເພື່ອເຂົ້າເຖິງພາຍໃນຂອງ interpreter. *ຕົວຢ່າງ*: ``sys``." + +#: ../source/guides/packaging-binary-extensions.rst:54 +msgid "" +"One particularly notable feature of C extensions is that, when they don't " +"need to call back into the interpreter runtime, they can release CPython's " +"global interpreter lock around long-running operations (regardless of " +"whether those operations are CPU or IO bound)." +msgstr "" +"ຄຸນສົມບັດທີ່ໂດດເດັ່ນຂອງສ່ວນຂະຫຍາຍ C ແມ່ນ ເມື່ອພວກມັນບໍ່ຈຳເປັນຕ້ອງຮຽກໃຊ້ interpreter runtime, " +"ພວກມັນສາມາດປ່ອຍ global interpreter lock (GIL) ຂອງ CPython " +"ໄດ້ໃນລະຫວ່າງການເຮັດວຽກທີ່ໃຊ້ເວລາດົນ." + +#: ../source/guides/packaging-binary-extensions.rst:59 +msgid "" +"Not all extension modules will fit neatly into the above categories. The " +"extension modules included with NumPy, for example, span all three use cases " +"- they move inner loops to C for speed reasons, wrap external libraries " +"written in C, FORTRAN and other languages, and use low level system " +"interfaces for both CPython and the underlying operation system to support " +"concurrent execution of vectorised operations and to tightly control the " +"exact memory layout of created objects." +msgstr "" +"ບໍ່ແມ່ນທຸກໂມດູນສ່ວນຂະຫຍາຍຈະຈັດຢູ່ໃນປະເພດຂ້າງເທິງໄດ້ຢ່າງຊັດເຈນ. ຕົວຢ່າງ ໂມດູນສ່ວນຂະຫຍາຍໃນ NumPy " +"ແມ່ນລວມເອົາທັງສາມກໍລະນີການນຳໃຊ້." + +#: ../source/guides/packaging-binary-extensions.rst:69 +msgid "Disadvantages" +msgstr "ຂໍ້ເສຍ" + +#: ../source/guides/packaging-binary-extensions.rst:71 +msgid "" +"The main disadvantage of using binary extensions is the fact that it makes " +"subsequent distribution of the software more difficult. One of the " +"advantages of using Python is that it is largely cross platform, and the " +"languages used to write extension modules (typically C or C++, but really " +"any language that can bind to the CPython C API) typically require that " +"custom binaries be created for different platforms." +msgstr "" +"ຂໍ້ເສຍຫຼັກຂອງການໃຊ້ສ່ວນຂະຫຍາຍໄບນາຣີແມ່ນ ມັນເຮັດໃຫ້ການແຈກຢາຍຊອບແວໃນພາຍຫຼັງເຮັດໄດ້ຍາກຂຶ້ນ. " +"ຂໍ້ດີຂອງ Python ແມ່ນການເຮັດວຽກໄດ້ຂ້າມແພລັດຟອມ (cross platform), " +"ແຕ່ສ່ວນຂະຫຍາຍໄບນາຣີຈຳເປັນຕ້ອງຖືກສ້າງ (build) ແຍກກັນສຳລັບແຕ່ລະແພລັດຟອມ." + +#: ../source/guides/packaging-binary-extensions.rst:78 +msgid "This means that binary extensions:" +msgstr "ນີ້ໝາຍຄວາມວ່າ ສ່ວນຂະຫຍາຍໄບນາຣີ:" + +#: ../source/guides/packaging-binary-extensions.rst:80 +msgid "" +"require that end users be able to either build them from source, or else " +"that someone publish pre-built binaries for common platforms" +msgstr "" +"ຕ້ອງການໃຫ້ຜູ້ໃຊ້ປາຍທາງສາມາດສ້າງພວກມັນຈາກຊອສໂຄ້ດໄດ້ ຫຼື " +"ຕ້ອງມີຄົນເຜີຍແຜ່ໄບນາຣີທີ່ສ້າງສຳເລັດຮູບແລ້ວສຳລັບແພລັດຟອມຕ່າງໆ" + +#: ../source/guides/packaging-binary-extensions.rst:83 +msgid "" +"may not be compatible with different builds of the CPython reference " +"interpreter" +msgstr "ອາດຈະບໍ່ເຂົ້າກັນໄດ້ກັບ CPython interpreter ລຸ້ນທີ່ສ້າງຂຶ້ນມາຕ່າງກັນ" + +#: ../source/guides/packaging-binary-extensions.rst:86 +msgid "" +"often will not work correctly with alternative interpreters such as PyPy, " +"IronPython or Jython" +msgstr "ມັກຈະເຮັດວຽກບໍ່ຖືກຕ້ອງກັບ interpreter ອື່ນໆ ເຊັ່ນ PyPy, IronPython ຫຼື Jython" + +#: ../source/guides/packaging-binary-extensions.rst:89 +msgid "" +"if handcoded, make maintenance more difficult by requiring that maintainers " +"be familiar not only with Python, but also with the language used to create " +"the binary extension, as well as with the details of the CPython C API." +msgstr "" +"ຖ້າຂຽນດ້ວຍມືເອງ, ຈະເຮັດໃຫ້ການບຳລຸງຮັກສາຍາກຂຶ້ນ ເພາະຜູ້ບຳລຸງຮັກສາຕ້ອງຮູ້ທັງ Python ແລະ " +"ພາສາທີ່ໃຊ້ສ້າງສ່ວນຂະຫຍາຍນັ້ນ, ລວມເຖິງລາຍລະອຽດຂອງ CPython C API." + +#: ../source/guides/packaging-binary-extensions.rst:94 +msgid "" +"if a pure Python fallback implementation is provided, make maintenance more " +"difficult by requiring that changes be implemented in two places, and " +"introducing additional complexity in the test suite to ensure both versions " +"are always executed." +msgstr "" +"ຖ້າມີການຂຽນ Python ບໍລິສຸດໄວ້ສຳຮອງ, ຈະເຮັດໃຫ້ການບຳລຸງຮັກສາຍາກຂຶ້ນ " +"ເພາະຕ້ອງມີການປ່ຽນແປງສອງບ່ອນ ແລະ ເຮັດໃຫ້ການທົດສອບມີຄວາມຊັບຊ້ອນຫຼາຍຂຶ້ນ." + +#: ../source/guides/packaging-binary-extensions.rst:99 +msgid "" +"Another disadvantage of relying on binary extensions is that alternative " +"import mechanisms (such as the ability to import modules directly from " +"zipfiles) often won't work for extension modules (as the dynamic loading " +"mechanisms on most platforms can only load libraries from disk)." +msgstr "" +"ຂໍ້ເສຍອີກຢ່າງໜຶ່ງແມ່ນ ກົນໄກການ import ທາງເລືອກອື່ນ (ເຊັ່ນການ import ຈາກໄຟລ໌ zip ໂດຍກົງ) " +"ມັກຈະໃຊ້ບໍ່ໄດ້ກັບໂມດູນສ່ວນຂະຫຍາຍ." + +#: ../source/guides/packaging-binary-extensions.rst:106 +msgid "Alternatives to handcoded accelerator modules" +msgstr "ທາງເລືອກອື່ນແທນການຂຽນໂມດູນເລັ່ງຄວາມໄວດ້ວຍມື" + +#: ../source/guides/packaging-binary-extensions.rst:108 +msgid "" +"When extension modules are just being used to make code run faster (after " +"profiling has identified the code where the speed increase is worth " +"additional maintenance effort), a number of other alternatives should also " +"be considered:" +msgstr "ເມື່ອໂມດູນສ່ວນຂະຫຍາຍຖືກໃຊ້ພຽງເພື່ອໃຫ້ໂຄ້ດເຮັດວຽກໄວຂຶ້ນ, ຄວນພິຈາລະນາທາງເລືອກອື່ນໆດັ່ງນີ້:" + +#: ../source/guides/packaging-binary-extensions.rst:113 +msgid "" +"look for existing optimised alternatives. The CPython standard library " +"includes a number of optimised data structures and algorithms (especially in " +"the builtins and the ``collections`` and ``itertools`` modules). The Python " +"Package Index also offers additional alternatives. Sometimes, the " +"appropriate choice of standard library or third party module can avoid the " +"need to create your own accelerator module." +msgstr "" +"ຊອກຫາທາງເລືອກທີ່ຖືກປັບແຕ່ງມາແລ້ວ. ໄລບຣາຣີມາດຕະຖານຂອງ CPython ມີໂຄງສ້າງຂໍ້ມູນ ແລະ " +"ອັນກໍຣິທຶມທີ່ຖືກປັບແຕ່ງມາຢ່າງດີແລ້ວ. " +"ບາງຄັ້ງການເລືອກໃຊ້ສິ່ງທີ່ມີຢູ່ແລ້ວອາດຊ່ວຍໃຫ້ບໍ່ຕ້ອງສ້າງໂມດູນເລັ່ງຄວາມໄວເອງ." + +#: ../source/guides/packaging-binary-extensions.rst:120 +msgid "" +"for long running applications, the JIT compiled `PyPy interpreter `__ may offer a suitable alternative to the standard CPython " +"runtime. The main barrier to adopting PyPy is typically reliance on other " +"binary extension modules - while PyPy does emulate the CPython C API, " +"modules that rely on that cause problems for the PyPy JIT, and the emulation " +"layer can often expose latent defects in extension modules that CPython " +"currently tolerates (frequently around reference counting errors - an object " +"having one live reference instead of two often won't break anything, but no " +"references instead of one is a major problem)." +msgstr "" +"ສຳລັບແອັບພລິເຄຊັນທີ່ເຮັດວຽກດົນໆ, PyPy interpreter ອາດເປັນທາງເລືອກທີ່ດີກວ່າ CPython " +"ມາດຕະຖານ." + +#: ../source/guides/packaging-binary-extensions.rst:130 +msgid "" +"`Cython `__ is a mature static compiler that can " +"compile most Python code to C extension modules. The initial compilation " +"provides some speed increases (by bypassing the CPython interpreter layer), " +"and Cython's optional static typing features can offer additional " +"opportunities for speed increases. Using Cython still carries the " +"`disadvantages`_ associated with using binary extensions, but has the " +"benefit of having a reduced barrier to entry for Python programmers " +"(relative to other languages like C or C++)." +msgstr "" +"`Cython` ແມ່ນຄອມໄພເລີ (compiler) ທີ່ສາມາດແປງໂຄ້ດ Python ສ່ວນໃຫຍ່ໃຫ້ເປັນໂມດູນສ່ວນຂະຫຍາຍ " +"C ໄດ້." + +#: ../source/guides/packaging-binary-extensions.rst:139 +msgid "" +"`Numba `__ is a newer tool, created by members of " +"the scientific Python community, that aims to leverage LLVM to allow " +"selective compilation of pieces of a Python application to native machine " +"code at runtime. It requires that LLVM be available on the system where the " +"code is running, but can provide significant speed increases, especially for " +"operations that are amenable to vectorisation." +msgstr "" +"`Numba` ແມ່ນເຄື່ອງມືທີ່ຊ່ວຍແປງບາງສ່ວນຂອງແອັບພລິເຄຊັນ Python ໃຫ້ເປັນ machine code " +"ໃນເວລາເຮັດວຽກ (runtime) ເພື່ອເພີ່ມຄວາມໄວ." + +#: ../source/guides/packaging-binary-extensions.rst:148 +msgid "Alternatives to handcoded wrapper modules" +msgstr "ທາງເລືອກອື່ນແທນການຂຽນໂມດູນ wrapper ດ້ວຍມື" + +#: ../source/guides/packaging-binary-extensions.rst:150 +msgid "" +"The C ABI (Application Binary Interface) is a common standard for sharing " +"functionality between multiple applications. One of the strengths of the " +"CPython C API (Application Programming Interface) is allowing Python users " +"to tap into that functionality. However, wrapping modules by hand is quite " +"tedious, so a number of other alternative approaches should be considered." +msgstr "ການຂຽນໂມດູນ wrapper ດ້ວຍມືແມ່ນເປັນໜ້າວຽກທີ່ໜ້າເບື່ອ, ດັ່ງນັ້ນຄວນພິຈາລະນາທາງເລືອກອື່ນໆ." + +#: ../source/guides/packaging-binary-extensions.rst:156 +msgid "" +"The approaches described below don't simplify the distribution case at all, " +"but they *can* significantly reduce the maintenance burden of keeping " +"wrapper modules up to date." +msgstr "" +"ວິທີການທີ່ລະບຸໄວ້ຂ້າງລຸ່ມນີ້ບໍ່ໄດ້ຊ່ວຍໃຫ້ການແຈກຢາຍງ່າຍຂຶ້ນ, " +"ແຕ່ມັນສາມາດຫຼຸດພາລະໃນການບຳລຸງຮັກສາໄດ້ຢ່າງຫຼວງຫຼາຍ." + +#: ../source/guides/packaging-binary-extensions.rst:160 +msgid "" +"In addition to being useful for the creation of accelerator modules, `Cython " +"`__ is also widely used for creating wrapper modules " +"for C or C++ APIs. It involves wrapping the interfaces by hand, which gives " +"a wide range of freedom in designing and optimising the wrapper code, but " +"may not be a good choice for wrapping very large APIs quickly. See the `list " +"of third-party tools `_ for " +"automatic wrapping with Cython. It also supports performance-oriented Python " +"implementations that provide a CPython-like C-API, such as PyPy and Pyston." +msgstr "" +"ນອກຈາກຈະໃຊ້ສ້າງໂມດູນເລັ່ງຄວາມໄວແລ້ວ, `Cython` ຍັງຖືກໃຊ້ຢ່າງກວ້າງຂວາງໃນການສ້າງໂມດູນ " +"wrapper ສຳລັບ C ຫຼື C++ API." + +#: ../source/guides/packaging-binary-extensions.rst:171 +msgid "" +":doc:`pybind11 ` is a pure C++11 library that provides a " +"clean C++ interface to the CPython (and PyPy) C API. It does not require a " +"pre-processing step; it is written entirely in templated C++. Helpers are " +"included for Setuptools or CMake builds. It was based on `Boost.Python " +"`__, " +"but doesn't require the Boost libraries or BJam." +msgstr "" +"``pybind11`` ແມ່ນໄລບຣາຣີ C++11 ບໍລິສຸດທີ່ໃຫ້ interface C++ ທີ່ສະອາດສຳລັບ CPython C API." + +#: ../source/guides/packaging-binary-extensions.rst:178 +msgid "" +":doc:`cffi ` is a project created by some of the PyPy developers " +"to make it straightforward for developers that already know both Python and " +"C to expose their C modules to Python applications. It also makes it " +"relatively straightforward to wrap a C module based on its header files, " +"even if you don't know C yourself." +msgstr "``cffi`` ແມ່ນໂຄງການທີ່ເຮັດໃຫ້ການເຊື່ອມຕໍ່ໂມດູນ C ກັບ Python ເປັນເລື່ອງງ່າຍ." + +#: ../source/guides/packaging-binary-extensions.rst:184 +msgid "" +"One of the key advantages of ``cffi`` is that it is compatible with the PyPy " +"JIT, allowing CFFI wrapper modules to participate fully in PyPy's tracing " +"JIT optimisations." +msgstr "ຂໍ້ດີຫຼັກຂອງ ``cffi`` ແມ່ນມັນເຂົ້າກັນໄດ້ກັບ PyPy JIT." + +#: ../source/guides/packaging-binary-extensions.rst:188 +msgid "" +"`SWIG `__ is a wrapper interface generator that allows " +"a variety of programming languages, including Python, to interface with C " +"and C++ code." +msgstr "`SWIG` ແມ່ນເຄື່ອງມືສ້າງ wrapper interface ທີ່ຮອງຮັບຫຼາຍພາສາ ລວມເຖິງ Python." + +#: ../source/guides/packaging-binary-extensions.rst:192 +msgid "" +"The standard library's ``ctypes`` module, while useful for getting access to " +"C level interfaces when header information isn't available, suffers from the " +"fact that it operates solely at the C ABI level, and thus has no automatic " +"consistency checking between the interface actually being exported by the " +"library and the one declared in the Python code. By contrast, the above " +"alternatives are all able to operate at the C *API* level, using C header " +"files to ensure consistency between the interface exported by the library " +"being wrapped and the one expected by the Python wrapper module. While " +"``cffi`` *can* operate directly at the C ABI level, it suffers from the same " +"interface inconsistency problems as ``ctypes`` when it is used that way." +msgstr "" +"ໂມດູນ ``ctypes`` ໃນໄລບຣາຣີມາດຕະຖານມີປະໂຫຍດໃນການເຂົ້າເຖິງ interface ລະດັບ C, " +"ແຕ່ມັນເຮັດວຽກສະເພາະໃນລະດັບ C ABI ເທົ່ານັ້ນ." + +#: ../source/guides/packaging-binary-extensions.rst:206 +msgid "Alternatives for low level system access" +msgstr "ທາງເລືອກອື່ນສຳລັບການເຂົ້າເຖິງລະບົບລະດັບຕ່ຳ" + +#: ../source/guides/packaging-binary-extensions.rst:208 +msgid "" +"For applications that need low level system access (regardless of the " +"reason), a binary extension module often *is* the best way to go about it. " +"This is particularly true for low level access to the CPython runtime " +"itself, since some operations (like releasing the Global Interpreter Lock) " +"are simply invalid when the interpreter is running code, even if a module " +"like ``ctypes`` or ``cffi`` is used to obtain access to the relevant C API " +"interfaces." +msgstr "" +"ສຳລັບແອັບພລິເຄຊັນທີ່ຕ້ອງການເຂົ້າເຖິງລະບົບລະດັບຕ່ຳ, ໂມດູນສ່ວນຂະຫຍາຍໄບນາຣີມັກຈະເປັນວິທີທີ່ດີທີ່ສຸດ." + +#: ../source/guides/packaging-binary-extensions.rst:216 +msgid "" +"For cases where the extension module is manipulating the underlying " +"operating system or hardware (rather than the CPython runtime), it may " +"sometimes be better to just write an ordinary C library (or a library in " +"another systems programming language like C++ or Rust that can export a C " +"compatible ABI), and then use one of the wrapping techniques described above " +"to make the interface available as an importable Python module." +msgstr "" +"ໃນບາງກໍລະນີ, ອາດຈະດີກວ່າທີ່ຈະຂຽນໄລບຣາຣີ C ທຳມະດາ ແລ້ວໃຊ້ເຕັກນິກ wrapper ເພື່ອໃຫ້ Python " +"ສາມາດ import ໄປໃຊ້ໄດ້." + +#: ../source/guides/packaging-binary-extensions.rst:225 +msgid "Implementing binary extensions" +msgstr "ການພັດທະນາສ່ວນຂະຫຍາຍໄບນາຣີ" + +#: ../source/guides/packaging-binary-extensions.rst:227 +msgid "" +"The CPython :doc:`Extending and Embedding ` guide " +"includes an introduction to writing a :doc:`custom extension module in C " +"`." +msgstr "ຄູ່ມື CPython ມີເນື້ອຫາແນະນຳການຂຽນໂມດູນສ່ວນຂະຫຍາຍດ້ວຍພາສາ C." + +#: ../source/guides/packaging-binary-extensions.rst:231 +msgid "" +"FIXME: Elaborate that all this is one of the reasons why you probably " +"*don't* want to handcode your extension modules :)" +msgstr "" +"FIXME: ອະທິບາຍວ່າທັງໝົດນີ້ແມ່ນເຫດຜົນທີ່ທ່ານອາດຈະ *ບໍ່* ຢາກຂຽນໂມດູນສ່ວນຂະຫຍາຍດ້ວຍມືເອງ :)" + +#: ../source/guides/packaging-binary-extensions.rst:236 +msgid "Extension module lifecycle" +msgstr "ວົງຈອນຊີວິດຂອງໂມດູນສ່ວນຂະຫຍາຍ" + +#: ../source/guides/packaging-binary-extensions.rst:238 +#: ../source/guides/packaging-binary-extensions.rst:244 +#: ../source/guides/packaging-binary-extensions.rst:250 +#: ../source/guides/packaging-binary-extensions.rst:256 +#: ../source/guides/packaging-binary-extensions.rst:376 +msgid "FIXME: This section needs to be fleshed out." +msgstr "FIXME: ສ່ວນນີ້ຍັງຕ້ອງໄດ້ເພີ່ມລາຍລະອຽດ." + +#: ../source/guides/packaging-binary-extensions.rst:242 +msgid "Implications of shared static state and subinterpreters" +msgstr "" +"ຜົນກະທົບຂອງສະຖານະສະແຕຕິກຮ່ວມ (shared static state) ແລະ ຕົວແປພາສາຍ່ອຍ " +"(subinterpreters)" + +#: ../source/guides/packaging-binary-extensions.rst:248 +msgid "Implications of the GIL" +msgstr "ຜົນກະທົບຂອງ GIL" + +#: ../source/guides/packaging-binary-extensions.rst:254 +msgid "Memory allocation APIs" +msgstr "API ສຳລັບການຈອງໜ່ວຍຄວາມຈຳ" + +#: ../source/guides/packaging-binary-extensions.rst:262 +msgid "ABI Compatibility" +msgstr "ຄວາມເຂົ້າກັນໄດ້ຂອງ ABI" + +#: ../source/guides/packaging-binary-extensions.rst:264 +msgid "" +"The CPython C API does not guarantee ABI stability between minor releases " +"(3.2, 3.3, 3.4, etc.). This means that, typically, if you build an extension " +"module against one version of Python, it is only guaranteed to work with the " +"same minor version of Python and not with any other minor versions." +msgstr "" +"CPython C API ບໍ່ຮັບປະກັນຄວາມສະຖຽນຂອງ ABI ລະຫວ່າງລຸ້ນຍ່ອຍ (3.2, 3.3, 3.4, ແລະ ອື່ນໆ)." + +#: ../source/guides/packaging-binary-extensions.rst:270 +msgid "" +"Python 3.2 introduced the Limited API, with is a well-defined subset of " +"Python's C API. The symbols needed for the Limited API form the \"Stable " +"ABI\" which is guaranteed to be compatible across all Python 3.x versions. " +"Wheels containing extensions built against the stable ABI use the ``abi3`` " +"ABI tag, to reflect that they're compatible with all Python 3.x versions." +msgstr "" +"Python 3.2 ໄດ້ແນະນຳ Limited API ເຊິ່ງເປັນສ່ວນໜຶ່ງຂອງ Python C API ທີ່ກຳນົດໄວ້ຢ່າງຊັດເຈນ." + +#: ../source/guides/packaging-binary-extensions.rst:277 +msgid "" +"CPython's :doc:`C API stability` page provides detailed " +"information about the API / ABI stability guarantees, how to use the Limited " +"API and the exact contents of the \"Limited API\"." +msgstr "ໜ້າຄວາມສະຖຽນຂອງ C API ໃຫ້ຂໍ້ມູນລະອຽດກ່ຽວກັບການຮັບປະກັນຄວາມສະຖຽນຂອງ API / ABI." + +#: ../source/guides/packaging-binary-extensions.rst:283 +msgid "Building binary extensions" +msgstr "ການສ້າງ (Build) ສ່ວນຂະຫຍາຍໄບນາຣີ" + +#: ../source/guides/packaging-binary-extensions.rst:285 +msgid "FIXME: Cover the build-backends available for building extensions." +msgstr "FIXME: ກວມເອົາ build-backends ທີ່ມີຢູ່ສຳລັບການສ້າງສ່ວນຂະຫຍາຍ." + +#: ../source/guides/packaging-binary-extensions.rst:288 +msgid "Building extensions for multiple platforms" +msgstr "ການສ້າງສ່ວນຂະຫຍາຍສຳລັບຫຼາຍແພລັດຟອມ" + +#: ../source/guides/packaging-binary-extensions.rst:290 +msgid "" +"If you plan to distribute your extension, you should provide :term:`wheels " +"` for all the platforms you intend to support. These are usually " +"built on continuous integration (CI) systems. There are tools to help you " +"build highly redistributable binaries from CI; these " +"include :ref:`cibuildwheel` and :ref:`multibuild`." +msgstr "" +"ຖ້າທ່ານວາງແຜນທີ່ຈະແຈກຢາຍສ່ວນຂະຫຍາຍຂອງທ່ານ, ທ່ານຄວນຈັດຕຽມ :term:`wheels` " +"ສຳລັບທຸກແພລັດຟອມທີ່ທ່ານຕ້ອງການຮອງຮັບ." + +#: ../source/guides/packaging-binary-extensions.rst:296 +msgid "" +"For most extensions, you will need to build wheels for all the platforms you " +"intend to support. This means that the number of wheels you need to build is " +"the product of::" +msgstr "" +"ສຳລັບສ່ວນຂະຫຍາຍສ່ວນໃຫຍ່, ທ່ານຈະຕ້ອງສ້າງ wheels ສຳລັບທຸກແພລັດຟອມທີ່ທ່ານຮອງຮັບ. " +"ນັ້ນໝາຍຄວາມວ່າຈຳນວນ wheels ທີ່ທ່ານຕ້ອງສ້າງແມ່ນຜົນຄູນຂອງ::" + +#: ../source/guides/packaging-binary-extensions.rst:302 +msgid "" +"Using CPython's :ref:`Stable ABI ` can help " +"significantly reduce the number of wheels you need to provide, since a " +"single wheel on a platform can be used with all Python minor versions; " +"eliminating one dimension of the matrix. It also removes the need to " +"generate new wheels for each new minor version of Python." +msgstr "" +"ການໃຊ້ Stable ABI ຂອງ CPython ສາມາດຊ່ວຍຫຼຸດຈຳນວນ wheels ທີ່ທ່ານຕ້ອງຈັດຕຽມໄດ້ຢ່າງຫຼວງຫຼາຍ." + +#: ../source/guides/packaging-binary-extensions.rst:309 +msgid "Binary extensions for Windows" +msgstr "ສ່ວນຂະຫຍາຍໄບນາຣີສຳລັບ Windows" + +#: ../source/guides/packaging-binary-extensions.rst:311 +msgid "" +"Before it is possible to build a binary extension, it is necessary to ensure " +"that you have a suitable compiler available. On Windows, Visual C is used to " +"build the official CPython interpreter, and should be used to build " +"compatible binary extensions. To set up a build environment for binary " +"extensions, install `Visual Studio Community Edition `__ - any recent version is fine." +msgstr "ກ່ອນທີ່ຈະສ້າງສ່ວນຂະຫຍາຍໄບນາຣີໄດ້, ທ່ານຕ້ອງໝັ້ນໃຈວ່າມີຄອມໄພເລີ (compiler) ທີ່ເໝາະສົມ." + +#: ../source/guides/packaging-binary-extensions.rst:318 +msgid "" +"One caveat: if you use Visual Studio 2019 or later, your extension will " +"depend on an \"extra\" file, ``VCRUNTIME140_1.dll``, in addition to the " +"``VCRUNTIME140.dll`` that all previous versions back to 2015 depend on. This " +"will add an extra requirement to using your extension on versions of CPython " +"that do not include this extra file. To avoid this, you can add the compile-" +"time argument ``/d2FH4-``. Recent versions of Python may include this file." +msgstr "" +"ຂໍ້ຄວນລະວັງ: ຖ້າທ່ານໃຊ້ Visual Studio 2019 ຫຼື ໃໝ່ກວ່ານັ້ນ, " +"ສ່ວນຂະຫຍາຍຂອງທ່ານຈະຕ້ອງໃຊ້ໄຟລ໌ເພີ່ມເຕີມ ``VCRUNTIME140_1.dll``." + +#: ../source/guides/packaging-binary-extensions.rst:326 +msgid "" +"Building for Python prior to 3.5 is discouraged, because older versions of " +"Visual Studio are no longer available from Microsoft. If you do need to " +"build for older versions, you can set ``DISTUTILS_USE_SDK=1`` and " +"``MSSdk=1`` to force a the currently activated version of MSVC to be found, " +"and you should exercise care when designing your extension not to malloc/" +"free memory across different libraries, avoid relying on changed data " +"structures, and so on. Tools for generating extension modules usually avoid " +"these things for you." +msgstr "ບໍ່ແນະນຳໃຫ້ສ້າງສຳລັບ Python ລຸ້ນທີ່ເກົ່າກວ່າ 3.5." + +#: ../source/guides/packaging-binary-extensions.rst:337 +msgid "Binary extensions for Linux" +msgstr "ສ່ວນຂະຫຍາຍໄບນາຣີສຳລັບ Linux" + +#: ../source/guides/packaging-binary-extensions.rst:339 +msgid "" +"Linux binaries must use a sufficiently old glibc to be compatible with older " +"distributions. The `manylinux `_ Docker " +"images provide a build environment with a glibc old enough to support most " +"current Linux distributions on common architectures." +msgstr "ໄບນາຣີຂອງ Linux ຕ້ອງໃຊ້ glibc ລຸ້ນທີ່ເກົ່າພໍທີ່ຈະເຂົ້າກັນໄດ້ກັບ distribution ເກົ່າໆ." + +#: ../source/guides/packaging-binary-extensions.rst:345 +msgid "Binary extensions for macOS" +msgstr "ສ່ວນຂະຫຍາຍໄບນາຣີສຳລັບ macOS" + +#: ../source/guides/packaging-binary-extensions.rst:347 +msgid "" +"Binary compatibility on macOS is determined by the target minimum deployment " +"system, e.g. *10.9*, which is often specified with the " +"``MACOSX_DEPLOYMENT_TARGET`` environmental variable when building binaries " +"on macOS. When building with setuptools / distutils, the deployment target " +"is specified with the flag ``--plat-name``, e.g. ``macosx-10.9-x86_64``. For " +"common deployment targets for macOS Python distributions, see the `MacPython " +"Spinning Wheels wiki `_." +msgstr "ຄວາມເຂົ້າກັນໄດ້ຂອງໄບນາຣີໃນ macOS ແມ່ນຂຶ້ນກັບລະບົບເປົ້າໝາຍຕ່ຳສຸດທີ່ກຳນົດໄວ້." + +#: ../source/guides/packaging-binary-extensions.rst:357 +msgid "Publishing binary extensions" +msgstr "ການເຜີຍແຜ່ສ່ວນຂະຫຍາຍໄບນາຣີ" + +#: ../source/guides/packaging-binary-extensions.rst:359 +msgid "" +"Publishing binary extensions through PyPI uses the same upload mechanisms as " +"publishing pure Python packages. You build a wheel file for your extension " +"using the build-backend and upload it to PyPI using :doc:`twine " +"`." +msgstr "" +"ການເຜີຍແຜ່ສ່ວນຂະຫຍາຍໄບນາຣີຜ່ານ PyPI ແມ່ນໃຊ້ກົນໄກການອັບໂຫຼດດຽວກັນກັບແພັກເກດ Python ບໍລິສຸດ." + +#: ../source/guides/packaging-binary-extensions.rst:365 +msgid "Avoid binary-only releases" +msgstr "ຫຼີກເວັ້ນການເຜີຍແຜ່ສະເພາະໄບນາຣີເທົ່ານັ້ນ" + +#: ../source/guides/packaging-binary-extensions.rst:367 +msgid "" +"It is strongly recommended that you publish your binary extensions as well " +"as the source code that was used to build them. This allows users to build " +"the extension from source if they need to. Notably, this is required for " +"certain Linux distributions that build from source within their own build " +"systems for the distro package repositories." +msgstr "ຂໍແນະນຳຢ່າງຍິ່ງໃຫ້ເຜີຍແຜ່ທັງໄບນາຣີ ແລະ ຊອສໂຄ້ດທີ່ໃຊ້ສ້າງພວກມັນ." + +#: ../source/guides/packaging-binary-extensions.rst:374 +msgid "Weak linking" +msgstr "Weak linking" + +#: ../source/guides/packaging-binary-extensions.rst:379 +msgid "Additional resources" +msgstr "ແຫຼ່ງຂໍ້ມູນເພີ່ມເຕີມ" + +#: ../source/guides/packaging-binary-extensions.rst:381 +msgid "" +"Cross-platform development and distribution of extension modules is a " +"complex topic, so this guide focuses primarily on providing pointers to " +"various tools that automate dealing with the underlying technical " +"challenges. The additional resources in this section are instead intended " +"for developers looking to understand more about the underlying binary " +"interfaces that those systems rely on at runtime." +msgstr "ການພັດທະນາ ແລະ ແຈກຢາຍໂມດູນສ່ວນຂະຫຍາຍແບບຂ້າມແພລັດຟອມແມ່ນເລື່ອງທີ່ຊັບຊ້ອນ." + +#: ../source/guides/packaging-binary-extensions.rst:388 +msgid "Cross-platform wheel generation with scikit-build" +msgstr "ການສ້າງ wheel ແບບຂ້າມແພລັດຟອມດ້ວຍ scikit-build" + +#: ../source/guides/packaging-binary-extensions.rst:390 +msgid "" +"The `scikit-build `_ package " +"helps abstract cross-platform build operations and provides additional " +"capabilities when creating binary extension packages. Additional " +"documentation is also available on the `C runtime, compiler, and build " +"system generator `_ for Python binary extension modules." +msgstr "ແພັກເກດ `scikit-build` ຊ່ວຍໃຫ້ການສ້າງແພັກເກດຂ້າມແພລັດຟອມງ່າຍຂຶ້ນ." + +#: ../source/guides/packaging-binary-extensions.rst:398 +msgid "Introduction to C/C++ extension modules" +msgstr "ການແນະນຳກ່ຽວກັບໂມດູນສ່ວນຂະຫຍາຍ C/C++" + +#: ../source/guides/packaging-binary-extensions.rst:400 +msgid "" +"For a more in depth explanation of how extension modules are used by CPython " +"on a Debian system, see the following articles:" +msgstr "" +"ສຳລັບຄຳອະທິບາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບວິທີທີ່ CPython ໃຊ້ໂມດູນສ່ວນຂະຫຍາຍໃນລະບົບ Debian, " +"ເບິ່ງບົດຄວາມຕໍ່ໄປນີ້:" + +#: ../source/guides/packaging-binary-extensions.rst:403 +msgid "" +"`What are (c)python extension modules? `_" +msgstr "`ໂມດູນສ່ວນຂະຫຍາຍ (c)python ແມ່ນຫຍັງ?`" + +#: ../source/guides/packaging-binary-extensions.rst:404 +msgid "`Releasing the gil `_" +msgstr "`ການປ່ອຍ GIL`" + +#: ../source/guides/packaging-binary-extensions.rst:405 +msgid "" +"`Writing cpython extension modules using C++ `_" +msgstr "`ການຂຽນໂມດູນສ່ວນຂະຫຍາຍ cpython ໂດຍໃຊ້ C++`" + +#: ../source/guides/packaging-binary-extensions.rst:408 +msgid "Additional considerations for binary wheels" +msgstr "ຂໍ້ຄວນພິຈາລະນາເພີ່ມເຕີມສຳລັບ binary wheels" + +#: ../source/guides/packaging-binary-extensions.rst:410 +msgid "" +"The `pypackaging-native `_ website " +"has additional coverage of packaging Python packages with native code. It " +"aims to provide an overview of the most important packaging issues for such " +"projects, with in-depth explanations and references." +msgstr "" +"ເວັບໄຊ `pypackaging-native` ມີຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບການເຮັດແພັກເກດ Python ດ້ວຍ native " +"code." + +#: ../source/guides/packaging-binary-extensions.rst:415 +msgid "" +"Examples of topics covered are non-Python compiled dependencies (\"native " +"dependencies\"), the importance of the ABI (Application Binary Interface) of " +"native code, dependency on SIMD code and cross compilation." +msgstr "" +"ຕົວຢ່າງຫົວຂໍ້ທີ່ກວມເອົາແມ່ນ native dependencies, ຄວາມສຳຄັນຂອງ ABI, ແລະ ການ cross " +"compilation." + +#: ../source/guides/packaging-namespace-packages.rst:5 +msgid "Packaging namespace packages" +msgstr "ການເຮັດແພັກເກດແບບ namespace" + +#: ../source/guides/packaging-namespace-packages.rst:7 +msgid "" +"Namespace packages allow you to split the sub-packages and modules within a " +"single :term:`package ` across multiple, " +"separate :term:`distribution packages ` (referred to " +"as **distributions** in this document to avoid ambiguity). For example, if " +"you have the following package structure:" +msgstr "" +"ແພັກເກດ Namespace ຊ່ວຍໃຫ້ທ່ານສາມາດແບ່ງແພັກເກດຍ່ອຍ ແລະ ໂມດູນພາຍໃນແພັກເກດດຽວ " +"ອອກເປັນຫຼາຍໆຊຸດແຈກຢາຍທີ່ແຍກກັນ." + +#: ../source/guides/packaging-namespace-packages.rst:26 +msgid "And you use this package in your code like so::" +msgstr "ແລະ ທ່ານໃຊ້ແພັກເກດນີ້ໃນໂຄ້ດຂອງທ່ານດັ່ງນີ້::" + +#: ../source/guides/packaging-namespace-packages.rst:31 +msgid "Then you can break these sub-packages into two separate distributions:" +msgstr "ຈາກນັ້ນທ່ານສາມາດແບ່ງແພັກເກດຍ່ອຍເຫຼົ່ານີ້ອອກເປັນສອງຊຸດແຈກຢາຍທີ່ແຍກກັນ:" + +#: ../source/guides/packaging-namespace-packages.rst:50 +msgid "Each sub-package can now be separately installed, used, and versioned." +msgstr "ແຕ່ລະແພັກເກດຍ່ອຍສາມາດຖືກຕິດຕັ້ງ, ນຳໃຊ້, ແລະ ກຳນົດລຸ້ນແຍກກັນໄດ້ແລ້ວ." + +#: ../source/guides/packaging-namespace-packages.rst:52 +msgid "" +"Namespace packages can be useful for a large collection of loosely-related " +"packages (such as a large corpus of client libraries for multiple products " +"from a single company). However, namespace packages come with several " +"caveats and are not appropriate in all cases. A simple alternative is to use " +"a prefix on all of your distributions such as ``import " +"mynamespace_subpackage_a`` (you could even use ``import " +"mynamespace_subpackage_a as subpackage_a`` to keep the import object short)." +msgstr "ແພັກເກດ Namespace ມີປະໂຫຍດສຳລັບກຸ່ມແພັກເກດຂະໜາດໃຫຍ່ທີ່ມີຄວາມກ່ຽວຂ້ອງກັນແບບຫ່າງໆ." + +#: ../source/guides/packaging-namespace-packages.rst:62 +msgid "Creating a namespace package" +msgstr "ການສ້າງແພັກເກດ namespace" + +#: ../source/guides/packaging-namespace-packages.rst:64 +msgid "" +"There are currently two different approaches to creating namespace packages, " +"from which the latter is discouraged:" +msgstr "ປັດຈຸບັນມີສອງວິທີໃນການສ້າງແພັກເກດ namespace ເຊິ່ງວິທີຫຼັງນັ້ນບໍ່ແນະນຳໃຫ້ໃຊ້:" + +#: ../source/guides/packaging-namespace-packages.rst:67 +msgid "" +"Use `native namespace packages`_. This type of namespace package is defined " +"in :pep:`420` and is available in Python 3.3 and later. This is recommended " +"if packages in your namespace only ever need to support Python 3 and " +"installation via ``pip``." +msgstr "" +"ໃຊ້ `native namespace packages`. ວິທີນີ້ຖືກກຳນົດໃນ PEP 420 ແລະ ສາມາດໃຊ້ໄດ້ໃນ Python " +"3.3 ຂຶ້ນໄປ." + +#: ../source/guides/packaging-namespace-packages.rst:71 +msgid "" +"Use `legacy namespace packages`_. This comprises `pkgutil-style namespace " +"packages`_ and `pkg_resources-style namespace packages`_." +msgstr "" +"ໃຊ້ `legacy namespace packages`. ວິທີນີ້ລວມມີແບບ pkgutil ແລະ ແບບ pkg_resources." + +#: ../source/guides/packaging-namespace-packages.rst:75 +msgid "Native namespace packages" +msgstr "Native namespace packages" + +#: ../source/guides/packaging-namespace-packages.rst:77 +msgid "" +"Python 3.3 added **implicit** namespace packages from :pep:`420`. All that " +"is required to create a native namespace package is that you just " +"omit :file:`__init__.py` from the namespace package directory. An example " +"file structure (following :ref:`src-layout `):" +msgstr "Python 3.3 ໄດ້ເພີ່ມ namespace packages ແບບ implicit." + +#: ../source/guides/packaging-namespace-packages.rst:94 +msgid "" +"It is extremely important that every distribution that uses the namespace " +"package omits the :file:`__init__.py` or uses a pkgutil-" +"style :file:`__init__.py`. If any distribution does not, it will cause the " +"namespace logic to fail and the other sub-packages will not be importable." +msgstr "" +"ມັນສຳຄັນຫຼາຍທີ່ທຸກໆຊຸດແຈກຢາຍທີ່ໃຊ້ namespace package ຕ້ອງບໍ່ມີໄຟລ໌ :file:`__init__.py`." + +#: ../source/guides/packaging-namespace-packages.rst:99 +msgid "" +"The ``src-layout`` directory structure allows automatic discovery of " +"packages by most :term:`build backends `. See :ref:`src-" +"layout-vs-flat-layout` for more information. If however you want to manage " +"exclusions or inclusions of packages yourself, this is possible to be " +"configured in the top-level :file:`pyproject.toml`:" +msgstr "ໂຄງສ້າງແບບ ``src-layout`` ຊ່ວຍໃຫ້ຕົວສ້າງສ່ວນຫຼັງສ່ວນໃຫຍ່ຄົ້ນຫາແພັກເກດໄດ້ໂດຍອັດຕະໂນມັດ." + +#: ../source/guides/packaging-namespace-packages.rst:117 +msgid "The same can be accomplished with a :file:`setup.cfg`:" +msgstr "ສາມາດເຮັດແບບດຽວກັນໄດ້ດ້ວຍ :file:`setup.cfg`:" + +#: ../source/guides/packaging-namespace-packages.rst:129 +msgid "Or :file:`setup.py`:" +msgstr "ຫຼື :file:`setup.py`:" + +#: ../source/guides/packaging-namespace-packages.rst:142 +msgid "" +":ref:`setuptools` will search the directory structure for implicit namespace " +"packages by default." +msgstr "" +"ໂດຍມາດຕະຖານແລ້ວ :ref:`setuptools` ຈະຄົ້ນຫາ implicit namespace packages " +"ຈາກໂຄງສ້າງໂຟນເດີ." + +#: ../source/guides/packaging-namespace-packages.rst:145 +msgid "" +"A complete working example of two native namespace packages can be found in " +"the `native namespace package example project`_." +msgstr "" +"ຕົວຢ່າງການເຮັດວຽກທີ່ສົມບູນຂອງ native namespace packages ສອງອັນ " +"ສາມາດເບິ່ງໄດ້ໃນໂຄງການຕົວຢ່າງ." + +#: ../source/guides/packaging-namespace-packages.rst:151 +msgid "" +"Because native and pkgutil-style namespace packages are largely compatible, " +"you can use native namespace packages in the distributions that only support " +"Python 3 and pkgutil-style namespace packages in the distributions that need " +"to support Python 2 and 3." +msgstr "ເນື່ອງຈາກ native ແລະ pkgutil-style ເຂົ້າກັນໄດ້ດີ, ທ່ານສາມາດໃຊ້ທັງສອງແບບຮ່ວມກັນໄດ້." + +#: ../source/guides/packaging-namespace-packages.rst:158 +msgid "Legacy namespace packages" +msgstr "Legacy namespace packages" + +#: ../source/guides/packaging-namespace-packages.rst:160 +msgid "" +"These two methods, that were used to create namespace packages prior " +"to :pep:`420`, are now considered to be obsolete and should not be used " +"unless you need compatibility with packages already using one of these " +"methods." +msgstr "ສອງວິທີນີ້ຖືວ່າຫຼ້າສະໄໝແລ້ວ ແລະ ບໍ່ຄວນນຳໃຊ້." + +#: ../source/guides/packaging-namespace-packages.rst:164 +msgid "" +"To migrate an existing package, all packages sharing the namespace must be " +"migrated simultaneously." +msgstr "" +"ໃນການຍ້າຍ (migrate) ແພັກເກດທີ່ມີຢູ່ແລ້ວ, ທຸກແພັກເກດທີ່ໃຊ້ namespace ຮ່ວມກັນຕ້ອງຖືກຍ້າຍພ້ອມກັນ." + +#: ../source/guides/packaging-namespace-packages.rst:166 +msgid "" +"While native namespace packages and pkgutil-style namespace packages are " +"largely compatible, pkg_resources-style namespace packages are not " +"compatible with the other methods. It's inadvisable to use different methods " +"in different distributions that provide packages to the same namespace." +msgstr "ແບບ pkg_resources ບໍ່ເຂົ້າກັນໄດ້ກັບວິທີອື່ນ." + +#: ../source/guides/packaging-namespace-packages.rst:173 +msgid "pkgutil-style namespace packages" +msgstr "pkgutil-style namespace packages" + +#: ../source/guides/packaging-namespace-packages.rst:175 +msgid "" +"Python 2.3 introduced the :doc:`pkgutil ` module and " +"the :py:func:`python:pkgutil.extend_path` function. This can be used to " +"declare namespace packages that need to be compatible with both Python 2.3+ " +"and Python 3. This was the recommended approach for the highest level of " +"compatibility." +msgstr "" +"Python 2.3 ໄດ້ແນະນຳໂມດູນ ``pkgutil`` ເຊິ່ງສາມາດໃຊ້ສ້າງ namespace packages ທີ່ຮອງຮັບທັງ " +"Python 2 ແລະ 3." + +#: ../source/guides/packaging-namespace-packages.rst:180 +msgid "" +"To create a pkgutil-style namespace package, you need to provide " +"an :file:`__init__.py` file for the namespace package:" +msgstr "ໃນການສ້າງແພັກເກດແບບ pkgutil, ທ່ານຕ້ອງມີໄຟລ໌ :file:`__init__.py`:" + +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 +msgid "" +"The :file:`__init__.py` file for the namespace package needs to contain the " +"following:" +msgstr "ໄຟລ໌ :file:`__init__.py` ສຳລັບ namespace package ຕ້ອງມີເນື້ອຫາດັ່ງນີ້:" + +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 +msgid "" +"**Every** distribution that uses the namespace package must include such " +"an :file:`__init__.py`. If any distribution does not, it will cause the " +"namespace logic to fail and the other sub-packages will not be importable. " +"Any additional code in :file:`__init__.py` will be inaccessible." +msgstr "**ທຸກໆ** ຊຸດແຈກຢາຍທີ່ໃຊ້ namespace package ຕ້ອງມີໄຟລ໌ :file:`__init__.py` ນີ້." + +#: ../source/guides/packaging-namespace-packages.rst:206 +msgid "" +"A complete working example of two pkgutil-style namespace packages can be " +"found in the `pkgutil namespace example project`_." +msgstr "ຕົວຢ່າງທີ່ສົມບູນຂອງ pkgutil-style ສາມາດເບິ່ງໄດ້ໃນໂຄງການຕົວຢ່າງ." + +#: ../source/guides/packaging-namespace-packages.rst:216 +msgid "pkg_resources-style namespace packages" +msgstr "pkg_resources-style namespace packages" + +#: ../source/guides/packaging-namespace-packages.rst:220 +msgid "" +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "ຂໍ້ມູນໃນສ່ວນນີ້ແມ່ນຫຼ້າສະໄໝ ແລະ ໃຊ້ງານບໍ່ໄດ້ແລ້ວ (ຕັ້ງແຕ່ Setuptools 82.0.0)." + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "``pkg_resources`` ຖືກຍົກເລີກ ແລະ ຖືກຖອດອອກທັງໝົດໃນ Setuptools 82.0.0." + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." +msgstr "" +"ກ່ອນໜ້ານີ້ Setuptools ເຄີຍມີຟັງຊັນ ``declare_namespace`` ເພື່ອສ້າງ namespace packages." + +#: ../source/guides/packaging-namespace-packages.rst:235 +msgid "" +"To create a pkg_resources-style namespace package, you need to provide " +"an :file:`__init__.py` file for the namespace package:" +msgstr "ໃນການສ້າງແພັກເກດແບບ pkg_resources, ທ່ານຕ້ອງມີໄຟລ໌ :file:`__init__.py`:" + +#: ../source/guides/packaging-namespace-packages.rst:261 +msgid "" +"Some older recommendations advise the following in the namespace " +"package :file:`__init__.py`:" +msgstr "ບາງຄຳແນະນຳທີ່ເກົ່າກວ່າເຄີຍບອກໃຫ້ໃຊ້ແບບນີ້ໃນ :file:`__init__.py`:" + +#: ../source/guides/packaging-namespace-packages.rst:271 +msgid "" +"The idea behind this was that in the rare case that setuptools isn't " +"available packages would fall-back to the pkgutil-style packages. This isn't " +"advisable because pkgutil and pkg_resources-style namespace packages are not " +"cross-compatible. If the presence of setuptools is a concern then the " +"package should just explicitly depend on setuptools via ``install_requires``." +msgstr "" +"ແນວຄິດນີ້ແມ່ນເພື່ອໃຫ້ກັບໄປໃຊ້ແບບ pkgutil ໄດ້ຖ້າບໍ່ມີ setuptools, ແຕ່ມັນບໍ່ແນະນຳເພາະມັນບໍ່ເຂົ້າກັນໄດ້." + +#: ../source/guides/packaging-namespace-packages.rst:278 +msgid "" +"Finally, every distribution must provide the ``namespace_packages`` argument " +"to :func:`~setuptools.setup` in :file:`setup.py`. For example:" +msgstr "ສຸດທ້າຍ, ທຸກຊຸດແຈກຢາຍຕ້ອງລະບຸ ``namespace_packages`` ໃນ :file:`setup.py`." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 +msgid "" +"Publishing package distribution releases using GitHub Actions CI/CD workflows" +msgstr "ການເຜີຍແຜ່ແພັກເກດໂດຍໃຊ້ GitHub Actions CI/CD" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:7 +msgid "" +"`GitHub Actions CI/CD`_ allows you to run a series of commands whenever an " +"event occurs on the GitHub platform. One popular choice is having a workflow " +"that's triggered by a ``push`` event. This guide shows you how to publish a " +"Python distribution whenever a tagged commit is pushed. It will use the " +"`pypa/gh-action-pypi-publish GitHub Action`_ for publishing. It also uses " +"GitHub's `upload-artifact`_ and `download-artifact`_ actions for temporarily " +"storing and downloading the source packages." +msgstr "" +"GitHub Actions CI/CD ຊ່ວຍໃຫ້ທ່ານສາມາດສັ່ງໃຫ້ລະບົບເຮັດວຽກອັດຕະໂນມັດເມື່ອມີເຫດການໃດໜຶ່ງເກີດຂຶ້ນ." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:19 +msgid "" +"This guide *assumes* that you already have a project that you know how to " +"build distributions for and *it lives on GitHub*. This guide also avoids " +"details of building platform specific projects. If you have binary " +"components, check out :ref:`cibuildwheel`'s GitHub Action examples." +msgstr "ຄູ່ມືນີ້ *ສົມມຸດ* ວ່າທ່ານມີໂຄງການທີ່ພ້ອມຈະ build ແລ້ວ ແລະ ມັນຢູ່ເທິງ GitHub." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:25 +msgid "Configuring Trusted Publishing" +msgstr "ການຕັ້ງຄ່າການເຜີຍແຜ່ທີ່ໜ້າເຊື່ອຖື (Trusted Publishing)" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:27 +msgid "" +"This guide relies on PyPI's `Trusted Publishing`_ implementation to connect " +"to `GitHub Actions CI/CD`_. This is recommended for security reasons, since " +"the generated tokens are created for each of your projects individually and " +"expire automatically. Otherwise, you'll need to generate an `API token`_ for " +"both PyPI and TestPyPI. In case of publishing to third-party indexes " +"like :doc:`devpi `, you may need to provide a username/password " +"combination." +msgstr "ຄູ່ມືນີ້ໃຊ້ລະບົບ Trusted Publishing ຂອງ PyPI ເພື່ອເຊື່ອມຕໍ່ກັບ GitHub Actions." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:35 +msgid "" +"Since this guide will demonstrate uploading to both PyPI and TestPyPI, we'll " +"need two trusted publishers configured. The following steps will lead you " +"through creating the \"pending\" publishers for your new :term:`PyPI project " +"`. However it is also possible to add `Trusted Publishing`_ to any " +"pre-existing project, if you are its owner." +msgstr "" +"ເນື່ອງຈາກຄູ່ມືນີ້ຈະສາທິດການອັບໂຫຼດໄປທັງ PyPI ແລະ TestPyPI, " +"ພວກເຮົາຈະຕ້ອງມີການຕັ້ງຄ່າຜູ້ເຜີຍແຜ່ທີ່ເຊື່ອຖືໄດ້ (trusted publishers) ສອງແຫ່ງ. " +"ຂັ້ນຕອນຕໍ່ໄປນີ້ຈະນໍາພາທ່ານສ້າງຜູ້ເຜີຍແຜ່ແບບ \"pending\" ສໍາລັບ :term:`PyPI project " +"` ໃໝ່ຂອງທ່ານ. ຢ່າງໃດກໍຕາມ, ທ່ານຍັງສາມາດເພີ່ມ `Trusted Publishing`_ " +"ໃສ່ໂຄງການໃດໜຶ່ງທີ່ມີຢູ່ກ່ອນແລ້ວໄດ້, ຖ້າທ່ານເປັນເຈົ້າຂອງມັນ." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:44 +msgid "" +"If you followed earlier versions of this guide, you have created the secrets " +"``PYPI_API_TOKEN`` and ``TEST_PYPI_API_TOKEN`` for direct PyPI and TestPyPI " +"access. These are obsolete now and you should remove them from your GitHub " +"repository and revoke them in your PyPI and TestPyPI account settings in " +"case you are replacing your old setup with the new one." +msgstr "ຖ້າທ່ານເຄີຍໃຊ້ API Token ແບບເກົ່າ, ມັນຫຼ້າສະໄໝແລ້ວ ແລະ ຄວນປ່ຽນມາໃຊ້ວິທີໃໝ່ນີ້." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:51 +msgid "Let's begin! 🚀" +msgstr "ມາເລີ່ມກັນເລີຍ! 🚀" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:53 +msgid "Go to https://pypi.org/manage/account/publishing/." +msgstr "ໄປທີ່ https://pypi.org/manage/account/publishing/." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:54 +msgid "" +"Fill in the name you wish to publish your new :term:`PyPI project ` " +"under (the ``name`` value in your ``setup.cfg`` or ``pyproject.toml``), the " +"GitHub repository owner's name (org or user), and repository name, and the " +"name of the release workflow file under the ``.github/`` folder, " +"see :ref:`workflow-definition`. Finally, add the name of the GitHub " +"Environment (``pypi``) we're going set up under your repository. Register " +"the trusted publisher." +msgstr "ປ້ອນຂໍ້ມູນຕ່າງໆ ເຊັ່ນ ຊື່ໂຄງການ, ຊື່ເຈົ້າຂອງ repository, ແລະ ຊື່ workflow ໃຫ້ຖືກຕ້ອງ." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:63 +msgid "" +"Now, go to https://test.pypi.org/manage/account/publishing/ and repeat the " +"second step, but this time, enter ``testpypi`` as the name of the GitHub " +"Environment." +msgstr "" +"ຈາກນັ້ນໄປທີ່ TestPyPI ແລະ ເຮັດຂັ້ນຕອນດຽວກັນ ແຕ່ໃຫ້ໃຊ້ຊື່ Environment ວ່າ ``testpypi``." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:66 +msgid "" +"Your \"pending\" publishers are now ready for their first use and will " +"create your projects automatically once you use them for the first time." +msgstr "Trusted publishers ຂອງທ່ານພ້ອມໃຊ້ງານແລ້ວ." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:72 +msgid "" +"If you don't have a TestPyPI account, you'll need to create it. It's not the " +"same as a regular PyPI account." +msgstr "ຖ້າທ່ານຍັງບໍ່ມີບັນຊີ TestPyPI, ທ່ານຕ້ອງສ້າງມັນກ່ອນ (ມັນແຍກຈາກບັນຊີ PyPI ປົກກະຕິ)." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:78 +msgid "" +"For security reasons, you must require `manual approval `_ on each run for the ``pypi`` environment." +msgstr "" +"ເພື່ອຄວາມປອດໄພ, ທ່ານຄວນຕັ້ງຄ່າໃຫ້ມີການອະນຸມັດດ້ວຍມື (manual approval) ສຳລັບ environment " +"``pypi``." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:85 +msgid "Creating a workflow definition" +msgstr "ການສ້າງໄຟລ໌ກຳນົດ workflow" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:87 +msgid "" +"GitHub CI/CD workflows are declared in YAML files stored in the ``.github/" +"workflows/`` directory of your repository." +msgstr "" +"Workflow ຂອງ GitHub ຖືກກຳນົດໃນໄຟລ໌ YAML ທີ່ເກັບໄວ້ໃນໂຟນເດີ ``.github/workflows/``." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:90 +msgid "Let's create a ``.github/workflows/publish-to-pypi.yml`` file." +msgstr "ໃຫ້ສ້າງໄຟລ໌ ``.github/workflows/publish-to-pypi.yml``." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:93 +msgid "" +"Start it with a meaningful name and define the event that should make GitHub " +"run this workflow:" +msgstr "ເລີ່ມຕົ້ນດ້ວຍການຕັ້ງຊື່ທີ່ສື່ຄວາມໝາຍ ແລະ ກຳນົດເຫດການທີ່ຈະໃຫ້ workflow ນີ້ເຮັດວຽກ:" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:101 +msgid "Checking out the project and building distributions" +msgstr "ການກວດສອບໂຄງການ ແລະ ການ build ຊຸດແຈກຢາຍ" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:103 +msgid "" +"We will have to define two jobs to publish to PyPI and TestPyPI " +"respectively, and an additional job to build the distribution packages." +msgstr "ເຮົາຕ້ອງກຳນົດສອງ job ສຳລັບການເຜີຍແຜ່ ແລະ ອີກໜຶ່ງ job ສຳລັບການ build." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "ຄວນແຍກ build job ອອກຈາກ publishing job." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 +msgid "" +"First, we'll define the job for building the dist packages of your project " +"and storing them for later use:" +msgstr "ກ່ອນອື່ນ, ເຮົາຈະກຳນົດ job ສຳລັບ build ແພັກເກດ ແລະ ເກັບມັນໄວ້ໃຊ້ພາຍຫຼັງ:" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 +msgid "" +"If you adapt this workflow to build multiple platform-specific wheels, use " +"uniquely named artifacts for each build job and adjust the download step " +"accordingly. The `cibuildwheel GitHub Actions examples`_ show a fuller wheel " +"matrix layout." +msgstr "ຖ້າທ່ານ build wheels ສຳລັບຫຼາຍແພລັດຟອມ, ໃຫ້ຕັ້ງຊື່ artifact ໃຫ້ແຕກຕ່າງກັນ." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 +msgid "" +"This will download your repository into the CI runner and then install and " +"activate the newest available Python 3 release." +msgstr "ສິ່ງນີ້ຈະດາວໂຫຼດ repository ຂອງທ່ານລົງໃນ CI runner ແລະ ຕິດຕັ້ງ Python 3 ລຸ້ນໃໝ່ສຸດ." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 +msgid "" +"And now we can build the dists from source and store them. In this example, " +"we'll use the ``build`` package. So add this to the steps list:" +msgstr "ຕອນນີ້ເຮົາສາມາດ build ຈາກຊອສໂຄ້ດ ແລະ ເກັບມັນໄວ້ໄດ້ແລ້ວ." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 +msgid "Defining a workflow job environment" +msgstr "ການກຳນົດ Environment ສຳລັບ Workflow Job" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 +msgid "" +"Now, let's add initial setup for our job that will publish to PyPI. It's a " +"process that will execute commands that we'll define later. In this guide, " +"we'll use the latest stable Ubuntu LTS version provided by GitHub Actions. " +"This also defines a GitHub Environment for the job to run in its context and " +"a URL to be displayed in GitHub's UI nicely. Additionally, it allows " +"acquiring an OpenID Connect token that the ``pypi-publish`` actions needs to " +"implement secretless Trusted Publishing to PyPI." +msgstr "ໃຫ້ເຮົາຕັ້ງຄ່າ Environment ສຳລັບ job ທີ່ຈະເຜີຍແຜ່ໄປຍັງ PyPI." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +msgid "" +"This will also ensure that the PyPI publishing workflow is only triggered if " +"the current commit is tagged." +msgstr "ສິ່ງນີ້ຍັງຊ່ວຍໃຫ້ໝັ້ນໃຈວ່າການເຜີຍແຜ່ໄປ PyPI ຈະເກີດຂຶ້ນກໍຕໍ່ເມື່ອມີການຕິດ Tag ເທົ່ານັ້ນ." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 +msgid "Publishing the distribution to PyPI" +msgstr "ການເຜີຍແຜ່ແພັກເກດໄປຍັງ PyPI" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 +msgid "Finally, add the following steps at the end:" +msgstr "ສຸດທ້າຍ, ໃຫ້ເພີ່ມຂັ້ນຕອນຕໍ່ໄປນີ້ໃສ່ຕອນທ້າຍ:" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 +msgid "" +"This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " +"stored distribution package has been downloaded by the `download-artifact`_ " +"action, it uploads the contents of the ``dist/`` folder into PyPI " +"unconditionally." +msgstr "" +"ຂັ້ນຕອນນີ້ໃຊ້ GitHub Action ຂອງ pypa ເພື່ອອັບໂຫຼດເນື້ອຫາໃນໂຟນເດີ ``dist/`` ໄປຍັງ PyPI." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 +msgid "" +"Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " +"and uploads :pep:`740`-compatible attestations for each distribution by " +"default. No additional manual signing steps are required." +msgstr "" +"ຕັ້ງແຕ່ລຸ້ນ v1.11.0 ເປັນຕົ້ນໄປ, ມັນຈະສ້າງ ແລະ ອັບໂຫຼດໃບຢັ້ງຢືນ (attestations) ໃຫ້ໂດຍອັດຕະໂນມັດ." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 +msgid "Separate workflow for publishing to TestPyPI" +msgstr "ແຍກ Workflow ສຳລັບການເຜີຍແຜ່ໄປ TestPyPI" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 +msgid "" +"Now, repeat these steps and create another job for publishing to the " +"TestPyPI package index under the ``jobs`` section:" +msgstr "ຕອນນີ້, ໃຫ້ເຮັດຂັ້ນຕອນເຫຼົ່ານີ້ຄືນໃໝ່ເພື່ອສ້າງ job ສຳລັບ TestPyPI:" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +msgid "" +"Requiring manual approvals in the ``testpypi`` GitHub Environment is " +"typically unnecessary as it's designed to run on each commit to the main " +"branch and is often used to indicate a healthy release publishing pipeline." +msgstr "ການຂໍອະນຸມັດດ້ວຍມືສຳລັບ TestPyPI ມັກຈະບໍ່ຈຳເປັນ." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 +msgid "The whole CI/CD workflow" +msgstr "CI/CD workflow ທັງໝົດ" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 +msgid "" +"This paragraph showcases the whole workflow after following the above guide." +msgstr "ສ່ວນນີ້ສະແດງໃຫ້ເຫັນ workflow ທັງໝົດຫຼັງຈາກທີ່ເຮັດຕາມຄູ່ມືຂ້າງເທິງ." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 +msgid "That's all, folks!" +msgstr "ໝົດພຽງເທົ່ານີ້!" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 +msgid "" +"Now, whenever you push a tagged commit to your Git repository remote on " +"GitHub, this workflow will publish it to PyPI. And it'll publish any push to " +"TestPyPI which is useful for providing test builds to your alpha users as " +"well as making sure that your release pipeline remains healthy!" +msgstr "ຕອນນີ້, ທຸກຄັ້ງທີ່ທ່ານ push ໂຄ້ດທີ່ມີ tag, ລະບົບຈະເຜີຍແຜ່ໄປ PyPI ໃຫ້ໂດຍອັດຕະໂນມັດ." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 +msgid "" +"If your repository has frequent commit activity and every push is uploaded " +"to TestPyPI as described, the project might exceed the `PyPI project size " +"limit `_. The limit could be " +"increased, but a better solution may constitute to use a PyPI-compatible " +"server like :ref:`pypiserver` in the CI for testing purposes." +msgstr "ຖ້າ repository ຂອງທ່ານມີການ push ຖີ່ເກີນໄປ, ທ່ານອາດຈະເກີນຂີດຈຳກັດຂະໜາດຂອງ PyPI." + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 +msgid "" +"It is recommended to keep the integrated GitHub Actions at their latest " +"versions, updating them frequently." +msgstr "ຂໍແນະນຳໃຫ້ອັບເດດ GitHub Actions ໃຫ້ເປັນລຸ້ນໃໝ່ລ່າສຸດຢູ່ສະເໝີ." + +#: ../source/guides/section-build-and-publish.rst:3 +msgid "Building and Publishing" +msgstr "ການສ້າງ ແລະ ການເຜີຍແຜ່" + +#: ../source/guides/section-hosting.rst:3 +msgid "Hosting" +msgstr "ໂຮສຕິ້ງ" + +#: ../source/guides/section-install.rst:3 +#: ../source/specifications/pylock-toml.rst:744 +msgid "Installation" +msgstr "ການຕິດຕັ້ງ" + +#: ../source/guides/single-sourcing-package-version.rst:-1 +msgid "0; url=../../discussions/single-source-version/" +msgstr "0; url=../../discussions/single-source-version/" + +#: ../source/guides/single-sourcing-package-version.rst:6 +msgid "Redirecting stale single-source package version link..." +msgstr "ກຳລັງປ່ຽນເສັ້ນທາງລິ້ງລຸ້ນແພັກເກດທີ່ຫຼ້າສະໄໝ..." + +#: ../source/guides/single-sourcing-package-version.rst:8 +msgid "" +"If the page doesn't automatically refresh, see :ref:`single-source-version`." +msgstr "ຖ້າໜ້າເວັບບໍ່ໂຫຼດໃໝ່ໂດຍອັດຕະໂນມັດ, ໃຫ້ເບິ່ງ :ref:`single-source-version`." + +#: ../source/guides/supporting-multiple-python-versions.rst:7 +msgid "Supporting multiple Python versions" +msgstr "ການຮອງຮັບ Python ຫຼາຍລຸ້ນ" + +#: ../source/guides/supporting-multiple-python-versions.rst:10 +msgid "2014-12-24" +msgstr "2014-12-24" + +#: ../source/guides/supporting-multiple-python-versions.rst:36 +msgid "" +"In addition to the work required to create a Python package, it is often " +"necessary that the package must be made available on different versions of " +"Python. Different Python versions may contain different (or renamed) " +"standard library packages, and the changes between Python versions 2.x and " +"3.x include changes in the language syntax." +msgstr "ນອກຈາກການສ້າງແພັກເກດແລ້ວ, ສິ່ງສຳຄັນແມ່ນຕ້ອງເຮັດໃຫ້ແພັກເກດໃຊ້ໄດ້ກັບ Python ຫຼາຍໆລຸ້ນ." + +#: ../source/guides/supporting-multiple-python-versions.rst:42 +msgid "" +"Performed manually, all the testing required to ensure that the package " +"works correctly on all the target Python versions (and OSs!) could be very " +"time-consuming. Fortunately, several tools are available for dealing with " +"this, and these will briefly be discussed here." +msgstr "ການທົດສອບດ້ວຍມືທຸກໆລຸ້ນອາດຈະໃຊ້ເວລາດົນຫຼາຍ." + +#: ../source/guides/supporting-multiple-python-versions.rst:48 +msgid "Automated testing and continuous integration" +msgstr "ການທົດສອບອັດຕະໂນມັດ ແລະ Continuous Integration" + +#: ../source/guides/supporting-multiple-python-versions.rst:50 +msgid "" +"Several hosted services for automated testing are available. These services " +"will typically monitor your source code repository (e.g. at `GitHub `_ or `Bitbucket `_) and run your " +"project's test suite every time a new commit is made." +msgstr "ມີການບໍລິການຫຼາຍຢ່າງສຳລັບການທົດສອບອັດຕະໂນມັດ." + +#: ../source/guides/supporting-multiple-python-versions.rst:55 +msgid "" +"These services also offer facilities to run your project's test suite on " +"*multiple versions of Python*, giving rapid feedback about whether the code " +"will work, without the developer having to perform such tests themselves." +msgstr "ບໍລິການເຫຼົ່ານີ້ຊ່ວຍໃຫ້ທ່ານທົດສອບກັບ Python ຫຼາຍໆລຸ້ນໄດ້ພ້ອມກັນ." + +#: ../source/guides/supporting-multiple-python-versions.rst:59 +msgid "" +"Wikipedia has an extensive `comparison `_ of many continuous-" +"integration systems. There are two hosted services which when used in " +"conjunction provide automated testing across Linux, Mac and Windows:" +msgstr "ມີສອງບໍລິການທີ່ມັກໃຊ້ຮ່ວມກັນເພື່ອທົດສອບທັງ Linux, Mac ແລະ Windows:" + +#: ../source/guides/supporting-multiple-python-versions.rst:65 +msgid "" +"`GitHub Actions `_ provides Windows, " +"Linux and a macOS environments." +msgstr "`GitHub Actions` ໃຫ້ບໍລິການທັງ Windows, Linux ແລະ macOS." + +#: ../source/guides/supporting-multiple-python-versions.rst:67 +msgid "" +"`Appveyor `_ provides a Windows environment " +"(Windows Server 2012)." +msgstr "`Appveyor` ໃຫ້ບໍລິການສະພາບແວດລ້ອມ Windows." + +#: ../source/guides/supporting-multiple-python-versions.rst:78 +msgid "" +"Both `GitHub Actions`_ and Appveyor_ require a `YAML `_-" +"formatted file as specification for the instructions for testing. If any " +"tests fail, the output log for that specific configuration can be inspected." +msgstr "ທັງສອງຢ່າງນີ້ຕ້ອງການໄຟລ໌ YAML ໃນການຕັ້ງຄ່າ." + +#: ../source/guides/supporting-multiple-python-versions.rst:83 +msgid "" +"For Python projects that are intended to be deployed on both Python 2 and 3 " +"with a single-source strategy, there are a number of options." +msgstr "ສຳລັບໂຄງການທີ່ຕ້ອງການໃຊ້ໄດ້ທັງ Python 2 ແລະ 3 ດ້ວຍຊອສໂຄ້ດດຽວ, ມີຫຼາຍທາງເລືອກ." + +#: ../source/guides/supporting-multiple-python-versions.rst:87 +msgid "Tools for single-source Python packages" +msgstr "ເຄື່ອງມືສຳລັບແພັກເກດ Python ແບບຊອສໂຄ້ດດຽວ (Single-source)" + +#: ../source/guides/supporting-multiple-python-versions.rst:89 +msgid "" +"`six `_ is a tool developed by Benjamin " +"Peterson for wrapping over the differences between Python 2 and Python 3. " +"The six_ package has enjoyed widespread use and may be regarded as a " +"reliable way to write a single-source Python module that can be use in both " +"Python 2 and 3. The six_ module can be used from as early as Python 2.5. A " +"tool called `modernize `_, developed by " +"Armin Ronacher, can be used to automatically apply the code modifications " +"provided by six_." +msgstr "`six` ແມ່ນເຄື່ອງມືທີ່ຊ່ວຍຈັດການຄວາມແຕກຕ່າງລະຫວ່າງ Python 2 ແລະ 3." + +#: ../source/guides/supporting-multiple-python-versions.rst:98 +msgid "" +"Similar to six_, `python-future `_ " +"is a package that provides a compatibility layer between Python 2 and Python " +"3 source code; however, unlike six_, this package aims to provide " +"interoperability between Python 2 and Python 3 with a language syntax that " +"matches one of the two Python versions: one may use" +msgstr "`python-future` ກໍຄ້າຍຄືກັບ six ແຕ່ເນັ້ນໃຫ້ໃຊ້ syntax ຂອງລຸ້ນໃດລຸ້ນໜຶ່ງ." + +#: ../source/guides/supporting-multiple-python-versions.rst:105 +msgid "a Python 2 (by syntax) module in a Python 3 project." +msgstr "ໃຊ້ໂມດູນ Python 2 (ຕາມ syntax) ໃນໂຄງການ Python 3." + +#: ../source/guides/supporting-multiple-python-versions.rst:106 +msgid "a Python 3 (by syntax) module in a *Python 2* project." +msgstr "ໃຊ້ໂມດູນ Python 3 (ຕາມ syntax) ໃນໂຄງການ *Python 2*." + +#: ../source/guides/supporting-multiple-python-versions.rst:108 +msgid "" +"Because of the bi-directionality, python-future_ offers a pathway to " +"converting a Python 2 package to Python 3 syntax module-by-module. However, " +"in contrast to six_, python-future_ is supported only from Python 2.6. " +"Similar to modernize_ for six_, python-future_ comes with two scripts called " +"``futurize`` and ``pasteurize`` that can be applied to either a Python 2 " +"module or a Python 3 module respectively." +msgstr "`python-future` ຊ່ວຍໃຫ້ທ່ານຄ່ອຍໆປ່ຽນໂມດູນໄປທີລະໜ້ອຍໄດ້." + +#: ../source/guides/supporting-multiple-python-versions.rst:115 +msgid "" +"Use of six_ or python-future_ adds an additional runtime dependency to your " +"package: with python-future_, the ``futurize`` script can be called with the " +"``--stage1`` option to apply only the changes that Python 2.6+ already " +"provides for forward-compatibility to Python 3. Any remaining compatibility " +"problems would require manual changes." +msgstr "ການໃຊ້ six ຫຼື python-future ຈະເຮັດໃຫ້ແພັກເກດຂອງທ່ານມີ dependency ເພີ່ມຂຶ້ນ." + +#: ../source/guides/supporting-multiple-python-versions.rst:122 +msgid "What's in which Python?" +msgstr "ມີຫຍັງໃໝ່ໃນແຕ່ລະລຸ້ນຂອງ Python?" + +#: ../source/guides/supporting-multiple-python-versions.rst:124 +msgid "" +"Ned Batchelder provides a list of changes in each Python release for `Python " +"2 `__, " +"`Python 3.0-3.3 `__ and `Python 3.4-3.6 `__. These " +"lists may be used to check whether any changes between Python versions may " +"affect your package." +msgstr "Ned Batchelder ໄດ້ລວບລວມລາຍການການປ່ຽນແປງໃນແຕ່ລະລຸ້ນຂອງ Python ໄວ້." + +#: ../source/guides/supporting-windows-using-appveyor.rst:5 +msgid "Supporting Windows using Appveyor" +msgstr "ການຮອງຮັບ Windows ໂດຍໃຊ້ Appveyor" + +#: ../source/guides/supporting-windows-using-appveyor.rst:8 +msgid "2015-12-03" +msgstr "2015-12-03" + +#: ../source/guides/supporting-windows-using-appveyor.rst:10 +msgid "" +"This section covers how to use the free `Appveyor`_ continuous integration " +"service to provide Windows support for your project. This includes testing " +"the code on Windows, and building Windows-targeted binaries for projects " +"that use C extensions." +msgstr "ສ່ວນນີ້ຈະອະທິບາຍວິທີໃຊ້ Appveyor ເພື່ອຮອງຮັບ Windows." + +#: ../source/guides/supporting-windows-using-appveyor.rst:19 +msgid "" +"Many projects are developed on Unix by default, and providing Windows " +"support can be a challenge, because setting up a suitable Windows test " +"environment is non-trivial, and may require buying software licenses." +msgstr "ຫຼາຍໂຄງການພັດທະນາເທິງ Unix ເປັນຫຼັກ, ການຮອງຮັບ Windows ຈຶ່ງອາດເປັນເລື່ອງຍາກ." + +#: ../source/guides/supporting-windows-using-appveyor.rst:23 +msgid "" +"Windows users typically do not have access to a C compiler, and therefore " +"are reliant on projects that use C extensions distributing binary wheels on " +"PyPI in order for the distribution to be installable via ``python -m pip " +"install ``. By using Appveyor as a build service (even if not using it " +"for testing) it is possible for projects without a dedicated Windows " +"environment to provide Windows-targeted binaries." +msgstr "ຜູ້ໃຊ້ Windows ສ່ວນໃຫຍ່ບໍ່ມີຄອມໄພເລີ C ດັ່ງນັ້ນເຂົາເຈົ້າຈຶ່ງຕ້ອງເພິ່ງພາ binary wheels." + +#: ../source/guides/supporting-windows-using-appveyor.rst:31 +msgid "Setting up" +msgstr "ການຕັ້ງຄ່າ" + +#: ../source/guides/supporting-windows-using-appveyor.rst:33 +msgid "" +"In order to use Appveyor to build Windows wheels for your project, you must " +"have an account on the service. Instructions on setting up an account are " +"given in `the Appveyor documentation `__. " +"The free tier of account is perfectly adequate for open source projects." +msgstr "ທ່ານຕ້ອງມີບັນຊີ Appveyor ກ່ອນ." + +#: ../source/guides/supporting-windows-using-appveyor.rst:38 +msgid "" +"Appveyor provides integration with `GitHub`_ and `Bitbucket`_, so as long as " +"your project is hosted on one of those two services, setting up Appveyor " +"integration is straightforward." +msgstr "Appveyor ສາມາດເຊື່ອມຕໍ່ກັບ GitHub ແລະ Bitbucket ໄດ້." + +#: ../source/guides/supporting-windows-using-appveyor.rst:42 +msgid "" +"Once you have set up your Appveyor account and added your project, Appveyor " +"will automatically build your project each time a commit occurs." +msgstr "ເມື່ອຕັ້ງຄ່າແລ້ວ, Appveyor ຈະ build ໂຄງການໃຫ້ອັດຕະໂນມັດທຸກຄັ້ງທີ່ມີການ commit." + +#: ../source/guides/supporting-windows-using-appveyor.rst:46 +msgid "Adding Appveyor support to your project" +msgstr "ການເພີ່ມການຮອງຮັບ Appveyor ເຂົ້າໃນໂຄງການ" + +#: ../source/guides/supporting-windows-using-appveyor.rst:48 +msgid "" +"In order to define how Appveyor should build your project, you need to add " +"an :file:`appveyor.yml` file to your project. The full details of what can " +"be included in the file are covered in the Appveyor documentation. This " +"guide will provide the details necessary to set up wheel builds." +msgstr "ທ່ານຕ້ອງເພີ່ມໄຟລ໌ :file:`appveyor.yml` ເຂົ້າໃນໂຄງການ." + +#: ../source/guides/supporting-windows-using-appveyor.rst:53 +msgid "" +"Appveyor includes by default all of the compiler toolchains needed to build " +"extensions for Python. For Python 2.7, 3.5+ and 32-bit versions of 3.3 and " +"3.4, the tools work out of the box. But for 64-bit versions of Python 3.3 " +"and 3.4, there is a small amount of additional configuration needed to let " +"distutils know where to find the 64-bit compilers. (From 3.5 onwards, the " +"version of Visual Studio used includes 64-bit compilers with no additional " +"setup)." +msgstr "Appveyor ມີຄອມໄພເລີທຸກຢ່າງທີ່ຈຳເປັນມາໃຫ້ແລ້ວ." + +#: ../source/guides/supporting-windows-using-appveyor.rst:61 +msgid "appveyor.yml" +msgstr "appveyor.yml" + +#: ../source/guides/supporting-windows-using-appveyor.rst:67 +msgid "" +"This file can be downloaded from `here `__." +msgstr "ທ່ານສາມາດດາວໂຫຼດໄຟລ໌ນີ້ໄດ້ຈາກບ່ອນນີ້." + +#: ../source/guides/supporting-windows-using-appveyor.rst:69 +msgid "" +"The :file:`appveyor.yml` file must be located in the root directory of your " +"project. It is in ``YAML`` format, and consists of a number of sections." +msgstr "ໄຟລ໌ :file:`appveyor.yml` ຕ້ອງຢູ່ທີ່ໂຟນເດີຫຼັກຂອງໂຄງການ." + +#: ../source/guides/supporting-windows-using-appveyor.rst:72 +msgid "" +"The ``environment`` section is the key to defining the Python versions for " +"which your wheels will be created. Appveyor comes with Python 2.6, 2.7, 3.3, " +"3.4 and 3.5 installed, in both 32-bit and 64-bit builds. The example file " +"builds for all of these environments except Python 2.6. Installing for " +"Python 2.6 is more complex, as it does not come with pip included. We don't " +"support 2.6 in this document (as Windows users still using Python 2 are " +"generally able to move to Python 2.7 without too much difficulty)." +msgstr "ສ່ວນ ``environment`` ແມ່ນບ່ອນກຳນົດລຸ້ນຂອງ Python ທີ່ຈະໃຊ້ build wheels." + +#: ../source/guides/supporting-windows-using-appveyor.rst:80 +msgid "" +"The ``install`` section uses pip to install any additional software that the " +"project may require. The only requirement for building wheels is the " +"``wheel`` project, but projects may wish to customise this code in certain " +"circumstances (for example, to install additional build packages such as " +"``Cython``, or test tools such as ``tox``)." +msgstr "ສ່ວນ ``install`` ໃຊ້ສຳລັບຕິດຕັ້ງຊອບແວເພີ່ມເຕີມ." + +#: ../source/guides/supporting-windows-using-appveyor.rst:86 +msgid "" +"The ``build`` section simply switches off builds - there is no build step " +"needed for Python, unlike languages like ``C#``." +msgstr "ສ່ວນ ``build`` ໃນທີ່ນີ້ແມ່ນປິດໄວ້ ເພາະ Python ບໍ່ຈຳເປັນຕ້ອງ build ແບບພາສາອື່ນ." + +#: ../source/guides/supporting-windows-using-appveyor.rst:89 +msgid "" +"The main sections that will need to be tailored to your project are " +"``test_script`` and ``after_test``." +msgstr "ສ່ວນຫຼັກທີ່ທ່ານຕ້ອງປັບແຕ່ງແມ່ນ ``test_script`` ແລະ ``after_test``." + +#: ../source/guides/supporting-windows-using-appveyor.rst:92 +msgid "" +"The ``test_script`` section is where you will run your project's tests. The " +"supplied file runs your test suite using ``setup.py test``. If you are only " +"interested in building wheels, and not in running your tests on Windows, you " +"can replace this section with a dummy command such as ``echo Skipped " +"Tests``. You may wish to use another test tool, such as ``nose`` " +"or :file:`py.test`. Or you may wish to use a test driver like ``tox`` - " +"however if you are using ``tox`` there are some additional configuration " +"changes you will need to consider, which are described below." +msgstr "ສ່ວນ ``test_script`` ແມ່ນບ່ອນທີ່ທ່ານສັ່ງໃຫ້ທົດສອບໂຄງການ." + +#: ../source/guides/supporting-windows-using-appveyor.rst:101 +msgid "" +"The ``after_test`` runs once your tests have completed, and so is where the " +"wheels should be built. Assuming your project uses the recommended tools " +"(specifically, ``setuptools``) then the ``setup.py bdist_wheel`` command " +"will build your wheels." +msgstr "" +"ສ່ວນ ``after_test`` ຈະເຮັດວຽກຫຼັງຈາກທົດສອບແລ້ວ ແລະ ເປັນບ່ອນທີ່ເຮົາຈະ build wheels." + +#: ../source/guides/supporting-windows-using-appveyor.rst:106 +msgid "" +"Note that wheels will only be built if your tests succeed. If you expect " +"your tests to fail on Windows, you can skip them as described above." +msgstr "ໝາຍເຫດ wheels ຈະຖືກ build ກໍຕໍ່ເມື່ອການທົດສອບຜ່ານເທົ່ານັ້ນ." + +#: ../source/guides/supporting-windows-using-appveyor.rst:111 +msgid "Support script" +msgstr "ສະຄຣິບຊ່ວຍເຫຼືອ" + +#: ../source/guides/supporting-windows-using-appveyor.rst:113 +msgid "" +"The :file:`appveyor.yml` file relies on a single support script, which sets " +"up the environment to use the SDK compiler for 64-bit builds on Python 3.3 " +"and 3.4. For projects which do not need a compiler, or which don't support " +"3.3 or 3.4 on 64-bit Windows, only the :file:`appveyor.yml` file is needed." +msgstr "ໄຟລ໌ :file:`appveyor.yml` ຕ້ອງໃຊ້ສະຄຣິບຊ່ວຍເພື່ອຕັ້ງຄ່າສະພາບແວດລ້ອມ." + +#: ../source/guides/supporting-windows-using-appveyor.rst:118 +msgid "" +"`build.cmd `__ is a Windows batch " +"script that runs a single command in an environment with the appropriate " +"compiler for the selected Python version. All you need to do is to set the " +"single environment variable ``DISTUTILS_USE_SDK`` to a value of ``1`` and " +"the script does the rest. It sets up the SDK needed for 64-bit builds of " +"Python 3.3 or 3.4, so don't set the environment variable for any other " +"builds." +msgstr "`build.cmd` ແມ່ນສະຄຣິບ Windows batch ທີ່ຊ່ວຍເລືອກຄອມໄພເລີທີ່ຖືກຕ້ອງ." + +#: ../source/guides/supporting-windows-using-appveyor.rst:125 +msgid "" +"You can simply download the batch file and include it in your project " +"unchanged." +msgstr "ທ່ານສາມາດດາວໂຫຼດໄຟລ໌ນີ້ໄປໄວ້ໃນໂຄງການໄດ້ເລີຍໂດຍບໍ່ຕ້ອງປ່ຽນແປງຫຍັງ." + +#: ../source/guides/supporting-windows-using-appveyor.rst:129 +msgid "Access to the built wheels" +msgstr "ການເຂົ້າເຖິງ wheels ທີ່ build ແລ້ວ" + +#: ../source/guides/supporting-windows-using-appveyor.rst:131 +msgid "" +"When your build completes, the built wheels will be available from the " +"Appveyor control panel for your project. They can be found by going to the " +"build status page for each build in turn. At the top of the build output " +"there is a series of links, one of which is \"Artifacts\". That page will " +"include a list of links to the wheels for that Python version / " +"architecture. You can download those wheels and upload them to PyPI as part " +"of your release process." +msgstr "" +"ເມື່ອ build ສຳເລັດ, ທ່ານສາມາດດາວໂຫຼດ wheels ໄດ້ຈາກໜ້າ \"Artifacts\" ໃນ Appveyor." + +#: ../source/guides/supporting-windows-using-appveyor.rst:142 +msgid "Testing with tox" +msgstr "ການທົດສອບດ້ວຍ tox" + +#: ../source/guides/supporting-windows-using-appveyor.rst:144 +msgid "" +"Many projects use the :doc:`Tox ` tool to run their tests. It " +"ensures that tests are run in an isolated environment using the exact files " +"that will be distributed by the project." +msgstr "ຫຼາຍໂຄງການໃຊ້ `Tox` ເພື່ອທົດສອບໃນສະພາບແວດລ້ອມທີ່ແຍກສ່ວນ." + +#: ../source/guides/supporting-windows-using-appveyor.rst:148 +msgid "" +"In order to use ``tox`` on Appveyor there are a couple of additional " +"considerations (in actual fact, these issues are not specific to Appveyor, " +"and may well affect other CI systems)." +msgstr "ການໃຊ້ ``tox`` ເທິງ Appveyor ມີບາງຢ່າງທີ່ຕ້ອງພິຈາລະນາເພີ່ມເຕີມ." + +#: ../source/guides/supporting-windows-using-appveyor.rst:152 +msgid "" +"By default, ``tox`` only passes a chosen subset of environment variables to " +"the test processes. Because ``distutils`` uses environment variables to " +"control the compiler, this \"test isolation\" feature will cause the tests " +"to use the wrong compiler by default." +msgstr "ໂດຍມາດຕະຖານແລ້ວ ``tox`` ຈະສົ່ງຜ່ານຕົວປ່ຽນ environment ພຽງບາງສ່ວນເທົ່ານັ້ນ." + +#: ../source/guides/supporting-windows-using-appveyor.rst:157 +msgid "" +"To force ``tox`` to pass the necessary environment variables to the " +"subprocess, you need to set the ``tox`` configuration option ``passenv`` to " +"list the additional environment variables to be passed to the subprocess. " +"For the SDK compilers, you need" +msgstr "ເພື່ອບັງຄັບໃຫ້ ``tox`` ສົ່ງຜ່ານຕົວປ່ຽນທີ່ຈຳເປັນ, ທ່ານຕ້ອງຕັ້ງຄ່າ ``passenv``." + +#: ../source/guides/supporting-windows-using-appveyor.rst:162 +msgid "``DISTUTILS_USE_SDK``" +msgstr "``DISTUTILS_USE_SDK``" + +#: ../source/guides/supporting-windows-using-appveyor.rst:163 +msgid "``MSSdk``" +msgstr "``MSSdk``" + +#: ../source/guides/supporting-windows-using-appveyor.rst:164 +msgid "``INCLUDE``" +msgstr "``INCLUDE``" + +#: ../source/guides/supporting-windows-using-appveyor.rst:165 +msgid "``LIB``" +msgstr "``LIB``" + +#: ../source/guides/supporting-windows-using-appveyor.rst:167 +msgid "" +"The ``passenv`` option can be set in your :file:`tox.ini`, or if you prefer " +"to avoid adding Windows-specific settings to your general project files, it " +"can be set by setting the ``TOX_TESTENV_PASSENV`` environment variable. The " +"supplied :file:`build.cmd` script does this by default whenever " +"``DISTUTILS_USE_SDK`` is set." +msgstr "ທ່ານສາມາດຕັ້ງຄ່າ ``passenv`` ໃນໄຟລ໌ :file:`tox.ini` ໄດ້." + +#: ../source/guides/supporting-windows-using-appveyor.rst:173 +msgid "" +"When used interactively, ``tox`` allows you to run your tests against " +"multiple environments (often, this means multiple Python versions). This " +"feature is not as useful in a CI environment like Appveyor, where all tests " +"are run in isolated environments for each configuration. As a result, " +"projects often supply an argument ``-e ENVNAME`` to ``tox`` to specify which " +"environment to use (there are default environments for most versions of " +"Python)." +msgstr "ໃນ CI ເຊັ່ນ Appveyor, ເຮົາມັກຈະລະບຸ environment ທີ່ຕ້ອງການດ້ວຍ ``-e ENVNAME``." + +#: ../source/guides/supporting-windows-using-appveyor.rst:180 +msgid "" +"However, this does *not* work well with a Windows CI system like Appveyor, " +"where there are (for example) two installations of Python 3.4 (32-bit and 64-" +"bit) available, but only one ``py34`` environment in ``tox``." +msgstr "" +"ແຕ່ມັນອາດຈະມີບັນຫາເມື່ອມີ Python ລຸ້ນດຽວກັນແຕ່ຄົນລະສະຖາປັດຕະຍະກຳ (32-bit vs 64-bit)." + +#: ../source/guides/supporting-windows-using-appveyor.rst:184 +msgid "" +"In order to run tests using ``tox``, therefore, projects should probably use " +"the default ``py`` environment in ``tox``, which uses the Python interpreter " +"that was used to run ``tox``. This will ensure that when Appveyor runs the " +"tests, they will be run with the configured interpreter." +msgstr "" +"ດັ່ງນັ້ນ, ຄວນໃຊ້ environment ``py`` ໃນ ``tox`` ເພື່ອໃຫ້ມັນໃຊ້ Python ຕົວທີ່ກຳລັງເຮັດວຽກຢູ່." + +#: ../source/guides/supporting-windows-using-appveyor.rst:189 +msgid "" +"In order to support running under the ``py`` environment, it is possible " +"that projects with complex ``tox`` configurations might need to modify " +"their :file:`tox.ini` file. Doing so is, however, outside the scope of this " +"document." +msgstr "ໂຄງການທີ່ມີການຕັ້ງຄ່າຊັບຊ້ອນອາດຈະຕ້ອງແກ້ໄຂ :file:`tox.ini`." + +#: ../source/guides/supporting-windows-using-appveyor.rst:195 +msgid "Automatically uploading wheels" +msgstr "ການອັບໂຫຼດ wheels ໂດຍອັດຕະໂນມັດ" + +#: ../source/guides/supporting-windows-using-appveyor.rst:197 +msgid "" +"It is possible to request Appveyor to automatically upload wheels. There is " +"a ``deployment`` step available in :file:`appveyor.yml` that can be used to " +"(for example) copy the built artifacts to a FTP site, or an Amazon S3 " +"instance. Documentation on how to do this is included in the Appveyor guides." +msgstr "ທ່ານສາມາດຕັ້ງຄ່າໃຫ້ Appveyor ອັບໂຫຼດ wheels ໃຫ້ໂດຍອັດຕະໂນມັດໄດ້." + +#: ../source/guides/supporting-windows-using-appveyor.rst:202 +msgid "" +"Alternatively, it would be possible to add a ``twine upload`` step to the " +"build. The supplied :file:`appveyor.yml` does not do this, as it is not " +"clear that uploading new wheels after every commit is desirable (although " +"some projects may wish to do this)." +msgstr "ຫຼື ທ່ານຈະເພີ່ມຂັ້ນຕອນ ``twine upload`` ເຂົ້າໄປກໍໄດ້." + +#: ../source/guides/supporting-windows-using-appveyor.rst:208 +msgid "External dependencies" +msgstr "External dependencies (ສິ່ງທີ່ຈຳເປັນຈາກພາຍນອກ)" + +#: ../source/guides/supporting-windows-using-appveyor.rst:210 +msgid "" +"The supplied scripts will successfully build any distribution that does not " +"rely on 3rd party external libraries for the build." +msgstr "ສະຄຣິບທີ່ໃຫ້ມານີ້ຈະ build ໄດ້ສະເພາະໂຄງການທີ່ບໍ່ມີໄລບຣາຣີພາຍນອກທີ່ຊັບຊ້ອນ." + +#: ../source/guides/supporting-windows-using-appveyor.rst:213 +msgid "" +"It is possible to add steps to the :file:`appveyor.yml` configuration " +"(typically in the \"install\" section) to download and/or build external " +"libraries needed by the distribution. And if needed, it is possible to add " +"extra configuration for the build to supply the location of these libraries " +"to the compiler. However, this level of configuration is beyond the scope of " +"this document." +msgstr "ທ່ານສາມາດເພີ່ມຂັ້ນຕອນການຕິດຕັ້ງໄລບຣາຣີພາຍນອກໄດ້ໃນສ່ວນ \"install\"." + +#: ../source/guides/supporting-windows-using-appveyor.rst:222 +msgid "Support scripts" +msgstr "ສະຄຣິບຊ່ວຍເຫຼືອ" + +#: ../source/guides/supporting-windows-using-appveyor.rst:224 +msgid "For reference, the SDK setup support script is listed here:" +msgstr "ນີ້ແມ່ນຕົວຢ່າງສະຄຣິບສຳລັບການຕັ້ງຄ່າ SDK:" + +#: ../source/guides/supporting-windows-using-appveyor.rst:226 +msgid "``appveyor-sample/build.cmd``" +msgstr "``appveyor-sample/build.cmd``" + +#: ../source/guides/tool-recommendations.rst:5 +msgid "Tool recommendations" +msgstr "ຄຳແນະນຳກ່ຽວກັບເຄື່ອງມື" + +#: ../source/guides/tool-recommendations.rst:7 +msgid "" +"The Python packaging landscape consists of many different tools. For many " +"tasks, the :term:`Python Packaging Authority ` (PyPA, the working group which encompasses many packaging tools and " +"maintains this guide) purposefully does not make a blanket recommendation; " +"for example, the reason there are many build backends is that the landscape " +"was opened up in order to enable the development of new backends serving " +"certain users' needs better than the previously unique backend, setuptools. " +"This guide does point to some tools that are widely recognized, and also " +"makes some recommendations of tools that you should *not* use because they " +"are deprecated or insecure." +msgstr "" +"ເຄື່ອງມືໃນການເຮັດແພັກເກດ Python ມີຫຼາຍຢ່າງ. PyPA ບໍ່ໄດ້ເຈາະຈົງແນະນຳອັນໃດອັນໜຶ່ງເປັນພິເສດ." + +#: ../source/guides/tool-recommendations.rst:20 +msgid "Virtual environments" +msgstr "ສະພາບແວດລ້ອມສະເໝືອນ (Virtual environments)" + +#: ../source/guides/tool-recommendations.rst:22 +msgid "" +"The standard tools to create and use virtual environments manually " +"are :ref:`virtualenv` (PyPA project) and :doc:`venv ` " +"(part of the Python standard library, though missing some features of " +"virtualenv)." +msgstr "ເຄື່ອງມືມາດຕະຖານໃນການສ້າງສະພາບແວດລ້ອມສະເໝືອນແມ່ນ ``virtualenv`` ແລະ ``venv``." + +#: ../source/guides/tool-recommendations.rst:28 +msgid "Installing packages" +msgstr "ການຕິດຕັ້ງແພັກເກດ" + +#: ../source/guides/tool-recommendations.rst:30 +msgid "" +":ref:`Pip` is the standard tool to install packages from :term:`PyPI `. You may want to read pip's recommendations " +"for :doc:`secure installs `. Pip is available by " +"default in most Python installations through the standard library " +"package :doc:`ensurepip `." +msgstr "``pip`` ແມ່ນເຄື່ອງມືມາດຕະຖານສຳລັບຕິດຕັ້ງແພັກເກດຈາກ PyPI." + +#: ../source/guides/tool-recommendations.rst:36 +msgid "" +"Alternatively, consider :ref:`pipx` for the specific use case of installing " +"Python applications that are distributed through PyPI and run from the " +"command line. Pipx is a wrapper around pip and venv that installs each " +"application into a dedicated virtual environment. This avoids conflicts " +"between the dependencies of different applications, and also with system-" +"wide applications making use of the same Python interpreter (especially on " +"Linux)." +msgstr "ສຳລັບການຕິດຕັ້ງແອັບພລິເຄຊັນ Python ທີ່ໃຊ້ຜ່ານຄຳສັ່ງ (CLI), ໃຫ້ພິຈາລະນາໃຊ້ ``pipx``." + +#: ../source/guides/tool-recommendations.rst:43 +msgid "" +"For scientific software specifically, consider :ref:`Conda` or :ref:`Spack`." +msgstr "ສຳລັບຊອບແວທາງວິທະຍາສາດ, ໃຫ້ພິຈາລະນາໃຊ້ ``Conda`` ຫຼື ``Spack``." + +#: ../source/guides/tool-recommendations.rst:45 +msgid "Write a \"pip vs. Conda\" comparison, here or in a new discussion." +msgstr "ຂຽນການປຽບທຽບ \"pip vs. Conda\" ຢູ່ບ່ອນນີ້ ຫຼື ໃນການສົນທະນາໃໝ່." + +#: ../source/guides/tool-recommendations.rst:47 +msgid "" +"Do **not** use ``easy_install`` (part of :ref:`setuptools`), which is " +"deprecated in favor of pip (see :ref:`pip vs easy_install` for details). " +"Likewise, do **not** use ``python setup.py install`` or ``python setup.py " +"develop``, which are also deprecated (see :ref:`setup-py-deprecated` for " +"background and :ref:`modernize-setup-py-project` for migration advice)." +msgstr "" +"**ຫ້າມ** ໃຊ້ ``easy_install`` ຫຼື ``python setup.py install`` ເພາະພວກມັນຫຼ້າສະໄໝແລ້ວ." + +#: ../source/guides/tool-recommendations.rst:55 +msgid "Lock files" +msgstr "ໄຟລ໌ລັອກ (Lock files)" + +#: ../source/guides/tool-recommendations.rst:57 +msgid "" +":ref:`pip-tools` and :ref:`Pipenv` are two recognized tools to create lock " +"files, which contain the exact versions of all packages installed into an " +"environment, for reproducibility purposes." +msgstr "" +"``pip-tools`` ແລະ ``Pipenv`` ແມ່ນເຄື່ອງມືສຳລັບສ້າງ lock files " +"ເພື່ອກຳນົດລຸ້ນແພັກເກດໃຫ້ແນ່ນອນ." + +#: ../source/guides/tool-recommendations.rst:63 +msgid "Build backends" +msgstr "ຕົວສ້າງສ່ວນຫຼັງ (Build backends)" + +#: ../source/guides/tool-recommendations.rst:67 +msgid "" +"Please, remember: this document does not seek to steer the reader towards a " +"particular tool, only to enumerate common tools. Different use cases often " +"need specialized workflows." +msgstr "ຈື່ໄວ້ວ່າ: ເອກະສານນີ້ພຽງແຕ່ບອກລາຍຊື່ເຄື່ອງມືທົ່ວໄປເທົ່ານັ້ນ." + +#: ../source/guides/tool-recommendations.rst:71 +msgid "" +"Popular :term:`build backends ` for pure-Python packages " +"include, in alphabetical order:" +msgstr "" +"ຕົວສ້າງສ່ວນຫຼັງ (build backends) ທີ່ນິຍົມສຳລັບແພັກເກດ Python ບໍລິສຸດມີດັ່ງນີ້ (ລຽງຕາມຕົວອັກສອນ):" + +#: ../source/guides/tool-recommendations.rst:74 +msgid "" +":doc:`Flit-core ` -- developed with but separate " +"from :ref:`Flit`. A minimal and opinionated build backend. It does not " +"support plugins." +msgstr "``Flit-core`` -- ເນັ້ນຄວາມລຽບງ່າຍ ແລະ ບໍ່ຮອງຮັບປລັກອິນ (plugins)." + +#: ../source/guides/tool-recommendations.rst:77 +msgid "" +"Hatchling_ -- developed with but separate from :ref:`Hatch`. Supports " +"plugins." +msgstr "``Hatchling`` -- ຮອງຮັບປລັກອິນ." + +#: ../source/guides/tool-recommendations.rst:79 +msgid "" +"PDM-backend_ -- developed with but separate from :ref:`PDM`. Supports " +"plugins." +msgstr "``PDM-backend`` -- ຮອງຮັບປລັກອິນ." + +#: ../source/guides/tool-recommendations.rst:81 +msgid "" +"Poetry-core_ -- developed with but separate from :ref:`Poetry`. Supports " +"plugins." +msgstr "``Poetry-core`` -- ຮອງຮັບປລັກອິນ." + +#: ../source/guides/tool-recommendations.rst:84 +msgid "" +"Unlike other backends on this list, Poetry-core does not support the " +"standard :ref:`[project] table ` (it uses a " +"different format, in the ``[tool.poetry]`` table)." +msgstr "" +"Poetry-core ບໍ່ຮອງຮັບຕາຕະລາງ ``[project]`` ມາດຕະຖານ (ມັນໃຊ້ ``[tool.poetry]`` " +"ແທນ)." + +#: ../source/guides/tool-recommendations.rst:88 +msgid "" +":ref:`setuptools`, which used to be the only build backend. Supports plugins." +msgstr "``setuptools`` ເຄີຍເປັນຕົວສ້າງສ່ວນຫຼັງພຽງອັນດຽວໃນເມື່ອກ່ອນ ແລະ ຮອງຮັບປລັກອິນ." + +#: ../source/guides/tool-recommendations.rst:92 +msgid "" +"If you use setuptools, please be aware that some features that predate " +"standardisation efforts are now deprecated and only *temporarily kept* for " +"compatibility." +msgstr "ຖ້າທ່ານໃຊ້ setuptools, ໃຫ້ລະວັງວ່າບາງຄຸນສົມບັດເກົ່າໆຖືກຍົກເລີກແລ້ວ." + +#: ../source/guides/tool-recommendations.rst:96 +msgid "" +"In particular, do **not** use direct ``python setup.py`` invocations. On the " +"other hand, configuring setuptools with a :file:`setup.py` file is still " +"fully supported, although it is recommended to use the " +"modern :ref:`[project] table in pyproject.toml ` " +"(or :file:`setup.cfg`) whenever possible and keep :file:`setup.py` only if " +"programmatic configuration is needed. See :ref:`setup-py-deprecated`." +msgstr "**ຫ້າມ** ເອີ້ນໃຊ້ ``python setup.py`` ໂດຍກົງ." + +#: ../source/guides/tool-recommendations.rst:103 +msgid "" +"Other examples of deprecated features you should **not** use include the " +"``setup_requires`` argument to ``setup()`` (use the :ref:`[build-system] " +"table ` in :file:`pyproject.toml` " +"instead), and the ``easy_install`` command (cf. :ref:`pip vs easy_install`)." +msgstr "ຄຸນສົມບັດອື່ນໆທີ່ບໍ່ຄວນໃຊ້ຄື ``setup_requires`` ແລະ ຄຳສັ່ງ ``easy_install``." + +#: ../source/guides/tool-recommendations.rst:108 +msgid "" +"Do **not** use :ref:`distutils`, which is deprecated, and has been removed " +"from the standard library in Python 3.12, although it still remains " +"available from setuptools." +msgstr "**ຫ້າມ** ໃຊ້ ``distutils`` ເພາະມັນຖືກຖອດອອກຈາກ Python 3.12 ແລ້ວ." + +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "ຕົວສ້າງສ່ວນຫຼັງສຳລັບໂມດູນສ່ວນຂະຫຍາຍ" + +#: ../source/guides/tool-recommendations.rst:117 +msgid "" +"For packages with :term:`extension modules `, it is best " +"to use a build system with dedicated support for the language the extension " +"is written in, for example:" +msgstr "ສຳລັບໂມດູນສ່ວນຂະຫຍາຍ, ຄວນໃຊ້ລະບົບທີ່ຮອງຮັບພາສານັ້ນໆໂດຍກົງ ເຊັ່ນ:" + +#: ../source/guides/tool-recommendations.rst:121 +msgid "" +":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " +"for Go and Rust)," +msgstr "``setuptools`` -- ຮອງຮັບ C ແລະ C++ (ແລະ ມີປລັກອິນສຳລັບ Go ແລະ Rust)," + +#: ../source/guides/tool-recommendations.rst:122 +msgid "" +":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " +"by Meson," +msgstr "``meson-python`` -- ຮອງຮັບ C, C++, Fortran, Rust ແລະ ອື່ນໆ ຜ່ານ Meson," + +#: ../source/guides/tool-recommendations.rst:123 +msgid "" +":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " +"by CMake," +msgstr "``scikit-build-core`` -- ຮອງຮັບ C, C++, Fortran ແລະ ອື່ນໆ ຜ່ານ CMake," + +#: ../source/guides/tool-recommendations.rst:124 +msgid ":ref:`maturin` -- Rust, via Cargo." +msgstr "``maturin`` -- ຮອງຮັບ Rust ຜ່ານ Cargo." + +#: ../source/guides/tool-recommendations.rst:128 +msgid "Building distributions" +msgstr "ການ build ຊຸດແຈກຢາຍ" + +#: ../source/guides/tool-recommendations.rst:130 +msgid "" +"The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " +"is :ref:`build`. It will invoke whichever build backend you :ref:`declared " +"` in :file:`pyproject.toml`." +msgstr "ເຄື່ອງມືມາດຕະຖານໃນການ build ຊອສ ແລະ wheels ແມ່ນ ``build``." + +#: ../source/guides/tool-recommendations.rst:135 +msgid "" +"Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " +"for this task. All direct invocations of :file:`setup.py` " +"are :ref:`deprecated `." +msgstr "**ຫ້າມ** ໃຊ້ ``python setup.py sdist`` ຫຼື ``bdist_wheel``." + +#: ../source/guides/tool-recommendations.rst:139 +msgid "" +"If you have :term:`extension modules ` and want to " +"distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " +"your CI setup to build distributable wheels." +msgstr "ຖ້າມີສ່ວນຂະຫຍາຍ ແລະ ຢາກແຈກຢາຍ wheels ຫຼາຍແພລັດຟອມ, ໃຫ້ໃຊ້ ``cibuildwheel``." + +#: ../source/guides/tool-recommendations.rst:145 +msgid "Uploading to PyPI" +msgstr "ການອັບໂຫຼດໄປ PyPI" + +#: ../source/guides/tool-recommendations.rst:147 +msgid "" +"For projects hosted on or published via supported CI/CD platforms, it is " +"recommended to use the :ref:`Trusted Publishing `, which " +"allows the package to be securely uploaded to PyPI from a CI/CD workflow " +"without a manually configured API token." +msgstr "ຂໍແນະນຳໃຫ້ໃຊ້ Trusted Publishing ເພື່ອຄວາມປອດໄພ." + +#: ../source/guides/tool-recommendations.rst:152 +msgid "" +"As of November 2024, PyPI supports the following platforms as Trusted " +"Publishing providers:" +msgstr "ຂໍ້ມູນເດືອນພະຈິກ 2024, PyPI ຮອງຮັບ Trusted Publishing ຈາກແພລັດຟອມຕໍ່ໄປນີ້:" + +#: ../source/guides/tool-recommendations.rst:155 +msgid "GitHub Actions (on ``https://github.com``)" +msgstr "GitHub Actions (ເທິງ ``https://github.com``)" + +#: ../source/guides/tool-recommendations.rst:156 +msgid "GitLab CI/CD (on ``https://gitlab.com``)" +msgstr "GitLab CI/CD (ເທິງ ``https://gitlab.com``)" + +#: ../source/guides/tool-recommendations.rst:157 +msgid "ActiveState" +msgstr "ActiveState" + +#: ../source/guides/tool-recommendations.rst:158 +msgid "Google Cloud" +msgstr "Google Cloud" + +#: ../source/guides/tool-recommendations.rst:160 +msgid "" +"The other available method is to upload the package manually " +"using :ref:`twine`." +msgstr "ອີກວິທີໜຶ່ງແມ່ນການອັບໂຫຼດດ້ວຍມືໂດຍໃຊ້ ``twine``." + +#: ../source/guides/tool-recommendations.rst:164 +msgid "" +"**Never** use ``python setup.py upload`` for this task. In addition to " +"being :ref:`deprecated `, it is insecure." +msgstr "**ຫ້າມ** ໃຊ້ ``python setup.py upload`` ເພາະມັນບໍ່ປອດໄພ." + +#: ../source/guides/tool-recommendations.rst:169 +msgid "Workflow tools" +msgstr "ເຄື່ອງມືຈັດການ Workflow" + +#: ../source/guides/tool-recommendations.rst:171 +msgid "" +"These tools are environment managers that automatically manage virtual " +"environments for a project. They also act as \"task runners\", allowing you " +"to define and invoke tasks such as running tests, compiling documentation, " +"regenerating some files, etc. Some of them provide shortcuts for building " +"distributions and uploading to PyPI, and some support lock files for " +"applications. They often call the tools mentioned above under the hood. In " +"alphabetical order:" +msgstr "ເຄື່ອງມືເຫຼົ່ານີ້ຊ່ວຍຈັດການສະພາບແວດລ້ອມ ແລະ ວຽກຕ່າງໆແບບອັດຕະໂນມັດ." + +#: ../source/guides/tool-recommendations.rst:179 +msgid ":ref:`Flit`," +msgstr "``Flit``," + +#: ../source/guides/tool-recommendations.rst:180 +msgid ":ref:`Hatch`," +msgstr "``Hatch``," + +#: ../source/guides/tool-recommendations.rst:181 +msgid ":doc:`nox `," +msgstr "``nox``," + +#: ../source/guides/tool-recommendations.rst:182 +msgid ":ref:`PDM`," +msgstr "``PDM``," + +#: ../source/guides/tool-recommendations.rst:183 +msgid ":ref:`Pipenv`," +msgstr "``Pipenv``," + +#: ../source/guides/tool-recommendations.rst:184 +msgid ":ref:`Poetry`," +msgstr "``Poetry``," + +#: ../source/guides/tool-recommendations.rst:185 +msgid ":doc:`tox `." +msgstr "``tox``." + +#: ../source/guides/using-manifest-in.rst:5 +msgid "Including files in source distributions with ``MANIFEST.in``" +msgstr "ການລວມໄຟລ໌ໃນຊຸດແຈກຢາຍຊອສດ້ວຍ ``MANIFEST.in``" + +#: ../source/guides/using-manifest-in.rst:7 +msgid "" +"The information on this page has moved to :doc:`setuptools:userguide/" +"miscellaneous` in the setuptools documentation." +msgstr "ຂໍ້ມູນໃນໜ້ານີ້ໄດ້ຍ້າຍໄປຢູ່ເອກະສານຂອງ setuptools ແລ້ວ." + +#: ../source/guides/using-testpypi.rst:7 +msgid "" +"``TestPyPI`` is a separate instance of the :term:`Python Package Index " +"(PyPI)` that allows you to try out the distribution tools and process " +"without worrying about affecting the real index. TestPyPI is hosted at " +"`test.pypi.org `_" +msgstr "``TestPyPI`` ແມ່ນລະບົບແຍກຕ່າງຫາກທີ່ໃຊ້ສຳລັບທົດລອງອັບໂຫຼດແພັກເກດ." + +#: ../source/guides/using-testpypi.rst:13 +msgid "Registering your account" +msgstr "ການລົງທະບຽນບັນຊີຂອງທ່ານ" + +#: ../source/guides/using-testpypi.rst:15 +msgid "" +"Because TestPyPI has a separate database from the live PyPI, you'll need a " +"separate user account specifically for TestPyPI. Go to https://test.pypi.org/" +"account/register/ to register your account." +msgstr "ທ່ານຕ້ອງສ້າງບັນຊີໃໝ່ສຳລັບ TestPyPI ແຍກຈາກ PyPI ປົກກະຕິ." + +#: ../source/guides/using-testpypi.rst:19 +msgid "" +"The database for TestPyPI may be periodically pruned, so it is not unusual " +"for user accounts to be deleted." +msgstr "ຂໍ້ມູນໃນ TestPyPI ອາດຖືກລຶບບັນຊີຖິ້ມເປັນໄລຍະ." + +#: ../source/guides/using-testpypi.rst:24 +msgid "Using TestPyPI with Twine" +msgstr "ການໃຊ້ TestPyPI ຮ່ວມກັບ Twine" + +#: ../source/guides/using-testpypi.rst:26 +msgid "" +"You can upload your distributions to TestPyPI using :ref:`twine` by " +"specifying the ``--repository`` flag:" +msgstr "ທ່ານສາມາດອັບໂຫຼດໄປ TestPyPI ດ້ວຍ twine ໂດຍລະບຸ ``--repository``." + +#: ../source/guides/using-testpypi.rst:33 +msgid "" +"You can see if your package has successfully uploaded by navigating to the " +"URL ``https://test.pypi.org/project/`` where " +"``sampleproject`` is the name of your project that you uploaded. It may take " +"a minute or two for your project to appear on the site." +msgstr "ທ່ານສາມາດກວດສອບແພັກເກດທີ່ອັບໂຫຼດແລ້ວໄດ້ທີ່ URL ຂອງ TestPyPI." + +#: ../source/guides/using-testpypi.rst:39 +msgid "Using TestPyPI with pip" +msgstr "ການໃຊ້ TestPyPI ຮ່ວມກັບ pip" + +#: ../source/guides/using-testpypi.rst:41 +msgid "" +"You can tell :ref:`pip` to download packages from TestPyPI instead of PyPI " +"by specifying the ``--index-url`` flag:" +msgstr "ທ່ານສາມາດສັ່ງໃຫ້ pip ດາວໂຫຼດຈາກ TestPyPI ໂດຍໃຊ້ ``--index-url``." + +#: ../source/guides/using-testpypi.rst:56 +msgid "" +"If you want to allow pip to also download packages from PyPI, you can " +"specify ``--extra-index-url`` to point to PyPI. This is useful when the " +"package you're testing has dependencies:" +msgstr "" +"ທ່ານສາມາດໃຊ້ ``--extra-index-url`` ເພື່ອໃຫ້ pip ດາວໂຫຼດ dependencies ຈາກ PyPI " +"ປົກກະຕິໄດ້." + +#: ../source/guides/using-testpypi.rst:73 +msgid "Setting up TestPyPI in :file:`.pypirc`" +msgstr "ການຕັ້ງຄ່າ TestPyPI ໃນໄຟລ໌ :file:`.pypirc`" + +#: ../source/guides/using-testpypi.rst:75 +msgid "" +"If you want to avoid being prompted for your username and password every " +"time, you can configure TestPyPI in your :file:`$HOME/.pypirc`:" +msgstr "ທ່ານສາມາດຕັ້ງຄ່າ TestPyPI ໄວ້ໃນໄຟລ໌ ``.pypirc`` ເພື່ອບໍ່ຕ້ອງປ້ອນລະຫັດຜ່ານທຸກຄັ້ງ." + +#: ../source/guides/writing-pyproject-toml.rst:5 +msgid "Writing your ``pyproject.toml``" +msgstr "ການຂຽນ ``pyproject.toml`` ຂອງທ່ານ" + +#: ../source/guides/writing-pyproject-toml.rst:7 +msgid "" +"``pyproject.toml`` is a configuration file used by packaging tools, as well " +"as other tools such as linters, type checkers, etc. There are three possible " +"TOML tables in this file." +msgstr "``pyproject.toml`` ແມ່ນໄຟລ໌ການຕັ້ງຄ່າທີ່ໃຊ້ໂດຍເຄື່ອງມືຕ່າງໆ." + +#: ../source/guides/writing-pyproject-toml.rst:11 +msgid "" +"The ``[build-system]`` table is **strongly recommended**. It allows you to " +"declare which :term:`build backend` you use and which other dependencies are " +"needed to build your project." +msgstr "" +"ຕາຕະລາງ ``[build-system]`` ແມ່ນ **ແນະນຳຢ່າງຍິ່ງ**. " +"ມັນຊ່ວຍໃຫ້ທ່ານສາມາດປະກາດວ່າ :term:`build backend` ໃດທີ່ທ່ານໃຊ້ ແລະ " +"ສ່ວນປະກອບອື່ນໆໃດທີ່ຈຳເປັນໃນການສ້າງໂປຣເຈັກຂອງທ່ານ." + +#: ../source/guides/writing-pyproject-toml.rst:15 +msgid "" +"The ``[project]`` table is the format that most build backends use to " +"specify your project's basic metadata, such as the dependencies, your name, " +"etc." +msgstr "" +"ຕາຕະລາງ ``[project]`` ແມ່ນຮູບແບບທີ່ build backends ສ່ວນໃຫຍ່ໃຊ້ເພື່ອລະບຸຂໍ້ມູນພື້ນຖານ " +"(metadata) ຂອງໂປຣເຈັກທ່ານ, ເຊັ່ນ: ສ່ວນປະກອບທີ່ຈຳເປັນ, ຊື່ຂອງທ່ານ, ແລະ ອື່ນໆ." + +#: ../source/guides/writing-pyproject-toml.rst:18 +msgid "" +"The ``[tool]`` table has tool-specific subtables, e.g., ``[tool.hatch]``, " +"``[tool.black]``, ``[tool.mypy]``. We only touch upon this table here " +"because its contents are defined by each tool. Consult the particular tool's " +"documentation to know what it can contain." +msgstr "" +"ຕາຕະລາງ ``[tool]`` ຈະມີຕາຕະລາງຍ່ອຍສະເພາະຂອງແຕ່ລະເຄື່ອງມື, ເຊັ່ນ: ``[tool.hatch]``, " +"``[tool.black]``, ``[tool.mypy]``. ພວກເຮົາຈະເວົ້າເຖິງຕາຕະລາງນີ້ພຽງຜ່ານໆ " +"ເນື່ອງຈາກເນື້ອໃນຂອງມັນຖືກກຳນົດໂດຍແຕ່ລະເຄື່ອງມືເອງ. ກະລຸນາເບິ່ງເອກະສານຄຳແນະນຳຂອງເຄື່ອງມືນັ້ນໆ " +"ເພື່ອຮູ້ວ່າສິ່ງໃດແດ່ທີ່ສາມາດໃສ່ລົງໃນນີ້ໄດ້." + +#: ../source/guides/writing-pyproject-toml.rst:25 +msgid "" +"The ``[build-system]`` table should always be present, regardless of which " +"build backend you use (``[build-system]`` *defines* the build tool you use)." +msgstr "" +"ຕາຕະລາງ ``[build-system]`` ຄວນມີຢູ່ສະເໝີ, ບໍ່ວ່າທ່ານຈະໃຊ້ build backend ໃດກໍຕາມ (ເພາະ " +"``[build-system]`` ແມ່ນຕົວ *ກຳນົດ* ເຄື່ອງມືໃນການສ້າງທີ່ທ່ານໃຊ້)." + +#: ../source/guides/writing-pyproject-toml.rst:29 +msgid "" +"On the other hand, the ``[project]`` table is understood by *most* build " +"backends, but some build backends use a different format." +msgstr "" +"ໃນທາງກົງກັນຂ້າມ, ຕາຕະລາງ ``[project]`` ແມ່ນເປັນທີ່ເຂົ້າໃຈໂດຍ build backends *ສ່ວນໃຫຍ່*, " +"ແຕ່ບາງ build backends ກໍຍັງໃຊ້ຮູບແບບທີ່ແຕກຕ່າງອອກໄປ." + +#: ../source/guides/writing-pyproject-toml.rst:32 +msgid "" +"A notable exception is Poetry_, which before version 2.0 (released January " +"5, 2025) did not use the ``[project]`` table, it used the ``[tool.poetry]`` " +"table instead. With version 2.0, it supports both. Also, the setuptools_ " +"build backend supports both the ``[project]`` table, and the older format in " +"``setup.cfg`` or ``setup.py``." +msgstr "" +"ຂໍ້ຍົກເວັ້ນທີ່ສຳຄັນແມ່ນ Poetry_, ເຊິ່ງກ່ອນເວີຊັນ 2.0 (ປ່ອຍອອກເມື່ອວັນທີ 5 ມັງກອນ 2025) " +"ແມ່ນບໍ່ໄດ້ໃຊ້ຕາຕະລາງ ``[project]``, ແຕ່ໃຊ້ຕາຕະລາງ ``[tool.poetry]`` ແທນ. ໃນເວີຊັນ 2.0 " +"ແມ່ນຮອງຮັບທັງສອງແບບ. ນອກຈາກນີ້, setuptools_ build backend ກໍຮອງຮັບທັງຕາຕະລາງ " +"``[project]`` ແລະ ຮູບແບບເກົ່າໃນ ``setup.cfg`` ຫຼື ``setup.py``." + +#: ../source/guides/writing-pyproject-toml.rst:38 +msgid "" +"For new projects, use the ``[project]`` table, and keep ``setup.py`` only if " +"some programmatic configuration is needed (such as building C extensions), " +"but the ``setup.cfg`` and ``setup.py`` formats are still valid. " +"See :ref:`setup-py-deprecated`." +msgstr "" +"ສຳລັບໂປຣເຈັກໃໝ່, ໃຫ້ໃຊ້ຕາຕະລາງ ``[project]``, ແລະ ເກັບ ``setup.py`` " +"ໄວ້ສະເພາະກໍລະນີທີ່ຈຳເປັນຕ້ອງມີການກຳນົດຄ່າແບບຂຽນໂປຣແກຣມ (ເຊັ່ນ: ການສ້າງ C extensions), " +"ແຕ່ຮູບແບບ ``setup.cfg`` ແລະ ``setup.py`` ກໍຍັງສາມາດໃຊ້ໄດ້ຢູ່. ເບິ່ງ :ref:`setup-py-" +"deprecated`." + +#: ../source/guides/writing-pyproject-toml.rst:47 +msgid "Declaring the build backend" +msgstr "ການປະກາດ build backend" + +#: ../source/guides/writing-pyproject-toml.rst:49 +msgid "" +"The ``[build-system]`` table contains a ``build-backend`` key, which " +"specifies the build backend to be used. It also contains a ``requires`` key, " +"which is a list of dependencies needed to build the project -- this is " +"typically just the build backend package, but it may also contain additional " +"dependencies. You can also constrain the versions, e.g., ``requires = " +"[\"setuptools >= 61.0\"]``." +msgstr "" +"ຕາຕະລາງ ``[build-system]`` ປະກອບມີຄີ (key) ``build-backend``, ເຊິ່ງໃຊ້ລະບຸ build " +"backend ທີ່ຈະນຳໃຊ້. ມັນຍັງມີຄີ ``requires``, ເຊິ່ງແມ່ນລາຍການຂອງ ສ່ວນປະກອບທີ່ຈຳເປັນ " +"(dependencies) ໃນການສ້າງໂປຣເຈັກ -- ໂດຍປົກກະຕິແລ້ວແມ່ນມີພຽງແພັກເກດ build backend ເອງ, " +"ແຕ່ມັນອາດຈະລວມເຖິງສ່ວນປະກອບອື່ນໆເພີ່ມເຕີມນຳ. ທ່ານຍັງສາມາດກຳນົດເວີຊັນໄດ້, ເຊັ່ນ: ``requires = " +"[\"setuptools >= 61.0\"]``." + +#: ../source/guides/writing-pyproject-toml.rst:55 +msgid "" +"Usually, you'll just copy what your build backend's documentation suggests " +"(after :ref:`choosing your build backend `). Here " +"are the values for some common build backends:" +msgstr "" +"ໂດຍປົກກະຕິແລ້ວ, ທ່ານພຽງແຕ່ກ່າຍເອົາສິ່ງທີ່ເອກະສານຄຳແນະນຳຂອງ build backend ຂອງທ່ານແນະນຳ " +"(ຫຼັງຈາກ :ref:`ເລືອກ build backend ຂອງທ່ານ `). " +"ນີ້ແມ່ນຄ່າຕ່າງໆສຳລັບ build backends ທີ່ນິຍົມໃຊ້:" + +#: ../source/guides/writing-pyproject-toml.rst:63 +msgid "Static vs. dynamic metadata" +msgstr "ຂໍ້ມູນພື້ນຖານແບບຄົງທີ່ (Static) ທຽບກັບ ແບບປ່ຽນແປງໄດ້ (Dynamic)" + +#: ../source/guides/writing-pyproject-toml.rst:65 +msgid "The rest of this guide is devoted to the ``[project]`` table." +msgstr "ສ່ວນທີ່ເຫຼືອຂອງຄຳແນະນຳນີ້ຈະເນັ້ນໃສ່ຕາຕະລາງ ``[project]``." + +#: ../source/guides/writing-pyproject-toml.rst:67 +msgid "" +"Most of the time, you will directly write the value of a ``[project]`` " +"field. For example: ``requires-python = \">= 3.8\"``, or ``version = " +"\"1.0\"``." +msgstr "" +"ສ່ວນໃຫຍ່ແລ້ວ, ທ່ານຈະຂຽນຄ່າຂອງຟິລ (field) ໃນ ``[project]`` ໂດຍກົງ. ຕົວຢ່າງ: ``requires-" +"python = \">= 3.8\"``, ຫຼື ``version = \"1.0\"``." + +#: ../source/guides/writing-pyproject-toml.rst:71 +msgid "" +"However, in some cases, it is useful to let your build backend compute the " +"metadata for you. For example: many build backends can read the version from " +"a ``__version__`` attribute in your code, a Git tag, or similar. In such " +"cases, you should mark the field as dynamic using, e.g.," +msgstr "" +"ຢ່າງໃດກໍຕາມ, ໃນບາງກໍລະນີ, ມັນຈະມີປະໂຫຍດຫຼາຍຖ້າປ່ອຍໃຫ້ build backend ຄິດໄລ່ metadata " +"ໃຫ້ທ່ານ. ຕົວຢ່າງ: build backends ຫຼາຍຕົວສາມາດອ່ານເວີຊັນຈາກ ຄຸນລັກສະນະ ``__version__`` " +"ໃນໂຄ້ດຂອງທ່ານ, ຈາກ Git tag, ຫຼື ສິ່ງທີ່ຄ້າຍຄືກັນ. ໃນກໍລະນີດັ່ງກ່າວ, ທ່ານຄວນໝາຍຟິລນັ້ນວ່າເປັນ " +"dynamic ໂດຍໃຊ້, ເຊັ່ນ," + +#: ../source/guides/writing-pyproject-toml.rst:82 +msgid "" +"When a field is dynamic, it is the build backend's responsibility to fill " +"it. Consult your build backend's documentation to learn how it does it." +msgstr "" +"ເມື່ອຟິລໃດໜຶ່ງເປັນ dynamic, ມັນຈະເປັນໜ້າທີ່ຂອງ build backend ໃນການຕື່ມຂໍ້ມູນໃສ່. " +"ກະລຸນາເບິ່ງເອກະສານຄຳແນະນຳຂອງ build backend ຂອງທ່ານ ເພື່ອຮຽນຮູ້ວິທີການເຮັດວຽກຂອງມັນ." + +#: ../source/guides/writing-pyproject-toml.rst:88 +msgid "Basic information" +msgstr "ຂໍ້ມູນພື້ນຖານ" + +#: ../source/guides/writing-pyproject-toml.rst:93 +#: ../source/specifications/pyproject-toml.rst:129 +#: ../source/specifications/pyproject-toml.rst:154 +#: ../source/specifications/pyproject-toml.rst:166 +msgid "``name``" +msgstr "``name`` (ຊື່)" + +#: ../source/guides/writing-pyproject-toml.rst:95 +msgid "" +"Put the name of your project on PyPI. This field is required and is the only " +"field that cannot be marked as dynamic." +msgstr "" +"ໃສ່ຊື່ໂປຣເຈັກຂອງທ່ານໃນ PyPI. ຟິລນີ້ແມ່ນຈຳເປັນຕ້ອງມີ ແລະ ເປັນຟິລດຽວທີ່ບໍ່ສາມາດໝາຍໃຫ້ເປັນ dynamic " +"ໄດ້." + +#: ../source/guides/writing-pyproject-toml.rst:103 +msgid "" +"The project name must consist of ASCII letters, digits, underscores " +"\"``_``\", hyphens \"``-``\" and periods \"``.``\". It must not start or end " +"with an underscore, hyphen or period." +msgstr "" +"ຊື່ໂປຣເຈັກຕ້ອງປະກອບດ້ວຍຕົວອັກສອນ ASCII, ຕົວເລກ, ຂີດກ້ອງ \"``_``\", ຂີດຕໍ່ \"``-``\" ແລະ " +"ຈ້ຳ \"``.``\". ມັນຕ້ອງບໍ່ຂຶ້ນຕົ້ນ ຫຼື ລົງທ້າຍດ້ວຍຂີດກ້ອງ, ຂີດຕໍ່ ຫຼື ຈ້ຳ." + +#: ../source/guides/writing-pyproject-toml.rst:107 +msgid "" +"Comparison of project names is case insensitive and treats arbitrarily long " +"runs of underscores, hyphens, and/or periods as equal. For example, if you " +"register a project named ``cool-stuff``, users will be able to download it " +"or declare a dependency on it using any of the following spellings: ``Cool-" +"Stuff``, ``cool.stuff``, ``COOL_STUFF``, ``CoOl__-.-__sTuFF``." +msgstr "" +"ການປຽບທຽບຊື່ໂປຣເຈັກແມ່ນບໍ່ແຍກຕົວອັກສອນໃຫຍ່-ນ້ອຍ ແລະ ຖືວ່າການໃຊ້ຂີດກ້ອງ, ຂີດຕໍ່, ແລະ/ຫຼື ຈ້ຳ " +"ທີ່ຕໍ່ກັນຍາວເທົ່າໃດກໍຕາມແມ່ນມີຄ່າເທົ່າກັນ. ຕົວຢ່າງ: ຖ້າທ່ານລົງທະບຽນໂປຣເຈັກຊື່ ``cool-stuff``, " +"ຜູ້ໃຊ້ຈະສາມາດດາວໂຫຼດ ຫຼື ປະກາດການນຳໃຊ້ໂດຍໃຊ້ຮູບແບບໃດໜຶ່ງດັ່ງນີ້: ``Cool-Stuff``, " +"``cool.stuff``, ``COOL_STUFF``, ``CoOl__-.-__sTuFF``." + +#: ../source/guides/writing-pyproject-toml.rst:115 +#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:160 +#: ../source/specifications/pyproject-toml.rst:181 +msgid "``version``" +msgstr "" + +#: ../source/guides/writing-pyproject-toml.rst:117 +msgid "Put the version of your project." +msgstr "ໃສ່ເວີຊັນຂອງໂປຣເຈັກຂອງທ່ານ." + +#: ../source/guides/writing-pyproject-toml.rst:124 +msgid "" +"Some more complicated version specifiers like ``2020.0.0a1`` (for an alpha " +"release) are possible; see the :ref:`specification ` for " +"full details." +msgstr "" +"ທ່ານສາມາດລະບຸເວີຊັນທີ່ຊັບຊ້ອນກວ່ານີ້ໄດ້ ເຊັ່ນ ``2020.0.0a1`` (ສຳລັບເວີຊັນ alpha); " +"ເບິ່ງລາຍລະອຽດທັງໝົດໄດ້ທີ່ :ref:`ຂໍ້ກຳນົດ `." + +#: ../source/guides/writing-pyproject-toml.rst:128 +msgid "This field is required, although it is often marked as dynamic using" +msgstr "ຟິລນີ້ແມ່ນຈຳເປັນ, ເຖິງແມ່ນວ່າມັນມັກຈະຖືກໝາຍໃຫ້ເປັນ dynamic ໂດຍໃຊ້" + +#: ../source/guides/writing-pyproject-toml.rst:135 +msgid "" +"This allows use cases such as filling the version from a ``__version__`` " +"attribute or a Git tag. Consult the :ref:`single-source-version` discussion " +"for more details." +msgstr "" +"ສິ່ງນີ້ຊ່ວຍໃຫ້ສາມາດດຶງເວີຊັນມາຈາກຄຸນລັກສະນະ ``__version__`` ຫຼື ຈາກ Git tag ໄດ້. " +"ເບິ່ງລາຍລະອຽດເພີ່ມເຕີມໄດ້ທີ່ຫົວຂໍ້ :ref:`single-source-version`." + +#: ../source/guides/writing-pyproject-toml.rst:141 +msgid "Dependencies and requirements" +msgstr "ສ່ວນປະກອບທີ່ຈຳເປັນ ແລະ ຂໍ້ກຳນົດ" + +#: ../source/guides/writing-pyproject-toml.rst:144 +msgid "``dependencies``/``optional-dependencies``" +msgstr "``dependencies``/``optional-dependencies``" + +#: ../source/guides/writing-pyproject-toml.rst:146 +msgid "If your project has dependencies, list them like this:" +msgstr "ຖ້າໂປຣເຈັກຂອງທ່ານມີສ່ວນປະກອບທີ່ຈຳເປັນ, ໃຫ້ລົງລາຍການໄວ້ດັ່ງນີ້:" + +#: ../source/guides/writing-pyproject-toml.rst:158 +msgid "" +"See :ref:`Dependency specifiers ` for the full syntax " +"you can use to constrain versions." +msgstr "" +"ເບິ່ງ :ref:`ການລະບຸສ່ວນປະກອບ ` " +"ສຳລັບຮູບແບບໄວຍາກອນທັງໝົດທີ່ທ່ານສາມາດໃຊ້ເພື່ອຈຳກັດເວີຊັນ." + +#: ../source/guides/writing-pyproject-toml.rst:161 +msgid "" +"You may want to make some of your dependencies optional, if they are only " +"needed for a specific feature of your package. In that case, put them in " +"``optional-dependencies``." +msgstr "" +"ທ່ານອາດຈະຕ້ອງການເຮັດໃຫ້ບາງສ່ວນປະກອບເປັນແບບທາງເລືອກ (optional), " +"ຖ້າມັນຈຳເປັນສະເພາະບາງຟີເຈີຂອງແພັກເກດທ່ານ. ໃນກໍລະນີນັ້ນ, ໃຫ້ໃສ່ພວກມັນໄວ້ໃນ ``optional-" +"dependencies``." + +#: ../source/guides/writing-pyproject-toml.rst:174 +msgid "" +"Each of the keys defines a \"packaging extra\". In the example above, one " +"could use, e.g., ``pip install your-project-name[gui]`` to install your " +"project with GUI support, adding the PyQt5 dependency." +msgstr "" +"ແຕ່ລະຄີ (key) ຈະກຳນົດເປັນ \"packaging extra\". ໃນຕົວຢ່າງຂ້າງເທິງ, ເຮົາສາມາດໃຊ້ຄຳສັ່ງ " +"ເຊັ່ນ: ``pip install your-project-name[gui]`` ເພື່ອຕິດຕັ້ງໂປຣເຈັກຂອງທ່ານພ້ອມກັບການຮອງຮັບ " +"GUI ໂດຍການເພີ່ມ PyQt5 ເຂົ້າໄປ." + +#: ../source/guides/writing-pyproject-toml.rst:180 +msgid "" +"You can also define an extra that refers back to the current project with " +"other extras. This is useful for convenience extras that combine several " +"optional features (such as an ``all`` extra hosting dependencies from both " +"``gui`` and ``cli``):" +msgstr "" +"ທ່ານຍັງສາມາດກຳນົດ extra ທີ່ອ້າງອີງກັບຄືນຫາໂປຣເຈັກປັດຈຸບັນພ້ອມກັບ extra ອື່ນໆໄດ້. " +"ສິ່ງນີ້ມີປະໂຫຍດສຳລັບການລວມເອົາຫຼາຍໆຟີເຈີທາງເລືອກເຂົ້າກັນ (ເຊັ່ນ: extra ຊື່ ``all`` ທີ່ລວມເອົາທັງ " +"``gui`` ແລະ ``cli``):" + +#: ../source/guides/writing-pyproject-toml.rst:189 +msgid "" +"The combined extra does not need its own manually maintained copy of each " +"referenced extra's dependencies, which can otherwise fall out of sync after " +"a few years of maintenance and bug fixes:" +msgstr "" +"ສ່ວນເສີມແບບລວມ (combined extra) " +"ບໍ່ຈຳເປັນຕ້ອງມີການສຳເນົາໄຟລ໌ທີ່ຕ້ອງເພິ່ງພາຂອງແຕ່ລະສ່ວນເສີມທີ່ອ້າງອີງ ເພື່ອມາເບິ່ງແຍງຮັກສາດ້ວຍຕົນເອງ, " +"ເຊິ່ງຖ້າບໍ່ດັ່ງນັ້ນ ອາດຈະເຮັດໃຫ້ຂໍ້ມູນບໍ່ກົງກັນຫຼັງຈາກການບຳລຸງຮັກສາ ແລະ ການແກ້ໄຂບັກຜ່ານໄປຫຼາຍປີ:" + +#: ../source/guides/writing-pyproject-toml.rst:203 +msgid "" +"Most package managers now support this kind of extra, " +"including :ref:`pip`, :ref:`uv`, :ref:`poetry`, :ref:`hatch`, :ref:`pdm` " +"and :ref:`pipenv`." +msgstr "" +"ເຄື່ອງມືຈັດການແພັກເກດສ່ວນໃຫຍ່ໃນຕອນນີ້ແມ່ນຮອງຮັບ extra ແບບນີ້ແລ້ວ, " +"ລວມມີ: :ref:`pip`, :ref:`uv`, :ref:`poetry`, :ref:`hatch`, :ref:`pdm` " +"ແລະ :ref:`pipenv`." + +#: ../source/guides/writing-pyproject-toml.rst:210 +#: ../source/specifications/pylock-toml.rst:95 +#: ../source/specifications/pyproject-toml.rst:157 +#: ../source/specifications/pyproject-toml.rst:250 +msgid "``requires-python``" +msgstr "``requires-python``" + +#: ../source/guides/writing-pyproject-toml.rst:212 +msgid "" +"This lets you declare the minimum version of Python that you support " +"[#requires-python-upper-bounds]_." +msgstr "" +"ສິ່ງນີ້ຊ່ວຍໃຫ້ທ່ານປະກາດເວີຊັນຕ່ຳສຸດຂອງ Python ທີ່ທ່ານຮອງຮັບ [#requires-python-upper-" +"bounds]_." + +#: ../source/guides/writing-pyproject-toml.rst:224 +msgid "Creating executable scripts" +msgstr "ການສ້າງສະຄຣິບທີ່ສາມາດລັນໄດ້" + +#: ../source/guides/writing-pyproject-toml.rst:226 +msgid "" +"To install a command as part of your package, declare it in the " +"``[project.scripts]`` table." +msgstr "" +"ເພື່ອຕິດຕັ້ງຄຳສັ່ງໃຫ້ເປັນສ່ວນໜຶ່ງຂອງແພັກເກດຂອງທ່ານ, ໃຫ້ປະກາດມັນໄວ້ໃນຕາຕະລາງ " +"``[project.scripts]``." + +#: ../source/guides/writing-pyproject-toml.rst:234 +msgid "" +"In this example, after installing your project, a ``spam-cli`` command will " +"be available. Executing this command will do the equivalent of ``import sys; " +"from spam import main_cli; sys.exit(main_cli())``." +msgstr "" +"ໃນຕົວຢ່າງນີ້, ຫຼັງຈາກຕິດຕັ້ງໂປຣເຈັກຂອງທ່ານແລ້ວ, ຄຳສັ່ງ ``spam-cli`` ຈະສາມາດໃຊ້ງານໄດ້. " +"ການລັນຄຳສັ່ງນີ້ຈະມີຄ່າເທົ່າກັບການເຮັດ ``import sys; from spam import main_cli; " +"sys.exit(main_cli())``." + +#: ../source/guides/writing-pyproject-toml.rst:238 +msgid "" +"On Windows, scripts packaged this way need a terminal, so if you launch them " +"from within a graphical application, they will make a terminal pop up. To " +"prevent this from happening, use the ``[project.gui-scripts]`` table instead " +"of ``[project.scripts]``." +msgstr "" +"ໃນ Windows, ສະຄຣິບທີ່ຖືກສ້າງດ້ວຍວິທີນີ້ແມ່ນຕ້ອງການເທີມິນໍ (terminal), " +"ສະນັ້ນຖ້າທ່ານລັນມັນຈາກໂປຣແກຣມທີ່ມີ GUI, ມັນຈະມີໜ້າຕ່າງ terminal ເດັ້ງຂຶ້ນມາ. " +"ເພື່ອປ້ອງກັນບໍ່ໃຫ້ເກີດເຫດການນີ້, ໃຫ້ໃຊ້ຕາຕະລາງ ``[project.gui-scripts]`` ແທນ " +"``[project.scripts]``." + +#: ../source/guides/writing-pyproject-toml.rst:248 +msgid "" +"In that case, launching your script from the command line will give back " +"control immediately, leaving the script to run in the background." +msgstr "" +"ໃນກໍລະນີນັ້ນ, ການລັນສະຄຣິບຂອງທ່ານຈາກ command line ຈະສົ່ງຄືນການຄວບຄຸມໃຫ້ທັນທີ, " +"ໂດຍປ່ອຍໃຫ້ສະຄຣິບເຮັດວຽກຢູ່ເບື້ອງຫຼັງ." + +#: ../source/guides/writing-pyproject-toml.rst:251 +msgid "" +"The difference between ``[project.scripts]`` and ``[project.gui-scripts]`` " +"is only relevant on Windows." +msgstr "" +"ຄວາມແຕກຕ່າງລະຫວ່າງ ``[project.scripts]`` ແລະ ``[project.gui-scripts]`` " +"ແມ່ນຈະເຫັນຜົນສະເພາະໃນ Windows ເທົ່ານັ້ນ." + +#: ../source/guides/writing-pyproject-toml.rst:257 +msgid "About your project" +msgstr "ກ່ຽວກັບໂປຣເຈັກຂອງທ່ານ" + +#: ../source/guides/writing-pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:337 +msgid "``authors``/``maintainers``" +msgstr "``authors`` (ຜູ້ຂຽນ)/``maintainers`` (ຜູ້ດູແລ)" + +#: ../source/guides/writing-pyproject-toml.rst:262 +msgid "" +"Both of these fields contain lists of people identified by a name and/or an " +"email address." +msgstr "ທັງສອງຟິລນີ້ປະກອບມີລາຍຊື່ຂອງບຸກຄົນ ໂດຍລະບຸດ້ວຍຊື່ ແລະ/ຫຼື ທີ່ຢູ່ອີເມວ." + +#: ../source/guides/writing-pyproject-toml.rst:282 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:196 +msgid "``description``" +msgstr "``description`` (ຄຳອະທິບາຍ)" + +#: ../source/guides/writing-pyproject-toml.rst:284 +msgid "" +"This should be a one-line description of your project, to show as the " +"\"headline\" of your project page on PyPI (`example `_), and " +"other places such as lists of search results (`example `_)." +msgstr "" +"ນີ້ຄວນເປັນຄຳອະທິບາຍໂປຣເຈັກຂອງທ່ານພຽງແຖວດຽວ, ເພື່ອສະແດງເປັນ \"ຫົວຂໍ້\" " +"ໃນໜ້າໂປຣເຈັກຂອງທ່ານເທິງ PyPI (`ຕົວຢ່າງ `_), ແລະ ບ່ອນອື່ນໆ ເຊັ່ນ: " +"ລາຍການຜົນການຄົ້ນຫາ (`ຕົວຢ່າງ `_)." + +#: ../source/guides/writing-pyproject-toml.rst:295 +#: ../source/specifications/pyproject-toml.rst:156 +#: ../source/specifications/pyproject-toml.rst:209 +msgid "``readme``" +msgstr "``readme`` (ໄຟລ໌ອ່ານກ່ອນ)" + +#: ../source/guides/writing-pyproject-toml.rst:297 +msgid "" +"This is a longer description of your project, to display on your project " +"page on PyPI. Typically, your project will have a ``README.md`` or " +"``README.rst`` file and you just put its file name here." +msgstr "" +"ນີ້ແມ່ນຄຳອະທິບາຍແບບລະອຽດຂອງໂປຣເຈັກຂອງທ່ານ ເພື່ອສະແດງໃນໜ້າໂປຣເຈັກເທິງ PyPI. ໂດຍທົ່ວໄປແລ້ວ, " +"ໂປຣເຈັກຂອງທ່ານຈະມີໄຟລ໌ ``README.md`` ຫຼື ``README.rst`` ແລະ ທ່ານພຽງແຕ່ໃສ່ຊື່ໄຟລ໌ນັ້ນລົງໃນນີ້." + +#: ../source/guides/writing-pyproject-toml.rst:306 +msgid "The README's format is auto-detected from the extension:" +msgstr "ຮູບແບບຂອງ README ຈະຖືກກວດສອບໂດຍອັດຕະໂນມັດຈາກນາມສະກຸນໄຟລ໌:" + +#: ../source/guides/writing-pyproject-toml.rst:308 +msgid "``README.md`` → `GitHub-flavored Markdown `_," +msgstr "``README.md`` → `GitHub-flavored Markdown `_," + +#: ../source/guides/writing-pyproject-toml.rst:309 +msgid "" +"``README.rst`` → `reStructuredText `_ (without Sphinx extensions)." +msgstr "``README.rst`` → `reStructuredText `_ (ໂດຍບໍ່ມີສ່ວນເສີມ Sphinx)." + +#: ../source/guides/writing-pyproject-toml.rst:311 +msgid "You can also specify the format explicitly, like this:" +msgstr "ທ່ານຍັງສາມາດລະບຸຮູບແບບໄດ້ໂດຍກົງ ດັ່ງນີ້:" + +#: ../source/guides/writing-pyproject-toml.rst:324 +msgid "``license`` and ``license-files``" +msgstr "``license`` (ໃບອະນຸຍາດ) ແລະ ``license-files`` (ໄຟລ໌ໃບອະນຸຍາດ)" + +#: ../source/guides/writing-pyproject-toml.rst:326 +msgid "As per :pep:`639`, licenses should be declared with two fields:" +msgstr "ອີງຕາມ :pep:`639`, ໃບອະນຸຍາດຄວນຖືກປະກາດດ້ວຍສອງຟິລ:" + +#: ../source/guides/writing-pyproject-toml.rst:328 +msgid "" +"``license`` is an :term:`SPDX license expression ` " +"consisting of one or more :term:`license identifiers `." +msgstr "" +"``license`` ແມ່ນ :term:`SPDX license expression ` " +"ທີ່ປະກອບດ້ວຍ :term:`license identifiers ` ຕົວໜຶ່ງ ຫຼື ຫຼາຍກວ່າ." + +#: ../source/guides/writing-pyproject-toml.rst:330 +msgid "``license-files`` is a list of license file glob patterns." +msgstr "``license-files`` ແມ່ນລາຍການຮູບແບບ glob ຂອງໄຟລ໌ໃບອະນຸຍາດ." + +#: ../source/guides/writing-pyproject-toml.rst:332 +msgid "" +"A previous PEP had specified ``license`` to be a table with a ``file`` or a " +"``text`` key, this format is now deprecated. Most :term:`build " +"backends` now support the new format as shown in the " +"following table." +msgstr "" +"PEP ກ່ອນໜ້ານີ້ໄດ້ກຳນົດໃຫ້ ``license`` ເປັນຕາຕະລາງທີ່ມີຄີ ``file`` ຫຼື ``text``, " +"ແຕ່ຮູບແບບນີ້ຖືກຍົກເລີກການນຳໃຊ້ແລ້ວ. ຕອນນີ້ :term:`build backends` " +"ສ່ວນໃຫຍ່ແມ່ນຮອງຮັບຮູບແບບໃໝ່ຕາມທີ່ສະແດງໃນຕາຕະລາງລຸ່ມນີ້." + +#: ../source/guides/writing-pyproject-toml.rst:336 +msgid "build backend versions that introduced :pep:`639` support" +msgstr "ເວີຊັນຂອງ build backend ທີ່ເລີ່ມຮອງຮັບ :pep:`639`" + +#: ../source/guides/writing-pyproject-toml.rst:339 +msgid "hatchling" +msgstr "hatchling" + +#: ../source/guides/writing-pyproject-toml.rst:340 +msgid "setuptools" +msgstr "setuptools" + +#: ../source/guides/writing-pyproject-toml.rst:341 +msgid "flit-core [#flit-core-pep639]_" +msgstr "flit-core [#flit-core-pep639]_" + +#: ../source/guides/writing-pyproject-toml.rst:342 +msgid "pdm-backend" +msgstr "pdm-backend" + +#: ../source/guides/writing-pyproject-toml.rst:343 +msgid "poetry-core" +msgstr "poetry-core" + +#: ../source/guides/writing-pyproject-toml.rst:344 +msgid "uv-build" +msgstr "uv-build" + +#: ../source/guides/writing-pyproject-toml.rst:345 +msgid "1.27.0" +msgstr "1.27.0" + +#: ../source/guides/writing-pyproject-toml.rst:346 +msgid "77.0.3" +msgstr "77.0.3" + +#: ../source/guides/writing-pyproject-toml.rst:347 +msgid "3.12" +msgstr "3.12" + +#: ../source/guides/writing-pyproject-toml.rst:348 +msgid "2.4.0" +msgstr "2.4.0" + +#: ../source/guides/writing-pyproject-toml.rst:349 +msgid "2.2.0" +msgstr "2.2.0" + +#: ../source/guides/writing-pyproject-toml.rst:350 +msgid "0.7.19" +msgstr "0.7.19" + +#: ../source/guides/writing-pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:151 +#: ../source/specifications/pyproject-toml.rst:262 +msgid "``license``" +msgstr "``license``" + +#: ../source/guides/writing-pyproject-toml.rst:358 +msgid "" +"The new format for ``license`` is a valid :term:`SPDX license expression " +"` consisting of one or more :term:`license identifiers " +"`. The full license list is available at the `SPDX " +"license list page `_. The supported list version is 3.17 " +"or any later compatible one." +msgstr "" +"ຮູບແບບໃໝ່ສຳລັບ ``license`` ແມ່ນ :term:`SPDX license expression ` ທີ່ຖືກຕ້ອງ ເຊິ່ງປະກອບດ້ວຍ :term:`license identifiers ` ຕົວໜຶ່ງ ຫຼື ຫຼາຍກວ່າ. ສາມາດເບິ່ງລາຍການໃບອະນຸຍາດທັງໝົດໄດ້ທີ່ `ໜ້າລາຍການໃບອະນຸຍາດ " +"SPDX `_. ເວີຊັນທີ່ຮອງຮັບແມ່ນ 3.17 ຫຼື ເວີຊັນທີ່ໃໝ່ກວ່າທີ່ເຂົ້າກັນໄດ້." + +#: ../source/guides/writing-pyproject-toml.rst:371 +msgid "" +"If you get a build error that ``license`` should be a dict/table, your build " +"backend doesn't yet support the new format. See the `above section `_ for more context. The now deprecated format is " +"`described in PEP 621 `__." +msgstr "" +"ຖ້າທ່ານພົບຂໍ້ຜິດພາດໃນການສ້າງວ່າ ``license`` ຄວນເປັນ dict/table, ສະແດງວ່າ build backend " +"ຂອງທ່ານຍັງບໍ່ທັນຮອງຮັບຮູບແບບໃໝ່. ເບິ່ງ `ພາກສ່ວນຂ້າງເທິງ `_ " +"ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ. ສ່ວນຮູບແບບທີ່ຖືກຍົກເລີກນັ້ນ `ມີອະທິບາຍໄວ້ໃນ PEP 621 `__." + +#: ../source/guides/writing-pyproject-toml.rst:376 +msgid "" +"As a general rule, it is a good idea to use a standard, well-known license, " +"both to avoid confusion and because some organizations avoid software whose " +"license is unapproved." +msgstr "" +"ຕາມຫຼັກການທົ່ວໄປ, ການໃຊ້ໃບອະນຸຍາດມາດຕະຖານທີ່ເປັນທີ່ຮູ້ຈັກກັນດີແມ່ນເປັນເລື່ອງທີ່ດີ, " +"ທັງເພື່ອຫຼີກລ່ຽງຄວາມສັບສົນ ແລະ " +"ເນື່ອງຈາກບາງອົງກອນຈະຫຼີກລ່ຽງການໃຊ້ຊອຟແວທີ່ໃບອະນຸຍາດບໍ່ໄດ້ຮັບການອະນຸມັດ." + +#: ../source/guides/writing-pyproject-toml.rst:380 +msgid "" +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." +msgstr "" +"ຖ້າ :term:`Distribution Archive` ຂອງທ່ານໃຊ້ໃບອະນຸຍາດທີ່ບໍ່ມີໃນລະບົບ SPDX, " +"ທ່ານສາມາດສ້າງຂຶ້ນເອງໄດ້ໃນຮູບແບບ ``LicenseRef-[idstring]``. " +"ລະຫັດທີ່ສ້າງເອງຕ້ອງປະຕິບັດຕາມຂໍ້ກຳນົດຂອງ SPDX, `ຂໍ້ທີ 10.1 `_ ຂອງເວີຊັນ 2.2 " +"ຫຼື ເວີຊັນທີ່ໃໝ່ກວ່າທີ່ເຂົ້າກັນໄດ້." + +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:298 +#: ../source/specifications/pyproject-toml.rst:658 +msgid "``license-files``" +msgstr "``license-files``" + +#: ../source/guides/writing-pyproject-toml.rst:397 +msgid "" +"This is a list of license files and files containing other legal information " +"you want to distribute with your package." +msgstr "" +"ນີ້ແມ່ນລາຍການຂອງໄຟລ໌ໃບອະນຸຍາດ ແລະ ໄຟລ໌ທີ່ປະກອບດ້ວຍຂໍ້ມູນທາງກົດໝາຍອື່ນໆ " +"ທີ່ທ່ານຕ້ອງການແຈກຢາຍໄປພ້ອມກັບແພັກເກດຂອງທ່ານ." + +#: ../source/guides/writing-pyproject-toml.rst:405 +msgid "The glob patterns must follow the specification:" +msgstr "ຮູບແບບ glob ຕ້ອງປະຕິບັດຕາມຂໍ້ກຳນົດດັ່ງນີ້:" + +#: ../source/guides/writing-pyproject-toml.rst:407 +msgid "" +"Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " +"(``.``) will be matched verbatim." +msgstr "" +"ຕົວອັກສອນ, ຕົວເລກ, ຂີດກ້ອງ (``_``), ຂີດຕໍ່ (``-``) ແລະ ຈ້ຳ (``.``) " +"ຈະຖືກປຽບທຽບຕາມຕົວອັກສອນນັ້ນໆໂດຍກົງ." + +#: ../source/guides/writing-pyproject-toml.rst:409 +msgid "" +"Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " +"supported." +msgstr "ຮອງຮັບຕົວອັກສອນພິເສດ: ``*``, ``?``, ``**`` ແລະ ການລະບຸຊ່ວງຕົວອັກສອນ: []." + +#: ../source/guides/writing-pyproject-toml.rst:410 +msgid "Path delimiters must be the forward slash character (``/``)." +msgstr "ຕົວຂັ້ນເສັ້ນທາງ (path) ຕ້ອງໃຊ້ເຄື່ອງໝາຍທັບ (``/``)." + +#: ../source/guides/writing-pyproject-toml.rst:411 +msgid "" +"Patterns are relative to the directory containing :file:`pyproject.toml`, " +"and thus may not start with a slash character." +msgstr "" +"ຮູບແບບແມ່ນອ້າງອີງຕາມໂຟນເດີທີ່ມີໄຟລ໌ :file:`pyproject.toml`, " +"ດັ່ງນັ້ນຈຶ່ງບໍ່ສາມາດເລີ່ມຕົ້ນດ້ວຍເຄື່ອງໝາຍທັບໄດ້." + +#: ../source/guides/writing-pyproject-toml.rst:413 +msgid "Parent directory indicators (``..``) must not be used." +msgstr "ຫ້າມໃຊ້ເຄື່ອງໝາຍອ້າງອີງຫາໂຟນເດີຂຶ້ນໄປໜຶ່ງຊັ້ນ (``..``)." + +#: ../source/guides/writing-pyproject-toml.rst:414 +msgid "Each glob must match at least one file." +msgstr "ແຕ່ລະ glob ຕ້ອງກົງກັບໄຟລ໌ຢ່າງໜ້ອຍໜຶ່ງໄຟລ໌." + +#: ../source/guides/writing-pyproject-toml.rst:416 +msgid "" +"Literal paths are valid globs. Any characters or character sequences not " +"covered by this specification are invalid." +msgstr "" +"ເສັ້ນທາງໄຟລ໌ແບບລະບຸໂດຍກົງແມ່ນຖືວ່າເປັນ glob ທີ່ຖືກຕ້ອງ. ຕົວອັກສອນ ຫຼື " +"ລຳດັບຕົວອັກສອນໃດໆທີ່ບໍ່ໄດ້ລະບຸໄວ້ໃນຂໍ້ກຳນົດນີ້ ແມ່ນຖືວ່າບໍ່ຖືກຕ້ອງ." + +#: ../source/guides/writing-pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:381 +#: ../source/specifications/pyproject-toml.rst:657 +msgid "``keywords``" +msgstr "``keywords`` (ຄຳຄົ້ນຫາ)" + +#: ../source/guides/writing-pyproject-toml.rst:424 +msgid "" +"This will help PyPI's search box to suggest your project when people search " +"for these keywords." +msgstr "ສິ່ງນີ້ຈະຊ່ວຍໃຫ້ຊ່ອງຄົ້ນຫາຂອງ PyPI ແນະນຳໂປຣເຈັກຂອງທ່ານ ເມື່ອມີຄົນຄົ້ນຫາດ້ວຍຄຳເຫຼົ່ານີ້." + +#: ../source/guides/writing-pyproject-toml.rst:436 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:393 +#: ../source/specifications/pyproject-toml.rst:651 +msgid "``classifiers``" +msgstr "``classifiers`` (ໝວດໝູ່)" + +#: ../source/guides/writing-pyproject-toml.rst:438 +msgid "" +"A list of PyPI classifiers that apply to your project. Check the `full list " +"of possibilities `_." +msgstr "" +"ລາຍການໝວດໝູ່ຂອງ PyPI ທີ່ກ່ຽວຂ້ອງກັບໂປຣເຈັກຂອງທ່ານ. ກວດເບິ່ງ `ລາຍການທັງໝົດ `_." + +#: ../source/guides/writing-pyproject-toml.rst:463 +msgid "" +"Although the list of classifiers is often used to declare what Python " +"versions a project supports, this information is only used for searching and " +"browsing projects on PyPI, not for installing projects. To actually restrict " +"what Python versions a project can be installed on, use the :ref:`requires-" +"python` argument." +msgstr "" +"ເຖິງແມ່ນວ່າລາຍການ classifiers ມັກຈະຖືກໃຊ້ເພື່ອປະກາດເວີຊັນ Python ທີ່ໂປຣເຈັກຮອງຮັບ, " +"ແຕ່ຂໍ້ມູນນີ້ແມ່ນໃຊ້ເພື່ອການຄົ້ນຫາ ແລະ ການເລືອກເບິ່ງໂປຣເຈັກໃນ PyPI ເທົ່ານັ້ນ, " +"ບໍ່ໄດ້ໃຊ້ໃນການຕິດຕັ້ງໂປຣເຈັກ. ເພື່ອຈຳກັດເວີຊັນ Python ທີ່ຈະຕິດຕັ້ງແທ້ໆ, " +"ໃຫ້ໃຊ້ຕົວກຳນົດ :ref:`requires-python`." + +#: ../source/guides/writing-pyproject-toml.rst:468 +msgid "" +"To prevent a package from being uploaded to PyPI, use the special " +"``Private :: Do Not Upload`` classifier. PyPI will always reject packages " +"with classifiers beginning with ``Private ::``." +msgstr "" +"ເພື່ອປ້ອງກັນບໍ່ໃຫ້ແພັກເກດຖືກອັບໂຫຼດຂຶ້ນ PyPI, ໃຫ້ໃຊ້ classifier ພິເສດ ``Private :: Do Not " +"Upload``. PyPI ຈະປະຕິເສດແພັກເກດທີ່ມີ classifier ທີ່ຂຶ້ນຕົ້ນດ້ວຍ ``Private ::`` ສະເໝີ." + +#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/specifications/pyproject-toml.rst:159 +#: ../source/specifications/pyproject-toml.rst:411 +#: ../source/specifications/pyproject-toml.rst:662 +msgid "``urls``" +msgstr "``urls`` (ລິ້ງທີ່ກ່ຽວຂ້ອງ)" + +#: ../source/guides/writing-pyproject-toml.rst:477 +msgid "" +"A list of URLs associated with your project, displayed on the left sidebar " +"of your PyPI project page." +msgstr "" +"ລາຍການ URL ທີ່ກ່ຽວຂ້ອງກັບໂປຣເຈັກຂອງທ່ານ, ເຊິ່ງຈະສະແດງຢູ່ແຖບດ້ານຊ້າຍຂອງໜ້າໂປຣເຈັກໃນ PyPI." + +#: ../source/guides/writing-pyproject-toml.rst:482 +msgid "" +"See :ref:`well-known-labels` for a listing of labels that PyPI and other " +"packaging tools are specifically aware of, and `PyPI's project metadata docs " +"`_ for PyPI-specific " +"URL processing." +msgstr "" +"ເບິ່ງ :ref:`well-known-labels` ສຳລັບລາຍການປ້າຍຊື່ (labels) ທີ່ PyPI ແລະ ເຄື່ອງມືອື່ນໆຮູ້ຈັກ, " +"ແລະ ເບິ່ງ `ເອກະສານ metadata ຂອງ PyPI `_ ສຳລັບການຈັດການ URL ສະເພາະຂອງ PyPI." + +#: ../source/guides/writing-pyproject-toml.rst:496 +msgid "" +"Note that if the label contains spaces, it needs to be quoted, e.g., " +"``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" +"example.com\"``." +msgstr "" +"ໝາຍເຫດ: ຖ້າປ້າຍຊື່ມີຍະຫວ່າງ, ມັນຕ້ອງຖືກໃສ່ໃນເຄື່ອງໝາຍຄຳເວົ້າ, ຕົວຢ່າງ: ``Website = \"https://" +"example.com\"`` ແຕ່ ``\"Official Website\" = \"https://example.com\"``." + +#: ../source/guides/writing-pyproject-toml.rst:500 +msgid "" +"Users are advised to use :ref:`well-known-labels` for their project URLs " +"where appropriate, since consumers of metadata (like package indices) can " +"specialize their presentation." +msgstr "" +"ແນະນຳໃຫ້ຜູ້ໃຊ້ໃຊ້ :ref:`well-known-labels` ສຳລັບ URL ຂອງໂປຣເຈັກຕາມຄວາມເໝາະສົມ, " +"ເນື່ອງຈາກລະບົບທີ່ອ່ານ metadata (ເຊັ່ນ: ດັດຊະນີແພັກເກດ) ສາມາດສະແດງຜົນໃຫ້ເປັນຮູບແບບພິເສດໄດ້." + +#: ../source/guides/writing-pyproject-toml.rst:504 +msgid "" +"For example in the following metadata, neither ``MyHomepage`` nor " +"``\"Download Link\"`` is a well-known label, so they will be rendered " +"verbatim:" +msgstr "" +"ຕົວຢ່າງໃນ metadata ລຸ່ມນີ້, ທັງ ``MyHomepage`` ແລະ ``\"Download Link\"`` " +"ແມ່ນບໍ່ແມ່ນປ້າຍຊື່ທີ່ເປັນມາດຕະຖານ, ດັ່ງນັ້ນພວກມັນຈະຖືກສະແດງຕາມຕົວອັກສອນນັ້ນເລີຍ:" + +#: ../source/guides/writing-pyproject-toml.rst:514 +msgid "" +"Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " +"equivalents (``homepage`` and ``download``), and can be presented with those " +"semantics in mind (the project's home page and its external download " +"location, respectively)." +msgstr "" +"ໃນຂະນະທີ່ metadata ນີ້ ``HomePage`` ແລະ ``DOWNLOAD`` ທັງສອງມີຄ່າທີ່ເປັນມາດຕະຖານ " +"(``homepage`` ແລະ ``download``), ແລະ ສາມາດສະແດງຜົນຕາມຄວາມໝາຍນັ້ນໄດ້ (ເຊັ່ນ: " +"ໜ້າຫຼັກຂອງໂປຣເຈັກ ແລະ ບ່ອນດາວໂຫຼດພາຍນອກ)." + +#: ../source/guides/writing-pyproject-toml.rst:526 +msgid "Advanced plugins" +msgstr "ປລັກອິນຂັ້ນສູງ" + +#: ../source/guides/writing-pyproject-toml.rst:528 +msgid "" +"Some packages can be extended through plugins. Examples include Pytest_ and " +"Pygments_. To create such a plugin, you need to declare it in a subtable of " +"``[project.entry-points]`` like this:" +msgstr "" +"ບາງແພັກເກດສາມາດເສີມຂະຫຍາຍໄດ້ຜ່ານປລັກອິນ. ຕົວຢ່າງລວມມີ Pytest_ ແລະ Pygments_. " +"ເພື່ອສ້າງປລັກອິນດັ່ງກ່າວ, ທ່ານຕ້ອງປະກາດມັນໄວ້ໃນຕາຕະລາງຍ່ອຍຂອງ ``[project.entry-points]`` " +"ດັ່ງນີ້:" + +#: ../source/guides/writing-pyproject-toml.rst:537 +msgid "See the :ref:`Plugin guide ` for more information." +msgstr "ເບິ່ງ :ref:`ຄຳແນະນຳປລັກອິນ ` ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ." + +#: ../source/guides/writing-pyproject-toml.rst:542 +msgid "A full example" +msgstr "ຕົວຢ່າງແບບເຕັມ" + +#: ../source/guides/writing-pyproject-toml.rst:606 +msgid "" +"Think twice before applying an upper bound like ``requires-python = \"<= " +"3.10\"`` here. `This blog post `_ contains some " +"information regarding possible problems." +msgstr "" +"ກະລຸນາຄິດໃຫ້ຮອບຄອບກ່ອນຈະກຳນົດຂີດຈຳກັດສູງສຸດ ເຊັ່ນ ``requires-python = \"<= 3.10\"``. " +"`ບົດຄວາມນີ້ `_ ມີຂໍ້ມູນກ່ຽວກັບບັນຫາທີ່ອາດຈະເກີດຂຶ້ນ." + +#: ../source/guides/writing-pyproject-toml.rst:610 +msgid "" +"flit-core `does not yet `_ support WITH in SPDX license " +"expressions." +msgstr "" +"flit-core `ຍັງບໍ່ທັນຮອງຮັບ `_ ການໃຊ້ WITH ໃນ SPDX license " +"expressions." + +#: ../source/index.rst:-1 +msgid "" +"The Python Packaging User Guide (PyPUG) is a collection of tutorials and " +"guides for packaging Python software." +msgstr "" +"ຄຳແນະນຳການສ້າງແພັກເກດ Python (PyPUG) ແມ່ນບ່ອນລວມບົດຮຽນ ແລະ " +"ຄຳແນະນຳສຳລັບການສ້າງແພັກເກດຊອຟແວ Python." + +#: ../source/index.rst:-1 +msgid "python, packaging, guide, tutorial" +msgstr "python, ການສ້າງແພັກເກດ, ຄຳແນະນຳ, ບົດຮຽນ" + +#: ../source/index.rst:3 ../source/key_projects.rst:247 +msgid "Python Packaging User Guide" +msgstr "ຄຳແນະນຳການສ້າງແພັກເກດ Python" + +#: ../source/index.rst:25 +msgid "" +"Welcome to the *Python Packaging User Guide*, a collection of tutorials and " +"references to help you distribute and install Python packages with modern " +"tools." +msgstr "" +"ຍິນດີຕ້ອນຮັບເຂົ້າສູ່ *ຄຳແນະນຳການສ້າງແພັກເກດ Python*, ເຊິ່ງເປັນບ່ອນລວມບົດຮຽນ ແລະ " +"ເອກະສານອ້າງອີງ ເພື່ອຊ່ວຍໃຫ້ທ່ານແຈກຢາຍ ແລະ ຕິດຕັ້ງແພັກເກດ Python ດ້ວຍເຄື່ອງມືທີ່ທັນສະໄໝ." + +#: ../source/index.rst:29 +msgid "" +"This guide is maintained on `GitHub`_ by the :doc:`Python Packaging " +"Authority `. We happily accept :doc:`contributions and feedback " +"`. 😊" +msgstr "" +"ຄຳແນະນຳນີ້ຖືກດູແລເທິງ `GitHub`_ ໂດຍ :doc:`Python Packaging Authority " +"`. ພວກເຮົາຍິນດີຮັບ :doc:`ການມີສ່ວນຮ່ວມ ແລະ ຄຳຄິດເຫັນ `. 😊" + +#: ../source/index.rst:36 +msgid "Overview and Flow" +msgstr "ພາບລວມ ແລະ ຂັ້ນຕອນການເຮັດວຽກ" + +#: ../source/index.rst:40 +msgid "" +"Building your understanding of Python packaging is a journey. Patience and " +"continuous improvement are key to success. The overview and flow sections " +"provide a starting point for understanding the Python packaging ecosystem." +msgstr "" +"ການສ້າງຄວາມເຂົ້າໃຈກ່ຽວກັບການສ້າງແພັກເກດ Python ແມ່ນການເດີນທາງ. ຄວາມອົດທົນ ແລະ " +"ການປັບປຸງຢ່າງຕໍ່ເນື່ອງແມ່ນກຸນແຈສູ່ຄວາມສຳເລັດ. ພາກສ່ວນພາບລວມ ແລະ ຂັ້ນຕອນການເຮັດວຽກ " +"ຈະເປັນຈຸດເລີ່ມຕົ້ນໃນການເຂົ້າໃຈລະບົບນິເວດການສ້າງແພັກເກດ Python." + +#: ../source/index.rst:44 +msgid "" +"The :doc:`overview` explains Python packaging and its use when preparing and " +"distributing projects. This section helps you build understanding about " +"selecting the tools and processes that are most suitable for your use case. " +"It includes what packaging is, the problems that it solves, and key " +"considerations." +msgstr "" +":doc:`ພາບລວມ` ຈະອະທິບາຍກ່ຽວກັບການສ້າງແພັກເກດ Python ແລະ ການນຳໃຊ້ຂອງມັນ ໃນການກະກຽມ " +"ແລະ ແຈກຢາຍໂປຣເຈັກ. ພາກສ່ວນນີ້ຊ່ວຍໃຫ້ທ່ານເຂົ້າໃຈກ່ຽວກັບການເລືອກເຄື່ອງມື ແລະ " +"ຂັ້ນຕອນທີ່ເໝາະສົມທີ່ສຸດສຳລັບວຽກຂອງທ່ານ. ມັນລວມເຖິງວ່າການສ້າງແພັກເກດແມ່ນຫຍັງ, ບັນຫາທີ່ມັນແກ້ໄຂ, ແລະ " +"ຂໍ້ຄວນຄຳນຶງທີ່ສຳຄັນ." + +#: ../source/index.rst:51 +msgid "" +"To get an overview of the workflow used to publish your code, " +"see :doc:`packaging flow `." +msgstr "" +"ເພື່ອເບິ່ງພາບລວມຂອງຂັ້ນຕອນການເຮັດວຽກທີ່ໃຊ້ໃນການເຜີຍແຜ່ໂຄ້ດຂອງທ່ານ, " +"ເບິ່ງ :doc:`ຂັ້ນຕອນການສ້າງແພັກເກດ `." + +#: ../source/index.rst:57 +msgid "" +"Tutorials walk through the steps needed to complete a project for the first " +"time. Tutorials aim to help you succeed and provide a starting point for " +"future exploration. The :doc:`tutorials/index` section includes:" +msgstr "" +"ບົດຮຽນຈະນຳພາທ່ານຜ່ານຂັ້ນຕອນຕ່າງໆທີ່ຈຳເປັນເພື່ອເຮັດໂປຣເຈັກໃຫ້ສຳເລັດເປັນຄັ້ງທຳອິດ. " +"ບົດຮຽນມີເປົ້າໝາຍເພື່ອຊ່ວຍໃຫ້ທ່ານເຮັດສຳເລັດ ແລະ ເປັນຈຸດເລີ່ມຕົ້ນສຳລັບການສຶກສາເພີ່ມເຕີມໃນອະນາຄົດ. " +"ພາກສ່ວນ :doc:`tutorials/index` ລວມມີ:" + +#: ../source/index.rst:62 +msgid "" +"A :doc:`tutorial on installing packages `" +msgstr ":doc:`ບົດຮຽນກ່ຽວກັບການຕິດຕັ້ງແພັກເກດ `" + +#: ../source/index.rst:63 +msgid "" +"A :doc:`tutorial on managing application dependencies ` in a version controlled project" +msgstr "" +":doc:`ບົດຮຽນກ່ຽວກັບການຈັດການສ່ວນປະກອບທີ່ຈຳເປັນ ` " +"ໃນໂປຣເຈັກທີ່ມີການຄວບຄຸມເວີຊັນ" + +#: ../source/index.rst:65 +msgid "" +"A :doc:`tutorial on packaging and distributing ` your project" +msgstr "" +":doc:`ບົດຮຽນກ່ຽວກັບການສ້າງແພັກເກດ ແລະ ການແຈກຢາຍ ` " +"ໂປຣເຈັກຂອງທ່ານ" + +#: ../source/index.rst:71 +msgid "" +"Guides provide steps to perform a specific task. Guides are more focused on " +"users who are already familiar with Python packaging and are looking for " +"specific information." +msgstr "" +"ຄຳແນະນຳຈະບອກຂັ້ນຕອນການເຮັດວຽກໃດໜຶ່ງໂດຍສະເພາະ. " +"ຄຳແນະນຳຈະເນັ້ນໃສ່ຜູ້ໃຊ້ທີ່ຄຸ້ນເຄີຍກັບການສ້າງແພັກເກດ Python ຢູ່ແລ້ວ ແລະ " +"ກຳລັງຊອກຫາຂໍ້ມູນສະເພາະບາງຢ່າງ." + +#: ../source/index.rst:75 +msgid "" +"The :doc:`guides/index` section provides \"how to\" instructions in three " +"major areas: package installation; building and distributing packages; " +"miscellaneous topics." +msgstr "" +"ພາກສ່ວນ :doc:`guides/index` ຈະໃຫ້ຄຳແນະນຳ \"ວິທີການ\" ໃນສາມດ້ານຫຼັກ: ການຕິດຕັ້ງແພັກເກດ; " +"ການສ້າງ ແລະ ການແຈກຢາຍແພັກເກດ; ແລະ ຫົວຂໍ້ອື່ນໆ." + +#: ../source/index.rst:80 +msgid "Explanations and Discussions" +msgstr "ຄຳອະທິບາຍ ແລະ ການສົນທະນາ" + +#: ../source/index.rst:82 +msgid "" +"The :doc:`discussions/index` section provides in-depth explanations and " +"discussion about topics, such as:" +msgstr "" +"ພາກສ່ວນ :doc:`discussions/index` ໃຫ້ຄຳອະທິບາຍແບບເຈາະເລິກ ແລະ " +"ການສົນທະນາກ່ຽວກັບຫົວຂໍ້ຕ່າງໆ, ເຊັ່ນ:" + +#: ../source/index.rst:85 +msgid ":doc:`discussions/deploying-python-applications`" +msgstr ":doc:`discussions/deploying-python-applications` (ການຕິດຂັດແອັບ Python)" + +#: ../source/index.rst:86 +msgid ":doc:`discussions/pip-vs-easy-install`" +msgstr ":doc:`discussions/pip-vs-easy-install` (pip ທຽບກັບ easy-install)" + +#: ../source/index.rst:89 +msgid "Reference" +msgstr "ເອກະສານອ້າງອີງ" + +#: ../source/index.rst:91 +msgid "" +"The :doc:`specifications/index` section for packaging interoperability " +"specifications." +msgstr "" +"ພາກສ່ວນ :doc:`specifications/index` ສຳລັບຂໍ້ກຳນົດດ້ານການເຮັດວຽກຮ່ວມກັນຂອງການສ້າງແພັກເກດ." + +#: ../source/index.rst:92 +msgid "" +"The list of :doc:`other projects ` maintained by members of " +"the Python Packaging Authority." +msgstr "" +"ລາຍການ :doc:`ໂປຣເຈັກອື່ນໆ ` ທີ່ດູແລໂດຍສະມາຊິກຂອງ Python Packaging " +"Authority." + +#: ../source/index.rst:93 +msgid "The :doc:`glossary` for definitions of terms used in Python packaging." +msgstr ":doc:`ຄຳສັບ` ສຳລັບຄຳນິຍາມຂອງຄຳສັບທີ່ໃຊ້ໃນການສ້າງແພັກເກດ Python." + +#: ../source/key_projects.rst:6 +msgid "Project Summaries" +msgstr "ບົດສະຫຼຸບໂປຣເຈັກ" + +#: ../source/key_projects.rst:8 +msgid "" +"Summaries and links for the most relevant projects in the space of Python " +"installation and packaging." +msgstr "ບົດສະຫຼຸບ ແລະ ລິ້ງສຳລັບໂປຣເຈັກທີ່ກ່ຽວຂ້ອງທີ່ສຸດໃນດ້ານການຕິດຕັ້ງ ແລະ ການສ້າງແພັກເກດ Python." + +#: ../source/key_projects.rst:14 +msgid "PyPA Projects" +msgstr "ໂປຣເຈັກຂອງ PyPA" + +#: ../source/key_projects.rst:19 +msgid "bandersnatch" +msgstr "bandersnatch" + +#: ../source/key_projects.rst:21 +msgid "" +"`Docs `__ | `Issues `__ | `GitHub `__ | `PyPI `__" +msgstr "" +"`ເອກະສານ `__ | `ແຈ້ງບັນຫາ `__ | `GitHub `__ | `PyPI `__" + +#: ../source/key_projects.rst:26 +msgid "" +"``bandersnatch`` is a PyPI mirroring client designed to efficiently create a " +"complete mirror of the contents of PyPI. Organizations thus save bandwidth " +"and latency on package downloads (especially in the context of automated " +"tests) and to prevent heavily loading PyPI's Content Delivery Network (CDN). " +"Files can be served from a local directory or `AWS S3`_." +msgstr "" +"``bandersnatch`` ແມ່ນຄລາຍແອນ (client) ສຳລັບເຮັດ PyPI mirror " +"ທີ່ຖືກອອກແບບມາເພື່ອສ້າງສຳເນົາເນື້ອໃນທັງໝົດຂອງ PyPI ຢ່າງມີປະສິດທິພາບ. " +"ອົງກອນຕ່າງໆຈຶ່ງສາມາດປະຢັດແບນວິດ (bandwidth) ແລະ ຫຼຸດຄວາມຊ້າໃນການດາວໂຫຼດແພັກເກດ " +"(ໂດຍສະເພາະໃນການທົດສອບແບບອັດຕະໂນມັດ) ແລະ ເພື່ອປ້ອງກັນບໍ່ໃຫ້ເກີດພາລະໜັກເກີນໄປຕໍ່ລະບົບ CDN ຂອງ " +"PyPI. ໄຟລ໌ສາມາດໃຫ້ບໍລິການຈາກໂຟນເດີພາຍໃນເຄື່ອງ ຫຼື `AWS S3`_." + +#: ../source/key_projects.rst:37 +msgid "build" +msgstr "build" + +#: ../source/key_projects.rst:39 +msgid "" +":any:`Docs ` | `Issues `__ | `GitHub `__ | `PyPI `__" +msgstr "" +":any:`ເອກະສານ ` | `ແຈ້ງບັນຫາ `__ | `GitHub `__ | `PyPI `__" + +#: ../source/key_projects.rst:44 +msgid "" +"``build`` is a :pep:`517` compatible Python package builder. It provides a " +"CLI to build packages, as well as a Python API." +msgstr "" +"``build`` ແມ່ນເຄື່ອງມືສ້າງແພັກເກດ Python ທີ່ເຂົ້າກັນໄດ້ກັບ :pep:`517`. ມັນມີທັງ CLI " +"ເພື່ອສ້າງແພັກເກດ ແລະ Python API." + +#: ../source/key_projects.rst:51 +msgid "cibuildwheel" +msgstr "cibuildwheel" + +#: ../source/key_projects.rst:53 +msgid "" +"`Docs `__ | `Issues `__ | `GitHub `__ | `PyPI `__ | " +"`Discussions `__ | " +"`Discord #cibuildwheel `__" +msgstr "" +"`ເອກະສານ `__ | `ແຈ້ງບັນຫາ `__ | `GitHub `__ | `PyPI `__ | " +"`ສົນທະນາ `__ | `Discord " +"#cibuildwheel `__" + +#: ../source/key_projects.rst:60 +msgid "" +"``cibuildwheel`` is a Python package that builds :term:`wheels ` for " +"all common platforms and Python versions on most CI systems. Also " +"see :ref:`multibuild`." +msgstr "" +"``cibuildwheel`` ແມ່ນແພັກເກດ Python ທີ່ສ້າງ :term:`wheels ` ສຳລັບທຸກແພລດຟອມ " +"ແລະ ທຸກເວີຊັນ Python ທີ່ນິຍົມໃຊ້ໃນລະບົບ CI ສ່ວນໃຫຍ່. ເບິ່ງ :ref:`multibuild` ຕື່ມ." + +#: ../source/key_projects.rst:66 +msgid "distlib" +msgstr "distlib" + +#: ../source/key_projects.rst:68 +msgid "" +":doc:`Docs ` | `Issues `__ | `GitHub `__ | `PyPI `__" +msgstr "" +":doc:`ເອກະສານ ` | `ແຈ້ງບັນຫາ `__ | `GitHub `__ | `PyPI `__" + +#: ../source/key_projects.rst:73 +msgid "" +"``distlib`` is a library which implements low-level functions that relate to " +"packaging and distribution of Python software. ``distlib`` implements " +"several relevant PEPs (Python Enhancement Proposal standards) and is useful " +"for developers of third-party packaging tools to make and upload binary and " +"source :term:`distributions `, achieve " +"interoperability, resolve dependencies, manage package resources, and do " +"other similar functions." +msgstr "" +"``distlib`` ແມ່ນໄລບຣາຣີທີ່ປະມວນຜົນຟັງຊັນລະດັບຕ່ຳທີ່ກ່ຽວຂ້ອງກັບການສ້າງແພັກເກດ ແລະ " +"ການແຈກຢາຍຊອຟແວ Python. ``distlib`` ຮອງຮັບ PEP ທີ່ກ່ຽວຂ້ອງຫຼາຍຕົວ ແລະ " +"ມີປະໂຫຍດສຳລັບຜູ້ພັດທະນາເຄື່ອງມືສ້າງແພັກເກດພາຍນອກ ເພື່ອສ້າງ ແລະ ອັບໂຫຼດ binary ແລະ " +"source :term:`distributions `, ຊ່ວຍໃຫ້ເຮັດວຽກຮ່ວມກັນໄດ້, " +"ຈັດການສ່ວນປະກອບທີ່ຈຳເປັນ, ຈັດການຊັບພະຍາກອນແພັກເກດ, ແລະ ເຮັດໜ້າທີ່ອື່ນໆທີ່ຄ້າຍຄືກັນ." + +#: ../source/key_projects.rst:82 +msgid "" +"Unlike the stricter :ref:`packaging` project (below), which specifically " +"implements modern Python packaging interoperability standards, ``distlib`` " +"also attempts to provide reasonable fallback behaviours when asked to handle " +"legacy packages and metadata that predate the modern interoperability " +"standards and fall into the subset of packages that are incompatible with " +"those standards." +msgstr "" +"ຕ່າງຈາກໂປຣເຈັກ :ref:`packaging` (ຂ້າງລຸ່ມ) ທີ່ມີຄວາມເຂັ້ມງວດກວ່າ " +"ເຊິ່ງເນັ້ນການຮອງຮັບມາດຕະຖານການເຮັດວຽກຮ່ວມກັນຂອງ Python ຍຸກໃໝ່, ``distlib`` " +"ຍັງພະຍາຍາມໃຫ້ມີການເຮັດວຽກຮອງຮັບ (fallback) ທີ່ເໝາະສົມ ເມື່ອຕ້ອງຈັດການກັບແພັກເກດ ແລະ " +"metadata ແບບເກົ່າ (legacy) ທີ່ມາກ່ອນມາດຕະຖານໃໝ່ ແລະ ບໍ່ສາມາດເຂົ້າກັນໄດ້ກັບມາດຕະຖານເຫຼົ່ານັ້ນ." + +#: ../source/key_projects.rst:93 +msgid "distutils" +msgstr "distutils" + +#: ../source/key_projects.rst:95 +msgid "" +"The original Python packaging system, added to the standard library in " +"Python 2.0 and removed in 3.12." +msgstr "" +"ລະບົບການສ້າງແພັກເກດດັ້ງເດີມຂອງ Python, ເຊິ່ງຖືກເພີ່ມເຂົ້າໃນ Standard Library ຕັ້ງແຕ່ Python " +"2.0 ແລະ ຖືກຖອນອອກໃນເວີຊັນ 3.12." + +#: ../source/key_projects.rst:98 +msgid "" +"Due to the challenges of maintaining a packaging system where feature " +"updates are tightly coupled to language runtime updates, direct usage " +"of :ref:`distutils` has been actively discouraged, with :ref:`Setuptools` " +"being the preferred replacement. :ref:`Setuptools` not only provides " +"features that plain :ref:`distutils` doesn't offer (such as dependency " +"declarations and entry point declarations), it also provides a consistent " +"build interface and feature set across all supported Python versions." +msgstr "" +"ເນື່ອງຈາກຄວາມຫຍຸ້ງຍາກໃນການດູແລລະບົບການສ້າງແພັກເກດທີ່ການອັບເດດຟີເຈີຖືກຜູກຕິດກັບການອັບເດດຂອງຕົວພາສາ, " +"ການໃຊ້ :ref:`distutils` ໂດຍກົງຈຶ່ງບໍ່ໄດ້ຮັບການແນະນຳ, ໂດຍມີ :ref:`Setuptools` " +"ເປັນຕົວປ່ຽນແທນທີ່ດີກວ່າ. :ref:`Setuptools` ບໍ່ພຽງແຕ່ມີຟີເຈີທີ່ :ref:`distutils` ແບບທຳມະດາບໍ່ມີ " +"(ເຊັ່ນ: ການປະກາດສ່ວນປະກອບທີ່ຈຳເປັນ ແລະ entry point), ແຕ່ມັນຍັງມີອິນເຕີເຟດການສ້າງ ແລະ " +"ຊຸດຟີເຈີທີ່ຄົງທີ່ໃນທຸກໆເວີຊັນ Python ທີ່ຮອງຮັບ." + +#: ../source/key_projects.rst:107 +msgid "" +"Consequently, :ref:`distutils` was deprecated in Python 3.10 by :pep:`632` " +"and has been :doc:`removed ` from the standard library " +"in Python 3.12. Setuptools bundles the standalone copy of distutils, and it " +"is injected even on Python < 3.12 if you import setuptools first or use pip." +msgstr "" +"ດ້ວຍເຫດນັ້ນ, :ref:`distutils` ຈຶ່ງຖືກຍົກເລີກການນຳໃຊ້ໃນ Python 3.10 ໂດຍ :pep:`632` ແລະ " +"ຖືກ :doc:`ຖອນອອກ ` ຈາກ standard library ໃນ Python 3.12. " +"ເຖິງຢ່າງໃດກໍຕາມ, Setuptools ໄດ້ລວມເອົາ distutils ແບບ standalone ໄວ້ນຳ, ແລະ " +"ມັນຈະຖືກເອົາມາໃຊ້ເຖິງແມ່ນວ່າຈະເປັນ Python ເວີຊັນຕ່ຳກວ່າ 3.12 ຖ້າທ່ານ import setuptools ກ່ອນ " +"ຫຼື ໃຊ້ pip." + +#: ../source/key_projects.rst:116 +msgid "flit" +msgstr "flit" + +#: ../source/key_projects.rst:118 +msgid "" +"`Docs `__ | `Issues `__ | `PyPI `__" +msgstr "" +"`ເອກະສານ `__ | `ແຈ້ງບັນຫາ `__ | `PyPI `__" + +#: ../source/key_projects.rst:122 +msgid "" +"Flit provides a simple way to create and upload pure Python packages and " +"modules to PyPI. It focuses on `making the easy things easy `_ for packaging. Flit can generate a configuration file to " +"quickly set up a simple project, build source distributions and wheels, and " +"upload them to PyPI." +msgstr "" +"Flit ໃຫ້ວິທີທີ່ງ່າຍໃນການສ້າງ ແລະ ອັບໂຫຼດແພັກເກດ ແລະ ໂມດູນ Python ແບບບໍລິສຸດ ຂຶ້ນ PyPI. " +"ມັນເນັ້ນໃສ່ `ການເຮັດເລື່ອງງ່າຍໃຫ້ງ່າຍຂຶ້ນ `_ ສຳລັບການສ້າງແພັກເກດ. Flit " +"ສາມາດສ້າງໄຟລ໌ກຳນົດຄ່າເພື່ອຕັ້ງຄ່າໂປຣເຈັກແບບງ່າຍໆຢ່າງວ່ອງໄວ, ສ້າງ source distributions ແລະ " +"wheels, ແລະ ອັບໂຫຼດພວກມັນຂຶ້ນ PyPI." + +#: ../source/key_projects.rst:127 +msgid "" +"Flit uses ``pyproject.toml`` to configure a project. Flit does not rely on " +"tools such as :ref:`setuptools` to build distributions, or :ref:`twine` to " +"upload them to PyPI. Flit requires Python 3, but you can use it to " +"distribute modules for Python 2, so long as they can be imported on Python 3." +msgstr "" +"Flit ໃຊ້ ``pyproject.toml`` ໃນການກຳນົດຄ່າໂປຣເຈັກ. Flit ບໍ່ໄດ້ເພິ່ງພາເຄື່ອງມື " +"ເຊັ່ນ :ref:`setuptools` ໃນການສ້າງ distributions, ຫຼື :ref:`twine` ໃນການອັບໂຫຼດ. " +"Flit ຕ້ອງການ Python 3, ແຕ່ທ່ານສາມາດໃຊ້ມັນເພື່ອແຈກຢາຍໂມດູນສຳລັບ Python 2 ໄດ້, " +"ຕາບໃດທີ່ໂມດູນເຫຼົ່ານັ້ນສາມາດ import ໃນ Python 3 ໄດ້." + +#: ../source/key_projects.rst:132 +msgid "" +"The flit package is lifted by `Matthias Bussonnier `__ since October 2023 on the `tidelift platform `__, and funds sent to the PSF and " +"earmarked for PyPA usage." +msgstr "" +"ແພັກເກດ flit ໄດ້ຮັບການສະໜັບສະໜູນໂດຍ `Matthias Bussonnier `__ ຕັ້ງແຕ່ເດືອນຕຸລາ 2023 ຜ່ານທາງ `tidelift platform `__, ແລະ ເງິນທຶນໄດ້ຖືກສົ່ງໄປໃຫ້ PSF ໂດຍລະບຸໄວ້ເພື່ອໃຊ້ສຳລັບ PyPA." + +#: ../source/key_projects.rst:142 +msgid "hatch" +msgstr "hatch" + +#: ../source/key_projects.rst:144 +msgid "" +"`Docs `__ | `GitHub `__ | `PyPI `__" +msgstr "" +"`ເອກະສານ `__ | `GitHub `__ | `PyPI `__" + +#: ../source/key_projects.rst:148 +msgid "" +"Hatch is a unified command-line tool meant to conveniently manage " +"dependencies and environment isolation for Python developers. Python package " +"developers use Hatch and its :term:`build backend ` Hatchling " +"to configure, version, specify dependencies for, and publish packages to " +"PyPI. Its plugin system allows for easily extending functionality." +msgstr "" +"Hatch ແມ່ນເຄື່ອງມື command-line ແບບລວມສູນ ເພື່ອຈັດການສ່ວນປະກອບທີ່ຈຳເປັນ ແລະ " +"ການແຍກສະພາບແວດລ້ອມ (environment isolation) ໃຫ້ກັບຜູ້ພັດທະນາ Python. ຜູ້ພັດທະນາແພັກເກດ " +"Python ໃຊ້ Hatch ແລະ :term:`build backend ` ຂອງມັນທີ່ຊື່ວ່າ " +"Hatchling ເພື່ອກຳນົດຄ່າ, ເວີຊັນ, ລະບົບສ່ວນປະກອບທີ່ຈຳເປັນ, ແລະ ເຜີຍແຜ່ແພັກເກດຂຶ້ນ PyPI. " +"ລະບົບປລັກອິນຂອງມັນຊ່ວຍໃຫ້ສາມາດເສີມຟີເຈີໃໝ່ໆໄດ້ງ່າຍ." + +#: ../source/key_projects.rst:157 +msgid "packaging" +msgstr "ການຈັດເຮັດແພັກເກດ" + +#: ../source/key_projects.rst:159 +msgid "" +":doc:`Docs ` | `Issues `__ | `GitHub `__ | `PyPI `__" +msgstr "" +":doc:`ເອກະສານ ` | `ແຈ້ງບັນຫາ `__ | `GitHub `__ | " +"`PyPI `__" + +#: ../source/key_projects.rst:164 +msgid "" +"Core utilities for Python packaging used by :ref:`pip` and :ref:`setuptools`." +msgstr "" +"ເຄື່ອງມືຫຼັກສຳລັບການສ້າງແພັກເກດ Python ທີ່ຖືກໃຊ້ໂດຍ :ref:`pip` ແລະ :ref:`setuptools`." + +#: ../source/key_projects.rst:166 +msgid "" +"The core utilities in the packaging library handle version handling, " +"specifiers, markers, requirements, tags, and similar attributes and tasks " +"for Python packages. Most Python users rely on this library without needing " +"to explicitly call it; developers of the other Python packaging, " +"distribution, and installation tools listed here often use its functionality " +"to parse, discover, and otherwise handle dependency attributes." +msgstr "" +"ເຄື່ອງມືຫຼັກໃນໄລບຣາຣີ packaging ຈະຈັດການກ່ຽວກັບເວີຊັນ, ຕົວກຳນົດ, ຕົວໝາຍ (markers), ຂໍ້ກຳນົດ, " +"ແທັກ (tags), ແລະ ຄຸນລັກສະນະອື່ນໆທີ່ຄ້າຍຄືກັນສຳລັບແພັກເກດ Python. ຜູ້ໃຊ້ Python " +"ສ່ວນໃຫຍ່ແມ່ນໃຊ້ໄລບຣາຣີນີ້ໂດຍບໍ່ຮູ້ຕົວ; ສ່ວນຜູ້ພັດທະນາເຄື່ອງມືສ້າງ ແລະ ຕິດຕັ້ງແພັກເກດ Python " +"ອື່ນໆທີ່ລະບຸໄວ້ໃນນີ້ ມັກຈະໃຊ້ຟັງຊັນຂອງມັນເພື່ອ parse, ກວດຫາ, ແລະ " +"ຈັດການກັບຄຸນລັກສະນະຂອງສ່ວນປະກອບທີ່ຈຳເປັນ." + +#: ../source/key_projects.rst:174 +msgid "" +"This project specifically focuses on implementing the modern Python " +"packaging interoperability standards defined at :ref:`packaging-" +"specifications`, and will report errors for sufficiently old legacy packages " +"that are incompatible with those standards. In contrast, the :ref:`distlib` " +"project is a more permissive library that attempts to provide a plausible " +"reading of ambiguous metadata in cases where :ref:`packaging` will instead " +"report on error." +msgstr "" +"ໂປຣເຈັກນີ້ເນັ້ນໃສ່ການຮອງຮັບມາດຕະຖານການເຮັດວຽກຮ່ວມກັນຂອງ Python ຍຸກໃໝ່ " +"ທີ່ກຳນົດໄວ້ໃນ :ref:`packaging-specifications`, ແລະ ຈະແຈ້ງຂໍ້ຜິດພາດສຳລັບ " +"ແພັກເກດແບບເກົ່າຫຼາຍໆທີ່ບໍ່ເຂົ້າກັນກັບມາດຕະຖານເຫຼົ່ານັ້ນ. ໃນທາງກົງກັນຂ້າມ, ໂປຣເຈັກ :ref:`distlib` " +"ແມ່ນໄລບຣາຣີທີ່ຜ່ອນຜັນກວ່າ ເຊິ່ງພະຍາຍາມອ່ານ metadata ທີ່ບໍ່ຊັດເຈນ ໃນກໍລະນີທີ່ :ref:`packaging` " +"ຈະແຈ້ງເປັນຂໍ້ຜິດພາດ." + +#: ../source/key_projects.rst:186 +#: ../source/specifications/platform-compatibility-tags.rst:147 +msgid "pip" +msgstr "pip" + +#: ../source/key_projects.rst:188 +msgid "" +"`Docs `__ | `Issues `__ | `GitHub `__ | `PyPI `__" +msgstr "" +"`ເອກະສານ `__ | `ແຈ້ງບັນຫາ `__ | `GitHub `__ | `PyPI `__" + +#: ../source/key_projects.rst:193 +msgid "" +"The most popular tool for installing Python packages, and the one included " +"with modern versions of Python." +msgstr "" +"ເຄື່ອງມືທີ່ນິຍົມທີ່ສຸດໃນການຕິດຕັ້ງແພັກເກດ Python, ແລະ ຖືກລວມມາພ້ອມກັບ Python ເວີຊັນໃໝ່ໆຢູ່ແລ້ວ." + +#: ../source/key_projects.rst:196 +msgid "" +"It provides the essential core features for finding, downloading, and " +"installing packages from PyPI and other Python package indexes, and can be " +"incorporated into a wide range of development workflows via its command-line " +"interface (CLI)." +msgstr "" +"ມັນມີຟີເຈີຫຼັກທີ່ຈຳເປັນໃນການຄົ້ນຫາ, ດາວໂຫຼດ, ແລະ ຕິດຕັ້ງແພັກເກດຈາກ PyPI ແລະ ແຫຼ່ງອື່ນໆ, ແລະ " +"ສາມາດນຳໄປລວມເຂົ້າກັບຂັ້ນຕອນການພັດທະນາທີ່ຫຼາກຫຼາຍ ຜ່ານທາງ command-line interface (CLI)." + +#: ../source/key_projects.rst:204 +msgid "Pipenv" +msgstr "Pipenv" + +#: ../source/key_projects.rst:206 +msgid "" +":doc:`Docs ` | `Source `__ | " +"`Issues `__ | `PyPI `__" +msgstr "" +":doc:`ເອກະສານ ` | `ໂຄ້ດຕົ້ນສະບັບ `__ | `ແຈ້ງບັນຫາ `__ | `PyPI " +"`__" + +#: ../source/key_projects.rst:211 +msgid "" +"Pipenv is a project that aims to bring the best of all packaging worlds to " +"the Python world. It harnesses :ref:`Pipfile`, :ref:`pip`, " +"and :ref:`virtualenv` into one single toolchain. It can autoimport " +"``requirements.txt`` and also check for CVEs in `Pipfile`_ using `safety " +"`_." +msgstr "" +"Pipenv ແມ່ນໂປຣເຈັກທີ່ມີເປົ້າໝາຍລວມເອົາຂໍ້ດີຂອງໂລກການສ້າງແພັກເກດມາສູ່ Python. " +"ມັນລວມເອົາ :ref:`Pipfile`, :ref:`pip`, ແລະ :ref:`virtualenv` ເຂົ້າເປັນເຄື່ອງມືດຽວ. " +"ມັນສາມາດນຳເຂົ້າ ``requirements.txt`` ໄດ້ອັດຕະໂນມັດ ແລະ ຍັງກວດສອບຊ່ອງໂຫວ່ CVE ໃນ " +"`Pipfile`_ ໂດຍໃຊ້ `safety `_." + +#: ../source/key_projects.rst:216 +msgid "" +"Pipenv aims to help users manage environments, dependencies, and imported " +"packages on the command line. It also works well on Windows (which other " +"tools often underserve), makes and checks file hashes, to ensure compliance " +"with hash-locked dependency specifiers, and eases uninstallation of packages " +"and dependencies." +msgstr "" +"Pipenv ຊ່ວຍໃຫ້ຜູ້ໃຊ້ຈັດການສະພາບແວດລ້ອມ, ສ່ວນປະກອບທີ່ຈຳເປັນ, ແລະ ແພັກເກດທີ່ນຳເຂົ້າ ຜ່ານ " +"command line. ມັນຍັງເຮັດວຽກໄດ້ດີໃນ Windows, ມີການສ້າງ ແລະ ກວດສອບ hash ຂອງໄຟລ໌ " +"ເພື່ອຄວາມປອດໄພ, ແລະ ຊ່ວຍໃຫ້ການຖອນການຕິດຕັ້ງແພັກເກດເຮັດໄດ້ງ່າຍຂຶ້ນ." + +#: ../source/key_projects.rst:225 +msgid "Pipfile" +msgstr "Pipfile" + +#: ../source/key_projects.rst:227 +msgid "`Source `__" +msgstr "`ໂຄ້ດຕົ້ນສະບັບ `__" + +#: ../source/key_projects.rst:229 +msgid "" +":file:`Pipfile` and its sister :file:`Pipfile.lock` are a higher-level " +"application-centric alternative to :ref:`pip`'s lower-" +"level :file:`requirements.txt` file." +msgstr "" +":file:`Pipfile` ແລະ :file:`Pipfile.lock` ແມ່ນທາງເລືອກໃນລະດັບທີ່ສູງກວ່າ " +"ເຊິ່ງເນັ້ນໃສ່ຕົວແອັບພລິເຄຊັນ ແທນທີ່ໄຟລ໌ :file:`requirements.txt` ຂອງ :ref:`pip`." + +#: ../source/key_projects.rst:236 +msgid "pipx" +msgstr "pipx" + +#: ../source/key_projects.rst:238 +msgid "" +"`Docs `__ | `GitHub `__ " +"| `PyPI `__" +msgstr "" +"`ເອກະສານ `__ | `GitHub `__ | `PyPI `__" + +#: ../source/key_projects.rst:242 +msgid "" +"pipx is a tool to install and run Python command-line applications without " +"causing dependency conflicts with other packages installed on the system." +msgstr "" +"pipx ແມ່ນເຄື່ອງມືສຳລັບຕິດຕັ້ງ ແລະ ລັນແອັບພລິເຄຊັນ command-line ຂອງ Python " +"ໂດຍບໍ່ເຮັດໃຫ້ເກີດຄວາມຂັດແຍ້ງຂອງສ່ວນປະກອບທີ່ຈຳເປັນກັບແພັກເກດອື່ນໆໃນລະບົບ." + +#: ../source/key_projects.rst:249 +msgid "" +":doc:`Docs ` | `Issues `__ | `GitHub `__" +msgstr "" +":doc:`ເອກະສານ ` | `ແຈ້ງບັນຫາ `__ | `GitHub `__" + +#: ../source/key_projects.rst:253 +msgid "This guide!" +msgstr "ຄຳແນະນຳນີ້ແຫຼະ!" + +#: ../source/key_projects.rst:258 +msgid "readme_renderer" +msgstr "readme_renderer" + +#: ../source/key_projects.rst:260 +msgid "" +"`GitHub and docs `__ | `PyPI " +"`__" +msgstr "" +"`GitHub ແລະ ເອກະສານ `__ | `PyPI " +"`__" + +#: ../source/key_projects.rst:263 +msgid "" +"``readme_renderer`` is a library that package developers use to render their " +"user documentation (README) files into HTML from markup languages such as " +"Markdown or reStructuredText. Developers call it on its own or " +"via :ref:`twine`, as part of their release management process, to check that " +"their package descriptions will properly display on PyPI." +msgstr "" +"``readme_renderer`` ແມ່ນໄລບຣາຣີທີ່ຜູ້ພັດທະນາແພັກເກດໃຊ້ເພື່ອແປງໄຟລ໌ README ໃຫ້ເປັນ HTML " +"ຈາກພາສາ Markdown ຫຼື reStructuredText. ຜູ້ພັດທະນາໃຊ້ມັນໂດຍກົງ ຫຼື ຜ່ານ :ref:`twine` " +"ເພື່ອກວດສອບວ່າຄຳອະທິບາຍແພັກເກດຈະສະແດງຜົນຢ່າງຖືກຕ້ອງໃນ PyPI." + +#: ../source/key_projects.rst:274 +msgid "Setuptools" +msgstr "Setuptools" + +#: ../source/key_projects.rst:276 +msgid "" +"`Docs `__ | `Issues `__ | `GitHub `__ | `PyPI `__" +msgstr "" +"`ເອກະສານ `__ | `ແຈ້ງບັນຫາ " +"`__ | `GitHub `__ | `PyPI `__" + +#: ../source/key_projects.rst:281 +msgid "" +"Setuptools (which includes ``easy_install``) is a collection of enhancements " +"to the Python distutils that allow you to more easily build and distribute " +"Python :term:`distributions `, especially ones that " +"have dependencies on other packages." +msgstr "" +"Setuptools (ເຊິ່ງລວມມີ ``easy_install``) ແມ່ນຊຸດເຄື່ອງມືທີ່ເສີມປະສິດທິພາບໃຫ້ distutils ຂອງ " +"Python ເພື່ອໃຫ້ທ່ານສ້າງ ແລະ ແຈກຢາຍ :term:`distributions ` " +"ຂອງ Python ໄດ້ງ່າຍຂຶ້ນ, ໂດຍສະເພາະຕົວທີ່ມີສ່ວນປະກອບທີ່ຈຳເປັນຈາກແພັກເກດອື່ນ." + +#: ../source/key_projects.rst:289 +msgid "trove-classifiers" +msgstr "trove-classifiers" + +#: ../source/key_projects.rst:291 +msgid "" +"`Issues `__ | `GitHub " +"`__ | `PyPI `__" +msgstr "" +"`ແຈ້ງບັນຫາ `__ | `GitHub " +"`__ | `PyPI `__" + +#: ../source/key_projects.rst:295 +msgid "" +"trove-classifiers is the canonical source for `classifiers on PyPI `_, which project maintainers use " +"to :ref:`systematically describe their projects ` " +"so that users can better find projects that match their needs on the PyPI." +msgstr "" +"trove-classifiers ແມ່ນແຫຼ່ງຂໍ້ມູນຫຼັກສຳລັບ `classifiers ໃນ PyPI `_, ເຊິ່ງຜູ້ດູແລໂປຣເຈັກໃຊ້ເພື່ອ :ref:`ອະທິບາຍໂປຣເຈັກຢ່າງເປັນລະບົບ ` ເພື່ອໃຫ້ຜູ້ໃຊ້ສາມາດຄົ້ນຫາໂປຣເຈັກທີ່ຕົງກັບຄວາມຕ້ອງການໃນ PyPI ໄດ້ງ່າຍຂຶ້ນ." + +#: ../source/key_projects.rst:300 +msgid "" +"The trove-classifiers package contains a list of valid classifiers and " +"deprecated classifiers (which are paired with the classifiers that replace " +"them). Use this package to validate classifiers used in packages intended " +"for uploading to PyPI. As this list of classifiers is published as code, you " +"can install and import it, giving you a more convenient workflow compared to " +"referring to the `list published on PyPI `_. " +"The `issue tracker `_ for " +"the project hosts discussions on proposed classifiers and requests for new " +"classifiers." +msgstr "" +"ແພັກເກດ trove-classifiers ລວມມີລາຍຊື່ classifiers ທີ່ໃຊ້ໄດ້ ແລະ ຕົວທີ່ຖືກຍົກເລີກແລ້ວ. " +"ໃຊ້ແພັກເກດນີ້ເພື່ອຢັ້ງຢືນ classifiers ກ່ອນອັບໂຫຼດຂຶ້ນ PyPI. ເນື່ອງຈາກມັນຢູ່ໃນຮູບແບບໂຄ້ດ, " +"ທ່ານສາມາດຕິດຕັ້ງ ແລະ import ມັນມາໃຊ້ໄດ້ເລີຍ ເຊິ່ງສະດວກກວ່າການເບິ່ງຈາກເວັບໄຊ. " +"ນອກຈາກນີ້ຍັງສາມາດສະເໜີ ຫຼື ຂໍ classifiers ໃໝ່ໆໄດ້ໃນ `issue tracker `_." + +#: ../source/key_projects.rst:314 +msgid "twine" +msgstr "twine" + +#: ../source/key_projects.rst:316 +msgid "" +"`Docs `__ | `Issues `__ | `GitHub `__ | `PyPI `__" +msgstr "" +"`ເອກະສານ `__ | `ແຈ້ງບັນຫາ `__ | `GitHub `__ | `PyPI `__" + +#: ../source/key_projects.rst:321 +msgid "" +"Twine is the primary tool developers use to upload packages to the Python " +"Package Index or other Python package indexes. It is a command-line program " +"that passes program files and metadata to a web API. Developers use it " +"because it's the official PyPI upload tool, it's fast and secure, it's " +"maintained, and it reliably works." +msgstr "" +"Twine ແມ່ນເຄື່ອງມືຫຼັກທີ່ຜູ້ພັດທະນາໃຊ້ເພື່ອອັບໂຫຼດແພັກເກດຂຶ້ນ PyPI ຫຼື ແຫຼ່ງອື່ນໆ. ມັນແມ່ນໂປຣແກຣມ " +"command-line ທີ່ສົ່ງໄຟລ໌ ແລະ metadata ຜ່ານ web API. " +"ຜູ້ພັດທະນາໃຊ້ມັນຍ້ອນວ່າມັນເປັນເຄື່ອງມືທາງການ, ໄວ, ປອດໄພ, ແລະ ເຮັດວຽກໄດ້ຢ່າງໝັ້ນໃຈ." + +#: ../source/key_projects.rst:331 ../source/overview.rst:405 +msgid "virtualenv" +msgstr "virtualenv" + +#: ../source/key_projects.rst:333 +msgid "" +"`Docs `__ | `Issues " +"`__ | `GitHub `__ | `PyPI `__" +msgstr "" +"`ເອກະສານ `__ | `ແຈ້ງບັນຫາ " +"`__ | `GitHub `__ | `PyPI `__" + +#: ../source/key_projects.rst:338 +msgid "" +"virtualenv is a tool for creating isolated Python :term:`Virtual " +"Environments `, like :ref:`venv`. Unlike :ref:`venv`, " +"virtualenv can create virtual environments for other versions of Python, " +"which it locates using the PATH environment variable. It also provides " +"convenient features for configuring, maintaining, duplicating, and " +"troubleshooting virtual environments. For more information, see the section " +"on :ref:`Creating and using Virtual Environments`." +msgstr "" +"virtualenv ແມ່ນເຄື່ອງມືສຳລັບສ້າງ :term:`Virtual Environments ` ຂອງ Python ແບບແຍກສ່ວນ, ຄ້າຍຄືກັບ :ref:`venv`. ແຕ່ຕ່າງຈາກ :ref:`venv` " +"ບ່ອນວ່າ virtualenv ສາມາດສ້າງສະພາບແວດລ້ອມຈຳລອງສຳລັບ Python ເວີຊັນອື່ນໆໄດ້. " +"ມັນຍັງມີຟີເຈີໃນການກຳນົດຄ່າ, ດູແລ, ສຳເນົາ, ແລະ ແກ້ໄຂບັນຫາ virtual environment ໄດ້ສະດວກ." + +#: ../source/key_projects.rst:350 +msgid "Warehouse" +msgstr "Warehouse" + +#: ../source/key_projects.rst:352 +msgid "" +"`Docs `__ | `Issues `__ | `GitHub `__" +msgstr "" +"`ເອກະສານ `__ | `ແຈ້ງບັນຫາ `__ | `GitHub `__" + +#: ../source/key_projects.rst:356 +msgid "" +"The current codebase powering the :term:`Python Package Index (PyPI)`. It is " +"hosted at `pypi.org `_. The default source for :ref:`pip` " +"downloads." +msgstr "" +"ຊຸດໂຄ້ດປັດຈຸບັນທີ່ຂັບເຄື່ອນ :term:`Python Package Index (PyPI)`. ມັນໃຫ້ບໍລິການຢູ່ທີ່ `pypi.org " +"`_ ແລະ ເປັນແຫຼ່ງດາວໂຫຼດຫຼັກສຳລັບ :ref:`pip`." + +#: ../source/key_projects.rst:364 +msgid "wheel" +msgstr "wheel" + +#: ../source/key_projects.rst:366 +msgid "" +"`Docs `__ | `Issues `__ | `GitHub `__ | `PyPI `__" +msgstr "" +"`ເອກະສານ `__ | `ແຈ້ງບັນຫາ `__ | `GitHub `__ | `PyPI `__" + +#: ../source/key_projects.rst:371 +msgid "" +"Primarily, the wheel project offers the ``bdist_wheel`` :ref:`setuptools` " +"extension for creating :term:`wheel distributions `. Additionally, " +"it offers its own command line utility for creating and installing wheels." +msgstr "" +"ໂດຍຫຼັກແລ້ວ, ໂປຣເຈັກ wheel ຈະໃຫ້ສ່ວນເສີມ ``bdist_wheel`` ສຳລັບ :ref:`setuptools` " +"ເພື່ອສ້າງ :term:`wheel distributions `. ນອກຈາກນີ້ ມັນຍັງມີເຄື່ອງມື command line " +"ຂອງມັນເອງເພື່ອສ້າງ ແລະ ຕິດຕັ້ງ wheel." + +#: ../source/key_projects.rst:375 +msgid "" +"See also `auditwheel `__, a tool that " +"package developers use to check and fix Python packages they are making in " +"the binary wheel format. It provides functionality to discover dependencies, " +"check metadata for compliance, and repair the wheel and metadata to properly " +"link and include external shared libraries in a package." +msgstr "" +"ເບິ່ງ `auditwheel `__ ຕື່ມ, " +"ເຊິ່ງແມ່ນເຄື່ອງມືທີ່ຜູ້ພັດທະນາໃຊ້ເພື່ອກວດສອບ ແລະ ແກ້ໄຂແພັກເກດ Python ໃນຮູບແບບ binary wheel. " +"ມັນຊ່ວຍກວດຫາສ່ວນປະກອບທີ່ຈຳເປັນ, ກວດສອບ metadata, ແລະ ແກ້ໄຂ wheel " +"ໃຫ້ເຊື່ອມຕໍ່ກັບໄລບຣາຣີພາຍນອກໄດ້ຢ່າງຖືກຕ້ອງ." + +#: ../source/key_projects.rst:384 +msgid "Non-PyPA Projects" +msgstr "ໂປຣເຈັກທີ່ບໍ່ໄດ້ຂຶ້ນກັບ PyPA" + +#: ../source/key_projects.rst:389 +msgid "buildout" +msgstr "buildout" + +#: ../source/key_projects.rst:391 +msgid "" +"`Docs `__ | `Issues `__ | `PyPI `__ | `GitHub `__" +msgstr "" +"`ເອກະສານ `__ | `ແຈ້ງບັນຫາ `__ | `PyPI `__ | `GitHub `__" + +#: ../source/key_projects.rst:396 +msgid "" +"Buildout is a Python-based build system for creating, assembling and " +"deploying applications from multiple parts, some of which may be non-Python-" +"based. It lets you create a buildout configuration and reproduce the same " +"software later." +msgstr "" +"Buildout ແມ່ນລະບົບການສ້າງທີ່ໃຊ້ Python ເປັນຫຼັກ ສຳລັບການສ້າງ, ປະກອບ ແລະ ຕິດຂັດ (deploy) " +"ແອັບພລິເຄຊັນຈາກຫຼາຍໆສ່ວນ, ເຊິ່ງບາງສ່ວນອາດຈະບໍ່ແມ່ນ Python. ມັນຊ່ວຍໃຫ້ທ່ານສ້າງການກຳນົດຄ່າ " +"buildout ແລະ ສ້າງຊອຟແວແບບເກົ່າຄືນໃໝ່ໄດ້." + +#: ../source/key_projects.rst:403 +msgid "conda" +msgstr "conda" + +#: ../source/key_projects.rst:405 +msgid ":doc:`Docs `" +msgstr ":doc:`ເອກະສານ `" + +#: ../source/key_projects.rst:407 +msgid "" +"Conda is a package, dependency, and environment management system for any " +"language — Python, R, Ruby, C/C++, Fortran, and more. It is written in " +"Python and widely used in the Python scientific computing community, due to " +"its support for non-Python compiled libraries and extensions. It is used as " +"the basis of the `Anaconda `__ Python " +"distribution from Anaconda, Inc. It was originally aimed at the scientific " +"community, but can also be used on its own, or with the :doc:`miniconda " +"`, `miniforge `_ " +"or `pixi `_ systems. It is available for Windows, Mac and " +"Linux systems." +msgstr "" +"Conda ແມ່ນລະບົບຈັດການແພັກເກດ, ສ່ວນປະກອບທີ່ຈຳເປັນ, ແລະ ສະພາບແວດລ້ອມ ສຳລັບທຸກພາສາ — " +"Python, R, Ruby, C/C++, Fortran, ແລະ ອື່ນໆ. ມັນຖືກຂຽນດ້ວຍ Python ແລະ " +"ຖືກນຳໃຊ້ຢ່າງກວ້າງຂວາງໃນວົງການວິທະຍາສາດ, ເນື່ອງຈາກມັນຮອງຮັບໄລບຣາຣີພາຍນອກ. ມັນເປັນພື້ນຖານຂອງ " +"Anaconda Python. Conda ສາມາດໃຊ້ໄດ້ທັງໃນ Windows, Mac ແລະ Linux." + +#: ../source/key_projects.rst:416 +msgid "" +"Conda is a completely separate tool from :ref:`pip`, virtualenv and wheel, " +"but provides many of their combined features, such as package management, " +"virtual environment management and deployment of binary extensions and other " +"binary code." +msgstr "" +"Conda ແມ່ນເຄື່ອງມືທີ່ແຍກອອກຈາກ :ref:`pip`, virtualenv ແລະ wheel ຢ່າງສິ້ນເຊີງ, " +"ແຕ່ມັນມີຟີເຈີຫຼາຍຢ່າງລວມກັນ ເຊິ່ງຄອບຄຸມທັງການຈັດການແພັກເກດ ແລະ virtual environment." + +#: ../source/key_projects.rst:420 +msgid "" +"Conda does not install packages from PyPI -- it can only manage packages " +"built specifically for conda, which can be made available on a \"conda " +"channel\", such as those hosted on `anaconda.org `__, " +"or a local (e.g. intranet) package server. In addition to the \"default\" " +"channels managed by `Anaconda, Inc. `__, there " +"are a wide variety of packages from the community supported `conda-forge " +"project `__" +msgstr "" +"Conda ບໍ່ໄດ້ຕິດຕັ້ງແພັກເກດຈາກ PyPI ໂດຍກົງ -- ມັນຈັດການສະເພາະແພັກເກດທີ່ສ້າງມາສຳລັບ conda " +"ເທົ່ານັ້ນ. ທ່ານສາມາດຫາແພັກເກດໄດ້ຈາກ \"conda channel\" ເຊັ່ນ anaconda.org ຫຼື ຈາກ conda-" +"forge ທີ່ດູແລໂດຍຊຸມຊົນ." + +#: ../source/key_projects.rst:426 +msgid "" +"Note that :ref:`pip` can be installed into, and work side-by-side with conda " +"for managing :term:`distributions ` from PyPI. It is " +"also possible to build conda packages from Python source packages using " +"tools such as `conda skeleton `__: a tool to " +"automatically make conda packages from Python packages available on PyPI." +msgstr "" +"ໝາຍເຫດ: ທ່ານສາມາດຕິດຕັ້ງ :ref:`pip` ລົງໃນ conda ເພື່ອໃຊ້ງານຮ່ວມກັນໃນການຈັດການແພັກເກດຈາກ " +"PyPI ໄດ້. ນອກຈາກນີ້ຍັງສາມາດໃຊ້ `conda skeleton` ເພື່ອສ້າງແພັກເກດ conda ຈາກແພັກເກດ " +"Python ໃນ PyPI ໄດ້ໂດຍອັດຕະໂນມັດ." + +#: ../source/key_projects.rst:435 +msgid "devpi" +msgstr "devpi" + +#: ../source/key_projects.rst:437 +msgid "" +"`Docs `__ | :gh:`Issues ` " +"| `PyPI `__" +msgstr "" +"`ເອກະສານ `__ | :gh:`ແຈ້ງບັນຫາ ` | `PyPI `__" + +#: ../source/key_projects.rst:441 +msgid "" +"devpi features a powerful PyPI-compatible server and PyPI proxy cache with a " +"complementary command line tool to drive packaging, testing and release " +"activities with Python. devpi also provides a browsable and searchable web " +"interface. devpi supports mirroring PyPI, multiple :term:`package indexes " +"` with inheritance, syncing between these indexes, index " +"replication and fail-over, and package upload." +msgstr "" +"devpi ມີເຊີບເວີທີ່ເຂົ້າກັນໄດ້ກັບ PyPI ແລະ ລະບົບແຄສ (proxy cache) ພ້ອມເຄື່ອງມື command line " +"ເພື່ອຊ່ວຍໃນການສ້າງແພັກເກດ, ທົດສອບ ແລະ ເຜີຍແຜ່. ມັນມີໜ້າເວັບທີ່ສາມາດຄົ້ນຫາໄດ້, ຮອງຮັບການເຮັດ " +"mirror, ແລະ ການຈັດການດັດຊະນີແພັກເກດຫຼາຍຕົວ." + +#: ../source/key_projects.rst:452 +msgid "dumb-pypi" +msgstr "dumb-pypi" + +#: ../source/key_projects.rst:454 +msgid "" +"`GitHub `__ | `PyPI `__" +msgstr "" +"`GitHub `__ | `PyPI `__" + +#: ../source/key_projects.rst:457 +msgid "" +"dumb-pypi is a simple :term:`package index ` static file site " +"generator, which then must be hosted by a static file webserver to become " +"the package index. It supports serving the hash, core-metadata, and yank-" +"status." +msgstr "" +"dumb-pypi ແມ່ນເຄື່ອງມືສ້າງເວັບໄຊດັດຊະນີແພັກເກດແບບ static ທີ່ງ່າຍດາຍ. ມັນຮອງຮັບການສະແດງ " +"hash, core-metadata, ແລະ ສະຖານະການຖືກຍົກເລີກ (yank-status)." + +#: ../source/key_projects.rst:464 +msgid "enscons" +msgstr "enscons" + +#: ../source/key_projects.rst:466 +msgid "" +":gh:`Source ` | :gh:`Issues ` | `PyPI " +"`__" +msgstr "" +":gh:`ໂຄ້ດຕົ້ນສະບັບ ` | :gh:`ແຈ້ງບັນຫາ ` | " +"`PyPI `__" + +#: ../source/key_projects.rst:470 +msgid "" +"Enscons is a Python packaging tool based on `SCons`_. It builds :ref:`pip`-" +"compatible source distributions and wheels without using distutils or " +"setuptools, including distributions with C extensions. Enscons has a " +"different architecture and philosophy than :ref:`distutils`. Rather than " +"adding build features to a Python packaging system, enscons adds Python " +"packaging to a general purpose build system. Enscons helps you to build " +"sdists that can be automatically built by :ref:`pip`, and wheels that are " +"independent of enscons." +msgstr "" +"Enscons ແມ່ນເຄື່ອງມືສ້າງແພັກເກດ Python ທີ່ອີງໃສ່ `SCons`_. ມັນສາມາດສ້າງ distributions " +"ທີ່ເຂົ້າກັນໄດ້ກັບ :ref:`pip` ໂດຍບໍ່ຕ້ອງໃຊ້ distutils ຫຼື setuptools. Enscons " +"ມີແນວຄິດທີ່ຕ່າງອອກໄປ ໂດຍການເອົາລະບົບການສ້າງແພັກເກດໄປໃສ່ໃນລະບົບການສ້າງແບບທົ່ວໄປ (general " +"purpose build system)." + +#: ../source/key_projects.rst:485 +msgid "Flask-Pypi-Proxy" +msgstr "Flask-Pypi-Proxy" + +#: ../source/key_projects.rst:487 +msgid "" +"`Docs `__ | :gh:`GitHub ` | `PyPI `__" +msgstr "" +"`ເອກະສານ `__ | :gh:`GitHub " +"` | `PyPI `__" + +#: ../source/key_projects.rst:491 ../source/key_projects.rst:685 +#: ../source/key_projects.rst:744 +msgid "Not maintained, project archived" +msgstr "ບໍ່ໄດ້ຮັບການດູແລແລ້ວ, ໂປຣເຈັກຖືກເກັບໄວ້ (archived)" + +#: ../source/key_projects.rst:493 +msgid "" +"Flask-Pypi-Proxy is a :term:`package index ` as a cached " +"proxy for PyPI." +msgstr "Flask-Pypi-Proxy ແມ່ນດັດຊະນີແພັກເກດທີ່ເຮັດໜ້າທີ່ເປັນແຄສ (cached proxy) ສຳລັບ PyPI." + +#: ../source/key_projects.rst:499 +msgid "Hashdist" +msgstr "Hashdist" + +#: ../source/key_projects.rst:501 +msgid "" +"`Docs `__ | `GitHub `__" +msgstr "" +"`ເອກະສານ `__ | `GitHub `__" + +#: ../source/key_projects.rst:504 +msgid "" +"Hashdist is a library for building non-root software distributions. Hashdist " +"is trying to be “the Debian of choice for cases where Debian technology " +"doesn’t work”. The best way for Pythonistas to think about Hashdist may be a " +"more powerful hybrid of :ref:`virtualenv` and :ref:`buildout`. It is aimed " +"at solving the problem of installing scientific software, and making package " +"distribution stateless, cached, and branchable. It is used by some " +"researchers but has been lacking in maintenance since 2016." +msgstr "" +"Hashdist ແມ່ນໄລບຣາຣີສຳລັບສ້າງ software distributions ໂດຍບໍ່ຕ້ອງໃຊ້ສິດ root. " +"ມັນຖືກອອກແບບມາເພື່ອແກ້ບັນຫາການຕິດຕັ້ງຊອຟແວທາງວິທະຍາສາດ, ແຕ່ຂາດການດູແລຕັ້ງແຕ່ປີ 2016." + +#: ../source/key_projects.rst:516 +msgid "Maturin" +msgstr "Maturin" + +#: ../source/key_projects.rst:518 +msgid "" +"`Docs `__ | `GitHub `__" +msgstr "" +"`ເອກະສານ `__ | `GitHub `__" + +#: ../source/key_projects.rst:521 +msgid "" +"Maturin is a build backend for Rust extension modules, also written in Rust. " +"It supports building wheels for python 3.7+ on Windows, Linux, macOS and " +"FreeBSD, can upload them to PyPI and has basic PyPy and GraalPy support." +msgstr "" +"Maturin ແມ່ນ build backend ສຳລັບໂມດູນເສີມທີ່ຂຽນດ້ວຍ Rust. ມັນຮອງຮັບການສ້າງ wheels ສຳລັບ " +"Python 3.7+ ໃນຫຼາຍແພລດຟອມ ແລະ ສາມາດອັບໂຫຼດຂຶ້ນ PyPI ໄດ້." + +#: ../source/key_projects.rst:529 +msgid "meson-python" +msgstr "meson-python" + +#: ../source/key_projects.rst:531 +msgid "" +"`Docs `__ | `GitHub `__" +msgstr "" +"`ເອກະສານ `__ | `GitHub " +"`__" + +#: ../source/key_projects.rst:534 +msgid "" +"``meson-python`` is a build backend that uses the Meson_ build system. It " +"enables Python package authors to use Meson_ as the build system for their " +"package. It supports a wide variety of languages, including C, and is able " +"to fill the needs of most complex build configurations." +msgstr "" +"``meson-python`` ແມ່ນ build backend ທີ່ໃຊ້ລະບົບ Meson_. ມັນຊ່ວຍໃຫ້ຜູ້ພັດທະນາສາມາດໃຊ້ " +"Meson ໃນການສ້າງແພັກເກດທີ່ຊັບຊ້ອນ ແລະ ຮອງຮັບຫຼາຍພາສາ ເຊັ່ນ C." + +#: ../source/key_projects.rst:544 +msgid "multibuild" +msgstr "multibuild" + +#: ../source/key_projects.rst:546 +msgid "`GitHub `__" +msgstr "`GitHub `__" + +#: ../source/key_projects.rst:548 +msgid "" +"Multibuild is a set of CI scripts for building and testing " +"Python :term:`wheels ` for Linux, macOS, and (less flexibly) Windows. " +"Also see :ref:`cibuildwheel`." +msgstr "" +"Multibuild ແມ່ນຊຸດສະຄຣິບ CI ສຳລັບສ້າງ ແລະ ທົດສອບ Python wheels ໃນ Linux, macOS ແລະ " +"Windows. ເບິ່ງ :ref:`cibuildwheel` ນຳ." + +#: ../source/key_projects.rst:554 +msgid "nginx_pypi_cache" +msgstr "nginx_pypi_cache" + +#: ../source/key_projects.rst:556 +msgid ":gh:`GitHub `" +msgstr ":gh:`GitHub `" + +#: ../source/key_projects.rst:558 +msgid "" +"nginx_pypi_cache is a :term:`package index ` caching proxy " +"using `nginx `_." +msgstr "nginx_pypi_cache ແມ່ນແຄສຂອງດັດຊະນີແພັກເກດ (caching proxy) ທີ່ໃຊ້ nginx." + +#: ../source/key_projects.rst:564 +msgid "pdm" +msgstr "pdm" + +#: ../source/key_projects.rst:566 +msgid "" +"`Docs `__ | `GitHub `__ | `PyPI `__" +msgstr "" +"`ເອກະສານ `__ | `GitHub `__ | `PyPI `__" + +#: ../source/key_projects.rst:570 +msgid "" +"PDM is a modern Python package manager. It uses :term:`pyproject.toml` to " +"store project metadata as defined in :pep:`621`." +msgstr "" +"PDM ແມ່ນເຄື່ອງມືຈັດການແພັກເກດ Python ຍຸກໃໝ່. ມັນໃຊ້ :term:`pyproject.toml` ເພື່ອເກັບ " +"metadata ຂອງໂປຣເຈັກຕາມ :pep:`621`." + +#: ../source/key_projects.rst:578 +msgid "" +"`Docs `__ | `GitHub `__ | `PyPI `__" +msgstr "" +"`ເອກະສານ `__ | `GitHub `__ | `PyPI `__" + +#: ../source/key_projects.rst:582 +msgid "" +"Pex is a tool for generating :file:`.pex` (Python EXecutable) files, " +"standalone Python environments in the spirit of :ref:`virtualenv`. PEX files " +"are :doc:`zipapps ` that make deployment of Python " +"applications as simple as ``cp``. A single PEX file can support multiple " +"target platforms and can be created from standard :ref:`pip`-resolvable " +"requirements, a lockfile generated with ``pex3 lock ...`` or even another " +"PEX. PEX files can optionally have tools embedded that support turning the " +"PEX file into a standard venv, graphing dependencies and more." +msgstr "" +"Pex ແມ່ນເຄື່ອງມືສ້າງໄຟລ໌ :file:`.pex` (Python EXecutable) ເຊິ່ງເປັນສະພາບແວດລ້ອມ Python " +"ແບບ standalone. ໄຟລ໌ PEX ຊ່ວຍໃຫ້ການເຜີຍແຜ່ແອັບ Python ເຮັດໄດ້ງ່າຍຄືກັບການກ່າຍໄຟລ໌ (cp)." + +#: ../source/key_projects.rst:594 +msgid "pip-tools" +msgstr "pip-tools" + +#: ../source/key_projects.rst:596 +msgid "" +"`Docs `__ | `GitHub `__ | `PyPI `__" +msgstr "" +"`ເອກະສານ `__ | `GitHub `__ | `PyPI `__" + +#: ../source/key_projects.rst:600 +msgid "" +"pip-tools is a suite of tools meant for Python system administrators and " +"release managers who particularly want to keep their builds deterministic " +"yet stay up to date with new versions of their dependencies. Users can " +"specify particular release of their dependencies via hash, conveniently make " +"a properly formatted list of requirements from information in other parts of " +"their program, update all dependencies (a feature :ref:`pip` currently does " +"not provide), and create layers of constraints for the program to obey." +msgstr "" +"pip-tools ແມ່ນຊຸດເຄື່ອງມືສຳລັບຜູ້ດູແລລະບົບ ແລະ ຜູ້ຈັດການການປ່ອຍຊອຟແວ " +"ທີ່ຕ້ອງການໃຫ້ການສ້າງແພັກເກດມີຄວາມຄົງທີ່ (deterministic) ແຕ່ຍັງອັບເດດຢູ່ສະເໝີ." + +#: ../source/key_projects.rst:612 +msgid "pip2pi" +msgstr "pip2pi" + +#: ../source/key_projects.rst:614 +msgid "" +":gh:`GitHub ` | `PyPI `__" +msgstr "" +":gh:`GitHub ` | `PyPI `__" + +#: ../source/key_projects.rst:617 +msgid "" +"pip2pi is a :term:`package index ` server where specific " +"packages are manually synchronised." +msgstr "pip2pi ແມ່ນເຊີບເວີດັດຊະນີແພັກເກດ ບ່ອນທີ່ມີການຊິງໂຄຣໄນແພັກເກດແບບລະບຸເອງ." + +#: ../source/key_projects.rst:623 +msgid "piwheels" +msgstr "piwheels" + +#: ../source/key_projects.rst:625 +msgid "" +"`Website `__ | :doc:`Docs ` | " +"`GitHub `__" +msgstr "" +"`ເວັບໄຊ `__ | :doc:`ເອກະສານ ` | " +"`GitHub `__" + +#: ../source/key_projects.rst:629 +msgid "" +"piwheels is a website, and software underpinning it, that fetches source " +"code distribution packages from PyPI and compiles them into binary wheels " +"that are optimized for installation onto Raspberry Pi computers. Raspberry " +"Pi OS pre-configures pip to use piwheels.org as an additional index to PyPI." +msgstr "" +"piwheels ແມ່ນເວັບໄຊທີ່ສ້າງ binary wheels ເພື່ອໃຫ້ຕິດຕັ້ງໃນ Raspberry Pi ໄດ້ຢ່າງມີປະສິດທິພາບ." + +#: ../source/key_projects.rst:638 +msgid "poetry" +msgstr "poetry" + +#: ../source/key_projects.rst:640 +msgid "" +"`Docs `__ | `GitHub `__ | `PyPI `__" +msgstr "" +"`ເອກະສານ `__ | `GitHub `__ | `PyPI `__" + +#: ../source/key_projects.rst:644 +msgid "" +"poetry is a command-line tool to handle dependency installation and " +"isolation as well as building and packaging of Python packages. It uses " +"``pyproject.toml`` and, instead of depending on the resolver functionality " +"within :ref:`pip`, provides its own dependency resolver. It attempts to " +"speed users' experience of installation and dependency resolution by locally " +"caching metadata about dependencies." +msgstr "" +"poetry ແມ່ນເຄື່ອງມື command-line ສຳລັບຈັດການສ່ວນປະກອບທີ່ຈຳເປັນ, ການແຍກສ່ວນ ລວມເຖິງການສ້າງ " +"ແລະ ການຫຸ້ມຫໍ່ແພັກເກດ Python ໂດຍໃຊ້ ``pyproject.toml``." + +#: ../source/key_projects.rst:654 +msgid "proxpi" +msgstr "proxpi" + +#: ../source/key_projects.rst:656 +msgid "" +":gh:`GitHub ` | `PyPI `__" +msgstr "" +":gh:`GitHub ` | `PyPI `__" + +#: ../source/key_projects.rst:659 +msgid "" +"proxpi is a simple :term:`package index ` which proxies PyPI " +"and other indexes with caching." +msgstr "proxpi ແມ່ນດັດຊະນີແພັກເກດແບບງ່າຍໆ ທີ່ເຮັດໜ້າທີ່ເປັນ proxy ໃຫ້ PyPI ພ້ອມລະບົບແຄສ." + +#: ../source/key_projects.rst:665 +msgid "Pulp-python" +msgstr "Pulp-python" + +#: ../source/key_projects.rst:667 +msgid "" +"`Docs `__ | :gh:`GitHub ` | `PyPI `__" +msgstr "" +"`ເອກະສານ `__ | :gh:`GitHub ` | `PyPI `__" + +#: ../source/key_projects.rst:671 +msgid "" +"Pulp-python is the Python :term:`package index ` plugin for " +"`Pulp `_. Pulp-python supports mirrors backed by " +"local or `AWS S3`_, package upload, and proxying to multiple package indexes." +msgstr "" +"Pulp-python ແມ່ນປລັກອິນດັດຊະນີແພັກເກດ Python ສຳລັບ Pulp. ມັນຮອງຮັບການເຮັດ mirror ທັງແບບ " +"local ແລະ AWS S3." + +#: ../source/key_projects.rst:679 +msgid "PyPI Cloud" +msgstr "PyPI Cloud" + +#: ../source/key_projects.rst:681 +msgid "" +"`Docs `__ | :gh:`GitHub ` | `PyPI `__" +msgstr "" +"`ເອກະສານ `__ | :gh:`GitHub ` | `PyPI `__" + +#: ../source/key_projects.rst:687 +msgid "" +"PyPI Cloud is a :term:`package index ` server, backed by `AWS " +"S3`_ or another cloud storage service, or local files. PyPI Cloud supports " +"redirect/cached proxying for PyPI, as well as authentication and " +"authorisation." +msgstr "" +"PyPI Cloud ແມ່ນເຊີບເວີດັດຊະນີແພັກເກດ ທີ່ເກັບຂໍ້ມູນໄວ້ໃນ Cloud ເຊັ່ນ AWS S3 ຫຼື ໃນເຄື່ອງເອງ." + +#: ../source/key_projects.rst:695 +msgid "pypiprivate" +msgstr "pypiprivate" + +#: ../source/key_projects.rst:697 +msgid "" +":gh:`GitHub ` | `PyPI `__" +msgstr "" +":gh:`GitHub ` | `PyPI `__" + +#: ../source/key_projects.rst:700 +msgid "" +"pypiprivate serves a local (or `AWS S3`_-hosted) directory of packages as " +"a :term:`package index `." +msgstr "pypiprivate ໃຫ້ບໍລິການແພັກເກດຈາກໂຟນເດີໃນເຄື່ອງ (ຫຼື AWS S3) ໃນຮູບແບບດັດຊະນີແພັກເກດ." + +#: ../source/key_projects.rst:706 +msgid "pypiserver" +msgstr "pypiserver" + +#: ../source/key_projects.rst:708 +msgid "" +"`GitHub `__ | `PyPI `__" +msgstr "" +"`GitHub `__ | `PyPI `__" + +#: ../source/key_projects.rst:711 +msgid "" +"pypiserver is a minimalist application that serves as a private " +"Python :term:`package index ` (from a local directory) within " +"organizations, implementing a simple API and browser interface. You can " +"upload private packages using standard upload tools, and users can download " +"and install them with :ref:`pip`, without publishing them publicly. " +"Organizations who use pypiserver usually download packages both from " +"pypiserver and from PyPI." +msgstr "" +"pypiserver ແມ່ນແອັບພລິເຄຊັນຂະໜາດນ້ອຍ ສຳລັບໃຊ້ເປັນດັດຊະນີແພັກເກດ Python ພາຍໃນອົງກອນ." + +#: ../source/key_projects.rst:722 +msgid "PyScaffold" +msgstr "PyScaffold" + +#: ../source/key_projects.rst:724 +msgid "" +"`Docs `__ | `GitHub `__ | `PyPI `__" +msgstr "" +"`ເອກະສານ `__ | `GitHub `__ | `PyPI `__" + +#: ../source/key_projects.rst:728 +msgid "" +"PyScaffold is a project generator for bootstrapping Python packages, ready " +"to be shared on PyPI and installable via :ref:`pip`. It relies on a set of " +"sane default configurations for established tools (such " +"as :ref:`setuptools`, pytest_ and Sphinx_) to provide a productive " +"environment so developers can start coding right away. PyScaffold can also " +"be used with existing projects to make packaging easier." +msgstr "PyScaffold ແມ່ນເຄື່ອງມືສ້າງໂຄງຮ່າງໂປຣເຈັກ Python ເພື່ອໃຫ້ພ້ອມແບ່ງປັນໃນ PyPI ໄດ້ທັນທີ." + +#: ../source/key_projects.rst:739 +msgid "pywharf" +msgstr "pywharf" + +#: ../source/key_projects.rst:741 +msgid "" +":gh:`GitHub ` | `PyPI `__" +msgstr "" +":gh:`GitHub ` | `PyPI `__" + +#: ../source/key_projects.rst:746 +msgid "" +"pywharf is a :term:`package index ` server, serving files " +"locally or from `GitHub `_." +msgstr "pywharf ແມ່ນເຊີບເວີດັດຊະນີແພັກເກດ ທີ່ໃຫ້ບໍລິການໄຟລ໌ຈາກໃນເຄື່ອງ ຫຼື ຈາກ GitHub." + +#: ../source/key_projects.rst:752 +msgid "scikit-build" +msgstr "scikit-build" + +#: ../source/key_projects.rst:754 +msgid "" +"`Docs `__ | `GitHub `__ | `PyPI `__" +msgstr "" +"`ເອກະສານ `__ | `GitHub " +"`__ | `PyPI `__" + +#: ../source/key_projects.rst:758 +msgid "" +"Scikit-build is a :ref:`setuptools` wrapper for CPython that builds C/C++/" +"Fortran/Cython extensions It uses `cmake `__ " +"(available on PyPI) to provide better support for additional compilers, " +"build systems, cross compilation, and locating dependencies and their " +"associated build requirements. To speed up and parallelize the build of " +"large projects, the user can install `ninja `__ (also available on PyPI)." +msgstr "" +"Scikit-build ແມ່ນຕົວຫຸ້ມ (wrapper) ຂອງ :ref:`setuptools` ສຳລັບສ້າງ extensions " +"ທີ່ຂຽນດ້ວຍ C/C++/Fortran." + +#: ../source/key_projects.rst:769 +msgid "scikit-build-core" +msgstr "scikit-build-core" + +#: ../source/key_projects.rst:771 +msgid "" +"`Docs `__ | `GitHub " +"`__ | `PyPI `__" +msgstr "" +"`ເອກະສານ `__ | `GitHub " +"`__ | `PyPI `__" + +#: ../source/key_projects.rst:775 +msgid "" +"Scikit-build-core is a build backend for CPython C/C++/Fortran/Cython " +"extensions. It enables users to write extensions with `cmake `__ (available on PyPI) to provide better support for " +"additional compilers, build systems, cross compilation, and locating " +"dependencies and their associated build requirements. CMake/Ninja are " +"automatically downloaded from PyPI if not available on the system." +msgstr "Scikit-build-core ແມ່ນ build backend ສຳລັບ extensions ຂອງ CPython." + +#: ../source/key_projects.rst:785 +msgid "shiv" +msgstr "shiv" + +#: ../source/key_projects.rst:787 +msgid "" +"`Docs `__ | `GitHub `__ | `PyPI `__" +msgstr "" +"`ເອກະສານ `__ | `GitHub `__ | `PyPI `__" + +#: ../source/key_projects.rst:791 +msgid "" +"shiv is a command line utility for building fully self contained Python " +"zipapps as outlined in :pep:`441`, but with all their dependencies included. " +"Its primary goal is making distributing Python applications and command line " +"tools fast & easy." +msgstr "shiv ແມ່ນເຄື່ອງມືສ້າງ Python zipapps ທີ່ລວມທັງໝົດໄວ້ໃນໄຟລ໌ດຽວ ຕາມ :pep:`441`." + +#: ../source/key_projects.rst:799 +msgid "simpleindex" +msgstr "simpleindex" + +#: ../source/key_projects.rst:801 +msgid "" +":gh:`GitHub ` | `PyPI `__" +msgstr "" +":gh:`GitHub ` | `PyPI `__" + +#: ../source/key_projects.rst:804 +msgid "" +"simpleindex is a :term:`package index ` which routes URLs to " +"multiple package indexes (including PyPI), serves local (or cloud-hosted, " +"for example `AWS S3`_, with a custom plugin) directories of packages, and " +"supports custom plugins." +msgstr "simpleindex ແມ່ນດັດຊະນີແພັກເກດ ທີ່ຊ່ວຍສົ່ງຕໍ່ URL ໄປຍັງດັດຊະນີຫຼາຍໆແຫຼ່ງ." + +#: ../source/key_projects.rst:814 +msgid "" +":doc:`Docs ` | `GitHub `__ | " +"`Paper `__ | `Slides `__" +msgstr "" +":doc:`ເອກະສານ ` | `GitHub `__ | " +"`ບົດຄວາມ `__ | `ສະໄລ້ `__" + +#: ../source/key_projects.rst:819 +msgid "" +"A flexible package manager designed to support multiple versions, " +"configurations, platforms, and compilers. Spack is like Homebrew, but " +"packages are written in Python and parameterized to allow easy swapping of " +"compilers, library versions, build options, etc. Arbitrarily many versions " +"of packages can coexist on the same system. Spack was designed for rapidly " +"building high performance scientific applications on clusters and " +"supercomputers." +msgstr "Spack ແມ່ນເຄື່ອງມືຈັດການແພັກເກດທີ່ຢືດຢຸ່ນ ຖືກອອກແບບມາສຳລັບຊອຟແວວິທະຍາສາດ." + +#: ../source/key_projects.rst:827 +msgid "" +"Spack is not in PyPI (yet), but it requires no installation and can be used " +"immediately after cloning from GitHub." +msgstr "Spack ຍັງບໍ່ມີໃນ PyPI, ແຕ່ສາມາດໃຊ້ໄດ້ທັນທີຫຼັງຈາກ clone ຈາກ GitHub." + +#: ../source/key_projects.rst:833 +msgid "uv" +msgstr "uv" + +#: ../source/key_projects.rst:835 +msgid "" +"`Docs `__ | `GitHub `__ | `PyPI `__" +msgstr "" +"`ເອກະສານ `__ | `GitHub `__ | `PyPI `__" + +#: ../source/key_projects.rst:839 +msgid "" +"A Python package and project manager, written in Rust for high performance. " +"It supports creating and managing virtual environments, installing packages, " +"locking dependencies, and managing Python versions and projects." +msgstr "ເຄື່ອງມືຈັດການແພັກເກດ ແລະ ໂປຣເຈັກ Python ທີ່ຂຽນດ້ວຍ Rust ເພື່ອປະສິດທິພາບສູງ." + +#: ../source/key_projects.rst:846 +msgid "zest.releaser" +msgstr "zest.releaser" + +#: ../source/key_projects.rst:848 +msgid "" +"`Docs `__ | `GitHub `__ | `PyPI `__" +msgstr "" +"`ເອກະສານ `__ | `GitHub " +"`__ | `PyPI `__" + +#: ../source/key_projects.rst:852 +msgid "" +"``zest.releaser`` is a Python package release tool providing an abstraction " +"layer on top of :ref:`twine`. Python developers use ``zest.releaser`` to " +"automate incrementing package version numbers, updating changelogs, tagging " +"releases in source control, and uploading new packages to PyPI." +msgstr "``zest.releaser`` ແມ່ນເຄື່ອງມືຊ່ວຍໃນການປ່ອຍແພັກເກດ Python ແບບອັດຕະໂນມັດ." + +#: ../source/key_projects.rst:859 +msgid "Standard Library Projects" +msgstr "ໂປຣເຈັກໃນ Standard Library" + +#: ../source/key_projects.rst:864 +msgid "ensurepip" +msgstr "ensurepip" + +#: ../source/key_projects.rst:866 +msgid "" +"`Docs `__ | `Issues " +"`__" +msgstr "" +"`ເອກະສານ `__ | `ແຈ້ງບັນຫາ " +"`__" + +#: ../source/key_projects.rst:869 +msgid "" +"A package in the Python Standard Library that provides support for " +"bootstrapping :ref:`pip` into an existing Python installation or virtual " +"environment. In most cases, end users won't use this module, but rather it " +"will be used during the build of the Python distribution." +msgstr "ແພັກເກດໃນ Standard Library ທີ່ຊ່ວຍຕິດຕັ້ງ :ref:`pip` ເຂົ້າໃນ Python." + +#: ../source/key_projects.rst:877 +msgid "http.server" +msgstr "http.server" + +#: ../source/key_projects.rst:879 +msgid "" +":doc:`Docs ` | :gh:`Issues `" +msgstr "" +":doc:`ເອກະສານ ` | :gh:`ແຈ້ງບັນຫາ `" + +#: ../source/key_projects.rst:882 +msgid "" +"A package and command-line interface which can host a directory as a " +"website, for example as a :term:`package index ` " +"(see :ref:`Hosting your Own Simple Repository`)." +msgstr "ແພັກເກດ ແລະ CLI ທີ່ສາມາດເປີດໂຟນເດີໃຫ້ເປັນເວັບໄຊ ເພື່ອໃຊ້ເປັນດັດຊະນີແພັກເກດໄດ້." + +#: ../source/key_projects.rst:889 +msgid "venv" +msgstr "venv" + +#: ../source/key_projects.rst:891 +msgid "" +"`Docs `__ | `Issues `__" +msgstr "" +"`ເອກະສານ `__ | `ແຈ້ງບັນຫາ " +"`__" + +#: ../source/key_projects.rst:894 +msgid "" +"A package in the Python Standard Library (starting with Python 3.3) for " +"creating :term:`Virtual Environments `. For more " +"information, see the section on :ref:`Creating and using Virtual " +"Environments`." +msgstr "" +"ແພັກເກດໃນ Standard Library ສຳລັບສ້າງ :term:`Virtual Environments `." + +#: ../source/news.rst:2 +msgid "News" +msgstr "ຂ່າວສານ" + +#: ../source/news.rst:4 +msgid "" +"This document is not currently updated. Previously, the document highlighted " +"changes in Python packaging." +msgstr "ເອກະສານນີ້ບໍ່ໄດ້ຮັບການອັບເດດໃນຕອນນີ້." + +#: ../source/news.rst:9 +msgid "September 2019" +msgstr "ກັນຍາ 2019" + +#: ../source/news.rst:10 +msgid "Added a guide about publishing dists via GitHub Actions. (:pr:`647`)" +msgstr "ເພີ່ມຄຳແນະນຳກ່ຽວກັບການເຜີຍແຜ່ dists ຜ່ານ GitHub Actions. (:pr:`647`)" + +#: ../source/news.rst:13 +msgid "August 2019" +msgstr "ສິງຫາ 2019" + +#: ../source/news.rst:14 +msgid "Updated to use :file:`python3 -m` when installing pipx. (:pr:`631`)" +msgstr "ອັບເດດໃຫ້ໃຊ້ :file:`python3 -m` ເມື່ອຕິດຕັ້ງ pipx. (:pr:`631`)" + +#: ../source/news.rst:17 +msgid "July 2019" +msgstr "ກໍລະກົດ 2019" + +#: ../source/news.rst:18 +msgid "Marked all PEP numbers with the :pep: role. (:pr:`629`)" +msgstr "ໝາຍເລກ PEP ທັງໝົດດ້ວຍ :pep: role. (:pr:`629`)" + +#: ../source/news.rst:19 +msgid "Upgraded Sphinx version and removed pypa.io intersphinx. (:pr:`625`)" +msgstr "ອັບເກຣດເວີຊັນ Sphinx ແລະ ຖອນ pypa.io intersphinx ອອກ. (:pr:`625`)" + +#: ../source/news.rst:20 +msgid "Mentioned :file:`find_namespace_packages`. (:pr:`622`)" +msgstr "ກ່າວເຖິງ :file:`find_namespace_packages`. (:pr:`622`)" + +#: ../source/news.rst:21 +msgid "Updated directory layout examples for consistency. (:pr:`611`)" +msgstr "ອັບເດດຕົວຢ່າງໂຄງສ້າງໂຟນເດີເພື່ອຄວາມຄົງທີ່. (:pr:`611`)" + +#: ../source/news.rst:22 +msgid "Updated Bandersnatch link to GitHub. (:pr:`623`)" +msgstr "ອັບເດດລິ້ງ Bandersnatch ໄປ GitHub. (:pr:`623`)" + +#: ../source/news.rst:25 +msgid "June 2019" +msgstr "ມິຖຸນາ 2019" + +#: ../source/news.rst:26 +msgid "Fixed some typos. (:pr:`620`)" +msgstr "ແກ້ໄຂຄຳຜິດບາງບ່ອນ. (:pr:`620`)" + +#: ../source/news.rst:29 +msgid "May 2019" +msgstr "ພຶດສະພາ 2019" + +#: ../source/news.rst:30 +msgid "Added :file:`python_requires` usage to packaging tutorial. (:pr:`613`)" +msgstr "ເພີ່ມການໃຊ້ :file:`python_requires` ໃນບົດຮຽນການສ້າງແພັກເກດ. (:pr:`613`)" + +#: ../source/news.rst:31 +msgid "Added a MANIFEST.in guide page. (:pr:`609`)" +msgstr "ເພີ່ມໜ້າຄຳແນະນຳ MANIFEST.in. (:pr:`609`)" + +#: ../source/news.rst:34 +msgid "April 2019" +msgstr "ເມສາ 2019" + +#: ../source/news.rst:35 +msgid "" +"Added a mention for :file:`shiv` in the key projects section. (:pr:`608`)" +msgstr "ເພີ່ມການກ່າວເຖິງ :file:`shiv` ໃນສ່ວນໂປຣເຈັກສຳຄັນ. (:pr:`608`)" + +#: ../source/news.rst:36 +msgid "Reduced emphasis on virtualenv. (:pr:`606`)" +msgstr "ຫຼຸດການເນັ້ນໜັກເລື່ອງ virtualenv ລົງ. (:pr:`606`)" + +#: ../source/news.rst:39 +msgid "March 2019" +msgstr "ມີນາ 2019" + +#: ../source/news.rst:40 +msgid "Moved single-sourcing guide version option to Python 3. (:pr:`605`)" +msgstr "ຍ້າຍຕົວເລືອກເວີຊັນໃນຄຳແນະນຳ single-sourcing ໄປເປັນ Python 3. (:pr:`605`)" + +#: ../source/news.rst:41 +msgid "Covered RTD details for contributing. (:pr:`600`)" +msgstr "ເພີ່ມລາຍລະອຽດ RTD ສຳລັບການມີສ່ວນຮ່ວມ. (:pr:`600`)" + +#: ../source/news.rst:44 +msgid "February 2019" +msgstr "ກຸມພາ 2019" + +#: ../source/news.rst:45 +msgid "" +"Elaborate upon the differences between the tutorial and the real packaging " +"process. (:pr:`602`)" +msgstr "" +"ອະທິບາຍເພີ່ມເຕີມກ່ຽວກັບຄວາມແຕກຕ່າງລະຫວ່າງບົດຮຽນ ແລະ ຂັ້ນຕອນການສ້າງແພັກເກດແທ້. (:pr:`602`)" + +#: ../source/news.rst:46 +msgid "Added instructions to install Python CLI applications. (:pr:`594`)" +msgstr "ເພີ່ມຄຳແນະນຳໃນການຕິດຕັ້ງແອັບພລິເຄຊັນ Python CLI. (:pr:`594`)" + +#: ../source/news.rst:49 +msgid "January 2019" +msgstr "ມັງກອນ 2019" + +#: ../source/news.rst:50 +msgid "Added :file:`--no-deps` to the packaging tutorial. (:pr:`593`)" +msgstr "ເພີ່ມ :file:`--no-deps` ໃນບົດຮຽນການສ້າງແພັກເກດ. (:pr:`593`)" + +#: ../source/news.rst:51 +msgid "Updated Sphinx and Nox. (:pr:`591`)" +msgstr "ອັບເດດ Sphinx ແລະ Nox. (:pr:`591`)" + +#: ../source/news.rst:52 +msgid "Referenced Twine from Python3. (:pr:`581`)" +msgstr "ອ້າງອີງ Twine ຈາກ Python3. (:pr:`581`)" + +#: ../source/news.rst:55 +msgid "December 2018" +msgstr "ທັນວາ 2018" + +#: ../source/news.rst:56 +msgid "No programmers in the office!" +msgstr "ບໍ່ມີໂປຣແກຣມເມີຢູ່ໃນຫ້ອງການ!" + +#: ../source/news.rst:59 +msgid "November 2018" +msgstr "ພະຈິກ 2018" + +#: ../source/news.rst:60 +msgid "Removed landing page link to PyPI migration guide. (:pr:`575`)" +msgstr "ຖອນລິ້ງຄຳແນະນຳການຍ້າຍໄປ PyPI ອອກຈາກໜ້າຫຼັກ. (:pr:`575`)" + +#: ../source/news.rst:61 +msgid "Changed bumpversion to bump2version. (:pr:`572`)" +msgstr "ປ່ຽນຈາກ bumpversion ເປັນ bump2version. (:pr:`572`)" + +#: ../source/news.rst:62 +msgid "Added single-sourcing package version example. (:pr:`573`)" +msgstr "ເພີ່ມຕົວຢ່າງເວີຊັນແພັກເກດແບບ single-sourcing. (:pr:`573`)" + +#: ../source/news.rst:63 +msgid "Added a guide for creating documentation. (:pr:`568`)" +msgstr "ເພີ່ມຄຳແນະນຳສຳລັບການສ້າງເອກະສານອະທິບາຍ. (:pr:`568`)" + +#: ../source/news.rst:66 +msgid "October 2018" +msgstr "ຕຸລາ 2018" + +#: ../source/news.rst:67 +msgid "Updated Nox package name. (:pr:`566`)" +msgstr "ອັບເດດຊື່ແພັກເກດ Nox. (:pr:`566`)" + +#: ../source/news.rst:68 +msgid "Mentioned Sphinx extensions in guides. (:pr:`562`)" +msgstr "ກ່າວເຖິງສ່ວນເສີມ Sphinx ໃນຄຳແນະນຳ. (:pr:`562`)" + +#: ../source/news.rst:71 +msgid "September 2018" +msgstr "ກັນຍາ 2018" + +#: ../source/news.rst:72 +msgid "Added a section on checking RST markup. (:pr:`554`)" +msgstr "ເພີ່ມສ່ວນການກວດສອບ RST markup. (:pr:`554`)" + +#: ../source/news.rst:73 +msgid "Updated user installs page. (:pr:`558`)" +msgstr "ອັບເດດໜ້າການຕິດຕັ້ງສຳລັບຜູ້ໃຊ້. (:pr:`558`)" + +#: ../source/news.rst:74 +msgid "Updated Google BigQuery urls. (:pr:`556`)" +msgstr "ອັບເດດ URL ຂອງ Google BigQuery. (:pr:`556`)" + +#: ../source/news.rst:75 +msgid "Replaced tar command with working command. (:pr:`552`)" +msgstr "ປ່ຽນຄຳສັ່ງ tar ດ້ວຍຄຳສັ່ງທີ່ໃຊ້ວຽກໄດ້ແທ້. (:pr:`552`)" + +#: ../source/news.rst:76 +msgid "" +"Changed to double quotes in the pip install SomeProject==1.4. (:pr:`550`)" +msgstr "ປ່ຽນເປັນອັນຍະປະກາດຄູ່ໃນ pip install SomeProject==1.4. (:pr:`550`)" + +#: ../source/news.rst:79 +msgid "August 2018" +msgstr "ສິງຫາ 2018" + +#: ../source/news.rst:80 +msgid "Removed the recommendation to store passwords in cleartext. (:pr:`546`)" +msgstr "ຖອນຄຳແນະນຳເລື່ອງການເກັບລະຫັດຜ່ານແບບຂໍ້ຄວາມທຳມະດາອອກ. (:pr:`546`)" + +#: ../source/news.rst:81 +msgid "" +"Moved the Overview to a task based lead in along with the others. (:pr:`540`)" +msgstr "ຍ້າຍສ່ວນພາບລວມໄປລວມກັບສ່ວນອື່ນໆຕາມລັກສະນະວຽກ. (:pr:`540`)" + +#: ../source/news.rst:82 +msgid "Updated Python version supported by virtualenv. (:pr:`538`)" +msgstr "ອັບເດດເວີຊັນ Python ທີ່ຮອງຮັບໂດຍ virtualenv. (:pr:`538`)" + +#: ../source/news.rst:83 +msgid "Added outline/rough draft of new Overview page. (:pr:`519`)" +msgstr "ເພີ່ມໂຄງຮ່າງ/ຮ່າງທຳອິດຂອງໜ້າພາບລວມໃໝ່. (:pr:`519`)" + +#: ../source/news.rst:86 +msgid "July 2018" +msgstr "ກໍລະກົດ 2018" + +#: ../source/news.rst:88 +msgid "Improved binary extension docs. (:pr:`531`)" +msgstr "ປັບປຸງເອກະສານ binary extension. (:pr:`531`)" + +#: ../source/news.rst:89 +msgid "Added scikit-build to key projects. (:pr:`530`)" +msgstr "ເພີ່ມ scikit-build ເຂົ້າໃນໂປຣເຈັກສຳຄັນ. (:pr:`530`)" + +#: ../source/news.rst:92 +msgid "June 2018" +msgstr "ມິຖຸນາ 2018" + +#: ../source/news.rst:94 +msgid "Fixed categories of interop PEP for pypa.io. (:pr:`527`)" +msgstr "ແກ້ໄຂໝວດໝູ່ຂອງ interop PEP ສຳລັບ pypa.io. (:pr:`527`)" + +#: ../source/news.rst:95 +msgid "Updated Markdown descriptions explanation. (:pr:`522`)" +msgstr "ອັບເດດຄຳອະທິບາຍກ່ຽວກັບ Markdown. (:pr:`522`)" + +#: ../source/news.rst:98 +msgid "May 2018" +msgstr "ພຶດສະພາ 2018" + +#: ../source/news.rst:100 +msgid "Noted issues with Provides-Dist and Obsoletes-Dist. (:pr:`513`)" +msgstr "ໝາຍເຫດບັນຫາກ່ຽວກັບ Provides-Dist ແລະ Obsoletes-Dist. (:pr:`513`)" + +#: ../source/news.rst:101 +msgid "" +"Removed outdated warning about Python version mixing with Pipenv. (:pr:`501`)" +msgstr "ຖອນຄຳເຕືອນທີ່ລ້າສະໄໝເລື່ອງການປະສົມເວີຊັນ Python ກັບ Pipenv ອອກ. (:pr:`501`)" + +#: ../source/news.rst:102 +msgid "Simplified packaging tutorial. (:pr:`498`)" +msgstr "ເຮັດໃຫ້ບົດຮຽນການສ້າງແພັກເກດເຂົ້າໃຈງ່າຍຂຶ້ນ. (:pr:`498`)" + +#: ../source/news.rst:103 +msgid "Updated Windows users instructions for clarity. (:pr:`493`)" +msgstr "ອັບເດດຄຳແນະນຳສຳລັບຜູ້ໃຊ້ Windows ໃຫ້ຊັດເຈນຂຶ້ນ. (:pr:`493`)" + +#: ../source/news.rst:104 +msgid "Updated the license section description for completeness. (:pr:`492`)" +msgstr "ອັບເດດຄຳອະທິບາຍສ່ວນໃບອະນຸຍາດໃຫ້ສົມບູນຂຶ້ນ. (:pr:`492`)" + +#: ../source/news.rst:105 +msgid "Added specification-style document to contributing section. (:pr:`489`)" +msgstr "ເພີ່ມເອກະສານຮູບແບບຂໍ້ກຳນົດໃນສ່ວນການມີສ່ວນຮ່ວມ. (:pr:`489`)" + +#: ../source/news.rst:106 +msgid "Added documentation types to contributing guide. (:pr:`485`)" +msgstr "ເພີ່ມປະເພດເອກະສານໃນຄຳແນະນຳການມີສ່ວນຮ່ວມ. (:pr:`485`)" + +#: ../source/news.rst:109 +msgid "April 2018" +msgstr "ເມສາ 2018" + +#: ../source/news.rst:111 +msgid "Added README guide. (:pr:`461`)" +msgstr "ເພີ່ມຄຳແນະນຳ README. (:pr:`461`)" + +#: ../source/news.rst:112 +msgid "Updated instructions and status for PyPI launch. (:pr:`475`)" +msgstr "ອັບເດດຄຳແນະນຳ ແລະ ສະຖານະສຳລັບການເປີດຕົວ PyPI. (:pr:`475`)" + +#: ../source/news.rst:113 +msgid "Added instructions for Warehouse. (:pr:`471`)" +msgstr "ເພີ່ມຄຳແນະນຳສຳລັບ Warehouse. (:pr:`471`)" + +#: ../source/news.rst:114 +msgid "Removed GPG references from publishing tutorial. (:pr:`466`)" +msgstr "ຖອນການອ້າງອີງ GPG ອອກຈາກບົດຮຽນການເຜີຍແຜ່. (:pr:`466`)" + +#: ../source/news.rst:115 +msgid "Added 'What’s in which Python 3.4–3.6?'. (:pr:`468`)" +msgstr "ເພີ່ມ 'ມີຫຍັງໃໝ່ໃນ Python 3.4–3.6?'. (:pr:`468`)" + +#: ../source/news.rst:116 +msgid "Added a guide for phasing out Python versions. (:pr:`459`)" +msgstr "ເພີ່ມຄຳແນະນຳການຍົກເລີກເວີຊັນ Python ເກົ່າ. (:pr:`459`)" + +#: ../source/news.rst:117 +msgid "Made default Description-Content-Type variant GFM. (:pr:`462`)" +msgstr "ກຳນົດໃຫ້ Description-Content-Type ເປັນ GFM ໂດຍມາດຕະຖານ. (:pr:`462`)" + +#: ../source/news.rst:120 +msgid "March 2018" +msgstr "ມີນາ 2018" + +#: ../source/news.rst:122 +msgid "Updated \"installing scientific packages\". (:pr:`455`)" +msgstr "ອັບເດດສ່ວນ \"ການຕິດຕັ້ງແພັກເກດທາງວິທະຍາສາດ\". (:pr:`455`)" + +#: ../source/news.rst:123 +msgid "" +"Added :file:`long_description_content_type` to follow PEP 556. (:pr:`457`)" +msgstr "ເພີ່ມ :file:`long_description_content_type` ຕາມ PEP 556. (:pr:`457`)" + +#: ../source/news.rst:124 +msgid "Clarified a long description classifier on pypi.org. (:pr:`456`)" +msgstr "" +"ປັບປຸງຄຳອະທິບາຍ long description classifier ໃນ pypi.org ໃຫ້ຊັດເຈນ. (:pr:`456`)" + +#: ../source/news.rst:125 +msgid "Updated Core Metadata spec to follow PEP 556. (:pr:`412`)" +msgstr "ອັບເດດຂໍ້ກຳນົດ Core Metadata ຕາມ PEP 556. (:pr:`412`)" + +#: ../source/news.rst:128 +msgid "February 2018" +msgstr "ກຸມພາ 2018" + +#: ../source/news.rst:130 +msgid "" +"Added python3-venv and python3-pip to Debian installation instructions. " +"(:pr:`445`)" +msgstr "" +"ເພີ່ມ python3-venv ແລະ python3-pip ໃນຄຳແນະນຳການຕິດຕັ້ງສຳລັບ Debian. (:pr:`445`)" + +#: ../source/news.rst:131 +msgid "Updated PyPI migration info. (:pr:`439`)" +msgstr "ອັບເດດຂໍ້ມູນການຍ້າຍໄປ PyPI. (:pr:`439`)" + +#: ../source/news.rst:132 +msgid "" +"Added a warning about managing multiple versions with pipenv. (:pr:`430`)" +msgstr "ເພີ່ມຄຳເຕືອນກ່ຽວກັບການຈັດການຫຼາຍເວີຊັນດ້ວຍ pipenv. (:pr:`430`)" + +#: ../source/news.rst:133 +msgid "Added example of multiple emails to Core Metadata. (:pr:`429`)" +msgstr "ເພີ່ມຕົວຢ່າງການໃຊ້ຫຼາຍອີເມວໃນ Core Metadata. (:pr:`429`)" + +#: ../source/news.rst:134 +msgid "Added explanation of \"legacy\" in test.pypi.org/legacy. (:pr:`426`)" +msgstr "ເພີ່ມຄຳອະທິບາຍຂອງ \"legacy\" ໃນ test.pypi.org/legacy. (:pr:`426`)" + +#: ../source/news.rst:137 +msgid "January 2018" +msgstr "ມັງກອນ 2018" + +#: ../source/news.rst:139 +msgid "Added a link to PyPI's list of classifiers. (:pr:`425`)" +msgstr "ເພີ່ມລິ້ງໄປຫາລາຍການ classifiers ຂອງ PyPI. (:pr:`425`)" + +#: ../source/news.rst:140 +msgid "Updated README.rst explanation. (:pr:`419`)" +msgstr "ອັບເດດຄຳອະທິບາຍ README.rst. (:pr:`419`)" + +#: ../source/news.rst:143 +msgid "December 2017" +msgstr "ທັນວາ 2017" + +#: ../source/news.rst:145 +msgid "" +"Replaced :file:`~` with :file:`$HOME` in guides and tutorials. (:pr:`418`)" +msgstr "ປ່ຽນ :file:`~` ເປັນ :file:`$HOME` ໃນທຸກຄຳແນະນຳ. (:pr:`418`)" + +#: ../source/news.rst:146 +msgid "Noted which fields can be used with environment markers. (:pr:`416`)" +msgstr "ລະບຸຟິລທີ່ສາມາດໃຊ້ກັບ environment markers ໄດ້. (:pr:`416`)" + +#: ../source/news.rst:147 +msgid "Updated Requires-Python section. (:pr:`414`)" +msgstr "ອັບເດດສ່ວນ Requires-Python. (:pr:`414`)" + +#: ../source/news.rst:148 +msgid "Added news page. (:pr:`404`)" +msgstr "ເພີ່ມໜ້າຂ່າວສານ. (:pr:`404`)" + +#: ../source/news.rst:151 +msgid "November 2017" +msgstr "ພະຈິກ 2017" + +#: ../source/news.rst:153 +msgid "" +"Introduced a new dependency management tutorial based on Pipenv. (:pr:`402`)" +msgstr "ເພີ່ມບົດຮຽນການຈັດການສ່ວນປະກອບທີ່ຈຳເປັນດ້ວຍ Pipenv. (:pr:`402`)" + +#: ../source/news.rst:154 +msgid "" +"Updated the *Single Sourcing Package Version* tutorial to reflect pip's " +"current strategy. (:pr:`400`)" +msgstr "" +"ອັບເດດບົດຮຽນ *Single Sourcing Package Version* ໃຫ້ກົງກັບວິທີການຂອງ pip. (:pr:`400`)" + +#: ../source/news.rst:156 +msgid "" +"Added documentation about the ``py_modules`` argument to ``setup``. " +"(:pr:`398`)" +msgstr "ເພີ່ມເອກະສານກ່ຽວກັບ ``py_modules`` ໃນ ``setup``. (:pr:`398`)" + +#: ../source/news.rst:157 +msgid "Simplified the wording for the :file:`manifest.in` section. (:pr:`395`)" +msgstr "ປັບປຸງຂໍ້ຄວາມໃນສ່ວນ :file:`manifest.in` ໃຫ້ເຂົ້າໃຈງ່າຍຂຶ້ນ. (:pr:`395`)" + +#: ../source/news.rst:160 +msgid "October 2017" +msgstr "ຕຸລາ 2017" + +#: ../source/news.rst:162 +msgid "" +"Added a specification for the :file:`entry_points.txt` file. (:pr:`398`)" +msgstr "ເພີ່ມຂໍ້ກຳນົດສຳລັບໄຟລ໌ :file:`entry_points.txt`. (:pr:`398`)" + +#: ../source/news.rst:163 +msgid "" +"Created a new guide for managing packages using ``pip`` and ``virtualenv``. " +"(:pr:`385`)" +msgstr "" +"ສ້າງຄຳແນະນຳໃໝ່ສຳລັບການຈັດການແພັກເກດດ້ວຍ ``pip`` ແລະ ``virtualenv``. (:pr:`385`)" + +#: ../source/news.rst:164 +msgid "Split the specifications page into multiple pages. (:pr:`386`)" +msgstr "ແຍກໜ້າຂໍ້ກຳນົດອອກເປັນຫຼາຍໜ້າ. (:pr:`386`)" + +#: ../source/news.rst:167 +msgid "September 2017" +msgstr "ກັນຍາ 2017" + +#: ../source/news.rst:169 +msgid "" +"Encouraged using ``readme_renderer`` to validate :file:`README.rst`. " +"(:pr:`379`)" +msgstr "ແນະນຳໃຫ້ໃຊ້ ``readme_renderer`` ເພື່ອຢັ້ງຢືນ :file:`README.rst`. (:pr:`379`)" + +#: ../source/news.rst:171 +msgid "Recommended using the ``--user-base`` option. (:pr:`374`)" +msgstr "ແນະນຳໃຫ້ໃຊ້ຕົວເລືອກ ``--user-base``. (:pr:`374`)" + +#: ../source/news.rst:174 +msgid "August 2017" +msgstr "ສິງຫາ 2017" + +#: ../source/news.rst:176 +msgid "" +"Added a new, experimental tutorial on installing packages using ``Pipenv``. " +"(:pr:`369`)" +msgstr "ເພີ່ມບົດຮຽນການຕິດຕັ້ງແພັກເກດດ້ວຍ ``Pipenv`` (ແບບທົດລອງ). (:pr:`369`)" + +#: ../source/news.rst:177 +msgid "Added a new guide on how to use ``TestPyPI``. (:pr:`366`)" +msgstr "ເພີ່ມຄຳແນະນຳການໃຊ້ ``TestPyPI``. (:pr:`366`)" + +#: ../source/news.rst:178 +msgid "Added :file:`pypi.org` as a term. (:pr:`365`)" +msgstr "ເພີ່ມຄຳວ່າ :file:`pypi.org` ໃນສ່ວນຄຳສັບ. (:pr:`365`)" + +#: ../source/news.rst:181 +msgid "July 2017" +msgstr "ກໍລະກົດ 2017" + +#: ../source/news.rst:183 +msgid "Added ``flit`` to the key projects list. (:pr:`358`)" +msgstr "ເພີ່ມ ``flit`` ໃນລາຍການໂປຣເຈັກສຳຄັນ. (:pr:`358`)" + +#: ../source/news.rst:184 +msgid "Added ``enscons`` to the list of key projects. (:pr:`357`)" +msgstr "ເພີ່ມ ``enscons`` ໃນລາຍການໂປຣເຈັກສຳຄັນ. (:pr:`357`)" + +#: ../source/news.rst:185 +msgid "" +"Updated this guide's ``readme`` with instructions on how to build the guide " +"locally. (:pr:`356`)" +msgstr "" +"ອັບເດດໄຟລ໌ ``readme`` ຂອງຄຳແນະນຳນີ້ ພ້ອມວິທີການສ້າງເອກະສານໃນເຄື່ອງເອງ. (:pr:`356`)" + +#: ../source/news.rst:186 +msgid "" +"Made the new ``TestPyPI`` URL more visible, adding note to homepage about " +"pypi.org. (:pr:`354`)" +msgstr "ເຮັດໃຫ້ URL ຂອງ ``TestPyPI`` ເຫັນຊັດເຈນຂຶ້ນ. (:pr:`354`)" + +#: ../source/news.rst:187 +msgid "" +"Added a note about the removal of the explicit registration API. (:pr:`347`)" +msgstr "ເພີ່ມໝາຍເຫດກ່ຽວກັບການຖອນ registration API ອອກ. (:pr:`347`)" + +#: ../source/news.rst:190 +msgid "June 2017" +msgstr "ມິຖຸນາ 2017" + +#: ../source/news.rst:192 +msgid "Added a document on migrating uploads to :file:`PyPI.org`. (:pr:`339`)" +msgstr "ເພີ່ມເອກະສານການຍ້າຍການອັບໂຫຼດໄປ :file:`PyPI.org`. (:pr:`339`)" + +#: ../source/news.rst:193 +msgid "Added documentation for ``python_requires``. (:pr:`338`)" +msgstr "ເພີ່ມເອກະສານສຳລັບ ``python_requires``. (:pr:`338`)" + +#: ../source/news.rst:194 +msgid "" +"Added a note about PyPI migration in the *Tool Recommendations* tutorial. " +"(:pr:`335`)" +msgstr "ເພີ່ມໝາຍເຫດເລື່ອງການຍ້າຍ PyPI ໃນບົດຮຽນ *ການແນະນຳເຄື່ອງມື*. (:pr:`335`)" + +#: ../source/news.rst:195 +msgid "" +"Added a note that :file:`manifest.in` does not affect wheels. (:pr:`332`)" +msgstr "ເພີ່ມໝາຍເຫດວ່າ :file:`manifest.in` ບໍ່ມີຜົນກັບ wheels. (:pr:`332`)" + +#: ../source/news.rst:196 +msgid "Added a license section to the distributing guide. (:pr:`331`)" +msgstr "ເພີ່ມສ່ວນໃບອະນຸຍາດໃນຄຳແນະນຳການແຈກຢາຍ. (:pr:`331`)" + +#: ../source/news.rst:197 +msgid "Expanded the section on the ``name`` argument. (:pr:`329`)" +msgstr "ຂະຫຍາຍລາຍລະອຽດສ່ວນຕົວກຳນົດ ``name``. (:pr:`329`)" + +#: ../source/news.rst:198 +msgid "Adjusted the landing page. (:pr:`327`, :pr:`326`, :pr:`324`)" +msgstr "ປັບປຸງໜ້າຫຼັກ. (:pr:`327`, :pr:`326`, :pr:`324`)" + +#: ../source/news.rst:199 +msgid "Updated to Sphinx 1.6.2. (:pr:`323`)" +msgstr "ອັບເດດເປັນ Sphinx 1.6.2. (:pr:`323`)" + +#: ../source/news.rst:200 +msgid "Switched to the PyPA theme. (:pr:`305`)" +msgstr "ປ່ຽນມາໃຊ້ທີມ (theme) ຂອງ PyPA. (:pr:`305`)" + +#: ../source/news.rst:201 +msgid "Re-organized the documentation into the new structure. (:pr:`318`)" +msgstr "ຈັດໂຄງສ້າງເອກະສານໃໝ່. (:pr:`318`)" + +#: ../source/news.rst:204 +msgid "May 2017" +msgstr "ພຶດສະພາ 2017" + +#: ../source/news.rst:206 +msgid "" +"Added documentation for the ``Description-Content-Type`` field. (:pr:`258`)" +msgstr "ເພີ່ມເອກະສານສຳລັບຟິລ ``Description-Content-Type``. (:pr:`258`)" + +#: ../source/news.rst:207 +msgid "Added contributor and style guide. (:pr:`307`)" +msgstr "ເພີ່ມຄຳແນະນຳສຳລັບຜູ້ມີສ່ວນຮ່ວມ ແລະ ຮູບແບບການຂຽນ. (:pr:`307`)" + +#: ../source/news.rst:208 +msgid "" +"Documented ``pip`` and ``easy_install``'s differences for per-project " +"indexes. (:pr:`233`)" +msgstr "" +"ບັນທຶກຄວາມແຕກຕ່າງຂອງ ``pip`` ແລະ ``easy_install`` ສຳລັບດັດຊະນີແຍກແຕ່ລະໂປຣເຈັກ. " +"(:pr:`233`)" + +#: ../source/news.rst:211 +msgid "April 2017" +msgstr "ເມສາ 2017" + +#: ../source/news.rst:213 +msgid "Added travis configuration for testing pull requests. (:pr:`300`)" +msgstr "ເພີ່ມການກຳນົດຄ່າ travis ສຳລັບທົດສອບ pull requests. (:pr:`300`)" + +#: ../source/news.rst:214 +msgid "" +"Mentioned the requirement of the ``wheel`` package for creating wheels " +"(:pr:`299`)" +msgstr "ກ່າວເຖິງຄວາມຈຳເປັນຂອງແພັກເກດ ``wheel`` ໃນການສ້າງ wheels. (:pr:`299`)" + +#: ../source/news.rst:215 +msgid "" +"Removed the ``twine register`` reference in the *Distributing Packages* " +"tutorial. (:pr:`271`)" +msgstr "ຖອນການອ້າງອີງ ``twine register`` ອອກຈາກບົດຮຽນການແຈກຢາຍແພັກເກດ. (:pr:`271`)" + +#: ../source/news.rst:216 +msgid "Added a topic on plugin discovery. (:pr:`294`, :pr:`296`)" +msgstr "ເພີ່ມຫົວຂໍ້ກ່ຽວກັບການຄົ້ນຫາປລັກອິນ. (:pr:`294`, :pr:`296`)" + +#: ../source/news.rst:217 +msgid "Added a topic on namespace packages. (:pr:`290`)" +msgstr "ເພີ່ມຫົວຂໍ້ກ່ຽວກັບແພັກເກດ namespace. (:pr:`290`)" + +#: ../source/news.rst:218 +msgid "" +"Added documentation explaining prominently how to install ``pip`` in ``/usr/" +"local``. (:pr:`230`)" +msgstr "" +"ເພີ່ມເອກະສານອະທິບາຍຢ່າງຈະແຈ້ງກ່ຽວກັບວິທີການຕິດຕັ້ງ ``pip`` ໃນ ``/usr/local``. (:pr:`230`)" + +#: ../source/news.rst:219 +msgid "" +"Updated development mode documentation to mention that order of local " +"packages matters. (:pr:`208`)" +msgstr "" +"ອັບເດດເອກະສານໂໝດການພັດທະນາ ເພື່ອລະບຸວ່າລໍາດັບຂອງແພັກເກດທ້ອງຖິ່ນມີຄວາມສຳຄັນ. (:pr:`208`)" + +#: ../source/news.rst:220 +msgid "" +"Convert readthedocs link for their ``.org`` -> ``.io`` migration for hosted " +"projects (:pr:`239`)" +msgstr "" +"ປ່ຽນລິ້ງ readthedocs ສຳລັບການຍ້າຍຈາກ ``.org`` -> ``.io`` ຂອງໂຄງການທີ່ໂຮສໄວ້ " +"(:pr:`239`)" + +#: ../source/news.rst:221 +msgid "" +"Swapped order of :file:`setup.py` arguments for the upload command, as order " +"is significant. (:pr:`260`)" +msgstr "" +"ສະຫຼັບລຳດັບຂອງອາຄິວເມນ (arguments) ໃນ :file:`setup.py` ສຳລັບຄຳສັ່ງອັບໂຫຼດ " +"ເນື່ອງຈາກລຳດັບມີຄວາມສຳຄັນ. (:pr:`260`)" + +#: ../source/news.rst:223 +msgid "" +"Explained how to install from unsupported sources using a helper " +"application. (:pr:`289`)" +msgstr "ອະທິບາຍວິທີການຕິດຕັ້ງຈາກແຫຼ່ງທີ່ບໍ່ຮອງຮັບ ໂດຍໃຊ້ແອັບພລິເຄຊັນຊ່ວຍເຫຼືອ. (:pr:`289`)" + +#: ../source/news.rst:227 +msgid "March 2017" +msgstr "ມີນາ 2017" + +#: ../source/news.rst:229 +msgid "Covered ``manylinux1`` in *Platform Wheels*. (:pr:`283`)" +msgstr "ກວມເອົາ ``manylinux1`` ໃນ *Platform Wheels*. (:pr:`283`)" + +#: ../source/news.rst:232 +msgid "February 2017" +msgstr "ກຸມພາ 2017" + +#: ../source/news.rst:234 +msgid "Added :pep:`518`. (:pr:`281`)" +msgstr "ເພີ່ມ :pep:`518`. (:pr:`281`)" + +#: ../source/overview.rst:3 +msgid "Overview of Python Packaging" +msgstr "ພາບລວມຂອງການເຮັດແພັກເກດ Python" + +#: ../source/overview.rst:7 +msgid "" +"As a general-purpose programming language, Python is designed to be used in " +"many ways. You can build web sites or industrial robots or a game for your " +"friends to play, and much more, all using the same core technology." +msgstr "" +"ໃນຖານະທີ່ເປັນພາສາຂຽນໂປຣແກຣມອະເນກປະສົງ, Python ຖືກອອກແບບມາເພື່ອໃຊ້ໃນຫຼາຍຮູບແບບ. " +"ທ່ານສາມາດສ້າງເວັບໄຊ, ຫຸ່ນຍົນອຸດສາຫະກຳ ຫຼື ເກມໃຫ້ໝູ່ຫຼິ້ນ ແລະ ອື່ນໆອີກຫຼາຍຢ່າງ " +"ໂດຍໃຊ້ເຕັກໂນໂລຊີຫຼັກອັນດຽວກັນ." + +#: ../source/overview.rst:12 +msgid "" +"Python's flexibility is why the first step in every Python project must be " +"to think about the project's audience and the corresponding environment " +"where the project will run. It might seem strange to think about packaging " +"before writing code, but this process does wonders for avoiding future " +"headaches." +msgstr "" +"ຄວາມຢືດຢຸ່ນຂອງ Python ແມ່ນເຫດຜົນທີ່ຂັ້ນຕອນທຳອິດໃນທຸກໆໂຄງການ Python ຕ້ອງແມ່ນການຄິດເຖິງກຸ່ມຜູ້ໃຊ້ " +"ແລະ ສະພາບແວດລ້ອມທີ່ຈະໃຊ້ງານໂຄງການນັ້ນ. " +"ມັນອາດຈະເບິ່ງຄືວ່າແປກທີ່ຈະຄິດກ່ຽວກັບການເຮັດແພັກເກດກ່ອນການຂຽນໂຄດ, " +"ແຕ່ຂະບວນການນີ້ຊ່ວຍຫຼີກເວັ້ນບັນຫາທີ່ໜ້າປວດຫົວໃນອະນາຄົດໄດ້ຢ່າງດີ." + +#: ../source/overview.rst:18 +msgid "" +"This overview provides a general-purpose decision tree for reasoning about " +"Python's plethora of packaging options. Read on to choose the best " +"technology for your next project." +msgstr "" +"ພາບລວມນີ້ຈະສະແດງແຜນຜັງການຕັດສິນໃຈ ເພື່ອພິຈາລະນາຕົວເລືອກການເຮັດແພັກເກດທີ່ມີຫຼາກຫຼາຍຂອງ Python. " +"ອ່ານຕໍ່ເພື່ອເລືອກເຕັກໂນໂລຊີທີ່ດີທີ່ສຸດສຳລັບໂຄງການຕໍ່ໄປຂອງທ່ານ." + +#: ../source/overview.rst:23 +msgid "Thinking about deployment" +msgstr "ການວາງແຜນກ່ຽວກັບການຕິດຕັ້ງໃຊ້ງານ" + +#: ../source/overview.rst:25 +msgid "" +"Packages exist to be installed (or *deployed*), so before you package " +"anything, you'll want to have some answers to the deployment questions below:" +msgstr "" +"ແພັກເກດມີໄວ້ເພື່ອຕິດຕັ້ງ (ຫຼື *deployed*), ດັ່ງນັ້ນກ່ອນທີ່ທ່ານຈະເຮັດແພັກເກດໃດໜຶ່ງ, " +"ທ່ານຄວນມີຄຳຕອບສຳລັບຄຳຖາມກ່ຽວກັບການຕິດຕັ້ງໃຊ້ງານລຸ່ມນີ້:" + +#: ../source/overview.rst:29 +msgid "" +"Who are your software's users? Will your software be installed by other " +"developers doing software development, operations people in a datacenter, or " +"a less software-savvy group?" +msgstr "" +"ໃຜແມ່ນຜູ້ໃຊ້ຊອບແວຂອງທ່ານ? ຊອບແວຂອງທ່ານຈະຖືກຕິດຕັ້ງໂດຍນັກພັດທະນາຄົນອື່ນ, ຜູ້ເບິ່ງແຍງລະບົບໃນສູນຂໍ້ມູນ " +"(datacenter), ຫຼື ກຸ່ມຄົນທີ່ບໍ່ຄ່ອຍມີຄວາມຮູ້ດ້ານຊອບແວ?" + +#: ../source/overview.rst:32 +msgid "" +"Is your software intended to run on servers, desktops, mobile clients " +"(phones, tablets, etc.), or embedded in dedicated devices?" +msgstr "" +"ຊອບແວຂອງທ່ານມີຈຸດປະສົງເພື່ອໃຊ້ງານເທິງເຊີເວີ, ຄອມພິວເຕີຕັ້ງໂຕະ, ອຸປະກອນເຄື່ອນທີ່ (ໂທລະສັບ, ແທັບເລັດ " +"ແລະ ອື່ນໆ) ຫຼື ຝັງຢູ່ໃນອຸປະກອນສະເພາະຕົວ?" + +#: ../source/overview.rst:34 +msgid "" +"Is your software installed individually, or in large deployment batches?" +msgstr "ຊອບແວຂອງທ່ານຖືກຕິດຕັ້ງແບບແຍກສ່ວນ ຫຼື ຕິດຕັ້ງເປັນຊຸດໃຫຍ່ພ້ອມກັນ?" + +#: ../source/overview.rst:36 +msgid "" +"Packaging is all about target environment and deployment experience. There " +"are many answers to the questions above and each combination of " +"circumstances has its own solutions. With this information, the following " +"overview will guide you to the packaging technologies best suited to your " +"project." +msgstr "" +"ການເຮັດແພັກເກດແມ່ນກ່ຽວກັບສະພາບແວດລ້ອມເປົ້າໝາຍ ແລະ ປະສົບການການຕິດຕັ້ງໃຊ້ງານ. " +"ມີຫຼາຍຄຳຕອບສຳລັບຄຳຖາມຂ້າງເທິງ ແລະ ແຕ່ລະສະຖານະການກໍມີວິທີແກ້ໄຂຂອງມັນເອງ. ດ້ວຍຂໍ້ມູນນີ້, " +"ພາບລວມຕໍ່ໄປນີ້ຈະແນະນຳທ່ານໄປຫາເຕັກໂນໂລຊີການເຮັດແພັກເກດທີ່ເໝາະສົມທີ່ສຸດສຳລັບໂຄງການຂອງທ່ານ." + +#: ../source/overview.rst:43 +msgid "Packaging Python libraries and tools" +msgstr "ການເຮັດແພັກເກດໄລບຣາຣີ ແລະ ເຄື່ອງມື Python" + +#: ../source/overview.rst:45 +msgid "" +"You may have heard about PyPI, ``setup.py``, and ``wheel`` files. These are " +"just a few of the tools Python's ecosystem provides for distributing Python " +"code to developers, which you can read about in :doc:`guides/distributing-" +"packages-using-setuptools`." +msgstr "" +"ທ່ານອາດຈະເຄີຍໄດ້ຍິນກ່ຽວກັບ PyPI, ``setup.py`` ແລະ ໄຟລ໌ ``wheel``. " +"ເຫຼົ່ານີ້ແມ່ນພຽງແຕ່ບາງສ່ວນຂອງເຄື່ອງມືໃນລະບົບນິເວດຂອງ Python ທີ່ໃຊ້ສຳລັບແຈກຢາຍໂຄດ Python " +"ໃຫ້ກັບນັກພັດທະນາ, ເຊິ່ງທ່ານສາມາດອ່ານເພີ່ມເຕີມໄດ້ໃນ :doc:`guides/distributing-packages-" +"using-setuptools`." + +#: ../source/overview.rst:50 +msgid "" +"The following approaches to packaging are meant for libraries and tools used " +"by technical audience in a development setting. If you're looking for ways " +"to package Python for a non-technical audience and/or a production setting, " +"skip ahead to :ref:`packaging-applications`." +msgstr "" +"ວິທີການເຮັດແພັກເກດຕໍ່ໄປນີ້ແມ່ນສຳລັບໄລບຣາຣີ ແລະ ເຄື່ອງມືທີ່ໃຊ້ໂດຍຜູ້ທີ່ມີຄວາມຮູ້ດ້ານເຕັກນິກໃນການພັດທະນາ. " +"ຖ້າທ່ານກຳລັງຊອກຫາວິທີການເຮັດແພັກເກດ Python ສຳລັບຜູ້ໃຊ້ທົ່ວໄປ ຫຼື ສຳລັບການໃຊ້ງານຈິງ " +"(production), ໃຫ້ຂ້າມໄປເບິ່ງທີ່ :ref:`packaging-applications`." + +#: ../source/overview.rst:56 +msgid "Python modules" +msgstr "ໂມດູນ Python" + +#: ../source/overview.rst:58 +msgid "" +"A Python file, provided it only relies on the standard library, can be " +"redistributed and reused. You will also need to ensure it's written for the " +"right version of Python, and only relies on the standard library." +msgstr "" +"ໄຟລ໌ Python ໃດໜຶ່ງ, ຖ້າມັນຂຶ້ນກັບພຽງແຕ່ໄລບຣາຣີມາດຕະຖານ, ສາມາດນຳໄປແຈກຢາຍ ແລະ ໃຊ້ຄືນໄດ້. " +"ທ່ານຍັງຕ້ອງຮັບປະກັນວ່າມັນຖືກຂຽນຂຶ້ນສຳລັບເວີຊັນຂອງ Python ທີ່ຖືກຕ້ອງ ແລະ " +"ຂຶ້ນກັບພຽງແຕ່ໄລບຣາຣີມາດຕະຖານເທົ່ານັ້ນ." + +#: ../source/overview.rst:63 +msgid "" +"This is great for sharing simple scripts and snippets between people who " +"both have compatible Python versions (such as via email, StackOverflow, or " +"GitHub gists). There are even some entire Python libraries that offer this " +"as an option, such as :doc:`bottle.py` and :doc:`boltons " +"`." +msgstr "" +"ວິທີນີ້ເໝາະສຳລັບການແບ່ງປັນສະຄຣິບງ່າຍໆ ແລະ ໂຄດສັ້ນໆ ລະຫວ່າງຄົນທີ່ມີ Python ເວີຊັນທີ່ເຂົ້າກັນໄດ້ (ເຊັ່ນ: " +"ຜ່ານອີເມລ, StackOverflow ຫຼື GitHub gists). ຍັງມີບາງໄລບຣາຣີ Python " +"ທັງໝົດທີ່ສະເໜີທາງເລືອກນີ້ ເຊັ່ນ: :doc:`bottle.py` ແລະ :doc:`boltons " +"`." + +#: ../source/overview.rst:70 +msgid "" +"However, this pattern won't scale for projects that consist of multiple " +"files, need additional libraries, or need a specific version of Python, " +"hence the options below." +msgstr "" +"ຢ່າງໃດກໍຕາມ, ຮູບແບບນີ້ຈະບໍ່ຮອງຮັບໂຄງການທີ່ປະກອບມີຫຼາຍໄຟລ໌, ຕ້ອງການໄລບຣາຣີເພີ່ມເຕີມ ຫຼື ຕ້ອງການ " +"Python ເວີຊັນສະເພາະ, ດັ່ງນັ້ນຈຶ່ງມີຕົວເລືອກອື່ນໆລຸ່ມນີ້." + +#: ../source/overview.rst:75 +msgid "Python source distributions" +msgstr "ການແຈກຢາຍຊອສ (source distributions) ຂອງ Python" + +#: ../source/overview.rst:77 +msgid "" +"If your code consists of multiple Python files, it's usually organized into " +"a directory structure. Any directory containing Python files can comprise " +"an :term:`Import Package`." +msgstr "" +"ຖ້າໂຄດຂອງທ່ານປະກອບມີຫຼາຍໄຟລ໌ Python, ໂດຍປົກກະຕິມັນຈະຖືກຈັດລະບຽບເປັນໂຄງສ້າງໄດເຣັກທໍຣີ. " +"ໄດເຣັກທໍຣີໃດໜຶ່ງທີ່ບັນຈຸໄຟລ໌ Python ສາມາດລວມກັນເປັນ :term:`Import Package` ໄດ້." + +#: ../source/overview.rst:81 +msgid "" +"Because packages consist of multiple files, they are harder to distribute. " +"Most protocols support transferring only one file at a time (when was the " +"last time you clicked a link and it downloaded multiple files?). It's easier " +"to get incomplete transfers, and harder to guarantee code integrity at the " +"destination." +msgstr "" +"ເນື່ອງຈາກແພັກເກດປະກອບດ້ວຍຫຼາຍໄຟລ໌, ພວກມັນຈຶ່ງແຈກຢາຍໄດ້ຍາກກວ່າ. " +"ໂປຣໂຕຄໍສ່ວນໃຫຍ່ຮອງຮັບການສົ່ງໄຟລ໌ເທື່ອລະໄຟລ໌ເທົ່ານັ້ນ. ມັນງ່າຍທີ່ຈະເກີດການສົ່ງຂໍ້ມູນບໍ່ຄົບຖ້ວນ ແລະ " +"ຍາກທີ່ຈະຮັບປະກັນຄວາມສົມບູນຂອງໂຄດເມື່ອໄປຮອດປາຍທາງ." + +#: ../source/overview.rst:87 +msgid "" +"So long as your code contains nothing but pure Python code, and you know " +"your deployment environment supports your version of Python, then you can " +"use Python's native packaging tools to create a *source* :term:`Distribution " +"Package`, or *sdist* for short." +msgstr "" +"ຕາບໃດທີ່ໂຄດຂອງທ່ານມີພຽງແຕ່ໂຄດ Python ລ້ວນໆ ແລະ ທ່ານຮູ້ວ່າສະພາບແວດລ້ອມການຕິດຕັ້ງຮອງຮັບ " +"Python ເວີຊັນຂອງທ່ານ, ທ່ານສາມາດໃຊ້ເຄື່ອງມືການເຮັດແພັກເກດພື້ນຖານຂອງ Python ເພື່ອສ້າງ " +"*source* :term:`Distribution Package` ຫຼື ເອີ້ນສັ້ນໆວ່າ *sdist*." + +#: ../source/overview.rst:92 +msgid "" +"Python's *sdists* are compressed archives (``.tar.gz`` files) containing one " +"or more packages or modules. If your code is pure-Python, and you only " +"depend on other Python packages, you can go to the :ref:`source-distribution-" +"format` specification to learn more." +msgstr "" +"*sdists* ຂອງ Python ແມ່ນໄຟລ໌ບີບອັດ (``.tar.gz``) ທີ່ບັນຈຸໜຶ່ງ ຫຼື ຫຼາຍແພັກເກດ ຫຼື ໂມດູນ. " +"ຖ້າໂຄດຂອງທ່ານເປັນ pure-Python ແລະ ຂຶ້ນກັບແພັກເກດ Python ອື່ນໆເທົ່ານັ້ນ, " +"ທ່ານສາມາດເຂົ້າໄປເບິ່ງຂໍ້ກຳນົດ :ref:`source-distribution-format` ເພື່ອຮຽນຮູ້ເພີ່ມເຕີມ." + +#: ../source/overview.rst:97 +msgid "" +"If you rely on any non-Python code, or non-Python packages (such as `libxml2 " +"`_ in the case of `lxml `_, or BLAS libraries in the case of `numpy `_), you will need to use the format detailed in the " +"next section, which also has many advantages for pure-Python libraries." +msgstr "" +"ຖ້າທ່ານຕ້ອງອາໄສໂຄດທີ່ບໍ່ແມ່ນ Python ຫຼື ແພັກເກດທີ່ບໍ່ແມ່ນ Python (ເຊັ່ນ `libxml2` ໃນກໍລະນີຂອງ " +"`lxml`, ຫຼື ໄລບຣາຣີ BLAS ໃນກໍລະນີຂອງ `numpy`), ທ່ານຈະຕ້ອງໃຊ້ຮູບແບບທີ່ລະບຸໄວ້ໃນສ່ວນຕໍ່ໄປ, " +"ເຊິ່ງຍັງມີຂໍ້ດີຫຼາຍຢ່າງສຳລັບໄລບຣາຣີ pure-Python." + +#: ../source/overview.rst:104 +msgid "" +"Python and PyPI support multiple distributions providing different " +"implementations of the same package. For instance the unmaintained-but-" +"seminal `PIL distribution `_ provides the PIL " +"package, and so does `Pillow `_, an " +"actively-maintained fork of PIL!" +msgstr "" +"Python ແລະ PyPI ຮອງຮັບການແຈກຢາຍຫຼາຍຮູບແບບທີ່ໃຫ້ການເຮັດວຽກຂອງແພັກເກດດຽວກັນທີ່ແຕກຕ່າງກັນ. " +"ຕົວຢ່າງເຊັ່ນ: `PIL distribution` ທີ່ບໍ່ໄດ້ຮັບການເບິ່ງແຍງແລ້ວໃຫ້ແພັກເກດ PIL, ແລະ `Pillow` " +"ເຊິ່ງເປັນຕົວທີ່ແຍກອອກມາ ແລະ ໄດ້ຮັບການເບິ່ງແຍງຢ່າງຕໍ່ເນື່ອງກໍໃຫ້ແພັກເກດ PIL ຄືກັນ!" + +#: ../source/overview.rst:111 +msgid "" +"This Python packaging superpower makes it possible for Pillow to be a drop-" +"in replacement for PIL, just by changing your project's ``install_requires`` " +"or ``requirements.txt``." +msgstr "" +"ຄວາມສາມາດພິເສດນີ້ຂອງການເຮັດແພັກເກດ Python ເຮັດໃຫ້ Pillow ສາມາດໃຊ້ແທນ PIL ໄດ້ທັນທີ " +"ພຽງແຕ່ປ່ຽນ ``install_requires`` ຫຼື ``requirements.txt`` ໃນໂຄງການຂອງທ່ານ." + +#: ../source/overview.rst:116 +msgid "Python binary distributions" +msgstr "ການແຈກຢາຍບາຍນາຣີ (binary distributions) ຂອງ Python" + +#: ../source/overview.rst:118 +msgid "" +"So much of Python's practical power comes from its ability to integrate with " +"the software ecosystem, in particular libraries written in C, C++, Fortran, " +"Rust, and other languages." +msgstr "" +"ພະລັງໃນການໃຊ້ງານຕົວຈິງສ່ວນໃຫຍ່ຂອງ Python " +"ແມ່ນມາຈາກຄວາມສາມາດໃນການເຮັດວຽກຮ່ວມກັບລະບົບນິເວດຊອບແວອື່ນໆ, ໂດຍສະເພາະໄລບຣາຣີທີ່ຂຽນດ້ວຍ C, " +"C++, Fortran, Rust ແລະ ພາສາອື່ນໆ." + +#: ../source/overview.rst:122 +msgid "" +"Not all developers have the right tools or experiences to build these " +"components written in these compiled languages, so Python created " +"the :term:`Wheel`, a package format designed to ship libraries with compiled " +"artifacts. In fact, Python's package installer, ``pip``, always prefers " +"wheels because installation is always faster, so even pure-Python packages " +"work better with wheels." +msgstr "" +"ບໍ່ແມ່ນນັກພັດທະນາທຸກຄົນທີ່ຈະມີເຄື່ອງມື ຫຼື ປະສົບການໃນການບິວ (build) ສ່ວນປະກອບທີ່ຂຽນດ້ວຍພາສາເຫຼົ່ານີ້, " +"ດັ່ງນັ້ນ Python ຈຶ່ງໄດ້ສ້າງ :term:`Wheel` ຂຶ້ນມາ, " +"ເຊິ່ງເປັນຮູບແບບແພັກເກດທີ່ອອກແບບມາເພື່ອສົ່ງມອບໄລບຣາຣີພ້ອມກັບໄຟລ໌ທີ່ຄອມພາຍ (compile) ແລ້ວ. " +"ໃນຄວາມເປັນຈິງ, ເຄື່ອງມືຕິດຕັ້ງແພັກເກດຂອງ Python ຢ່າງ ``pip`` ມັກຈະເລືອກ wheel ສະເໝີ " +"ເພາະວ່າການຕິດຕັ້ງຈະໄວຖ້າກວ່າ, ດັ່ງນັ້ນແມ່ນແຕ່ແພັກເກດ pure-Python ກໍຍັງເຮັດວຽກໄດ້ດີກວ່າເມື່ອເປັນ " +"wheel." + +#: ../source/overview.rst:129 +msgid "" +"Binary distributions are best when they come with source distributions to " +"match. Even if you don't upload wheels of your code for every operating " +"system, by uploading the sdist, you're enabling users of other platforms to " +"still build it for themselves. Default to publishing both sdist and wheel " +"archives together, *unless* you're creating artifacts for a very specific " +"use case where you know the recipient only needs one or the other." +msgstr "" +"ການແຈກຢາຍແບບບາຍນາຣີຈະດີທີ່ສຸດເມື່ອມາພ້ອມກັບການແຈກຢາຍແບບຊອສ (source distribution). " +"ເຖິງແມ່ນວ່າທ່ານຈະບໍ່ໄດ້ອັບໂຫຼດ wheel ຂອງໂຄດທ່ານສຳລັບທຸກລະບົບປະຕິບັດການ, ແຕ່ການອັບໂຫຼດ sdist " +"ຈະຊ່ວຍໃຫ້ຜູ້ໃຊ້ໃນແພລັດຟອມອື່ນສາມາດບິວມັນດ້ວຍຕົນເອງໄດ້. ໂດຍປົກກະຕິແລ້ວຄວນເຜີຍແຜ່ທັງ sdist ແລະ " +"wheel ໄປພ້ອມກັນ, *ຍົກເວັ້ນ* " +"ວ່າທ່ານກຳລັງສ້າງສຳລັບກໍລະນີສະເພາະທີ່ທ່ານຮູ້ແນ່ນອນວ່າຜູ້ຮັບຕ້ອງການພຽງຢ່າງໃດຢ່າງໜຶ່ງ." + +#: ../source/overview.rst:137 +msgid "" +"Python and PyPI make it easy to upload both wheels and sdists together. Just " +"follow the :doc:`tutorials/packaging-projects` tutorial." +msgstr "" +"Python ແລະ PyPI ເຮັດໃຫ້ການອັບໂຫຼດທັງ wheels ແລະ sdists ໄປພ້ອມກັນເປັນເລື່ອງງ່າຍ. " +"ພຽງແຕ່ປະຕິບັດຕາມບົດຮຽນ :doc:`tutorials/packaging-projects`." + +#: ../source/overview.rst:145 +msgid "A summary of Python's packaging capabilities for tools and libraries." +msgstr "ບົດສະຫຼຸບຄວາມສາມາດໃນການເຮັດແພັກເກດຂອງ Python ສຳລັບເຄື່ອງມື ແລະ ໄລບຣາຣີ." + +#: ../source/overview.rst:145 +msgid "" +"Python's recommended built-in library and tool packaging technologies. " +"Excerpted from `The Packaging Gradient (2017) `_." +msgstr "" +"ເຕັກໂນໂລຊີການເຮັດແພັກເກດໄລບຣາຣີ ແລະ ເຄື່ອງມືພາຍໃນທີ່ແນະນຳຂອງ Python. ຄັດມາຈາກ `The " +"Packaging Gradient (2017)`." + +#: ../source/overview.rst:152 +msgid "Packaging Python applications" +msgstr "ການເຮັດແພັກເກດແອັບພລິເຄຊັນ Python" + +#: ../source/overview.rst:154 +msgid "" +"So far we've only discussed Python's native distribution tools. Based on our " +"introduction, you would be correct to infer these built-in approaches only " +"target environments which have Python, and an audience who knows how to " +"install Python packages." +msgstr "" +"ມາຮອດນີ້ ພວກເຮົາໄດ້ສົນທະນາກ່ຽວກັບເຄື່ອງມືແຈກຢາຍພື້ນຖານຂອງ Python ເທົ່ານັ້ນ. ຈາກບົດນຳ, " +"ທ່ານອາດຈະເຂົ້າໃຈຖືກແລ້ວວ່າວິທີການເຫຼົ່ານີ້ເປົ້າໝາຍພຽງແຕ່ສະພາບແວດລ້ອມທີ່ມີ Python ຢູ່ແລ້ວ ແລະ " +"ຜູ້ໃຊ້ທີ່ຮູ້ວິທີການຕິດຕັ້ງແພັກເກດ Python." + +#: ../source/overview.rst:159 +msgid "" +"With the variety of operating systems, configurations, and people out there, " +"this assumption is only safe when targeting a developer audience." +msgstr "" +"ດ້ວຍຄວາມຫຼາກຫຼາຍຂອງລະບົບປະຕິບັດການ, ການຕັ້ງຄ່າ ແລະ ຜູ້ໃຊ້, " +"ຂໍ້ສົມມຸດນີ້ຈະປອດໄພກໍຕໍ່ເມື່ອເປົ້າໝາຍແມ່ນກຸ່ມນັກພັດທະນາເທົ່ານັ້ນ." + +#: ../source/overview.rst:163 +msgid "" +"Python's native packaging is mostly built for distributing reusable code, " +"called libraries, between developers. You can piggyback **tools**, or basic " +"applications for developers, on top of Python's library packaging, using " +"technologies like :doc:`setuptools entry_points `." +msgstr "" +"ການເຮັດແພັກເກດພື້ນຖານຂອງ Python ສ່ວນໃຫຍ່ແມ່ນສ້າງຂຶ້ນເພື່ອແຈກຢາຍໂຄດທີ່ນຳມາໃຊ້ໃໝ່ໄດ້, ເອີ້ນວ່າ " +"ໄລບຣາຣີ, ລະຫວ່າງນັກພັດທະນາ. ທ່ານສາມາດພ່ວງ **ເຄື່ອງມື** ຫຼື ແອັບພລິເຄຊັນພື້ນຖານສຳລັບນັກພັດທະນາ " +"ເທິງການເຮັດແພັກເກດໄລບຣາຣີຂອງ Python ໂດຍໃຊ້ເຕັກໂນໂລຊີເຊັ່ນ :doc:`setuptools " +"entry_points`." + +#: ../source/overview.rst:169 +msgid "" +"Libraries are building blocks, not complete applications. For distributing " +"applications, there's a whole new world of technologies out there." +msgstr "" +"ໄລບຣາຣີແມ່ນສ່ວນປະກອບພື້ນຖານ, ບໍ່ແມ່ນແອັບພລິເຄຊັນທີ່ສົມບູນ. ສຳລັບການແຈກຢາຍແອັບພລິເຄຊັນ, " +"ຍັງມີໂລກຂອງເຕັກໂນໂລຊີໃໝ່ໆອີກຫຼາກຫຼາຍ." + +#: ../source/overview.rst:173 +msgid "" +"The next few sections organize these application packaging options according " +"to their dependencies on the target environment, so you can choose the right " +"one for your project." +msgstr "" +"ສ່ວນຕໍ່ໄປຈະຈັດລະບຽບຕົວເລືອກການເຮັດແພັກເກດແອັບພລິເຄຊັນເຫຼົ່ານີ້ ຕາມການຂຶ້ນກັບສະພາບແວດລ້ອມເປົ້າໝາຍ, " +"ເພື່ອໃຫ້ທ່ານສາມາດເລືອກສິ່ງທີ່ເໝາະສົມສຳລັບໂຄງການຂອງທ່ານ." + +#: ../source/overview.rst:178 +msgid "Depending on a framework" +msgstr "ການຂຶ້ນກັບເຟຣມເວີກ (framework)" + +#: ../source/overview.rst:180 +msgid "" +"Some types of Python applications, like web site backends and other network " +"services, are common enough that they have frameworks to enable their " +"development and packaging. Other types of applications, like dynamic web " +"frontends and mobile clients, are complex enough to target that a framework " +"becomes more than a convenience." +msgstr "" +"ແອັບພລິເຄຊັນ Python ບາງປະເພດ ເຊັ່ນ: ສ່ວນຫຼັງຂອງເວັບໄຊ (web site backends) ແລະ " +"ການບໍລິການເຄືອຂ່າຍອື່ນໆ, ແມ່ນມີຄວາມນິຍົມຫຼາຍຈົນມີເຟຣມເວີກທີ່ຊ່ວຍໃນການພັດທະນາ ແລະ ການເຮັດແພັກເກດ. " +"ແອັບພລິເຄຊັນປະເພດອື່ນ ເຊັ່ນ: ສ່ວນໜ້າຂອງເວັບ (web frontends) ແລະ ແອັບພລິເຄຊັນເທິງມືຖື, " +"ແມ່ນມີຄວາມຊັບຊ້ອນຫຼາຍຈົນການໃຊ້ເຟຣມເວີກກາຍເປັນສິ່ງທີ່ຈຳເປັນຫຼາຍກວ່າພຽງແຕ່ຄວາມສະດວກສະບາຍ." + +#: ../source/overview.rst:186 +msgid "" +"In all these cases, it makes sense to work backwards, from the framework's " +"packaging and deployment story. Some frameworks include a deployment system " +"which wraps the technologies outlined in the rest of the guide. In these " +"cases, you'll want to defer to your framework's packaging guide for the " +"easiest and most reliable production experience." +msgstr "" +"ໃນທຸກໆກໍລະນີນີ້, ມັນສົມຄວນທີ່ຈະພິຈາລະນາຍ້ອນກັບຈາກວິທີການເຮັດແພັກເກດ ແລະ " +"ການຕິດຕັ້ງຂອງເຟຣມເວີກນັ້ນໆ. ບາງເຟຣມເວີກລວມມີລະບົບການຕິດຕັ້ງທີ່ຫຸ້ມເຕັກໂນໂລຊີຕ່າງໆທີ່ໄດ້ກ່າວໄວ້ໃນຄູ່ມືນີ້. " +"ໃນກໍລະນີເຫຼົ່ານີ້, ທ່ານຄວນອ້າງອີງຕາມຄູ່ມືການເຮັດແພັກເກດຂອງເຟຣມເວີກຂອງທ່ານ " +"ເພື່ອປະສົບການການໃຊ້ງານຈິງທີ່ງ່າຍ ແລະ ໜ້າເຊື່ອຖືທີ່ສຸດ." + +#: ../source/overview.rst:192 +msgid "" +"If you ever wonder how these platforms and frameworks work under the hood, " +"you can always read the sections beyond." +msgstr "" +"ຖ້າທ່ານເຄີຍສົງໄສວ່າແພລັດຟອມ ແລະ ເຟຣມເວີກເຫຼົ່ານີ້ເຮັດວຽກແນວໃດຢູ່ເບື້ອງຫຼັງ, " +"ທ່ານສາມາດອ່ານສ່ວນຕໍ່ໆໄປໄດ້." + +#: ../source/overview.rst:196 +msgid "Service platforms" +msgstr "ແພລັດຟອມການບໍລິການ" + +#: ../source/overview.rst:198 +msgid "" +"If you're developing for a \"`Platform-as-a-Service `_\" or \"PaaS\", you are going " +"to want to follow their respective packaging guides. These types of " +"platforms take care of packaging and deployment, as long as you follow their " +"patterns. Most software does not fit one of these templates, hence the " +"existence of all the other options below." +msgstr "" +"ຖ້າທ່ານກຳລັງພັດທະນາສຳລັບ \"Platform-as-a-Service\" ຫຼື \"PaaS\", " +"ທ່ານຄວນປະຕິບັດຕາມຄູ່ມືການເຮັດແພັກເກດຂອງພວກເຂົາ. ແພລັດຟອມປະເພດນີ້ຈະເບິ່ງແຍງເລື່ອງການເຮັດແພັກເກດ " +"ແລະ ການຕິດຕັ້ງໃຫ້, ຕາບໃດທີ່ທ່ານປະຕິບັດຕາມຮູບແບບຂອງພວກເຂົາ. " +"ຊອບແວສ່ວນໃຫຍ່ບໍ່ໄດ້ເໝາະສົມກັບຮູບແບບເຫຼົ່ານີ້ສະເໝີໄປ, ດັ່ງນັ້ນຈຶ່ງມີຕົວເລືອກອື່ນໆຢູ່ລຸ່ມນີ້." + +#: ../source/overview.rst:205 +msgid "" +"If you're developing software that will be deployed to machines you own, " +"users' personal computers, or any other arrangement, read on." +msgstr "" +"ຖ້າທ່ານກຳລັງພັດທະນາຊອບແວທີ່ຈະຖືກຕິດຕັ້ງໃນເຄື່ອງຂອງທ່ານເອງ, ຄອມພິວເຕີສ່ວນຕົວຂອງຜູ້ໃຊ້ ຫຼື ຮູບແບບອື່ນໆ, " +"ໃຫ້ອ່ານຕໍ່." + +#: ../source/overview.rst:209 +msgid "Web browsers and mobile applications" +msgstr "ເວັບບຣາວເຊີ ແລະ ແອັບພລິເຄຊັນເທິງມືຖື" + +#: ../source/overview.rst:211 +msgid "" +"Python's steady advances are leading it into new spaces. These days you can " +"write a mobile app or web application frontend in Python. While the language " +"may be familiar, the packaging and deployment practices are brand new." +msgstr "" +"ຄວາມກ້າວໜ້າຢ່າງຕໍ່ເນື່ອງຂອງ Python ກຳລັງນຳພາມັນໄປສູ່ພື້ນທີ່ໃໝ່ໆ. ໃນທຸກມື້ນີ້ ທ່ານສາມາດຂຽນແອັບມືຖື ຫຼື " +"ສ່ວນໜ້າຂອງເວັບແອັບພລິເຄຊັນດ້ວຍ Python ໄດ້. ເຖິງແມ່ນວ່າພາສາຈະຄຸ້ນເຄີຍ, ແຕ່ວິທີການເຮັດແພັກເກດ ແລະ " +"ການຕິດຕັ້ງນັ້ນແມ່ນສິ່ງໃໝ່ທັງໝົດ." + +#: ../source/overview.rst:216 +msgid "" +"If you're planning on releasing to these new frontiers, you'll want to check " +"out the following frameworks, and refer to their packaging guides:" +msgstr "" +"ຖ້າທ່ານມີແຜນທີ່ຈະເຜີຍແຜ່ໄປສູ່ຂົງເຂດໃໝ່ເຫຼົ່ານີ້, ທ່ານຄວນກວດເບິ່ງເຟຣມເວີກຕໍ່ໄປນີ້ ແລະ " +"ອ້າງອີງຕາມຄູ່ມືການເຮັດແພັກເກດຂອງພວກເຂົາ:" + +#: ../source/overview.rst:220 +msgid "`Kivy `_" +msgstr "" + +#: ../source/overview.rst:221 +msgid "`Beeware `_" +msgstr "`Beeware `_" + +#: ../source/overview.rst:222 +msgid "`Brython `_" +msgstr "`Brython `_" + +#: ../source/overview.rst:223 +msgid "`Flexx `_" +msgstr "" + +#: ../source/overview.rst:225 +msgid "" +"If you are *not* interested in using a framework or platform, or just wonder " +"about some of the technologies and techniques utilized by the frameworks " +"above, continue reading below." +msgstr "" +"ຖ້າທ່ານ *ບໍ່* ສົນໃຈທີ່ຈະໃຊ້ເຟຣມເວີກ ຫຼື ແພລັດຟອມ, ຫຼື ພຽງແຕ່ສົງໄສກ່ຽວກັບເຕັກໂນໂລຊີ ແລະ " +"ເຕັກນິກບາງຢ່າງທີ່ໃຊ້ໂດຍເຟຣມເວີກຂ້າງເທິງ, ໃຫ້ອ່ານຕໍ່ລຸ່ມນີ້." + +#: ../source/overview.rst:230 +msgid "Depending on a pre-installed Python" +msgstr "ການຂຶ້ນກັບ Python ທີ່ຕິດຕັ້ງໄວ້ກ່ອນແລ້ວ" + +#: ../source/overview.rst:232 +msgid "" +"Pick an arbitrary computer, and depending on the context, there's a very " +"good chance Python is already installed. Included by default in most Linux " +"and Mac operating systems for many years now, you can reasonably depend on " +"Python preexisting in your data centers or on the personal machines of " +"developers and data scientists." +msgstr "" +"ຖ້າເລືອກຄອມພິວເຕີໃດໜຶ່ງຂຶ້ນມາ, ມັນມີໂອກາດສູງຫຼາຍທີ່ Python ຈະຖືກຕິດຕັ້ງໄວ້ແລ້ວ. " +"ມັນຖືກລວມມາເປັນພື້ນຖານໃນລະບົບປະຕິບັດການ Linux ແລະ Mac ສ່ວນໃຫຍ່ມາເປັນເວລາຫຼາຍປີແລ້ວ, " +"ທ່ານສາມາດໝັ້ນໃຈໄດ້ວ່າ Python ມີຢູ່ແລ້ວໃນສູນຂໍ້ມູນ ຫຼື ໃນເຄື່ອງສ່ວນຕົວຂອງນັກພັດທະນາ ແລະ " +"ນັກວິທະຍາສາດຂໍ້ມູນ." + +#: ../source/overview.rst:238 +msgid "Technologies which support this model:" +msgstr "ເຕັກໂນໂລຊີທີ່ຮອງຮັບຮູບແບບນີ້:" + +#: ../source/overview.rst:240 +msgid ":gh:`PEX ` (Python EXecutable)" +msgstr ":gh:`PEX ` (Python EXecutable)" + +#: ../source/overview.rst:241 +msgid "" +":doc:`zipapp ` (does not help manage dependencies, " +"requires Python 3.5+)" +msgstr "" +":doc:`zipapp ` (ບໍ່ຊ່ວຍຈັດການສິ່ງທີ່ຕ້ອງໃຊ້ຮ່ວມ (dependencies), " +"ຕ້ອງການ Python 3.5+)" + +#: ../source/overview.rst:242 +msgid ":gh:`shiv ` (requires Python 3)" +msgstr ":gh:`shiv ` (ຕ້ອງການ Python 3)" + +#: ../source/overview.rst:244 +msgid "" +"Of all the approaches here, depending on a pre-installed Python relies the " +"most on the target environment. Of course, this also makes for the smallest " +"package, as small as single-digit megabytes, or even kilobytes." +msgstr "" +"ໃນບັນດາວິທີການທັງໝົດນີ້, ການຂຶ້ນກັບ Python ທີ່ຕິດຕັ້ງໄວ້ກ່ອນແມ່ນອີງໃສ່ສະພາບແວດລ້ອມເປົ້າໝາຍຫຼາຍທີ່ສຸດ. " +"ແນ່ນອນວ່າມັນເຮັດໃຫ້ແພັກເກດມີຂະໜາດນ້ອຍທີ່ສຸດ, ອາດຈະນ້ອຍພຽງແຕ່ບໍ່ກີ່ເມກາໄບ ຫຼື ແມ່ນແຕ່ກິໂລໄບ." + +#: ../source/overview.rst:249 +msgid "" +"In general, decreasing the dependency on the target system increases the " +"size of our package, so the solutions here are roughly arranged by " +"increasing size of output." +msgstr "" +"ໂດຍທົ່ວໄປແລ້ວ, ການຫຼຸດຜ່ອນການຂຶ້ນກັບລະບົບເປົ້າໝາຍຈະເພີ່ມຂະໜາດຂອງແພັກເກດ, " +"ດັ່ງນັ້ນວິທີແກ້ໄຂຢູ່ທີ່ນີ້ຈຶ່ງຖືກຈັດລຽງຕາມຂະໜາດຂອງຜົນຜະລິດທີ່ເພີ່ມຂຶ້ນ." + +#: ../source/overview.rst:256 +msgid "Depending on a separate software distribution ecosystem" +msgstr "ການຂຶ້ນກັບລະບົບນິເວດການແຈກຢາຍຊອບແວແຍກຕ່າງຫາກ" + +#: ../source/overview.rst:258 +msgid "" +"For a long time many operating systems, including Mac and Windows, lacked " +"built-in package management. Only recently did these OSes gain so-called " +"\"app stores\", but even those focus on consumer applications and offer " +"little for developers." +msgstr "" +"ເປັນເວລາດົນນານທີ່ລະບົບປະຕິບັດການຫຼາຍຢ່າງ, ລວມທັງ Mac ແລະ Windows, " +"ບໍ່ມີລະບົບຈັດການແພັກເກດໃນຕົວ. ຫວ່າງບໍ່ດົນມານີ້ ລະບົບປະຕິບັດການເຫຼົ່ານີ້ຈຶ່ງມີສິ່ງທີ່ເອີ້ນວ່າ \"app " +"stores\", ແຕ່ພວກມັນກໍເນັ້ນໃສ່ແອັບພລິເຄຊັນສຳລັບຜູ້ໃຊ້ທົ່ວໄປ ແລະ ໃຫ້ປະໂຫຍດໜ້ອຍສຳລັບນັກພັດທະນາ." + +#: ../source/overview.rst:263 +msgid "" +"Developers long sought remedies, and in this struggle, emerged with their " +"own package management solutions, such as `Homebrew `_. " +"The most relevant alternative for Python developers is a package ecosystem " +"called `Anaconda `_. Anaconda is built around Python and is " +"increasingly common in academic, analytical, and other data-oriented " +"environments, even making its way `into server-oriented environments " +"`_." +msgstr "" +"ນັກພັດທະນາໄດ້ຊອກຫາວິທີແກ້ໄຂມາເປັນເວລາດົນນານ, ແລະ ໃນການຕໍ່ສູ້ນີ້, " +"ກໍໄດ້ເກີດມີລະບົບຈັດການແພັກເກດຂອງຕົນເອງ ເຊັ່ນ `Homebrew`. ທາງເລືອກທີ່ກ່ຽວຂ້ອງທີ່ສຸດສຳລັບນັກພັດທະນາ " +"Python ແມ່ນລະບົບນິເວດແພັກເກດທີ່ເອີ້ນວ່າ `Anaconda`. Anaconda ຖືກສ້າງຂຶ້ນອ້ອມຮອບ Python ແລະ " +"ເປັນທີ່ນິຍົມຫຼາຍຂຶ້ນໃນດ້ານວິຊາການ, ການວິເຄາະ ແລະ ສະພາບແວດລ້ອມທີ່ເນັ້ນຂໍ້ມູນອື່ນໆ." + +#: ../source/overview.rst:273 +msgid "Instructions on building and publishing for the Anaconda ecosystem:" +msgstr "ຄຳແນະນຳໃນການບິວ ແລະ ເຜີຍແຜ່ສຳລັບລະບົບນິເວດ Anaconda:" + +#: ../source/overview.rst:275 +msgid "" +"`Building libraries and applications with conda `_" +msgstr "" +"`ການສ້າງໄລບຣາຣີ ແລະ ແອັບພລິເຄຊັນດ້ວຍ conda `_" + +#: ../source/overview.rst:276 +msgid "" +"`Transitioning a native Python package to Anaconda `_" +msgstr "" +"`ການປ່ຽນແພັກເກດ Python ພື້ນຖານໄປເປັນ Anaconda `_" + +#: ../source/overview.rst:278 +msgid "" +"A similar model involves installing an alternative Python distribution, but " +"does not support arbitrary operating system-level packages:" +msgstr "" +"ຮູບແບບທີ່ຄ້າຍຄືກັນແມ່ນການຕິດຕັ້ງການແຈກຢາຍ Python ທາງເລືອກອື່ນ, " +"ແຕ່ບໍ່ຮອງຮັບແພັກເກດໃນລະດັບລະບົບປະຕິບັດການທົ່ວໄປ:" + +#: ../source/overview.rst:282 +msgid "" +"`ActiveState ActivePython `_" +msgstr "" +"`ActiveState ActivePython `_" + +#: ../source/overview.rst:283 +msgid "`WinPython `_" +msgstr "`WinPython `_" + +#: ../source/overview.rst:288 +msgid "Bringing your own Python executable" +msgstr "ການນຳໃຊ້ໄຟລ໌ລັນ (executable) ຂອງ Python ເອງ" + +#: ../source/overview.rst:290 +msgid "" +"Computing as we know it is defined by the ability to execute programs. Every " +"operating system natively supports one or more formats of programs they can " +"natively execute." +msgstr "" +"ການຄຳນວນຕາມທີ່ພວກເຮົາຮູ້ແມ່ນຖືກກຳນົດໂດຍຄວາມສາມາດໃນການປະມວນຜົນໂປຣແກຣມ. " +"ທຸກໆລະບົບປະຕິບັດການຮອງຮັບຮູບແບບໂປຣແກຣມໜຶ່ງ ຫຼື ຫຼາຍຮູບແບບທີ່ພວກມັນສາມາດປະມວນຜົນໄດ້ໂດຍກົງ." + +#: ../source/overview.rst:294 +msgid "" +"There are many techniques and technologies which turn your Python program " +"into one of these formats, most of which involve embedding the Python " +"interpreter and any other dependencies into a single executable file." +msgstr "" +"ມີຫຼາຍເຕັກນິກ ແລະ ເຕັກໂນໂລຊີທີ່ປ່ຽນໂປຣແກຣມ Python ຂອງທ່ານໃຫ້ເປັນໜຶ່ງໃນຮູບແບບເຫຼົ່ານີ້, " +"ເຊິ່ງສ່ວນໃຫຍ່ກ່ຽວຂ້ອງກັບການຝັງຕົວແປພາສາ (interpreter) ຂອງ Python ແລະ " +"ສິ່ງທີ່ຕ້ອງໃຊ້ຮ່ວມອື່ນໆລົງໃນໄຟລ໌ລັນດຽວ." + +#: ../source/overview.rst:299 +msgid "" +"This approach, called *freezing*, offers wide compatibility and seamless " +"user experience, though often requires multiple technologies, and a good " +"amount of effort." +msgstr "" +"ວິທີການນີ້, ທີ່ເອີ້ນວ່າ *freezing*, ໃຫ້ຄວາມເຂົ້າກັນໄດ້ທີ່ກວ້າງຂວາງ ແລະ ປະສົບການຜູ້ໃຊ້ທີ່ຕໍ່ເນື່ອງ, " +"ເຖິງແມ່ນວ່າມັກຈະຕ້ອງໃຊ້ຫຼາຍເຕັກໂນໂລຊີ ແລະ ຄວາມພະຍາຍາມຫຼາຍພໍສົມຄວນ." + +#: ../source/overview.rst:303 +msgid "A selection of Python freezers:" +msgstr "ຕົວເລືອກຂອງເຄື່ອງມື Python freezer:" + +#: ../source/overview.rst:305 +msgid "" +"`pyInstaller `_ - Cross-" +"platform" +msgstr "" +"`pyInstaller `_ - ຫຼາຍແພລັດຟອມ " +"(Cross-platform)" + +#: ../source/overview.rst:306 +msgid "" +"`cx_Freeze `_ - Cross-platform" +msgstr "" +"`cx_Freeze `_ - ຫຼາຍແພລັດຟອມ " +"(Cross-platform)" + +#: ../source/overview.rst:307 +msgid "" +"`constructor `_ - For command-line " +"installers" +msgstr "" +"`constructor `_ - ສຳລັບຕົວຕິດຕັ້ງແບບຄຳສັ່ງ " +"(command-line)" + +#: ../source/overview.rst:308 +msgid "`py2exe `_ - Windows only" +msgstr "`py2exe `_ - ສະເພາະ Windows" + +#: ../source/overview.rst:309 +msgid "`py2app `_ - Mac only" +msgstr "`py2app `_ - ສະເພາະ Mac" + +#: ../source/overview.rst:310 +msgid "`osnap `_ - Windows and Mac" +msgstr "`osnap `_ - Windows ແລະ Mac" + +#: ../source/overview.rst:311 +msgid "`pynsist `_ - Windows only" +msgstr "`pynsist `_ - ສະເພາະ Windows" + +#: ../source/overview.rst:313 +msgid "" +"Most of the above imply single-user deployments. For multi-component server " +"applications, see :gh:`Chef Omnibus `." +msgstr "" +"ສ່ວນໃຫຍ່ຂ້າງເທິງນັ້ນແມ່ນສຳລັບການຕິດຕັ້ງໃຫ້ຜູ້ໃຊ້ຄົນດຽວ. ສຳລັບແອັບພລິເຄຊັນເຊີເວີທີ່ມີຫຼາຍສ່ວນປະກອບ, " +"ໃຫ້ເບິ່ງ :gh:`Chef Omnibus`." + +#: ../source/overview.rst:319 +msgid "Bringing your own userspace" +msgstr "ການນຳໃຊ້ userspace ຂອງຕົນເອງ" + +#: ../source/overview.rst:321 +msgid "" +"An increasing number of operating systems -- including Linux, Mac OS, and " +"Windows -- can be set up to run applications packaged as lightweight images, " +"using a relatively modern arrangement often referred to as `operating-system-" +"level virtualization `_, or *containerization*." +msgstr "" +"ລະບົບປະຕິບັດການຈຳນວນຫຼາຍຂຶ້ນ ລວມທັງ Linux, Mac OS ແລະ Windows " +"ສາມາດຖືກຕັ້ງຄ່າໃຫ້ລັນແອັບພລິເຄຊັນທີ່ເຮັດແພັກເກດເປັນອິເມຈ (image) ຂະໜາດເບົາ, " +"ໂດຍໃຊ້ວິທີການທີ່ທັນສະໄໝທີ່ເອີ້ນວ່າ `operating-system-level virtualization` ຫຼື " +"*containerization*." + +#: ../source/overview.rst:328 +msgid "" +"These techniques are mostly Python agnostic, because they package whole OS " +"filesystems, not just Python or Python packages." +msgstr "" +"ເຕັກນິກເຫຼົ່ານີ້ສ່ວນໃຫຍ່ບໍ່ຂຶ້ນກັບ Python ໂດຍກົງ, " +"ເພາະວ່າພວກມັນເຮັດແພັກເກດທັງໝົດຂອງລະບົບໄຟລ໌ລະບົບປະຕິບັດການ, ບໍ່ແມ່ນພຽງແຕ່ Python ຫຼື ແພັກເກດ " +"Python." + +#: ../source/overview.rst:331 +msgid "" +"Adoption is most extensive among Linux servers, where the technology " +"originated and where the technologies below work best:" +msgstr "" +"ການນຳໃຊ້ແມ່ນມີຄວາມແຜ່ຫຼາຍທີ່ສຸດໃນບັນດາເຊີເວີ Linux, ເຊິ່ງເປັນບ່ອນທີ່ເຕັກໂນໂລຊີນີ້ກຳເນີດຂຶ້ນ ແລະ " +"ເປັນບ່ອນທີ່ເຕັກໂນໂລຊີລຸ່ມນີ້ເຮັດວຽກໄດ້ດີທີ່ສຸດ:" + +#: ../source/overview.rst:334 +msgid "`AppImage `_" +msgstr "`AppImage `_" + +#: ../source/overview.rst:335 +msgid "`Docker `_" +msgstr "`Docker `_" + +#: ../source/overview.rst:336 +msgid "`Flatpak `_" +msgstr "`Flatpak `_" + +#: ../source/overview.rst:337 +msgid "`Snapcraft `_" +msgstr "`Snapcraft `_" + +#: ../source/overview.rst:340 +msgid "Bringing your own kernel" +msgstr "ການນຳໃຊ້ເຄີເນີນ (kernel) ຂອງຕົນເອງ" + +#: ../source/overview.rst:342 +msgid "" +"Most desktop operating systems support some form of classical " +"virtualization, running applications packaged as images containing a full " +"operating system of their own. Running these virtual machines, or VMs, is a " +"mature approach, widespread in data center environments." +msgstr "" +"ລະບົບປະຕິບັດການຄອມພິວເຕີສ່ວນໃຫຍ່ຮອງຮັບການເຮັດ virtualization ແບບດັ້ງເດີມ, " +"ໂດຍລັນແອັບພລິເຄຊັນທີ່ເຮັດແພັກເກດເປັນອິເມຈທີ່ມີລະບົບປະຕິບັດການຂອງຕົນເອງຢ່າງສົມບູນ. " +"ການລັນເຄື່ອງຈຳລອງເຫຼົ່ານີ້ ຫຼື VMs ແມ່ນວິທີການທີ່ໝັ້ນຄົງ ແລະ ແຜ່ຫຼາຍໃນສະພາບແວດລ້ອມສູນຂໍ້ມູນ." + +#: ../source/overview.rst:347 +msgid "" +"These techniques are mostly reserved for larger scale deployments in data " +"centers, though certain complex applications can benefit from this " +"packaging. The technologies are Python agnostic, and include:" +msgstr "" +"ເຕັກນິກເຫຼົ່ານີ້ສ່ວນໃຫຍ່ແມ່ນສະຫງວນໄວ້ສຳລັບການຕິດຕັ້ງຂະໜາດໃຫຍ່ໃນສູນຂໍ້ມູນ, " +"ເຖິງແມ່ນວ່າແອັບພລິເຄຊັນທີ່ຊັບຊ້ອນບາງຢ່າງສາມາດໄດ້ຮັບຜົນປະໂຫຍດຈາກການເຮັດແພັກເກດນີ້. " +"ເຕັກໂນໂລຊີເຫຼົ່ານີ້ບໍ່ຂຶ້ນກັບ Python ໂດຍກົງ ແລະ ລວມມີ:" + +#: ../source/overview.rst:351 +msgid "KVM on Linux" +msgstr "KVM ເທິງ Linux" + +#: ../source/overview.rst:352 +msgid "Hyper-V on Windows" +msgstr "Hyper-V ເທິງ Windows" + +#: ../source/overview.rst:353 +msgid "" +"`VHD `_, `AMI `_, and :doc:`other formats " +"`" +msgstr "`VHD`, `AMI` ແລະ :doc:`ຮູບແບບອື່ນໆ `" + +#: ../source/overview.rst:356 +msgid "" +"`OpenStack `_ - A cloud " +"management system written in Python, with extensive VM support" +msgstr "" +"`OpenStack `_ - ລະບົບຈັດການຄລາວ " +"(cloud) ທີ່ຂຽນດ້ວຍ Python, ພ້ອມການຮອງຮັບ VM ທີ່ກວ້າງຂວາງ" + +#: ../source/overview.rst:360 +msgid "Bringing your own hardware" +msgstr "ການນຳໃຊ້ຮາດແວຂອງຕົນເອງ" + +#: ../source/overview.rst:362 +msgid "" +"The most all-encompassing way to ship your software would be to ship it " +"already-installed on some hardware. This way, your software's user would " +"require only electricity." +msgstr "" +"ວິທີການທີ່ຄອບຄຸມທີ່ສຸດໃນການສົ່ງມອບຊອບແວຂອງທ່ານແມ່ນການສົ່ງມອບມັນພ້ອມກັບການຕິດຕັ້ງໄວ້ລ່ວງໜ້າໃນຮາດແວບາງຢ່າງ. " +"ດ້ວຍວິທີນີ້, ຜູ້ໃຊ້ຊອບແວຂອງທ່ານຈະຕ້ອງການພຽງແຕ່ໄຟຟ້າເທົ່ານັ້ນ." + +#: ../source/overview.rst:366 +msgid "" +"Whereas the virtual machines described above are primarily reserved for the " +"tech-savvy, you can find hardware appliances being used by everyone from the " +"most advanced data centers to the youngest children." +msgstr "" +"ໃນຂະນະທີ່ເຄື່ອງຈຳລອງທີ່ກ່າວມາຂ້າງເທິງສ່ວນໃຫຍ່ແມ່ນສະຫງວນໄວ້ສຳລັບຜູ້ທີ່ມີຄວາມຮູ້ດ້ານເຕັກນິກ, " +"ແຕ່ທ່ານສາມາດພົບເຫັນອຸປະກອນຮາດແວທີ່ຖືກໃຊ້ໂດຍທຸກຄົນ ຕັ້ງແຕ່ສູນຂໍ້ມູນທີ່ທັນສະໄໝທີ່ສຸດຈົນເຖິງເດັກນ້ອຍ." + +#: ../source/overview.rst:370 +msgid "" +"Embed your code on an :gh:`Adafruit `, `MicroPython " +"`_, or more-powerful hardware running Python, then " +"ship it to the datacenter or your users' homes. They plug and play, and you " +"can call it a day." +msgstr "" +"ຝັງໂຄດຂອງທ່ານລົງໃນ :gh:`Adafruit`, `MicroPython` ຫຼື ຮາດແວທີ່ມີປະສິດທິພາບສູງກວ່າທີ່ລັນ " +"Python, ຈາກນັ້ນສົ່ງມອບມັນໃຫ້ກັບສູນຂໍ້ມູນ ຫຼື ບ້ານຂອງຜູ້ໃຊ້. ພວກເຂົາພຽງແຕ່ສຽບປລັກແລ້ວກໍໃຊ້ງານໄດ້ເລີຍ." + +#: ../source/overview.rst:379 +msgid "A summary of technologies used to package Python applications." +msgstr "ບົດສະຫຼຸບຂອງເຕັກໂນໂລຊີທີ່ໃຊ້ເພື່ອເຮັດແພັກເກດແອັບພລິເຄຊັນ Python." + +#: ../source/overview.rst:379 +msgid "" +"The simplified gamut of technologies used to package Python applications." +msgstr "ລະດັບເຕັກໂນໂລຊີທີ່ເຮັດໃຫ້ງ່າຍຂຶ້ນເຊິ່ງໃຊ້ໃນການເຮັດແພັກເກດແອັບພລິເຄຊັນ Python." + +#: ../source/overview.rst:382 +msgid "What about..." +msgstr "ແລ້ວກ່ຽວກັບ..." + +#: ../source/overview.rst:384 +msgid "" +"The sections above can only summarize so much, and you might be wondering " +"about some of the more conspicuous gaps." +msgstr "" +"ສ່ວນຕ່າງໆຂ້າງເທິງສາມາດສະຫຼຸບໄດ້ພຽງແຕ່ບາງສ່ວນ, ແລະ " +"ທ່ານອາດຈະສົງໄສກ່ຽວກັບຊ່ອງຫວ່າງທີ່ເຫັນໄດ້ແຈ້ງບາງຢ່າງ." + +#: ../source/overview.rst:388 +msgid "Operating system packages" +msgstr "ແພັກເກດລະບົບປະຕິບັດການ" + +#: ../source/overview.rst:390 +msgid "" +"As mentioned in :ref:`depending-on-a-separate-ecosystem` above, some " +"operating systems have package managers of their own. If you're very sure of " +"the operating system you're targeting, you can depend directly on a format " +"like `deb `_ (for Debian, " +"Ubuntu, etc.) or `RPM `_ " +"(for Red Hat, Fedora, etc.), and use that built-in package manager to take " +"care of installation, and even deployment. You can even use `FPM `_ to generate " +"both deb and RPMs from the same source." +msgstr "" +"ດັ່ງທີ່ກ່າວໄວ້ຂ້າງເທິງ, ບາງລະບົບປະຕິບັດການມີຕົວຈັດການແພັກເກດຂອງຕົນເອງ. " +"ຖ້າທ່ານໝັ້ນໃຈໃນລະບົບປະຕິບັດການທີ່ທ່ານກຳລັງເປົ້າໝາຍ, ທ່ານສາມາດອີງໃສ່ຮູບແບບໂດຍກົງເຊັ່ນ `deb` (ສຳລັບ " +"Debian, Ubuntu ແລະ ອື່ນໆ) ຫຼື `RPM` (ສຳລັບ Red Hat, Fedora ແລະ ອື່ນໆ) ແລະ " +"ໃຊ້ຕົວຈັດການແພັກເກດໃນຕົວນັ້ນເພື່ອເບິ່ງແຍງການຕິດຕັ້ງ ແລະ ການໃຊ້ງານ. ທ່ານຍັງສາມາດໃຊ້ `FPM` " +"ເພື່ອສ້າງທັງ deb ແລະ RPM ຈາກຊອສດຽວກັນ." + +#: ../source/overview.rst:401 +msgid "" +"In most deployment pipelines, the OS package manager is just one piece of " +"the puzzle." +msgstr "ໃນຂະບວນການຕິດຕັ້ງສ່ວນໃຫຍ່, ຕົວຈັດການແພັກເກດຂອງ OS ເປັນພຽງສ່ວນໜຶ່ງຂອງພາບລວມທັງໝົດ." + +#: ../source/overview.rst:407 +msgid "" +":doc:`Virtualenvs ` have been an indispensable " +"tool for multiple generations of Python developer, but are slowly fading " +"from view, as they are being wrapped by higher-level tools. With packaging " +"in particular, virtualenvs are used as a primitive in :doc:`the dh-" +"virtualenv tool ` and `osnap `_, both of which wrap virtualenvs in a self-contained way." +msgstr "" +":doc:`Virtualenvs` ເປັນເຄື່ອງມືທີ່ຂາດບໍ່ໄດ້ສຳລັບນັກພັດທະນາ Python ຫຼາຍລຸ້ນຄົນ, " +"ແຕ່ກຳລັງຄ່ອຍໆຖືກແທນທີ່ດ້ວຍເຄື່ອງມືລະດັບສູງກວ່າ. ໃນການເຮັດແພັກເກດ, virtualenvs " +"ຖືກໃຊ້ເປັນພື້ນຖານໃນເຄື່ອງມືເຊັ່ນ `dh-virtualenv` ແລະ `osnap`." + +#: ../source/overview.rst:416 +msgid "" +"For production deployments, do not rely on running ``python -m pip install`` " +"from the Internet into a virtualenv, as one might do in a development " +"environment. The overview above is full of much better solutions." +msgstr "" +"ສຳລັບການຕິດຕັ້ງໃຊ້ງານຈິງ, ຢ່າເພິ່ງພາການລັນ ``python -m pip install`` ຈາກອິນເຕີເນັດລົງໃນ " +"virtualenv ຄືກັບທີ່ເຮັດໃນສະພາບແວດລ້ອມການພັດທະນາ. ພາບລວມຂ້າງເທິງມີວິທີແກ້ໄຂທີ່ດີກວ່າຫຼາຍ." + +#: ../source/overview.rst:421 +msgid "Security" +msgstr "ຄວາມປອດໄພ" + +#: ../source/overview.rst:423 +msgid "" +"The further down the gradient you come, the harder it gets to update " +"components of your package. Everything is more tightly bound together." +msgstr "" +"ຍິ່ງທ່ານເລືອກວິທີທີ່ຢູ່ລະດັບລຸ່ມຫຼາຍເທົ່າໃດ, ມັນກໍຍິ່ງຍາກຂຶ້ນໃນການອັບເດດສ່ວນປະກອບຂອງແພັກເກດຂອງທ່ານ. " +"ທຸກຢ່າງຈະຖືກຜູກມັດເຂົ້າກັນຢ່າງແໜ້ນໜາ." + +#: ../source/overview.rst:426 +msgid "" +"For example, if a kernel security issue emerges, and you're deploying " +"containers, the host system's kernel can be updated without requiring a new " +"build on behalf of the application. If you deploy VM images, you'll need a " +"new build. Whether or not this dynamic makes one option more secure is still " +"a bit of an old debate, going back to the still-unsettled matter of `static " +"versus dynamic linking `_." +msgstr "" +"ຕົວຢ່າງເຊັ່ນ: ຖ້າມີບັນຫາຄວາມປອດໄພຂອງເຄີເນີນເກີດຂຶ້ນ ແລະ ທ່ານກຳລັງໃຊ້ container, " +"ເຄີເນີນຂອງລະບົບໂຮສ (host) ສາມາດອັບເດດໄດ້ໂດຍບໍ່ຕ້ອງສ້າງແພັກເກດແອັບພລິເຄຊັນໃໝ່. ຖ້າທ່ານໃຊ້ VM " +"images, ທ່ານຈະຕ້ອງສ້າງໃໝ່. ຄວາມແຕກຕ່າງນີ້ເຮັດໃຫ້ທາງເລືອກໃດໜຶ່ງປອດໄພກວ່າຫຼືບໍ່ນັ້ນ " +"ຍັງຄົງເປັນຫົວຂໍ້ທີ່ມີການຖົກຖຽງກັນມາແຕ່ດົນນານ." + +#: ../source/overview.rst:435 +msgid "Wrap up" +msgstr "ສະຫຼຸບ" + +#: ../source/overview.rst:437 +msgid "" +"Packaging in Python has a bit of a reputation for being a bumpy ride. This " +"impression is mostly a byproduct of Python's versatility. Once you " +"understand the natural boundaries between each packaging solution, you begin " +"to realize that the varied landscape is a small price Python programmers pay " +"for using one of the most balanced, flexible languages available." +msgstr "" +"ການເຮັດແພັກເກດໃນ Python ມີຊື່ສຽງວ່າຍາກ ແລະ ສັບສົນ. " +"ຄວາມຮູ້ສຶກນີ້ສ່ວນໃຫຍ່ແມ່ນຜົນມາຈາກຄວາມສາມາດທີ່ຫຼາກຫຼາຍຂອງ Python. " +"ເມື່ອທ່ານເຂົ້າໃຈຂອບເຂດຂອງແຕ່ລະວິທີການແລ້ວ, " +"ທ່ານຈະເລີ່ມເຫັນວ່າຄວາມຫຼາກຫຼາຍນີ້ເປັນພຽງລາຄາເລັກນ້ອຍທີ່ນັກຂຽນໂປຣແກຣມ Python ຕ້ອງຈ່າຍ " +"ເພື່ອແລກກັບການໃຊ້ພາສາທີ່ມີຄວາມສົມດຸນ ແລະ ຢືດຢຸ່ນທີ່ສຸດພາສາໜຶ່ງ." + +#: ../source/specifications/binary-distribution-format.rst:7 +msgid "Binary distribution format" +msgstr "ຮູບແບບການແຈກຢາຍແບບບາຍນາຣີ" + +#: ../source/specifications/binary-distribution-format.rst:9 +msgid "" +"This page specifies the binary distribution format for Python packages, also " +"called the wheel format." +msgstr "ໜ້ານີ້ລະບຸຮູບແບບການແຈກຢາຍແບບບາຍນາຣີສຳລັບແພັກເກດ Python, ເຊິ່ງເອີ້ນວ່າຮູບແບບ wheel." + +#: ../source/specifications/binary-distribution-format.rst:12 +msgid "" +"A wheel is a ZIP-format archive with a specially formatted file name and the " +"``.whl`` extension. It contains a single distribution nearly as it would be " +"installed according to PEP 376 with a particular installation scheme. " +"Although a specialized installer is recommended, a wheel file may be " +"installed by simply unpacking into site-packages with the standard 'unzip' " +"tool while preserving enough information to spread its contents out onto " +"their final paths at any later time." +msgstr "" +"wheel ແມ່ນໄຟລ໌ບີບອັດຮູບແບບ ZIP ທີ່ມີການຕັ້ງຊື່ໄຟລ໌ແບບພິເສດ ແລະ ມີນາມສະກຸນ ``.whl``. " +"ມັນບັນຈຸການແຈກຢາຍທີ່ເກືອບຈະພ້ອມຕິດຕັ້ງຕາມ PEP 376. ເຖິງແມ່ນວ່າຈະແນະນຳໃຫ້ໃຊ້ຕົວຕິດຕັ້ງສະເພາະ, " +"ແຕ່ໄຟລ໌ wheel ກໍສາມາດຕິດຕັ້ງໄດ້ໂດຍການແຕກໄຟລ໌ລົງໃນ site-packages ດ້ວຍເຄື່ອງມື 'unzip' " +"ມາດຕະຖານ." + +#: ../source/specifications/binary-distribution-format.rst:22 +msgid "Details" +msgstr "ລາຍລະອຽດ" + +#: ../source/specifications/binary-distribution-format.rst:25 +msgid "Installing a wheel 'distribution-1.0-py32-none-any.whl'" +msgstr "ການຕິດຕັ້ງ wheel 'distribution-1.0-py32-none-any.whl'" + +#: ../source/specifications/binary-distribution-format.rst:27 +msgid "Wheel installation notionally consists of two phases:" +msgstr "ໂດຍຫຼັກການແລ້ວ ການຕິດຕັ້ງ Wheel ປະກອບມີສອງໄລຍະ:" + +#: ../source/specifications/binary-distribution-format.rst:29 +msgid "Unpack." +msgstr "ແຕກໄຟລ໌ (Unpack)." + +#: ../source/specifications/binary-distribution-format.rst:31 +msgid "Parse ``distribution-1.0.dist-info/WHEEL``." +msgstr "ວິເຄາະ (Parse) ``distribution-1.0.dist-info/WHEEL``." + +#: ../source/specifications/binary-distribution-format.rst:32 +msgid "" +"Check that installer is compatible with Wheel-Version. Warn if minor " +"version is greater, abort if major version is greater." +msgstr "" +"ກວດສອບວ່າຕົວຕິດຕັ້ງເຂົ້າກັນໄດ້ກັບ Wheel-Version ຫຼື ບໍ່. ເຕືອນຖ້າເວີຊັນຍ່ອຍສູງກວ່າ, " +"ຍົກເລີກຖ້າເວີຊັນຫຼັກສູງກວ່າ." + +#: ../source/specifications/binary-distribution-format.rst:34 +msgid "" +"If Root-Is-Purelib == 'true', unpack archive into purelib (site-packages)." +msgstr "ຖ້າ Root-Is-Purelib == 'true', ໃຫ້ແຕກໄຟລ໌ລົງໃນ purelib (site-packages)." + +#: ../source/specifications/binary-distribution-format.rst:36 +msgid "Else unpack archive into platlib (site-packages)." +msgstr "ຖ້າບໍ່ດັ່ງນັ້ນ ໃຫ້ແຕກໄຟລ໌ລົງໃນ platlib (site-packages)." + +#: ../source/specifications/binary-distribution-format.rst:38 +msgid "Spread." +msgstr "ກະຈາຍໄຟລ໌ (Spread)." + +#: ../source/specifications/binary-distribution-format.rst:40 +msgid "" +"Unpacked archive includes ``distribution-1.0.dist-info/`` and (if there is " +"data) ``distribution-1.0.data/``." +msgstr "" +"ໄຟລ໌ທີ່ແຕກອອກມາຈະລວມມີ ``distribution-1.0.dist-info/`` ແລະ (ຖ້າມີຂໍ້ມູນ) " +"``distribution-1.0.data/``." + +#: ../source/specifications/binary-distribution-format.rst:42 +msgid "" +"Move each subtree of ``distribution-1.0.data/`` onto its destination path. " +"Each subdirectory of ``distribution-1.0.data/`` is a key into a dict of " +"destination directories, such as ``distribution-1.0.data/(purelib|platlib|" +"headers|scripts|data)``. These subdirectories are :ref:`installation paths " +"defined by sysconfig `." +msgstr "" +"ຍ້າຍແຕ່ລະໂຄງສ້າງຍ່ອຍຂອງ ``distribution-1.0.data/`` ໄປຍັງເສັ້ນທາງປາຍທາງ. " +"ແຕ່ລະໄດເຣັກທໍຣີຍ່ອຍແມ່ນຄີ (key) ໄປຫາໄດເຣັກທໍຣີປາຍທາງ." + +#: ../source/specifications/binary-distribution-format.rst:48 +msgid "" +"If applicable, update scripts starting with ``#!python`` to point to the " +"correct interpreter." +msgstr "" +"ຖ້າເປັນໄປໄດ້, ໃຫ້ອັບເດດສະຄຣິບທີ່ຂຶ້ນຕົ້ນດ້ວຍ ``#!python`` ໃຫ້ຊີ້ໄປຫາຕົວແປພາສາ (interpreter) " +"ທີ່ຖືກຕ້ອງ." + +#: ../source/specifications/binary-distribution-format.rst:50 +msgid "Update ``distribution-1.0.dist-info/RECORD`` with the installed paths." +msgstr "ອັບເດດ ``distribution-1.0.dist-info/RECORD`` ດ້ວຍເສັ້ນທາງທີ່ຕິດຕັ້ງແລ້ວ." + +#: ../source/specifications/binary-distribution-format.rst:52 +msgid "Remove empty ``distribution-1.0.data`` directory." +msgstr "ລົບໄດເຣັກທໍຣີ ``distribution-1.0.data`` ທີ່ວ່າງເປົ່າອອກ." + +#: ../source/specifications/binary-distribution-format.rst:53 +msgid "" +"Compile any installed .py to .pyc. (Uninstallers should be smart enough to " +"remove .pyc even if it is not mentioned in RECORD.)" +msgstr "" +"ຄອມພາຍ (Compile) ໄຟລ໌ .py ທີ່ຕິດຕັ້ງແລ້ວໃຫ້ເປັນ .pyc. " +"(ຕົວຖອນການຕິດຕັ້ງຄວນຈະສະຫຼາດພໍທີ່ຈະລົບ .pyc ອອກ ເຖິງແມ່ນວ່າຈະບໍ່ໄດ້ລະບຸໄວ້ໃນ RECORD ກໍຕາມ.)" + +#: ../source/specifications/binary-distribution-format.rst:57 +msgid "Recommended installer features" +msgstr "ຄຸນສົມບັດທີ່ແນະນຳສຳລັບຕົວຕິດຕັ້ງ" + +#: ../source/specifications/binary-distribution-format.rst:67 +msgid "Rewrite ``#!python``." +msgstr "ຂຽນ ``#!python`` ໃໝ່." + +#: ../source/specifications/binary-distribution-format.rst:60 +msgid "" +"In wheel, scripts are packaged in ``{distribution}-{version}.data/scripts/" +"``. If the first line of a file in ``scripts/`` starts with exactly ``b'#!" +"python'``, rewrite to point to the correct interpreter. Unix installers may " +"need to add the +x bit to these files if the archive was created on Windows." +msgstr "" +"ໃນ wheel, ບັນດາສະຄຣິບຈະຖືກບັນຈຸໄວ້ໃນ ``{distribution}-{version}.data/scripts/``. " +"ຫາກແຖວທຳອິດຂອງໄຟລ໌ໃນ ``scripts/`` ເລີ່ມຕົ້ນດ້ວຍ ``b'#!python'`` ຢ່າງແນ່ນອນ, " +"ໃຫ້ຂຽນຄືນໃໝ່ເພື່ອຊີ້ໄປຫາຕົວແປພາສາທີ່ຖືກຕ້ອງ. ຕົວຕິດຕັ້ງ Unix ອາດຈຳເປັນຕ້ອງເພີ່ມບິດ +x ໃຫ້ກັບໄຟລ໌ເຫຼົ່ານີ້ " +"ຫາກໄຟລ໌ຈັດເກັບຖືກສ້າງຂຶ້ນໃນ Windows." + +#: ../source/specifications/binary-distribution-format.rst:66 +msgid "" +"The ``b'#!pythonw'`` convention is allowed. ``b'#!pythonw'`` indicates a GUI " +"script instead of a console script." +msgstr "" +"ອະນຸຍາດໃຫ້ໃຊ້ຮູບແບບ ``b'#!pythonw'``. ໂດຍ ``b'#!pythonw'`` ບົ່ງບອກເຖິງສະຄຣິບແບບ GUI " +"ແທນທີ່ຈະເປັນສະຄຣິບແບບຄອນໂຊລ (console)." + +#: ../source/specifications/binary-distribution-format.rst:72 +msgid "Generate script wrappers." +msgstr "ສ້າງຕົວຫຸ້ມສະຄຣິບ (script wrappers)." + +#: ../source/specifications/binary-distribution-format.rst:70 +msgid "" +"In wheel, scripts packaged on Unix systems will certainly not have " +"accompanying .exe wrappers. Windows installers may want to add them during " +"install." +msgstr "" +"ໃນ wheel, ສະຄຣິບທີ່ເຮັດແພັກເກດໃນລະບົບ Unix ຈະບໍ່ມີຕົວຫຸ້ມ .exe. ຕົວຕິດຕັ້ງ Windows " +"ອາດຈະຕ້ອງການເພີ່ມພວກມັນໃນລະຫວ່າງການຕິດຕັ້ງ." + +#: ../source/specifications/binary-distribution-format.rst:75 +msgid "Recommended archiver features" +msgstr "ຄຸນສົມບັດທີ່ແນະນຳສຳລັບຕົວຈັດເກັບໄຟລ໌ (archiver)" + +#: ../source/specifications/binary-distribution-format.rst:82 +msgid "Place ``.dist-info`` at the end of the archive." +msgstr "ວາງ ``.dist-info`` ໄວ້ທີ່ສ່ວນທ້າຍຂອງໄຟລ໌ບີບອັດ." + +#: ../source/specifications/binary-distribution-format.rst:78 +msgid "" +"Archivers are encouraged to place the ``.dist-info`` files physically at the " +"end of the archive. This enables some potentially interesting ZIP tricks " +"including the ability to amend the metadata without rewriting the entire " +"archive." +msgstr "" +"ແນະນຳໃຫ້ຕົວຈັດເກັບໄຟລ໌ວາງໄຟລ໌ ``.dist-info`` ໄວ້ທີ່ສ່ວນທ້າຍຂອງໄຟລ໌ບີບອັດ. " +"ສິ່ງນີ້ຊ່ວຍໃຫ້ສາມາດແກ້ໄຂ metadata ໄດ້ໂດຍບໍ່ຕ້ອງຂຽນໄຟລ໌ບີບອັດໃໝ່ທັງໝົດ." + +#: ../source/specifications/binary-distribution-format.rst:85 +#: ../source/specifications/pylock-toml.rst:51 +msgid "File Format" +msgstr "ຮູບແບບໄຟລ໌" + +#: ../source/specifications/binary-distribution-format.rst:90 +msgid "File name convention" +msgstr "ຂໍ້ກຳນົດການຕັ້ງຊື່ໄຟລ໌" + +#: ../source/specifications/binary-distribution-format.rst:92 +msgid "" +"The wheel filename is ``{distribution}-{version}(-{build tag})?-{python tag}-" +"{abi tag}-{platform tag}.whl``." +msgstr "" +"ຊື່ໄຟລ໌ wheel ແມ່ນ ``{distribution}-{version}(-{build tag})?-{python tag}-{abi " +"tag}-{platform tag}.whl``." + +#: ../source/specifications/binary-distribution-format.rst:96 +msgid "distribution" +msgstr "ການແຈກຢາຍ (distribution)" + +#: ../source/specifications/binary-distribution-format.rst:96 +msgid "Distribution name, e.g. 'django', 'pyramid'." +msgstr "ຊື່ການແຈກຢາຍ, ເຊັ່ນ: 'django', 'pyramid'." + +#: ../source/specifications/binary-distribution-format.rst:99 +msgid "version" +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:99 +msgid "Distribution version, e.g. 1.0." +msgstr "ເວີຊັນຂອງການແຈກຢາຍ, ເຊັ່ນ: 1.0." + +#: ../source/specifications/binary-distribution-format.rst:124 +msgid "build tag" +msgstr "ແທັກການບິວ (build tag)" + +#: ../source/specifications/binary-distribution-format.rst:102 +msgid "" +"Optional build number. Must start with a digit. Acts as a tie-breaker if " +"two wheel file names are the same in all other respects (i.e. name, version, " +"and other tags). Sort as an empty tuple if unspecified, else sort as a two-" +"item tuple with the first item being the initial digits as an ``int``, and " +"the second item being the remainder of the tag as a ``str``." +msgstr "" +"ເລກລຳດັບການບິວ (ບໍ່ບັງຄັບ). ຕ້ອງຂຶ້ນຕົ້ນດ້ວຍຕົວເລກ. ໃຊ້ເພື່ອແຍກຄວາມແຕກຕ່າງຫາກຊື່ໄຟລ໌ wheel " +"ອື່ນໆຄືກັນໝົດ." + +#: ../source/specifications/binary-distribution-format.rst:109 +msgid "" +"A common use-case for build numbers is rebuilding a binary distribution due " +"to a change in the build environment, like when using the manylinux image to " +"build distributions using pre-release CPython versions." +msgstr "" +"ກໍລະນີທົ່ວໄປສຳລັບການໃຊ້ເລກການບິວແມ່ນການບິວການແຈກຢາຍແບບບາຍນາຣີໃໝ່ " +"ເນື່ອງຈາກການປ່ຽນແປງໃນສະພາບແວດລ້ອມການບິວ." + +#: ../source/specifications/binary-distribution-format.rst:116 +msgid "" +"Build numbers are not a part of the distribution version and thus are " +"difficult to reference externally, especially so outside the Python " +"ecosystem of tools and standards. A common case where a distribution would " +"need to referenced externally is when resolving a security vulnerability." +msgstr "ເລກການບິວບໍ່ແມ່ນສ່ວນໜຶ່ງຂອງເວີຊັນການແຈກຢາຍ ແລະ ຍາກທີ່ຈະອ້າງອີງຈາກພາຍນອກ." + +#: ../source/specifications/binary-distribution-format.rst:121 +msgid "" +"Due to this limitation, new distributions which need to be referenced " +"externally **should not** use build numbers when building the new " +"distribution. Instead a **new distribution version** should be created for " +"such cases." +msgstr "" +"ເນື່ອງຈາກຂໍ້ຈຳກັດນີ້, ການແຈກຢາຍໃໝ່ທີ່ຕ້ອງມີການອ້າງອີງຈາກພາຍນອກ **ບໍ່ຄວນ** ໃຊ້ເລກການບິວ. " +"ແຕ່ຄວນສ້າງ **ເວີຊັນການແຈກຢາຍໃໝ່** ແທນ." + +#: ../source/specifications/binary-distribution-format.rst:127 +msgid "language implementation and version tag" +msgstr "ແທັກການເຮັດວຽກຂອງພາສາ ແລະ ເວີຊັນ" + +#: ../source/specifications/binary-distribution-format.rst:127 +msgid "E.g. 'py27', 'py2', 'py3'." +msgstr "ເຊັ່ນ: 'py27', 'py2', 'py3'." + +#: ../source/specifications/binary-distribution-format.rst:130 +#: ../source/specifications/platform-compatibility-tags.rst:20 +msgid "abi tag" +msgstr "ແທັກ ABI" + +#: ../source/specifications/binary-distribution-format.rst:130 +msgid "E.g. 'cp33m', 'abi3', 'none'." +msgstr "ເຊັ່ນ: 'cp33m', 'abi3', 'none'." + +#: ../source/specifications/binary-distribution-format.rst:133 +#: ../source/specifications/platform-compatibility-tags.rst:23 +msgid "platform tag" +msgstr "ແທັກແພລັດຟອມ (platform tag)" + +#: ../source/specifications/binary-distribution-format.rst:133 +msgid "E.g. 'linux_x86_64', 'any'." +msgstr "ເຊັ່ນ: 'linux_x86_64', 'any'." + +#: ../source/specifications/binary-distribution-format.rst:135 +msgid "" +"For example, ``distribution-1.0-1-py27-none-any.whl`` is the first build of " +"a package called 'distribution', and is compatible with Python 2.7 (any " +"Python 2.7 implementation), with no ABI (pure Python), on any CPU " +"architecture." +msgstr "" +"ຕົວຢ່າງ: ``distribution-1.0-1-py27-none-any.whl`` ແມ່ນການບິວຄັ້ງທຳອິດຂອງແພັກເກດ " +"'distribution', ເຊິ່ງເຂົ້າກັນໄດ້ກັບ Python 2.7, ບໍ່ມີ ABI (pure Python), " +"ເທິງສະຖາປັດຕະຍະກຳ CPU ໃດກໍໄດ້." + +#: ../source/specifications/binary-distribution-format.rst:140 +msgid "" +"The last three components of the filename before the extension are called " +"\"compatibility tags.\" The compatibility tags express the package's basic " +"interpreter requirements and are detailed in PEP 425." +msgstr "" +"ສາມສ່ວນປະກອບສຸດທ້າຍຂອງຊື່ໄຟລ໌ກ່ອນນາມສະກຸນເອີ້ນວ່າ \"compatibility tags\" " +"(ແທັກຄວາມເຂົ້າກັນໄດ້)." + +#: ../source/specifications/binary-distribution-format.rst:145 +msgid "Escaping and Unicode" +msgstr "ການໃຊ້ Escaping ແລະ Unicode" + +#: ../source/specifications/binary-distribution-format.rst:147 +msgid "" +"As the components of the filename are separated by a dash (``-``, HYPHEN-" +"MINUS), this character cannot appear within any component. This is handled " +"as follows:" +msgstr "" +"ເນື່ອງຈາກສ່ວນປະກອບຂອງຊື່ໄຟລ໌ຖືກແຍກດ້ວຍເຄື່ອງໝາຍຂີດ (``-``), " +"ຕົວອັກສອນນີ້ຈຶ່ງບໍ່ສາມາດປາກົດຢູ່ພາຍໃນສ່ວນປະກອບໃດໜຶ່ງໄດ້. ສິ່ງນີ້ຖືກຈັດການດັ່ງນີ້:" + +#: ../source/specifications/binary-distribution-format.rst:150 +msgid "" +"In distribution names, any run of ``-_.`` characters (HYPHEN-MINUS, LOW LINE " +"and FULL STOP) should be replaced with ``_`` (LOW LINE), and uppercase " +"characters should be replaced with corresponding lowercase ones. This is " +"equivalent to regular :ref:`name normalization ` " +"followed by replacing ``-`` with ``_``. Tools consuming wheels must be " +"prepared to accept ``.`` (FULL STOP) and uppercase letters, however, as " +"these were allowed by an earlier version of this specification." +msgstr "" +"ໃນຊື່ການແຈກຢາຍ, ຕົວອັກສອນ ``-_.`` ຄວນຖືກແທນທີ່ດ້ວຍ ``_`` ແລະ " +"ຕົວອັກສອນໃຫຍ່ຄວນຖືກແທນທີ່ດ້ວຍຕົວອັກສອນນ້ອຍ." + +#: ../source/specifications/binary-distribution-format.rst:157 +msgid "" +"Version numbers should be normalised according to the :ref:`Version " +"specifier specification `. Normalised version numbers " +"cannot contain ``-``." +msgstr "" +"ເລກເວີຊັນຄວນຖືກເຮັດໃຫ້ເປັນມາດຕະຖານ (normalised). " +"ເລກເວີຊັນທີ່ເປັນມາດຕະຖານແລ້ວບໍ່ສາມາດມີເຄື່ອງໝາຍ ``-``." + +#: ../source/specifications/binary-distribution-format.rst:159 +msgid "" +"The remaining components may not contain ``-`` characters, so no escaping is " +"necessary." +msgstr "ສ່ວນປະກອບທີ່ເຫຼືອອາດຈະບໍ່ມີຕົວອັກສອນ ``-``, ດັ່ງນັ້ນຈຶ່ງບໍ່ຈຳເປັນຕ້ອງໃຊ້ escaping." + +#: ../source/specifications/binary-distribution-format.rst:162 +msgid "" +"Tools producing wheels should verify that the filename components do not " +"contain ``-``, as the resulting file may not be processed correctly if they " +"do." +msgstr "ເຄື່ອງມືທີ່ສ້າງ wheel ຄວນກວດສອບວ່າສ່ວນປະກອບຂອງຊື່ໄຟລ໌ບໍ່ມີ ``-``." + +#: ../source/specifications/binary-distribution-format.rst:165 +msgid "" +"The archive filename is Unicode. It will be some time before the tools are " +"updated to support non-ASCII filenames, but they are supported in this " +"specification." +msgstr "" +"ຊື່ໄຟລ໌ບີບອັດແມ່ນ Unicode. ເຖິງວ່າຈະຕ້ອງໃຊ້ເວລາອີກໄລຍະໜຶ່ງກ່ອນທີ່ເຄື່ອງມືຕ່າງໆຈະຮອງຮັບຊື່ໄຟລ໌ທີ່ບໍ່ແມ່ນ " +"ASCII, ແຕ່ພວກມັນກໍໄດ້ຮັບການຮອງຮັບໃນຂໍ້ກຳນົດນີ້." + +#: ../source/specifications/binary-distribution-format.rst:169 +msgid "" +"The filenames *inside* the archive are encoded as UTF-8. Although some ZIP " +"clients in common use do not properly display UTF-8 filenames, the encoding " +"is supported by both the ZIP specification and Python's ``zipfile``." +msgstr "ຊື່ໄຟລ໌ *ພາຍໃນ* ໄຟລ໌ບີບອັດຖືກເຂົ້າລະຫັດເປັນ UTF-8." + +#: ../source/specifications/binary-distribution-format.rst:175 +msgid "File contents" +msgstr "ເນື້ອໃນໄຟລ໌" + +#: ../source/specifications/binary-distribution-format.rst:177 +msgid "" +"The contents of a wheel file, where {distribution} is replaced with " +"the :ref:`normalized name ` of the package, e.g. " +"``beaglevote`` and {version} is replaced with its :ref:`normalized version " +"`, e.g. ``1.0.0``, (with dash/``-`` " +"characters replaced with underscore/``_`` characters in both fields) consist " +"of:" +msgstr "" +"ເນື້ອໃນຂອງໄຟລ໌ wheel, ໂດຍທີ່ {distribution} ຖືກແທນທີ່ດ້ວຍ :ref:`ຊື່ທີ່ປັບໃຫ້ເປັນມາດຕະຖານ " +"` ຂອງແພັກເກດ, ຕົວຢ່າງ: ``beaglevote`` ແລະ {version} " +"ຖືກແທນທີ່ດ້ວຍ :ref:`ເວີຊັນທີ່ປັບໃຫ້ເປັນມາດຕະຖານ ` " +"ຂອງມັນ, ຕົວຢ່າງ: ``1.0.0``, (ໂດຍການແທນທີ່ຕົວອັກສອນຂີດຕໍ່/``-`` ດ້ວຍຕົວອັກສອນຂີດກ້ອງ/``_`` " +"ໃນທັງສອງຟິວ) ປະກອບມີ:" + +#: ../source/specifications/binary-distribution-format.rst:184 +msgid "" +"``/``, the root of the archive, contains all files to be installed in " +"``purelib`` or ``platlib`` as specified in ``WHEEL``. ``purelib`` and " +"``platlib`` are usually both ``site-packages``." +msgstr "" +"``/`` ເຊິ່ງເປັນຮາກ (root) ຂອງໄຟລ໌ບີບອັດ, ບັນຈຸໄຟລ໌ທັງໝົດທີ່ຈະຕິດຕັ້ງໃນ ``purelib`` ຫຼື " +"``platlib``." + +#: ../source/specifications/binary-distribution-format.rst:187 +msgid "``{distribution}-{version}.dist-info/`` contains metadata." +msgstr "``{distribution}-{version}.dist-info/`` ບັນຈຸ metadata." + +#: ../source/specifications/binary-distribution-format.rst:188 +msgid "" +":file:`{distribution}-{version}.dist-info/licenses/` contains license files." +msgstr "" +":file:`{distribution}-{version}.dist-info/licenses/` ບັນຈຸໄຟລ໌ໃບອະນຸຍາດ " +"(license)." + +#: ../source/specifications/binary-distribution-format.rst:189 +msgid "" +"``{distribution}-{version}.data/`` contains one subdirectory for each non-" +"empty install scheme key not already covered, where the subdirectory name is " +"an index into a dictionary of install paths (e.g. ``data``, ``scripts``, " +"``headers``, ``purelib``, ``platlib``)." +msgstr "``{distribution}-{version}.data/`` ບັນຈຸໄດເຣັກທໍຣີຍ່ອຍສຳລັບແຕ່ລະຮູບແບບການຕິດຕັ້ງ." + +#: ../source/specifications/binary-distribution-format.rst:193 +msgid "" +"Python scripts must appear in ``scripts`` and begin with exactly ``b'#!" +"python'`` in order to enjoy script wrapper generation and ``#!python`` " +"rewriting at install time. They may have any or no extension. The " +"``scripts`` directory may only contain regular files." +msgstr "ສະຄຣິບ Python ຕ້ອງປາກົດຢູ່ໃນ ``scripts`` ແລະ ເລີ່ມຕົ້ນດ້ວຍ ``b'#!python'``." + +#: ../source/specifications/binary-distribution-format.rst:197 +msgid "" +"``{distribution}-{version}.dist-info/METADATA`` is Metadata version 1.1 or " +"greater format metadata." +msgstr "" +"``{distribution}-{version}.dist-info/METADATA`` ແມ່ນ metadata ໃນຮູບແບບເວີຊັນ 1.1 " +"ຫຼື ສູງກວ່າ." + +#: ../source/specifications/binary-distribution-format.rst:199 +msgid "" +"``{distribution}-{version}.dist-info/WHEEL`` is metadata about the archive " +"itself in the same basic key: value format::" +msgstr "" +"``{distribution}-{version}.dist-info/WHEEL`` ແມ່ນ metadata ກ່ຽວກັບຕົວໄຟລ໌ບີບອັດເອງ." + +#: ../source/specifications/binary-distribution-format.rst:209 +msgid "``Wheel-Version`` is the version number of the Wheel specification." +msgstr "``Wheel-Version`` ແມ່ນເລກເວີຊັນຂອງຂໍ້ກຳນົດ Wheel." + +#: ../source/specifications/binary-distribution-format.rst:210 +msgid "" +"``Generator`` is the name and optionally the version of the software that " +"produced the archive." +msgstr "``Generator`` ແມ່ນຊື່ ແລະ ເວີຊັນ (ຖ້າມີ) ຂອງຊອບແວທີ່ສ້າງໄຟລ໌ບີບອັດນີ້." + +#: ../source/specifications/binary-distribution-format.rst:212 +msgid "" +"``Root-Is-Purelib`` is true if the top level directory of the archive should " +"be installed into purelib; otherwise the root should be installed into " +"platlib." +msgstr "" +"``Root-Is-Purelib`` ເປັນ true ຫາກໄດເຣັກທໍຣີລະດັບສູງສຸດຂອງໄຟລ໌ບີບອັດຄວນຖືກຕິດຕັ້ງໃນ purelib." + +#: ../source/specifications/binary-distribution-format.rst:215 +msgid "" +"``Tag`` is the wheel's expanded compatibility tags; in the example the " +"filename would contain ``py2.py3-none-any``." +msgstr "``Tag`` ແມ່ນແທັກຄວາມເຂົ້າກັນໄດ້ຂອງ wheel." + +#: ../source/specifications/binary-distribution-format.rst:217 +msgid "" +"``Build`` is the build number and is omitted if there is no build number." +msgstr "``Build`` ແມ່ນເລກການບິວ ແລະ ຈະຖືກລະເວັ້ນຫາກບໍ່ມີເລກການບິວ." + +#: ../source/specifications/binary-distribution-format.rst:218 +msgid "" +"A wheel installer should warn if Wheel-Version is greater than the version " +"it supports, and must fail if Wheel-Version has a greater major version than " +"the version it supports." +msgstr "ຕົວຕິດຕັ້ງ wheel ຄວນແຈ້ງເຕືອນຫາກ Wheel-Version ສູງກວ່າເວີຊັນທີ່ມັນຮອງຮັບ." + +#: ../source/specifications/binary-distribution-format.rst:221 +msgid "" +"Wheel, being an installation format that is intended to work across multiple " +"versions of Python, does not generally include .pyc files." +msgstr "" +"ເນື່ອງຈາກ wheel ເປັນຮູບແບບການຕິດຕັ້ງທີ່ອອກແບບມາເພື່ອເຮັດວຽກຂ້າມ Python ຫຼາຍເວີຊັນ, " +"ໂດຍທົ່ວໄປແລ້ວມັນຈຶ່ງບໍ່ລວມໄຟລ໌ .pyc." + +#: ../source/specifications/binary-distribution-format.rst:223 +msgid "Wheel does not contain setup.py or setup.cfg." +msgstr "Wheel ບໍ່ມີ setup.py ຫຼື setup.cfg." + +#: ../source/specifications/binary-distribution-format.rst:225 +msgid "" +"This version of the wheel specification is based on the distutils install " +"schemes and does not define how to install files to other locations. The " +"layout offers a superset of the functionality provided by the existing " +"wininst and egg binary formats." +msgstr "ຂໍ້ກຳນົດເວີຊັນນີ້ຂອງ wheel ແມ່ນອີງຕາມຮູບແບບການຕິດຕັ້ງຂອງ distutils." + +#: ../source/specifications/binary-distribution-format.rst:232 +#: ../source/specifications/recording-installed-packages.rst:23 +msgid "The .dist-info directory" +msgstr "ໄດເຣັກທໍຣີ .dist-info" + +#: ../source/specifications/binary-distribution-format.rst:234 +msgid "" +"Wheel .dist-info directories include at a minimum METADATA, WHEEL, and " +"RECORD." +msgstr "ໄດເຣັກທໍຣີ .dist-info ຂອງ Wheel ຢ່າງໜ້ອຍຕ້ອງມີ METADATA, WHEEL ແລະ RECORD." + +#: ../source/specifications/binary-distribution-format.rst:236 +msgid "" +"METADATA is the package metadata, the same format as PKG-INFO as found at " +"the root of sdists." +msgstr "METADATA ແມ່ນ metadata ຂອງແພັກເກດ, ເຊິ່ງຢູ່ໃນຮູບແບບດຽວກັນກັບ PKG-INFO." + +#: ../source/specifications/binary-distribution-format.rst:238 +msgid "WHEEL is the wheel metadata specific to a build of the package." +msgstr "WHEEL ແມ່ນ metadata ຂອງ wheel ທີ່ສະເພາະເຈາະຈົງກັບການບິວຂອງແພັກເກດນັ້ນ." + +#: ../source/specifications/binary-distribution-format.rst:239 +msgid "" +"RECORD is a list of (almost) all the files in the wheel and their secure " +"hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " +"hash of itself, must include its hash. The hash algorithm must be sha256 or " +"better; specifically, md5 and sha1 are not permitted." +msgstr "RECORD ແມ່ນລາຍການໄຟລ໌ເກືອບທັງໝົດໃນ wheel ພ້ອມກັບຄ່າແຮຊ (hash) ເພື່ອຄວາມປອດໄພ." + +#: ../source/specifications/binary-distribution-format.rst:244 +msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." +msgstr "INSTALLER ແລະ REQUESTED ຂອງ PEP 376 ບໍ່ໄດ້ຖືກລວມໄວ້ໃນໄຟລ໌ບີບອັດ." + +#: ../source/specifications/binary-distribution-format.rst:245 +msgid "" +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." +msgstr "RECORD.jws ແລະ RECORD.p7s ຖືກຍົກເລີກການໃຊ້ງານແລ້ວ (deprecated)." + +#: ../source/specifications/binary-distribution-format.rst:250 +msgid "" +"During extraction, wheel installers verify all the hashes in RECORD against " +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." +msgstr "" +"ໃນລະຫວ່າງການແຕກໄຟລ໌, ຕົວຕິດຕັ້ງ wheel ຈະກວດສອບຄ່າແຮຊທັງໝົດໃນ RECORD ທຽບກັບເນື້ອໃນໄຟລ໌." + +#: ../source/specifications/binary-distribution-format.rst:256 +msgid "Subdirectories in :file:`.dist-info/`" +msgstr "ໄດເຣັກທໍຣີຍ່ອຍໃນ :file:`.dist-info/`" + +#: ../source/specifications/binary-distribution-format.rst:258 +msgid "" +"Subdirectories under :file:`.dist-info/` are reserved for future use. The " +"following subdirectory names under :file:`.dist-info/` are reserved for " +"specific usage:" +msgstr "ໄດເຣັກທໍຣີຍ່ອຍພາຍໃຕ້ :file:`.dist-info/` ຖືກສະຫງວນໄວ້ສຳລັບການໃຊ້ງານໃນອະນາຄົດ." + +#: ../source/specifications/binary-distribution-format.rst:262 +msgid "Subdirectory name" +msgstr "ຊື່ໄດເຣັກທໍຣີຍ່ອຍ" + +#: ../source/specifications/binary-distribution-format.rst:262 +msgid "PEP / Standard" +msgstr "PEP / ມາດຕະຖານ" + +#: ../source/specifications/binary-distribution-format.rst:264 +msgid "``licenses``" +msgstr "``licenses``" + +#: ../source/specifications/binary-distribution-format.rst:264 +#: ../source/specifications/binary-distribution-format.rst:265 +msgid ":pep:`639`" +msgstr ":pep:`639`" + +#: ../source/specifications/binary-distribution-format.rst:265 +msgid "``license_files``" +msgstr "``license_files``" + +#: ../source/specifications/binary-distribution-format.rst:266 +msgid "``LICENSES``" +msgstr "``LICENSES``" + +#: ../source/specifications/binary-distribution-format.rst:266 +msgid "`REUSE licensing framework `__" +msgstr "`ໂຄງສ້າງການອອກໃບອະນຸຍາດ REUSE `__" + +#: ../source/specifications/binary-distribution-format.rst:267 +msgid "``sboms``" +msgstr "``sboms``" + +#: ../source/specifications/binary-distribution-format.rst:267 +msgid ":pep:`770`" +msgstr ":pep:`770`" + +#: ../source/specifications/binary-distribution-format.rst:271 +msgid "The :file:`.dist-info/licenses/` directory" +msgstr "ໄດເຣັກທໍຣີ :file:`.dist-info/licenses/`" + +#: ../source/specifications/binary-distribution-format.rst:273 +msgid "" +"If the metadata version is 2.4 or greater and one or more ``License-File`` " +"fields is specified, the :file:`.dist-info/` directory MUST contain " +"a :file:`licenses/` subdirectory, which MUST contain the files listed in the " +"``License-File`` fields in the :file:`METADATA` file at their respective " +"paths relative to the :file:`licenses/` directory." +msgstr "" +"ຖ້າເວີຊັນ metadata ແມ່ນ 2.4 ຫຼື ສູງກວ່າ, ໄດເຣັກທໍຣີ :file:`.dist-info/` " +"ຕ້ອງມີໄດເຣັກທໍຣີຍ່ອຍ :file:`licenses/`." + +#: ../source/specifications/binary-distribution-format.rst:282 +msgid "The :file:`.dist-info/sboms/` directory" +msgstr "ໄດເຣັກທໍຣີ :file:`.dist-info/sboms/`" + +#: ../source/specifications/binary-distribution-format.rst:284 +msgid "" +"All files contained within the :file:`.dist-info/sboms/` directory MUST be " +"Software Bill-of-Materials (SBOM) files that describe software contained " +"within the distribution archive." +msgstr "" +"ທຸກໄຟລ໌ພາຍໃນໄດເຣັກທໍຣີ :file:`.dist-info/sboms/` ຕ້ອງເປັນໄຟລ໌ Software Bill-of-" +"Materials (SBOM)." + +#: ../source/specifications/binary-distribution-format.rst:289 +msgid "The .data directory" +msgstr "ໄດເຣັກທໍຣີ .data" + +#: ../source/specifications/binary-distribution-format.rst:291 +msgid "" +"Any file that is not normally installed inside site-packages goes into " +"the .data directory, named as the .dist-info directory but with the .data/ " +"extension::" +msgstr "ໄຟລ໌ໃດກໍຕາມທີ່ປົກກະຕິບໍ່ໄດ້ຕິດຕັ້ງພາຍໃນ site-packages ຈະຖືກເກັບໄວ້ໃນໄດເຣັກທໍຣີ .data." + +#: ../source/specifications/binary-distribution-format.rst:299 +msgid "" +"The .data directory contains subdirectories with the scripts, headers, " +"documentation and so forth from the distribution. During installation the " +"contents of these subdirectories are moved onto their destination paths." +msgstr "ໄດເຣັກທໍຣີ .data ບັນຈຸໄດເຣັກທໍຣີຍ່ອຍພ້ອມກັບສະຄຣິບ, headers, ເອກະສານ ແລະ ອື່ນໆ." + +#: ../source/specifications/binary-distribution-format.rst:305 +#: ../source/specifications/platform-compatibility-tags.rst:376 +msgid "FAQ" +msgstr "ຄຳຖາມທີ່ພົບເລື້ອຍ (FAQ)" + +#: ../source/specifications/binary-distribution-format.rst:309 +msgid "Wheel defines a .data directory. Should I put all my data there?" +msgstr "Wheel ກຳນົດໄດເຣັກທໍຣີ .data. ຂ້ອຍຄວນເອົາຂໍ້ມູນທັງໝົດໄວ້ທີ່ນັ້ນບໍ່?" + +#: ../source/specifications/binary-distribution-format.rst:311 +msgid "" +"This specification does not have an opinion on how you should organize your " +"code. The .data directory is just a place for any files that are not " +"normally installed inside ``site-packages`` or on the PYTHONPATH. In other " +"words, you may continue to use ``pkgutil.get_data(package, resource)`` even " +"though *those* files will usually not be distributed in *wheel's* ``.data`` " +"directory." +msgstr "ຂໍ້ກຳນົດນີ້ບໍ່ໄດ້ບັງຄັບວິທີການຈັດລະບຽບໂຄດຂອງທ່ານ." + +#: ../source/specifications/binary-distribution-format.rst:320 +msgid "What's the deal with \"purelib\" vs. \"platlib\"?" +msgstr "\"purelib\" ກັບ \"platlib\" ແຕກຕ່າງກັນແນວໃດ?" + +#: ../source/specifications/binary-distribution-format.rst:322 +msgid "" +"Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " +"significant on some platforms. For example, Fedora installs pure Python " +"packages to '/usr/lib/pythonX.Y/site-packages' and platform dependent " +"packages to '/usr/lib64/pythonX.Y/site-packages'." +msgstr "Wheel ຍັງຄົງຮັກສາຄວາມແຕກຕ່າງລະຫວ່າງ \"purelib\" ແລະ \"platlib\" ເອົາໄວ້." + +#: ../source/specifications/binary-distribution-format.rst:327 +msgid "" +"A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" +"{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " +"true\" with those same files in the root, and it is legal to have files in " +"both the \"purelib\" and \"platlib\" categories." +msgstr "" +"wheel ທີ່ມີ \"Root-Is-Purelib: false\" ໂດຍມີໄຟລ໌ທັງໝົດຢູ່ໃນ ``{name}-{version}.data/" +"purelib`` ແມ່ນທຽບເທົ່າກັບ wheel ທີ່ມີ \"Root-Is-Purelib: true\" ທີ່ມີໄຟລ໌ດຽວກັນເຫຼົ່ານັ້ນຢູ່ໃນ " +"root, ແລະ ມັນເປັນສິ່ງທີ່ຖືກຕ້ອງທີ່ຈະມີໄຟລ໌ຢູ່ໃນທັງໝວດໝູ່ \"purelib\" ແລະ \"platlib\"." + +#: ../source/specifications/binary-distribution-format.rst:332 +msgid "" +"In practice a wheel should have only one of \"purelib\" or \"platlib\" " +"depending on whether it is pure Python or not and those files should be at " +"the root with the appropriate setting given for \"Root-is-purelib\"." +msgstr "ໃນທາງປະຕິບັດ, wheel ຄວນມີພຽງຢ່າງໃດຢ່າງໜຶ່ງ." + +#: ../source/specifications/binary-distribution-format.rst:340 +msgid "Is it possible to import Python code directly from a wheel file?" +msgstr "ເປັນໄປໄດ້ບໍ່ທີ່ຈະ import ໂຄດ Python ໂດຍກົງຈາກໄຟລ໌ wheel?" + +#: ../source/specifications/binary-distribution-format.rst:342 +msgid "" +"Technically, due to the combination of supporting installation via simple " +"extraction and using an archive format that is compatible with " +"``zipimport``, a subset of wheel files *do* support being placed directly on " +"``sys.path``. However, while this behaviour is a natural consequence of the " +"format design, actually relying on it is generally discouraged." +msgstr "ໃນທາງເຕັກນິກແລ້ວ ສາມາດເຮັດໄດ້ ແຕ່ໂດຍທົ່ວໄປແລ້ວບໍ່ແນະນຳໃຫ້ເຮັດ." + +#: ../source/specifications/binary-distribution-format.rst:348 +msgid "" +"Firstly, wheel *is* designed primarily as a distribution format, so skipping " +"the installation step also means deliberately avoiding any reliance on " +"features that assume full installation (such as being able to use standard " +"tools like ``pip`` and ``virtualenv`` to capture and manage dependencies in " +"a way that can be properly tracked for auditing and security update " +"purposes, or integrating fully with the standard build machinery for C " +"extensions by publishing header files in the appropriate place)." +msgstr "ປະການທຳອິດ, wheel ຖືກອອກແບບມາເພື່ອເປັນຮູບແບບການແຈກຢາຍເປັນຫຼັກ." + +#: ../source/specifications/binary-distribution-format.rst:357 +msgid "" +"Secondly, while some Python software is written to support running directly " +"from a zip archive, it is still common for code to be written assuming it " +"has been fully installed. When that assumption is broken by trying to run " +"the software from a zip archive, the failures can often be obscure and hard " +"to diagnose (especially when they occur in third party libraries). The two " +"most common sources of problems with this are the fact that importing C " +"extensions from a zip archive is *not* supported by CPython (since doing so " +"is not supported directly by the dynamic loading machinery on any platform) " +"and that when running from a zip archive the ``__file__`` attribute no " +"longer refers to an ordinary filesystem path, but to a combination path that " +"includes both the location of the zip archive on the filesystem and the " +"relative path to the module inside the archive. Even when software correctly " +"uses the abstract resource APIs internally, interfacing with external " +"components may still require the availability of an actual on-disk file." +msgstr "" +"ປະການທີສອງ, ເຖິງວ່າຊອບແວ Python ບາງຊະນິດຈະຮອງຮັບການລັນຈາກ zip, " +"ແຕ່ປົກກະຕິແລ້ວໂຄດມັກຈະຖືກຂຽນໂດຍສົມມຸດວ່າມັນຖືກຕິດຕັ້ງຢ່າງສົມບູນແລ້ວ." + +#: ../source/specifications/binary-distribution-format.rst:374 +msgid "" +"Like metaclasses, monkeypatching and metapath importers, if you're not " +"already sure you need to take advantage of this feature, you almost " +"certainly don't need it. If you *do* decide to use it anyway, be aware that " +"many projects will require a failure to be reproduced with a fully installed " +"package before accepting it as a genuine bug." +msgstr "ຖ້າທ່ານບໍ່ແນ່ໃຈວ່າທ່ານຕ້ອງໃຊ້ຄຸນສົມບັດນີ້, ທ່ານກໍອາດຈະບໍ່ຈຳເປັນຕ້ອງໃຊ້ມັນ." + +#: ../source/specifications/binary-distribution-format.rst:382 +#: ../source/specifications/core-metadata.rst:1043 +#: ../source/specifications/dependency-groups.rst:250 +#: ../source/specifications/dependency-specifiers.rst:680 +#: ../source/specifications/direct-url-data-structure.rst:292 +#: ../source/specifications/direct-url.rst:67 +#: ../source/specifications/entry-points.rst:163 +#: ../source/specifications/externally-managed-environments.rst:472 +#: ../source/specifications/glob-patterns.rst:118 +#: ../source/specifications/inline-script-metadata.rst:224 +#: ../source/specifications/name-normalization.rst:50 +#: ../source/specifications/platform-compatibility-tags.rst:440 +#: ../source/specifications/pylock-toml.rst:841 +#: ../source/specifications/pyproject-toml.rst:697 +#: ../source/specifications/recording-installed-packages.rst:278 +#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/source-distribution-format.rst:153 +#: ../source/specifications/version-specifiers.rst:1282 +#: ../source/specifications/virtual-environments.rst:54 +msgid "History" +msgstr "ປະຫວັດ" + +#: ../source/specifications/binary-distribution-format.rst:384 +msgid "February 2013: This specification was approved through :pep:`427`." +msgstr "ກຸມພາ 2013: ຂໍ້ກຳນົດນີ້ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`427`." + +#: ../source/specifications/binary-distribution-format.rst:385 +msgid "" +"February 2021: The rules on escaping in wheel filenames were revised, to " +"bring them into line with what popular tools actually do." +msgstr "ກຸມພາ 2021: ກົດເກນກ່ຽວກັບການໃຊ້ escaping ໃນຊື່ໄຟລ໌ wheel ໄດ້ຖືກປັບປຸງ." + +#: ../source/specifications/binary-distribution-format.rst:387 +msgid "" +"December 2024: Clarified that the ``scripts`` folder should only contain " +"regular files (the expected behaviour of consuming tools when encountering " +"symlinks or subdirectories in this folder is not formally defined, and hence " +"may vary between tools)." +msgstr "ທັນວາ 2024: ເຮັດໃຫ້ແຈ້ງເຈນວ່າໂຟນເດີ ``scripts`` ຄວນບັນຈຸພຽງແຕ່ໄຟລ໌ທຳມະດາ." + +#: ../source/specifications/binary-distribution-format.rst:391 +#: ../source/specifications/recording-installed-packages.rst:288 +msgid "" +"December 2024: The :file:`.dist-info/licenses/` directory was specified " +"through :pep:`639`." +msgstr "" +"ທັນວາ 2024: ໄດເຣັກທໍຣີ :file:`.dist-info/licenses/` ໄດ້ຖືກກຳນົດຜ່ານ :pep:`639`." + +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "" +"January 2025: Clarified that name and version needs to be normalized for " +"``.dist-info`` and ``.data`` directories." +msgstr "" +"ມັງກອນ 2025: ເຮັດໃຫ້ແຈ້ງເຈນວ່າຊື່ ແລະ ເວີຊັນຕ້ອງໄດ້ຮັບການເຮັດໃຫ້ເປັນມາດຕະຖານ (normalized)." + +#: ../source/specifications/binary-distribution-format.rst:395 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "ມັງກອນ 2026: ຍົກເລີກການໃຊ້ງານ RECORD.jws ແລະ RECORD.p7s ຕາມ :pep:`815`." + +#: ../source/specifications/binary-distribution-format.rst:399 +msgid "Appendix" +msgstr "ພາກຜະໜວກ" + +#: ../source/specifications/binary-distribution-format.rst:401 +msgid "Example urlsafe-base64-nopad implementation::" +msgstr "ຕົວຢ່າງການເຮັດວຽກຂອງ urlsafe-base64-nopad::" + +#: ../source/specifications/build-details/index.rst:7 +#: ../source/specifications/build-details/index.rst:41 +msgid "v1.0" +msgstr "v1.0" + +#: ../source/specifications/build-details/index.rst:5 +msgid ":file:`build-details.json`" +msgstr ":file:`build-details.json`" + +#: ../source/specifications/build-details/index.rst:13 +msgid "" +"The ``build-details.json`` file is a standardized file format that provides " +"build-specfic information of a Python installation, such as its version, " +"extension ABI details, and other information that is specific to that " +"particular build of Python." +msgstr "" +"ໄຟລ໌ ``build-details.json`` ແມ່ນຮູບແບບໄຟລ໌ມາດຕະຖານທີ່ໃຫ້ຂໍ້ມູນສະເພາະຂອງການຕິດຕັ້ງ Python." + +#: ../source/specifications/build-details/index.rst:18 +msgid "" +"Starting from Python 3.14, a ``build-details.json`` file is installed in the " +"platform-independent standard library directory (``stdlib``, e.g. ``/usr/lib/" +"python3.14/build-details.json``)." +msgstr "" +"ເລີ່ມຕົ້ນຈາກ Python 3.14, ໄຟລ໌ ``build-details.json`` " +"ຈະຖືກຕິດຕັ້ງໃນໄດເຣັກທໍຣີໄລບຣາຣີມາດຕະຖານ." + +#: ../source/specifications/build-details/index.rst:22 +msgid "" +"Please refer to the :ref:`latest version ` for its " +"specification." +msgstr "ກະລຸນາອ້າງອີງ :ref:`ເວີຊັນຫຼ້າສຸດ ` ສຳລັບຂໍ້ກຳນົດ." + +#: ../source/specifications/build-details/index.rst:28 +#: ../source/specifications/build-details/v1.0.rst:16 +#: ../source/specifications/inline-script-metadata.rst:111 +#: ../source/specifications/pylock-toml.rst:737 +msgid "Example" +msgstr "ຕົວຢ່າງ" + +#: ../source/specifications/build-details/index.rst:35 +msgid "Changelog" +msgstr "ບັນທຶກການປ່ຽນແປງ" + +#: ../source/specifications/build-details/index.rst:45 +#: ../source/specifications/build-details/v1.0.rst:9 +#: ../source/specifications/dependency-groups.rst:20 +#: ../source/specifications/dependency-specifiers.rst:30 +#: ../source/specifications/direct-url-data-structure.rst:19 +#: ../source/specifications/direct-url.rst:15 +#: ../source/specifications/file-yanking.rst:20 +#: ../source/specifications/index-hosted-attestations.rst:17 +#: ../source/specifications/inline-script-metadata.rst:13 +#: ../source/specifications/license-expression.rst:12 +#: ../source/specifications/project-status-markers.rst:20 +msgid "Specification" +msgstr "ຂໍ້ກຳນົດ" + +#: ../source/specifications/build-details/index.rst:46 +msgid ":ref:`build-details-v1.0`" +msgstr ":ref:`build-details-v1.0`" + +#: ../source/specifications/build-details/index.rst:48 +msgid "Schema" +msgstr "Schema" + +#: ../source/specifications/build-details/index.rst:49 +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "" +"https://packaging.python.org/en/latest/specifications/schemas/build-details-" +"v1.0.schema.json" +msgstr "" +"https://packaging.python.org/en/latest/specifications/schemas/build-details-" +"v1.0.schema.json" + +#: ../source/specifications/build-details/index.rst:52 +msgid "Initial version, introduced by :pep:`739`." +msgstr "ເວີຊັນເລີ່ມຕົ້ນ, ແນະນຳໂດຍ :pep:`739`." + +#: ../source/specifications/build-details/v1.0.rst:5 +msgid "``build-details.json`` v1.0" +msgstr "``build-details.json`` v1.0" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "" +"*build-details.json — a static description file with build details of Python " +"installations*" +msgstr "" +"*build-details.json — ໄຟລ໌ຄຳອະທິບາຍແບບ static ພ້ອມລາຍລະອຽດການບິວຂອງການຕິດຕັ້ງ " +"Python*" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "type" +msgstr "ປະເພດ" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "*object*" +msgstr "*object*" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "properties" +msgstr "ຄຸນສົມບັດ (properties)" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "**schema\\_version**" +msgstr "**schema\\_version**" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "Schema version." +msgstr "ເວີຊັນຂອງ Schema." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "" +"This is a string following the format ``.``, where ```` " +"and ```` are unpaded numbers and represent the **major** and " +"**minor** components of the version. Versions may be arithmetically compared " +"by intrepreting the version string as a decimal number." +msgstr "ນີ້ແມ່ນສະຕຣິງ (string) ຕາມຮູບແບບ ``.``." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "" +"For this specification version, this value is constant and **MUST** be " +"``1.0``." +msgstr "ສຳລັບເວີຊັນຂໍ້ກຳນົດນີ້, ຄ່ານີ້ເປັນຄ່າຄົງທີ່ ແລະ **ຕ້ອງ** ເປັນ ``1.0``." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "" +"Future versions of this schema **MUST** use a higher version number. Future " +"versions of this schema **MUST NOT** use the same **major** version " +"component as other schema version unless its specification is deemed " +"backwards-compatible with them — it can't change, or extend, any parts of " +"the current specification in such a way as the semantics of the interpreted " +"data differ, or that data valid under the new specification is invalid under " +"the older specification, with the exception of additional properties (errors " +"caused by ``additionalProperties``)." +msgstr "ເວີຊັນໃນອະນາຄົດຂອງ schema ນີ້ **ຕ້ອງ** ໃຊ້ເລກເວີຊັນທີ່ສູງກວ່າ." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "*string*" +msgstr "*string*" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "const" +msgstr "const" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "1.0" +msgstr "1.0" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "**base\\_prefix**" +msgstr "**base\\_prefix**" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "Base prefix of the Python installation." +msgstr "Base prefix ຂອງການຕິດຕັ້ງ Python." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "" +"Either an absolute path, or a path relative to directory where this file is " +"contained." +msgstr "ອາດຈະເປັນເສັ້ນທາງສຳບູນ (absolute path) ຫຼື ເສັ້ນທາງທຽບຖານ (relative path)." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "examples" +msgstr "ຕົວຢ່າງ" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "/usr" +msgstr "/usr" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "../.." +msgstr "../.." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "base\\_interpreter" +msgstr "base\\_interpreter" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "The path to the Python interprer of the base installation." +msgstr "ເສັ້ນທາງໄປຫາຕົວແປພາສາ Python ຂອງການຕິດຕັ້ງພື້ນຖານ." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "Either an absolute path, or a path relative to ``base_prefix``." +msgstr "ອາດຈະເປັນເສັ້ນທາງສຳບູນ ຫຼື ເສັ້ນທາງທຽບຖານກັບ ``base_prefix``." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "" +"This field **MUST** be present if the installation provides an interpreter " +"executable." +msgstr "ຟິລ (field) ນີ້ **ຕ້ອງ** ມີຢູ່ຫາກການຕິດຕັ້ງມີໄຟລ໌ລັນຂອງຕົວແປພາສາ." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "/usr/bin/python" +msgstr "/usr/bin/python" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "bin/python" +msgstr "bin/python" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "**platform**" +msgstr "**platform**" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "System platform string." +msgstr "ສະຕຣິງແພລັດຟອມຂອງລະບົບ." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "This field **SHOULD** be equivalent to ``sysconfig.get_platform()``." +msgstr "ຟິລນີ້ **ຄວນ** ຈະທຽບເທົ່າກັບ ``sysconfig.get_platform()``." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "linux-x86\\_64" +msgstr "linux-x86\\_64" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "**language**" +msgstr "**language**" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "Object containing details related to the Python language specification." +msgstr "Object ທີ່ບັນຈຸລາຍລະອຽດກ່ຽວກັບຂໍ້ກຳນົດພາສາ Python." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "**version**" +msgstr "**version**" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "" +"String representation the Python language version — a version string " +"consisting only of the *major* and *minor* components." +msgstr "ສະຕຣິງແທນເວີຊັນພາສາ Python." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "" +"This field **SHOULD** be equivalent to ``sysconfig.get_python_version()``." +msgstr "ຟິລນີ້ **ຄວນ** ຈະທຽບເທົ່າກັບ ``sysconfig.get_python_version()``." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "3.14" +msgstr "3.14" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "version\\_info" +msgstr "version\\_info" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "Object in the format of :py:data:`sys.version_info`." +msgstr "Object ໃນຮູບແບບຂອງ :py:data:`sys.version_info`." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "This section **SHOULD** be equivalent to :py:data:`sys.version_info`." +msgstr "ສ່ວນນີ້ **ຄວນ** ຈະທຽບເທົ່າກັບ :py:data:`sys.version_info`." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "major" +msgstr "major" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "3" +msgstr "3" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "minor" +msgstr "minor" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "14" +msgstr "14" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "micro" +msgstr "micro" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "1" +msgstr "1" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "releaselevel" +msgstr "releaselevel" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "final" +msgstr "final" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "serial" +msgstr "serial" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "0" +msgstr "0" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "**major**" +msgstr "**major**" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "*number*" +msgstr "*number*" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "**minor**" +msgstr "**minor**" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "**micro**" +msgstr "**micro**" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "**releaselevel**" +msgstr "**releaselevel**" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "enum" +msgstr "enum" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "alpha, beta, candidate, final" +msgstr "alpha, beta, candidate, final" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "**serial**" +msgstr "**serial**" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "additionalProperties" +msgstr "additionalProperties" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "False" +msgstr "False" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "**implementation**" +msgstr "**implementation**" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "Object containing details related to Python implementation." +msgstr "Object ທີ່ບັນຈຸລາຍລະອຽດກ່ຽວກັບການເຮັດວຽກຂອງ Python (implementation)." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "" +"This section **SHOULD** be equivalent to :py:data:`sys.implementation`. It " +"follows specification defined in PEP 421, meaning that on top of the " +"required keys, implementation-specific keys can also exist, but must be " +"prefixed with an underscore." +msgstr "ສ່ວນນີ້ **ຄວນ** ຈະທຽບເທົ່າກັບ :py:data:`sys.implementation`." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "**name**" +msgstr "**name**" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "Lower-case name of the Python implementation." +msgstr "ຊື່ຕົວອັກສອນນ້ອຍຂອງການເຮັດວຽກຂອງ Python." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "cpython" +msgstr "cpython" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "pypy" +msgstr "pypy" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "" +"Object in the format of :py:data:`sys.version_info`, containing the " +"implementation version." +msgstr "Object ໃນຮູບແບບຂອງ :py:data:`sys.version_info` ທີ່ບັນຈຸເວີຊັນຂອງການເຮັດວຽກ." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "7" +msgstr "7" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "16" +msgstr "16" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "True" +msgstr "True" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "abi" +msgstr "abi" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "Object containing details related to ABI." +msgstr "Object ທີ່ບັນຈຸລາຍລະອຽດກ່ຽວກັບ ABI." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "**flags**" +msgstr "**flags**" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "Build configuration flags, used to calculate the extension suffix." +msgstr "" +"ແຟລັກ (flags) ການຕັ້ງຄ່າການບິວ, ໃຊ້ເພື່ອຄຳນວນນາມສະກຸນຂອງສ່ວນເສີມ (extension suffix)." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "" +"The flags **MUST** be defined in the order they appear on the extension " +"suffix." +msgstr "ແຟລັກ **ຕ້ອງ** ຖືກກຳນົດຕາມລຳດັບທີ່ປາກົດໃນນາມສະກຸນສ່ວນເສີມ." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "*array*" +msgstr "*array*" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "t" +msgstr "t" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "d" +msgstr "d" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "extension\\_suffix" +msgstr "extension\\_suffix" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "" +"Suffix used for extensions built against the current implementation version." +msgstr "ນາມສະກຸນທີ່ໃຊ້ສຳລັບສ່ວນເສີມທີ່ບິວຂຶ້ນມາ." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "" +"This field **MUST** be present if the Python implementation supports " +"extensions, otherwise this entry will be missing." +msgstr "ຟິລນີ້ **ຕ້ອງ** ມີຢູ່ຫາກການເຮັດວຽກຂອງ Python ຮອງຮັບສ່ວນເສີມ." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid ".cpython-314-x86\\_64-linux-gnu.so" +msgstr ".cpython-314-x86\\_64-linux-gnu.so" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "stable\\_abi\\_suffix" +msgstr "stable\\_abi\\_suffix" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "Suffix used for extensions built against the stable ABI." +msgstr "ນາມສະກຸນທີ່ໃຊ້ສຳລັບສ່ວນເສີມທີ່ບິວດ້ວຍ stable ABI." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "" +"This field **MUST** be present if the Python implementation has a stable ABI " +"extension suffix, otherwise this entry will be missing." +msgstr "ຟິລນີ້ **ຕ້ອງ** ມີຢູ່ຫາກການເຮັດວຽກຂອງ Python ມີນາມສະກຸນສ່ວນເສີມ stable ABI." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid ".abi3.so" +msgstr ".abi3.so" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "suffixes" +msgstr "suffixes" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "Valid module suffixes grouped by type." +msgstr "ນາມສະກຸນໂມດູນທີ່ຖືກຕ້ອງ ຈັດກຸ່ມຕາມປະເພດ." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "" +"This section **MUST** be present if the Python installation supports " +"importing external files, and it **SHOULD** be equivalent to the " +"``importlib.machinery.*_SUFFIXES`` attributes." +msgstr "ສ່ວນນີ້ **ຕ້ອງ** ມີຢູ່ຫາກການຕິດຕັ້ງ Python ຮອງຮັບການ import ໄຟລ໌ພາຍນອກ." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "" +"Additionally, if a Python implementation provides extension kinds other than " +"the ones listed on ``importlib.machinery`` module, they **MAY** add a sub-" +"section for them." +msgstr "" +"ນອກຈາກນັ້ນ, ຫາກການເຮັດວຽກຂອງ Python ໃຫ້ປະເພດສ່ວນເສີມອື່ນໆ, ພວກເຂົາ **ອາດຈະ** " +"ເພີ່ມສ່ວນຍ່ອຍໃຫ້ກັບພວກມັນ." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "source" +msgstr "ຊອສ (source)" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid ".py" +msgstr ".py" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "bytecode" +msgstr "ໄບທ໌ໂຄດ (bytecode)" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid ".pyc" +msgstr ".pyc" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "optimized_bytecode" +msgstr "optimized_bytecode" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "debug_bytecode" +msgstr "debug_bytecode" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "extensions" +msgstr "extensions" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid ".cpython-313-x86\\_64-linux-gnu.so" +msgstr ".cpython-313-x86\\_64-linux-gnu.so" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid ".so" +msgstr ".so" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "libpython" +msgstr "libpython" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "Object containing details related to the ``libpython`` library." +msgstr "Object ທີ່ບັນຈຸລາຍລະອຽດກ່ຽວກັບໄລບຣາຣີ ``libpython``." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "" +"This section **MUST** by present if Python installation provides a " +"``libpython`` library, otherwise this section will be missing." +msgstr "ສ່ວນນີ້ **ຕ້ອງ** ມີຢູ່ຫາກການຕິດຕັ້ງ Python ມີໄລບຣາຣີ ``libpython``." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "dynamic" +msgstr "ໄດນາມິກ (dynamic)" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "The path to the dynamic ``libpython`` library." +msgstr "ເສັ້ນທາງໄປຫາໄລບຣາຣີ ``libpython`` ແບບໄດນາມິກ." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "" +"This field **MUST** be present if the Python installation provides a dynamic " +"``libpython`` library, otherwise this entry will be missing." +msgstr "ຟິລນີ້ **ຕ້ອງ** ມີຢູ່ຫາກການຕິດຕັ້ງ Python ມີໄລບຣາຣີ ``libpython`` ແບບໄດນາມິກ." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "/usr/lib/libpython3.14.so.1.0" +msgstr "/usr/lib/libpython3.14.so.1.0" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "lib/libpython3.14.so.1.0" +msgstr "lib/libpython3.14.so.1.0" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "dynamic\\_stableabi" +msgstr "dynamic\\_stableabi" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "The path to the dynamic ``libpython`` library for the stable ABI." +msgstr "ເສັ້ນທາງໄປຫາໄລບຣາຣີ ``libpython`` ແບບໄດນາມິກສຳລັບ stable ABI." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "" +"This field **MUST** be present if the Python installation provides a dynamic " +"``libpython`` library targeting the Stable ABI, otherwise this entry will be " +"missing." +msgstr "" +"ຟິລນີ້ **ຕ້ອງ** ມີຢູ່ຫາກການຕິດຕັ້ງ Python ມີໄລບຣາຣີ ``libpython`` ແບບໄດນາມິກທີ່ເປົ້າໝາຍ " +"Stable ABI." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "If this key is present ``dynamic`` **MUST** also be set." +msgstr "ຫາກມີຄີ (key) ນີ້, ``dynamic`` **ຕ້ອງ** ຖືກຕັ້ງຄ່າໄວ້ຄືກັນ." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "/usr/lib/libpython3.so" +msgstr "/usr/lib/libpython3.so" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "lib/libpython3.so" +msgstr "lib/libpython3.so" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "static" +msgstr "ສະແຕຕິກ (static)" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "The path to the static ``libpython`` library." +msgstr "ເສັ້ນທາງໄປຫາໄລບຣາຣີ ``libpython`` ແບບສະແຕຕິກ." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "" +"This field **MUST** be present if the Python installation provides a static " +"``libpython`` library, otherwise this entry will be missing." +msgstr "ຟິລນີ້ **ຕ້ອງ** ມີຢູ່ຫາກການຕິດຕັ້ງ Python ມີໄລບຣາຣີ ``libpython`` ແບບສະແຕຕິກ." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "/usr/lib/python3.14/config-3.14-x86\\_64-linux-gnu/libpython3.14.a" +msgstr "/usr/lib/python3.14/config-3.14-x86\\_64-linux-gnu/libpython3.14.a" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "lib/python3.14/config-3.14-x86\\_64-linux-gnu/libpython3.14.a" +msgstr "lib/python3.14/config-3.14-x86\\_64-linux-gnu/libpython3.14.a" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "link\\_extensions" +msgstr "link\\_extensions" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "Should extensions built against a dynamic ``libpython`` link to it?" +msgstr "ສ່ວນເສີມທີ່ບິວດ້ວຍ ``libpython`` ແບບໄດນາມິກຄວນລິ້ງຫາວ່າມັນຫຼືບໍ່?" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "*boolean*" +msgstr "*boolean*" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "c\\_api" +msgstr "c\\_api" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "Object containing details related to the Python C API." +msgstr "Object ທີ່ບັນຈຸລາຍລະອຽດກ່ຽວກັບ Python C API." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "" +"This section **MUST** be present if the Python implementation provides a C " +"API, otherwise this section will be missing." +msgstr "ສ່ວນນີ້ **ຕ້ອງ** ມີຢູ່ຫາກການເຮັດວຽກຂອງ Python ມີ C API." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "**headers**" +msgstr "**headers**" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "The path to the C API headers." +msgstr "ເສັ້ນທາງໄປຫາ C API headers." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "/usr/include/python3.14" +msgstr "/usr/include/python3.14" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "include/python3.14" +msgstr "include/python3.14" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "pkgconfig\\_path" +msgstr "pkgconfig\\_path" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "The path to the pkg-config definition files." +msgstr "ເສັ້ນທາງໄປຫາໄຟລ໌ກຳນົດຄ່າ pkg-config." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "" +"This field **MUST** be present if the Python implementation provides pkg-" +"config definition files, otherwise this section will be missing." +msgstr "ຟິລນີ້ **ຕ້ອງ** ມີຢູ່ຫາກການເຮັດວຽກຂອງ Python ມີໄຟລ໌ກຳນົດຄ່າ pkg-config." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "/usr/lib/pkgconfig" +msgstr "/usr/lib/pkgconfig" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "lib/pkgconfig" +msgstr "lib/pkgconfig" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "arbitrary\\_data" +msgstr "arbitrary\\_data" + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "Object containing extra arbitrary data." +msgstr "Object ທີ່ບັນຈຸຂໍ້ມູນເພີ່ມເຕີມອື່ນໆ." + +#: ../source/specifications/build-details/v1.0.rst:12 +msgid "" +"This is meant to be used as an escape-hatch, to include any relevant data " +"that is not covered by this specification. Implementations may choose what " +"data to provide in this section." +msgstr "ນີ້ແມ່ນໃຊ້ເປັນທາງເລືອກໃນການລວມຂໍ້ມູນທີ່ກ່ຽວຂ້ອງໃດໆ ທີ່ບໍ່ໄດ້ກວມເອົາໃນຂໍ້ກຳນົດນີ້." + +#: ../source/specifications/core-metadata.rst:7 +msgid "Core metadata specifications" +msgstr "ຂໍ້ກຳນົດ Metadata ຫຼັກ" + +#: ../source/specifications/core-metadata.rst:9 +msgid "This page describes version 2.6, approved in May 2026." +msgstr "ໜ້ານີ້ອະທິບາຍເວີຊັນ 2.6, ເຊິ່ງໄດ້ຮັບການອະນຸມັດໃນເດືອນພຶດສະພາ 2026." + +#: ../source/specifications/core-metadata.rst:11 +msgid "" +"Fields defined in the following specification should be considered valid, " +"complete and not subject to change. The required fields are:" +msgstr "ຟິລທີ່ກຳນົດໃນຂໍ້ກຳນົດຕໍ່ໄປນີ້ຄວນຖືວ່າຖືກຕ້ອງ, ສົມບູນ ແລະ ບໍ່ມີການປ່ຽນແປງ. ຟິລທີ່ບັງຄັບແມ່ນ:" + +#: ../source/specifications/core-metadata.rst:14 +msgid "``Metadata-Version``" +msgstr "" + +#: ../source/specifications/core-metadata.rst:15 +msgid "``Name``" +msgstr "``Name``" + +#: ../source/specifications/core-metadata.rst:16 +msgid "``Version``" +msgstr "" + +#: ../source/specifications/core-metadata.rst:18 +msgid "All the other fields are optional." +msgstr "ຟິລອື່ນໆທັງໝົດແມ່ນບໍ່ບັງຄັບ." + +#: ../source/specifications/core-metadata.rst:20 +msgid "" +"The standard file format for metadata (including in :doc:`wheels ` and :doc:`installed projects `) is based on the format of email headers. However, email formats " +"have been revised several times, and exactly which email RFC applies to " +"packaging metadata is not specified. In the absence of a precise definition, " +"the practical standard is set by what the standard " +"library :mod:`python:email.parser` module can parse using " +"the :data:`~.python:email.policy.compat32` policy." +msgstr "ຮູບແບບໄຟລ໌ມາດຕະຖານສຳລັບ metadata ແມ່ນອີງຕາມຮູບແບບຂອງ email headers." + +#: ../source/specifications/core-metadata.rst:29 +msgid "" +"Whenever metadata is serialised to a byte stream (for example, to save to a " +"file), strings must be serialised using the UTF-8 encoding." +msgstr "" +"ເມື່ອໃດກໍຕາມທີ່ metadata ຖືກແປງເປັນ byte stream, ສະຕຣິງຕ້ອງຖືກແປງໂດຍໃຊ້ການເຂົ້າລະຫັດ UTF-8." + +#: ../source/specifications/core-metadata.rst:32 +msgid "" +"Although :pep:`566` defined a way to transform metadata into a JSON-" +"compatible dictionary, this is not yet used as a standard interchange " +"format. The need for tools to work with years worth of existing packages " +"makes it difficult to shift to a new format." +msgstr "" +"ເຖິງແມ່ນວ່າ :pep:`566` ຈະກຳນົດວິທີການແປງ metadata ໃຫ້ເປັນ dictionary ທີ່ເຂົ້າກັນໄດ້ກັບ " +"JSON, ແຕ່ມັນຍັງບໍ່ທັນໄດ້ຖືກໃຊ້ເປັນຮູບແບບມາດຕະຖານໃນການແລກປ່ຽນ." + +#: ../source/specifications/core-metadata.rst:37 +msgid "" +"*Interpreting old metadata:* In :pep:`566`, the version specifier field " +"format specification was relaxed to accept the syntax used by popular " +"publishing tools (namely to remove the requirement that version specifiers " +"must be surrounded by parentheses). Metadata consumers may want to use the " +"more relaxed formatting rules even for metadata files that are nominally " +"less than version 2.1." +msgstr "" +"*ການຕີຄວາມໝາຍ metadata ເກົ່າ:* ໃນ :pep:`566`, ຂໍ້ກຳນົດຮູບແບບຟິລລະບຸເວີຊັນໄດ້ຖືກຜ່ອນຜັນ." + +#: ../source/specifications/core-metadata.rst:48 +msgid "Metadata-Version" +msgstr "Metadata-Version" + +#: ../source/specifications/core-metadata.rst:52 +msgid "" +"Version of the file format; legal values are \"1.0\", \"1.1\", \"1.2\", " +"\"2.1\", \"2.2\", \"2.3\", \"2.4\", \"2.5\", and \"2.6\"." +msgstr "ເວີຊັນຂອງຮູບແບບໄຟລ໌." + +#: ../source/specifications/core-metadata.rst:55 +msgid "" +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." +msgstr "" +"ເຄື່ອງມືອັດຕະໂນມັດທີ່ໃຊ້ metadata ຄວນແຈ້ງເຕືອນຫາກ ``metadata-version`` " +"ສູງກວ່າເວີຊັນທີ່ພວກມັນຮອງຮັບ." + +#: ../source/specifications/core-metadata.rst:62 +msgid "" +"For broader compatibility, build tools MAY choose to produce distribution " +"metadata using the lowest metadata version that includes all of the needed " +"fields." +msgstr "" +"ເພື່ອຄວາມເຂົ້າກັນໄດ້ທີ່ກວ້າງຂວາງ, ເຄື່ອງມືບິວອາດຈະເລືອກສ້າງ metadata ຂອງການແຈກຢາຍໂດຍໃຊ້ເວີຊັນ " +"metadata ທີ່ຕໍ່າທີ່ສຸດ." + +#: ../source/specifications/core-metadata.rst:66 +#: ../source/specifications/core-metadata.rst:84 +#: ../source/specifications/core-metadata.rst:101 +#: ../source/specifications/core-metadata.rst:184 +#: ../source/specifications/core-metadata.rst:199 +#: ../source/specifications/core-metadata.rst:237 +#: ../source/specifications/core-metadata.rst:309 +#: ../source/specifications/core-metadata.rst:313 +#: ../source/specifications/core-metadata.rst:317 +#: ../source/specifications/core-metadata.rst:321 +#: ../source/specifications/core-metadata.rst:353 +#: ../source/specifications/core-metadata.rst:375 +#: ../source/specifications/core-metadata.rst:393 +#: ../source/specifications/core-metadata.rst:418 +#: ../source/specifications/core-metadata.rst:440 +#: ../source/specifications/core-metadata.rst:666 +#: ../source/specifications/core-metadata.rst:701 +#: ../source/specifications/core-metadata.rst:711 +#: ../source/specifications/core-metadata.rst:940 +#: ../source/specifications/core-metadata.rst:1037 +msgid "Example::" +msgstr "ຕົວຢ່າງ::" + +#: ../source/specifications/core-metadata.rst:74 +msgid "Name" +msgstr "" + +#: ../source/specifications/core-metadata.rst:77 +msgid "Added restrictions on format from the :ref:`name format `." +msgstr "ເພີ່ມຂໍ້ຈຳກັດກ່ຽວກັບຮູບແບບຈາກ :ref:`ຮູບແບບຊື່ `." + +#: ../source/specifications/core-metadata.rst:80 +msgid "" +"The name of the distribution. The name field is the primary identifier for a " +"distribution. It must conform to the :ref:`name format specification `." +msgstr "ຊື່ຂອງການແຈກຢາຍ. ຟິລຊື່ແມ່ນຕົວລະບຸຫຼັກສຳລັບການແຈກຢາຍ." + +#: ../source/specifications/core-metadata.rst:88 +msgid "" +"For comparison purposes, the names should be :ref:`normalized ` before comparing." +msgstr "ເພື່ອຈຸດປະສົງໃນການປຽບທຽບ, ຊື່ຄວນໄດ້ຮັບການເຮັດໃຫ້ເປັນມາດຕະຖານ (normalized) ກ່ອນ." + +#: ../source/specifications/core-metadata.rst:93 +msgid "Version" +msgstr "" + +#: ../source/specifications/core-metadata.rst:97 +msgid "" +"A string containing the distribution's version number. This field must be " +"in the format specified in the :ref:`Version specifier specification " +"`." +msgstr "ສະຕຣິງທີ່ບັນຈຸເລກເວີຊັນຂອງການແຈກຢາຍ." + +#: ../source/specifications/core-metadata.rst:109 +msgid "Dynamic (multiple use)" +msgstr "Dynamic (ໃຊ້ໄດ້ຫຼາຍຄັ້ງ)" + +#: ../source/specifications/core-metadata.rst:112 +msgid "" +"A multiple use field that is present in the sdist and also marked " +"``Dynamic`` may only be appended to in a wheel built from the sdist. " +"Previously any field listed in Dynamic was ignored in an sdist." +msgstr "" +"ຟິລທີ່ໃຊ້ໄດ້ຫຼາຍຄັ້ງເຊິ່ງມີຢູ່ໃນ sdist ແລະ ຖືກໝາຍວ່າ ``Dynamic`` ອາດຈະຖືກເພີ່ມເຂົ້າໃນ wheel " +"ທີ່ບິວຈາກ sdist ນັ້ນ." + +#: ../source/specifications/core-metadata.rst:117 +msgid "" +"A string containing the name of another core metadata field. The field names " +"``Name``, ``Version``, and ``Metadata-Version`` may not be specified in this " +"field." +msgstr "ສະຕຣິງທີ່ບັນຈຸຊື່ຂອງຟິລ metadata ຫຼັກອື່ນ." + +#: ../source/specifications/core-metadata.rst:121 +msgid "" +"When found in the metadata of a source distribution, the following rules " +"apply:" +msgstr "" +"ເມື່ອພົບໃນ metadata ຂອງການແຈກຢາຍຊອສ (source distribution), ກົດເກນຕໍ່ໄປນີ້ຈະມີຜົນບັງຄັບໃຊ້:" + +#: ../source/specifications/core-metadata.rst:124 +msgid "" +"If a field is *not* marked as ``Dynamic``, then the value of the field in " +"any wheel built from the sdist MUST match the value in the sdist. If the " +"field is not in the sdist, and not marked as ``Dynamic``, then it MUST NOT " +"be present in the wheel." +msgstr "" +"ຫາກຟິລ *ບໍ່* ຖືກໝາຍວ່າ ``Dynamic``, ຄ່າຂອງຟິລໃນ wheel ທີ່ບິວຈາກ sdist ຕ້ອງກົງກັບຄ່າໃນ " +"sdist." + +#: ../source/specifications/core-metadata.rst:128 +msgid "" +"If a single-use field is marked as ``Dynamic``, it may contain any valid " +"value in a wheel built from the sdist (including not being present at all)." +msgstr "ຫາກຟິລແບບໃຊ້ຄັ້ງດຽວຖືກໝາຍວ່າ ``Dynamic``, ມັນອາດຈະບັນຈຸຄ່າໃດກໍໄດ້ທີ່ຖືກຕ້ອງໃນ wheel." + +#: ../source/specifications/core-metadata.rst:130 +msgid "" +"If a multiple use field is present in the sdist and also marked ``Dynamic``, " +"then a wheel built from the sdist MUST include the value(s) present in the " +"sdist. The wheel MAY add further values, but it MUST NOT remove, reorder, or " +"modify the values present in the sdist." +msgstr "" +"ຫາກຟິລທີ່ໃຊ້ໄດ້ຫຼາຍຄັ້ງມີຢູ່ໃນ sdist ແລະ ຖືກໝາຍວ່າ ``Dynamic``, wheel ທີ່ບິວຈາກ sdist " +"ນັ້ນຕ້ອງລວມເອົາຄ່າທີ່ມີຢູ່ໃນ sdist." + +#: ../source/specifications/core-metadata.rst:135 +msgid "" +"If the sdist metadata version is older than version 2.2, then all fields " +"should be treated as if they were specified with ``Dynamic`` (i.e. there are " +"no special restrictions on the metadata of wheels built from the sdist)." +msgstr "" +"ຫາກເວີຊັນ metadata ຂອງ sdist ເກົ່າກວ່າເວີຊັນ 2.2, ໃຫ້ຖືວ່າທຸກຟິລຖືກກຳນົດດ້ວຍ ``Dynamic``." + +#: ../source/specifications/core-metadata.rst:139 +msgid "" +"In any context other than a source distribution, ``Dynamic`` is for " +"information only, and indicates that the field value was calculated at wheel " +"build time, and may not be the same as the value in the sdist or in other " +"wheels for the project." +msgstr "ໃນບໍລິບົດອື່ນໆທີ່ບໍ່ແມ່ນການແຈກຢາຍຊອສ, ``Dynamic`` ແມ່ນເພື່ອເປັນຂໍ້ມູນເທົ່ານັ້ນ." + +#: ../source/specifications/core-metadata.rst:144 +msgid "" +"Note in particular that if you have obtained a prebuilt wheel, you cannot " +"assume that a field which is not marked as ``Dynamic`` will have the same " +"value in other wheels, as some wheels are not built directly from the sdist, " +"but are modified from existing wheels (the ``auditwheel`` tool does this, " +"for example, and it's commonly used when building wheels for PyPI). Such " +"modifications *could* include changing metadata (even non-dynamic " +"metadata). Similarly, if you have a sdist and a wheel which you didn't " +"build from that sdist, you cannot assume that the wheel's metadata matches " +"that of the sdist, even if the field is not marked as ``Dynamic``." +msgstr "" +"ໃຫ້ສັງເກດວ່າຫາກທ່ານໄດ້ຮັບ wheel ທີ່ບິວໄວ້ລ່ວງໜ້າ, ທ່ານບໍ່ສາມາດສົມມຸດໄດ້ວ່າຟິລທີ່ບໍ່ໄດ້ໝາຍວ່າ " +"``Dynamic`` ຈະມີຄ່າດຽວກັນໃນ wheel ອື່ນໆ." + +#: ../source/specifications/core-metadata.rst:154 +msgid "" +"Full details of the semantics of ``Dynamic`` are described in :pep:`643`." +msgstr "ລາຍລະອຽດທັງໝົດຂອງຄວາມໝາຍຂອງ ``Dynamic`` ແມ່ນໄດ້ຖືກອະທິບາຍໄວ້ໃນ :pep:`643`." + +#: ../source/specifications/core-metadata.rst:159 +msgid "Platform (multiple use)" +msgstr "ແພລັດຟອມ (ໃຊ້ໄດ້ຫຼາຍຄັ້ງ)" + +#: ../source/specifications/core-metadata.rst:163 +msgid "" +"A Platform specification describing an operating system supported by the " +"distribution which is not listed in the \"Operating System\" Trove " +"classifiers. See \"Classifier\" below." +msgstr "ຂໍ້ກຳນົດແພລັດຟອມທີ່ອະທິບາຍລະບົບປະຕິບັດການທີ່ການແຈກຢາຍຮອງຮັບ." + +#: ../source/specifications/core-metadata.rst:167 +#: ../source/specifications/core-metadata.rst:473 +#: ../source/specifications/core-metadata.rst:500 +#: ../source/specifications/core-metadata.rst:523 +#: ../source/specifications/core-metadata.rst:552 +#: ../source/specifications/core-metadata.rst:593 +#: ../source/specifications/core-metadata.rst:649 +#: ../source/specifications/core-metadata.rst:783 +#: ../source/specifications/core-metadata.rst:824 +#: ../source/specifications/core-metadata.rst:881 +#: ../source/specifications/core-metadata.rst:911 +#: ../source/specifications/core-metadata.rst:991 +#: ../source/specifications/core-metadata.rst:1013 +msgid "Examples::" +msgstr "ຕົວຢ່າງ::" + +#: ../source/specifications/core-metadata.rst:175 +msgid "Supported-Platform (multiple use)" +msgstr "Supported-Platform (ໃຊ້ໄດ້ຫຼາຍຄັ້ງ)" + +#: ../source/specifications/core-metadata.rst:179 +msgid "" +"Binary distributions containing a PKG-INFO file will use the Supported-" +"Platform field in their metadata to specify the OS and CPU for which the " +"binary distribution was compiled. The semantics of the Supported-Platform " +"field are not specified in this PEP." +msgstr "" +"ການແຈກຢາຍແບບບາຍນາຣີຈະໃຊ້ຟິລ Supported-Platform ໃນ metadata ເພື່ອລະບຸ OS ແລະ CPU." + +#: ../source/specifications/core-metadata.rst:193 +msgid "Summary" +msgstr "" + +#: ../source/specifications/core-metadata.rst:197 +msgid "A one-line summary of what the distribution does." +msgstr "ບົດສະຫຼຸບບັນທັດດຽວກ່ຽວກັບສິ່ງທີ່ການແຈກຢາຍນັ້ນເຮັດ." + +#: ../source/specifications/core-metadata.rst:217 +msgid "This field may be specified in the message body instead." +msgstr "ຟິລນີ້ອາດຈະຖືກລະບຸໄວ້ໃນສ່ວນເນື້ອຫາຂອງຂໍ້ຄວາມແທນ." + +#: ../source/specifications/core-metadata.rst:220 +msgid "" +"A longer description of the distribution that can run to several " +"paragraphs. Software that deals with metadata should not assume any maximum " +"size for this field, though people shouldn't include their instruction " +"manual as the description." +msgstr "ຄຳອະທິບາຍທີ່ຍາວກວ່າຂອງການແຈກຢາຍ ເຊິ່ງອາດມີຄວາມຍາວຫຼາຍຫຍໍ້ໜ້າ." + +#: ../source/specifications/core-metadata.rst:225 +msgid "" +"The contents of this field can be written using reStructuredText markup " +"[1]_. For programs that work with the metadata, supporting markup is " +"optional; programs can also display the contents of the field as-is. This " +"means that authors should be conservative in the markup they use." +msgstr "ເນື້ອໃນຂອງຟິລນີ້ສາມາດຂຽນໂດຍໃຊ້ reStructuredText markup." + +#: ../source/specifications/core-metadata.rst:231 +msgid "" +"To support empty lines and lines with indentation with respect to the RFC " +"822 format, any CRLF character has to be suffixed by 7 spaces followed by a " +"pipe (\"|\") char. As a result, the Description field is encoded into a " +"folded field that can be interpreted by RFC822 parser [2]_." +msgstr "ເພື່ອຮອງຮັບບັນທັດວ່າງ ແລະ ບັນທັດທີ່ມີການຍໍ້ໜ້າ." + +#: ../source/specifications/core-metadata.rst:248 +msgid "" +"This encoding implies that any occurrences of a CRLF followed by 7 spaces " +"and a pipe char have to be replaced by a single CRLF when the field is " +"unfolded using a RFC822 reader." +msgstr "" +"ການເຂົ້າລະຫັດນີ້ໝາຍຄວາມວ່າ ທຸກໆການປາກົດຂອງ CRLF ຕາມດ້ວຍຍະຫວ່າງ 7 ຕົວ ແລະ ເຄື່ອງໝາຍ pipe " +"ຈະຕ້ອງຖືກແທນທີ່ດ້ວຍ CRLF ຕົວດຽວ." + +#: ../source/specifications/core-metadata.rst:252 +msgid "" +"Alternatively, the distribution's description may instead be provided in the " +"message body (i.e., after a completely blank line following the headers, " +"with no indentation or other special formatting necessary)." +msgstr "ອີກທາງເລືອກໜຶ່ງ, ຄຳອະທິບາຍຂອງການແຈກຢາຍອາດຈະຖືກລະບຸໄວ້ໃນສ່ວນເນື້ອຫາຂອງຂໍ້ຄວາມ." + +#: ../source/specifications/core-metadata.rst:261 +msgid "Description-Content-Type" +msgstr "Description-Content-Type" + +#: ../source/specifications/core-metadata.rst:265 +msgid "" +"A string stating the markup syntax (if any) used in the distribution's " +"description, so that tools can intelligently render the description." +msgstr "ສະຕຣິງທີ່ລະບຸໄວຍາກອນ markup (ຖ້າມີ) ທີ່ໃຊ້ໃນຄຳອະທິບາຍຂອງການແຈກຢາຍ." + +#: ../source/specifications/core-metadata.rst:268 +msgid "" +"Historically, PyPI supported descriptions in plain text and " +"`reStructuredText (reST) `_, and could render reST into HTML. However, it is " +"common for distribution authors to write the description in `Markdown " +"`_ (:rfc:`7763`) as many code " +"hosting sites render Markdown READMEs, and authors would reuse the file for " +"the description. PyPI didn't recognize the format and so could not render " +"the description correctly. This resulted in many packages on PyPI with " +"poorly-rendered descriptions when Markdown is left as plain text, or worse, " +"was attempted to be rendered as reST. This field allows the distribution " +"author to specify the format of their description, opening up the " +"possibility for PyPI and other tools to be able to render Markdown and other " +"formats." +msgstr "" +"ໃນອະດີດ, PyPI ຮອງຮັບຄຳອະທິບາຍໃນຮູບແບບ plain text ແລະ reStructuredText. " +"ຟິລນີ້ຊ່ວຍໃຫ້ຜູ້ຂຽນການແຈກຢາຍສາມາດລະບຸຮູບແບບຄຳອະທິບາຍຂອງພວກເຂົາໄດ້, ເຊິ່ງຊ່ວຍໃຫ້ PyPI ແລະ " +"ເຄື່ອງມືອື່ນໆສາມາດສະແດງຜົນ Markdown ແລະ ຮູບແບບອື່ນໆໄດ້." + +#: ../source/specifications/core-metadata.rst:281 +msgid "" +"The format of this field is the same as the ``Content-Type`` header in HTTP " +"(i.e.: `RFC 1341 `_). Briefly, this means that it has a ``type/subtype`` part and " +"then it can optionally have a number of parameters:" +msgstr "" +"ຮູບແບບຂອງຊ່ອງຂໍ້ມູນນີ້ແມ່ນຄືກັນກັບສ່ວນຫົວ (header) ``Content-Type`` ໃນ HTTP (ຕົວຢ່າງ: `RFC " +"1341 `_). ໂດຍຫຍໍ້, " +"ນີ້ໝາຍຄວາມວ່າມັນມີສ່ວນ ``type/subtype`` ແລະ ສາມາດມີ ພາລາມິເຕີ (parameters) ເພີ່ມເຕີມໄດ້:" + +#: ../source/specifications/core-metadata.rst:287 +msgid "Format::" +msgstr "ຮູບແບບ::" + +#: ../source/specifications/core-metadata.rst:291 +msgid "The ``type/subtype`` part has only a few legal values:" +msgstr "ສ່ວນຂອງ ``type/subtype`` ມີພຽງແຕ່ບາງຄ່າເທົ່ານັ້ນທີ່ຖືກຕ້ອງຕາມຂໍ້ກຳນົດ:" + +#: ../source/specifications/core-metadata.rst:293 +msgid "``text/plain``" +msgstr "``text/plain``" + +#: ../source/specifications/core-metadata.rst:294 +msgid "``text/x-rst``" +msgstr "``text/x-rst``" + +#: ../source/specifications/core-metadata.rst:295 +msgid "``text/markdown``" +msgstr "``text/markdown``" + +#: ../source/specifications/core-metadata.rst:297 +msgid "" +"The ``charset`` parameter can be used to specify the character encoding of " +"the description. The only legal value is ``UTF-8``. If omitted, it is " +"assumed to be ``UTF-8``." +msgstr "" +"ພາລາມິເຕີ ``charset`` ສາມາດໃຊ້ເພື່ອລະບຸການເຂົ້າລະຫັດຕົວອັກສອນຂອງຄຳອະທິບາຍ. " +"ຄ່າດຽວທີ່ຖືກຕ້ອງແມ່ນ ``UTF-8``. ຖ້າຫາກລະໄວ້, ຈະຖືວ່າເປັນ ``UTF-8`` ໂດຍອັດຕະໂນມັດ." + +#: ../source/specifications/core-metadata.rst:301 +msgid "" +"Other parameters might be specific to the chosen subtype. For example, for " +"the ``markdown`` subtype, there is an optional ``variant`` parameter that " +"allows specifying the variant of Markdown in use (defaults to ``GFM`` if not " +"specified). Currently, two variants are recognized:" +msgstr "" +"ພາລາມິເຕີອື່ນໆ ອາດຈະສະເພາະເຈາະຈົງກັບປະເພດຍ່ອຍ (subtype) ທີ່ເລືອກ. ຕົວຢ່າງ, ສຳລັບ ປະເພດຍ່ອຍ " +"``markdown``, ຈະມີພາລາມິເຕີ ``variant`` ທີ່ສາມາດລະບຸຮູບແບບຂອງ Markdown ທີ່ໃຊ້ໄດ້ " +"(ຄ່າເລີ່ມຕົ້ນແມ່ນ ``GFM`` ຖ້າບໍ່ໄດ້ລະບຸ). ໃນປັດຈຸບັນ, ມີສອງຮູບແບບທີ່ຮອງຮັບ:" + +#: ../source/specifications/core-metadata.rst:306 +msgid "``GFM`` for :rfc:`GitHub-flavored Markdown <7764#section-3.2>`" +msgstr "``GFM`` ສຳລັບ :rfc:`GitHub-flavored Markdown <7764#section-3.2>`" + +#: ../source/specifications/core-metadata.rst:307 +msgid "``CommonMark`` for :rfc:`CommonMark <7764#section-3.5>`" +msgstr "``CommonMark`` ສຳລັບ :rfc:`CommonMark <7764#section-3.5>`" + +#: ../source/specifications/core-metadata.rst:325 +msgid "" +"If a ``Description-Content-Type`` is not specified, then applications should " +"attempt to render it as ``text/x-rst; charset=UTF-8`` and fall back to " +"``text/plain`` if it is not valid rst." +msgstr "" +"ຖ້າບໍ່ໄດ້ລະບຸ ``Description-Content-Type``, ແອັບພລິເຄຊັນຄວນພະຍາຍາມ ສະແດງຜົນເປັນ ``text/" +"x-rst; charset=UTF-8`` ແລະ ຖ້າຫາກບໍ່ແມ່ນ rst ທີ່ຖືກຕ້ອງ ໃຫ້ກັບໄປໃຊ້ ``text/plain`` ແທນ." + +#: ../source/specifications/core-metadata.rst:329 +msgid "" +"If a ``Description-Content-Type`` is an unrecognized value, then the assumed " +"content type is ``text/plain`` (Although PyPI will probably reject anything " +"with an unrecognized value)." +msgstr "" +"ຖ້າ ``Description-Content-Type`` ເປັນຄ່າທີ່ບໍ່ຮູ້ຈັກ, ຈະຖືວ່າປະເພດເນື້ອຫາແມ່ນ ``text/" +"plain`` (ເຖິງແມ່ນວ່າ PyPI ອາດຈະປະຕິເສດທຸກຢ່າງທີ່ມີຄ່າທີ່ບໍ່ຮູ້ຈັກກໍຕາມ)." + +#: ../source/specifications/core-metadata.rst:333 +msgid "" +"If the ``Description-Content-Type`` is ``text/markdown`` and ``variant`` is " +"not specified or is set to an unrecognized value, then the assumed " +"``variant`` is ``GFM``." +msgstr "" +"ຖ້າ ``Description-Content-Type`` ແມ່ນ ``text/markdown`` ແລະ ບໍ່ໄດ້ລະບຸ ``variant`` " +"ຫຼື ລະບຸເປັນຄ່າທີ່ບໍ່ຮູ້ຈັກ, ຈະຖືວ່າ ``variant`` ແມ່ນ ``GFM``." + +#: ../source/specifications/core-metadata.rst:337 +msgid "" +"So for the last example above, the ``charset`` defaults to ``UTF-8`` and the " +"``variant`` defaults to ``GFM`` and thus it is equivalent to the example " +"before it." +msgstr "" +"ດັ່ງນັ້ນ, ສຳລັບຕົວຢ່າງສຸດທ້າຍຂ້າງເທິງ, ``charset`` ຈະເປັນ ``UTF-8`` ແລະ ``variant`` " +"ຈະເປັນ ``GFM`` ໂດຍເລີ່ມຕົ້ນ, ເຊິ່ງມັນຈະມີຄ່າເທົ່າກັບຕົວຢ່າງກ່ອນໜ້ານັ້ນ." + +#: ../source/specifications/core-metadata.rst:346 +msgid "Keywords" +msgstr "ຄຳສັບຫຼັກ" + +#: ../source/specifications/core-metadata.rst:350 +msgid "" +"A list of additional keywords, separated by commas, to be used to assist " +"searching for the distribution in a larger catalog." +msgstr "" +"ລາຍຊື່ຄຳສັບຫຼັກເພີ່ມເຕີມ, ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດ, ເພື່ອໃຊ້ຊ່ວຍໃນການຄົ້ນຫາ ຊຸດໂປຣແກຣມ " +"(distribution) ໃນບັນຊີລາຍຊື່ທີ່ໃຫຍ່ກວ່າ." + +#: ../source/specifications/core-metadata.rst:359 +msgid "" +"The specification previously showed keywords separated by spaces, but " +"distutils and setuptools implemented it with commas. These tools have been " +"very widely used for many years, so it was easier to update the " +"specification to match the de facto standard." +msgstr "" +"ໃນເມື່ອກ່ອນ ຂໍ້ກຳນົດໄດ້ສະແດງຄຳສັບຫຼັກໂດຍແຍກດ້ວຍຍະຫວ່າງ, ແຕ່ distutils ແລະ setuptools " +"ໄດ້ນຳໃຊ້ເຄື່ອງໝາຍຈຸດແທນ. ເນື່ອງຈາກເຄື່ອງມືເຫຼົ່ານີ້ຖືກນຳໃຊ້ຢ່າງກວ້າງຂວາງ ມາເປັນເວລາຫຼາຍປີ, " +"ມັນຈຶ່ງງ່າຍກວ່າທີ່ຈະປັບປຸງຂໍ້ກຳນົດໃຫ້ກົງກັບມາດຕະຖານທີ່ໃຊ້ກັນແທ້." + +#: ../source/specifications/core-metadata.rst:368 +msgid "Author" +msgstr "ຜູ້ຂຽນ" + +#: ../source/specifications/core-metadata.rst:372 +msgid "" +"A string containing the author's name at a minimum; additional contact " +"information may be provided." +msgstr "ຂໍ້ຄວາມທີ່ລະບຸຊື່ຂອງຜູ້ຂຽນເປັນຢ່າງໜ້ອຍ; ສາມາດໃຫ້ຂໍ້ມູນການຕິດຕໍ່ເພີ່ມເຕີມໄດ້." + +#: ../source/specifications/core-metadata.rst:385 +msgid "Author-email" +msgstr "ອີເມລຜູ້ຂຽນ" + +#: ../source/specifications/core-metadata.rst:389 +msgid "" +"A string containing the author's e-mail address. It can contain a name and " +"e-mail address in the legal forms for a RFC-822 ``From:`` header." +msgstr "" +"ຂໍ້ຄວາມທີ່ລະບຸທີ່ຢູ່ນຳເມລຂອງຜູ້ຂຽນ. ສາມາດປະກອບມີຊື່ ແລະ ອີເມລ ໃນຮູບແບບທີ່ຖືກຕ້ອງ ຕາມສ່ວນຫົວ " +"``From:`` ຂອງ RFC-822." + +#: ../source/specifications/core-metadata.rst:397 +#: ../source/specifications/core-metadata.rst:444 +msgid "" +"Per RFC-822, this field may contain multiple comma-separated e-mail " +"addresses::" +msgstr "ຕາມ RFC-822, ຊ່ອງຂໍ້ມູນນີ້ອາດຈະມີຫຼາຍອີເມລ ໂດຍແຍກດ້ວຍເຄື່ອງໝາຍຈຸດ::" + +#: ../source/specifications/core-metadata.rst:407 +msgid "Maintainer" +msgstr "ຜູ້ດູແລ" + +#: ../source/specifications/core-metadata.rst:411 +msgid "" +"A string containing the maintainer's name at a minimum; additional contact " +"information may be provided." +msgstr "ຂໍ້ຄວາມທີ່ລະບຸຊື່ຂອງຜູ້ດູແລເປັນຢ່າງໜ້ອຍ; ສາມາດໃຫ້ຂໍ້ມູນການຕິດຕໍ່ເພີ່ມເຕີມໄດ້." + +#: ../source/specifications/core-metadata.rst:414 +msgid "" +"Note that this field is intended for use when a project is being maintained " +"by someone other than the original author: it should be omitted if it is " +"identical to ``Author``." +msgstr "" +"ໝາຍເຫດ: ຊ່ອງຂໍ້ມູນນີ້ມີໄວ້ສຳລັບໃຊ້ໃນກໍລະນີທີ່ໂຄງການຖືກດູແລໂດຍບຸກຄົນອື່ນທີ່ບໍ່ແມ່ນ ຜູ້ຂຽນດັ້ງເດີມ: " +"ຄວນລະໄວ້ຖ້າຫາກວ່າມັນຄືກັນກັບ ``Author``." + +#: ../source/specifications/core-metadata.rst:428 +msgid "Maintainer-email" +msgstr "ອີເມລຜູ້ດູແລ" + +#: ../source/specifications/core-metadata.rst:432 +msgid "" +"A string containing the maintainer's e-mail address. It can contain a name " +"and e-mail address in the legal forms for a RFC-822 ``From:`` header." +msgstr "" +"ຂໍ້ຄວາມທີ່ລະບຸທີ່ຢູ່ນຳເມລຂອງຜູ້ດູແລ. ສາມາດປະກອບມີຊື່ ແລະ ອີເມລ ໃນຮູບແບບທີ່ຖືກຕ້ອງ ຕາມສ່ວນຫົວ " +"``From:`` ຂອງ RFC-822." + +#: ../source/specifications/core-metadata.rst:436 +msgid "" +"Note that this field is intended for use when a project is being maintained " +"by someone other than the original author: it should be omitted if it is " +"identical to ``Author-email``." +msgstr "" +"ໝາຍເຫດ: ຊ່ອງຂໍ້ມູນນີ້ມີໄວ້ສຳລັບໃຊ້ໃນກໍລະນີທີ່ໂຄງການຖືກດູແລໂດຍບຸກຄົນອື່ນທີ່ບໍ່ແມ່ນ ຜູ້ຂຽນດັ້ງເດີມ: " +"ຄວນລະໄວ້ຖ້າຫາກວ່າມັນຄືກັນກັບ ``Author-email``." + +#: ../source/specifications/core-metadata.rst:454 +msgid "License" +msgstr "ໃບອະນຸຍາດ" + +#: ../source/specifications/core-metadata.rst:457 +msgid "in favour of ``License-Expression``." +msgstr "ເພື່ອສະໜັບສະໜູນ ``License-Expression``." + +#: ../source/specifications/core-metadata.rst:461 +msgid "" +"As of Metadata 2.4, ``License`` and ``License-Expression`` are mutually " +"exclusive. If both are specified, tools which parse metadata will disregard " +"``License`` and PyPI will reject uploads. See `PEP 639 `__." +msgstr "" +"ຕັ້ງແຕ່ Metadata 2.4 ເປັນຕົ້ນໄປ, ``License`` ແລະ ``License-Expression`` ບໍ່ສາມາດ " +"ໃຊ້ຮ່ວມກັນໄດ້. ຖ້າລະບຸທັງສອງຢ່າງ, ເຄື່ອງມືທີ່ອ່ານຂໍ້ມູນກຳກັບຈະບໍ່ສົນໃຈ ``License`` ແລະ PyPI " +"ຈະປະຕິເສດການອັບໂຫຼດ. ເບິ່ງ `PEP 639 `__." + +#: ../source/specifications/core-metadata.rst:466 +msgid "" +"Text indicating the license covering the distribution where the license is " +"not a selection from the \"License\" Trove classifiers. " +"See :ref:`\"Classifier\" ` below. This field may also " +"be used to specify a particular version of a license which is named via the " +"``Classifier`` field, or to indicate a variation or exception to such a " +"license." +msgstr "" +"ຂໍ້ຄວາມທີ່ລະບຸໃບອະນຸຍາດທີ່ຄຸ້ມຄອງຊຸດໂປຣແກຣມ ໃນກໍລະນີທີ່ໃບອະນຸຍາດນັ້ນບໍ່ມີໃຫ້ເລືອກ ໃນ \"License\" " +"Trove classifiers. ເບິ່ງ :ref:`\"Classifier\" ` ດ້ານລຸ່ມ. " +"ຊ່ອງຂໍ້ມູນນີ້ຍັງສາມາດໃຊ້ເພື່ອລະບຸເວີຊັນສະເພາະຂອງໃບອະນຸຍາດ ທີ່ຖືກລະບຸຜ່ານຊ່ອງ ``Classifier``, ຫຼື " +"ເພື່ອລະບຸການປ່ຽນແປງ ຫຼື ຂໍ້ຍົກເວັ້ນຂອງໃບອະນຸຍາດດັ່ງກ່າວ." + +#: ../source/specifications/core-metadata.rst:486 +msgid "License-Expression" +msgstr "ການລະບຸໃບອະນຸຍາດ (License-Expression)" + +#: ../source/specifications/core-metadata.rst:490 +msgid "" +"Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`." +msgstr "" +"ຂໍ້ຄວາມທີ່ເປັນ SPDX :term:`license expression ` ທີ່ຖືກຕ້ອງ, " +"ຕາມທີ່ລະບຸໄວ້ໃນ :doc:`/specifications/license-expression`." + +#: ../source/specifications/core-metadata.rst:494 +msgid "" +"Note that the expression in this field only applies to " +"the :term:`Distribution Archive` containing the metadata with this field " +"(e.g., :term:`Source Distribution ` " +"or :term:`Wheel`), not the project overall or other files related to the " +"project (including other distribution archives)." +msgstr "" +"ໝາຍເຫດ: ການລະບຸໃນຊ່ອງຂໍ້ມູນນີ້ມີຜົນສະເພາະກັບ :term:`Distribution Archive` " +"ທີ່ບັນຈຸຂໍ້ມູນກຳກັບນີ້ເທົ່ານັ້ນ (ເຊັ່ນ: :term:`Source Distribution ` ຫຼື :term:`Wheel`), ບໍ່ມີຜົນກັບໂຄງການໂດຍລວມ ຫຼື ໄຟລ໌ອື່ນໆ ທີ່ກ່ຽວຂ້ອງກັບໂຄງການ " +"(ລວມເຖິງ distribution archives ອື່ນໆ)." + +#: ../source/specifications/core-metadata.rst:515 +msgid "License-File (multiple use)" +msgstr "ໄຟລ໌ໃບອະນຸຍາດ (License-File) (ໃຊ້ໄດ້ຫຼາຍຄັ້ງ)" + +#: ../source/specifications/core-metadata.rst:519 +msgid "" +"Each entry is a string representation of the path of a license-related file. " +"The path is located within the project source tree, relative to the project " +"root directory. For details see :pep:`639`." +msgstr "" +"ແຕ່ລະລາຍການແມ່ນຂໍ້ຄວາມທີ່ລະບຸເສັ້ນທາງ (path) ຂອງໄຟລ໌ທີ່ກ່ຽວຂ້ອງກັບໃບອະນຸຍາດ. " +"ເສັ້ນທາງດັ່ງກ່າວຕ້ອງຢູ່ໃນໂຄງສ້າງໄຟລ໌ຂອງໂຄງການ, ໂດຍທຽບກັບໂຟນເດີຫຼັກຂອງໂຄງການ. " +"ເບິ່ງລາຍລະອຽດໃນ :pep:`639`." + +#: ../source/specifications/core-metadata.rst:536 +msgid "Classifier (multiple use)" +msgstr "ການຈັດປະເພດ (Classifier) (ໃຊ້ໄດ້ຫຼາຍຄັ້ງ)" + +#: ../source/specifications/core-metadata.rst:540 +msgid "" +"Each entry is a string giving a single classification value for the " +"distribution. Classifiers are described in :pep:`301`, and the Python " +"Package Index publishes a dynamic list of `currently defined classifiers " +"`__." +msgstr "" +"ແຕ່ລະລາຍການແມ່ນຂໍ້ຄວາມທີ່ລະບຸຄ່າການຈັດປະເພດຢ່າງໃດຢ່າງໜຶ່ງສຳລັບຊຸດໂປຣແກຣມ. " +"ການຈັດປະເພດຖືກອະທິບາຍໄວ້ໃນ :pep:`301`, ແລະ Python Package Index ຈະເຜີຍແຜ່ " +"ລາຍຊື່ການຈັດປະເພດທີ່ກຳນົດໄວ້ໃນປັດຈຸບັນທີ່ `https://pypi.org/classifiers/`." + +#: ../source/specifications/core-metadata.rst:546 +msgid "" +"The use of ``License ::`` classifiers is deprecated as of Metadata 2.4, use " +"``License-Expression`` instead. See `PEP 639 `_." +msgstr "" +"ການໃຊ້ ``License ::`` classifiers ແມ່ນຖືກຍົກເລີກແລ້ວຕັ້ງແຕ່ Metadata 2.4, ໃຫ້ໃຊ້ " +"``License-Expression`` ແທນ. ເບິ່ງ `PEP 639 `_." + +#: ../source/specifications/core-metadata.rst:550 +#: ../source/specifications/core-metadata.rst:640 +#: ../source/specifications/core-metadata.rst:879 +#: ../source/specifications/core-metadata.rst:904 +msgid "This field may be followed by an environment marker after a semicolon." +msgstr "ຊ່ອງຂໍ້ມູນນີ້ອາດຈະຕາມດ້ວຍ environment marker ຫຼັງເຄື່ອງໝາຍຈຳເມັດ (semicolon)." + +#: ../source/specifications/core-metadata.rst:561 +msgid "Requires-Dist (multiple use)" +msgstr "ຕ້ອງການ-ຊຸດໂປຣແກຣມ (Requires-Dist) (ໃຊ້ໄດ້ຫຼາຍຄັ້ງ)" + +#: ../source/specifications/core-metadata.rst:564 +#: ../source/specifications/core-metadata.rst:627 +#: ../source/specifications/core-metadata.rst:851 +#: ../source/specifications/core-metadata.rst:893 +msgid "" +"The field format specification was relaxed to accept the syntax used by " +"popular publishing tools." +msgstr "" +"ຂໍ້ກຳນົດຮູບແບບຂອງຊ່ອງຂໍ້ມູນຖືກປັບປ່ຽນໃຫ້ຢືດຢຸ່ນຂຶ້ນ ເພື່ອຮອງຮັບຮູບແບບໄວຍາກອນ " +"ທີ່ໃຊ້ໂດຍເຄື່ອງມືເຜີຍແຜ່ຍອດນິຍົມ." + +#: ../source/specifications/core-metadata.rst:568 +msgid "" +"Each entry contains a string naming some other distutils project required by " +"this distribution." +msgstr "" +"ແຕ່ລະລາຍການປະກອບມີຂໍ້ຄວາມທີ່ລະບຸຊື່ຂອງໂຄງການ distutils ອື່ນໆ ທີ່ຊຸດໂປຣແກຣມນີ້ ຈຳເປັນຕ້ອງໃຊ້." + +#: ../source/specifications/core-metadata.rst:571 +msgid "The format of a requirement string contains from one to four parts:" +msgstr "ຮູບແບບຂອງຂໍ້ຄວາມຄວາມຕ້ອງການ (requirement string) ປະກອບມີແຕ່ 1 ຫາ 4 ສ່ວນ:" + +#: ../source/specifications/core-metadata.rst:573 +msgid "" +"A project name, in the same format as the ``Name:`` field. The only " +"mandatory part." +msgstr "ຊື່ໂຄງການ, ໃນຮູບແບບດຽວກັນກັບຊ່ອງຂໍ້ມູນ ``Name:``. ເປັນສ່ວນດຽວທີ່ຕ້ອງມີ." + +#: ../source/specifications/core-metadata.rst:575 +msgid "" +"A comma-separated list of 'extra' names. These are defined by the required " +"project, referring to specific features which may need extra dependencies. " +"The names MUST conform to the restrictions specified by the ``Provides-" +"Extra:`` field." +msgstr "" +"ລາຍຊື່ 'extra' ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດ. ສິ່ງເຫຼົ່ານີ້ຖືກກຳນົດໂດຍໂຄງການທີ່ຖືກຮຽກໃຊ້, " +"ໂດຍອ້າງອີງເຖິງຟີເຈີສະເພາະທີ່ອາດຕ້ອງການສິ່ງທີ່ຈຳເປັນເພີ່ມເຕີມ. ຊື່ເຫຼົ່ານີ້ຕ້ອງເປັນໄປຕາມ " +"ຂໍ້ຈຳກັດທີ່ລະບຸໄວ້ໃນຊ່ອງຂໍ້ມູນ ``Provides-Extra:``." + +#: ../source/specifications/core-metadata.rst:579 +msgid "" +"A version specifier. Tools parsing the format should accept optional " +"parentheses around this, but tools generating it should not use parentheses." +msgstr "" +"ການລະບຸເວີຊັນ. ເຄື່ອງມືທີ່ອ່ານຮູບແບບນີ້ຄວນຮອງຮັບວົງເລັບອ້ອມຮອບ, ແຕ່ເຄື່ອງມືທີ່ ສ້າງຂໍ້ມູນນີ້ບໍ່ຄວນໃຊ້ວົງເລັບ." + +#: ../source/specifications/core-metadata.rst:582 +msgid "" +"An environment marker after a semicolon. This means that the requirement is " +"only needed in the specified conditions." +msgstr "" +"ຕົວໝາຍສະພາວະແວດລ້ອມຫຼັງເຄື່ອງໝາຍຈ້ຳຈຸດ. ນີ້ໝາຍຄວາມວ່າຂໍ້ກຳນົດນັ້ນແມ່ນຈຳເປັນໃນເງື່ອນໄຂທີ່ລະບຸໄວ້ເທົັ້ນັ້ນ." + +#: ../source/specifications/core-metadata.rst:585 +msgid "" +"The project names should correspond to names as found on the `Python Package " +"Index`_." +msgstr "ຊື່ໂຄງການຄວນກົງກັບຊື່ທີ່ພົບໃນ `Python Package Index`_." + +#: ../source/specifications/core-metadata.rst:588 +msgid "" +"Version specifiers must follow the rules described in :doc:`version-" +"specifiers`." +msgstr "ການລະບຸເວີຊັນຕ້ອງປະຕິບັດຕາມກົດເກນທີ່ອະທິບາຍໄວ້ໃນ :doc:`version-specifiers`." + +#: ../source/specifications/core-metadata.rst:591 +msgid "" +"See :ref:`dependency-specifiers` for full details of the allowed format." +msgstr "ເບິ່ງ :ref:`dependency-specifiers` ສຳລັບລາຍລະອຽດທັງໝົດຂອງຮູບແບບທີ່ອະນຸຍາດ." + +#: ../source/specifications/core-metadata.rst:604 +msgid "Requires-Python" +msgstr "" + +#: ../source/specifications/core-metadata.rst:608 +msgid "" +"This field specifies the Python version(s) that the distribution is " +"compatible with. Installation tools may look at this when picking which " +"version of a project to install." +msgstr "" +"ຊ່ອງຂໍ້ມູນນີ້ລະບຸເວີຊັນຂອງ Python ທີ່ຊຸດໂປຣແກຣມນີ້ຮອງຮັບ. ເຄື່ອງມືໃນການຕິດຕັ້ງ " +"ອາດຈະກວດເບິ່ງສ່ວນນີ້ໃນເວລາເລືອກເວີຊັນຂອງໂຄງການທີ່ຈະຕິດຕັ້ງ." + +#: ../source/specifications/core-metadata.rst:612 +msgid "The value must be in the format specified in :doc:`version-specifiers`." +msgstr "ຄ່າຕ້ອງຢູ່ໃນຮູບແບບທີ່ລະບຸໄວ້ໃນ :doc:`version-specifiers`." + +#: ../source/specifications/core-metadata.rst:614 +msgid "" +"For example, if a distribution uses :ref:`f-strings ` " +"then it may prevent installation on Python < 3.6 by specifying::" +msgstr "" +"ຕົວຢ່າງ, ຖ້າຊຸດໂປຣແກຣມໃຊ້ :ref:`f-strings `, ມັນອາດຈະ " +"ປ້ອງກັນການຕິດຕັ້ງໃນ Python ທີ່ຕ່ຳກວ່າ 3.6 ໂດຍການລະບຸ::" + +#: ../source/specifications/core-metadata.rst:619 +msgid "This field cannot be followed by an environment marker." +msgstr "ຊ່ອງຂໍ້ມູນນີ້ບໍ່ສາມາດຕາມດ້ວຍ environment marker ໄດ້." + +#: ../source/specifications/core-metadata.rst:624 +msgid "Requires-External (multiple use)" +msgstr "ຕ້ອງການ-ພາຍນອກ (Requires-External) (ໃຊ້ໄດ້ຫຼາຍຄັ້ງ)" + +#: ../source/specifications/core-metadata.rst:631 +msgid "" +"Each entry contains a string describing some dependency in the system that " +"the distribution is to be used. This field is intended to serve as a hint " +"to downstream project maintainers, and has no semantics which are meaningful " +"to the ``distutils`` distribution." +msgstr "" +"ແຕ່ລະລາຍການປະກອບມີຂໍ້ຄວາມທີ່ອະທິບາຍເຖິງສິ່ງທີ່ຈຳເປັນບາງຢ່າງໃນລະບົບທີ່ຊຸດໂປຣແກຣມ ຕ້ອງການໃຊ້. " +"ຊ່ອງຂໍ້ມູນນີ້ມີຈຸດປະສົງເພື່ອເປັນຄຳແນະນຳໃຫ້ກັບຜູ້ດູແລໂຄງການປາຍທາງ, ແລະ " +"ບໍ່ມີຄວາມໝາຍທາງໄວຍາກອນສຳລັບຊຸດໂປຣແກຣມ ``distutils``." + +#: ../source/specifications/core-metadata.rst:636 +msgid "" +"The format of a requirement string is a name of an external dependency, " +"optionally followed by a version declaration within parentheses." +msgstr "" +"ຮູບແບບຂອງຂໍ້ຄວາມຄວາມຕ້ອງການແມ່ນຊື່ຂອງສິ່ງທີ່ຈຳເປັນພາຍນອກ, ແລະ ສາມາດຕາມດ້ວຍ " +"ການລະບຸເວີຊັນພາຍໃນວົງເລັບໄດ້." + +#: ../source/specifications/core-metadata.rst:642 +msgid "" +"Because they refer to non-Python software releases, version numbers for this " +"field are **not** required to conform to the format specified in " +"the :ref:`Version specifier specification `: they should " +"correspond to the version scheme used by the external dependency." +msgstr "" +"ເນື່ອງຈາກມັນອ້າງອີງເຖິງຊອບແວທີ່ບໍ່ແມ່ນ Python, ເລກເວີຊັນສຳລັບຊ່ອງຂໍ້ມູນນີ້ **ບໍ່ຈຳເປັນ** " +"ຕ້ອງເປັນໄປຕາມຮູບແບບທີ່ລະບຸໄວ້ໃນ :ref:`Version specifier specification `: ແຕ່ຄວນກົງກັບຮູບແບບເວີຊັນທີ່ໃຊ້ໂດຍຊອບແວພາຍນອກນັ້ນ." + +#: ../source/specifications/core-metadata.rst:647 +msgid "Notice that there is no particular rule on the strings to be used." +msgstr "ສັງເກດວ່າບໍ່ມີກົດເກນສະເພາະເຈາະຈົງກ່ຽວກັບຂໍ້ຄວາມທີ່ຈະນຳໃຊ້." + +#: ../source/specifications/core-metadata.rst:659 +msgid "Project-URL (multiple-use)" +msgstr "Project-URL (ໃຊ້ໄດ້ຫຼາຍຄັ້ງ)" + +#: ../source/specifications/core-metadata.rst:663 +msgid "" +"A string containing a browsable URL for the project and a label for it, " +"separated by a comma." +msgstr "" +"ຂໍ້ຄວາມທີ່ປະກອບມີ URL ຂອງໂຄງການທີ່ສາມາດເຂົ້າເບິ່ງໄດ້ ແລະ ປ້າຍຊື່ (label), ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດ." + +#: ../source/specifications/core-metadata.rst:670 +msgid "The label is free text limited to 32 characters." +msgstr "ປ້າຍຊື່ແມ່ນຂໍ້ຄວາມທົ່ວໄປທີ່ຈຳກັດໄວ້ບໍ່ເກີນ 32 ຕົວອັກສອນ." + +#: ../source/specifications/core-metadata.rst:672 +msgid "" +"Starting with :pep:`753`, project metadata consumers (such as the Python " +"Package Index) can use a standard normalization process to discover \"well-" +"known\" labels, which can then be given special presentations when being " +"rendered for human consumption. See :ref:`well-known-project-urls`." +msgstr "" +"ເລີ່ມຕັ້ງແຕ່ :pep:`753`, ຜູ້ໃຊ້ຂໍ້ມູນກຳກັບຂອງໂຄງການ (ເຊັ່ນ Python Package Index) " +"ສາມາດໃຊ້ຂະບວນການປັບໃຫ້ເປັນມາດຕະຖານ (normalization) ເພື່ອຄົ້ນຫາປ້າຍຊື່ທີ່ \"ເປັນທີ່ຮູ້ຈັກດີ\", " +"ເຊິ່ງສາມາດສະແດງຜົນໃນຮູບແບບພິເສດເພື່ອໃຫ້ມະນຸດອ່ານໄດ້ງ່າຍ. ເບິ່ງ :ref:`well-known-project-" +"urls`." + +#: ../source/specifications/core-metadata.rst:682 +msgid "Provides-Extra (multiple use)" +msgstr "ໃຫ້-Extra (Provides-Extra) (ໃຊ້ໄດ້ຫຼາຍຄັ້ງ)" + +#: ../source/specifications/core-metadata.rst:685 +msgid "" +":pep:`685` restricted valid values to be unambiguous (i.e. no normalization " +"required). For older metadata versions, value restrictions were brought into " +"line with ``Name:`` and normalization rules were introduced." +msgstr "" +":pep:`685` ໄດ້ຈຳກັດຄ່າທີ່ຖືກຕ້ອງເພື່ອບໍ່ໃຫ້ເກີດຄວາມກຳກວມ (ເຊັ່ນ: ບໍ່ຕ້ອງມີການປັບຄ່າມາດຕະຖານ). " +"ສຳລັບ metadata ເວີຊັນເກົ່າ, ຂໍ້ຈຳກັດຂອງຄ່າຖືກປັບໃຫ້ສອດຄ່ອງກັບ ``Name:`` ແລະ " +"ໄດ້ມີການນຳໃຊ້ກົດເກນການປັບຄ່າມາດຕະຖານ." + +#: ../source/specifications/core-metadata.rst:690 +msgid "" +"A string containing the name of an optional feature. A valid name consists " +"only of lowercase ASCII letters, ASCII numbers, and hyphen. It must start " +"and end with a letter or number. Hyphens cannot be followed by another " +"hyphen. Names are limited to those which match the following regex (which " +"guarantees unambiguity)::" +msgstr "" +"ຂໍ້ຄວາມທີ່ລະບຸຊື່ຂອງຟີເຈີເສີມ. ຊື່ທີ່ຖືກຕ້ອງຕ້ອງປະກອບມີພຽງແຕ່ຕົວອັກສອນ ASCII ຕົວພິມນ້ອຍ, ຕົວເລກ " +"ASCII, ແລະ ເຄື່ອງໝາຍຂີດກາງ (-). ມັນຕ້ອງເລີ່ມຕົ້ນ ແລະ ລົງທ້າຍດ້ວຍຕົວອັກສອນ ຫຼື ຕົວເລກ. " +"ບໍ່ສາມາດໃຊ້ເຄື່ອງໝາຍຂີດກາງສອງອັນຕໍ່ກັນໄດ້. ຊື່ຖືກຈຳກັດໃຫ້ກົງກັບ regex ຕໍ່ໄປນີ້ " +"(ເຊິ່ງຮັບປະກັນວ່າຈະບໍ່ມີຄວາມກຳກວມ)::" + +#: ../source/specifications/core-metadata.rst:698 +msgid "" +"The specified name may be used to make a dependency conditional on whether " +"the optional feature has been requested." +msgstr "" +"ຊື່ທີ່ລະບຸໄວ້ອາດຖືກໃຊ້ເພື່ອເຮັດໃຫ້ສິ່ງທີ່ຈຳເປັນ (dependency) ຂຶ້ນກັບເງື່ອນໄຂ " +"ວ່າໄດ້ມີການຮ້ອງຂໍຟີເຈີເສີມນັ້ນຫຼືບໍ່." + +#: ../source/specifications/core-metadata.rst:706 +msgid "" +"A second distribution requires an optional dependency by placing it inside " +"square brackets, and can request multiple features by separating them with a " +"comma (,). The requirements are evaluated for each requested feature and " +"added to the set of requirements for the distribution." +msgstr "" +"ຊຸດໂປຣແກຣມອື່ນສາມາດຮ້ອງຂໍສິ່ງທີ່ຈຳເປັນເສີມ ໂດຍການໃສ່ມັນໄວ້ໃນວົງເລັບຫຼ່ຽມ [], ແລະ " +"ສາມາດຮ້ອງຂໍຫຼາຍຟີເຈີໄດ້ໂດຍແຍກດ້ວຍເຄື່ອງໝາຍຈຸດ (,). ຄວາມຕ້ອງການຈະຖືກ " +"ປະເມີນສຳລັບແຕ່ລະຟີເຈີທີ່ຮ້ອງຂໍ ແລະ ຈະຖືກເພີ່ມເຂົ້າໃນຊຸດຄວາມຕ້ອງການຂອງຊຸດໂປຣແກຣມ." + +#: ../source/specifications/core-metadata.rst:716 +msgid "" +"Two feature names ``test`` and ``doc`` are reserved to mark dependencies " +"that are needed for running automated tests and generating documentation, " +"respectively." +msgstr "" +"ຊື່ຟີເຈີສອງຢ່າງຄື ``test`` ແລະ ``doc`` ແມ່ນຖືກສະຫງວນໄວ້ເພື່ອໝາຍເຖິງ " +"ສິ່ງທີ່ຈຳເປັນສຳລັບການທົດສອບອັດຕະໂນມັດ ແລະ ການສ້າງເອກະສານ ຕາມລຳດັບ." + +#: ../source/specifications/core-metadata.rst:720 +msgid "" +"It is legal to specify ``Provides-Extra:`` without referencing it in any " +"``Requires-Dist:``." +msgstr "" +"ມັນຖືກຕ້ອງຕາມຂໍ້ກຳນົດທີ່ຈະລະບຸ ``Provides-Extra:`` ໂດຍທີ່ບໍ່ໄດ້ອ້າງອີງເຖິງມັນ ໃນ ``Requires-" +"Dist:`` ໃດໆ." + +#: ../source/specifications/core-metadata.rst:723 +msgid "" +"When writing data for older metadata versions, names MUST be normalized " +"following the same rules used for the ``Name:`` field when performing " +"comparisons. Tools writing metadata MUST raise an error if two ``Provides-" +"Extra:`` entries would clash after being normalized." +msgstr "" +"ເມື່ອຂຽນຂໍ້ມູນສຳລັບ metadata ເວີຊັນເກົ່າ, ຊື່ຕ້ອງຖືກປັບຄ່າມາດຕະຖານຕາມກົດເກນດຽວກັນ ທີ່ໃຊ້ກັບຊ່ອງຂໍ້ມູນ " +"``Name:`` ເວລາເຮັດການປຽບທຽບ. ເຄື່ອງມືທີ່ຂຽນ metadata ຕ້ອງ ແຈ້ງຂໍ້ຜິດພາດ (raise an " +"error) ຖ້າຫາກມີສອງລາຍການໃນ ``Provides-Extra:`` ທີ່ຊ້ຳກັນຫຼັງຈາກປັບຄ່າມາດຕະຖານແລ້ວ." + +#: ../source/specifications/core-metadata.rst:728 +msgid "" +"When reading data for older metadata versions, tools SHOULD warn when values " +"for this field would be invalid under newer metadata versions. If a value " +"would be invalid following the rules for ``Name:`` in any core metadata " +"version, the user SHOULD be warned and the value ignored to avoid ambiguity. " +"Tools MAY choose to raise an error when reading an invalid name for older " +"metadata versions." +msgstr "" +"ເມື່ອອ່ານຂໍ້ມູນສຳລັບ metadata ເວີຊັນເກົ່າ, ເຄື່ອງມືຄວນຈະເຕືອນເມື່ອຄ່າໃນຊ່ອງນີ້ ບໍ່ຖືກຕ້ອງຕາມ metadata " +"ເວີຊັນໃໝ່. ຖ້າຄ່າໃດນັ້ນບໍ່ຖືກຕ້ອງຕາມກົດເກນຂອງ ``Name:`` ໃນ core metadata ເວີຊັນໃດໜຶ່ງ, " +"ຄວນເຕືອນຜູ້ໃຊ້ ແລະ ບໍ່ສົນໃຈຄ່ານັ້ນເພື່ອຫຼີກລ່ຽງ ຄວາມກຳກວມ. " +"ເຄື່ອງມືອາດຈະເລືອກແຈ້ງຂໍ້ຜິດພາດເມື່ອອ່ານຊື່ທີ່ບໍ່ຖືກຕ້ອງສຳລັບ metadata ເວີຊັນເກົ່າ." + +#: ../source/specifications/core-metadata.rst:738 +msgid "Import-Name (multiple use)" +msgstr "ຊື່ການນຳເຂົ້າ (Import-Name) (ໃຊ້ໄດ້ຫຼາຍຄັ້ງ)" + +#: ../source/specifications/core-metadata.rst:742 +msgid "" +"A string containing an import name that the project exclusively provides " +"when installed. The specified import name MUST be a valid Python identifier " +"or can be empty. The import names listed in this field MUST be importable " +"when the project is installed on *some* platform for the same version of the " +"project. This implies that the metadata MUST be consistent across all sdists " +"and wheels for a project release." +msgstr "" +"ຂໍ້ຄວາມທີ່ລະບຸຊື່ການນຳເຂົ້າ (import name) ທີ່ໂຄງການນີ້ສະໜອງໃຫ້ໂດຍສະເພາະ ເມື່ອຖືກຕິດຕັ້ງ. " +"ຊື່ການນຳເຂົ້າທີ່ລະບຸຕ້ອງເປັນ Python identifier ທີ່ຖືກຕ້ອງ ຫຼື ສາມາດປະຫວ່າງໄວ້ໄດ້. " +"ຊື່ການນຳເຂົ້າທີ່ລະບຸໃນຊ່ອງນີ້ຕ້ອງສາມາດນຳເຂົ້າ (import) ໄດ້ " +"ເມື່ອໂຄງການຖືກຕິດຕັ້ງໃນບາງແພລັດຟອມສຳລັບເວີຊັນດຽວກັນ. ນີ້ໝາຍຄວາມວ່າ metadata " +"ຕ້ອງສອດຄ່ອງກັນໃນທຸກໆ sdist ແລະ wheel ສຳລັບການປ່ອຍໂຄງການນັ້ນ." + +#: ../source/specifications/core-metadata.rst:749 +#: ../source/specifications/core-metadata.rst:804 +msgid "" +"An import name MAY be followed by a semicolon and the term \"private\" (e.g. " +"``; private``) with any amount of whitespace surrounding the semicolon. This " +"signals to tools that the import name is not part of the public API for the " +"project." +msgstr "" +"ຊື່ການນຳເຂົ້າອາດຈະຕາມດ້ວຍເຄື່ອງໝາຍຈຳເມັດ (semicolon) ແລະ ຄຳວ່າ \"private\" (ເຊັ່ນ: ``; " +"private``). ນີ້ເປັນການສົ່ງສັນຍານໃຫ້ເຄື່ອງມືຮູ້ວ່າຊື່ການນຳເຂົ້ານີ້ ບໍ່ແມ່ນສ່ວນໜຶ່ງຂອງ public API " +"ຂອງໂຄງການ." + +#: ../source/specifications/core-metadata.rst:754 +#: ../source/specifications/core-metadata.rst:809 +msgid "" +"Projects SHOULD list all the shortest import names that are exclusively " +"provided by the project. If any of the shortest names are dotted names, all " +"intervening names from that name to the top-level name SHOULD also be listed " +"appropriately in ``Import-Name`` and/or ``Import-Namespace``." +msgstr "" +"ໂຄງການຄວນລະບຸຊື່ການນຳເຂົ້າທີ່ສັ້ນທີ່ສຸດທັງໝົດທີ່ໂຄງການສະໜອງໃຫ້ໂດຍສະເພາະ. ຖ້າຊື່ທີ່ສັ້ນທີ່ສຸດເປັນ dotted " +"names, ຊື່ທັງໝົດທີ່ຢູ່ລະຫວ່າງກາງຈົນຮອດຊື່ລະດັບສູງສຸດ ກໍຄວນຖືກລະບຸໄວ້ຢ່າງເໝາະສົມໃນ ``Import-Name`` " +"ແລະ/ຫຼື ``Import-Namespace``." + +#: ../source/specifications/core-metadata.rst:759 +#: ../source/specifications/core-metadata.rst:819 +msgid "" +"If a project lists the same name in both ``Import-Name`` and ``Import-" +"Namespace``, tools MUST raise an error due to ambiguity." +msgstr "" +"ຖ້າໂຄງການລະບຸຊື່ດຽວກັນໃນທັງ ``Import-Name`` ແລະ ``Import-Namespace``, " +"ເຄື່ອງມືຕ້ອງແຈ້ງຂໍ້ຜິດພາດເນື່ອງຈາກມີຄວາມກຳກວມ." + +#: ../source/specifications/core-metadata.rst:762 +msgid "" +"Tools SHOULD raise an error when two projects that are about to be installed " +"list names that overlap in each other's ``Import-Name`` entries, or when a " +"project has an entry in ``Import-Name`` that overlaps with another project's " +"``Import-Namespace`` entries. This is to avoid projects unexpectedly " +"shadowing another project's code. Tools MAY warn or raise an error when " +"installing a project into a preexisting environment where there is import " +"name overlap with a project that is already installed." +msgstr "" +"ເຄື່ອງມືຄວນແຈ້ງຂໍ້ຜິດພາດເມື່ອມີສອງໂຄງການທີ່ຈະຕິດຕັ້ງມີຊື່ທີ່ທັບຊ້ອນກັນໃນ ລາຍການ ``Import-Name`` " +"ຂອງກັນແລະກັນ, ຫຼື ເມື່ອໂຄງການໜຶ່ງມີລາຍການໃນ ``Import-Name`` ທີ່ທັບຊ້ອນກັບ ``Import-" +"Namespace`` ຂອງອີກໂຄງການໜຶ່ງ. ທັງນີ້ກໍເພື່ອຫຼີກລ່ຽງການທີ່ໂຄງການໜຶ່ງໄປທັບ (shadowing) " +"ໂຄ້ດຂອງອີກໂຄງການໜຶ່ງ ໂດຍບໍ່ຕັ້ງໃຈ. ເຄື່ອງມືອາດຈະເຕືອນ ຫຼື ແຈ້ງຂໍ້ຜິດພາດເມື່ອຕິດຕັ້ງໂຄງການລົງໃນ " +"ສະພາບແວດລ້ອມທີ່ມີຊື່ການນຳເຂົ້າທັບຊ້ອນກັບໂຄງການທີ່ຕິດຕັ້ງໄວ້ກ່ອນແລ້ວ." + +#: ../source/specifications/core-metadata.rst:770 +msgid "" +"Projects MAY have an empty ``Import-Name`` field in their metadata to " +"represent a project with no import names (i.e. there are no Python modules " +"of any kind in the distribution file)." +msgstr "" +"ໂຄງການອາດຈະປະຊ່ອງຂໍ້ມູນ ``Import-Name`` ໃຫ້ວ່າງໄວ້ ເພື່ອສະແດງວ່າໂຄງການນັ້ນ ບໍ່ມີຊື່ການນຳເຂົ້າ " +"(ເຊັ່ນ: ບໍ່ມີ Python module ໃດໆ ໃນໄຟລ໌ຊຸດໂປຣແກຣມ)." + +#: ../source/specifications/core-metadata.rst:774 +msgid "" +"Since projects MAY have no ``Import-Name`` metadata (either because the " +"project uses an older metadata version, or because it didn't specify any), " +"then tools have no information about what names the project provides. " +"However, in practice the majority of projects have their project name match " +"what their import name would be. As such, it is a reasonable assumption to " +"make that a project name that is normalized in some way to an import name " +"(e.g. ``packaging.utils.canonicalize_name(name, validate=True).replace(\"-" +"\", \"_\")``) can be used if some answer is needed." +msgstr "" +"ເນື່ອງຈາກໂຄງການອາດຈະບໍ່ມີ metadata ``Import-Name`` (ບໍ່ວ່າຍ້ອນໃຊ້ metadata ເວີຊັນເກົ່າ ຫຼື " +"ບໍ່ໄດ້ລະບຸໄວ້), ເຄື່ອງມືຈຶ່ງບໍ່ມີຂໍ້ມູນວ່າໂຄງການນັ້ນສະໜອງຊື່ອັນໃດແດ່. ເຖິງຢ່າງໃດກໍຕາມ, ໃນທາງປະຕິບັດ " +"ໂຄງການສ່ວນໃຫຍ່ມັກຈະມີຊື່ໂຄງການກົງກັບຊື່ການນຳເຂົ້າ. ດັ່ງນັ້ນ, ມັນຈຶ່ງເປັນ ການຄາດເດົາທີ່ສົມເຫດສົມຜົນວ່າ " +"ຊື່ໂຄງການທີ່ຖືກປັບຮູບແບບໃຫ້ເປັນຊື່ການນຳເຂົ້າ (ເຊັ່ນ: ການປ່ຽນ \"-\" ເປັນ \"_\") ສາມາດນຳມາໃຊ້ໄດ້ " +"ຫາກຕ້ອງການຂໍ້ມູນດັ່ງກ່າວ." + +#: ../source/specifications/core-metadata.rst:794 +msgid "Import-Namespace (multiple use)" +msgstr "ເນມສະເປດການນຳເຂົ້າ (Import-Namespace) (ໃຊ້ໄດ້ຫຼາຍຄັ້ງ)" + +#: ../source/specifications/core-metadata.rst:798 +msgid "" +"A string containing an import name that the project provides when installed, " +"but not exclusively. The specified import name MUST be a valid Python " +"identifier. This field is used for namespace packages where multiple " +"projects can contribute to the same import namespace. Projects all listing " +"the same import name in ``Import-Namespace`` can be installed together " +"without shadowing each other." +msgstr "" +"ຂໍ້ຄວາມທີ່ລະບຸຊື່ການນຳເຂົ້າທີ່ໂຄງການສະໜອງໃຫ້ເມື່ອຕິດຕັ້ງ, ແຕ່ບໍ່ໄດ້ສະໜອງໃຫ້ ໂດຍສະເພາະພຽງຜູ້ດຽວ. " +"ຊື່ການນຳເຂົ້າທີ່ລະບຸຕ້ອງເປັນ Python identifier ທີ່ຖືກຕ້ອງ. ຊ່ອງຂໍ້ມູນນີ້ໃຊ້ສຳລັບ namespace " +"packages ທີ່ຫຼາຍໂຄງການສາມາດໃຊ້ import namespace ຮ່ວມກັນໄດ້. ທຸກໂຄງການທີ່ລະບຸຊື່ດຽວກັນໃນ " +"``Import-Namespace`` ສາມາດຕິດຕັ້ງ ຮ່ວມກັນໄດ້ໂດຍບໍ່ມີການທັບຊ້ອນກັນ." + +#: ../source/specifications/core-metadata.rst:814 +msgid "" +"The import names listed in this field MUST be importable when the project is " +"installed on *some* platform for the same version of the project. This " +"implies that the metadata MUST be consistent across all sdists and wheels " +"for a project release." +msgstr "" +"ຊື່ການນຳເຂົ້າທີ່ລະບຸໃນຊ່ອງນີ້ຕ້ອງສາມາດນຳເຂົ້າໄດ້ ເມື່ອໂຄງການຖືກຕິດຕັ້ງໃນບາງ " +"ແພລັດຟອມສຳລັບເວີຊັນດຽວກັນ. ນີ້ໝາຍຄວາມວ່າ metadata ຕ້ອງສອດຄ່ອງກັນໃນ ທຸກ sdist ແລະ wheel " +"ສຳລັບການປ່ອຍໂຄງການນັ້ນ." + +#: ../source/specifications/core-metadata.rst:822 +msgid "Note that ``Import-Namespace`` CANNOT be empty like ``Import-Name``." +msgstr "ໝາຍເຫດ: ``Import-Namespace`` ບໍ່ສາມາດປະວ່າງໄດ້ຄືກັບ ``Import-Name``." + +#: ../source/specifications/core-metadata.rst:831 +msgid "Rarely Used Fields" +msgstr "ຊ່ອງຂໍ້ມູນທີ່ບໍ່ຄ່ອຍໄດ້ໃຊ້" + +#: ../source/specifications/core-metadata.rst:833 +msgid "" +"The fields in this section are currently rarely used, as their design was " +"inspired by comparable mechanisms in Linux package management systems, and " +"it isn't at all clear how tools should interpret them in the context of an " +"open index server such as `PyPI `__." +msgstr "" +"ຊ່ອງຂໍ້ມູນໃນສ່ວນນີ້ແມ່ນບໍ່ຄ່ອຍໄດ້ໃຊ້ໃນປັດຈຸບັນ, ເນື່ອງຈາກການອອກແບບຂອງມັນ " +"ໄດ້ຮັບແຮງບັນດານໃຈມາຈາກລະບົບການຈັດການຊຸດໂປຣແກຣມໃນ Linux, ແລະ ມັນຍັງ ບໍ່ຊັດເຈນວ່າເຄື່ອງມືຕ່າງໆ " +"ຄວນຕີຄວາມໝາຍພວກມັນແນວໃດ ໃນບໍລິບົດຂອງເຊີເວີດັດຊະນີ ແບບເປີດເຊັ່ນ `PyPI `__." + +#: ../source/specifications/core-metadata.rst:838 +msgid "" +"As a result, popular installation tools ignore them completely, which in " +"turn means there is little incentive for package publishers to set them " +"appropriately. However, they're retained in the metadata specification, as " +"they're still potentially useful for informational purposes, and can also be " +"used for their originally intended purpose in combination with a curated " +"package repository." +msgstr "" +"ດ້ວຍເຫດນີ້, ເຄື່ອງມືຕິດຕັ້ງທີ່ເປັນທີ່ນິຍົມຈຶ່ງບໍ່ສົນໃຈພວກມັນເລີຍ, ເຊິ່ງເຮັດໃຫ້ " +"ຜູ້ເຜີຍແຜ່ຊຸດໂປຣແກຣມບໍ່ມີແຮງຈູງໃຈທີ່ຈະຕັ້ງຄ່າພວກມັນ. ເຖິງຢ່າງໃດກໍຕາມ, ພວກມັນ ຍັງຖືກເກັບໄວ້ໃນຂໍ້ກຳນົດ " +"metadata ເນື່ອງຈາກຍັງອາດມີປະໂຫຍດໃນການໃຫ້ຂໍ້ມູນ, ແລະ " +"ສາມາດໃຊ້ເພື່ອຈຸດປະສົງເດີມຂອງມັນຮ່ວມກັບຄັງຊຸດໂປຣແກຣມທີ່ຖືກຄັດສັນເປັນພິເສດ." + +#: ../source/specifications/core-metadata.rst:848 +msgid "Provides-Dist (multiple use)" +msgstr "ໃຫ້-ຊຸດໂປຣແກຣມ (Provides-Dist) (ໃຊ້ໄດ້ຫຼາຍຄັ້ງ)" + +#: ../source/specifications/core-metadata.rst:855 +msgid "" +"Each entry contains a string naming a Distutils project which is contained " +"within this distribution. This field *must* include the project identified " +"in the ``Name`` field, followed by the version : Name (Version)." +msgstr "" +"ແຕ່ລະລາຍການປະກອບມີຂໍ້ຄວາມທີ່ລະບຸຊື່ໂຄງການ Distutils ທີ່ລວມຢູ່ໃນຊຸດໂປຣແກຣມນີ້. ຊ່ອງຂໍ້ມູນນີ້ *ຕ້ອງ* " +"ລວມເອົາໂຄງການທີ່ລະບຸໄວ້ໃນຊ່ອງ ``Name``, ຕາມດ້ວຍເວີຊັນ: ຊື່ (ເວີຊັນ)." + +#: ../source/specifications/core-metadata.rst:860 +msgid "" +"A distribution may provide additional names, e.g. to indicate that multiple " +"projects have been bundled together. For instance, source distributions of " +"the ``ZODB`` project have historically included the ``transaction`` project, " +"which is now available as a separate distribution. Installing such a source " +"distribution satisfies requirements for both ``ZODB`` and ``transaction``." +msgstr "" +"ຊຸດໂປຣແກຣມອາດຈະລະບຸຊື່ອື່ນໆ ເພີ່ມເຕີມ, ເຊັ່ນ: ເພື່ອບອກວ່າຫຼາຍໂຄງການຖືກລວມເຂົ້າ ໄວ້ນຳກັນ. ຕົວຢ່າງ, " +"source distributions ຂອງໂຄງການ ``ZODB`` ໃນເມື່ອກ່ອນເຄີຍ ລວມເອົາໂຄງການ " +"``transaction`` ໄວ້, ເຊິ່ງຕອນນີ້ມີແຍກເປັນຊຸດໂປຣແກຣມຕ່າງຫາກ. ການຕິດຕັ້ງ source " +"distribution ດັ່ງກ່າວຈະຖືວ່າຕອບສະໜອງຄວາມຕ້ອງການຂອງທັງ ``ZODB`` ແລະ ``transaction``." + +#: ../source/specifications/core-metadata.rst:867 +msgid "" +"A distribution may also provide a \"virtual\" project name, which does not " +"correspond to any separately-distributed project: such a name might be used " +"to indicate an abstract capability which could be supplied by one of " +"multiple projects. E.g., multiple projects might supply RDBMS bindings for " +"use by a given ORM: each project might declare that it provides ``ORM-" +"bindings``, allowing other projects to depend only on having at most one of " +"them installed." +msgstr "" +"ຊຸດໂປຣແກຣມຍັງອາດຈະລະບຸຊື່ໂຄງການ \"ສະເມືອນ\" (virtual), ເຊິ່ງບໍ່ກົງກັບ " +"ໂຄງການໃດທີ່ແຍກແຈກຢາຍຕ່າງຫາກ: ຊື່ດັ່ງກ່າວອາດໃຊ້ເພື່ອບອກເຖິງຄວາມສາມາດ " +"ໃນທາງນາມມະທຳທີ່ຫຼາຍໂຄງການສາມາດເຮັດໄດ້. ຕົວຢ່າງ: ຫຼາຍໂຄງການອາດສະໜອງ RDBMS bindings " +"ສຳລັບໃຊ້ກັບ ORM ໃດໜຶ່ງ: ແຕ່ລະໂຄງການອາດປະກາດວ່າມັນໃຫ້ ``ORM-bindings``, " +"ເຊິ່ງຊ່ວຍໃຫ້ໂຄງການອື່ນໆ ຕ້ອງການພຽງແຕ່ໃຫ້ມີໂຄງການໃດໜຶ່ງ ໃນນັ້ນຕິດຕັ້ງໄວ້ກໍພໍ." + +#: ../source/specifications/core-metadata.rst:875 +msgid "" +"A version declaration may be supplied and must follow the rules described " +"in :doc:`version-specifiers`. The distribution's version number will be " +"implied if none is specified." +msgstr "" +"ສາມາດລະບຸເວີຊັນໄດ້ ແລະ ຕ້ອງປະຕິບັດຕາມກົດເກນໃນ :doc:`version-specifiers`. ຖ້າບໍ່ໄດ້ລະບຸ, " +"ຈະຖືວ່າເປັນເວີຊັນດຽວກັນກັບຊຸດໂປຣແກຣມນັ້ນ." + +#: ../source/specifications/core-metadata.rst:890 +msgid "Obsoletes-Dist (multiple use)" +msgstr "ແທນທີ່-ຊຸດໂປຣແກຣມ (Obsoletes-Dist) (ໃຊ້ໄດ້ຫຼາຍຄັ້ງ)" + +#: ../source/specifications/core-metadata.rst:897 +msgid "" +"Each entry contains a string describing a distutils project's distribution " +"which this distribution renders obsolete, meaning that the two projects " +"should not be installed at the same time." +msgstr "" +"ແຕ່ລະລາຍການປະກອບມີຂໍ້ຄວາມທີ່ລະບຸຊື່ຊຸດໂປຣແກຣມຂອງ distutils ທີ່ຊຸດໂປຣແກຣມນີ້ ເຮັດໃຫ້ລ້າສະໄໝ ຫຼື " +"ເຂົ້າມາແທນທີ່, ໝາຍຄວາມວ່າສອງໂຄງການນີ້ບໍ່ຄວນຕິດຕັ້ງ ພ້ອມກັນໃນເວລາດຽວກັນ." + +#: ../source/specifications/core-metadata.rst:901 +msgid "" +"Version declarations can be supplied. Version numbers must be in the format " +"specified in :doc:`version-specifiers`." +msgstr "ສາມາດລະບຸເວີຊັນໄດ້. ເລກເວີຊັນຕ້ອງຢູ່ໃນຮູບແບບທີ່ລະບຸໄວ້ໃນ :doc:`version-specifiers`." + +#: ../source/specifications/core-metadata.rst:906 +msgid "" +"The most common use of this field will be in case a project name changes, " +"e.g. Gorgon 2.3 gets subsumed into Torqued Python 1.0. When you install " +"Torqued Python, the Gorgon distribution should be removed." +msgstr "" +"ກໍລະນີທີ່ໃຊ້ເລື້ອຍທີ່ສຸດແມ່ນເມື່ອໂຄງການປ່ຽນຊື່, ເຊັ່ນ: Gorgon 2.3 ຖືກປ່ຽນເປັນ Torqued Python 1.0. " +"ເມື່ອທ່ານຕິດຕັ້ງ Torqued Python, ຊຸດໂປຣແກຣມ Gorgon ກໍຄວນຈະຖືກຖອນອອກ." + +#: ../source/specifications/core-metadata.rst:919 +msgid "Deprecated Fields" +msgstr "ຊ່ອງຂໍ້ມູນທີ່ຖືກຍົກເລີກ" + +#: ../source/specifications/core-metadata.rst:921 +msgid "" +"Deprecated fields should be avoided, but they are valid metadata fields. " +"They may be removed in future versions of the core metadata standard (at " +"which point they will only be valid in files that specify a metadata version " +"prior to the removal). Tools SHOULD warn users when deprecated fields are " +"used." +msgstr "" +"ຊ່ອງຂໍ້ມູນທີ່ຖືກຍົກເລີກ (deprecated) ຄວນຫຼີກລ່ຽງການນຳໃຊ້, ແຕ່ພວກມັນຍັງເປັນຊ່ອງ metadata " +"ທີ່ໃຊ້ໄດ້ຢູ່. ພວກມັນອາດຈະຖືກຕັດອອກໃນເວີຊັນຕໍ່ໆ ໄປຂອງມາດຕະຖານ core metadata. " +"ເຄື່ອງມືຄວນຈະເຕືອນຜູ້ໃຊ້ເມື່ອມີການນຳໃຊ້ຊ່ອງຂໍ້ມູນເຫຼົ່ານີ້." + +#: ../source/specifications/core-metadata.rst:930 +msgid "Home-page" +msgstr "ໜ້າຫຼັກ (Home-page)" + +#: ../source/specifications/core-metadata.rst:936 +#: ../source/specifications/core-metadata.rst:953 +msgid "Per :pep:`753`, use :ref:`core-metadata-project-url` instead." +msgstr "ຕາມ :pep:`753`, ໃຫ້ໃຊ້ :ref:`core-metadata-project-url` ແທນ." + +#: ../source/specifications/core-metadata.rst:938 +msgid "A string containing the URL for the distribution's home page." +msgstr "ຂໍ້ຄວາມທີ່ລະບຸ URL ສຳລັບໜ້າຫຼັກຂອງຊຸດໂປຣແກຣມ." + +#: ../source/specifications/core-metadata.rst:947 +msgid "Download-URL" +msgstr "URL-ດາວໂຫຼດ (Download-URL)" + +#: ../source/specifications/core-metadata.rst:955 +msgid "" +"A string containing the URL from which this version of the distribution can " +"be downloaded. (This means that the URL can't be something like \"``.../" +"BeagleVote-latest.tgz``\", but instead must be \"``.../" +"BeagleVote-0.45.tgz``\".)" +msgstr "" +"ຂໍ້ຄວາມທີ່ລະບຸ URL ທີ່ສາມາດດາວໂຫຼດຊຸດໂປຣແກຣມເວີຊັນນີ້ໄດ້. (ໝາຍຄວາມວ່າ URL ບໍ່ຄວນເປັນແບບ " +"\"``.../BeagleVote-latest.tgz``\", ແຕ່ຕ້ອງເປັນແບບ \"``.../" +"BeagleVote-0.45.tgz``\".)" + +#: ../source/specifications/core-metadata.rst:961 +msgid "Requires" +msgstr "ຕ້ອງການ" + +#: ../source/specifications/core-metadata.rst:964 +msgid "in favour of ``Requires-Dist``" +msgstr "ເພື່ອສະໜັບສະໜູນ ``Requires-Dist``" + +#: ../source/specifications/core-metadata.rst:967 +msgid "" +"Each entry contains a string describing some other module or package " +"required by this package." +msgstr "ແຕ່ລະລາຍການປະກອບມີຂໍ້ຄວາມທີ່ລະບຸ module ຫຼື package ອື່ນໆ ທີ່ package ນີ້ຕ້ອງການ." + +#: ../source/specifications/core-metadata.rst:970 +msgid "" +"The format of a requirement string is identical to that of a module or " +"package name usable with the ``import`` statement, optionally followed by a " +"version declaration within parentheses." +msgstr "" +"ຮູບແບບຂອງຂໍ້ຄວາມຄວາມຕ້ອງການແມ່ນຄືກັນກັບຊື່ module ຫຼື package ທີ່ໃຊ້ໃນຄຳສັ່ງ ``import``, ແລະ " +"ສາມາດຕາມດ້ວຍການລະບຸເວີຊັນພາຍໃນວົງເລັບໄດ້." + +#: ../source/specifications/core-metadata.rst:974 +msgid "" +"A version declaration is a series of conditional operators and version " +"numbers, separated by commas. Conditional operators must be one of \"<\", " +"\">\"', \"<=\", \">=\", \"==\", and \"!=\". Version numbers must be in the " +"format accepted by the ``distutils.version.StrictVersion`` class: two or " +"three dot-separated numeric components, with an optional \"pre-release\" tag " +"on the end consisting of the letter 'a' or 'b' followed by a number. Example " +"version numbers are \"1.0\", \"2.3a2\", \"1.3.99\"," +msgstr "" +"ການລະບຸເວີຊັນແມ່ນຊຸດຂອງຕົວດຳເນີນການເງື່ອນໄຂ ແລະ ເລກເວີຊັນ, ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດ. " +"ຕົວດຳເນີນການເງື່ອນໄຂຕ້ອງແມ່ນ \"<\", \">\", \"<=\", \">=\", \"==\", ແລະ \"!=\". " +"ເລກເວີຊັນຕ້ອງຢູ່ໃນຮູບແບບທີ່ຮອງຮັບໂດຍຄລາສ ``distutils.version.StrictVersion``." + +#: ../source/specifications/core-metadata.rst:982 +msgid "" +"Any number of conditional operators can be specified, e.g. the string " +"\">1.0, !=1.3.4, <2.0\" is a legal version declaration." +msgstr "" +"ສາມາດລະບຸຕົວດຳເນີນການເງື່ອນໄຂຈັກອັນກໍໄດ້, ເຊັ່ນ: ຂໍ້ຄວາມ \">1.0, !=1.3.4, <2.0\" " +"ແມ່ນການລະບຸເວີຊັນທີ່ຖືກຕ້ອງ." + +#: ../source/specifications/core-metadata.rst:985 +msgid "" +"All of the following are possible requirement strings: \"rfc822\", \"zlib " +"(>=1.1.4)\", \"zope\"." +msgstr "" +"ຕົວຢ່າງຂໍ້ຄວາມຄວາມຕ້ອງການທີ່ເປັນໄປໄດ້: \"rfc822\", \"zlib (>=1.1.4)\", \"zope\"." + +#: ../source/specifications/core-metadata.rst:988 +msgid "" +"There’s no canonical list of what strings should be used; the Python " +"community is left to choose its own standards." +msgstr "" +"ບໍ່ມີລາຍຊື່ມາດຕະຖານຕາຍຕົວວ່າຄວນໃຊ້ຂໍ້ຄວາມໃດ; ຊຸມຊົນ Python ສາມາດເລືອກ ມາດຕະຖານຂອງຕົນເອງໄດ້." + +#: ../source/specifications/core-metadata.rst:1001 +msgid "Provides" +msgstr "ສະໜອງໃຫ້" + +#: ../source/specifications/core-metadata.rst:1004 +msgid "in favour of ``Provides-Dist``" +msgstr "ເພື່ອສະໜັບສະໜູນ ``Provides-Dist``" + +#: ../source/specifications/core-metadata.rst:1007 +msgid "" +"Each entry contains a string describing a package or module that will be " +"provided by this package once it is installed. These strings should match " +"the ones used in Requirements fields. A version declaration may be supplied " +"(without a comparison operator); the package’s version number will be " +"implied if none is specified." +msgstr "" +"ແຕ່ລະລາຍການປະກອບມີຂໍ້ຄວາມທີ່ລະບຸ package ຫຼື module ທີ່ package ນີ້ຈະສະໜອງໃຫ້ ເມື່ອມັນຖືກຕິດຕັ້ງ. " +"ຂໍ້ຄວາມເຫຼົ່ານີ້ຄວນກົງກັບທີ່ໃຊ້ໃນຊ່ອງຄວາມຕ້ອງການ (Requirements). ສາມາດລະບຸເວີຊັນໄດ້ " +"(ໂດຍບໍ່ຕ້ອງມີຕົວດຳເນີນການປຽບທຽບ); ຖ້າບໍ່ໄດ້ລະບຸ, ຈະຖືວ່າ ເປັນເວີຊັນດຽວກັນກັບ package ນັ້ນ." + +#: ../source/specifications/core-metadata.rst:1023 +msgid "Obsoletes" +msgstr "ເຮັດໃຫ້ລ້າສະໄໝ/ແທນທີ່" + +#: ../source/specifications/core-metadata.rst:1026 +msgid "in favour of ``Obsoletes-Dist``" +msgstr "ເພື່ອສະໜັບສະໜູນ ``Obsoletes-Dist``" + +#: ../source/specifications/core-metadata.rst:1029 +msgid "" +"Each entry contains a string describing a package or module that this " +"package renders obsolete, meaning that the two packages should not be " +"installed at the same time. Version declarations can be supplied." +msgstr "" +"ແຕ່ລະລາຍການປະກອບມີຂໍ້ຄວາມທີ່ລະບຸ package ຫຼື module ທີ່ package ນີ້ເຮັດໃຫ້ ລ້າສະໄໝ, " +"ໝາຍຄວາມວ່າສອງ package ນີ້ບໍ່ຄວນຕິດຕັ້ງພ້ອມກັນ. ສາມາດລະບຸເວີຊັນໄດ້." + +#: ../source/specifications/core-metadata.rst:1033 +msgid "" +"The most common use of this field will be in case a package name changes, " +"e.g. Gorgon 2.3 gets subsumed into Torqued Python 1.0. When you install " +"Torqued Python, the Gorgon package should be removed." +msgstr "" +"ກໍລະນີທີ່ໃຊ້ເລື້ອຍທີ່ສຸດແມ່ນເມື່ອ package ປ່ຽນຊື່, ເຊັ່ນ: Gorgon 2.3 ຖືກປ່ຽນເປັນ Torqued Python " +"1.0. ເມື່ອທ່ານຕິດຕັ້ງ Torqued Python, package Gorgon ກໍຄວນຈະຖືກຖອນອອກ." + +#: ../source/specifications/core-metadata.rst:1045 +msgid "March 2001: Core metadata 1.0 was approved through :pep:`241`." +msgstr "ມີນາ 2001: Core metadata 1.0 ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`241`." + +#: ../source/specifications/core-metadata.rst:1047 +msgid "April 2003: Core metadata 1.1 was approved through :pep:`314`." +msgstr "ເມສາ 2003: Core metadata 1.1 ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`314`." + +#: ../source/specifications/core-metadata.rst:1049 +msgid "February 2010: Core metadata 1.2 was approved through :pep:`345`." +msgstr "ກຸມພາ 2010: Core metadata 1.2 ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`345`." + +#: ../source/specifications/core-metadata.rst:1051 +msgid "February 2018: Core metadata 2.1 was approved through :pep:`566`." +msgstr "ກຸມພາ 2018: Core metadata 2.1 ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`566`." + +#: ../source/specifications/core-metadata.rst:1053 +msgid "Added ``Description-Content-Type`` and ``Provides-Extra``." +msgstr "ເພີ່ມ ``Description-Content-Type`` ແລະ ``Provides-Extra``." + +#: ../source/specifications/core-metadata.rst:1054 +msgid "Added canonical method for transforming metadata to JSON." +msgstr "ເພີ່ມວິທີມາດຕະຖານໃນການແປງ metadata ເປັນ JSON." + +#: ../source/specifications/core-metadata.rst:1055 +msgid "Restricted the grammar of the ``Name`` field." +msgstr "ຈຳກັດໄວຍາກອນຂອງຊ່ອງຂໍ້ມູນ ``Name``." + +#: ../source/specifications/core-metadata.rst:1057 +msgid "October 2020: Core metadata 2.2 was approved through :pep:`643`." +msgstr "ຕຸລາ 2020: Core metadata 2.2 ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`643`." + +#: ../source/specifications/core-metadata.rst:1059 +msgid "Added the ``Dynamic`` field." +msgstr "ເພີ່ມຊ່ອງຂໍ້ມູນ ``Dynamic``." + +#: ../source/specifications/core-metadata.rst:1061 +msgid "March 2022: Core metadata 2.3 was approved through :pep:`685`." +msgstr "ມີນາ 2022: Core metadata 2.3 ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`685`." + +#: ../source/specifications/core-metadata.rst:1063 +msgid "Restricted extra names to be normalized." +msgstr "ກຳນົດໃຫ້ຊື່ extra ຕ້ອງຖືກປັບຄ່າມາດຕະຖານ (normalized)." + +#: ../source/specifications/core-metadata.rst:1065 +msgid "August 2024: Core metadata 2.4 was approved through :pep:`639`." +msgstr "ສິງຫາ 2024: Core metadata 2.4 ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`639`." + +#: ../source/specifications/core-metadata.rst:1067 +msgid "Added the ``License-Expression`` field." +msgstr "ເພີ່ມຊ່ອງຂໍ້ມູນ ``License-Expression``." + +#: ../source/specifications/core-metadata.rst:1068 +msgid "Added the ``License-File`` field." +msgstr "ເພີ່ມຊ່ອງຂໍ້ມູນ ``License-File``." + +#: ../source/specifications/core-metadata.rst:1070 +msgid "" +"August 2025: Clarified that ``Dynamic`` only affects how fields must be " +"treated when building a wheel from a sdist, not when modifying a wheel." +msgstr "" +"ສິງຫາ 2025: ຊີ້ແຈງວ່າ ``Dynamic`` ມີຜົນສະເພາະກັບວິທີການຈັດການຊ່ອງຂໍ້ມູນເມື່ອສ້າງ wheel ຈາກ " +"sdist ເທົ່ານັ້ນ, ບໍ່ມີຜົນເມື່ອແກ້ໄຂ wheel." + +#: ../source/specifications/core-metadata.rst:1074 +msgid "September 2025: Core metadata 2.5 was approved through :pep:`794`." +msgstr "ກັນຍາ 2025: Core metadata 2.5 ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`794`." + +#: ../source/specifications/core-metadata.rst:1076 +msgid "Added the ``Import-Name`` field." +msgstr "ເພີ່ມຊ່ອງຂໍ້ມູນ ``Import-Name``." + +#: ../source/specifications/core-metadata.rst:1077 +msgid "Added the ``Import-Namespace`` field." +msgstr "ເພີ່ມຊ່ອງຂໍ້ມູນ ``Import-Namespace``." + +#: ../source/specifications/core-metadata.rst:1079 +msgid "" +"October 2025: Clarified that ``License-Expression`` applies to the " +"containing distribution file and not the project itself." +msgstr "" +"ຕຸລາ 2025: ຊີ້ແຈງວ່າ ``License-Expression`` ມີຜົນກັບໄຟລ໌ຊຸດໂປຣແກຣມທີ່ບັນຈຸ ມັນຢູ່ ແລະ " +"ບໍ່ມີຜົນກັບຕົວໂຄງການໂດຍກົງ." + +#: ../source/specifications/core-metadata.rst:1082 +#: ../source/specifications/pyproject-toml.rst:715 +msgid "" +"January 2026: Replaced outdated direct reference to :pep:`508` with a " +"reference to :ref:`dependency-specifiers`." +msgstr "" +"ມັງກອນ 2026: ປ່ຽນການອ້າງອີງໂດຍກົງເຖິງ :pep:`508` ທີ່ລ້າສະໄໝ ໄປເປັນການອ້າງອີງ " +"ເຖິງ :ref:`dependency-specifiers` ແທນ." + +#: ../source/specifications/core-metadata.rst:1085 +msgid "May 2026: Core metadata 2.6 was approved through :pep:`808`." +msgstr "ພຶດສະພາ 2026: Core metadata 2.6 ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`808`." + +#: ../source/specifications/core-metadata.rst:1087 +msgid "" +"Allowed a multiple use field marked ``Dynamic`` to be appended to in a wheel " +"built from a sdist, requiring the wheel to preserve the value(s) present in " +"the sdist." +msgstr "" +"ອະນຸຍາດໃຫ້ຊ່ອງຂໍ້ມູນທີ່ໃຊ້ໄດ້ຫຼາຍຄັ້ງເຊິ່ງຖືກໝາຍວ່າ ``Dynamic`` ສາມາດເພີ່ມຄ່າໄດ້ ໃນ wheel ທີ່ສ້າງຈາກ " +"sdist, ໂດຍກຳນົດໃຫ້ wheel ຕ້ອງຮັກສາຄ່າທີ່ມີຢູ່ໃນ sdist ໄວ້." + +#: ../source/specifications/core-metadata.rst:1093 +msgid "reStructuredText markup: https://docutils.sourceforge.io/" +msgstr "reStructuredText markup: https://docutils.sourceforge.io/" + +#: ../source/specifications/core-metadata.rst:1098 +msgid "RFC 822 Long Header Fields: :rfc:`822#section-3.1.1`" +msgstr "RFC 822 Long Header Fields: :rfc:`822#section-3.1.1`" + +#: ../source/specifications/dependency-groups.rst:5 +msgid "Dependency Groups" +msgstr "ກຸ່ມສິ່ງທີ່ຈຳເປັນ (Dependency Groups)" + +#: ../source/specifications/dependency-groups.rst:7 +msgid "" +"This specification defines dependency groups, a mechanism for storing " +"package requirements in ``pyproject.toml`` files such that they are not " +"included in project metadata when it is built." +msgstr "" +"ຂໍ້ກຳນົດນີ້ລະບຸກຸ່ມສິ່ງທີ່ຈຳເປັນ, ເຊິ່ງແມ່ນກົນໄກໃນການເກັບຄວາມຕ້ອງການຂອງ package ໃນໄຟລ໌ " +"``pyproject.toml`` ໂດຍທີ່ພວກມັນຈະບໍ່ຖືກລວມເຂົ້າໃນ metadata ຂອງໂຄງການ ໃນເວລາສ້າງ " +"(build)." + +#: ../source/specifications/dependency-groups.rst:11 +msgid "" +"Dependency groups are suitable for internal development use-cases like " +"linting and testing, as well as for projects which are not built for " +"distribution, like collections of related scripts." +msgstr "" +"ກຸ່ມສິ່ງທີ່ຈຳເປັນເໝາະສຳລັບການນຳໃຊ້ພາຍໃນໃນລະຫວ່າງການພັດທະນາ ເຊັ່ນການກວດສອບໂຄ້ດ (linting) " +"ແລະ ການທົດສອບ, ລວມເຖິງໂຄງການທີ່ບໍ່ໄດ້ສ້າງຂຶ້ນເພື່ອແຈກຢາຍ ເຊັ່ນຊຸດຂອງສະຄຣິບຕ່າງໆ." + +#: ../source/specifications/dependency-groups.rst:15 +msgid "" +"Fundamentally, dependency groups should be thought of as being a " +"standardized subset of the capabilities of ``requirements.txt`` files (which " +"are ``pip``-specific)." +msgstr "" +"ໂດຍພື້ນຖານແລ້ວ, ຄວນຖືວ່າກຸ່ມສິ່ງທີ່ຈຳເປັນແມ່ນສ່ວນຍ່ອຍທີ່ເປັນມາດຕະຖານຂອງຄວາມສາມາດ ໃນໄຟລ໌ " +"``requirements.txt`` (ເຊິ່ງເປັນສິ່ງສະເພາະຂອງ ``pip``)." + +#: ../source/specifications/dependency-groups.rst:25 +msgid "This is a simple table which shows ``docs`` and ``test`` groups::" +msgstr "ນີ້ແມ່ນຕາຕະລາງງ່າຍໆ ທີ່ສະແດງກຸ່ມ ``docs`` ແລະ ``test``::" + +#: ../source/specifications/dependency-groups.rst:31 +msgid "" +"and a similar table which defines ``docs``, ``test``, and ``coverage`` " +"groups::" +msgstr "ແລະ ຕາຕະລາງທີ່ຄ້າຍຄືກັນເຊິ່ງລະບຸກຸ່ມ ``docs``, ``test``, ແລະ ``coverage``::" + +#: ../source/specifications/dependency-groups.rst:39 +msgid "The ``[dependency-groups]`` Table" +msgstr "ຕາຕະລາງ ``[dependency-groups]``" + +#: ../source/specifications/dependency-groups.rst:41 +msgid "" +"Dependency groups are defined as a table in ``pyproject.toml`` named " +"``dependency-groups``. The ``dependency-groups`` table contains an arbitrary " +"number of user-defined keys, each of which has, as its value, a list of " +"requirements." +msgstr "" +"ກຸ່ມສິ່ງທີ່ຈຳເປັນຖືກກຳນົດເປັນຕາຕະລາງໃນ ``pyproject.toml`` ທີ່ຊື່ວ່າ ``dependency-groups``. " +"ຕາຕະລາງນີ້ປະກອບມີຄີ (keys) ທີ່ຜູ້ໃຊ້ກຳນົດເອງ ຈຳນວນເທົ່າໃດກໍໄດ້, " +"ເຊິ່ງແຕ່ລະຄີຈະມີຄ່າເປັນລາຍຊື່ຂອງຄວາມຕ້ອງການ (requirements)." + +#: ../source/specifications/dependency-groups.rst:46 +msgid "" +"``[dependency-groups]`` keys, sometimes also called \"group names\", must " +"be :ref:`valid non-normalized names `. Tools which handle " +"Dependency Groups MUST :ref:`normalize ` these names " +"before comparisons." +msgstr "" +"ຄີໃນ ``[dependency-groups]`` ຫຼື ບາງຄັ້ງເອີ້ນວ່າ \"ຊື່ກຸ່ມ\", " +"ຕ້ອງເປັນ :ref:`ຊື່ທີ່ຖືກຕ້ອງແບບບໍ່ປັບຄ່າມາດຕະຖານ `. ເຄື່ອງມືທີ່ຈັດການ Dependency " +"Groups ຕ້ອງ :ref:`ປັບຄ່າມາດຕະຖານ ` ຊື່ເຫຼົ່ານີ້ ກ່ອນທີ່ຈະເຮັດການປຽບທຽບ." + +#: ../source/specifications/dependency-groups.rst:51 +msgid "" +"Tools SHOULD prefer to present the original, non-normalized name to users, " +"and if duplicate names are detected after normalization, tools SHOULD emit " +"an error." +msgstr "" +"ເຄື່ອງມືຄວນສະແດງຊື່ເດີມທີ່ບໍ່ໄດ້ປັບຄ່າມາດຕະຖານໃຫ້ຜູ້ໃຊ້ເຫັນ, ແລະ ຖ້າພົບຊື່ທີ່ຊ້ຳກັນ " +"ຫຼັງຈາກປັບຄ່າມາດຕະຖານແລ້ວ, ເຄື່ອງມືຄວນແຈ້ງຂໍ້ຜິດພາດ." + +#: ../source/specifications/dependency-groups.rst:55 +msgid "" +"Requirement lists, the values in ``[dependency-groups]``, may contain " +"strings, tables (``dict`` in Python), or a mix of strings and tables. " +"Strings must be valid :ref:`dependency specifiers `, " +"and tables must be valid Dependency Group Includes." +msgstr "" +"ລາຍຊື່ຄວາມຕ້ອງການ ເຊິ່ງແມ່ນຄ່າໃນ ``[dependency-groups]``, ອາດຈະປະກອບມີຂໍ້ຄວາມ, ຕາຕະລາງ " +"(``dict`` ໃນ Python), ຫຼື ປະສົມກັນ. ຂໍ້ຄວາມຕ້ອງເປັນ :ref:`dependency specifiers " +"` ທີ່ຖືກຕ້ອງ, ແລະ ຕາຕະລາງຕ້ອງເປັນ Dependency Group Includes " +"ທີ່ຖືກຕ້ອງ." + +#: ../source/specifications/dependency-groups.rst:61 +msgid "Dependency Group Include" +msgstr "ການລວມກຸ່ມສິ່ງທີ່ຈຳເປັນ (Dependency Group Include)" + +#: ../source/specifications/dependency-groups.rst:63 +msgid "" +"A Dependency Group Include includes another Dependency Group in the current " +"group." +msgstr "Dependency Group Include ແມ່ນການລວມເອົາກຸ່ມສິ່ງທີ່ຈຳເປັນອື່ນເຂົ້າມາໄວ້ໃນກຸ່ມປັດຈຸບັນ." + +#: ../source/specifications/dependency-groups.rst:66 +msgid "" +"An include is a table with exactly one key, ``\"include-group\"``, whose " +"value is a string, the name of another Dependency Group." +msgstr "" +"ການລວມ (include) ແມ່ນຕາຕະລາງທີ່ມີພຽງຄີດຽວຄື ``\"include-group\"``, ເຊິ່ງມີຄ່າ " +"ເປັນຂໍ້ຄວາມລະບຸຊື່ຂອງກຸ່ມສິ່ງທີ່ຈຳເປັນອື່ນ." + +#: ../source/specifications/dependency-groups.rst:69 +msgid "" +"Includes are defined to be exactly equivalent to the contents of the named " +"Dependency Group, inserted into the current group at the location of the " +"include. For example, if ``foo = [\"a\", \"b\"]`` is one group, and ``bar = " +"[\"c\", {include-group = \"foo\"}, \"d\"]`` is another, then ``bar`` should " +"evaluate to ``[\"c\", \"a\", \"b\", \"d\"]`` when Dependency Group Includes " +"are expanded." +msgstr "" +"ການລວມຖືກກຳນົດໃຫ້ມີຄ່າເທົ່າກັບເນື້ອຫາຂອງກຸ່ມສິ່ງທີ່ຈຳເປັນທີ່ຖືກອ້າງເຖິງ, ໂດຍຈະ " +"ຖືກແຊກເຂົ້າໃນກຸ່ມປັດຈຸບັນຕາມຕຳແໜ່ງທີ່ລະບຸ. ຕົວຢ່າງ: ຖ້າ ``foo = [\"a\", \"b\"]`` ແລະ ``bar " +"= [\"c\", {include-group = \"foo\"}, \"d\"]``, ເມື່ອຂະຫຍາຍອອກ ``bar`` ຈະມີຄ່າເປັນ " +"``[\"c\", \"a\", \"b\", \"d\"]``." + +#: ../source/specifications/dependency-groups.rst:75 +msgid "" +"Dependency Group Includes may specify the same package multiple times. Tools " +"SHOULD NOT deduplicate or otherwise alter the list contents produced by the " +"include. For example, given the following table:" +msgstr "" +"Dependency Group Includes ອາດຈະລະບຸ package ດຽວກັນຫຼາຍຄັ້ງ. ເຄື່ອງມືບໍ່ຄວນ " +"ຕັດລາຍການທີ່ຊ້ຳອອກ ຫຼື ປ່ຽນແປງເນື້ອຫາຂອງລາຍຊື່ທີ່ເກີດຈາກການລວມ. ຕົວຢ່າງ ຈາກຕາຕະລາງຕໍ່ໄປນີ້:" + +#: ../source/specifications/dependency-groups.rst:92 +msgid "" +"The resolved value of ``all`` SHOULD be ``[\"foo\", \"foo\", \"foo>1.0\", " +"\"foo<1.0\"]``. Tools should handle such a list exactly as they would handle " +"any other case in which they are asked to process the same requirement " +"multiple times with different version constraints." +msgstr "" +"ຄ່າທີ່ໄດ້ຂອງ ``all`` ຄວນຈະເປັນ ``[\"foo\", \"foo\", \"foo>1.0\", \"foo<1.0\"]``. " +"ເຄື່ອງມືຄວນຈັດການກັບລາຍຊື່ດັ່ງກ່າວຄືກັນກັບກໍລະນີອື່ນໆ ທີ່ມີການປະມວນຜົນຄວາມຕ້ອງການ " +"ດຽວກັນຫຼາຍຄັ້ງດ້ວຍຂໍ້ຈຳກັດເວີຊັນທີ່ແຕກຕ່າງກັນ." + +#: ../source/specifications/dependency-groups.rst:97 +msgid "" +"Dependency Group Includes may include groups containing Dependency Group " +"Includes, in which case those includes should be expanded as well. " +"Dependency Group Includes MUST NOT include cycles, and tools SHOULD report " +"an error if they detect a cycle." +msgstr "" +"Dependency Group Includes ສາມາດລວມເອົາກຸ່ມອື່ນທີ່ມີ Dependency Group Includes " +"ຢູ່ພາຍໃນໄດ້, ເຊິ່ງໃນກໍລະນີນັ້ນການລວມກໍຈະຖືກຂະຫຍາຍອອກທັງໝົດ. ແຕ່ຫ້າມບໍ່ໃຫ້ເກີດ ການລວມກັນເປັນວົງຈອນ " +"(cycles), ແລະ ເຄື່ອງມືຄວນແຈ້ງຂໍ້ຜິດພາດຖ້າພົບວົງຈອນດັ່ງກ່າວ." + +#: ../source/specifications/dependency-groups.rst:102 +msgid "Package Building" +msgstr "ການສ້າງ Package" + +#: ../source/specifications/dependency-groups.rst:104 +msgid "" +"Build backends MUST NOT include Dependency Group data in built distributions " +"as package metadata. This means that sdist ``PKG-INFO`` and wheel " +"``METADATA`` files should not include referenceable fields containing " +"dependency groups." +msgstr "" +"Build backends ຕ້ອງບໍ່ລວມເອົາຂໍ້ມູນກຸ່ມສິ່ງທີ່ຈຳເປັນເຂົ້າໃນ metadata ຂອງ package " +"ໃນຊຸດໂປຣແກຣມທີ່ສ້າງແລ້ວ. ນີ້ໝາຍຄວາມວ່າໄຟລ໌ ``PKG-INFO`` ໃນ sdist ແລະ ``METADATA`` ໃນ " +"wheel ບໍ່ຄວນມີຊ່ອງຂໍ້ມູນທີ່ອ້າງອີງເຖິງກຸ່ມສິ່ງທີ່ຈຳເປັນ." + +#: ../source/specifications/dependency-groups.rst:108 +msgid "" +"It is, however, valid to use dependency groups in the evaluation of dynamic " +"metadata, and ``pyproject.toml`` files included in sdists will still contain " +"``[dependency-groups]``. However, the table's contents are not part of a " +"built package's interfaces." +msgstr "" +"ເຖິງຢ່າງໃດກໍຕາມ, ມັນສາມາດໃຊ້ກຸ່ມສິ່ງທີ່ຈຳເປັນໃນການປະເມີນຄ່າ metadata ແບບໄດນາມິກໄດ້, ແລະ ໄຟລ໌ " +"``pyproject.toml`` ທີ່ລວມຢູ່ໃນ sdist ຈະຍັງຄົງມີ ``[dependency-groups]``. " +"ແຕ່ເນື້ອຫາໃນຕາຕະລາງນັ້ນຈະບໍ່ຖືວ່າເປັນສ່ວນໜຶ່ງຂອງອິນເຕີເຟດຂອງ package ທີ່ສ້າງແລ້ວ." + +#: ../source/specifications/dependency-groups.rst:114 +msgid "Installing Dependency Groups & Extras" +msgstr "ການຕິດຕັ້ງກຸ່ມສິ່ງທີ່ຈຳເປັນ ແລະ Extras" + +#: ../source/specifications/dependency-groups.rst:116 +msgid "" +"There is no syntax or specification-defined interface for installing or " +"referring to dependency groups. Tools are expected to provide dedicated " +"interfaces for this purpose." +msgstr "" +"ບໍ່ມີໄວຍາກອນ ຫຼື ອິນເຕີເຟດທີ່ກຳນົດໄວ້ໃນຂໍ້ກຳນົດສຳລັບການຕິດຕັ້ງ ຫຼື ອ້າງອີງເຖິງ ກຸ່ມສິ່ງທີ່ຈຳເປັນ. " +"ເຄື່ອງມືຕ່າງໆ ຄວນຈະມີອິນເຕີເຟດສະເພາະສຳລັບຈຸດປະສົງນີ້ເອງ." + +#: ../source/specifications/dependency-groups.rst:120 +msgid "" +"Tools MAY choose to provide the same or similar interfaces for interacting " +"with dependency groups as they do for managing extras. Tools authors are " +"advised that the specification does not forbid having an extra whose name " +"matches a Dependency Group. Separately, users are advised to avoid creating " +"dependency groups whose names match extras, and tools MAY treat such " +"matching as an error." +msgstr "" +"ເຄື່ອງມືອາດຈະເລືອກໃຊ້ອິນເຕີເຟດດຽວກັນ ຫຼື ຄ້າຍຄືກັນໃນການຈັດການກຸ່ມສິ່ງທີ່ຈຳເປັນ ຄືກັບການຈັດການ " +"extras. ຜູ້ພັດທະນາເຄື່ອງມືຄວນຊາບວ່າຂໍ້ກຳນົດບໍ່ໄດ້ຫ້າມການຕັ້ງຊື່ extra ໃຫ້ກົງກັບຊື່ກຸ່ມສິ່ງທີ່ຈຳເປັນ. " +"ຢ່າງໃດກໍຕາມ, ຜູ້ໃຊ້ຄວນຫຼີກລ່ຽງການຕັ້ງຊື່ໃຫ້ ຊ້ຳກັນ, ແລະ ເຄື່ອງມືອາດຈະຖືວ່າການທີ່ຊື່ຊ້ຳກັນນັ້ນເປັນຂໍ້ຜິດພາດ." + +#: ../source/specifications/dependency-groups.rst:128 +msgid "Validation and Compatibility" +msgstr "ການກວດສອບ ແລະ ຄວາມເຂົ້າກັນໄດ້" + +#: ../source/specifications/dependency-groups.rst:130 +msgid "" +"Tools supporting dependency groups may want to validate data before using " +"it. When implementing such validation, authors should be aware of the " +"possibility of future extensions to the specification, so that they do not " +"unnecessarily emit errors or warnings." +msgstr "" +"ເຄື່ອງມືທີ່ຮອງຮັບກຸ່ມສິ່ງທີ່ຈຳເປັນອາດຈະຕ້ອງການກວດສອບຂໍ້ມູນກ່ອນການນຳໃຊ້. ເມື່ອນຳໃຊ້ ການກວດສອບດັ່ງກ່າວ, " +"ຜູ້ພັດທະນາຄວນຄຳນຶງເຖິງຄວາມເປັນໄປໄດ້ໃນການຂະຫຍາຍຂໍ້ກຳນົດ ໃນອະນາຄົດ ເພື່ອບໍ່ໃຫ້ມີການແຈ້ງຂໍ້ຜິດພາດ ຫຼື " +"ຄຳເຕືອນໂດຍບໍ່ຈຳເປັນ." + +#: ../source/specifications/dependency-groups.rst:135 +msgid "" +"Tools SHOULD error when evaluating or processing unrecognized data in " +"dependency groups." +msgstr "ເຄື່ອງມືຄວນແຈ້ງຂໍ້ຜິດພາດເມື່ອມີການປະເມີນ ຫຼື ປະມວນຜົນຂໍ້ມູນທີ່ບໍ່ຮູ້ຈັກໃນ ກຸ່ມສິ່ງທີ່ຈຳເປັນ." + +#: ../source/specifications/dependency-groups.rst:138 +msgid "" +"Tools SHOULD NOT eagerly validate the contents of *all* dependency groups " +"unless they have a need to do so." +msgstr "ເຄື່ອງມືບໍ່ຄວນກວດສອບເນື້ອຫາຂອງ *ທຸກໆ* ກຸ່ມສິ່ງທີ່ຈຳເປັນ ຖ້າຫາກບໍ່ມີຄວາມຈຳເປັນຕ້ອງໃຊ້." + +#: ../source/specifications/dependency-groups.rst:141 +msgid "" +"This means that in the presence of the following data, most tools should " +"allow the ``foo`` group to be used and only error if the ``bar`` group is " +"used:" +msgstr "" +"ນີ້ໝາຍຄວາມວ່າຖ້າມີຂໍ້ມູນຕໍ່ໄປນີ້, ເຄື່ອງມືສ່ວນໃຫຍ່ຄວນອະນຸຍາດໃຫ້ໃຊ້ກຸ່ມ ``foo`` ແລະ " +"ຈະແຈ້ງຂໍ້ຜິດພາດສະເພາະເມື່ອມີການໃຊ້ກຸ່ມ ``bar`` ເທົ່ານັ້ນ:" + +#: ../source/specifications/dependency-groups.rst:152 +msgid "" +"There are several known cases of tools which have good cause to be stricter. " +"Linters and validators are an example, as their purpose is to validate the " +"contents of all dependency groups." +msgstr "" +"ມີເຄື່ອງມືບາງປະເພດທີ່ມີເຫດຜົນພຽງພໍທີ່ຈະກວດສອບຢ່າງເຂັ້ມງວດ. ເຊັ່ນ Linters ແລະ " +"ເຄື່ອງມືກວດສອບຄວາມຖືກຕ້ອງ, ເພາະຈຸດປະສົງຂອງພວກມັນແມ່ນເພື່ອມວດສອບເນື້ອຫາ ຂອງທຸກໆ ກຸ່ມສິ່ງທີ່ຈຳເປັນ." + +#: ../source/specifications/dependency-groups.rst:157 +#: ../source/specifications/inline-script-metadata.rst:134 +msgid "Reference Implementation" +msgstr "ຕົວຢ່າງການນຳໃຊ້ (Reference Implementation)" + +#: ../source/specifications/dependency-groups.rst:159 +msgid "" +"The following Reference Implementation prints the contents of a Dependency " +"Group to stdout, newline delimited. The output is therefore valid " +"``requirements.txt`` data." +msgstr "" +"ຕົວຢ່າງການນຳໃຊ້ຕໍ່ໄປນີ້ຈະສະແດງເນື້ອຫາຂອງກຸ່ມສິ່ງທີ່ຈຳເປັນອອກທາງ stdout, " +"ໂດຍແຍກແຕ່ລະລາຍການດ້ວຍຂຶ້ນແຖວໃໝ່. ຜົນທີ່ໄດ້ຈຶ່ງເປັນຂໍ້ມູນທີ່ຖືກຕ້ອງຕາມ ຮູບແບບຂອງ " +"``requirements.txt``." + +#: ../source/specifications/dependency-groups.rst:252 +msgid "October 2024: This specification was approved through :pep:`735`." +msgstr "ຕຸລາ 2024: ຂໍ້ກຳນົດນີ້ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`735`." + +#: ../source/specifications/dependency-specifiers.rst:7 +msgid "Dependency specifiers" +msgstr "ຕົວລະບຸສິ່ງທີ່ຈຳເປັນ (Dependency specifiers)" + +#: ../source/specifications/dependency-specifiers.rst:9 +msgid "" +"This document defines the format used to specify dependencies on other " +"projects. The language defined is a compact line based format which was " +"adapted from the format originally used in ``pip`` requirements files." +msgstr "" +"ເອກະສານນີ້ກຳນົດຮູບແບບທີ່ໃຊ້ໃນການລະບຸສິ່ງທີ່ຈຳເປັນ (dependencies) ຕໍ່ໂຄງການອື່ນ. " +"ພາສາທີ່ກຳນົດແມ່ນຮູບແບບແຖວຂໍ້ຄວາມທີ່ກະທັດຮັດ ເຊິ່ງຖືກປັບປຸງມາຈາກຮູບແບບທີ່ໃຊ້ ໃນໄຟລ໌ requirements " +"ຂອງ ``pip``." + +#: ../source/specifications/dependency-specifiers.rst:13 +msgid "" +"The job of a dependency is to enable tools like pip [#pip]_ to find the " +"right package to install. Sometimes this is very loose - just specifying a " +"name, and sometimes very specific - referring to a specific file to install. " +"Sometimes dependencies are only relevant on one platform, or only some " +"versions are acceptable, so the language permits describing all these cases." +msgstr "" +"ໜ້າທີ່ຂອງສິ່ງທີ່ຈຳເປັນແມ່ນເພື່ອຊ່ວຍໃຫ້ເຄື່ອງມືເຊັ່ນ pip ຄົ້ນຫາ package ທີ່ ຖືກຕ້ອງມາຕິດຕັ້ງ. " +"ບາງຄັ້ງມັນອາດຈະກຳນົດແບບກວ້າງໆ ພຽງແຕ່ຊື່, ແລະ ບາງຄັ້ງ ກໍລະບຸເຈາະຈົງເຖິງໄຟລ໌ທີ່ຈະຕິດຕັ້ງ. " +"ບາງຄັ້ງສິ່ງທີ່ຈຳເປັນອາດກ່ຽວຂ້ອງກັບພຽງ ແພລັດຟອມດຽວ ຫຼື ຮອງຮັບບາງເວີຊັນເທົ່ານັ້ນ, " +"ພາສານີ້ຈຶ່ງອະນຸຍາດໃຫ້ລະບຸ ກໍລະນີເຫຼົ່ານີ້ໄດ້ທັງໝົດ." + +#: ../source/specifications/dependency-specifiers.rst:19 +msgid "" +"Whether tools should be strict or permissive in their processing of " +"dependency specifiers is largely dependent on the role of the tool in the " +"wider ecosystem:" +msgstr "" +"ການທີ່ເຄື່ອງມືຄວນຈະກວດສອບຢ່າງເຂັ້ມງວດ ຫຼື ຜ່ອນຜັນໃນການປະມວນຜົນຕົວລະບຸ ສິ່ງທີ່ຈຳເປັນນັ້ນ " +"ແມ່ນຂຶ້ນກັບບົດບາດຂອງເຄື່ອງມືນັ້ນໃນລະບົບນິເວດ:" + +#: ../source/specifications/dependency-specifiers.rst:22 +msgid "" +"publishing tools and index servers SHOULD be strict in their processing for " +"new releases, encouraging the consistency of published specifiers to improve " +"over time" +msgstr "" +"ເຄື່ອງມືເຜີຍແຜ່ ແລະ ເຊີເວີດັດຊະນີ ຄວນຈະເຂັ້ມງວດໃນການປະມວນຜົນສຳລັບການ ປ່ອຍເວີຊັນໃໝ່, " +"ເພື່ອສົ່ງເສີມຄວາມສອດຄ່ອງຂອງຕົວລະບຸໃຫ້ດີຂຶ້ນເລື້ອຍໆ." + +#: ../source/specifications/dependency-specifiers.rst:25 +msgid "" +"locking and installation tools MAY be permissive in their processing, " +"allowing consumption of older packages which may contain dependency " +"specifiers that are arguably nonsensical" +msgstr "" +"ເຄື່ອງມືໃນການລັອກເວີຊັນ ແລະ ການຕິດຕັ້ງ ອາດຈະຜ່ອນຜັນໃນການປະມວນຜົນ, ເພື່ອໃຫ້ສາມາດໃຊ້ package " +"ເກົ່າໆ ທີ່ອາດມີຕົວລະບຸສິ່ງທີ່ຈຳເປັນທີ່ບໍ່ສົມເຫດສົມຜົນ." + +#: ../source/specifications/dependency-specifiers.rst:35 +msgid "All features of the language shown with a name based lookup::" +msgstr "ຄຸນສົມບັດທັງໝົດຂອງພາສາທີ່ສະແດງດ້ວຍການຄົ້ນຫາຕາມຊື່::" + +#: ../source/specifications/dependency-specifiers.rst:39 +msgid "A minimal URL based lookup::" +msgstr "ການຄົ້ນຫາຕາມ URL ແບບພື້ນຖານ::" + +#: ../source/specifications/dependency-specifiers.rst:44 +msgid "Concepts" +msgstr "ແນວຄິດ" + +#: ../source/specifications/dependency-specifiers.rst:46 +msgid "" +"A dependency specification always specifies a distribution name. It may " +"include extras, which expand the dependencies of the named distribution to " +"enable optional features. The version installed can be controlled using " +"version limits, or giving the URL to a specific artifact to install. Finally " +"the dependency can be made conditional using environment markers." +msgstr "" +"ການລະບຸສິ່ງທີ່ຈຳເປັນຈະຕ້ອງລະບຸຊື່ຊຸດໂປຣແກຣມສະເໝີ. ມັນອາດຈະລວມເອົາ extras " +"ເຊິ່ງຊ່ວຍຂະຫຍາຍສິ່ງທີ່ຈຳເປັນເພື່ອເປີດໃຊ້ຟີເຈີເສີມ. ເວີຊັນທີ່ຕິດຕັ້ງສາມາດຄວບຄຸມໄດ້ " +"ໂດຍການກຳນົດຂອບເຂດເວີຊັນ ຫຼື ການໃຫ້ URL ຂອງໄຟລ໌ທີ່ຈະຕິດຕັ້ງ. ສຸດທ້າຍ, " +"ສິ່ງທີ່ຈຳເປັນສາມາດກຳນົດເງື່ອນໄຂໄດ້ໂດຍໃຊ້ environment markers." + +#: ../source/specifications/dependency-specifiers.rst:53 +msgid "Grammar" +msgstr "ໄວຍາກອນ" + +#: ../source/specifications/dependency-specifiers.rst:55 +msgid "" +"We first cover the grammar briefly and then drill into the semantics of each " +"section later." +msgstr "ພວກເຮົາຈະເວົ້າເຖິງໄວຍາກອນໂດຍຫຍໍ້ກ່ອນ ແລະ ຈະລົງເລິກເຖິງຄວາມໝາຍຂອງແຕ່ລະ ສ່ວນໃນພາຍຫຼັງ." + +#: ../source/specifications/dependency-specifiers.rst:58 +msgid "" +"A distribution specification is written in ASCII text. We use a parsley " +"[#parsley]_ grammar to provide a precise grammar. It is expected that the " +"specification will be embedded into a larger system which offers framing " +"such as comments, multiple line support via continuations, or other such " +"features." +msgstr "" +"ການລະບຸຊຸດໂປຣແກຣມແມ່ນຂຽນເປັນຂໍ້ຄວາມ ASCII. ພວກເຮົາໃຊ້ໄວຍາກອນ parsley " +"ເພື່ອໃຫ້ໄດ້ໄວຍາກອນທີ່ຊັດເຈນ. ຂໍ້ກຳນົດນີ້ຄາດວ່າຈະຖືກນຳໄປລວມໄວ້ໃນລະບົບ ທີ່ໃຫຍ່ກວ່າ " +"ເຊິ່ງຮອງຮັບການໃສ່ຄຳເຫັນ (comments), ການຂຽນຫຼາຍແຖວ ແລະ ອື່ນໆ." + +#: ../source/specifications/dependency-specifiers.rst:63 +msgid "" +"The full grammar including annotations to build a useful parse tree is " +"included at the end of this document." +msgstr "ໄວຍາກອນທັງໝົດ ລວມເຖິງຄຳອະທິບາຍເພື່ອສ້າງ parse tree ແມ່ນຢູ່ທ້າຍເອກະສານນີ້." + +#: ../source/specifications/dependency-specifiers.rst:66 +msgid "" +"Versions may be specified according to the rules of the :ref:`Version " +"specifier specification `. (Note: URI is defined " +"in :rfc:`std-66 <3986>`)::" +msgstr "" +"ເວີຊັນສາມາດລະບຸໄດ້ຕາມກົດເກນຂອງ :ref:`Version specifier specification `. (ໝາຍເຫດ: URI ຖືກກຳນົດໃນ :rfc:`std-66 <3986>`)::" + +#: ../source/specifications/dependency-specifiers.rst:77 +msgid "" +"Environment markers allow making a specification only take effect in some " +"environments::" +msgstr "Environment markers ຊ່ວຍໃຫ້ການລະບຸມີຜົນສະເພາະໃນບາງສະພາບແວດລ້ອມເທົ່ານັ້ນ::" + +#: ../source/specifications/dependency-specifiers.rst:106 +msgid "" +"Optional components of a distribution may be specified using the extras " +"field::" +msgstr "ສ່ວນປະກອບເສີມຂອງຊຸດໂປຣແກຣມສາມາດລະບຸໄດ້ໂດຍໃຊ້ຊ່ອງຂໍ້ມູນ extras::" + +#: ../source/specifications/dependency-specifiers.rst:115 +msgid "Giving us a rule for name based requirements::" +msgstr "ນີ້ແມ່ນກົດເກນສຳລັບຄວາມຕ້ອງການທີ່ອີງຕາມຊື່::" + +#: ../source/specifications/dependency-specifiers.rst:119 +msgid "And a rule for direct reference specifications::" +msgstr "ແລະ ກົດເກນສຳລັບການລະບຸແບບອ້າງອີງໂດຍກົງ::" + +#: ../source/specifications/dependency-specifiers.rst:123 +msgid "Leading to the unified rule that can specify a dependency.::" +msgstr "ນຳໄປສູ່ກົດເກນລວມທີ່ສາມາດລະບຸສິ່ງທີ່ຈຳເປັນໄດ້.::" + +#: ../source/specifications/dependency-specifiers.rst:128 +msgid "Whitespace" +msgstr "ຍະຫວ່າງ (Whitespace)" + +#: ../source/specifications/dependency-specifiers.rst:130 +msgid "" +"Non line-breaking whitespace is mostly optional with no semantic meaning. " +"The sole exceptions are detecting the end of a URL requirement and inside " +"user supplied constants in environment markers." +msgstr "" +"ຍະຫວ່າງທີ່ບໍ່ແມ່ນການຂຶ້ນແຖວໃໝ່ສ່ວນໃຫຍ່ແມ່ນບໍ່ບັງຄັບ ແລະ ບໍ່ມີຄວາມໝາຍທາງໄວຍາກອນ. " +"ຂໍ້ຍົກເວັ້ນດຽວແມ່ນການກວດຫາຈຸດສິ້ນສຸດຂອງ URL ແລະ ພາຍໃນຄ່າຄົງທີ່ທີ່ຜູ້ໃຊ້ກຳນົດ ໃນ environment " +"markers." + +#: ../source/specifications/dependency-specifiers.rst:137 +msgid "Names" +msgstr "ຊື່" + +#: ../source/specifications/dependency-specifiers.rst:139 +msgid "" +"Distribution names are defined in the :ref:`Core metadata `. Names act as the primary identifier for distributions. They are " +"present in all dependency specifications, and are sufficient to be a " +"specification on their own." +msgstr "" +"ຊື່ຊຸດໂປຣແກຣມຖືກກຳນົດໃນ :ref:`Core metadata `. ຊື່ເຮັດໜ້າທີ່ " +"ເປັນຕົວລະບຸຫຼັກສຳລັບຊຸດໂປຣແກຣມ. ພວກມັນມີຢູ່ໃນທຸກການລະບຸສິ່ງທີ່ຈຳເປັນ, ແລະ " +"ພຽງແຕ່ຊື່ຢ່າງດຽວກໍພຽງພໍທີ່ຈະເປັນການລະບຸໄດ້." + +#: ../source/specifications/dependency-specifiers.rst:144 +msgid "" +"Valid distribution names are defined in the :ref:`name format specification " +"`." +msgstr "" +"ຊື່ຊຸດໂປຣແກຣມທີ່ຖືກຕ້ອງຖືກກຳນົດໃນ :ref:`name format specification `." + +#: ../source/specifications/dependency-specifiers.rst:151 +msgid "Extras" +msgstr "Extras (ຟີເຈີເສີມ)" + +#: ../source/specifications/dependency-specifiers.rst:153 +msgid "" +"An extra is an optional part of a distribution. Distributions can specify as " +"many extras as they wish, and each extra results in the declaration of " +"additional dependencies of the distribution **when** the extra is used in a " +"dependency specification. For instance::" +msgstr "" +"ສ່ວນເສີມແມ່ນສ່ວນທາງເລືອກຂອງການແຈກຈ່າຍ. ການແຈກຈ່າຍສາມາດລະບຸສ່ວນເສີມໄດ້ຫຼາຍເທົ່າທີ່ຕ້ອງການ, ແລະ " +"ແຕ່ລະສ່ວນເສີມຈະສົ່ງຜົນໃຫ້ມີການປະກາດສ່ວນທີ່ຈຳເປັນຕ້ອງໃຊ້ເພີ່ມເຕີມຂອງການແຈກຈ່າຍ **ເມື່ອ** " +"ມີການໃຊ້ສ່ວນເສີມນັ້ນໃນການລະບຸສ່ວນທີ່ຈຳເປັນຕ້ອງໃຊ້. ຕົວຢ່າງເຊັ່ນ::" + +#: ../source/specifications/dependency-specifiers.rst:160 +msgid "" +"Extras union in the dependencies they define with the dependencies of the " +"distribution they are attached to. The example above would result in " +"requests being installed, and requests own dependencies, and also any " +"dependencies that are listed in the \"security\" extra of requests." +msgstr "" +"Extras ຈະລວມເອົາສິ່ງທີ່ຈຳເປັນທີ່ພວກມັນກຳນົດເຂົ້າກັບສິ່ງທີ່ຈຳເປັນຫຼັກຂອງຊຸດໂປຣແກຣມ. " +"ຕົວຢ່າງຂ້າງເທິງຈະເຮັດໃຫ້ມີການຕິດຕັ້ງ requests, ສິ່ງທີ່ຈຳເປັນຂອງ requests ເອງ, ແລະ " +"ສິ່ງທີ່ຈຳເປັນໃດໆ ທີ່ລະບຸໄວ້ໃນ extra \"security\" ຂອງ requests." + +#: ../source/specifications/dependency-specifiers.rst:165 +msgid "" +"If multiple extras are listed, all the dependencies are unioned together." +msgstr "ຖ້າລະບຸຫຼາຍ extras, ສິ່ງທີ່ຈຳເປັນທັງໝົດຈະຖືກລວມເຂົ້າກັນ." + +#: ../source/specifications/dependency-specifiers.rst:167 +msgid "" +"Restrictions on names for extras are defined in the :ref:`Core metadata " +"specification `. Publication tools SHOULD " +"enforce these restrictions in dependency specifiers, while locking and " +"installation tools MAY normalize invalid extra names in order to accept " +"published metadata using core metadata versions prior to 2.3." +msgstr "" +"ຂໍ້ຈຳກັດຂອງຊື່ extras ຖືກກຳນົດໃນ :ref:`Core metadata specification `. ເຄື່ອງມືເຜີຍແຜ່ຄວນບັງຄັບໃຊ້ຂໍ້ຈຳກັດເຫຼົ່ານີ້, ໃນຂະນະທີ່ເຄື່ອງມືຕິດຕັ້ງອາດຈະ " +"ປັບຄ່າມາດຕະຖານຊື່ທີ່ບໍ່ຖືກຕ້ອງ ເພື່ອໃຫ້ຮອງຮັບ metadata ທີ່ເຜີຍແຜ່ກ່ອນເວີຊັນ 2.3." + +#: ../source/specifications/dependency-specifiers.rst:176 +msgid "Versions" +msgstr "ເວີຊັນ" + +#: ../source/specifications/dependency-specifiers.rst:178 +msgid "" +"See the :ref:`Version specifier specification ` for more " +"detail on both version numbers and version comparisons. Version " +"specifications limit the versions of a distribution that can be used. They " +"only apply to distributions looked up by name, rather than via a URL. " +"Version comparisons are also used in environment markers. The optional " +"brackets around a version are present for compatibility with :pep:`345` but " +"should not be generated, only accepted." +msgstr "" +"ເບິ່ງ :ref:`Version specifier specification ` ສຳລັບລາຍລະອຽດ " +"ຂອງເລກເວີຊັນ ແລະ ການປຽບທຽບເວີຊັນ. ການລະບຸເວີຊັນຈະຈຳກັດເວີຊັນຂອງຊຸດໂປຣແກຣມ ທີ່ສາມາດໃຊ້ໄດ້. " +"ພວກມັນມີຜົນກັບການຄົ້ນຫາຕາມຊື່ເທົ່ານັ້ນ, ບໍ່ແມ່ນຜ່ານ URL. ການປຽບທຽບເວີຊັນຍັງຖືກໃຊ້ໃນ environment " +"markers ອີກດ້ວຍ." + +#: ../source/specifications/dependency-specifiers.rst:189 +msgid "Environment Markers" +msgstr "Environment Markers (ຕົວໝາຍສະພາບແວດລ້ອມ)" + +#: ../source/specifications/dependency-specifiers.rst:191 +msgid "" +"Environment markers allow a dependency specification to provide a rule that " +"describes when the dependency should be used. For instance, consider a " +"package that needs ``pywin32`` when running on Windows. This can be " +"expressed as::" +msgstr "" +"Environment markers ຊ່ວຍໃຫ້ການລະບຸສິ່ງທີ່ຈຳເປັນມີກົດເກນທີ່ບອກວ່າ ຄວນໃຊ້ສິ່ງທີ່ຈຳເປັນນັ້ນເມື່ອໃດ. " +"ຕົວຢ່າງ: package ທີ່ຕ້ອງການ ``pywin32`` ເມື່ອເຮັດວຽກເທິງ Windows ສາມາດຂຽນໄດ້ວ່າ::" + +#: ../source/specifications/dependency-specifiers.rst:197 +msgid "" +"A marker expression evaluates to either True or False for a given deployment " +"environment. When it evaluates to False, the dependency should be ignored." +msgstr "" +"ນິພົດຂອງ marker ຈະໃຫ້ຜົນເປັນ True ຫຼື False ສຳລັບສະພາບແວດລ້ອມນັ້ນໆ. ຖ້າເປັນ False, " +"ສິ່ງທີ່ຈຳເປັນນັ້ນຈະຖືກລະເລີຍ." + +#: ../source/specifications/dependency-specifiers.rst:200 +msgid "" +"The marker language is inspired by Python itself, chosen for the ability to " +"safely evaluate it without running arbitrary code that could become a " +"security vulnerability." +msgstr "" +"ພາສາຂອງ marker ໄດ້ແຮງບັນດານໃຈມາຈາກ Python, ເຊິ່ງເລືອກຍ້ອນຄວາມສາມາດ " +"ໃນການປະເມີນຄ່າຢ່າງປອດໄພ ໂດຍບໍ່ຕ້ອງລັນໂຄ້ດທີ່ອາດເປັນຊ່ອງໂຫວ່ດ້ານຄວາມປອດໄພ." + +#: ../source/specifications/dependency-specifiers.rst:204 +msgid "" +"Markers were first defined in :pep:`345`, formally specified in :pep:`508`, " +"then subsequently amended over time (amendments since :pep:`508` are " +"recorded :ref:`at the end of this specification `)." +msgstr "" +"Markers ຖືກກຳນົດຄັ້ງທຳອິດໃນ :pep:`345`, ກຳນົດເປັນທາງການໃນ :pep:`508`, ແລະ " +"ຖືກປັບປຸງມາເລື້ອຍໆ." + +#: ../source/specifications/dependency-specifiers.rst:209 +msgid "Marker field types" +msgstr "ປະເພດຊ່ອງຂໍ້ມູນຂອງ Marker" + +#: ../source/specifications/dependency-specifiers.rst:211 +msgid "" +"Environment marker fields are each defined as one of the following types:" +msgstr "ຊ່ອງຂໍ້ມູນຂອງ Environment marker ແຕ່ລະອັນຖືກກຳນົດເປັນປະເພດໃດໜຶ່ງດັ່ງນີ້:" + +#: ../source/specifications/dependency-specifiers.rst:213 +msgid "" +"``String``: the contents of the field are always treated as an opaque string." +msgstr "``String``: ເນື້ອຫາໃນຊ່ອງນີ້ຈະຖືກຖືວ່າເປັນຂໍ້ຄວາມ (string) ສະເໝີ." + +#: ../source/specifications/dependency-specifiers.rst:214 +msgid "" +"``Set of strings``: the contents of the field are always treated as a set " +"containing opaque strings. In comparisons, the user supplied constant MUST " +"still be a single string (as set literals are not part of the marker syntax)." +msgstr "" +"``Set of strings``: ເນື້ອຫາຈະຖືກຖືວ່າເປັນກຸ່ມຂອງຂໍ້ຄວາມ (set). ໃນການປຽບທຽບ, " +"ຄ່າຄົງທີ່ທີ່ຜູ້ໃຊ້ໃຫ້ມາຕ້ອງຍັງຄົງເປັນຂໍ້ຄວາມດຽວ." + +#: ../source/specifications/dependency-specifiers.rst:217 +msgid "" +"``Version``: the contents of the field are always expected to be a " +"valid :ref:`version specifier `. Publishing tools SHOULD " +"emit an error if that is not the case, but installation tools MAY fall back " +"to treating the field as a string field." +msgstr "" +"``Version``: ເນື້ອຫາຄາດວ່າຈະເປັນ :ref:`ຕົວລະບຸເວີຊັນ ` ທີ່ຖືກຕ້ອງ. " +"ເຄື່ອງມືເຜີຍແຜ່ຄວນແຈ້ງຂໍ້ຜິດພາດຖ້າບໍ່ຖືກຕ້ອງ, ແຕ່ເຄື່ອງມືຕິດຕັ້ງອາດຈະ ຖືວ່າເປັນຂໍ້ຄວາມທົ່ວໄປແທນ." + +#: ../source/specifications/dependency-specifiers.rst:221 +msgid "" +"``Version | String``: the contents of the field are expected to be a " +"valid :ref:`version specifier ` on some platforms, but " +"an opaque string on others. The specifics of this distinction are field " +"dependent and whether or not tools actually make the distinction will be " +"tool dependent." +msgstr "" +"``Version | String``: ເນື້ອຫາອາດຈະເປັນເວີຊັນທີ່ຖືກຕ້ອງໃນບາງແພລັດຟອມ, ແຕ່ " +"ເປັນຂໍ້ຄວາມທົ່ວໄປໃນແພລັດຟອມອື່ນ." + +#: ../source/specifications/dependency-specifiers.rst:227 +msgid "Marker comparisons" +msgstr "ການປຽບທຽບ Marker" + +#: ../source/specifications/dependency-specifiers.rst:229 +msgid "" +"All marker comparison expressions are expected to compare a named marker " +"field against a given user supplied constant. The type of the comparison is " +"determined by the comparison operator used and the type of the named field " +"as given in :ref:`the table below `. Tools MAY " +"emit an error if no marker field is referenced in a comparison (that is, " +"both operands are given as constants)." +msgstr "" +"ການປຽບທຽບ marker ແມ່ນການປຽບທຽບຊ່ອງຂໍ້ມູນກັບຄ່າຄົງທີ່ທີ່ຜູ້ໃຊ້ໃຫ້ມາ. " +"ປະເພດຂອງການປຽບທຽບແມ່ນຂຶ້ນກັບຕົວດຳເນີນການ ແລະ ປະເພດຂອງຊ່ອງຂໍ້ມູນ." + +#: ../source/specifications/dependency-specifiers.rst:236 +msgid "" +"The follow comparison operations are defined in the marker expression " +"grammar:" +msgstr "ຕົວດຳເນີນການປຽບທຽບຕໍ່ໄປນີ້ຖືກກຳນົດໄວ້ໃນໄວຍາກອນ:" + +#: ../source/specifications/dependency-specifiers.rst:238 +msgid "``==`` (for example, ``sys_platform == \"win32\"``)" +msgstr "``==`` (ຕົວຢ່າງ: ``sys_platform == \"win32\"``)" + +#: ../source/specifications/dependency-specifiers.rst:239 +msgid "``!=`` (for example, ``sys_platform != \"win32\"``)" +msgstr "``!=`` (ຕົວຢ່າງ: ``sys_platform != \"win32\"``)" + +#: ../source/specifications/dependency-specifiers.rst:240 +msgid "``>`` (for example, ``python_version > \"3.10\"``)" +msgstr "``>`` (ຕົວຢ່າງ: ``python_version > \"3.10\"``)" + +#: ../source/specifications/dependency-specifiers.rst:241 +msgid "``>=`` (for example, ``python_version >= \"3.10\"``)" +msgstr "``>=`` (ຕົວຢ່າງ: ``python_version >= \"3.10\"``)" + +#: ../source/specifications/dependency-specifiers.rst:242 +msgid "``<`` (for example, ``python_version < \"3.10\"``)" +msgstr "``<`` (ຕົວຢ່າງ: ``python_version < \"3.10\"``)" + +#: ../source/specifications/dependency-specifiers.rst:243 +msgid "``<=`` (for example, ``python_version <= \"3.10\"``)" +msgstr "``<=`` (ຕົວຢ່າງ: ``python_version <= \"3.10\"``)" + +#: ../source/specifications/dependency-specifiers.rst:244 +msgid "``~=`` (for example, ``python_version ~= \"3\"``)" +msgstr "``~=`` (ຕົວຢ່າງ: ``python_version ~= \"3\"``)" + +#: ../source/specifications/dependency-specifiers.rst:245 +msgid "" +"``===`` (for example, ``implementation_version === \"not.a.valid.version\"``)" +msgstr "" +"``===`` (ຕົວຢ່າງ: ``implementation_version === \"not.a.valid.version\"``)" + +#: ../source/specifications/dependency-specifiers.rst:246 +msgid "" +"``in`` (for example, ``\"gui\" in extras``, ``\"SMP\" in platform_version``)" +msgstr "``in`` (ຕົວຢ່າງ: ``\"gui\" in extras``, ``\"SMP\" in platform_version``)" + +#: ../source/specifications/dependency-specifiers.rst:247 +msgid "``not in`` (for example, ``\"dev\" not in dependency_groups``)" +msgstr "``not in`` (ຕົວຢ່າງ: ``\"dev\" not in dependency_groups``)" + +#: ../source/specifications/dependency-specifiers.rst:249 +msgid "" +"For ``String`` fields, ``==``, ``!=``, ``in``, and ``not in`` are defined as " +"they are for Python strings (case sensitive, with no value normalization of " +"any kind). The use of ``~=`` or ``===`` with string fields is explicitly " +"discouraged and publishing tools SHOULD emit an error, index servers MAY " +"disallow uploads containing such environment markers, while locking and " +"installation tools MAY instead interpret them as equivalent to ``==``. The " +"use of ordered comparisons (``<``, ``<=``, ``>``, ``>=``) with string fields " +"is explicitly discouraged (as it makes no semantic sense in the packaging " +"context) and publishing tools SHOULD emit an error, index servers MAY " +"disallow uploads containing such environment markers, while locking and " +"installation tools SHOULD implement the following behavior:" +msgstr "" +"ສໍາລັບຟິວ ``String``, ``==``, ``!=``, ``in``, ແລະ ``not in`` " +"ແມ່ນຖືກກໍານົດໄວ້ຄືກັນກັບສະຕຣິງຂອງ Python (ຈຳແນກຕົວອັກສອນໃຫຍ່-ນ້ອຍ, " +"ໂດຍບໍ່ມີການປັບຄ່າໃຫ້ເປັນມາດຕະຖານໃດໆ). ການນຳໃຊ້ ``~=`` ຫຼື ``===`` " +"ກັບຟິວສະຕຣິງແມ່ນບໍ່ແນະນໍາຢ່າງເດັດຂາດ ແລະ ເຄື່ອງມືການເຜີຍແຜ່ ຄວນ (SHOULD) ສະແດງຂໍ້ຜິດພາດ, " +"ເຊີບເວີດັດຊະນີ ອາດຈະ (MAY) ບໍ່ອະນຸຍາດໃຫ້ອັບໂຫຼດທີ່ມີ environment markers ດັ່ງກ່າວ, " +"ໃນຂະນະທີ່ເຄື່ອງມືລັອກ ແລະ ການຕິດຕັ້ງ ອາດຈະ (MAY) ຕີຄວາມໝາຍວ່າພວກມັນທຽບເທົ່າກັບ ``==``. " +"ການນຳໃຊ້ການປຽບທຽບແບບມີລໍາດັບ (``<``, ``<=``, ``>``, ``>=``) " +"ກັບຟິວສະຕຣິງແມ່ນບໍ່ແນະນໍາຢ່າງເດັດຂາດ (ເນື່ອງຈາກມັນບໍ່ມີຄວາມໝາຍທາງດ້ານບໍລິບົດຂອງການເຮັດແພັກເກັດ) " +"ແລະ ເຄື່ອງມືການເຜີຍແຜ່ ຄວນ (SHOULD) ສະແດງຂໍ້ຜິດພາດ, ເຊີບເວີດັດຊະນີ ອາດຈະ (MAY) " +"ບໍ່ອະນຸຍາດໃຫ້ອັບໂຫຼດທີ່ມີ environment markers ດັ່ງກ່າວ, ໃນຂະນະທີ່ເຄື່ອງມືລັອກ ແລະ ການຕິດຕັ້ງ ຄວນ " +"(SHOULD) ປະຕິບັດຕາມພຶດຕິກໍາດັ່ງຕໍ່ໄປນີ້:" + +#: ../source/specifications/dependency-specifiers.rst:261 +msgid "treat ``>=`` and ``<=`` as equivalent to ``==``" +msgstr "ຖືວ່າ ``>=`` ແລະ ``<=`` ມີຄ່າເທົ່າກັບ ``==``" + +#: ../source/specifications/dependency-specifiers.rst:262 +msgid "treat ``>`` and ``<`` as always being False" +msgstr "ຖືວ່າ ``>`` ແລະ ``<`` ເປັນ False ສະເໝີ" + +#: ../source/specifications/dependency-specifiers.rst:264 +msgid "" +"For ``Set of String`` fields, as there is no marker syntax for set literals, " +"the only valid operations are ``in`` and ``not in`` comparisons with a user " +"supplied string literal as the left operand. Publishing tools SHOULD emit an " +"error if environment markers attempt to use any other comparison operations " +"on these fields and index servers MAY disallow uploads containing such " +"environment markers, while locking and installation tools SHOULD treat such " +"operations as always being False." +msgstr "" +"ສຳລັບຊ່ອງຂໍ້ມູນ ``Set of String``, ການດຳເນີນການທີ່ໃຊ້ໄດ້ມີພຽງແຕ່ ``in`` ແລະ ``not in`` " +"ເທົ່ານັ້ນ." + +#: ../source/specifications/dependency-specifiers.rst:272 +msgid "" +"For ``Version`` fields, the comparison operations are defined by " +"the :ref:`Version specifier specification ` when either " +"both the marker field value and the user supplied constant can be parsed as " +"valid version specifiers or the ``===`` arbitrary equivalence comparison " +"operator is used. When an operator other than ``===`` is used, publishing " +"tools SHOULD emit an error if the user supplied constant cannot be parsed as " +"a valid version specifier, index servers MAY disallow uploads containing " +"such environment markers, while locking and installation tools MAY either " +"emit an error or else fall back to ``String`` field comparison logic if " +"either the marker field value or the user supplied constant cannot be parsed " +"as a valid version specifier. Note that ``in`` and ``not in`` containment " +"checks are NOT valid for ``Version`` fields and publishing tools SHOULD emit " +"an error, index servers MAY disallow uploads containing such environment " +"markers, while locking and installation tools MAY treat them as always being " +"False." +msgstr "" +"ສຳລັບຊ່ອງຂໍ້ມູນ ``Version``, ການປຽບທຽບຈະເປັນໄປຕາມ :ref:`Version specifier " +"specification `." + +#: ../source/specifications/dependency-specifiers.rst:287 +msgid "" +"For ``Version | String`` fields, comparison operations are defined as they " +"are for ``Version`` fields, while ``in`` and ``not in`` containment checks " +"are defined as they are for ``String`` fields. However, there is no " +"consistent cross-platform expectation that the parsing of the marker field " +"value or the user supplied constant as a valid version will succeed, so " +"tools SHOULD fall back to processing the field as a ``String`` field if " +"parsing either value as a version fails. Tools MAY emit a warning if the " +"field is expected to contain a valid version on a given platform but does " +"not in fact do so. Tools SHOULD NOT unconditionally treat such fields as " +"``String`` fields, as doing so may give incorrect answers for environment " +"markers that are appropriately scoped to the relevant platforms before " +"performing a version based comparison." +msgstr "" +"ສຳລັບຊ່ອງຂໍ້ມູນ ``Version | String``, ການປຽບທຽບຈະເຮັດຄືກັບ ``Version``, " +"ແຕ່ຖ້າການອ່ານຄ່າເວີຊັນລົ້ມເຫຼວ ໃຫ້ກັບໄປໃຊ້ການປຽບທຽບແບບ ``String`` ແທນ." + +#: ../source/specifications/dependency-specifiers.rst:301 +msgid "Composing marker expressions" +msgstr "ການປະກອບນິພົດ marker" + +#: ../source/specifications/dependency-specifiers.rst:303 +msgid "" +"More complex marker expressions may be composed using the ``and`` and ``or`` " +"logical operators. Parentheses may be used as necessary to control operand " +"precedence (with all comparison operations having a higher precedence)." +msgstr "" +"ນິພົດ marker ທີ່ຊັບຊ້ອນສາມາດໃຊ້ຕົວດຳເນີນການທາງຕັກກະສາດ ``and`` ແລະ ``or`` ແລະ " +"ສາມາດໃຊ້ວົງເລັບເພື່ອຈັດລຳດັບຄວາມສຳຄັນໄດ້." + +#: ../source/specifications/dependency-specifiers.rst:307 +#: ../source/specifications/version-specifiers.rst:200 +msgid "For example::" +msgstr "ຕົວຢ່າງ::" + +#: ../source/specifications/dependency-specifiers.rst:313 +msgid "" +"Python's comparison chaining (such as ``3.4 < python_version < 3.9``) is NOT " +"supported in environment markers (such expressions must instead be written " +"out as two separate comparisons joined by ``and``)." +msgstr "" +"ການປຽບທຽບແບບຕໍ່ເນື່ອງຂອງ Python (ເຊັ່ນ ``3.4 < python_version < 3.9``) ແມ່ນ " +"**ບໍ່ຮອງຮັບ** ໃນ environment markers (ຕ້ອງຂຽນແຍກເປັນສອງອັນແລ້ວເຊື່ອມດ້ວຍ ``and``)." + +#: ../source/specifications/dependency-specifiers.rst:318 +msgid "User supplied constants" +msgstr "ຄ່າຄົງທີ່ທີ່ຜູ້ໃຊ້ກຳນົດ" + +#: ../source/specifications/dependency-specifiers.rst:320 +msgid "" +"User supplied constants are always given as strings within either ``'`` or " +"``\"`` quote marks. Triple-quoted multi-line strings are NOT permitted." +msgstr "" +"ຄ່າຄົງທີ່ທີ່ຜູ້ໃຊ້ໃຫ້ມາຕ້ອງຢູ່ໃນເຄື່ອງໝາຍຄຳເວົ້າ ``'`` ຫຼື ``\"``. ຫ້າມໃຊ້ ເຄື່ອງໝາຍຄຳເວົ້າສາມອັນ." + +#: ../source/specifications/dependency-specifiers.rst:323 +msgid "" +"Backslash escapes are not specified, although tools MAY support them. They " +"are not included in the specification because they add complexity and there " +"is currently no known need for treating user supplied constants as anything " +"other than either opaque strings or valid version specifiers." +msgstr "ການໃຊ້ backslash (\\) ບໍ່ໄດ້ກຳນົດໄວ້ໃນຂໍ້ກຳນົດນີ້ ຍ້ອນມັນເຮັດໃຫ້ເກີດຄວາມຊັບຊ້ອນ." + +#: ../source/specifications/dependency-specifiers.rst:328 +msgid "" +"Similarly, non-ASCII character support is not specified, but tools MAY " +"accept them (usually based on the text encoding of the file or stream " +"containing the dependency specifier). This may be revisited in the future if " +"it becomes more common for the runtime variables typically referenced in " +"environment markers to contain non-ASCII text that users wish to perform " +"comparisons against." +msgstr "" +"ເຊັ່ນດຽວກັນ, ການຮອງຮັບຕົວອັກສອນທີ່ບໍ່ແມ່ນ ASCII ແມ່ນບໍ່ໄດ້ກຳນົດໄວ້, ແຕ່ເຄື່ອງມື " +"ອາດຈະຍອມຮັບໄດ້ຂຶ້ນກັບການເຂົ້າລະຫັດໄຟລ໌." + +#: ../source/specifications/dependency-specifiers.rst:335 +msgid "Unknown marker fields" +msgstr "ຊ່ອງຂໍ້ມູນ marker ທີ່ບໍ່ຮູ້ຈັກ" + +#: ../source/specifications/dependency-specifiers.rst:337 +msgid "" +"References to unknown marker fields SHOULD render a package version " +"ineligible for installation or inclusion in a locked dependency tree rather " +"than resulting in a comparison that evaluates to True or False. This is so " +"that published package versions with unknown marker fields are either " +"ignored when resolving dependencies or emit a descriptive installation " +"failure, rather than producing an apparently successful installation that " +"then fails at runtime due to missing dependencies (if the unknown marker is " +"treated as False) or a potentially cryptic installation failure of a " +"dependency that is not valid for the current platform (if the unknown marker " +"is treated as True)." +msgstr "" +"ການອ້າງອີງເຖິງຊ່ອງຂໍ້ມູນ marker ທີ່ບໍ່ຮູ້ຈັກ ຄວນເຮັດໃຫ້ເວີຊັນຂອງ package ນັ້ນ ບໍ່ສາມາດຕິດຕັ້ງໄດ້ " +"ແທນທີ່ຈະໃຫ້ຜົນການປຽບທຽບເປັນ True ຫຼື False." + +#: ../source/specifications/dependency-specifiers.rst:347 +msgid "" +"Variables whose value cannot be calculated on a given Python implementation " +"should evaluate to ``0`` for ``Version`` fields, and an empty string for all " +"other variables (including ``Version | String`` fields)." +msgstr "" +"ຕົວປ່ຽນທີ່ບໍ່ສາມາດຄິດໄລ່ຄ່າໄດ້ໃນ Python ບາງເວີຊັນ ຄວນມີຄ່າເປັນ ``0`` ສຳລັບ ຊ່ອງ ``Version``, " +"ແລະ ເປັນຂໍ້ຄວາມວ່າງສຳລັບຊ່ອງອື່ນໆ." + +#: ../source/specifications/dependency-specifiers.rst:355 +msgid "Defined environment marker fields" +msgstr "ຊ່ອງຂໍ້ມູນ environment marker ທີ່ກຳນົດໄວ້" + +#: ../source/specifications/dependency-specifiers.rst:357 +msgid "" +"Unless otherwise noted below, marker evaluation environments MUST support " +"all of the following marker fields:" +msgstr "" +"ນອກຈາກຈະລະບຸໄວ້ເປັນຢ່າງອື່ນ, ສະພາວະການປະເມີນຄ່າ marker ຕ້ອງຮອງຮັບ ຊ່ອງຂໍ້ມູນທັງໝົດຕໍ່ໄປນີ້:" + +#: ../source/specifications/dependency-specifiers.rst:363 +msgid "Marker" +msgstr "Marker" + +#: ../source/specifications/dependency-specifiers.rst:364 +msgid "Python equivalent" +msgstr "ທຽບເທົ່າໃນ Python" + +#: ../source/specifications/dependency-specifiers.rst:365 +msgid "Type" +msgstr "ປະເພດ" + +#: ../source/specifications/dependency-specifiers.rst:366 +msgid "Sample values & notes" +msgstr "ຕົວຢ່າງຄ່າ ແລະ ໝາຍເຫດ" + +#: ../source/specifications/dependency-specifiers.rst:367 +msgid "``os_name``" +msgstr "``os_name``" + +#: ../source/specifications/dependency-specifiers.rst:368 +msgid ":py:data:`os.name`" +msgstr ":py:data:`os.name`" + +#: ../source/specifications/dependency-specifiers.rst:369 +#: ../source/specifications/dependency-specifiers.rst:373 +#: ../source/specifications/dependency-specifiers.rst:379 +#: ../source/specifications/dependency-specifiers.rst:385 +#: ../source/specifications/dependency-specifiers.rst:394 +#: ../source/specifications/dependency-specifiers.rst:414 +msgid "String" +msgstr "String" + +#: ../source/specifications/dependency-specifiers.rst:370 +msgid "``posix``, ``java``" +msgstr "``posix``, ``java``" + +#: ../source/specifications/dependency-specifiers.rst:371 +msgid "``sys_platform``" +msgstr "``sys_platform``" + +#: ../source/specifications/dependency-specifiers.rst:372 +msgid ":py:data:`sys.platform`" +msgstr ":py:data:`sys.platform`" + +#: ../source/specifications/dependency-specifiers.rst:374 +msgid "" +"``linux``, ``win32``, ``darwin``, ``java1.8.0_51`` (note that this is the " +"most well defined field for use when declaring platform specific " +"dependencies)" +msgstr "" +"``linux``, ``win32``, ``darwin``, ``java1.8.0_51`` (ໝາຍເຫດ: ນີ້ແມ່ນຊ່ອງຂໍ້ມູນ " +"ທີ່ຊັດເຈນທີ່ສຸດສຳລັບໃຊ້ລະບຸສິ່ງທີ່ຈຳເປັນສະເພາະແພລັດຟອມ)" + +#: ../source/specifications/dependency-specifiers.rst:377 +msgid "``platform_machine``" +msgstr "``platform_machine``" + +#: ../source/specifications/dependency-specifiers.rst:378 +msgid ":py:func:`platform.machine()`" +msgstr ":py:func:`platform.machine()`" + +#: ../source/specifications/dependency-specifiers.rst:380 +msgid "" +"``x86_64``, ``aarch64``, ``AMD64``, ``arm64`` (note that this value is " +"provided by the operating system, so the same CPU architecture may use " +"different strings on different platforms)" +msgstr "``x86_64``, ``aarch64``, ``AMD64``, ``arm64``" + +#: ../source/specifications/dependency-specifiers.rst:383 +msgid "``platform_python_implementation``" +msgstr "``platform_python_implementation``" + +#: ../source/specifications/dependency-specifiers.rst:384 +msgid ":py:func:`platform.python_implementation()`" +msgstr ":py:func:`platform.python_implementation()`" + +#: ../source/specifications/dependency-specifiers.rst:386 +msgid "``CPython``, ``PyPy``" +msgstr "``CPython``, ``PyPy``" + +#: ../source/specifications/dependency-specifiers.rst:387 +msgid "``platform_release``" +msgstr "``platform_release``" + +#: ../source/specifications/dependency-specifiers.rst:388 +msgid ":py:func:`platform.release()`" +msgstr ":py:func:`platform.release()`" + +#: ../source/specifications/dependency-specifiers.rst:389 +#: ../source/specifications/dependency-specifiers.rst:398 +msgid "Version | String" +msgstr "Version | String" + +#: ../source/specifications/dependency-specifiers.rst:390 +msgid "" +"``3.14.1-x86_64-linode39``, ``14.5.0``, ``1.8.0_51`` (may be a valid version " +"field, for example on macOS/darwin)" +msgstr "``3.14.1-x86_64-linode39``, ``14.5.0``, ``1.8.0_51``" + +#: ../source/specifications/dependency-specifiers.rst:392 +msgid "``platform_system``" +msgstr "``platform_system``" + +#: ../source/specifications/dependency-specifiers.rst:393 +msgid ":py:func:`platform.system()`" +msgstr ":py:func:`platform.system()`" + +#: ../source/specifications/dependency-specifiers.rst:395 +msgid "``Linux``, ``Windows``, ``Java``" +msgstr "``Linux``, ``Windows``, ``Java``" + +#: ../source/specifications/dependency-specifiers.rst:396 +msgid "``platform_version``" +msgstr "``platform_version``" + +#: ../source/specifications/dependency-specifiers.rst:397 +msgid ":py:func:`platform.version()`" +msgstr ":py:func:`platform.version()`" + +#: ../source/specifications/dependency-specifiers.rst:399 +msgid "" +"``#1 SMP Fri Apr 25 13:07:35 EDT 2014`` ``Java HotSpot(TM) 64-Bit Server VM, " +"25.51-b03, Oracle Corporation`` ``Darwin Kernel Version 14.5.0: Wed Jul 29 " +"02:18:53 PDT 2015; root:xnu-2782.40.9~2/RELEASE_X86_64`` ``13`` (may be a " +"valid version field, for example on iOS or Android)" +msgstr "``#1 SMP Fri Apr 25 13:07:35 EDT 2014``" + +#: ../source/specifications/dependency-specifiers.rst:404 +msgid "``python_version``" +msgstr "``python_version``" + +#: ../source/specifications/dependency-specifiers.rst:405 +msgid "``'.'.join(platform.python_version_tuple()[:2])``" +msgstr "``'.'.join(platform.python_version_tuple()[:2])``" + +#: ../source/specifications/dependency-specifiers.rst:406 +#: ../source/specifications/dependency-specifiers.rst:410 +#: ../source/specifications/dependency-specifiers.rst:418 +msgid ":ref:`Version `" +msgstr ":ref:`Version `" + +#: ../source/specifications/dependency-specifiers.rst:407 +msgid "``3.9``, ``3.15``" +msgstr "``3.9``, ``3.15``" + +#: ../source/specifications/dependency-specifiers.rst:408 +msgid "``python_full_version``" +msgstr "``python_full_version``" + +#: ../source/specifications/dependency-specifiers.rst:409 +msgid ":py:func:`platform.python_version()`" +msgstr ":py:func:`platform.python_version()`" + +#: ../source/specifications/dependency-specifiers.rst:411 +msgid "``3.10.12``, ``3.15.0a1``" +msgstr "``3.10.12``, ``3.15.0a1``" + +#: ../source/specifications/dependency-specifiers.rst:412 +msgid "``implementation_name``" +msgstr "``implementation_name``" + +#: ../source/specifications/dependency-specifiers.rst:413 +msgid ":py:data:`sys.implementation.name `" +msgstr ":py:data:`sys.implementation.name `" + +#: ../source/specifications/dependency-specifiers.rst:415 +msgid "``cpython``, ``pypy``" +msgstr "``cpython``, ``pypy``" + +#: ../source/specifications/dependency-specifiers.rst:416 +msgid "``implementation_version``" +msgstr "``implementation_version``" + +#: ../source/specifications/dependency-specifiers.rst:417 +msgid "see definition below" +msgstr "ເບິ່ງຄຳນິຍາມດ້ານລຸ່ມ" + +#: ../source/specifications/dependency-specifiers.rst:419 +msgid "" +"``3.10.12``, ``7.3.17`` (examples are for CPython and PyPy respectively)" +msgstr "``3.10.12``, ``7.3.17`` (ຕົວຢ່າງສຳລັບ CPython ແລະ PyPy ຕາມລຳດັບ)" + +#: ../source/specifications/dependency-specifiers.rst:421 +msgid "``extra``" +msgstr "``extra``" + +#: ../source/specifications/dependency-specifiers.rst:422 +msgid "" +"Used to indicate optional dependencies in project dependency metadata. An " +"error except when defined by the context interpreting the specifier." +msgstr "" +"ໃຊ້ເພື່ອລະບຸສິ່ງທີ່ຈຳເປັນເສີມໃນ metadata. ຈະແຈ້ງຂໍ້ຜິດພາດ ຍົກເວັ້ນແຕ່ຈະຖືກ " +"ກຳນົດໂດຍບໍລິບົດທີ່ກຳລັງອ່ານຕົວລະບຸນັ້ນ." + +#: ../source/specifications/dependency-specifiers.rst:425 +msgid "Special (see below)" +msgstr "ພິເສດ (ເບິ່ງດ້ານລຸ່ມ)" + +#: ../source/specifications/dependency-specifiers.rst:426 +msgid "``toml`` (publishing tools SHOULD permit use of this field)" +msgstr "``toml`` (ເຄື່ອງມືເຜີຍແຜ່ຄວນອະນຸຍາດໃຫ້ໃຊ້ຊ່ອງຂໍ້ມູນນີ້)" + +#: ../source/specifications/dependency-specifiers.rst:428 +#: ../source/specifications/pylock-toml.rst:108 +msgid "``extras``" +msgstr "``extras``" + +#: ../source/specifications/dependency-specifiers.rst:429 +msgid "" +"Used to indicate optional public dependencies in lock files. An error except " +"when defined by the context interpreting the specifier." +msgstr "" +"ໃຊ້ເພື່ອລະບຸສິ່ງທີ່ຈຳເປັນເສີມແບບສາທາລະນະໃນໄຟລ໌ lock. ຈະແຈ້ງຂໍ້ຜິດພາດ " +"ຍົກເວັ້ນແຕ່ຈະຖືກກຳນົດໂດຍບໍລິບົດທີ່ອ່ານ." + +#: ../source/specifications/dependency-specifiers.rst:431 +#: ../source/specifications/dependency-specifiers.rst:439 +msgid "Set of strings" +msgstr "Set of strings" + +#: ../source/specifications/dependency-specifiers.rst:432 +msgid "" +"``{\"toml\"}`` (publishing tools SHOULD NOT permit use of this field and " +"index servers SHOULD NOT accept uploads containing such environment markers)" +msgstr "``{\"toml\"}``" + +#: ../source/specifications/dependency-specifiers.rst:435 +msgid "``dependency_groups``" +msgstr "``dependency_groups``" + +#: ../source/specifications/dependency-specifiers.rst:436 +msgid "" +"Used to indicate optional project internal dependencies in lock files. An " +"error except when defined by the context interpreting the specifier." +msgstr "" +"ໃຊ້ເພື່ອລະບຸສິ່ງທີ່ຈຳເປັນເສີມພາຍໃນໂຄງການໃນໄຟລ໌ lock. ຈະແຈ້ງຂໍ້ຜິດພາດ " +"ຍົກເວັ້ນແຕ່ຈະຖືກກຳນົດໂດຍບໍລິບົດທີ່ອ່ານ." + +#: ../source/specifications/dependency-specifiers.rst:440 +msgid "" +"``{\"test\"}`` (publishing tools SHOULD NOT permit use of this field and " +"index servers SHOULD NOT accept uploads containing such environment markers)" +msgstr "``{\"test\"}``" + +#: ../source/specifications/dependency-specifiers.rst:444 +msgid "" +"For backwards compatibility with older locking and installation tools, the " +"``extras`` and ``dependency_groups`` fields are currently only valid for use " +"in ``packages.marker`` fields in :ref:`lock files `. For " +"these comparisons, the ``extras`` and ``dependency_groups`` sets used for " +"the marker evaluation refer to the *currently selected* extras and " +"dependency groups when installing from the lock file, not the full set of " +"defined extras and dependency groups listed in the corresponding top level " +"lock file fields. The interface for selecting which extras and dependency " +"groups to install is tool dependent. Publishing tools SHOULD emit an error " +"if projects attempt to reference the ``extras`` or ``dependency_groups`` " +"fields in their published dependency declaration metadata, and index servers " +"SHOULD NOT accept uploads referencing these fields. Outside lock file " +"processing, marker evaluation environments DO NOT need to define these " +"fields." +msgstr "" +"ເພື່ອຄວາມເຂົ້າກັນໄດ້ກັບເຄື່ອງມືລຸ້ນເກົ່າ, ຊ່ອງ ``extras`` ແລະ ``dependency_groups`` " +"ໃນປັດຈຸບັນແມ່ນໃຊ້ໄດ້ສະເພາະໃນໄຟລ໌ lock ເທົ່ານັ້ນ." + +#: ../source/specifications/dependency-specifiers.rst:458 +msgid "" +"The ``extra`` field is also special, as it expects set-like behaviour, but " +"predates the addition of ``Set of strings`` as a defined marker field type. " +"Accordingly, ``extra == \"name\"`` in a dependency declaration is similar to " +"``\"name\" in extras``, while ``extra != \"name\"`` is similar to ``\"name\" " +"not in extras``. For dependency marker evaluations, the set of extra names " +"used for these comparisons is the full set of requested extras for *that " +"particular package*, whether requested directly in a top level dependency " +"declaration, or indirectly in a transitive dependency declaration. Other " +"comparison operations on ``extra`` are not defined and publishing tools " +"SHOULD emit an error, index servers MAY disallow uploads containing such " +"environment markers, while locking and installation tools SHOULD evaluate " +"them as False." +msgstr "ຊ່ອງ ``extra`` ກໍມີຄວາມພິເສດ ເພາະມັນມີມາກ່ອນການກຳນົດປະເພດ ``Set of strings``." + +#: ../source/specifications/dependency-specifiers.rst:470 +msgid "" +"Unlike the newer ``extras`` field, environment markers using this field " +"SHOULD be accepted by both publishing tools and index servers. Marker " +"evaluation environments intended for project dependency declarations will " +"typically need to handle evaluation of ``extra`` field comparisons, while " +"other evaluations of environment markers will not generally need to do so. " +"The legacy ``extra`` comparison syntax is NOT permitted in lock file " +"``packages.marker`` fields, and installation tools SHOULD reject lock files " +"containing such comparisons as invalid." +msgstr "" +"Environment markers ທີ່ໃຊ້ຊ່ອງນີ້ຄວນໄດ້ຮັບການຍອມຮັບຈາກທັງເຄື່ອງມືເຜີຍແຜ່ ແລະ ເຊີເວີດັດຊະນີ." + +#: ../source/specifications/dependency-specifiers.rst:479 +msgid "" +"The ``implementation_version`` marker variable is derived " +"from :py:data:`sys.implementation.version `:" +msgstr "" +"ຕົວປ່ຽນ marker ``implementation_version`` " +"ແມ່ນໄດ້ມາຈາກ :py:data:`sys.implementation.version `:" + +#: ../source/specifications/dependency-specifiers.rst:499 +msgid "Complete Grammar" +msgstr "ໄວຍາກອນທັງໝົດ" + +#: ../source/specifications/dependency-specifiers.rst:501 +msgid "The complete parsley grammar::" +msgstr "ໄວຍາກອນ parsley ທັງໝົດ::" + +#: ../source/specifications/dependency-specifiers.rst:608 +msgid "A test program - if the grammar is in a string ``grammar``:" +msgstr "ໂປຣແກຣມທົດສອບ - ຖ້າໄວຍາກອນຢູ່ໃນຂໍ້ຄວາມ ``grammar``:" + +#: ../source/specifications/dependency-specifiers.rst:682 +msgid "November 2015: This specification was approved through :pep:`508`." +msgstr "ພະຈິກ 2015: ຂໍ້ກຳນົດນີ້ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`508`." + +#: ../source/specifications/dependency-specifiers.rst:683 +msgid "" +"July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " +"``'.'.join(platform.python_version_tuple()[:2])``, to accommodate potential " +"future versions of Python with 2-digit major and minor versions (e.g. 3.10). " +"[#future_versions]_" +msgstr "" +"ກໍລະກົດ 2019: ຄຳນິຍາມຂອງ ``python_version`` ຖືກປ່ຽນເພື່ອຮອງຮັບເວີຊັນ Python " +"ໃນອະນາຄົດທີ່ມີເລກສອງຫຼັກ (ເຊັ່ນ 3.10)." + +#: ../source/specifications/dependency-specifiers.rst:688 +msgid "" +"March 2022: Standardised the normalization of extra names at publication " +"time (for core metadata 2.3 and later) through :pep:`685`" +msgstr "ມີນາ 2022: ປັບມາດຕະຖານການປັບຄ່າຊື່ extra ໃນເວລາເຜີຍແຜ່ຜ່ານ :pep:`685`." + +#: ../source/specifications/dependency-specifiers.rst:690 +msgid "" +"June 2024: The definition of ``version_many`` was changed to allow trailing " +"commas, matching with the behavior of the Python implementation that has " +"been in use since late 2022." +msgstr "ມິຖຸນາ 2024: ຄຳນິຍາມຂອງ ``version_many`` ຖືກປ່ຽນໃຫ້ອະນຸຍາດເຄື່ອງໝາຍຈຸດ ຢູ່ທ້າຍສຸດໄດ້." + +#: ../source/specifications/dependency-specifiers.rst:693 +msgid "" +"April 2025: Added ``extras`` and ``dependency_groups`` marker field " +"for :ref:`lock-file-spec` as approved through :pep:`751`." +msgstr "" +"ເມສາ 2025: ເພີ່ມຊ່ອງ marker ``extras`` ແລະ ``dependency_groups`` " +"ສຳລັບ :ref:`lock-file-spec` ຕາມ :pep:`751`." + +#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/name-normalization.rst:56 +msgid "" +"August 2025: The suggested name validation regex was fixed to match the " +"field specification (it previously finished with ``$`` instead of ``\\Z``, " +"incorrectly permitting trailing newlines)" +msgstr "ສິງຫາ 2025: ແກ້ໄຂ regex ໃນການກວດສອບຊື່ໃຫ້ຖືກຕ້ອງຕາມຂໍ້ກຳນົດ." + +#: ../source/specifications/dependency-specifiers.rst:698 +msgid "" +"December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " +"arbitrary equality comparisons to be parsed." +msgstr "ທັນວາ 2025: ຈັດລຳດັບໃຫ້ ``===`` ມາກ່ອນ ``==`` ໃນໄວຍາກອນ." + +#: ../source/specifications/dependency-specifiers.rst:700 +msgid "" +"January 2026: Amend the definition of environment marker comparison " +"operations to restrict version comparison semantics to fields where they " +"make sense, make extra name restrictions more explicit, adjust the way " +"ordered comparisons are defined for strings, and make the fallback from " +"version comparisons to string comparisons when version parsing fails " +"optional. Also provide different tool behaviour recommendations for " +"publishing tools vs installation tools. This brought the nominal " +"specification into line with the way tools actually work. " +"[#marker_comparison_logic]_" +msgstr "" +"ເດືອນມັງກອນ 2026: ປັບປຸງຄໍານິຍາມຂອງການດໍາເນີນການປຽບທຽບ environment marker " +"ເພື່ອຈໍາກັດຄວາມໝາຍຂອງການປຽບທຽບເວີຊັນໃຫ້ໃຊ້ສະເພາະກັບຟິວທີ່ເໝາະສົມ, " +"ເຮັດໃຫ້ການຈໍາກັດຊື່ເພີ່ມເຕີມມີຄວາມຊັດເຈນຂຶ້ນ, ປັບປຸງວິທີການກໍານົດການປຽບທຽບແບບມີລໍາດັບສໍາລັບສະຕຣິງ, " +"ແລະ " +"ເຮັດໃຫ້ການປ່ຽນຈາກການປຽບທຽບເວີຊັນມາເປັນການປຽບທຽບສະຕຣິງເມື່ອການວິເຄາະເວີຊັນຫຼົ້ມເຫຼວນັ້ນເປັນທາງເລືອກ. " +"ນອກຈາກນັ້ນ, ຍັງໃຫ້ຄໍາແນະນໍາກ່ຽວກັບພຶດຕິກໍາຂອງເຄື່ອງມືທີ່ແຕກຕ່າງກັນລະຫວ່າງເຄື່ອງມືການເຜີຍແຜ່ ແລະ " +"ເຄື່ອງມືການຕິດຕັ້ງ. ສິ່ງນີ້ເຮັດໃຫ້ຂໍ້ກໍານົດທາງການສອດຄ່ອງກັບວິທີທີ່ເຄື່ອງມືເຮັດວຽກຕົວຈິງ. " +"[#marker_comparison_logic]_" + +#: ../source/specifications/dependency-specifiers.rst:708 +msgid "" +"January 2026: fix outdated references to other documents that were " +"inadvertently retained from :pep:`508`" +msgstr "ມັງກອນ 2026: ແກ້ໄຂການອ້າງອີງເຖິງເອກະສານອື່ນທີ່ລ້າສະໄໝ." + +#: ../source/specifications/dependency-specifiers.rst:715 +msgid "" +"pip, the recommended installer for Python packages (http://" +"pip.readthedocs.org/en/stable/)" +msgstr "" +"pip, ເຄື່ອງມືຕິດຕັ້ງທີ່ແນະນຳສຳລັບ Python packages (http://pip.readthedocs.org/en/" +"stable/)" + +#: ../source/specifications/dependency-specifiers.rst:718 +msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" +msgstr "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" + +#: ../source/specifications/dependency-specifiers.rst:721 +msgid "" +"Future Python versions might be problematic with the definition of " +"Environment Marker Variable ``python_version`` (https://github.com/python/" +"peps/issues/560)" +msgstr "ເວີຊັນ Python ໃນອະນາຄົດອາດມີບັນຫາກັບຄຳນິຍາມຂອງ ``python_version``." + +#: ../source/specifications/dependency-specifiers.rst:725 +msgid "" +"Resolving inconsistencies between actual tool behavior and the nominal " +"definitions of environment marker field comparisons (https://" +"discuss.python.org/t/spec-change-bugfix-dependency-specifiers-simplification-" +"pep-508/105203)" +msgstr "" +"ການແກ້ໄຂຄວາມບໍ່ສອດຄ່ອງກັນລະຫວ່າງການເຮັດວຽກຂອງເຄື່ອງມື ແລະ ຄຳນິຍາມການປຽບທຽບ marker." + +#: ../source/specifications/direct-url.rst:6 +msgid "Recording the Direct URL Origin of installed distributions" +msgstr "ການບັນທຶກແຫຼ່ງທີ່ມາຂອງ URL ໂດຍກົງຂອງຊຸດໂປຣແກຣມທີ່ຕິດຕັ້ງ" + +#: ../source/specifications/direct-url.rst:8 +msgid "" +"This document specifies a :file:`direct_url.json` file in the ``*.dist-" +"info`` directory of an installed distribution, to record the Direct URL " +"Origin of the distribution. The general structure and usage of ``*.dist-" +"info`` directories is described in :ref:`recording-installed-packages`." +msgstr "" +"ເອກະສານນີ້ກຳນົດໄຟລ໌ :file:`direct_url.json` ໃນໂຟນເດີ ``*.dist-info`` " +"ຂອງຊຸດໂປຣແກຣມທີ່ຕິດຕັ້ງ, ເພື່ອບັນທຶກແຫຼ່ງທີ່ມາຂອງ URL ໂດຍກົງ." + +#: ../source/specifications/direct-url.rst:17 +msgid "" +"The :file:`direct_url.json` file MUST be created in the :file:`*.dist-info` " +"directory by installers when installing a distribution from a requirement " +"specifying a direct URL reference (including a VCS URL)." +msgstr "" +"ໄຟລ໌ :file:`direct_url.json` ຕ້ອງຖືກສ້າງຂຶ້ນໂດຍເຄື່ອງມືຕິດຕັ້ງ ເມື່ອມີການຕິດຕັ້ງ ຈາກການອ້າງອີງ " +"URL ໂດຍກົງ (ລວມເຖິງ VCS URL)." + +#: ../source/specifications/direct-url.rst:21 +#: ../source/specifications/recording-installed-packages.rst:222 +msgid "" +"This file MUST NOT be created when installing a distribution from an other " +"type of requirement (i.e. name plus version specifier)." +msgstr "ໄຟລ໌ນີ້ຕ້ອງບໍ່ຖືກສ້າງຂຶ້ນເມື່ອຕິດຕັ້ງຈາກຄວາມຕ້ອງການປະເພດອື່ນ (ເຊັ່ນ: ຊື່ ແລະ ເວີຊັນ)." + +#: ../source/specifications/direct-url.rst:24 +msgid "" +"This JSON file MUST be a UTF-8 encoded, :rfc:`8259` compliant, serialization " +"of the :doc:`direct-url-data-structure`." +msgstr "ໄຟລ໌ JSON ນີ້ຕ້ອງເຂົ້າລະຫັດແບບ UTF-8 ແລະ ເປັນໄປຕາມມາດຕະຖານ :rfc:`8259`." + +#: ../source/specifications/direct-url.rst:29 +msgid "" +"When the requested URL has the file:// scheme and points to a local " +"directory that happens to contain a VCS checkout, installers MUST NOT " +"attempt to infer any VCS information and therefore MUST NOT output any VCS " +"related information (such as ``vcs_info``) in :file:`direct_url.json`." +msgstr "" +"ເມື່ອ URL ທີ່ຮ້ອງຂໍໃຊ້ file:// ແລະ ຊີ້ໄປທີ່ໂຟນເດີພາຍໃນເຄື່ອງທີ່ມີ VCS checkout, " +"ເຄື່ອງມືຕິດຕັ້ງຕ້ອງບໍ່ພະຍາຍາມຄາດເດົາຂໍ້ມູນ VCS ໃດໆ." + +#: ../source/specifications/direct-url.rst:36 +msgid "" +"As a general rule, installers should as much as possible preserve the " +"information that was provided in the requested URL when " +"generating :file:`direct_url.json`. For example user:password environment " +"variables should be preserved and ``requested_revision`` should reflect the " +"revision that was provided in the requested URL as faithfully as possible. " +"This information is however *enriched* with more precise data, such as " +"``commit_id``." +msgstr "ໂດຍທົ່ວໄປແລ້ວ, ເຄື່ອງມືຕິດຕັ້ງຄວນຮັກສາຂໍ້ມູນທີ່ໃຫ້ມາໃນ URL ເດີມໃຫ້ໄດ້ຫຼາຍທີ່ສຸດ." + +#: ../source/specifications/direct-url.rst:45 +msgid "Example pip commands and their effect on direct_url.json" +msgstr "ຕົວຢ່າງຄຳສັ່ງ pip ແລະ ຜົນກະທົບຕໍ່ direct_url.json" + +#: ../source/specifications/direct-url.rst:47 +msgid "Commands that generate a ``direct_url.json``:" +msgstr "ຄຳສັ່ງທີ່ສ້າງ ``direct_url.json``:" + +#: ../source/specifications/direct-url.rst:49 +msgid "``pip install https://example.com/app-1.0.tgz``" +msgstr "" + +#: ../source/specifications/direct-url.rst:50 +msgid "``pip install https://example.com/app-1.0.whl``" +msgstr "" + +#: ../source/specifications/direct-url.rst:51 +msgid "" +"``pip install \"app @ git+https://example.com/repo/" +"app.git#subdirectory=setup\"``" +msgstr "" +"``pip install \"app @ git+https://example.com/repo/" +"app.git#subdirectory=setup\"``" + +#: ../source/specifications/direct-url.rst:52 +msgid "``pip install ./app``" +msgstr "" + +#: ../source/specifications/direct-url.rst:53 +msgid "``pip install file:///home/user/app``" +msgstr "" + +#: ../source/specifications/direct-url.rst:54 +msgid "" +"``pip install --editable \"app @ git+https://example.com/repo/" +"app.git#subdirectory=setup\"`` (in which case, ``url`` will be the local " +"directory where the git repository has been cloned to, and ``dir_info`` will " +"be present with ``\"editable\": true`` and no ``vcs_info`` will be set)" +msgstr "" +"``pip install --editable \"app @ git+https://example.com/repo/" +"app.git#subdirectory=setup\"``" + +#: ../source/specifications/direct-url.rst:58 +msgid "``pip install -e ./app``" +msgstr "" + +#: ../source/specifications/direct-url.rst:60 +msgid "Commands that *do not* generate a ``direct_url.json``" +msgstr "ຄຳສັ່ງທີ່ *ບໍ່ສ້າງ* ``direct_url.json``" + +#: ../source/specifications/direct-url.rst:62 +msgid "``pip install app``" +msgstr "" + +#: ../source/specifications/direct-url.rst:63 +msgid "``pip install app --no-index --find-links https://example.com/``" +msgstr "" + +#: ../source/specifications/direct-url.rst:69 +msgid "March 2020: This specification was approved through :pep:`610`." +msgstr "ມີນາ 2020: ຂໍ້ກຳນົດນີ້ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`610`." + +#: ../source/specifications/direct-url-data-structure.rst:7 +msgid "Direct URL Data Structure" +msgstr "ໂຄງສ້າງຂໍ້ມູນ URL ໂດຍກົງ (Direct URL Data Structure)" + +#: ../source/specifications/direct-url-data-structure.rst:9 +msgid "" +"This document specifies a JSON-serializable abstract data structure that can " +"represent URLs to python projects and distribution artifacts such as VCS " +"source trees, local source trees, source distributions and wheels." +msgstr "" +"ເອກະສານນີ້ກຳນົດໂຄງສ້າງຂໍ້ມູນແບບ JSON ທີ່ສາມາດແທນ URL ຂອງໂຄງການ Python ແລະ " +"ໄຟລ໌ຊຸດໂປຣແກຣມຕ່າງໆ." + +#: ../source/specifications/direct-url-data-structure.rst:13 +msgid "" +"At time of writing, it is not formally specified how to merge the parts of " +"this data structure into a single URL that can be passed to tools. A common " +"representation is the pip URL format (`VCS Support `_), " +"other examples are provided in the :ref:`Version specifier specification " +"`." +msgstr "" +"ໃນປັດຈຸບັນ, ຍັງບໍ່ມີການກຳນົດເປັນທາງການກ່ຽວກັບວິທີການລວມສ່ວນຕ່າງໆ ຂອງໂຄງສ້າງ ຂໍ້ມູນນີ້ເຂົ້າເປັນ URL " +"ດຽວ." + +#: ../source/specifications/direct-url-data-structure.rst:21 +msgid "" +"The Direct URL Data Structure MUST be a dictionary, serializable to JSON " +"according to :rfc:`8259`." +msgstr "ໂຄງສ້າງຂໍ້ມູນ URL ໂດຍກົງຕ້ອງເປັນ dictionary ທີ່ສາມາດແປງເປັນ JSON ໄດ້." + +#: ../source/specifications/direct-url-data-structure.rst:24 +msgid "" +"It MUST contain at least two fields. The first one is ``url``, with type " +"``string``. Its content must be a valid URL according to the `WHATWG URL " +"Standard `_." +msgstr "" +"ມັນຕ້ອງມີຢ່າງໜ້ອຍສອງຊ່ອງຂໍ້ມູນ. ອັນທຳອິດແມ່ນ ``url`` ປະເພດ ``string``. ເນື້ອຫາຕ້ອງເປັນ URL " +"ທີ່ຖືກຕ້ອງ." + +#: ../source/specifications/direct-url-data-structure.rst:28 +msgid "" +"Depending on what ``url`` refers to, the second field MUST be one of " +"``vcs_info`` (if ``url`` is a VCS reference), ``archive_info`` (if ``url`` " +"is a source archive or a wheel), or ``dir_info`` (if ``url`` is a local " +"directory). These info fields have a (possibly empty) subdictionary as " +"value, with the possible keys defined below." +msgstr "" +"ຊ່ອງຂໍ້ມູນທີສອງຕ້ອງແມ່ນ ``vcs_info``, ``archive_info``, ຫຼື ``dir_info`` ຂຶ້ນກັບວ່າ " +"``url`` ອ້າງອີງເຖິງສິ່ງໃດ." + +#: ../source/specifications/direct-url-data-structure.rst:35 +msgid "Security Considerations" +msgstr "ການຄຳນຶງເຖິງຄວາມປອດໄພ" + +#: ../source/specifications/direct-url-data-structure.rst:37 +msgid "" +"When persisted, ``url`` MUST be stripped of any sensitive authentication " +"information, for security reasons." +msgstr "" +"ເມື່ອມີການບັນທຶກ, ``url`` ຕ້ອງຖືກຕັດຂໍ້ມູນການຢືນຢັນຕົວຕົນທີ່ມີຄວາມອ່ອນໄຫວອອກ " +"ເພື່ອເຫດຜົນດ້ານຄວາມປອດໄພ." + +#: ../source/specifications/direct-url-data-structure.rst:40 +msgid "" +"The user:password section of the URL MAY however be composed of environment " +"variables, matching the following regular expression:" +msgstr "" +"ສ່ວນ user:password ຂອງ URL ອາດຈະປະກອບດ້ວຍຕົວປ່ຽນສະພາບແວດລ້ອມ (environment " +"variables)." + +#: ../source/specifications/direct-url-data-structure.rst:48 +msgid "" +"Additionally, the user:password section of the URL MAY be a well-known, non " +"security sensitive string. A typical example is ``git`` in the case of a URL " +"such as ``ssh://git@gitlab.com/user/repo``." +msgstr "" +"ນອກຈາກນັ້ນ, ສ່ວນ user:password ອາດຈະເປັນຂໍ້ຄວາມທົ່ວໄປທີ່ບໍ່ມີຄວາມອ່ອນໄຫວ ດ້ານຄວາມປອດໄພ ເຊັ່ນ " +"``git``." + +#: ../source/specifications/direct-url-data-structure.rst:55 +msgid "VCS URLs" +msgstr "VCS URLs" + +#: ../source/specifications/direct-url-data-structure.rst:57 +msgid "" +"When ``url`` refers to a VCS repository, the ``vcs_info`` key MUST be " +"present as a dictionary with the following keys:" +msgstr "ເມື່ອ ``url`` ອ້າງອີງເຖິງ VCS repository, ຕ້ອງມີຄີ ``vcs_info``." + +#: ../source/specifications/direct-url-data-structure.rst:60 +msgid "" +"A ``vcs`` key (type ``string``) MUST be present, containing the name of the " +"VCS (i.e. one of ``git``, ``hg``, ``bzr``, ``svn``). Other VCS's SHOULD be " +"registered by writing a PEP to amend this specification. The ``url`` value " +"MUST be compatible with the corresponding VCS, so an installer can hand it " +"off without transformation to a checkout/download command of the VCS." +msgstr "ຕ້ອງມີຄີ ``vcs`` ທີ່ລະບຸຊື່ຂອງ VCS (ເຊັ່ນ: ``git``, ``hg``, ``bzr``, ``svn``)." + +#: ../source/specifications/direct-url-data-structure.rst:66 +msgid "" +"A ``requested_revision`` key (type ``string``) MAY be present naming a " +"branch/tag/ref/commit/revision/etc (in a format compatible with the VCS). " +"This field MUST match the revision requested by the user and MUST NOT exist " +"when the user did not select a specific revision." +msgstr "ອາດຈະມີຄີ ``requested_revision`` ເພື່ອລະບຸ branch/tag/commit ທີ່ຮ້ອງຂໍ." + +#: ../source/specifications/direct-url-data-structure.rst:70 +msgid "" +"A ``commit_id`` key (type ``string``) MUST be present, containing the exact " +"commit/revision number that was/is to be installed. If the VCS supports " +"commit-hash based revision identifiers, such commit-hash MUST be used as " +"``commit_id`` in order to reference an immutable version of the source code." +msgstr "ຕ້ອງມີຄີ ``commit_id`` ເຊິ່ງລະບຸເລກ commit/revision ທີ່ແນ່ນອນ." + +#: ../source/specifications/direct-url-data-structure.rst:80 +msgid "Archive URLs" +msgstr "Archive URLs (URL ຂອງໄຟລ໌ບີບອັດ)" + +#: ../source/specifications/direct-url-data-structure.rst:82 +msgid "" +"When ``url`` refers to a source archive or a wheel, the ``archive_info`` key " +"MUST be present as a dictionary with the following keys:" +msgstr "ເມື່ອ ``url`` ອ້າງອີງເຖິງ source archive ຫຼື wheel, ຕ້ອງມີຄີ ``archive_info``." + +#: ../source/specifications/direct-url-data-structure.rst:85 +msgid "" +"A ``hashes`` key SHOULD be present as a dictionary mapping a hash name to a " +"hex encoded digest of the file." +msgstr "ຄວນມີຄີ ``hashes`` ເຊິ່ງເປັນ dictionary ທີ່ຈັບຄູ່ຊື່ຂອງ hash ກັບຄ່າ digest ຂອງໄຟລ໌." + +#: ../source/specifications/direct-url-data-structure.rst:88 +msgid "" +"Multiple hashes can be included, and it is up to the consumer to decide what " +"to do with multiple hashes (it may validate all of them or a subset of them, " +"or nothing at all)." +msgstr "ສາມາດລວມເອົາຫຼາຍ hash ໄດ້." + +#: ../source/specifications/direct-url-data-structure.rst:92 +msgid "These hash names SHOULD always be normalized to be lowercase." +msgstr "ຊື່ hash ເຫຼົ່ານີ້ຄວນຈະຖືກປັບໃຫ້ເປັນຕົວພິມນ້ອຍສະເໝີ." + +#: ../source/specifications/direct-url-data-structure.rst:94 +msgid "" +"Any hash algorithm available via :py:mod:`hashlib` (specifically any that " +"can be passed to :py:func:`hashlib.new()` and do not require additional " +"parameters) can be used as a key for the hashes dictionary. At least one " +"secure algorithm from :py:data:`hashlib.algorithms_guaranteed` SHOULD always " +"be included. At time of writing, ``sha256`` specifically is recommended." +msgstr "ສາມາດໃຊ້ອັນກໍລິທຶມ hash ໃດກໍໄດ້ທີ່ມີໃນ :py:mod:`hashlib`. ແນະນຳໃຫ້ໃຊ້ ``sha256``." + +#: ../source/specifications/direct-url-data-structure.rst:100 +msgid "" +"A deprecated ``hash`` key (type ``string``) MAY be present for backwards " +"compatibility purposes, with value ``=``." +msgstr "ອາດມີຄີ ``hash`` ທີ່ຖືກຍົກເລີກແລ້ວ ເພື່ອຄວາມເຂົ້າກັນໄດ້ກັບເວີຊັນເກົ່າ." + +#: ../source/specifications/direct-url-data-structure.rst:103 +msgid "" +"Producers of the data structure SHOULD emit the ``hashes`` key whether one " +"or multiple hashes are available. Producers SHOULD continue to emit the " +"``hash`` key in contexts where they did so before, so as to keep backwards " +"compatibility for existing clients." +msgstr "ຜູ້ສ້າງໂຄງສ້າງຂໍ້ມູນຄວນລະບຸຄີ ``hashes`` ບໍ່ວ່າຈະມີ hash ດຽວ ຫຼື ຫຼາຍອັນກໍຕາມ." + +#: ../source/specifications/direct-url-data-structure.rst:107 +msgid "" +"When both the ``hash`` and ``hashes`` keys are present, the hash represented " +"in the ``hash`` key MUST also be present in the ``hashes`` dictionary, so " +"consumers can consider the ``hashes`` key only if it is present, and fall " +"back to ``hash`` otherwise." +msgstr "ເມື່ອມີທັງຄີ ``hash`` ແລະ ``hashes``, ຄ່າໃນ ``hash`` ຕ້ອງມີຢູ່ໃນ ``hashes`` ຄືກັນ." + +#: ../source/specifications/direct-url-data-structure.rst:114 +msgid "Local directories" +msgstr "ໂຟນເດີພາຍໃນເຄື່ອງ (Local directories)" + +#: ../source/specifications/direct-url-data-structure.rst:116 +msgid "" +"When ``url`` refers to a local directory, the ``dir_info`` key MUST be " +"present as a dictionary with the following key:" +msgstr "ເມື່ອ ``url`` ອ້າງອີງເຖິງໂຟນເດີພາຍໃນເຄື່ອງ, ຕ້ອງມີຄີ ``dir_info``." + +#: ../source/specifications/direct-url-data-structure.rst:119 +msgid "" +"``editable`` (type: ``boolean``): ``true`` if the distribution was/is to be " +"installed in editable mode, ``false`` otherwise. If absent, default to " +"``false``." +msgstr "" +"``editable``: ເປັນ ``true`` ຖ້າຕິດຕັ້ງໃນໂໝດທີ່ສາມາດແກ້ໄຂໄດ້ (editable mode), " +"ຖ້າບໍ່ມີໃຫ້ຖືວ່າເປັນ ``false``." + +#: ../source/specifications/direct-url-data-structure.rst:122 +msgid "" +"When ``url`` refers to a local directory, it MUST have the ``file`` scheme " +"and be compliant with :rfc:`8089`. In particular, the path component must be " +"absolute. Symbolic links SHOULD be preserved when making relative paths " +"absolute." +msgstr "" +"ເມື່ອ ``url`` ອ້າງອີງເຖິງໂຟນເດີພາຍໃນເຄື່ອງ, ມັນຕ້ອງໃຊ້ ``file`` ແລະ " +"ເປັນໄປຕາມ :rfc:`8089`." + +#: ../source/specifications/direct-url-data-structure.rst:130 +msgid "Projects in subdirectories" +msgstr "ໂຄງການໃນໂຟນເດີຍ່ອຍ" + +#: ../source/specifications/direct-url-data-structure.rst:132 +msgid "" +"A top-level ``subdirectory`` field MAY be present containing a directory " +"path, relative to the root of the VCS repository, source archive or local " +"directory, to specify where ``pyproject.toml`` or ``setup.py`` is located." +msgstr "" +"ອາດມີຊ່ອງຂໍ້ມູນ ``subdirectory`` ເພື່ອລະບຸວ່າ ``pyproject.toml`` ຫຼື ``setup.py`` ຢູ່ໃສ." + +#: ../source/specifications/direct-url-data-structure.rst:139 +msgid "Registered VCS" +msgstr "VCS ທີ່ລົງທະບຽນໄວ້" + +#: ../source/specifications/direct-url-data-structure.rst:141 +msgid "" +"This section lists the registered VCS's; expanded, VCS-specific information " +"on how to use the ``vcs``, ``requested_revision``, and other fields of " +"``vcs_info``; and in some cases additional VCS-specific fields. Tools MAY " +"support other VCS's although it is RECOMMENDED to register them by writing a " +"PEP to amend this specification. The ``vcs`` field SHOULD be the command " +"name (lowercased). Additional fields that would be necessary to support such " +"VCS SHOULD be prefixed with the VCS command name." +msgstr "ສ່ວນນີ້ສະແດງລາຍຊື່ VCS ທີ່ລົງທະບຽນໄວ້ ແລະ ວິທີການນຳໃຊ້." + +#: ../source/specifications/direct-url-data-structure.rst:151 +msgid "Git" +msgstr "Git" + +#: ../source/specifications/direct-url-data-structure.rst:154 +#: ../source/specifications/direct-url-data-structure.rst:181 +#: ../source/specifications/direct-url-data-structure.rst:199 +#: ../source/specifications/direct-url-data-structure.rst:217 +msgid "Home page" +msgstr "ໜ້າຫຼັກ" + +#: ../source/specifications/direct-url-data-structure.rst:154 +msgid "https://git-scm.com/" +msgstr "https://git-scm.com/" + +#: ../source/specifications/direct-url-data-structure.rst:157 +#: ../source/specifications/direct-url-data-structure.rst:184 +#: ../source/specifications/direct-url-data-structure.rst:202 +#: ../source/specifications/direct-url-data-structure.rst:220 +msgid "vcs command" +msgstr "ຄຳສັ່ງ vcs" + +#: ../source/specifications/direct-url-data-structure.rst:157 +#: ../source/specifications/direct-url-data-structure.rst:160 +msgid "git" +msgstr "git" + +#: ../source/specifications/direct-url-data-structure.rst:160 +#: ../source/specifications/direct-url-data-structure.rst:187 +#: ../source/specifications/direct-url-data-structure.rst:205 +#: ../source/specifications/direct-url-data-structure.rst:223 +msgid "``vcs`` field" +msgstr "ຊ່ອງຂໍ້ມູນ ``vcs``" + +#: ../source/specifications/direct-url-data-structure.rst:164 +#: ../source/specifications/direct-url-data-structure.rst:190 +#: ../source/specifications/direct-url-data-structure.rst:208 +#: ../source/specifications/direct-url-data-structure.rst:227 +msgid "``requested_revision`` field" +msgstr "ຊ່ອງຂໍ້ມູນ ``requested_revision``" + +#: ../source/specifications/direct-url-data-structure.rst:163 +msgid "" +"A tag name, branch name, Git ref, commit hash, shortened commit hash, or " +"other commit-ish." +msgstr "ຊື່ tag, ຊື່ branch, Git ref, commit hash ຫຼື ອື່ນໆ." + +#: ../source/specifications/direct-url-data-structure.rst:167 +#: ../source/specifications/direct-url-data-structure.rst:193 +#: ../source/specifications/direct-url-data-structure.rst:211 +#: ../source/specifications/direct-url-data-structure.rst:232 +msgid "``commit_id`` field" +msgstr "ຊ່ອງຂໍ້ມູນ ``commit_id``" + +#: ../source/specifications/direct-url-data-structure.rst:167 +msgid "A commit hash (40 hexadecimal characters sha1)." +msgstr "commit hash (ຕົວອັກສອນເລກຖານສິບຫົກ 40 ຕົວ)." + +#: ../source/specifications/direct-url-data-structure.rst:171 +msgid "" +"Tools can use the ``git show-ref`` and ``git symbolic-ref`` commands to " +"determine if the ``requested_revision`` corresponds to a Git ref. In turn, a " +"ref beginning with ``refs/tags/`` corresponds to a tag, and a ref beginning " +"with ``refs/remotes/origin/`` after cloning corresponds to a branch." +msgstr "ເຄື່ອງມືສາມາດໃຊ້ຄຳສັ່ງ ``git show-ref`` ເພື່ອກວດສອບ Git ref ໄດ້." + +#: ../source/specifications/direct-url-data-structure.rst:178 +msgid "Mercurial" +msgstr "Mercurial" + +#: ../source/specifications/direct-url-data-structure.rst:181 +msgid "https://www.mercurial-scm.org/" +msgstr "https://www.mercurial-scm.org/" + +#: ../source/specifications/direct-url-data-structure.rst:184 +#: ../source/specifications/direct-url-data-structure.rst:187 +msgid "hg" +msgstr "hg" + +#: ../source/specifications/direct-url-data-structure.rst:190 +msgid "A tag name, branch name, changeset ID, shortened changeset ID." +msgstr "ຊື່ tag, ຊື່ branch, changeset ID." + +#: ../source/specifications/direct-url-data-structure.rst:193 +msgid "A changeset ID (40 hexadecimal characters)." +msgstr "changeset ID (ຕົວອັກສອນເລກຖານສິບຫົກ 40 ຕົວ)." + +#: ../source/specifications/direct-url-data-structure.rst:196 +msgid "Bazaar" +msgstr "Bazaar" + +#: ../source/specifications/direct-url-data-structure.rst:199 +msgid "https://www.breezy-vcs.org/" +msgstr "https://www.breezy-vcs.org/" + +#: ../source/specifications/direct-url-data-structure.rst:202 +#: ../source/specifications/direct-url-data-structure.rst:205 +msgid "bzr" +msgstr "bzr" + +#: ../source/specifications/direct-url-data-structure.rst:208 +msgid "A tag name, branch name, revision id." +msgstr "ຊື່ tag, ຊື່ branch, revision id." + +#: ../source/specifications/direct-url-data-structure.rst:211 +msgid "A revision id." +msgstr "revision id." + +#: ../source/specifications/direct-url-data-structure.rst:214 +msgid "Subversion" +msgstr "" + +#: ../source/specifications/direct-url-data-structure.rst:217 +msgid "https://subversion.apache.org/" +msgstr "" + +#: ../source/specifications/direct-url-data-structure.rst:220 +#: ../source/specifications/direct-url-data-structure.rst:223 +msgid "svn" +msgstr "svn" + +#: ../source/specifications/direct-url-data-structure.rst:226 +msgid "" +"``requested_revision`` must be compatible with ``svn checkout`` ``--" +"revision`` option. In Subversion, branch or tag is part of ``url``." +msgstr "" +"``requested_revision`` ຕ້ອງເຂົ້າກັນໄດ້ກັບຕົວເລືອກ ``--revision`` ຂອງ ``svn " +"checkout``." + +#: ../source/specifications/direct-url-data-structure.rst:230 +msgid "" +"Since Subversion does not support globally unique identifiers, this field is " +"the Subversion revision number in the corresponding repository." +msgstr "ເນື່ອງຈາກ Subversion ບໍ່ຮອງຮັບຕົວລະບຸທີ່ເປັນເອກະລັກທົ່ວໂລກ, ຊ່ອງນີ້ຈຶ່ງແມ່ນເລກ revision." + +#: ../source/specifications/direct-url-data-structure.rst:235 +msgid "JSON Schema" +msgstr "JSON Schema" + +#: ../source/specifications/direct-url-data-structure.rst:237 +msgid "" +"The following JSON Schema can be used to validate the contents of " +"``direct_url.json``:" +msgstr "JSON Schema ຕໍ່ໄປນີ້ສາມາດໃຊ້ເພື່ອມວດສອບເນື້ອຫາຂອງ ``direct_url.json``:" + +#: ../source/specifications/direct-url-data-structure.rst:244 +msgid "Source archive:" +msgstr "Source archive:" + +#: ../source/specifications/direct-url-data-structure.rst:257 +msgid "Git URL with tag and commit-hash:" +msgstr "Git URL ພ້ອມ tag ແລະ commit-hash:" + +#: ../source/specifications/direct-url-data-structure.rst:270 +msgid "Local directory:" +msgstr "ໂຟນເດີພາຍໃນເຄື່ອງ:" + +#: ../source/specifications/direct-url-data-structure.rst:279 +msgid "Local directory in editable mode:" +msgstr "ໂຟນເດີພາຍໃນເຄື່ອງໃນໂໝດ editable:" + +#: ../source/specifications/direct-url-data-structure.rst:294 +msgid "" +"March 2020: This specification was approved through :pep:`610`, defining the " +"``direct_url.json`` metadata file." +msgstr "ມີນາ 2020: ຂໍ້ກຳນົດນີ້ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`610`." + +#: ../source/specifications/direct-url-data-structure.rst:296 +msgid "" +"January 2023: Added the ``archive_info.hashes`` key (`discussion `_)." +msgstr "ມັງກອນ 2023: ເພີ່ມຄີ ``archive_info.hashes``." + +#: ../source/specifications/entry-points.rst:5 +msgid "Entry points specification" +msgstr "ຂໍ້ກຳນົດ Entry points" + +#: ../source/specifications/entry-points.rst:7 +msgid "" +"*Entry points* are a mechanism for an installed distribution to advertise " +"components it provides to be discovered and used by other code. For example:" +msgstr "" +"*Entry points* ແມ່ນກົນໄກສຳລັບຊຸດໂປຣແກຣມທີ່ຕິດຕັ້ງແລ້ວ ເພື່ອປະກາດສ່ວນປະກອບ ທີ່ມັນສະໜອງໃຫ້ " +"ເພື່ອໃຫ້ໂຄ້ດອື່ນໆ ສາມາດຄົ້ນຫາ ແລະ ນຳໃຊ້ໄດ້. ຕົວຢ່າງ:" + +#: ../source/specifications/entry-points.rst:11 +msgid "" +"Distributions can specify ``console_scripts`` entry points, each referring " +"to a function. When *pip* (or another console_scripts aware installer) " +"installs the distribution, it will create a command-line wrapper for each " +"entry point." +msgstr "" +"ຊຸດໂປຣແກຣມສາມາດລະບຸ entry points ຂອງ ``console_scripts``, ເຊິ່ງແຕ່ລະອັນຈະ " +"ອ້າງອີງເຖິງຟັງຊັນໃດໜຶ່ງ. ເມື່ອ *pip* ຕິດຕັ້ງຊຸດໂປຣແກຣມ, ມັນຈະສ້າງ command-line wrapper " +"ໃຫ້ສຳລັບແຕ່ລະ entry point." + +#: ../source/specifications/entry-points.rst:14 +msgid "" +"Applications can use entry points to load plugins; e.g. Pygments (a syntax " +"highlighting tool) can use additional lexers and styles from separately " +"installed packages. For more about this, see :doc:`/guides/creating-and-" +"discovering-plugins`." +msgstr "" +"ແອັບພລິເຄຊັນສາມາດໃຊ້ entry points ເພື່ອໂຫລດປັກອິນ; ຕົວຢ່າງ: Pygments (ເຄື່ອງມືເນັ້ນ syntax) " +"ສາມາດໃຊ້ lexers ແລະ styles ເພີ່ມເຕີມຈາກແພັກເກດທີ່ຕິດຕັ້ງແຍກຕ່າງຫາກ. ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ, " +"ເບິ່ງ :doc:`/guides/creating-and-discovering-plugins`." + +#: ../source/specifications/entry-points.rst:19 +msgid "" +"The entry point file format was originally developed to allow packages built " +"with setuptools to provide integration point metadata that would be read at " +"runtime with :py:mod:`importlib.metadata`. It is now defined as a PyPA " +"interoperability specification in order to allow build tools other than " +"``setuptools`` to publish :py:mod:`importlib.metadata` compatible entry " +"point metadata, and runtime libraries other " +"than :py:mod:`importlib.metadata` to portably read published entry point " +"metadata (potentially with different caching and conflict resolution " +"strategies)." +msgstr "" +"ຮູບແບບໄຟລ໌ entry point ໄດ້ຖືກພັດທະນາຂຶ້ນໃນເບື້ອງຕົ້ນເພື່ອໃຫ້ແພັກເກດທີ່ສ້າງດ້ວຍ setuptools " +"ສາມາດສະໜອງຂໍ້ມູນເມຕາຈຸດເຊື່ອມຕໍ່ທີ່ຈະຖືກອ່ານໃນເວລາເຮັດວຽກດ້ວຍ :py:mod:`importlib.metadata`. " +"ປະຈຸບັນມັນຖືກກຳນົດເປັນຂໍ້ກຳນົດການເຮັດວຽກຮ່ວມກັນຂອງ PyPA ເພື່ອໃຫ້ເຄື່ອງມືສ້າງອື່ນໆນອກເໜືອຈາກ " +"``setuptools`` ສາມາດເຜີຍແຜ່ຂໍ້ມູນເມຕາ entry point " +"ທີ່ເຂົ້າກັນໄດ້ກັບ :py:mod:`importlib.metadata`, ແລະ " +"ໄລບຣາຣີເວລາເຮັດວຽກອື່ນໆນອກເໜືອຈາກ :py:mod:`importlib.metadata` ສາມາດອ່ານຂໍ້ມູນເມຕາ " +"entry point ທີ່ເຜີຍແຜ່ໄດ້ຢ່າງສະດວກ (ອາດຈະມີກົນໄກການເຮັດ cache ແລະ " +"ການແກ້ໄຂຂໍ້ຂັດແຍ່ງທີ່ແຕກຕ່າງກັນ)." + +#: ../source/specifications/entry-points.rst:28 +msgid "Data model" +msgstr "ແບບຈຳລອງຂໍ້ມູນ" + +#: ../source/specifications/entry-points.rst:30 +msgid "Conceptually, an entry point is defined by three required properties:" +msgstr "ຕາມຫຼັກການແລ້ວ, entry point ຖືກກຳນົດໂດຍສາມຄຸນສົມບັດທີ່ຈຳເປັນ:" + +#: ../source/specifications/entry-points.rst:32 +msgid "" +"The **group** that an entry point belongs to indicates what sort of object " +"it provides. For instance, the group ``console_scripts`` is for entry points " +"referring to functions which can be used as a command, while " +"``pygments.styles`` is the group for classes defining pygments styles. The " +"consumer typically defines the expected interface. To avoid clashes, " +"consumers defining a new group should use names starting with a PyPI name " +"owned by the consumer project, followed by ``.``. Group names must be one or " +"more groups of letters, numbers and underscores, separated by dots (regex " +"``^\\w+(\\.\\w+)*$``)." +msgstr "" +"**ກຸ່ມ (group)** ທີ່ entry point ສັງກັດຢູ່ຈະບົ່ງບອກເຖິງປະເພດຂອງວັດຖຸທີ່ມັນສະໜອງໃຫ້. ຕົວຢ່າງ, ກຸ່ມ " +"``console_scripts`` ແມ່ນສຳລັບ entry points ທີ່ອ້າງອີງເຖິງຟັງຊັນທີ່ສາມາດໃຊ້ເປັນຄຳສັ່ງໄດ້, " +"ໃນຂະນະທີ່ ``pygments.styles`` ແມ່ນກຸ່ມສຳລັບຄລາດທີ່ກຳນົດຮູບແບບຂອງ pygments. ໂດຍປົກກະຕິແລ້ວ " +"ຜູ້ໃຊ້ (consumer) ຈະເປັນຜູ້ກຳນົດອິນເຕີເຟດທີ່ຕ້ອງການ. ເພື່ອຫຼີກເວັ້ນການຊໍ້າຊ້ອນ, " +"ຜູ້ໃຊ້ທີ່ກຳນົດກຸ່ມໃໝ່ຄວນໃຊ້ຊື່ທີ່ຂຶ້ນຕົ້ນດ້ວຍຊື່ PyPI ທີ່ເປັນເຈົ້າຂອງໂດຍໂຄງການນັ້ນ, ຕາມດ້ວຍ ``.``. " +"ຊື່ກຸ່ມຕ້ອງປະກອບດ້ວຍກຸ່ມຂອງຕົວອັກສອນ, ຕົວເລກ ແລະ ເຄື່ອງໝາຍຂີດກ້ອງ ຢ່າງໜ້ອຍໜຶ່ງກຸ່ມ, ແຍກກັນດ້ວຍຈຸດ " +"(regex ``^\\w+(\\.\\w+)*$``)." + +#: ../source/specifications/entry-points.rst:42 +msgid "" +"The **name** identifies this entry point within its group. The precise " +"meaning of this is up to the consumer. For console scripts, the name of the " +"entry point is the command that will be used to launch it. Within a " +"distribution, entry point names should be unique. If different distributions " +"provide the same name, the consumer decides how to handle such conflicts. " +"The name may contain any characters except ``=``, but it cannot start or end " +"with any whitespace character, or start with ``[``. For new entry points, it " +"is recommended to use only letters, numbers, underscores, dots and dashes " +"(regex ``[\\w.-]+``)." +msgstr "" +"**ຊື່ (name)** ລະບຸ entry point ນີ້ພາຍໃນກຸ່ມຂອງມັນ. ຄວາມໝາຍທີ່ແນ່ນອນແມ່ນຂຶ້ນກັບຜູ້ໃຊ້. ສຳລັບ " +"console scripts, ຊື່ຂອງ entry point ແມ່ນຄຳສັ່ງທີ່ຈະຖືກໃຊ້ເພື່ອເປີດມັນ. ພາຍໃນການແຈກຢາຍ " +"(distribution) ໜຶ່ງ, ຊື່ entry point ຄວນຈະບໍ່ຊໍ້າກັນ. ຖ້າການແຈກຢາຍທີ່ແຕກຕ່າງກັນໃຫ້ຊື່ດຽວກັນ, " +"ຜູ້ໃຊ້ຈະເປັນຜູ້ຕັດສິນໃຈວ່າຈະຈັດການກັບຂໍ້ຂັດແຍ່ງດັ່ງກ່າວແນວໃດ. ຊື່ອາດຈະມີຕົວອັກສອນໃດໆກໍໄດ້ຍົກເວັ້ນ ``=``, " +"ແຕ່ມັນບໍ່ສາມາດຂຶ້ນຕົ້ນ ຫຼື ລົງທ້າຍດ້ວຍຊ່ອງຫວ່າງ, ຫຼື ຂຶ້ນຕົ້ນດ້ວຍ ``[``. ສຳລັບ entry points ໃໝ່, " +"ແນະນຳໃຫ້ໃຊ້ສະເພາະຕົວອັກສອນ, ຕົວເລກ, ເຄື່ອງໝາຍຂີດກ້ອງ, ຈຸດ ແລະ ຂີດຕໍ່ (regex ``[\\w.-]+``)." + +#: ../source/specifications/entry-points.rst:51 +msgid "" +"The **object reference** points to a Python object. It is either in the form " +"``importable.module``, or ``importable.module:object.attr``. Each of the " +"parts delimited by dots and the colon is a valid Python identifier. It is " +"intended to be looked up like this::" +msgstr "" +"**ການອ້າງອີງວັດຖຸ (object reference)** ຊີ້ໄປຫາວັດຖຸ Python. ມັນຈະຢູ່ໃນຮູບແບບ " +"``importable.module`` ຫຼື ``importable.module:object.attr``. ແຕ່ລະສ່ວນທີ່ແຍກດ້ວຍຈຸດ " +"ແລະ ຈໍ້າສອງເມັດແມ່ນຕົວລະບຸ Python ທີ່ຖືກຕ້ອງ. ມັນຖືກອອກແບບມາເພື່ອໃຫ້ຄົ້ນຫາແບບນີ້::" + +#: ../source/specifications/entry-points.rst:64 +msgid "" +"Some tools call this kind of object reference by itself an 'entry point', " +"for want of a better term, especially where it points to a function to " +"launch a program." +msgstr "" +"ເຄື່ອງມືບາງຢ່າງເອີ້ນການອ້າງອີງວັດຖຸປະເພດນີ້ວ່າ 'entry point' ດ້ວຍຕົວມັນເອງ, ຍ້ອນຂາດຄຳສັບທີ່ດີກວ່າ, " +"ໂດຍສະເພາະໃນບ່ອນທີ່ມັນຊີ້ໄປຫາຟັງຊັນເພື່ອເປີດໂປຣແກຣມ." + +#: ../source/specifications/entry-points.rst:68 +msgid "" +"There is also an optional property: the **extras** are a set of strings " +"identifying optional features of the distribution providing the entry point. " +"If these are specified, the entry point requires the dependencies of those " +"'extras'. See the metadata field :ref:`metadata_provides_extra`." +msgstr "" +"ນອກນັ້ນຍັງມີຄຸນສົມບັດເສີມ: **extras** ແມ່ນຊຸດຂອງຂໍ້ຄວາມທີ່ລະບຸຄຸນສົມບັດເສີມຂອງການແຈກຢາຍທີ່ໃຫ້ " +"entry point. ຖ້າສິ່ງເຫຼົ່ານີ້ຖືກກຳນົດ, entry point ຈະຕ້ອງການ dependencies ຂອງ 'extras' " +"ເຫຼົ່ານັ້ນ. ເບິ່ງຟີວຂໍ້ມູນເມຕາ :ref:`metadata_provides_extra`." + +#: ../source/specifications/entry-points.rst:73 +msgid "" +"Using extras for an entry point is no longer recommended. Consumers should " +"support parsing them from existing distributions, but may then ignore them. " +"New publishing tools need not support specifying extras. The functionality " +"of handling extras was tied to setuptools' model of managing 'egg' packages, " +"but newer tools such as pip and virtualenv use a different model." +msgstr "" +"ການໃຊ້ extras ສຳລັບ entry point ແມ່ນບໍ່ຖືກແນະນຳອີກຕໍ່ໄປ. ຜູ້ໃຊ້ຄວນຮອງຮັບການວິເຄາະ " +"(parsing) ພວກມັນຈາກການແຈກຢາຍທີ່ມີຢູ່, ແຕ່ຫຼັງຈາກນັ້ນອາດຈະລະເລີຍພວກມັນ. " +"ເຄື່ອງມືການເຜີຍແຜ່ໃໝ່ບໍ່ຈຳເປັນຕ້ອງຮອງຮັບ ການກຳນົດ extras. ຟັງຊັນການຈັດການ extras " +"ເຄີຍຖືກຜູກມັດກັບແບບຈຳລອງຂອງ setuptools ໃນການຈັດການ ແພັກເກດ 'egg', ແຕ່ເຄື່ອງມືໃໝ່ໆເຊັ່ນ pip " +"ແລະ virtualenv ໃຊ້ແບບຈຳລອງທີ່ແຕກຕ່າງກັນ." + +#: ../source/specifications/entry-points.rst:80 +msgid "File format" +msgstr "ຮູບແບບໄຟລ໌" + +#: ../source/specifications/entry-points.rst:82 +msgid "" +"Entry points are defined in a file called :file:`entry_points.txt` in " +"the :file:`*.dist-info` directory of the distribution. This is the directory " +"described in :ref:`recording-installed-packages` for installed " +"distributions, and in :ref:`binary-distribution-format` for wheels. The file " +"uses the UTF-8 character encoding." +msgstr "" +"Entry points ຖືກກຳນົດໄວ້ໃນໄຟລ໌ທີ່ຊື່ວ່າ :file:`entry_points.txt` " +"ໃນໄດເຣັກທໍຣີ :file:`*.dist-info` ຂອງການແຈກຢາຍ. " +"ນີ້ແມ່ນໄດເຣັກທໍຣີທີ່ຖືກອະທິບາຍໄວ້ໃນ :ref:`recording-installed-packages` " +"ສຳລັບການແຈກຢາຍທີ່ຕິດຕັ້ງແລ້ວ, ແລະ ໃນ :ref:`binary-distribution-format` ສຳລັບ wheels. " +"ໄຟລ໌ນີ້ໃຊ້ການເຂົ້າລະຫັດຕົວອັກສອນ UTF-8." + +#: ../source/specifications/entry-points.rst:88 +msgid "" +"The file contents are in INI format, as read by Python's :mod:`configparser` " +"module. However, configparser treats names as case-insensitive by default, " +"whereas entry point names are case sensitive. A case-sensitive config parser " +"can be made like this::" +msgstr "" +"ເນື້ອໃນຂອງໄຟລ໌ຢູ່ໃນຮູບແບບ INI, ເຊິ່ງອ່ານໂດຍໂມດູນ :mod:`configparser` ຂອງ Python. " +"ແນວໃດກໍຕາມ, configparser ຈະຖືວ່າຊື່ບໍ່ຈຳແນກຕົວອັກສອນນ້ອຍ-ໃຫຍ່ (case-insensitive) " +"ໂດຍຄ່າເລີ່ມຕົ້ນ, ໃນຂະນະທີ່ຊື່ entry point ແມ່ນຈຳແນກຕົວອັກສອນນ້ອຍ-ໃຫຍ່ (case sensitive). " +"config parser ທີ່ຈຳແນກຕົວອັກສອນນ້ອຍ-ໃຫຍ່ສາມາດສ້າງໄດ້ແບບນີ້::" + +#: ../source/specifications/entry-points.rst:98 +msgid "" +"The entry points file must always use ``=`` to delimit names from values " +"(whereas configparser also allows using ``:``)." +msgstr "" +"ໄຟລ໌ entry points ຕ້ອງໃຊ້ ``=`` ສະເໝີເພື່ອແຍກຊື່ອອກຈາກຄ່າ (ໃນຂະນະທີ່ configparser " +"ຍັງອະນຸຍາດໃຫ້ໃຊ້ ``:`` ໄດ້)." + +#: ../source/specifications/entry-points.rst:101 +msgid "" +"The sections of the config file represent entry point groups, the names are " +"names, and the values encode both the object reference and the optional " +"extras. If extras are used, they are a comma-separated list inside square " +"brackets." +msgstr "" +"ສ່ວນ (sections) ຂອງໄຟລ໌ config ແທນກຸ່ມ entry point, ຊື່ແມ່ນຊື່, ແລະ " +"ຄ່າຈະເຂົ້າລະຫັດທັງການອ້າງອີງວັດຖຸ ແລະ extras ທີ່ເປັນທາງເລືອກ. ຖ້າໃຊ້ extras, " +"ພວກມັນຈະເປັນລາຍການທີ່ແຍກດ້ວຍຈຸດພາຍໃນວົງເລັບຫຼ່ຽມ." + +#: ../source/specifications/entry-points.rst:105 +msgid "" +"Within a value, readers must accept and ignore spaces (including multiple " +"consecutive spaces) before or after the colon, between the object reference " +"and the left square bracket, between the extra names and the square brackets " +"and colons delimiting them, and after the right square bracket. The syntax " +"for extras is formally specified in :ref:`dependency-specifiers`. For tools " +"writing the file, it is recommended only to insert a space between the " +"object reference and the left square bracket." +msgstr "" +"ພາຍໃນຄ່າໃດໜຶ່ງ, ຕົວອ່ານຕ້ອງຍອມຮັບ ແລະ ລະເລີຍຊ່ອງຫວ່າງ (ລວມທັງຊ່ອງຫວ່າງຫຼາຍອັນຕິດຕໍ່ກັນ) ກ່ອນ ຫຼື " +"ຫຼັງຈໍ້າສອງເມັດ, ລະຫວ່າງການອ້າງອີງວັດຖຸ ແລະ ວົງເລັບຫຼ່ຽມເປີດ, ລະຫວ່າງຊື່ extra ແລະ ວົງເລັບຫຼ່ຽມ ຫຼື " +"ຈໍ້າສອງເມັດທີ່ແຍກພວກມັນ, ແລະ ຫຼັງວົງເລັບຫຼ່ຽມປິດ. ໄວຍາກອນສຳລັບ extras " +"ຖືກກຳນົດຢ່າງເປັນທາງການໃນ :ref:`dependency-specifiers`. ສຳລັບເຄື່ອງມືທີ່ຂຽນໄຟລ໌, " +"ແນະນຳໃຫ້ໃສ່ຊ່ອງຫວ່າງສະເພາະລະຫວ່າງການອ້າງອີງວັດຖຸ ແລະ ວົງເລັບຫຼ່ຽມເປີດເທົ່ານັ້ນ." + +#: ../source/specifications/entry-points.rst:127 +msgid "Use for scripts" +msgstr "ການໃຊ້ສຳລັບສະຄຣິບ" + +#: ../source/specifications/entry-points.rst:129 +msgid "" +"Two groups of entry points have special significance in packaging: " +"``console_scripts`` and ``gui_scripts``. In both groups, the name of the " +"entry point should be usable as a command in a system shell after the " +"package is installed. The object reference points to a function which will " +"be called with no arguments when this command is run. The function may " +"return an integer to be used as a process exit code, and returning ``None`` " +"is equivalent to returning ``0``." +msgstr "" +"ຈຸດເຂົ້າເຖິງສອງກຸ່ມທີ່ມີຄວາມສຳຄັນເປັນພິເສດໃນການເຮັດແພັກເກດຄື: ``console_scripts`` ແລະ " +"``gui_scripts``. ໃນທັງສອງກຸ່ມນີ້, ຊື່ຂອງຈຸດເຂົ້າເຖິງຄວນຈະສາມາດໃຊ້ເປັນຄຳສັ່ງໃນ shell " +"ຂອງລະບົບໄດ້ຫຼັງຈາກຕິດຕັ້ງແພັກເກດແລ້ວ. " +"ການອ້າງອີງອອບເຈັກຈະຊີ້ໄປຫາຟັງຊັນທີ່ຈະຖືກເອີ້ນໃຊ້ໂດຍບໍ່ມີອາຄິວເມນເມື່ອຄຳສັ່ງນີ້ຖືກລັນ. " +"ຟັງຊັນອາດຈະສົ່ງຄືນຄ່າເປັນເລກຖ້ວນເພື່ອໃຊ້ເປັນລະຫັດການອອກຂອງໂປຣເຊສ, ແລະ ການສົ່ງຄືນຄ່າ ``None`` " +"ແມ່ນທຽບເທົ່າກັບການສົ່ງຄືນຄ່າ ``0``." + +#: ../source/specifications/entry-points.rst:137 +msgid "" +"For instance, the entry point ``mycmd = mymod:main`` would create a command " +"``mycmd`` launching a script like this::" +msgstr "" +"ຕົວຢ່າງ, entry point ``mycmd = mymod:main`` ຈະສ້າງຄຳສັ່ງ ``mycmd`` " +"ທີ່ເປີດໃຊ້ສະຄຣິບແບບນີ້::" + +#: ../source/specifications/entry-points.rst:144 +msgid "" +"The difference between ``console_scripts`` and ``gui_scripts`` only affects " +"Windows systems. ``console_scripts`` are wrapped in a console executable, so " +"they are attached to a console and can " +"use :py:data:`sys.stdin`, :py:data:`sys.stdout` and :py:data:`sys.stderr` " +"for input and output. ``gui_scripts`` are wrapped in a GUI executable, so " +"they can be started without a console, but cannot use standard streams " +"unless application code redirects them. Other platforms do not have the same " +"distinction." +msgstr "" +"ຄວາມແຕກຕ່າງລະຫວ່າງ ``console_scripts`` ແລະ ``gui_scripts`` ມີຜົນສະເພາະກັບລະບົບ " +"Windows ເທົ່ານັ້ນ. ``console_scripts`` ຈະຖືກຫຸ້ມຢູ່ໃນໄຟລ໌ executable ຂອງຄອນໂຊນ, " +"ດັ່ງນັ້ນພວກມັນຈຶ່ງເຊື່ອມຕໍ່ກັບຄອນໂຊນ ແລະ " +"ສາມາດໃຊ້ :py:data:`sys.stdin`, :py:data:`sys.stdout` " +"ແລະ :py:data:`sys.stderr` ສຳລັບການນຳເຂົ້າ ແລະ ການສະແດງຜົນ. ``gui_scripts`` " +"ຈະຖືກຫຸ້ມຢູ່ໃນໄຟລ໌ executable ຂອງ GUI, ດັ່ງນັ້ນພວກມັນຈຶ່ງສາມາດເລີ່ມຕົ້ນໄດ້ໂດຍບໍ່ມີຄອນໂຊນ, " +"ແຕ່ບໍ່ສາມາດໃຊ້ສະຕຣີມມາດຕະຖານໄດ້ ເວັ້ນເສຍແຕ່ລະຫັດແອັບພລິເຄຊັນຈະປ່ຽນທິດທາງ (redirect) ພວກມັນ. " +"ແພລັດຟອມອື່ນໆບໍ່ມີຄວາມແຕກຕ່າງກັນແບບນີ້." + +#: ../source/specifications/entry-points.rst:152 +msgid "" +"Install tools are expected to set up wrappers for both ``console_scripts`` " +"and ``gui_scripts`` in the scripts directory of the install scheme. They are " +"not responsible for putting this directory in the ``PATH`` environment " +"variable which defines where command-line tools are found." +msgstr "" +"ເຄື່ອງມືຕິດຕັ້ງຄາດວ່າຈະຕັ້ງຄ່າ wrappers ສຳລັບທັງ ``console_scripts`` ແລະ ``gui_scripts`` " +"ໃນໄດເຣັກທໍຣີສະຄຣິບຂອງຮູບແບບການຕິດຕັ້ງ. ພວກມັນບໍ່ມີໜ້າທີ່ໃນການເພີ່ມໄດເຣັກທໍຣີນີ້ " +"ເຂົ້າໃນຕົວປ່ຽນສະພາບແວດລ້ອມ ``PATH`` ເຊິ່ງເປັນບ່ອນກຳນົດບ່ອນຢູ່ຂອງເຄື່ອງມື command-line." + +#: ../source/specifications/entry-points.rst:157 +msgid "" +"As files are created from the names, and some filesystems are case-" +"insensitive, packages should avoid using names in these groups which differ " +"only in case. The behaviour of install tools when names differ only in case " +"is undefined." +msgstr "" +"ເນື່ອງຈາກໄຟລ໌ຖືກສ້າງຂຶ້ນຈາກຊື່, ແລະ ລະບົບໄຟລ໌ບາງອັນບໍ່ຈຳແນກຕົວອັກສອນນ້ອຍ-ໃຫຍ່, " +"ແພັກເກດຄວນຫຼີກເວັ້ນການໃຊ້ຊື່ໃນກຸ່ມເຫຼົ່ານີ້ທີ່ແຕກຕ່າງກັນພຽງແຕ່ຕົວອັກສອນນ້ອຍ-ໃຫຍ່. " +"ພຶດຕິກຳຂອງເຄື່ອງມືຕິດຕັ້ງເມື່ອຊື່ແຕກຕ່າງກັນພຽງແຕ່ຕົວອັກສອນນ້ອຍ-ໃຫຍ່ແມ່ນບໍ່ໄດ້ຖືກກຳນົດໄວ້." + +#: ../source/specifications/entry-points.rst:165 +msgid "" +"October 2017: This specification was written to formalize the existing entry " +"points feature of setuptools (discussion_)." +msgstr "" +"ຕຸລາ 2017: ຂໍ້ກຳນົດນີ້ຖືກຂຽນຂຶ້ນເພື່ອເຮັດໃຫ້ຄຸນສົມບັດ entry points ທີ່ມີຢູ່ຂອງ setuptools " +"ເປັນທາງການ (discussion_)." + +#: ../source/specifications/entry-points.rst:168 +msgid "" +"January 2026: Replaced outdated direct references to :pep:`508` " +"and :pep:`685` with a reference to :ref:`dependency-specifiers`." +msgstr "" +"ມັງກອນ 2026: ປ່ຽນການອ້າງອີງໂດຍກົງທີ່ລ້າສະໄໝເຖິງ :pep:`508` ແລະ :pep:`685` " +"ດ້ວຍການອ້າງອີງເຖິງ :ref:`dependency-specifiers`." + +#: ../source/specifications/externally-managed-environments.rst:6 +msgid "Externally Managed Environments" +msgstr "ສະພາບແວດລ້ອມທີ່ຖືກຈັດການຈາກພາຍນອກ" + +#: ../source/specifications/externally-managed-environments.rst:8 +msgid "" +"While some Python installations are entirely managed by the user that " +"installed Python, others may be provided and managed by another means (such " +"as the operating system package manager in a Linux distribution, or as a " +"bundled Python environment in an application with a dedicated installer)." +msgstr "" +"ໃນຂະນະທີ່ການຕິດຕັ້ງ Python ບາງອັນຖືກຈັດການໂດຍຜູ້ໃຊ້ທີ່ຕິດຕັ້ງ Python ເອງທັງໝົດ, " +"ແຕ່ບາງອັນອາດຈະຖືກສະໜອງ ແລະ ຈັດການໂດຍວິທີອື່ນ (ເຊັ່ນ: ຕົວຈັດການແພັກເກດຂອງລະບົບປະຕິບັດການ ໃນ " +"Linux distribution, ຫຼື ເປັນສະພາບແວດລ້ອມ Python ທີ່ມາພ້ອມກັບແອັບພລິເຄຊັນ " +"ທີ່ມີຕົວຕິດຕັ້ງສະເພາະ)." + +#: ../source/specifications/externally-managed-environments.rst:13 +msgid "" +"Attempting to use conventional Python packaging tools to manipulate such " +"environments can be confusing at best and outright break the entire " +"underlying operating system at worst. Documentation and interoperability " +"guides only go so far in resolving such problems." +msgstr "" +"ການພະຍາຍາມໃຊ້ເຄື່ອງມືການເຮັດແພັກເກດ Python ທົ່ວໄປເພື່ອຈັດການກັບສະພາບແວດລ້ອມດັ່ງກ່າວ " +"ອາດເຮັດໃຫ້ເກີດຄວາມສັບສົນ ຫຼື ຢ່າງຮ້າຍແຮງທີ່ສຸດແມ່ນເຮັດໃຫ້ລະບົບປະຕິບັດການທັງໝົດເພພັງ. ເອກະສານ ແລະ " +"ຄູ່ມືການເຮັດວຽກຮ່ວມກັນສາມາດຊ່ວຍແກ້ໄຂບັນຫາດັ່ງກ່າວໄດ້ພຽງແຕ່ບາງສ່ວນເທົ່ານັ້ນ." + +#: ../source/specifications/externally-managed-environments.rst:18 +msgid "" +"This specification defines an ``EXTERNALLY-MANAGED`` marker file that allows " +"a Python installation to indicate to Python-specific tools such as ``pip`` " +"that they neither install nor remove packages into the interpreter’s default " +"installation environment, and should instead guide the end user towards " +"using :ref:`virtual-environments`." +msgstr "" +"ຂໍ້ກຳນົດນີ້ກຳນົດໄຟລ໌ເຄື່ອງໝາຍ ``EXTERNALLY-MANAGED`` ທີ່ຊ່ວຍໃຫ້ການຕິດຕັ້ງ Python " +"ບົ່ງບອກເຖິງເຄື່ອງມືສະເພາະຂອງ Python ເຊັ່ນ ``pip`` ວ່າພວກມັນບໍ່ຄວນຕິດຕັ້ງ ຫຼື " +"ລຶບແພັກເກດໃນສະພາບແວດລ້ອມການຕິດຕັ້ງເລີ່ມຕົ້ນຂອງ interpreter, ແລະ " +"ຄວນແນະນຳໃຫ້ຜູ້ໃຊ້ໄປໃຊ້ :ref:`virtual-environments` ແທນ." + +#: ../source/specifications/externally-managed-environments.rst:24 +msgid "" +"It also standardizes an interpretation of the ``sysconfig`` schemes so that, " +"if a Python-specific package manager is about to install a package in an " +"interpreter-wide context, it can do so in a manner that will avoid " +"conflicting with the external package manager and reduces the risk of " +"breaking software shipped by the external package manager." +msgstr "" +"ມັນຍັງເຮັດໃຫ້ການຕີຄວາມໝາຍຂອງ ``sysconfig`` schemes ເປັນມາດຕະຖານ ເພື່ອວ່າ " +"ຖ້າຕົວຈັດການແພັກເກດສະເພາະຂອງ Python ຈະຕິດຕັ້ງແພັກເກດໃນບໍລິບົດຂອງ interpreter ທັງໝົດ, " +"ມັນສາມາດເຮັດໄດ້ໃນລັກສະນະທີ່ຫຼີກເວັ້ນການຂັດແຍ່ງກັບຕົວຈັດການແພັກເກດພາຍນອກ ແລະ " +"ຫຼຸດຜ່ອນຄວາມສ່ຽງທີ່ຈະເຮັດໃຫ້ຊອບແວທີ່ສົ່ງມາກັບຕົວຈັດການແພັກເກດພາຍນອກເພພັງ." + +#: ../source/specifications/externally-managed-environments.rst:32 +msgid "Terminology" +msgstr "ຄຳສັບ" + +#: ../source/specifications/externally-managed-environments.rst:34 +msgid "" +"A few terms used in this specification have multiple meanings in the " +"contexts that it spans. For clarity, this specification uses the following " +"terms in specific ways:" +msgstr "" +"ຄຳສັບຈຳນວນໜຶ່ງທີ່ໃຊ້ໃນຂໍ້ກຳນົດນີ້ມີຄວາມໝາຍຫຼາຍຢ່າງໃນບໍລິບົດຕ່າງໆ. ເພື່ອຄວາມຊັດເຈນ, " +"ຂໍ້ກຳນົດນີ້ໃຊ້ຄຳສັບຕໍ່ໄປນີ້ໃນທາງສະເພາະ:" + +#: ../source/specifications/externally-managed-environments.rst:61 +msgid "distro" +msgstr "ດິສໂຕຣ (distro)" + +#: ../source/specifications/externally-managed-environments.rst:39 +msgid "" +"Short for \"distribution,\" a collection of various sorts of software, " +"ideally designed to work properly together, including (in contexts relevant " +"to this document) the Python interpreter itself, software written in Python, " +"and software written in other languages. That is, this is the sense used in " +"phrases such as \"Linux distro\" or \"Berkeley Software Distribution.\"" +msgstr "" +"ຫຍໍ້ມາຈາກ \"distribution,\" ເຊິ່ງແມ່ນການລວບລວມຊອບແວປະເພດຕ່າງໆ ທີ່ຖືກອອກແບບມາ " +"ເພື່ອເຮັດວຽກຮ່ວມກັນຢ່າງຖືກຕ້ອງ, ລວມທັງ (ໃນບໍລິບົດທີ່ກ່ຽວຂ້ອງກັບເອກະສານນີ້) ຕົວ Python " +"interpreter ເອງ, ຊອບແວທີ່ຂຽນດ້ວຍ Python, ແລະ ຊອບແວທີ່ຂຽນດ້ວຍພາສາອື່ນ. " +"ນັ້ນແມ່ນຄວາມໝາຍທີ່ໃຊ້ໃນຄຳເວົ້າເຊັ່ນ \"Linux distro\" ຫຼື \"Berkeley Software " +"Distribution.\"" + +#: ../source/specifications/externally-managed-environments.rst:46 +msgid "" +"A distro can be an operating system (OS) of its own, such as Debian, Fedora, " +"or FreeBSD. It can also be an overlay distribution that installs on top of " +"an existing OS, such as Homebrew or MacPorts." +msgstr "" +"distro ສາມາດເປັນລະບົບປະຕິບັດການ (OS) ດ້ວຍຕົວມັນເອງ, ເຊັ່ນ Debian, Fedora, ຫຼື FreeBSD. " +"ມັນຍັງສາມາດເປັນ overlay distribution ທີ່ຕິດຕັ້ງຢູ່ເທິງ OS ທີ່ມີຢູ່ແລ້ວ, ເຊັ່ນ Homebrew ຫຼື " +"MacPorts." + +#: ../source/specifications/externally-managed-environments.rst:51 +msgid "" +"This document uses the short term \"distro,\" because the term " +"\"distribution\" has another meaning in Python packaging contexts: a source " +"or binary distribution package of a single piece of Python language " +"software, that is, in the sense of ``setuptools.dist.Distribution`` or " +"\"sdist\". To avoid confusion, this document does not use the plain term " +"\"distribution\" at all. In the Python packaging sense, it uses the full " +"phrase \"distribution package\" or just \"package\" (see below)." +msgstr "" +"ເອກະສານນີ້ໃຊ້ຄຳສັ້ນໆວ່າ \"distro,\" ເພາະວ່າຄຳວ່າ \"distribution\" " +"ມີຄວາມໝາຍອື່ນໃນບໍລິບົດຂອງການເຮັດແພັກເກດ Python: ແພັກເກດການແຈກຢາຍ ແບບ source ຫຼື binary " +"ຂອງຊອບແວພາສາ Python ພຽງອັນດຽວ, ນັ້ນຄືໃນຄວາມໝາຍຂອງ " +"``setuptools.dist.Distribution`` ຫຼື \"sdist\". ເພື່ອຫຼີກເວັ້ນຄວາມສັບສົນ, " +"ເອກະສານນີ້ຈະບໍ່ໃຊ້ຄຳວ່າ \"distribution\" ລ້າໆເລີຍ. ໃນຄວາມໝາຍຂອງການເຮັດແພັກເກດ Python, " +"ມັນຈະໃຊ້ຄຳເຕັມວ່າ \"distribution package\" ຫຼື ພຽງແຕ່ \"package\" (ເບິ່ງຂ້າງລຸ່ມ)." + +#: ../source/specifications/externally-managed-environments.rst:60 +msgid "" +"The provider of a distro - the team or company that collects and publishes " +"the software and makes any needed modifications - is its **distributor**." +msgstr "" +"ຜູ້ໃຫ້ບໍລິການດິສໂຕຣ - ທີມງານ ຫຼື ບໍລິສັດທີ່ລວບລວມ ແລະ ເຜີຍແຜ່ຊອບແວ ແລະ ເຮັດການດັດແກ້ທີ່ຈຳເປັນ - " +"ແມ່ນ **ຜູ້ແຈກຢາຍ (distributor)** ຂອງມັນ." + +#: ../source/specifications/externally-managed-environments.rst:79 +msgid "package" +msgstr "ແພັກເກດ (package)" + +#: ../source/specifications/externally-managed-environments.rst:64 +msgid "" +"A unit of software that can be installed and used within Python. That is, " +"this refers to what Python-specific packaging tools tend to call " +"a :term:`distribution package` or simply a \"distribution\"; the colloquial " +"abbreviation \"package\" is used in the sense of the Python Package Index." +msgstr "" +"ໜ່ວຍຂອງຊອບແວທີ່ສາມາດຕິດຕັ້ງ ແລະ ໃຊ້ງານພາຍໃນ Python ໄດ້. ນັ້ນໝາຍເຖິງສິ່ງທີ່ " +"ເຄື່ອງມືເຮັດແພັກເກດສະເພາະຂອງ Python ມັກຈະເອີ້ນວ່າ :term:`distribution package` ຫຼື " +"ພຽງແຕ່ \"distribution\"; ຄຳຫຍໍ້ທົ່ວໄປ \"package\" ແມ່ນໃຊ້ໃນຄວາມໝາຍຂອງ Python " +"Package Index." + +#: ../source/specifications/externally-managed-environments.rst:70 +msgid "" +"This document does not use \"package\" in the sense of an importable name " +"that contains Python modules, though in many cases, a distribution package " +"consists of a single importable package of the same name." +msgstr "" +"ເອກະສານນີ້ບໍ່ໃຊ້ຄຳວ່າ \"package\" ໃນຄວາມໝາຍຂອງຊື່ທີ່ສາມາດ import ໄດ້ ເຊິ່ງປະກອບດ້ວຍໂມດູນ " +"Python, ເຖິງແມ່ນວ່າໃນຫຼາຍໆກໍລະນີ, distribution package ຈະປະກອບດ້ວຍ package ທີ່ import " +"ໄດ້ພຽງອັນດຽວທີ່ມີຊື່ດຽວກັນ." + +#: ../source/specifications/externally-managed-environments.rst:75 +msgid "" +"This document generally does not use the term \"package\" to refer to units " +"of installation by a distro's package manager (such as ``.deb`` or ``.rpm`` " +"files). When needed, it uses phrasing such as \"a distro's package.\" " +"(Again, in many cases, a Python package is shipped inside a distro's package " +"named something like ``python-`` plus the Python package name.)" +msgstr "" +"ໂດຍທົ່ວໄປແລ້ວ ເອກະສານນີ້ບໍ່ໃຊ້ຄຳວ່າ \"package\" ເພື່ອອ້າງເຖິງໜ່ວຍການຕິດຕັ້ງ " +"ໂດຍຕົວຈັດການແພັກເກດຂອງດິສໂຕຣ (ເຊັ່ນ ໄຟລ໌ ``.deb`` ຫຼື ``.rpm``). ເມື່ອຈຳເປັນ, " +"ມັນຈະໃຊ້ຄຳເວົ້າເຊັ່ນ \"a distro's package.\" (ອີກເທື່ອໜຶ່ງ, ໃນຫຼາຍໆກໍລະນີ, ແພັກເກດ Python " +"ຈະຖືກສົ່ງມາພາຍໃນແພັກເກດຂອງດິສໂຕຣ ທີ່ຕັ້ງຊື່ປະມານວ່າ ``python-`` ຕາມດ້ວຍຊື່ແພັກເກດ Python.)" + +#: ../source/specifications/externally-managed-environments.rst:102 +msgid "Python-specific package manager" +msgstr "ຕົວຈັດການແພັກເກດສະເພາະຂອງ Python" + +#: ../source/specifications/externally-managed-environments.rst:82 +msgid "" +"A tool for installing, upgrading, and/or removing Python packages in a " +"manner that conforms to Python packaging standards. The most popular Python-" +"specific package manager is pip_; other examples include the old `Easy " +"Install command `_ as well as direct usage of a ``setup.py`` " +"command." +msgstr "" +"ເຄື່ອງມືສຳລັບການຕິດຕັ້ງ, ອັບເກຣດ, ແລະ/ຫຼື ລຶບແພັກເກດ Python ໃນລັກສະນະທີ່ " +"ສອດຄ່ອງກັບມາດຕະຖານການເຮັດແພັກເກດ Python. ຕົວຈັດການແພັກເກດສະເພາະຂອງ Python " +"ທີ່ໄດ້ຮັບຄວາມນິຍົມທີ່ສຸດແມ່ນ pip_; ຕົວຢ່າງອື່ນໆ ລວມມີຄຳສັ່ງ `Easy Install `_ " +"ແບບເກົ່າ ລວມທັງການໃຊ້ຄຳສັ່ງ ``setup.py`` ໂດຍກົງ." + +#: ../source/specifications/externally-managed-environments.rst:92 +msgid "" +"(Note that the ``easy_install`` command was removed in setuptools version " +"52, released 23 January 2021.)" +msgstr "" +"(ໝາຍເຫດ: ຄຳສັ່ງ ``easy_install`` ຖືກຖອນອອກໃນ setuptools ເວີຊັນ 52, ອອກເມື່ອວັນທີ 23 " +"ມັງກອນ 2021.)" + +#: ../source/specifications/externally-managed-environments.rst:96 +msgid "" +"(Conda_ is a bit of a special case, as the ``conda`` command can install " +"much more than just Python packages, making it more like a distro package " +"manager in some senses. Since the ``conda`` command generally only operates " +"on Conda-created environments, most of the concerns in this document do not " +"apply to ``conda`` when acting as a Python-specific package manager.)" +msgstr "" +"(Conda_ ແມ່ນກໍລະນີພິເສດເລັກນ້ອຍ, ເພາະວ່າຄຳສັ່ງ ``conda`` ສາມາດຕິດຕັ້ງໄດ້ຫຼາຍກວ່າ " +"ພຽງແຕ່ແພັກເກດ Python, ເຮັດໃຫ້ມັນຄືກັບຕົວຈັດການແພັກເກດຂອງດິສໂຕຣໃນບາງແງ່. ເນື່ອງຈາກຄຳສັ່ງ " +"``conda`` ໂດຍທົ່ວໄປແລ້ວຈະເຮັດວຽກສະເພາະໃນສະພາບແວດລ້ອມທີ່ Conda ສ້າງຂຶ້ນ, " +"ຄວາມກັງວົນສ່ວນໃຫຍ່ໃນເອກະສານນີ້ຈຶ່ງບໍ່ນຳໃຊ້ກັບ ``conda`` " +"ເມື່ອມັນເຮັດໜ້າທີ່ເປັນຕົວຈັດການແພັກເກດສະເພາະຂອງ Python.)" + +#: ../source/specifications/externally-managed-environments.rst:118 +msgid "distro package manager" +msgstr "ຕົວຈັດການແພັກເກດຂອງດິສໂຕຣ" + +#: ../source/specifications/externally-managed-environments.rst:105 +msgid "" +"A tool for installing, upgrading, and/or removing a distro's packages in an " +"installed instance of that distro, which is capable of installing Python " +"packages as well as non-Python packages, and therefore generally has its own " +"database of installed software unrelated to the :ref:`database of installed " +"distributions `. Examples include ``apt``, " +"``dpkg``, ``dnf``, ``rpm``, ``pacman``, and ``brew``. The salient feature is " +"that if a package was installed by a distro package manager, removing or " +"upgrading it in a way that would satisfy a Python-specific package manager " +"will generally leave a distro package manager in an inconsistent state." +msgstr "" +"ເຄື່ອງມືສຳລັບການຕິດຕັ້ງ, ອັບເກຣດ, ແລະ/ຫຼື ລຶບແພັກເກດຂອງດິສໂຕຣໃນດິສໂຕຣທີ່ຕິດຕັ້ງແລ້ວ, " +"ເຊິ່ງສາມາດຕິດຕັ້ງແພັກເກດ Python ລວມທັງແພັກເກດທີ່ບໍ່ແມ່ນ Python, ແລະ ໂດຍທົ່ວໄປແລ້ວ " +"ຈະມີຖານຂໍ້ມູນຊອບແວທີ່ຕິດຕັ້ງແລ້ວຂອງມັນເອງ ເຊິ່ງບໍ່ກ່ຽວຂ້ອງກັບ :ref:`database of installed " +"distributions `. ຕົວຢ່າງລວມມີ ``apt``, ``dpkg``, " +"``dnf``, ``rpm``, ``pacman``, ແລະ ``brew``. ຄຸນລັກສະນະທີ່ສຳຄັນຄື: " +"ຖ້າແພັກເກດໃດໜຶ່ງຖືກຕິດຕັ້ງໂດຍຕົວຈັດການແພັກເກດຂອງດິສໂຕຣ, ການລຶບ ຫຼື " +"ອັບເກຣດມັນໃນຮູບແບບທີ່ຕົວຈັດການແພັກເກດສະເພາະຂອງ Python ຕ້ອງການ " +"ໂດຍທົ່ວໄປແລ້ວຈະເຮັດໃຫ້ຕົວຈັດການແພັກເກດຂອງດິສໂຕຣຢູ່ໃນສະຖານະທີ່ບໍ່ສອດຄ່ອງກັນ." + +#: ../source/specifications/externally-managed-environments.rst:117 +msgid "" +"This document also uses phrases like \"external package manager\" or " +"\"system's package manager\" to refer to a distro package manager in certain " +"contexts." +msgstr "" +"ເອກະສານນີ້ຍັງໃຊ້ຄຳເວົ້າເຊັ່ນ \"external package manager\" ຫຼື \"system's package " +"manager\" ເພື່ອອ້າງເຖິງຕົວຈັດການແພັກເກດຂອງດິສໂຕຣໃນບາງບໍລິບົດ." + +#: ../source/specifications/externally-managed-environments.rst:127 +msgid "shadow" +msgstr "ຊ້ອນທັບ (shadow)" + +#: ../source/specifications/externally-managed-environments.rst:121 +msgid "" +"To shadow an installed Python package is to cause some other package to be " +"preferred for imports without removing any files from the shadowed package. " +"This requires multiple entries on ``sys.path``: if package A 2.0 installs " +"module ``a.py`` in one ``sys.path`` entry, and package A 1.0 installs module " +"``a.py`` in a later ``sys.path`` entry, then ``import a`` returns the module " +"from the former, and we say that A 2.0 shadows A 1.0." +msgstr "" +"ການ shadow ແພັກເກດ Python ທີ່ຕິດຕັ້ງແລ້ວ ແມ່ນການເຮັດໃຫ້ແພັກເກດອື່ນຖືກເລືອກໃຊ້ ສຳລັບການ import " +"ໂດຍບໍ່ໄດ້ລຶບໄຟລ໌ໃດໆອອກຈາກແພັກເກດທີ່ຖືກ shadow. ສິ່ງນີ້ຕ້ອງມີຫຼາຍລາຍການໃນ ``sys.path``: " +"ຖ້າແພັກເກດ A 2.0 ຕິດຕັ້ງໂມດູນ ``a.py`` ໃນລາຍການ ``sys.path`` ໜຶ່ງ, ແລະ ແພັກເກດ A 1.0 " +"ຕິດຕັ້ງໂມດູນ ``a.py`` ໃນລາຍການ ``sys.path`` ທີ່ຢູ່ຖັດໄປ, ເມື່ອ ``import a`` " +"ມັນຈະສົ່ງຄ່າໂມດູນຈາກ ລາຍການກ່ອນໜ້າ, ແລະ ພວກເຮົາເອີ້ນວ່າ A 2.0 shadow A 1.0." + +#: ../source/specifications/externally-managed-environments.rst:132 +msgid "This specification is twofold." +msgstr "ຂໍ້ກຳນົດນີ້ມີສອງສ່ວນ." + +#: ../source/specifications/externally-managed-environments.rst:134 +msgid "" +"First, it describes **a way for distributors of a Python interpreter to mark " +"that interpreter as having its packages managed by means external to " +"Python**, such that Python-specific tools like pip should not change the " +"installed packages in the interpreter's global ``sys.path`` in any way (add, " +"upgrade/downgrade, or remove) unless specifically overridden. It also " +"provides a means for the distributor to indicate how to use a virtual " +"environment as an alternative." +msgstr "" +"ທຳອິດ, ມັນອະທິບາຍ **ວິທີການສຳລັບຜູ້ແຈກຢາຍ Python interpreter ເພື່ອໝາຍວ່າ interpreter " +"ນັ້ນຖືກຈັດການແພັກເກດໂດຍວິທີການພາຍນອກ Python**, ເພື່ອໃຫ້ເຄື່ອງມື ສະເພາະຂອງ Python ເຊັ່ນ pip " +"ບໍ່ຄວນປ່ຽນແປງແພັກເກດທີ່ຕິດຕັ້ງໃນ ``sys.path`` ລະດັບໂລກຂອງ interpreter (ບໍ່ວ່າຈະເປັນການເພີ່ມ, " +"ອັບເກຣດ/ດາວເກຣດ, ຫຼື ລຶບ) ເວັ້ນເສຍແຕ່ຈະມີການ override ຢ່າງຊັດເຈນ. " +"ມັນຍັງໃຫ້ວິທີການສຳລັບຜູ້ແຈກຢາຍ ໃນການບົ່ງບອກວິທີການໃຊ້ virtual environment ເປັນທາງເລືອກ." + +#: ../source/specifications/externally-managed-environments.rst:142 +msgid "" +"This is an opt-in mechanism: by default, the Python interpreter compiled " +"from upstream sources will not be so marked, and so running ``pip install`` " +"with a self-compiled interpreter, or with a distro that has not explicitly " +"marked its interpreter, will work as it always has worked." +msgstr "" +"ນີ້ແມ່ນກົນໄກແບບເລືອກເຂົ້າ (opt-in): ໂດຍຄ່າເລີ່ມຕົ້ນ, Python interpreter ທີ່ compile " +"ຈາກແຫຼ່ງຕົ້ນທາງ (upstream) ຈະບໍ່ຖືກໝາຍໄວ້, ດັ່ງນັ້ນການລັນ ``pip install`` ດ້ວຍ interpreter " +"ທີ່ compile ເອງ, ຫຼື ກັບດິສໂຕຣທີ່ບໍ່ໄດ້ໝາຍ interpreter ຂອງມັນໄວ້ຢ່າງຊັດເຈນ, " +"ຈະຍັງຄົງເຮັດວຽກໄດ້ຕາມປົກກະຕິຄືທີ່ຜ່ານມາ." + +#: ../source/specifications/externally-managed-environments.rst:148 +msgid "" +"Second, it sets the rule that when installing packages to an interpreter's " +"global context (either to an unmarked interpreter, or if overriding the " +"marking), **Python-specific package managers should modify or delete files " +"only within the directories of the sysconfig scheme in which they would " +"create files**. This permits a distributor of a Python interpreter to set up " +"two directories, one for its own managed packages, and one for unmanaged " +"packages installed by the end user, and ensure that installing unmanaged " +"packages will not delete (or overwrite) files owned by the external package " +"manager." +msgstr "" +"ສອງ, ມັນຕັ້ງກົດວ່າເມື່ອຕິດຕັ້ງແພັກເກດໃສ່ບໍລິບົດລະດັບໂລກຂອງ interpreter (ບໍ່ວ່າຈະເປັນ interpreter " +"ທີ່ບໍ່ໄດ້ໝາຍໄວ້, ຫຼື ຖ້າ override ເຄື່ອງໝາຍ), **ຕົວຈັດການແພັກເກດ ສະເພາະຂອງ Python ຄວນແກ້ໄຂ " +"ຫຼື ລຶບໄຟລ໌ສະເພາະພາຍໃນໄດເຣັກທໍຣີຂອງ sysconfig scheme ທີ່ພວກມັນຈະສ້າງໄຟລ໌ເທົ່ານັ້ນ**. " +"ສິ່ງນີ້ຊ່ວຍໃຫ້ຜູ້ແຈກຢາຍ Python interpreter ສາມາດຕັ້ງຄ່າສອງໄດເຣັກທໍຣີ, " +"ອັນໜຶ່ງສຳລັບແພັກເກດທີ່ຖືກຈັດການເອງ, ແລະ ອີກອັນໜຶ່ງສຳລັບແພັກເກດທີ່ບໍ່ໄດ້ຖືກຈັດການເຊິ່ງຕິດຕັ້ງໂດຍຜູ້ໃຊ້, ແລະ " +"ຮັບປະກັນວ່າ ການຕິດຕັ້ງແພັກເກດທີ່ບໍ່ໄດ້ຖືກຈັດການຈະບໍ່ລຶບ (ຫຼື ຂຽນທັບ) ໄຟລ໌ທີ່ເປັນຂອງ " +"ຕົວຈັດການແພັກເກດພາຍນອກ." + +#: ../source/specifications/externally-managed-environments.rst:160 +msgid "Marking an interpreter as using an external package manager" +msgstr "ການໝາຍ interpreter ວ່າໃຊ້ຕົວຈັດການແພັກເກດພາຍນອກ" + +#: ../source/specifications/externally-managed-environments.rst:162 +msgid "" +"Before a Python-specific package installer (that is, a tool such as pip - " +"not an external tool such as apt) installs a package into a certain Python " +"context, it should make the following checks by default:" +msgstr "" +"ກ່ອນທີ່ຕົວຕິດຕັ້ງແພັກເກດສະເພາະຂອງ Python (ເຊັ່ນ pip - ບໍ່ແມ່ນເຄື່ອງມືພາຍນອກ ເຊັ່ນ apt) " +"ຈະຕິດຕັ້ງແພັກເກດລົງໃນບໍລິບົດ Python ໃດໜຶ່ງ, ມັນຄວນກວດສອບ ສິ່ງຕໍ່ໄປນີ້ໂດຍຄ່າເລີ່ມຕົ້ນ:" + +#: ../source/specifications/externally-managed-environments.rst:167 +msgid "" +"Is it running outside of a virtual environment? It can determine this by " +"whether ``sys.prefix == sys.base_prefix``." +msgstr "" +"ມັນກຳລັງລັນຢູ່ພາຍນອກ virtual environment ຫຼື ບໍ່? ມັນສາມາດກວດສອບໄດ້ໂດຍ ເບິ່ງວ່າ " +"``sys.prefix == sys.base_prefix`` ຫຼື ບໍ່." + +#: ../source/specifications/externally-managed-environments.rst:170 +msgid "" +"Is there an ``EXTERNALLY-MANAGED`` file in the directory identified by " +"``sysconfig.get_path(\"stdlib\", sysconfig.get_default_scheme())``?" +msgstr "" +"ມີໄຟລ໌ ``EXTERNALLY-MANAGED`` ໃນໄດເຣັກທໍຣີທີ່ລະບຸໂດຍ " +"``sysconfig.get_path(\"stdlib\", sysconfig.get_default_scheme())`` ຫຼື ບໍ່?" + +#: ../source/specifications/externally-managed-environments.rst:173 +msgid "" +"If both of these conditions are true, the installer should exit with an " +"error message indicating that package installation into this Python " +"interpreter's directory are disabled outside of a virtual environment." +msgstr "" +"ຖ້າທັງສອງເງື່ອນໄຂນີ້ເປັນຈິງ, ຕົວຕິດຕັ້ງຄວນຢຸດການເຮັດວຽກພ້ອມຂໍ້ຄວາມແຈ້ງເຕືອນຂໍ້ຜິດພາດ " +"ທີ່ບົ່ງບອກວ່າການຕິດຕັ້ງແພັກເກດລົງໃນໄດເຣັກທໍຣີຂອງ Python interpreter ນີ້ ຖືກປິດໃຊ້ງານເມື່ອຢູ່ນອກ " +"virtual environment." + +#: ../source/specifications/externally-managed-environments.rst:177 +msgid "" +"The installer should have a way for the user to override these rules, such " +"as a command-line flag ``--break-system-packages``. This option should not " +"be enabled by default and should carry some connotation that its use is " +"risky." +msgstr "" +"ຕົວຕິດຕັ້ງຄວນມີວິທີໃຫ້ຜູ້ໃຊ້ສາມາດ override ກົດເຫຼົ່ານີ້ໄດ້, ເຊັ່ນ command-line flag ``--break-" +"system-packages``. ຕົວເລືອກນີ້ບໍ່ຄວນຖືກເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນ ແລະ " +"ຄວນມີຄວາມໝາຍບົ່ງບອກວ່າການໃຊ້ງານມັນມີຄວາມສ່ຽງ." + +#: ../source/specifications/externally-managed-environments.rst:182 +msgid "" +"The ``EXTERNALLY-MANAGED`` file is an INI-style metadata file intended to be " +"parsable by the standard library configparser_ module. If the file can be " +"parsed by ``configparser.ConfigParser(interpolation=None)`` using the UTF-8 " +"encoding, and it contains a section ``[externally-managed]``, then the " +"installer should look for an error message specified in the file and output " +"it as part of its error. If the first element of the tuple returned by " +"``locale.getlocale(locale.LC_MESSAGES)``, i.e., the language code, is not " +"``None``, it should look for the error message as the value of a key named " +"``Error-`` followed by the language code. If that key does not exist, and if " +"the language code contains underscore or hyphen, it should look for a key " +"named ``Error-`` followed by the portion of the language code before the " +"underscore or hyphen. If it cannot find either of those, or if the language " +"code is ``None``, it should look for a key simply named ``Error``." +msgstr "" +"ໄຟລ໌ ``EXTERNALLY-MANAGED`` ແມ່ນໄຟລ໌ຂໍ້ມູນເມຕາຮູບແບບ INI ທີ່ອອກແບບມາເພື່ອ ໃຫ້ສາມາດວິເຄາະ " +"(parse) ໄດ້ໂດຍໂມດູນ configparser_ ຂອງໄລບຣາຣີມາດຕະຖານ. ຖ້າໄຟລ໌ສາມາດຖືກ parse ໄດ້ໂດຍ " +"``configparser.ConfigParser(interpolation=None)`` ໂດຍໃຊ້ການເຂົ້າລະຫັດ UTF-8, ແລະ " +"ມັນມີສ່ວນ ``[externally-managed]``, " +"ຕົວຕິດຕັ້ງຄວນຊອກຫາຂໍ້ຄວາມແຈ້ງເຕືອນຂໍ້ຜິດພາດທີ່ກຳນົດໄວ້ໃນໄຟລ໌ ແລະ ສະແດງມັນ ເປັນສ່ວນໜຶ່ງຂອງຂໍ້ຜິດພາດ. " +"ຖ້າອົງປະກອບທຳອິດຂອງ tuple ທີ່ສົ່ງຄືນໂດຍ ``locale.getlocale(locale.LC_MESSAGES)`` " +"(ເຊັ່ນ ລະຫັດພາສາ) ບໍ່ແມ່ນ ``None``, ມັນຄວນຊອກຫາຂໍ້ຄວາມຂໍ້ຜິດພາດທີ່ເປັນຄ່າຂອງ key ທີ່ຊື່ວ່າ " +"``Error-`` ຕາມດ້ວຍລະຫັດພາສາ. ຖ້າ key ນັ້ນບໍ່ມີ, ແລະ ຖ້າລະຫັດພາສາມີເຄື່ອງໝາຍຂີດກ້ອງ ຫຼື ຂີດຕໍ່, " +"ມັນຄວນຊອກຫາ key ທີ່ຊື່ວ່າ ``Error-`` ຕາມດ້ວຍສ່ວນຂອງລະຫັດພາສາກ່ອນເຄື່ອງໝາຍຂີດກ້ອງ ຫຼື ຂີດຕໍ່. " +"ຖ້າມັນບໍ່ພົບທັງສອງຢ່າງ, ຫຼື ຖ້າລະຫັດພາສາເປັນ ``None``, ມັນຄວນຊອກຫາ key ທີ່ຊື່ວ່າ ``Error`` ລ້າໆ." + +#: ../source/specifications/externally-managed-environments.rst:200 +msgid "" +"If the installer cannot find an error message in the file (either because " +"the file cannot be parsed or because no suitable error key exists), then the " +"installer should just use a pre-defined error message of its own, which " +"should suggest that the user create a virtual environment to install " +"packages." +msgstr "" +"ຖ້າຕົວຕິດຕັ້ງບໍ່ສາມາດຊອກຫາຂໍ້ຄວາມຂໍ້ຜິດພາດໃນໄຟລ໌ (ບໍ່ວ່າຈະເປັນຍ້ອນໄຟລ໌ບໍ່ສາມາດ parse ໄດ້ ຫຼື ຍ້ອນບໍ່ມີ " +"key ຂໍ້ຜິດພາດທີ່ເໝາະສົມ), ຕົວຕິດຕັ້ງຄວນໃຊ້ຂໍ້ຄວາມຂໍ້ຜິດພາດທີ່ກຳນົດໄວ້ລ່ວງໜ້າ ຂອງມັນເອງ, " +"ເຊິ່ງຄວນແນະນຳໃຫ້ຜູ້ໃຊ້ສ້າງ virtual environment ເພື່ອຕິດຕັ້ງແພັກເກດ." + +#: ../source/specifications/externally-managed-environments.rst:206 +msgid "" +"Software distributors who have a non-Python-specific package manager that " +"manages libraries in the ``sys.path`` of their Python package should, in " +"general, ship an ``EXTERNALLY-MANAGED`` file in their standard library " +"directory. For instance, Debian may ship a file in ``/usr/lib/python3.9/" +"EXTERNALLY-MANAGED`` consisting of something like" +msgstr "" +"ຜູ້ແຈກຢາຍຊອບແວທີ່ມີຕົວຈັດການແພັກເກດທີ່ບໍ່ແມ່ນສະເພາະຂອງ Python ເຊິ່ງຈັດການໄລບຣາຣີ ໃນ " +"``sys.path`` ຂອງແພັກເກດ Python ຂອງພວກເຂົາ, ໂດຍທົ່ວໄປແລ້ວ ຄວນສົ່ງໄຟລ໌ ``EXTERNALLY-" +"MANAGED`` ມາພ້ອມໃນໄດເຣັກທໍຣີໄລບຣາຣີມາດຕະຖານ. ຕົວຢ່າງ, Debian ອາດຈະສົ່ງໄຟລ໌ໃນ ``/usr/" +"lib/python3.9/EXTERNALLY-MANAGED`` ທີ່ປະກອບດ້ວຍສິ່ງຕ່າງໆເຊັ່ນ" + +#: ../source/specifications/externally-managed-environments.rst:230 +msgid "" +"which provides useful and distro-relevant information to a user trying to " +"install a package. Optionally, translations can be provided in the same file:" +msgstr "" +"ເຊິ່ງໃຫ້ຂໍ້ມູນທີ່ເປັນປະໂຫຍດ ແລະ ກ່ຽວຂ້ອງກັບດິສໂຕຣໃຫ້ກັບຜູ້ໃຊ້ທີ່ພະຍາຍາມຕິດຕັ້ງແພັກເກດ. ນອກນັ້ນ, " +"ຍັງສາມາດໃຫ້ຄຳແປໃນໄຟລ໌ດຽວກັນໄດ້:" + +#: ../source/specifications/externally-managed-environments.rst:240 +msgid "" +"In certain contexts, such as single-application container images that aren't " +"updated after creation, a distributor may choose not to ship an ``EXTERNALLY-" +"MANAGED`` file, so that users can install whatever they like (as they can " +"today) without having to manually override this rule." +msgstr "" +"ໃນບາງບໍລິບົດ, ເຊັ່ນ container images ສຳລັບແອັບພລິເຄຊັນດຽວທີ່ບໍ່ໄດ້ຖືກອັບເດດຫຼັງຈາກສ້າງ, " +"ຜູ້ແຈກຢາຍອາດຈະເລືອກທີ່ຈະບໍ່ສົ່ງໄຟລ໌ ``EXTERNALLY-MANAGED`` ມາ, ເພື່ອໃຫ້ຜູ້ໃຊ້ " +"ສາມາດຕິດຕັ້ງຫຍັງກໍໄດ້ຕາມທີ່ຕ້ອງການ (ຄືກັບທີ່ເຮັດໄດ້ໃນປະຈຸບັນ) ໂດຍບໍ່ຕ້ອງ override ກົດນີ້ດ້ວຍຕົນເອງ." + +#: ../source/specifications/externally-managed-environments.rst:247 +msgid "Writing to only the target ``sysconfig`` scheme" +msgstr "ການຂຽນໃສ່ສະເພາະເປົ້າໝາຍ ``sysconfig`` scheme ເທົ່ານັ້ນ" + +#: ../source/specifications/externally-managed-environments.rst:249 +msgid "" +"Usually, a Python package installer installs to directories in a scheme " +"returned by the ``sysconfig`` standard library package. Ordinarily, this is " +"the scheme returned by ``sysconfig.get_default_scheme()``, but based on " +"configuration (e.g. ``pip install --user``), it may use a different scheme." +msgstr "" +"ໂດຍປົກກະຕິແລ້ວ, ຕົວຕິດຕັ້ງແພັກເກດ Python ຈະຕິດຕັ້ງລົງໃນໄດເຣັກທໍຣີໃນ scheme ທີ່ " +"ສົ່ງຄືນໂດຍແພັກເກດໄລບຣາຣີມາດຕະຖານ ``sysconfig``. ປົກກະຕິແລ້ວ, ນີ້ແມ່ນ scheme ທີ່ສົ່ງຄືນໂດຍ " +"``sysconfig.get_default_scheme()``, ແຕ່ຂຶ້ນກັບການຕັ້ງຄ່າ (ຕົວຢ່າງ ``pip install --" +"user``), ມັນອາດຈະໃຊ້ scheme ທີ່ແຕກຕ່າງກັນ." + +#: ../source/specifications/externally-managed-environments.rst:255 +msgid "" +"Whenever the installer is installing to a ``sysconfig`` scheme, this " +"specification declares that the installer should never modify or delete " +"files outside of that scheme. For instance, if it's upgrading a package, and " +"the package is already installed in a directory outside that scheme (perhaps " +"in a directory from another scheme), it should leave the existing files " +"alone." +msgstr "" +"ເມື່ອໃດກໍຕາມທີ່ຕົວຕິດຕັ້ງກຳລັງຕິດຕັ້ງໃສ່ ``sysconfig`` scheme, ຂໍ້ກຳນົດນີ້ " +"ປະກາດວ່າຕົວຕິດຕັ້ງບໍ່ຄວນແກ້ໄຂ ຫຼື ລຶບໄຟລ໌ທີ່ຢູ່ນອກ scheme ນັ້ນ. ຕົວຢ່າງ, ຖ້າມັນກຳລັງອັບເກຣດແພັກເກດ, " +"ແລະ ແພັກເກດນັ້ນຖືກຕິດຕັ້ງແລ້ວໃນໄດເຣັກທໍຣີ ທີ່ຢູ່ນອກ scheme ນັ້ນ (ບາງທີອາດຈະຢູ່ໃນໄດເຣັກທໍຣີຈາກ " +"scheme ອື່ນ), ມັນຄວນປ່ອຍໃຫ້ໄຟລ໌ທີ່ມີຢູ່ແລ້ວຄືເກົ່າ." + +#: ../source/specifications/externally-managed-environments.rst:262 +msgid "" +"If the installer does end up shadowing an existing installation during an " +"upgrade, we recommend that it produces a warning at the end of its run." +msgstr "" +"ຖ້າຕົວຕິດຕັ້ງເຮັດການ shadow ການຕິດຕັ້ງທີ່ມີຢູ່ແລ້ວໃນລະຫວ່າງການອັບເກຣດ, " +"ພວກເຮົາແນະນຳໃຫ້ມັນສະແດງຄຳເຕືອນໃນຕອນທ້າຍຂອງການເຮັດວຽກ." + +#: ../source/specifications/externally-managed-environments.rst:266 +msgid "" +"If the installer is installing to a location outside of a ``sysconfig`` " +"scheme (e.g., ``pip install --target``), then this subsection does not apply." +msgstr "" +"ຖ້າຕົວຕິດຕັ້ງກຳລັງຕິດຕັ້ງໃສ່ສະຖານທີ່ຢູ່ນອກ ``sysconfig`` scheme (ຕົວຢ່າງ ``pip install --" +"target``), ໝວດຍ່ອຍນີ້ຈະບໍ່ນຳໃຊ້." + +#: ../source/specifications/externally-managed-environments.rst:271 +msgid "Recommendations for distros" +msgstr "ຄຳແນະນຳສຳລັບດິສໂຕຣ" + +#: ../source/specifications/externally-managed-environments.rst:273 +msgid "" +"This section is non-normative. It provides best practices we believe distros " +"should follow unless they have a specific reason otherwise." +msgstr "" +"ພາກສ່ວນນີ້ບໍ່ແມ່ນຂໍ້ບັງຄັບ. ມັນໃຫ້ແນວທາງປະຕິບັດທີ່ດີທີ່ສຸດທີ່ພວກເຮົາເຊື່ອວ່າດິສໂຕຣຄວນປະຕິບັດຕາມ " +"ເວັ້ນເສຍແຕ່ຈະມີເຫດຜົນສະເພາະຢ່າງອື່ນ." + +#: ../source/specifications/externally-managed-environments.rst:277 +msgid "Mark the installation as externally managed" +msgstr "ໝາຍການຕິດຕັ້ງວ່າຖືກຈັດການຈາກພາຍນອກ" + +#: ../source/specifications/externally-managed-environments.rst:279 +msgid "" +"Distros should create an ``EXTERNALLY-MANAGED`` file in their ``stdlib`` " +"directory." +msgstr "ດິສໂຕຣຄວນສ້າງໄຟລ໌ ``EXTERNALLY-MANAGED`` ໃນໄດເຣັກທໍຣີ ``stdlib`` ຂອງພວກເຂົາ." + +#: ../source/specifications/externally-managed-environments.rst:283 +msgid "Guide users towards virtual environments" +msgstr "ແນະນຳຜູ້ໃຊ້ໃຫ້ໄປໃຊ້ virtual environments" + +#: ../source/specifications/externally-managed-environments.rst:285 +msgid "" +"The file should contain a useful and distro-relevant error message " +"indicating both how to install system-wide packages via the distro's package " +"manager and how to set up a virtual environment. If your distro is often " +"used by users in a state where the ``python3`` command is available (and " +"especially where ``pip`` or ``get-pip`` is available) but ``python3 -m " +"venv`` does not work, the message should indicate clearly how to make " +"``python3 -m venv`` work properly." +msgstr "" +"ໄຟລ໌ຄວນມີຂໍ້ຄວາມຂໍ້ຜິດພາດທີ່ເປັນປະໂຫຍດ ແລະ ກ່ຽວຂ້ອງກັບດິສໂຕຣ ເຊິ່ງບົ່ງບອກທັງວິທີຕິດຕັ້ງແພັກເກດ " +"ທົ່ວທັງລະບົບຜ່ານຕົວຈັດການແພັກເກດຂອງດິສໂຕຣ ແລະ ວິທີຕັ້ງຄ່າ virtual environment. " +"ຖ້າດິສໂຕຣຂອງທ່ານ ມັກຈະຖືກໃຊ້ໂດຍຜູ້ໃຊ້ໃນສະຖານະທີ່ມີຄຳສັ່ງ ``python3`` (ແລະ ໂດຍສະເພາະທີ່ມີ " +"``pip`` ຫຼື ``get-pip``) ແຕ່ ``python3 -m venv`` ບໍ່ສາມາດໃຊ້ງານໄດ້, " +"ຂໍ້ຄວາມຄວນບົ່ງບອກຢ່າງຊັດເຈນເຖິງວິທີເຮັດໃຫ້ ``python3 -m venv`` ເຮັດວຽກໄດ້ຢ່າງຖືກຕ້ອງ." + +#: ../source/specifications/externally-managed-environments.rst:293 +msgid "" +"Consider packaging pipx_, a tool for installing Python-language " +"applications, and suggesting it in the error. pipx automatically creates a " +"virtual environment for that application alone, which is a much better " +"default for end users who want to install some Python-language software " +"(which isn't available in the distro) but are not themselves Python users. " +"Packaging pipx in the distro avoids the irony of instructing users to ``pip " +"install --user --break-system-packages pipx`` to *avoid* breaking system " +"packages. Consider arranging things so your distro's package / environment " +"for Python for end users (e.g., ``python3`` on Fedora or ``python3-full`` on " +"Debian) depends on pipx." +msgstr "" +"ພິຈາລະນາການເຮັດແພັກເກດ pipx_, ເຊິ່ງເປັນເຄື່ອງມືສຳລັບຕິດຕັ້ງແອັບພລິເຄຊັນພາສາ Python, ແລະ " +"ແນະນຳມັນໃນຂໍ້ຜິດພາດ. pipx ຈະສ້າງ virtual environment ໂດຍອັດຕະໂນມັດສຳລັບແອັບພລິເຄຊັນ " +"ນັ້ນພຽງອັນດຽວ, ເຊິ່ງເປັນຄ່າເລີ່ມຕົ້ນທີ່ດີກວ່າຫຼາຍສຳລັບຜູ້ໃຊ້ທົ່ວໄປທີ່ຕ້ອງການຕິດຕັ້ງຊອບແວພາສາ Python " +"(ທີ່ບໍ່ມີຢູ່ໃນດິສໂຕຣ) ແຕ່ພວກເຂົາເອງບໍ່ແມ່ນຜູ້ໃຊ້ Python. ການເຮັດແພັກເກດ pipx ໃນດິສໂຕຣ " +"ຈະຊ່ວຍຫຼີກເວັ້ນຄວາມຍ້ອນແຍ້ງໃນການແນະນຳຜູ້ໃຊ້ໃຫ້ ``pip install --user --break-system-" +"packages pipx`` ເພື່ອ *ຫຼີກເວັ້ນ* ການເຮັດໃຫ້ແພັກເກດຂອງລະບົບເພພັງ. " +"ພິຈາລະນາຈັດການສິ່ງຕ່າງໆເພື່ອໃຫ້ແພັກເກດ / ສະພາບແວດລ້ອມ Python ຂອງດິສໂຕຣສຳລັບຜູ້ໃຊ້ທົ່ວໄປ (ເຊັ່ນ " +"``python3`` ໃນ Fedora ຫຼື ``python3-full`` ໃນ Debian) ຂຶ້ນກັບ (depends on) pipx." + +#: ../source/specifications/externally-managed-environments.rst:308 +msgid "Keep the marker file in container images" +msgstr "ເກັບໄຟລ໌ເຄື່ອງໝາຍໄວ້ໃນ container images" + +#: ../source/specifications/externally-managed-environments.rst:310 +msgid "" +"Distros that produce official images for single-application containers " +"(e.g., Docker container images) should keep the ``EXTERNALLY-MANAGED`` file, " +"preferably in a way that makes it not go away if a user of that image " +"installs package updates inside their image (think ``RUN apt-get dist-" +"upgrade``)." +msgstr "" +"ດິສໂຕຣທີ່ສ້າງ images ຢ່າງເປັນທາງການສຳລັບ single-application containers (ເຊັ່ນ Docker " +"container images) ຄວນເກັບໄຟລ໌ ``EXTERNALLY-MANAGED`` ໄວ້, ໂດຍສະເພາະໃນວິທີທີ່ " +"ເຮັດໃຫ້ມັນບໍ່ຫາຍໄປຖ້າຜູ້ໃຊ້ image ນັ້ນຕິດຕັ້ງການອັບເດດແພັກເກດພາຍໃນ image ຂອງພວກເຂົາ (ລອງນຶກເຖິງ " +"``RUN apt-get dist-upgrade``)." + +#: ../source/specifications/externally-managed-environments.rst:317 +msgid "Create separate distro and local directories" +msgstr "ສ້າງໄດເຣັກທໍຣີແຍກກັນລະຫວ່າງ distro ແລະ local" + +#: ../source/specifications/externally-managed-environments.rst:319 +msgid "" +"Distros should place two separate paths on the system interpreter's " +"``sys.path``, one for distro-installed packages and one for packages " +"installed by the local system administrator, and configure " +"``sysconfig.get_default_scheme()`` to point at the latter path. This ensures " +"that tools like pip will not modify distro-installed packages. The path for " +"the local system administrator should come before the distro path on " +"``sys.path`` so that local installs take preference over distro packages." +msgstr "" +"ດິສໂຕຣຄວນວາງສອງເສັ້ນທາງ (paths) ແຍກກັນໄວ້ໃນ ``sys.path`` ຂອງ system interpreter, " +"ອັນໜຶ່ງສຳລັບແພັກເກດທີ່ຕິດຕັ້ງໂດຍດິສໂຕຣ ແລະ ອີກອັນໜຶ່ງສຳລັບແພັກເກດທີ່ຕິດຕັ້ງໂດຍ ຜູ້ດູແລລະບົບທ້ອງຖິ່ນ " +"(local administrator), ແລະ ຕັ້ງຄ່າ ``sysconfig.get_default_scheme()`` " +"ໃຫ້ຊີ້ໄປຫາເສັ້ນທາງຫຼັງ. ສິ່ງນີ້ຮັບປະກັນວ່າ ເຄື່ອງມືເຊັ່ນ pip ຈະບໍ່ແກ້ໄຂແພັກເກດທີ່ຕິດຕັ້ງໂດຍດິສໂຕຣ. " +"ເສັ້ນທາງສຳລັບຜູ້ດູແລລະບົບທ້ອງຖິ່ນ ຄວນມາກ່ອນເສັ້ນທາງຂອງດິສໂຕຣໃນ ``sys.path`` " +"ເພື່ອໃຫ້ການຕິດຕັ້ງແບບ local ໄດ້ຮັບຄວາມສຳຄັນກວ່າແພັກເກດຂອງດິສໂຕຣ." + +#: ../source/specifications/externally-managed-environments.rst:328 +msgid "" +"For example, Fedora and Debian (and their derivatives) both implement this " +"split by using ``/usr/local`` for locally-installed packages and ``/usr`` " +"for distro-installed packages. Fedora uses ``/usr/local/lib/python3.x/site-" +"packages`` vs. ``/usr/lib/python3.x/site-packages``. (Debian uses ``/usr/" +"local/lib/python3/dist-packages`` vs. ``/usr/lib/python3/dist-packages`` as " +"an additional layer of separation from a locally-compiled Python " +"interpreter: if you build and install upstream CPython in ``/usr/local/" +"bin``, it will look at ``/usr/local/lib/python3/site-packages``, and Debian " +"wishes to make sure that packages installed via the locally-built " +"interpreter don't show up on ``sys.path`` for the distro interpreter.)" +msgstr "" +"ຕົວຢ່າງ, Fedora ແລະ Debian (ລວມທັງອະນຸພັນຂອງພວກມັນ) ທັງສອງໄດ້ນຳໃຊ້ການແຍກນີ້ໂດຍໃຊ້ ``/usr/" +"local`` ສຳລັບແພັກເກດທີ່ຕິດຕັ້ງແບບ local ແລະ ``/usr`` ສຳລັບແພັກເກດທີ່ຕິດຕັ້ງໂດຍດິສໂຕຣ. " +"Fedora ໃຊ້ ``/usr/local/lib/python3.x/site-packages`` ທຽບກັບ ``/usr/lib/" +"python3.x/site-packages``. (Debian ໃຊ້ ``/usr/local/lib/python3/dist-" +"packages`` ທຽບກັບ ``/usr/lib/python3/dist-packages`` " +"ເພື່ອເປັນອີກຊັ້ນໜຶ່ງຂອງການແຍກອອກຈາກ Python interpreter ທີ່ compile ເອງ: ຖ້າທ່ານ build " +"ແລະ ຕິດຕັ້ງ upstream CPython ໃນ ``/usr/local/bin``, ມັນຈະເບິ່ງທີ່ ``/usr/local/lib/" +"python3/site-packages``, ແລະ Debian ຕ້ອງການໃຫ້ແນ່ໃຈວ່າແພັກເກດທີ່ຕິດຕັ້ງຜ່ານ interpreter " +"ທີ່ build ເອງ ຈະບໍ່ໄປປະກົດໃນ ``sys.path`` ສຳລັບ distro interpreter.)" + +#: ../source/specifications/externally-managed-environments.rst:341 +msgid "" +"Note that the ``/usr/local`` vs. ``/usr`` split is analogous to how the " +"``PATH`` environment variable typically includes ``/usr/local/bin:/usr/bin`` " +"and non-distro software installs to ``/usr/local`` by default. This split is " +"`recommended by the Filesystem Hierarchy Standard`__." +msgstr "" +"ໝາຍເຫດວ່າການແຍກ ``/usr/local`` ທຽບກັບ ``/usr`` ແມ່ນຄ້າຍຄືກັບວິທີທີ່ຕົວປ່ຽນສະພາບແວດລ້ອມ " +"``PATH`` ມັກຈະລວມເອົາ ``/usr/local/bin:/usr/bin`` ແລະ ຊອບແວທີ່ບໍ່ແມ່ນຂອງດິສໂຕຣ " +"ຈະຕິດຕັ້ງລົງໃນ ``/usr/local`` ໂດຍຄ່າເລີ່ມຕົ້ນ. ການແຍກນີ້ແມ່ນ `ແນະນຳໂດຍ Filesystem " +"Hierarchy Standard`__." + +#: ../source/specifications/externally-managed-environments.rst:349 +msgid "" +"There are two ways you could do this. One is, if you are building and " +"packaging Python libraries directly (e.g., your packaging helpers unpack a " +"wheel or call ``setup.py install``), arrange for those tools to use a " +"directory that is not in a ``sysconfig`` scheme but is still on ``sys.path``." +msgstr "" +"ມີສອງວິທີທີ່ທ່ານສາມາດເຮັດໄດ້. ວິທີໜຶ່ງຄື, ຖ້າທ່ານກຳລັງ build ແລະ ເຮັດແພັກເກດໄລບຣາຣີ Python " +"ໂດຍກົງ (ຕົວຢ່າງ ຕົວຊ່ວຍເຮັດແພັກເກດຂອງທ່ານ unpack wheel ຫຼື ເອີ້ນ ``setup.py install``), " +"ໃຫ້ຈັດການໃຫ້ເຄື່ອງມືເຫຼົ່ານັ້ນໃຊ້ໄດເຣັກທໍຣີທີ່ບໍ່ໄດ້ຢູ່ໃນ ``sysconfig`` scheme ແຕ່ຍັງຄົງຢູ່ໃນ " +"``sys.path``." + +#: ../source/specifications/externally-managed-environments.rst:355 +msgid "" +"The other is to arrange for the default ``sysconfig`` scheme to change when " +"running inside a package build versus when running on an installed system. " +"The ``sysconfig`` customization hooks from bpo-43976_ should make this easy " +"(once accepted and implemented): make your packaging tool set an environment " +"variable or some other detectable configuration, and define a " +"``get_preferred_schemes`` function to return a different scheme when called " +"from inside a package build. Then you can use ``pip install`` as part of " +"your distro packaging." +msgstr "" +"ອີກວິທີໜຶ່ງແມ່ນການຈັດການໃຫ້ ``sysconfig`` scheme ເລີ່ມຕົ້ນປ່ຽນໄປເມື່ອລັນຢູ່ພາຍໃນ ການ build " +"ແພັກເກດ ທຽບກັບເມື່ອລັນໃນລະບົບທີ່ຕິດຕັ້ງແລ້ວ. ``sysconfig`` customization hooks ຈາກ " +"bpo-43976_ ຄວນເຮັດໃຫ້ສິ່ງນີ້ງ່າຍຂຶ້ນ (ເມື່ອໄດ້ຮັບການຍອມຮັບ ແລະ ນຳໃຊ້): " +"ໃຫ້ເຄື່ອງມືເຮັດແພັກເກດຂອງທ່ານຕັ້ງຄ່າຕົວປ່ຽນສະພາບແວດລ້ອມ ຫຼື ການຕັ້ງຄ່າອື່ນໆທີ່ກວດສອບໄດ້, ແລະ " +"ກຳນົດຟັງຊັນ ``get_preferred_schemes`` ເພື່ອສົ່ງຄືນ scheme ທີ່ແຕກຕ່າງກັນ " +"ເມື່ອຖືກເອີ້ນຈາກພາຍໃນການ build ແພັກເກດ. ຈາກນັ້ນທ່ານສາມາດໃຊ້ ``pip install`` " +"ເປັນສ່ວນໜຶ່ງຂອງການເຮັດແພັກເກດດິສໂຕຣຂອງທ່ານ." + +#: ../source/specifications/externally-managed-environments.rst:367 +msgid "" +"We propose adding a ``--scheme=...`` option to instruct pip to run against a " +"specific scheme. (See `Implementation Notes`_ below for how pip currently " +"determines schemes.) Once that's available, for local testing and possibly " +"for actual packaging, you would be able to run something like ``pip install " +"--scheme=posix_distro`` to explicitly install a package into your distro's " +"location (bypassing ``get_preferred_schemes``). One could also, if " +"absolutely needed, use ``pip uninstall --scheme=posix_distro`` to use pip to " +"remove packages from the system-managed directory." +msgstr "" +"ພວກເຮົາສະເໜີໃຫ້ເພີ່ມຕົວເລືອກ ``--scheme=...`` ເພື່ອສັ່ງໃຫ້ pip ລັນກັບ scheme " +"ທີ່ສະເພາະເຈາະຈົງ. (ເບິ່ງ `Implementation Notes`_ ຂ້າງລຸ່ມນີ້ສຳລັບວິທີທີ່ pip ກຳນົດ schemes " +"ໃນປະຈຸບັນ.) ເມື່ອສິ່ງນັ້ນພ້ອມໃຊ້ງານ, ສຳລັບການທົດສອບແບບ local ແລະ " +"ອາດຈະລວມເຖິງການເຮັດແພັກເກດຕົວຈິງ, ທ່ານຈະສາມາດລັນບາງຢ່າງເຊັ່ນ ``pip install --" +"scheme=posix_distro`` ເພື່ອຕິດຕັ້ງແພັກເກດລົງໃນສະຖານທີ່ ຂອງດິສໂຕຣຂອງທ່ານໂດຍກົງ (ໂດຍຂ້າມ " +"``get_preferred_schemes``). ນອກນັ້ນ, ຖ້າຈຳເປັນແທ້ໆ, ຍັງສາມາດໃຊ້ ``pip uninstall --" +"scheme=posix_distro`` ເພື່ອໃຊ້ pip ໃນການລຶບແພັກເກດອອກຈາກໄດເຣັກທໍຣີທີ່ລະບຸຈັດການ." + +#: ../source/specifications/externally-managed-environments.rst:377 +msgid "" +"To install packages with pip, you would also need to either suppress the " +"``EXTERNALLY-MANAGED`` marker file to allow pip to run or to override it on " +"the command line. You may want to use the same means for suppressing the " +"marker file in build chroots as you do in container images." +msgstr "" +"ໃນການຕິດຕັ້ງແພັກເກດດ້ວຍ pip, ທ່ານຍັງຕ້ອງປິດໃຊ້ງານໄຟລ໌ເຄື່ອງໝາຍ ``EXTERNALLY-MANAGED`` " +"ເພື່ອອະນຸຍາດໃຫ້ pip ລັນໄດ້ ຫຼື override ມັນຜ່ານ command line. ທ່ານອາດຈະຕ້ອງການ " +"ໃຊ້ວິທີດຽວກັນໃນການປິດໃຊ້ງານໄຟລ໌ເຄື່ອງໝາຍໃນ build chroots ຄືກັບທີ່ທ່ານເຮັດໃນ container " +"images." + +#: ../source/specifications/externally-managed-environments.rst:383 +msgid "" +"The advantage of setting these up to be automatic (suppressing the marker " +"file in your build environment and having ``get_preferred_schemes`` " +"automatically return your distro's scheme) is that an unadorned ``pip " +"install`` will work inside a package build, which generally means that an " +"unmodified upstream build script that happens to internally call ``pip " +"install`` will do the right thing. You can, of course, just ensure that your " +"packaging process always calls ``pip install --scheme=posix_distro --break-" +"system-packages``, which would work too." +msgstr "" +"ຂໍ້ດີຂອງການຕັ້ງຄ່າສິ່ງເຫຼົ່ານີ້ໃຫ້ເປັນອັດຕະໂນມັດ (ການປິດໃຊ້ງານໄຟລ໌ເຄື່ອງໝາຍໃນ ສະພາບແວດລ້ອມການ build " +"ຂອງທ່ານ ແລະ ໃຫ້ ``get_preferred_schemes`` ສົ່ງຄືນ scheme " +"ຂອງດິສໂຕຣຂອງທ່ານໂດຍອັດຕະໂນມັດ) ແມ່ນການລັນ ``pip install`` ແບບທຳມະດາ " +"ຈະເຮັດວຽກໄດ້ພາຍໃນການ build ແພັກເກດ, ເຊິ່ງໂດຍທົ່ວໄປແລ້ວໝາຍຄວາມວ່າ build script " +"ຕົ້ນທາງທີ່ບໍ່ໄດ້ຖືກດັດແກ້ ເຊິ່ງບັງເອີນເອີ້ນໃຊ້ ``pip install`` ພາຍໃນ ຈະເຮັດວຽກ ໄດ້ຢ່າງຖືກຕ້ອງ. " +"ແນ່ນອນວ່າ ທ່ານພຽງແຕ່ຮັບປະກັນວ່າຂະບວນການເຮັດແພັກເກດຂອງທ່ານ ເອີ້ນໃຊ້ ``pip install --" +"scheme=posix_distro --break-system-packages`` ສະເໝີ, ເຊິ່ງມັນກໍຈະເຮັດວຽກໄດ້ຄືກັນ." + +#: ../source/specifications/externally-managed-environments.rst:393 +msgid "" +"The best approach here depends a lot on your distro's conventions and " +"mechanisms for packaging." +msgstr "ວິທີການທີ່ດີທີ່ສຸດຢູ່ທີ່ນີ້ແມ່ນຂຶ້ນກັບທຳນຽມ ແລະ ກົນໄກການເຮັດແພັກເກດຂອງດິສໂຕຣຂອງທ່ານຫຼາຍ." + +#: ../source/specifications/externally-managed-environments.rst:396 +msgid "" +"Similarly, the ``sysconfig`` paths that are not for importable Python code - " +"that is, ``include``, ``platinclude``, ``scripts``, and ``data`` - should " +"also have two variants, one for use by distro-packaged software and one for " +"use for locally-installed software, and the distro should be set up such " +"that both are usable. For instance, a typical FHS-compliant distro will use " +"``/usr/local/include`` for the default scheme's ``include`` and ``/usr/" +"include`` for distro-packaged headers and place both on the compiler's " +"search path, and it will use ``/usr/local/bin`` for the default scheme's " +"``scripts`` and ``/usr/bin`` for distro-packaged entry points and place both " +"on ``$PATH``." +msgstr "" +"ໃນທຳນອງດຽວກັນ, ເສັ້ນທາງ ``sysconfig`` ທີ່ບໍ່ແມ່ນສຳລັບລະຫັດ Python ທີ່ import ໄດ້ - ນັ້ນຄື " +"``include``, ``platinclude``, ``scripts``, ແລະ ``data`` - ຄວນມີສອງ ຮູບແບບຄືກັນ, " +"ອັນໜຶ່ງສຳລັບໃຊ້ໂດຍຊອບແວທີ່ເຮັດແພັກເກດໂດຍດິສໂຕຣ ແລະ ອີກອັນໜຶ່ງ ສຳລັບໃຊ້ສຳລັບຊອບແວທີ່ຕິດຕັ້ງແບບ " +"local, ແລະ ດິສໂຕຣຄວນຖືກຕັ້ງຄ່າໃຫ້ສາມາດ ໃຊ້ງານໄດ້ທັງສອງຢ່າງ. ຕົວຢ່າງ, ດິສໂຕຣທີ່ສອດຄ່ອງກັບ FHS " +"ທົ່ວໄປຈະໃຊ້ ``/usr/local/include`` ສຳລັບ ``include`` ຂອງ scheme ເລີ່ມຕົ້ນ ແລະ ``/usr/" +"include`` ສຳລັບ headers ທີ່ເຮັດແພັກເກດໂດຍດິສໂຕຣ ແລະ ວາງທັງສອງໄວ້ໃນ search path ຂອງ " +"compiler, ແລະ ມັນຈະໃຊ້ ``/usr/local/bin`` ສຳລັບ ``scripts`` ຂອງ scheme ເລີ່ມຕົ້ນ " +"ແລະ ``/usr/bin`` ສຳລັບ entry points ທີ່ເຮັດແພັກເກດໂດຍດິສໂຕຣ ແລະ ວາງທັງສອງໄວ້ໃນ " +"``$PATH``." + +#: ../source/specifications/externally-managed-environments.rst:410 +msgid "Implementation Notes" +msgstr "ໝາຍເຫດການນຳໃຊ້" + +#: ../source/specifications/externally-managed-environments.rst:412 +msgid "" +"This section is non-normative and contains notes relevant to both the " +"specification and potential implementations." +msgstr "" +"ພາກສ່ວນນີ້ບໍ່ແມ່ນຂໍ້ບັງຄັບ ແລະ ປະກອບດ້ວຍໝາຍເຫດທີ່ກ່ຽວຂ້ອງກັບທັງຂໍ້ກຳນົດ ແລະ ການນຳໃຊ້ທີ່ອາດຈະເກີດຂຶ້ນ." + +#: ../source/specifications/externally-managed-environments.rst:415 +msgid "" +"Currently (as of May 2021), pip does not directly expose a way to choose a " +"target ``sysconfig`` scheme, but it has three ways of looking up schemes " +"when installing:" +msgstr "" +"ໃນປະຈຸບັນ (ຂໍ້ມູນເດືອນພຶດສະພາ 2021), pip ຍັງບໍ່ໄດ້ເປີດເຜີຍວິທີການເລືອກເປົ້າໝາຍ ``sysconfig`` " +"scheme ໂດຍກົງ, ແຕ່ມັນມີສາມວິທີໃນການຄົ້ນຫາ schemes ເມື່ອຕິດຕັ້ງ:" + +#: ../source/specifications/externally-managed-environments.rst:422 +msgid "``pip install``" +msgstr "``pip install``" + +#: ../source/specifications/externally-managed-environments.rst:420 +msgid "" +"Calls ``sysconfig.get_default_scheme()``, which is usually (in upstream " +"CPython and most current distros) the same as " +"``get_preferred_scheme('prefix')``." +msgstr "" +"ເອີ້ນໃຊ້ ``sysconfig.get_default_scheme()``, ເຊິ່ງປົກກະຕິແລ້ວ (ໃນ upstream CPython " +"ແລະ ດິສໂຕຣສ່ວນໃຫຍ່ໃນປະຈຸບັນ) ຈະຄືກັນກັບ ``get_preferred_scheme('prefix')``." + +#: ../source/specifications/externally-managed-environments.rst:425 +msgid "``pip install --prefix=/some/path``" +msgstr "``pip install --prefix=/some/path``" + +#: ../source/specifications/externally-managed-environments.rst:425 +msgid "Calls ``sysconfig.get_preferred_scheme('prefix')``." +msgstr "ເອີ້ນໃຊ້ ``sysconfig.get_preferred_scheme('prefix')``." + +#: ../source/specifications/externally-managed-environments.rst:428 +msgid "``pip install --user``" +msgstr "``pip install --user``" + +#: ../source/specifications/externally-managed-environments.rst:428 +msgid "Calls ``sysconfig.get_preferred_scheme('user')``." +msgstr "ເອີ້ນໃຊ້ ``sysconfig.get_preferred_scheme('user')``." + +#: ../source/specifications/externally-managed-environments.rst:430 +msgid "" +"Finally, ``pip install --target=/some/path`` writes directly to ``/some/" +"path`` without looking up any schemes." +msgstr "" +"ສຸດທ້າຍ, ``pip install --target=/some/path`` ຈະຂຽນລົງໃນ ``/some/path`` ໂດຍກົງ " +"ໂດຍບໍ່ມີການຄົ້ນຫາ schemes ໃດໆ." + +#: ../source/specifications/externally-managed-environments.rst:433 +msgid "" +"Debian currently carries a `patch to change the default install location " +"inside a virtual environment`__, using a few heuristics (including checking " +"for the ``VIRTUAL_ENV`` environment variable), largely so that the directory " +"used in a virtual environment remains ``site-packages`` and not ``dist-" +"packages``. This does not particularly affect this proposal, because the " +"implementation of that patch does not actually change the default " +"``sysconfig`` scheme, and notably does not change the result of " +"``sysconfig.get_path(\"stdlib\")``." +msgstr "" +"ປະຈຸບັນ Debian ໃຊ້ `patch ເພື່ອປ່ຽນສະຖານທີ່ຕິດຕັ້ງເລີ່ມຕົ້ນພາຍໃນ virtual environment`__, " +"ໂດຍໃຊ້ຫຼັກການຄາດຄະເນບາງຢ່າງ (ລວມທັງການກວດສອບຕົວປ່ຽນສະພາບແວດລ້ອມ ``VIRTUAL_ENV``), " +"ສ່ວນໃຫຍ່ແມ່ນເພື່ອໃຫ້ໄດເຣັກທໍຣີທີ່ໃຊ້ໃນ virtual environment ຍັງຄົງເປັນ ``site-packages`` ແລະ " +"ບໍ່ແມ່ນ ``dist-packages``. ສິ່ງນີ້ບໍ່ໄດ້ສົ່ງຜົນກະທົບຕໍ່ຂໍ້ສະເໜີນີ້ໂດຍສະເພາະ, ເພາະວ່າ ການນຳໃຊ້ patch " +"ນັ້ນບໍ່ໄດ້ປ່ຽນແປງ ``sysconfig`` scheme ເລີ່ມຕົ້ນແທ້ໆ, ແລະ ທີ່ສຳຄັນແມ່ນບໍ່ໄດ້ປ່ຽນແປງຜົນລັດຂອງ " +"``sysconfig.get_path(\"stdlib\")``." + +#: ../source/specifications/externally-managed-environments.rst:445 +msgid "" +"Fedora currently carries a `patch to change the default install location " +"when not running inside rpmbuild`__, which they use to implement the two-" +"system-wide-directories approach. This is conceptually the sort of hook " +"envisioned by bpo-43976_, except implemented as a code patch to " +"``distutils`` instead of as a changed ``sysconfig`` scheme." +msgstr "" +"ປະຈຸບັນ Fedora ໃຊ້ `patch ເພື່ອປ່ຽນສະຖານທີ່ຕິດຕັ້ງເລີ່ມຕົ້ນເມື່ອບໍ່ໄດ້ລັນພາຍໃນ rpmbuild`__, " +"ເຊິ່ງພວກເຂົາໃຊ້ເພື່ອຈັດການແບບສອງໄດເຣັກທໍຣີທົ່ວລະບົບ. ສິ່ງນີ້ເປັນແນວຄິດແບບດຽວກັນກັບ hook ທີ່ຄາດໄວ້ໂດຍ " +"bpo-43976_, ຍົກເວັ້ນມັນຖືກນຳໃຊ້ເປັນ code patch ໃນ ``distutils`` ແທນທີ່ຈະເປັນການປ່ຽນແປງ " +"``sysconfig`` scheme." + +#: ../source/specifications/externally-managed-environments.rst:454 +msgid "" +"The implementation of ``is_virtual_environment`` above, as well as the logic " +"to load the ``EXTERNALLY-MANAGED`` file and find the error message from it, " +"may as well get added to the standard library (``sys`` and ``sysconfig``, " +"respectively), to centralize their implementations, but they don't need to " +"be added yet." +msgstr "" +"ການນຳໃຊ້ ``is_virtual_environment`` ຂ້າງເທິງ, ລວມທັງໂລຈິກໃນການໂຫລດໄຟລ໌ " +"``EXTERNALLY-MANAGED`` ແລະ ຄົ້ນຫາຂໍ້ຄວາມຂໍ້ຜິດພາດຈາກມັນ, ອາດຈະຖືກເພີ່ມເຂົ້າໃນ " +"ໄລບຣາຣີມາດຕະຖານ (``sys`` ແລະ ``sysconfig`` ຕາມລຳດັບ), ເພື່ອເຮັດໃຫ້ການນຳໃຊ້ " +"ເປັນສູນກາງ, ແຕ່ພວກມັນຍັງບໍ່ຈຳເປັນຕ້ອງຖືກເພີ່ມເຂົ້າໃນຕອນນີ້." + +#: ../source/specifications/externally-managed-environments.rst:464 +msgid "Copyright" +msgstr "ລິຂະສິດ" + +#: ../source/specifications/externally-managed-environments.rst:466 +msgid "" +"This document is placed in the public domain or under the CC0-1.0-Universal " +"license, whichever is more permissive." +msgstr "" +"ເອກະສານນີ້ຖືກເຜີຍແຜ່ເປັນສົມບັດສາທາລະນະ ຫຼື ພາຍໃຕ້ໃບອະນຸຍາດ CC0-1.0-Universal, " +"ແລ້ວແຕ່ອັນໃດຈະໃຫ້ອິດສະລະຫຼາຍກວ່າ." + +#: ../source/specifications/externally-managed-environments.rst:474 +msgid "June 2022: This specification was approved through :pep:`668`." +msgstr "ມິຖຸນາ 2022: ຂໍ້ກຳນົດນີ້ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`668`." + +#: ../source/specifications/file-yanking.rst:5 +msgid "File Yanking" +msgstr "ການຖອນໄຟລ໌ອອກ (File Yanking)" + +#: ../source/specifications/file-yanking.rst:9 +msgid "This specification was originally defined in :pep:`592`." +msgstr "ຂໍ້ກຳນົດນີ້ຖືກກຳນົດຂຶ້ນໃນເບື້ອງຕົ້ນໃນ :pep:`592`." + +#: ../source/specifications/file-yanking.rst:14 +msgid "" +":pep:`592` includes changes to the HTML and JSON index APIs. These changes " +"are documented in the :ref:`simple-repository-api` under :ref:`HTML - " +"Project Detail ` and :ref:`JSON - " +"Project Detail `." +msgstr "" +":pep:`592` ລວມມີການປ່ຽນແປງໃນ HTML ແລະ JSON index APIs. ການປ່ຽນແປງເຫຼົ່ານີ້ " +"ຖືກບັນທຶກໄວ້ໃນ :ref:`simple-repository-api` ພາຍໃຕ້ :ref:`HTML - Project Detail " +"` ແລະ :ref:`JSON - Project Detail " +"`." + +#: ../source/specifications/file-yanking.rst:22 +msgid "" +"Links in the simple repository **MAY** have a ``data-yanked`` attribute " +"which may have no value, or may have an arbitrary string as a value. The " +"presence of a ``data-yanked`` attribute **SHOULD** be interpreted as " +"indicating that the file pointed to by this particular link has been " +"\"Yanked\", and should not generally be selected by an installer, except " +"under specific scenarios." +msgstr "" +"ລິ້ງໃນ simple repository **ອາດຈະ** ມີແອດທຣິບິວ ``data-yanked`` ເຊິ່ງອາດຈະບໍ່ມີຄ່າ, ຫຼື " +"ອາດຈະມີຂໍ້ຄວາມໃດໆກໍໄດ້ເປັນຄ່າ. ການມີຢູ່ຂອງແອດທຣິບິວ ``data-yanked`` **ຄວນ** ຖືກຕີຄວາມໝາຍວ່າ " +"ໄຟລ໌ທີ່ລິ້ງນີ້ຊີ້ໄປຫານັ້ນຖືກ \"Yanked\" (ຖອນອອກ), ແລະ ໂດຍທົ່ວໄປແລ້ວ ບໍ່ຄວນຖືກເລືອກໂດຍຕົວຕິດຕັ້ງ, " +"ຍົກເວັ້ນພາຍໃຕ້ສະຖານະການທີ່ສະເພາະເຈາະຈົງ." + +#: ../source/specifications/file-yanking.rst:29 +msgid "" +"The value of the ``data-yanked`` attribute, if present, is an arbitrary " +"string that represents the reason for why the file has been yanked. Tools " +"that process the simple repository API **MAY** surface this string to end " +"users." +msgstr "" +"ຄ່າຂອງແອດທຣິບິວ ``data-yanked``, ຖ້າມີ, ແມ່ນຂໍ້ຄວາມໃດໆກໍໄດ້ທີ່ສະແດງເຖິງເຫດຜົນ ທີ່ໄຟລ໌ນັ້ນຖືກ " +"yanked. ເຄື່ອງມືທີ່ປະມວນຜົນ simple repository API **ອາດຈະ** ສະແດງຂໍ້ຄວາມນີ້ໃຫ້ກັບຜູ້ໃຊ້ໄດ້." + +#: ../source/specifications/file-yanking.rst:34 +msgid "" +"The yanked attribute is not immutable once set, and may be rescinded in the " +"future (and once rescinded, may be reset as well). Thus API users **MUST** " +"be able to cope with a yanked file being \"unyanked\" (and even yanked " +"again)." +msgstr "" +"ແອດທຣິບິວ yanked ບໍ່ແມ່ນສິ່ງທີ່ປ່ຽນແປງບໍ່ໄດ້ເມື່ອຖືກຕັ້ງຄ່າແລ້ວ, ແລະ ອາດຈະຖືກຍົກເລີກ ໃນອະນາຄົດ (ແລະ " +"ເມື່ອຍົກເລີກແລ້ວ, ກໍອາດຈະຖືກຕັ້ງໃໝ່ໄດ້ອີກ). ດັ່ງນັ້ນ, ຜູ້ໃຊ້ API **ຕ້ອງ** ສາມາດຮັບມືກັບໄຟລ໌ທີ່ຖືກ " +"yanked ທີ່ກາຍເປັນ \"unyanked\" (ແລະ ແມ່ນແຕ່ຖືກ yanked ອີກຄັ້ງ)." + +#: ../source/specifications/file-yanking.rst:40 +msgid "Installers" +msgstr "ຕົວຕິດຕັ້ງ" + +#: ../source/specifications/file-yanking.rst:42 +msgid "" +"The desirable experience for users is that once a file is yanked, when a " +"human being is currently trying to directly install a yanked file, that it " +"fails as if that file had been deleted. However, when a human did that " +"awhile ago, and now a computer is just continuing to mechanically follow the " +"original order to install the now yanked file, then it acts as if it had not " +"been yanked." +msgstr "" +"ປະສົບການທີ່ດີສຳລັບຜູ້ໃຊ້ຄື ເມື່ອໄຟລ໌ໃດໜຶ່ງຖືກ yanked ແລ້ວ, ຖ້າມີຄົນພະຍາຍາມຕິດຕັ້ງ ໄຟລ໌ນັ້ນໂດຍກົງ, " +"ມັນຄວນຈະລົ້ມເຫຼວຄືກັບວ່າໄຟລ໌ນັ້ນຖືກລຶບໄປແລ້ວ. ແນວໃດກໍຕາມ, ຖ້າມີຄົນເຄີຍສັ່ງໄວ້ກ່ອນໜ້ານັ້ນ, ແລະ " +"ຕອນນີ້ຄອມພິວເຕີພຽງແຕ່ເຮັດຕາມຄຳສັ່ງເດີມ ເພື່ອຕິດຕັ້ງໄຟລ໌ທີ່ຖືກ yanked ນັ້ນ, " +"ມັນກໍຄວນເຮັດວຽກຄືກັບວ່າມັນບໍ່ໄດ້ຖືກ yanked." + +#: ../source/specifications/file-yanking.rst:49 +msgid "" +"An installer **MUST** ignore yanked releases, if the selection constraints " +"can be satisfied with a non-yanked version, and **MAY** refuse to use a " +"yanked release even if it means that the request cannot be satisfied at all. " +"An implementation **SHOULD** choose a policy that follows the spirit of the " +"intention above, and that prevents \"new\" dependencies on yanked releases/" +"files." +msgstr "" +"ຕົວຕິດຕັ້ງ **ຕ້ອງ** ລະເລີຍລຸ້ນ (releases) ທີ່ຖືກ yanked, ຖ້າເງື່ອນໄຂການເລືອກ " +"ສາມາດຖືກຕອບສະໜອງໄດ້ດ້ວຍເວີຊັນທີ່ບໍ່ໄດ້ຖືກ yanked, ແລະ **ອາດຈະ** ປະຕິເສດ ການໃຊ້ລຸ້ນທີ່ຖືກ " +"yanked ເຖິງແມ່ນວ່າມັນຈະໝາຍຄວາມວ່າຄຳຮ້ອງຂໍນັ້ນບໍ່ສາມາດ ຕອບສະໜອງໄດ້ເລີຍກໍຕາມ. ການນຳໃຊ້ " +"**ຄວນ** ເລືອກນະໂຍບາຍທີ່ປະຕິບັດຕາມ ເຈດຕະນາຂ້າງເທິງ, ແລະ ປ້ອງກັນ dependencies \"ໃໝ່\" " +"ໃນລຸ້ນ/ໄຟລ໌ທີ່ຖືກ yanked." + +#: ../source/specifications/file-yanking.rst:56 +msgid "" +"What this means is left up to the specific installer, to decide how to best " +"fit into the overall usage of their installer. However, there are two " +"suggested approaches to take:" +msgstr "" +"ສິ່ງນີ້ໝາຍຄວາມວ່າແນວໃດແມ່ນຂຶ້ນກັບຕົວຕິດຕັ້ງແຕ່ລະອັນ, ໃນການຕັດສິນໃຈວ່າ " +"ສິ່ງໃດເໝາະສົມທີ່ສຸດກັບການໃຊ້ງານໂດຍລວມ. ແນວໃດກໍຕາມ, ມີສອງວິທີທີ່ແນະນຳ:" + +#: ../source/specifications/file-yanking.rst:60 +msgid "" +"Yanked files are always ignored, unless they are the only file that matches " +"a version specifier that \"pins\" to an exact version using either ``==`` " +"(without any modifiers that make it a range, such as ``.*``) or ``===``. " +"Matching this version specifier should otherwise be done as per :ref:`the " +"version specifiers specification ` for things like local " +"versions, zero padding, etc." +msgstr "" +"ໄຟລ໌ທີ່ຖືກ Yanked ຈະຖືກລະເລີຍສະເໝີ, ເວັ້ນເສຍແຕ່ວ່າມັນເປັນໄຟລ໌ດຽວທີ່ກົງກັບ ຕົວລະບຸເວີຊັນທີ່ \"pin\" " +"(ລັອກ) ໄວ້ກັບເວີຊັນທີ່ແນ່ນອນໂດຍໃຊ້ ``==`` (ໂດຍບໍ່ມີຕົວແກ້ໄຂທີ່ເຮັດໃຫ້ເປັນຊ່ວງ ເຊັ່ນ ``.*``) ຫຼື " +"``===``. ການຈັບຄູ່ຕົວລະບຸເວີຊັນນີ້ຄວນເຮັດຕາມ :ref:`the version specifiers " +"specification ` ສຳລັບສິ່ງຕ່າງໆເຊັ່ນ local versions, zero " +"padding ແລະ ອື່ນໆ." + +#: ../source/specifications/file-yanking.rst:67 +msgid "" +"Yanked files are always ignored, unless they are the only file that matches " +"what a lock file (such as ``Pipfile.lock`` or ``poetry.lock``) specifies to " +"be installed. In this case, a yanked file **SHOULD** not be used when " +"creating or updating a lock file from some input file or command." +msgstr "" +"ໄຟລ໌ທີ່ຖືກ Yanked ຈະຖືກລະເລີຍສະເໝີ, ເວັ້ນເສຍແຕ່ວ່າມັນເປັນໄຟລ໌ດຽວທີ່ກົງກັບ ສິ່ງທີ່ lock file (ເຊັ່ນ " +"``Pipfile.lock`` ຫຼື ``poetry.lock``) ກຳນົດໃຫ້ຕິດຕັ້ງ. ໃນກໍລະນີນີ້, ໄຟລ໌ທີ່ຖືກ yanked " +"**ບໍ່ຄວນ** ຖືກໃຊ້ເມື່ອສ້າງ ຫຼື ອັບເດດ lock file ຈາກໄຟລ໌ນຳເຂົ້າ ຫຼື ຄຳສັ່ງໃດໜຶ່ງ." + +#: ../source/specifications/file-yanking.rst:73 +msgid "" +"Regardless of the specific strategy that an installer chooses for deciding " +"when to install yanked files, an installer **SHOULD** emit a warning when it " +"does decide to install a yanked file. That warning **MAY** utilize the value " +"of the ``data-yanked`` attribute (if it has a value) to provide more " +"specific feedback to the user about why that file had been yanked." +msgstr "" +"ບໍ່ວ່າຕົວຕິດຕັ້ງຈະເລືອກກົນລະຍຸດໃດໃນການຕັດສິນໃຈວ່າຈະຕິດຕັ້ງໄຟລ໌ທີ່ຖືກ yanked ເມື່ອໃດ, ຕົວຕິດຕັ້ງ " +"**ຄວນ** ສະແດງຄຳເຕືອນເມື່ອມັນຕັດສິນໃຈຕິດຕັ້ງໄຟລ໌ທີ່ຖືກ yanked. ຄຳເຕືອນນັ້ນ **ອາດຈະ** " +"ໃຊ້ຄ່າຂອງແອດທຣິບິວ ``data-yanked`` (ຖ້າມີຄ່າ) ເພື່ອໃຫ້ຂໍ້ມູນເພີ່ມເຕີມແກ່ຜູ້ໃຊ້ວ່າເປັນຫຍັງໄຟລ໌ນັ້ນຈຶ່ງຖືກ " +"yanked." + +#: ../source/specifications/file-yanking.rst:81 +msgid "Mirrors" +msgstr "ບ່ອນເກັບສຳຮອງ (Mirrors)" + +#: ../source/specifications/file-yanking.rst:83 +msgid "Mirrors can generally treat yanked files one of two ways:" +msgstr "Mirrors ໂດຍທົ່ວໄປແລ້ວສາມາດຈັດການກັບໄຟລ໌ທີ່ຖືກ yanked ໄດ້ສອງວິທີ:" + +#: ../source/specifications/file-yanking.rst:85 +msgid "" +"They may choose to omit them from their simple repository API completely, " +"providing a view over the repository that shows only \"active\", unyanked " +"files." +msgstr "" +"ພວກເຂົາອາດຈະເລືອກທີ່ຈະຕັດພວກມັນອອກຈາກ simple repository API ຂອງພວກເຂົາທັງໝົດ, " +"ໂດຍການສະແດງສະເພາະໄຟລ໌ທີ່ \"active\" ແລະ ບໍ່ໄດ້ຖືກ yanked ເທົ່ານັ້ນ." + +#: ../source/specifications/file-yanking.rst:88 +msgid "" +"They may choose to include yanked files, and additionally mirror the ``data-" +"yanked`` attribute as well." +msgstr "" +"ພວກເຂົາອາດຈະເລືອກທີ່ຈະລວມເອົາໄຟລ໌ທີ່ຖືກ yanked, ແລະ mirror ແອດທຣິບິວ ``data-yanked`` " +"ໄປພ້ອມກັນນຳ." + +#: ../source/specifications/file-yanking.rst:91 +msgid "" +"Mirrors **MUST NOT** mirror a yanked file without also mirroring the ``data-" +"yanked`` attribute for it." +msgstr "" +"Mirrors **ຕ້ອງບໍ່** mirror ໄຟລ໌ທີ່ຖືກ yanked ໂດຍບໍ່ໄດ້ mirror ແອດທຣິບິວ ``data-yanked`` " +"ຂອງມັນໄປນຳ." + +#: ../source/specifications/glob-patterns.rst:3 +msgid "``glob`` patterns" +msgstr "ຮູບແບບ ``glob``" + +#: ../source/specifications/glob-patterns.rst:5 +msgid "" +"Some PyPA specifications, e.g. :ref:`pyproject.toml's license-files " +"`, accept certain types of *glob patterns* to " +"match a given string containing wildcards and character ranges against files " +"and directories. This specification defines which patterns are acceptable " +"and how they should be handled." +msgstr "" +"ຂໍ້ກຳນົດຂອງ PyPA ບາງຢ່າງ, ເຊັ່ນ :ref:`pyproject.toml's license-files `, ຍອມຮັບ *glob patterns* ບາງປະເພດ ເພື່ອຈັບຄູ່ຂໍ້ຄວາມທີ່ມີ wildcards " +"ແລະ ຊ່ວງຕົວອັກສອນກັບໄຟລ໌ ແລະ ໄດເຣັກທໍຣີ. ຂໍ້ກຳນົດນີ້ກຳນົດວ່າຮູບແບບໃດແດ່ທີ່ຍອມຮັບໄດ້ ແລະ " +"ຄວນຈັດການກັບພວກມັນແນວໃດ." + +#: ../source/specifications/glob-patterns.rst:13 +msgid "Valid glob patterns" +msgstr "ຮູບແບບ glob ທີ່ຖືກຕ້ອງ" + +#: ../source/specifications/glob-patterns.rst:15 +msgid "" +"For PyPA purposes, a *valid glob pattern* MUST be a string matched against " +"filesystem entries as specified below:" +msgstr "" +"ສຳລັບຈຸດປະສົງຂອງ PyPA, *ຮູບແບບ glob ທີ່ຖືກຕ້ອງ* ຕ້ອງເປັນຂໍ້ຄວາມທີ່ຈັບຄູ່ກັບ " +"ລາຍການໃນລະບົບໄຟລ໌ຕາມທີ່ລະບຸໄວ້ຂ້າງລຸ່ມນີ້:" + +#: ../source/specifications/glob-patterns.rst:18 +msgid "" +"Alphanumeric characters, spaces (`` ``), underscores (``_``), hyphens (``-" +"``), and dots (``.``) MUST be matched verbatim." +msgstr "" +"ຕົວອັກສອນ ແລະ ຕົວເລກ, ຊ່ອງຫວ່າງ (`` ``), ເຄື່ອງໝາຍຂີດກ້ອງ (``_``), ຂີດຕໍ່ (``-``), ແລະ " +"ຈຸດ (``.``) ຕ້ອງຖືກຈັບຄູ່ຕາມຕົວອັກສອນນັ້ນແທ້ໆ." + +#: ../source/specifications/glob-patterns.rst:21 +msgid "" +"Special glob characters: ``*``, ``?``, ``**`` and character ranges: ``[]`` " +"containing only the verbatim matched characters MUST be supported. Within " +"``[...]``, the hyphen indicates a locale-agnostic range (e.g. ``a-z``, order " +"based on Unicode code points). Hyphens at the start or end are matched " +"literally." +msgstr "" +"ຕົວອັກສອນ glob ພິເສດ: ``*``, ``?``, ``**`` ແລະ ຊ່ວງຕົວອັກສອນ: ``[]`` " +"ທີ່ປະກອບດ້ວຍຕົວອັກສອນທີ່ຈັບຄູ່ຕາມຕົວຈິງເທົ່ານັ້ນ ຕ້ອງໄດ້ຮັບການຮອງຮັບ. ພາຍໃນ ``[...]``, " +"ເຄື່ອງໝາຍຂີດຕໍ່ບົ່ງບອກເຖິງຊ່ວງທີ່ບໍ່ຂຶ້ນກັບ locale (ຕົວຢ່າງ ``a-z``, ລຽງລຳດັບຕາມ Unicode code " +"points). ຂີດຕໍ່ທີ່ຢູ່ຕົ້ນ ຫຼື ທ້າຍຈະຖືກຈັບຄູ່ຕາມຕົວອັກສອນ." + +#: ../source/specifications/glob-patterns.rst:27 +msgid "Path delimiters MUST be the forward slash character (``/``)." +msgstr "ຕົວແຍກເສັ້ນທາງ (path delimiters) ຕ້ອງເປັນເຄື່ອງໝາຍທັບ (``/``)." + +#: ../source/specifications/glob-patterns.rst:29 +msgid "" +"Patterns always refer to *relative paths*, e.g., when used " +"in :file:`pyproject.toml`, patterns should always be relative to the " +"directory containing that file. Therefore the leading slash character MUST " +"NOT be used." +msgstr "" +"ຮູບແບບຕ່າງໆຈະອ້າງອີງເຖິງ *relative paths* (ເສັ້ນທາງສຳພັດ) ສະເໝີ, ຕົວຢ່າງ " +"ເມື່ອໃຊ້ໃນ :file:`pyproject.toml`, ຮູບແບບຄວນຈະສຳພັດກັບໄດເຣັກທໍຣີ ທີ່ບັນຈຸໄຟລ໌ນັ້ນສະເໝີ. ດັ່ງນັ້ນ, " +"ຕ້ອງບໍ່ໃຊ້ເຄື່ອງໝາຍທັບນຳໜ້າ." + +#: ../source/specifications/glob-patterns.rst:34 +msgid "Parent directory indicators (``..``) MUST NOT be used." +msgstr "ຕ້ອງບໍ່ໃຊ້ຕົວບົ່ງບອກໄດເຣັກທໍຣີແມ່ (``..``)." + +#: ../source/specifications/glob-patterns.rst:36 +msgid "" +"Any characters or character sequences not covered by this specification are " +"invalid. Projects MUST NOT use such values. Tools consuming glob patterns " +"SHOULD reject invalid values with an error." +msgstr "" +"ຕົວອັກສອນ ຫຼື ລຳດັບຕົວອັກສອນໃດໆທີ່ບໍ່ໄດ້ກວມເອົາໃນຂໍ້ກຳນົດນີ້ ແມ່ນຖືວ່າບໍ່ຖືກຕ້ອງ. " +"ໂຄງການຕ່າງໆຕ້ອງບໍ່ໃຊ້ຄ່າດັ່ງກ່າວ. ເຄື່ອງມືທີ່ໃຊ້ຮູບແບບ glob ຄວນປະຕິເສດ " +"ຄ່າທີ່ບໍ່ຖືກຕ້ອງດ້ວຍການແຈ້ງເຕືອນຂໍ້ຜິດພາດ." + +#: ../source/specifications/glob-patterns.rst:40 +msgid "" +"Literal paths (e.g. :file:`LICENSE`) are valid globs which means they can " +"also be defined." +msgstr "" +"ເສັ້ນທາງແບບຊື່ໆ (ຕົວຢ່າງ :file:`LICENSE`) ແມ່ນ glob ທີ່ຖືກຕ້ອງ ເຊິ່ງໝາຍຄວາມວ່າ " +"ພວກມັນສາມາດຖືກກຳນົດໄດ້ຄືກັນ." + +#: ../source/specifications/glob-patterns.rst:43 +msgid "Tools consuming glob patterns:" +msgstr "ເຄື່ອງມືທີ່ໃຊ້ຮູບແບບ glob:" + +#: ../source/specifications/glob-patterns.rst:45 +msgid "" +"MUST treat each value as a glob pattern, and MUST raise an error if the " +"pattern contains invalid glob syntax." +msgstr "" +"ຕ້ອງຖືວ່າແຕ່ລະຄ່າເປັນຮູບແບບ glob, ແລະ ຕ້ອງແຈ້ງເຕືອນຂໍ້ຜິດພາດຖ້າຮູບແບບນັ້ນ ມີໄວຍາກອນ glob " +"ທີ່ບໍ່ຖືກຕ້ອງ." + +#: ../source/specifications/glob-patterns.rst:47 +msgid "" +"MUST raise an error if any individual user-specified pattern does not match " +"at least one file." +msgstr "ຕ້ອງແຈ້ງເຕືອນຂໍ້ຜິດພາດ ຖ້າຮູບແບບໃດໜຶ່ງທີ່ຜູ້ໃຊ້ກຳນົດເອງ ບໍ່ກົງກັບໄຟລ໌ໃດເລີຍຢ່າງໜ້ອຍໜຶ່ງໄຟລ໌." + +#: ../source/specifications/glob-patterns.rst:50 +msgid "Examples of valid glob patterns:" +msgstr "ຕົວຢ່າງຂອງຮູບແບບ glob ທີ່ຖືກຕ້ອງ:" + +#: ../source/specifications/glob-patterns.rst:61 +msgid "Examples of invalid glob patterns:" +msgstr "ຕົວຢ່າງຂອງຮູບແບບ glob ທີ່ບໍ່ຖືກຕ້ອງ:" + +#: ../source/specifications/glob-patterns.rst:74 +msgid "Reference implementation in Python" +msgstr "ການນຳໃຊ້ຕົວຢ່າງໃນພາສາ Python" + +#: ../source/specifications/glob-patterns.rst:76 +msgid "" +"It is possible to defer the majority of the pattern matching against the " +"file system to the :mod:`glob` module in Python's standard library. It is " +"necessary however to perform additional validations." +msgstr "" +"ມັນເປັນໄປໄດ້ທີ່ຈະມອບໝາຍການຈັບຄູ່ຮູບແບບສ່ວນໃຫຍ່ກັບລະບົບໄຟລ໌ໃຫ້ກັບໂມດູນ :mod:`glob` " +"ໃນໄລບຣາຣີມາດຕະຖານຂອງ Python. ແນວໃດກໍຕາມ, ມັນຈຳເປັນຕ້ອງມີການກວດສອບ ເພີ່ມເຕີມ." + +#: ../source/specifications/glob-patterns.rst:80 +msgid "The code below is as a simple reference implementation:" +msgstr "ລະຫັດຂ້າງລຸ່ມນີ້ແມ່ນການນຳໃຊ້ຕົວຢ່າງແບບງ່າຍໆ:" + +#: ../source/specifications/glob-patterns.rst:120 +msgid "January 2025: Initial version" +msgstr "ມັງກອນ 2025: ເວີຊັນທຳອິດ" + +#: ../source/specifications/glob-patterns.rst:121 +msgid "March 2026: Treat spaces as a verbatim character" +msgstr "ມີນາ 2026: ຖືວ່າຊ່ອງຫວ່າງເປັນຕົວອັກສອນປົກກະຕິ" + +#: ../source/specifications/index.rst:4 +msgid "PyPA specifications" +msgstr "ຂໍ້ກຳນົດຂອງ PyPA" + +#: ../source/specifications/index.rst:6 +msgid "" +"This is a list of currently active interoperability specifications " +"maintained by the Python Packaging Authority. The process for updating these " +"standards, and for proposing new ones, is documented on `pypa.io `__." +msgstr "" +"ນີ້ແມ່ນລາຍຊື່ຂອງຂໍ້ກຳນົດການເຮັດວຽກຮ່ວມກັນທີ່ກຳລັງໃຊ້ງານຢູ່ ເຊິ່ງເບິ່ງແຍງໂດຍ Python Packaging " +"Authority. ຂະບວນການສຳລັບການອັບເດດມາດຕະຖານເຫຼົ່ານີ້, ແລະ ສຳລັບການສະເໜີອັນໃໝ່, " +"ແມ່ນມີບັນທຶກໄວ້ໃນ `pypa.io `__." + +#: ../source/specifications/index-hosted-attestations.rst:6 +msgid "Index hosted attestations" +msgstr "ການຢັ້ງຢືນທີ່ໂຮສໂດຍດັດຊະນີ (Index hosted attestations)" + +#: ../source/specifications/index-hosted-attestations.rst:8 +msgid "This specification was originally defined in :pep:`740`." +msgstr "ຂໍ້ກຳນົດນີ້ຖືກກຳນົດຂຶ້ນໃນເບື້ອງຕົ້ນໃນ :pep:`740`." + +#: ../source/specifications/index-hosted-attestations.rst:12 +msgid "" +":pep:`740` includes changes to the HTML and JSON index APIs. These changes " +"are documented in the :ref:`simple-repository-api` under :ref:`simple-" +"repository-api-base` and :ref:`json-serialization`." +msgstr "" +":pep:`740` ລວມມີການປ່ຽນແປງໃນ HTML ແລະ JSON index APIs. ການປ່ຽນແປງເຫຼົ່ານີ້ " +"ຖືກບັນທຶກໄວ້ໃນ :ref:`simple-repository-api` ພາຍໃຕ້ :ref:`simple-repository-api-" +"base` ແລະ :ref:`json-serialization`." + +#: ../source/specifications/index-hosted-attestations.rst:22 +msgid "Upload endpoint changes" +msgstr "ການປ່ຽນແປງ endpoint ສຳລັບການອັບໂຫລດ" + +#: ../source/specifications/index-hosted-attestations.rst:26 +msgid "" +"The \"legacy\" upload API is not standardized. See `PyPI's Upload API " +"documentation `_ for how attestations are " +"uploaded." +msgstr "" +"API ການອັບໂຫລດແບບ \"legacy\" ແມ່ນບໍ່ໄດ້ເປັນມາດຕະຖານ. ເບິ່ງ `ເອກະສານ Upload API ຂອງ " +"PyPI `_ ສຳລັບວິທີການອັບໂຫລດການຢັ້ງຢືນ " +"(attestations)." + +#: ../source/specifications/index-hosted-attestations.rst:33 +msgid "Attestation objects" +msgstr "ວັດຖຸການຢັ້ງຢືນ (Attestation objects)" + +#: ../source/specifications/index-hosted-attestations.rst:35 +msgid "" +"An attestation object is a JSON object with several required keys; " +"applications or signers may include additional keys so long as all " +"explicitly listed keys are provided. The required layout of an attestation " +"object is provided as pseudocode below." +msgstr "" +"ວັດຖຸການຢັ້ງຢືນແມ່ນວັດຖຸ JSON ທີ່ມີ keys ທີ່ຈຳເປັນຫຼາຍອັນ; ແອັບພລິເຄຊັນ ຫຼື ຜູ້ລົງນາມ ອາດຈະລວມເອົາ " +"keys ເພີ່ມເຕີມໄດ້ ຕາບໃດທີ່ keys ທີ່ລະບຸໄວ້ຢ່າງຊັດເຈນທັງໝົດນັ້ນ ຖືກສະໜອງໃຫ້. " +"ຮູບແບບທີ່ຈຳເປັນຂອງວັດຖຸການຢັ້ງຢືນແມ່ນມີໃຫ້ເປັນ pseudocode ຂ້າງລຸ່ມນີ້." + +#: ../source/specifications/index-hosted-attestations.rst:88 +msgid "" +"A full data model for each object in ``transparency_entries`` is provided " +"in :ref:`appendix`. Attestation objects **SHOULD** include one or more " +"transparency log entries, and **MAY** include additional keys for other " +"sources of signed time (such as an :rfc:`3161` Time Stamping Authority or a " +"`Roughtime `__ server)." +msgstr "" +"ແບບຈຳລອງຂໍ້ມູນຄົບຖ້ວນສຳລັບແຕ່ລະວັດຖຸໃນ ``transparency_entries`` " +"ແມ່ນມີໃຫ້ໃນ :ref:`appendix`. ວັດຖຸການຢັ້ງຢືນ **ຄວນ** ລວມເອົາ transparency log entries " +"ຢ່າງໜ້ອຍໜຶ່ງອັນ, ແລະ **ອາດຈະ** ລວມເອົາ keys ເພີ່ມເຕີມສຳລັບແຫຼ່ງທີ່ມາອື່ນໆ ຂອງເວລາທີ່ລົງນາມ " +"(ເຊັ່ນ :rfc:`3161` Time Stamping Authority ຫຼື ເຊີບເວີ `Roughtime `__)." + +#: ../source/specifications/index-hosted-attestations.rst:94 +msgid "" +"Attestation objects are versioned; this PEP specifies version 1. Each " +"version is tied to a single cryptographic suite to minimize unnecessary " +"cryptographic agility. In version 1, the suite is as follows:" +msgstr "" +"ວັດຖຸການຢັ້ງຢືນມີການກຳນົດເວີຊັນ; PEP ນີ້ກຳນົດໃຫ້ເປັນເວີຊັນ 1. ແຕ່ລະເວີຊັນ ຈະຖືກຜູກມັດກັບ " +"cryptographic suite ພຽງອັນດຽວເພື່ອຫຼຸດຜ່ອນ cryptographic agility ທີ່ບໍ່ຈຳເປັນ. ໃນເວີຊັນ " +"1, suite ມີດັ່ງນີ້:" + +#: ../source/specifications/index-hosted-attestations.rst:98 +msgid "" +"Certificates are specified as X.509 certificates, and comply with the " +"profile in :rfc:`5280`." +msgstr "" +"ໃບຢັ້ງຢືນ (Certificates) ຖືກກຳນົດເປັນໃບຢັ້ງຢືນ X.509, ແລະ ສອດຄ່ອງກັບ profile " +"ໃນ :rfc:`5280`." + +#: ../source/specifications/index-hosted-attestations.rst:100 +msgid "" +"The message signature algorithm is ECDSA, with the P-256 curve for public " +"keys and SHA-256 as the cryptographic digest function." +msgstr "" +"ອັນກໍຣິດທຶມການລົງນາມຂໍ້ຄວາມແມ່ນ ECDSA, ໂດຍໃຊ້ P-256 curve ສຳລັບ public keys ແລະ " +"SHA-256 ເປັນ cryptographic digest function." + +#: ../source/specifications/index-hosted-attestations.rst:103 +msgid "" +"Future PEPs may change this suite (and the overall shape of the attestation " +"object) by selecting a new version number." +msgstr "" +"PEPs ໃນອະນາຄົດອາດຈະປ່ຽນແປງ suite ນີ້ (ແລະ ຮູບຮ່າງໂດຍລວມຂອງວັດຖຸການຢັ້ງຢືນ) " +"ໂດຍການເລືອກໝາຍເລກເວີຊັນໃໝ່." + +#: ../source/specifications/index-hosted-attestations.rst:109 +msgid "Attestation statement and signature generation" +msgstr "ຖະແຫຼງການການຢັ້ງຢືນ ແລະ ການສ້າງລາຍເຊັນ" + +#: ../source/specifications/index-hosted-attestations.rst:111 +msgid "" +"The *attestation statement* is the actual claim that is cryptographically " +"signed over within the attestation object (i.e., the ``envelope.statement``)." +msgstr "" +"*ຖະແຫຼງການການຢັ້ງຢືນ* ແມ່ນການຢືນຢັນຕົວຈິງທີ່ຖືກລົງນາມທາງດ້ານ cryptography ພາຍໃນວັດຖຸການຢັ້ງຢືນ " +"(ຄື ``envelope.statement``)." + +#: ../source/specifications/index-hosted-attestations.rst:114 +msgid "" +"The attestation statement is encoded as a `v1 in-toto Statement object " +"`__, in JSON form. When serialized the statement is treated as " +"an opaque binary blob, avoiding the need for canonicalization." +msgstr "" +"ຖະແຫຼງການການຢັ້ງຢືນຖືກເຂົ້າລະຫັດເປັນ `v1 in-toto Statement object `__, ໃນຮູບແບບ JSON. " +"ເມື່ອເຮັດເປັນ serialization, ຖະແຫຼງການຈະຖືກປະຕິບັດຄືກັບ binary blob ທີ່ບໍ່ໂປ່ງໃສ (opaque " +"binary blob), ເພື່ອຫຼີກເວັ້ນຄວາມຈຳເປັນໃນການເຮັດ canonicalization." + +#: ../source/specifications/index-hosted-attestations.rst:119 +msgid "" +"In addition to being a v1 in-toto Statement, the attestation statement is " +"constrained in the following ways:" +msgstr "" +"ນອກຈາກການເປັນ v1 in-toto Statement ແລ້ວ, ຖະແຫຼງການການຢັ້ງຢືນຍັງຖືກ ຈຳກັດໃນລັກສະນະດັ່ງນີ້:" + +#: ../source/specifications/index-hosted-attestations.rst:122 +msgid "The in-toto ``subject`` **MUST** contain only a single subject." +msgstr "``subject`` ຂອງ in-toto **ຕ້ອງ** ມີພຽງແຕ່ subject ດຽວເທົ່ານັ້ນ." + +#: ../source/specifications/index-hosted-attestations.rst:123 +msgid "" +"``subject[0].name`` is the distribution's filename, which **MUST** be a " +"valid :ref:`source distribution ` or :ref:`wheel " +"distribution ` filename." +msgstr "" +"``subject[0].name`` ແມ່ນຊື່ໄຟລ໌ຂອງການແຈກຢາຍ, ເຊິ່ງ **ຕ້ອງ** ເປັນຊື່ໄຟລ໌ :ref:`source " +"distribution ` ຫຼື :ref:`wheel distribution " +"` ທີ່ຖືກຕ້ອງ." + +#: ../source/specifications/index-hosted-attestations.rst:126 +msgid "" +"``subject[0].digest`` **MUST** contain a SHA-256 digest. Other digests " +"**MAY** be present. The digests **MUST** be represented as hexadecimal " +"strings." +msgstr "" +"``subject[0].digest`` **ຕ້ອງ** ມີ SHA-256 digest. digest ອື່ນໆ **ອາດຈະ** ມີຢູ່ໄດ້. " +"digest ເຫຼົ່ານັ້ນ **ຕ້ອງ** ຖືກສະແດງເປັນຂໍ້ຄວາມເລກຖານສິບຫົກ (hexadecimal)." + +#: ../source/specifications/index-hosted-attestations.rst:128 +msgid "The following ``predicateType`` values are supported:" +msgstr "ຄ່າ ``predicateType`` ຕໍ່ໄປນີ້ແມ່ນໄດ້ຮັບການຮອງຮັບ:" + +#: ../source/specifications/index-hosted-attestations.rst:130 +msgid "" +"`SLSA Provenance `__: ``https://slsa.dev/" +"provenance/v1``" +msgstr "" +"`SLSA Provenance `__: ``https://slsa.dev/" +"provenance/v1``" + +#: ../source/specifications/index-hosted-attestations.rst:131 +msgid "" +"`PyPI Publish Attestation `__: ``https://docs.pypi.org/attestations/publish/v1``" +msgstr "" +"`PyPI Publish Attestation `__: ``https://docs.pypi.org/attestations/publish/v1``" + +#: ../source/specifications/index-hosted-attestations.rst:133 +msgid "" +"The signature over this statement is constructed using the `v1 DSSE " +"signature protocol `__, with a ``PAYLOAD_TYPE`` of ``application/vnd.in-toto+json`` " +"and a ``PAYLOAD_BODY`` of the JSON-encoded statement above. No other " +"``PAYLOAD_TYPE`` is permitted." +msgstr "" +"ລາຍເຊັນເທິງຖະແຫຼງການນີ້ຖືກສ້າງຂຶ້ນໂດຍໃຊ້ `v1 DSSE signature protocol `__, ໂດຍມີ " +"``PAYLOAD_TYPE`` ເປັນ ``application/vnd.in-toto+json`` ແລະ ``PAYLOAD_BODY`` " +"ເປັນຖະແຫຼງການທີ່ເຂົ້າລະຫັດ JSON ຂ້າງເທິງ. ບໍ່ອະນຸຍາດໃຫ້ໃຊ້ ``PAYLOAD_TYPE`` ອື່ນໆ." + +#: ../source/specifications/index-hosted-attestations.rst:141 +msgid "Provenance objects" +msgstr "ວັດຖຸແຫຼ່ງທີ່ມາ (Provenance objects)" + +#: ../source/specifications/index-hosted-attestations.rst:143 +msgid "" +"The index will serve uploaded attestations along with metadata that can " +"assist in verifying them in the form of JSON serialized objects." +msgstr "" +"ດັດຊະນີຈະໃຫ້ບໍລິການການຢັ້ງຢືນທີ່ອັບໂຫລດມາ ພ້ອມກັບຂໍ້ມູນເມຕາທີ່ສາມາດຊ່ວຍໃນການກວດສອບ " +"ພວກມັນໃນຮູບແບບຂອງ JSON serialized objects." + +#: ../source/specifications/index-hosted-attestations.rst:146 +msgid "" +"These *provenance objects* will be available via both the Simple Index and " +"JSON-based Simple API as described above, and will have the following layout:" +msgstr "" +"*ວັດຖຸແຫຼ່ງທີ່ມາ* ເຫຼົ່ານີ້ຈະມີໃຫ້ຜ່ານທັງ Simple Index ແລະ JSON-based Simple API " +"ຕາມທີ່ອະທິບາຍໄວ້ຂ້າງເທິງ, ແລະ ຈະມີຮູບແບບດັ່ງນີ້:" + +#: ../source/specifications/index-hosted-attestations.rst:169 +msgid "or, as pseudocode:" +msgstr "ຫຼື, ໃນຮູບແບບ pseudocode:" + +#: ../source/specifications/index-hosted-attestations.rst:217 +msgid "" +"``version`` is ``1``. Like attestation objects, provenance objects are " +"versioned, and this PEP only defines version ``1``." +msgstr "" +"``version`` ແມ່ນ ``1``. ຄືກັນກັບວັດຖຸການຢັ້ງຢືນ, ວັດຖຸແຫຼ່ງທີ່ມາມີການກຳນົດເວີຊັນ, ແລະ PEP " +"ນີ້ກຳນົດສະເພາະເວີຊັນ ``1`` ເທົ່ານັ້ນ." + +#: ../source/specifications/index-hosted-attestations.rst:219 +msgid "" +"``attestation_bundles`` is a **required** JSON array, containing one or more " +"\"bundles\" of attestations. Each bundle corresponds to a signing identity " +"(such as a Trusted Publishing identity), and contains one or more " +"attestation objects." +msgstr "" +"``attestation_bundles`` ແມ່ນອາເຣ JSON ທີ່ **ຈຳເປັນ**, ເຊິ່ງປະກອບດ້ວຍ \"bundles\" " +"ຂອງການຢັ້ງຢືນຢ່າງໜ້ອຍໜຶ່ງອັນ. ແຕ່ລະ bundle ຈະກົງກັບ ຕົວຕົນການລົງນາມ (signing identity) " +"(ເຊັ່ນ Trusted Publishing identity), ແລະ ປະກອບດ້ວຍວັດຖຸການຢັ້ງຢືນຢ່າງໜ້ອຍໜຶ່ງອັນ." + +#: ../source/specifications/index-hosted-attestations.rst:224 +msgid "" +"As noted in the ``Publisher`` model, each ``AttestationBundle.publisher`` " +"object is specific to its Trusted Publisher but must include at minimum:" +msgstr "" +"ຕາມທີ່ລະບຸໄວ້ໃນແບບຈຳລອງ ``Publisher``, ແຕ່ລະວັດຖຸ ``AttestationBundle.publisher`` " +"ຈະສະເພາະເຈາະຈົງກັບ Trusted Publisher ຂອງມັນ ແຕ່ຕ້ອງລວມມີຢ່າງໜ້ອຍ:" + +#: ../source/specifications/index-hosted-attestations.rst:228 +msgid "" +"A ``kind`` key, which **MUST** be a JSON string that uniquely identifies the " +"kind of Trusted Publisher." +msgstr "" +"key ``kind``, ເຊິ່ງ **ຕ້ອງ** ເປັນຂໍ້ຄວາມ JSON ທີ່ລະບຸປະເພດຂອງ Trusted Publisher " +"ໂດຍບໍ່ຊໍ້າກັນ." + +#: ../source/specifications/index-hosted-attestations.rst:230 +msgid "" +"A ``claims`` key, which **MUST** be a JSON object containing any context-" +"specific claims retained by the index during Trusted Publisher " +"authentication." +msgstr "" +"key ``claims``, ເຊິ່ງ **ຕ້ອງ** ເປັນວັດຖຸ JSON ທີ່ປະກອບດ້ວຍການຢືນຢັນສິດ (claims) " +"ທີ່ສະເພາະກັບບໍລິບົດ ເຊິ່ງຖືກເກັບໄວ້ໂດຍດັດຊະນີໃນລະຫວ່າງການກວດສອບ Trusted Publisher." + +#: ../source/specifications/index-hosted-attestations.rst:233 +msgid "All other keys in the publisher object are publisher-specific." +msgstr "ຄີອື່ນໆທັງໝົດໃນອອບເຈັກ publisher ແມ່ນຂຶ້ນກັບ publisher ສະເພາະ." + +#: ../source/specifications/index-hosted-attestations.rst:235 +msgid "" +"Each array of attestation objects is a superset of the ``attestations`` " +"array supplied by the uploaded through the ``attestations`` field at upload " +"time, as described in :ref:`upload-endpoint` and :ref:`changes-to-provenance-" +"objects`." +msgstr "" +"ແຕ່ລະອາເຣຂອງວັດຖຸການຢັ້ງຢືນແມ່ນ superset ຂອງອາເຣ ``attestations`` " +"ທີ່ສະໜອງໂດຍຜູ້ອັບໂຫລດຜ່ານຟີວ ``attestations`` ໃນເວລາອັບໂຫລດ, " +"ຕາມທີ່ອະທິບາຍໄວ້ໃນ :ref:`upload-endpoint` ແລະ :ref:`changes-to-provenance-" +"objects`." + +#: ../source/specifications/index-hosted-attestations.rst:243 +msgid "Changes to provenance objects" +msgstr "ການປ່ຽນແປງຂອງວັດຖຸແຫຼ່ງທີ່ມາ" + +#: ../source/specifications/index-hosted-attestations.rst:245 +msgid "" +"Provenance objects are *not* immutable, and may change over time. Reasons " +"for changes to the provenance object include but are not limited to:" +msgstr "" +"ວັດຖຸແຫຼ່ງທີ່ມາ *ບໍ່ແມ່ນ* ສິ່ງທີ່ປ່ຽນແປງບໍ່ໄດ້, ແລະ ອາດຈະປ່ຽນແປງຕາມເວລາ. " +"ເຫດຜົນສຳລັບການປ່ຽນແປງວັດຖຸແຫຼ່ງທີ່ມາລວມມີ ແຕ່ບໍ່ຈຳກັດພຽງແຕ່:" + +#: ../source/specifications/index-hosted-attestations.rst:248 +msgid "" +"Addition of new attestations for a pre-existing signing identity: the index " +"**MAY** choose to allow additional attestations by pre-existing signing " +"identities, such as newer attestation versions for already uploaded files." +msgstr "" +"ການເພີ່ມການຢັ້ງຢືນໃໝ່ສຳລັບຕົວຕົນການລົງນາມທີ່ມີຢູ່ແລ້ວ: ດັດຊະນີ **ອາດຈະ** " +"ເລືອກທີ່ຈະອະນຸຍາດໃຫ້ມີການຢັ້ງຢືນເພີ່ມເຕີມໂດຍຕົວຕົນການລົງນາມທີ່ມີຢູ່ແລ້ວ, ເຊັ່ນ " +"ເວີຊັນການຢັ້ງຢືນທີ່ໃໝ່ກວ່າສຳລັບໄຟລ໌ທີ່ຖືກອັບໂຫລດໄປແລ້ວ." + +#: ../source/specifications/index-hosted-attestations.rst:253 +msgid "" +"Addition of new signing identities and associated attestations: the index " +"**MAY** choose to support attestations from sources other than the file's " +"uploader, such as third-party auditors or the index itself. These " +"attestations may be performed asynchronously, requiring the index to insert " +"them into the provenance object *post facto*." +msgstr "" +"ການເພີ່ມຕົວຕົນການລົງນາມໃໝ່ ແລະ ການຢັ້ງຢືນທີ່ກ່ຽວຂ້ອງ: ດັດຊະນີ **ອາດຈະ** " +"ເລືອກທີ່ຈະຮອງຮັບການຢັ້ງຢືນຈາກແຫຼ່ງອື່ນໆນອກເໜືອຈາກຜູ້ອັບໂຫລດໄຟລ໌, ເຊັ່ນ ຜູ້ກວດສອບພາຍນອກ (third-" +"party auditors) ຫຼື ຕົວດັດຊະນີເອງ. ການຢັ້ງຢືນເຫຼົ່ານີ້ອາດຈະຖືກເຮັດແບບ asynchronous, " +"ເຊິ່ງເຮັດໃຫ້ດັດຊະນີຕ້ອງ ແຊກພວກມັນເຂົ້າໃນວັດຖຸແຫຼ່ງທີ່ມາໃນພາຍຫຼັງ (post facto)." + +#: ../source/specifications/index-hosted-attestations.rst:262 +msgid "Attestation verification" +msgstr "ການກວດສອບການຢັ້ງຢືນ" + +#: ../source/specifications/index-hosted-attestations.rst:264 +msgid "" +"Verifying an attestation object against a distribution file requires " +"verification of each of the following:" +msgstr "ການກວດສອບວັດຖຸການຢັ້ງຢືນກັບໄຟລ໌ການແຈກຢາຍ ຕ້ອງມີການກວດສອບແຕ່ລະຢ່າງຕໍ່ໄປນີ້:" + +#: ../source/specifications/index-hosted-attestations.rst:267 +msgid "``version`` is ``1``. The verifier **MUST** reject any other version." +msgstr "``version`` ແມ່ນ ``1``. ຜູ້ກວດສອບ **ຕ້ອງ** ປະຕິເສດເວີຊັນອື່ນໆ." + +#: ../source/specifications/index-hosted-attestations.rst:268 +msgid "" +"``verification_material.certificate`` is a valid signing certificate, as " +"issued by an *a priori* trusted authority (such as a root of trust already " +"present within the verifying client)." +msgstr "" +"``verification_material.certificate`` ແມ່ນໃບຢັ້ງຢືນການລົງນາມທີ່ຖືກຕ້ອງ, " +"ທີ່ອອກໂດຍໜ່ວຍງານທີ່ໄດ້ຮັບຄວາມເຊື່ອຖື (ເຊັ່ນ root of trust ທີ່ມີຢູ່ແລ້ວໃນຝັ່ງຜູ້ກວດສອບ)." + +#: ../source/specifications/index-hosted-attestations.rst:271 +msgid "" +"``verification_material.certificate`` identifies an appropriate signing " +"subject, such as the machine identity of the Trusted Publisher that " +"published the package." +msgstr "" +"``verification_material.certificate`` ລະບຸ subject ການລົງນາມທີ່ເໝາະສົມ, ເຊັ່ນ " +"ຕົວຕົນຂອງເຄື່ອງຈັກ (machine identity) ຂອງ Trusted Publisher ທີ່ເຜີຍແຜ່ແພັກເກດ." + +#: ../source/specifications/index-hosted-attestations.rst:274 +msgid "" +"``envelope.statement`` is a valid in-toto v1 Statement, with a subject and " +"digest that **MUST** match the distribution's filename and contents. For the " +"distribution's filename, matching **MUST** be performed by parsing using the " +"appropriate source distribution or wheel filename format, as the statement's " +"subject may be equivalent but normalized." +msgstr "" +"``envelope.statement`` ແມ່ນ in-toto v1 Statement ທີ່ຖືກຕ້ອງ, ເຊິ່ງມີ subject ແລະ " +"digest ທີ່ **ຕ້ອງ** ກົງກັບຊື່ໄຟລ໌ ແລະ ເນື້ອໃນຂອງການແຈກຢາຍ. ສຳລັບຊື່ໄຟລ໌ຂອງການແຈກຢາຍ, " +"ການຈັບຄູ່ **ຕ້ອງ** ເຮັດໂດຍການ parse ໂດຍໃຊ້ຮູບແບບຊື່ໄຟລ໌ source distribution ຫຼື wheel " +"ທີ່ເໝາະສົມ, ເນື່ອງຈາກ subject ຂອງຖະແຫຼງການອາດຈະທຽບເທົ່າກັນແຕ່ຖືກເຮັດໃຫ້ເປັນ normalization." + +#: ../source/specifications/index-hosted-attestations.rst:279 +msgid "" +"``envelope.signature`` is a valid signature for ``envelope.statement`` " +"corresponding to ``verification_material.certificate``, as reconstituted via " +"the `v1 DSSE signature protocol `__." +msgstr "" +"``envelope.signature`` ແມ່ນລາຍເຊັນທີ່ຖືກຕ້ອງສຳລັບ ``envelope.statement`` ທີ່ກົງກັບ " +"``verification_material.certificate``, ຕາມທີ່ຖືກສ້າງຂຶ້ນໃໝ່ຜ່ານ `v1 DSSE signature " +"protocol `__." + +#: ../source/specifications/index-hosted-attestations.rst:284 +msgid "" +"In addition to the above required steps, a verifier **MAY** additionally " +"verify ``verification_material.transparency_entries`` on a policy basis, " +"e.g. requiring at least one transparency log entry or a threshold of " +"entries. When verifying transparency entries, the verifier **MUST** confirm " +"that the inclusion time for each entry lies within the signing certificate's " +"validity period." +msgstr "" +"ນອກຈາກຂັ້ນຕອນທີ່ຈຳເປັນຂ້າງເທິງແລ້ວ, ຜູ້ກວດສອບ **ອາດຈະ** ກວດສອບ " +"``verification_material.transparency_entries`` ເພີ່ມເຕີມຕາມນະໂຍບາຍ, ຕົວຢ່າງ: " +"ຕ້ອງການ transparency log entry ຢ່າງໜ້ອຍໜຶ່ງອັນ ຫຼື ຕາມຈຳນວນທີ່ກຳນົດ. ເມື່ອກວດສອບ " +"transparency entries, ຜູ້ກວດສອບ **ຕ້ອງ** ຢືນຢັນວ່າ ເວລາການບັນທຶກ (inclusion time) " +"ສຳລັບແຕ່ລະລາຍການ ຢູ່ໃນໄລຍະເວລາ ການໃຊ້ງານຂອງໃບຢັ້ງຢືນການລົງນາມ." + +#: ../source/specifications/index-hosted-attestations.rst:293 +msgid "Appendix: Data models for Transparency Log Entries" +msgstr "ເອກະສານຊ້ອນທ້າຍ: ແບບຈຳລອງຂໍ້ມູນສຳລັບ Transparency Log Entries" + +#: ../source/specifications/index-hosted-attestations.rst:295 +msgid "" +"This appendix contains pseudocoded data models for transparency log entries " +"in attestation objects. Each transparency log entry serves as a source of " +"signed inclusion time, and can be verified either online or offline." +msgstr "" +"ເອກະສານຊ້ອນທ້າຍນີ້ປະກອບດ້ວຍແບບຈຳລອງຂໍ້ມູນແບບ pseudocode ສຳລັບ transparency log " +"entries ໃນວັດຖຸການຢັ້ງຢືນ. ແຕ່ລະ transparency log entry ເຮັດໜ້າທີ່ເປັນແຫຼ່ງຂອງ " +"ເວລາການບັນທຶກທີ່ຖືກລົງນາມ, ແລະ ສາມາດກວດສອບໄດ້ທັງແບບ online ຫຼື offline." + +#: ../source/specifications/inline-script-metadata.rst:5 +msgid "Inline script metadata" +msgstr "ຂໍ້ມູນເມຕາຂອງສະຄຣິບພາຍໃນ (Inline script metadata)" + +#: ../source/specifications/inline-script-metadata.rst:7 +msgid "" +"This specification defines a metadata format that can be embedded in single-" +"file Python scripts to assist launchers, IDEs and other external tools which " +"may need to interact with such scripts." +msgstr "" +"ຂໍ້ກຳນົດນີ້ກຳນົດຮູບແບບຂໍ້ມູນເມຕາທີ່ສາມາດຝັງໄວ້ໃນສະຄຣິບ Python ໄຟລ໌ດຽວ ເພື່ອຊ່ວຍ launchers, IDEs " +"ແລະ ເຄື່ອງມືພາຍນອກອື່ນໆ ທີ່ອາດຈະຈຳເປັນຕ້ອງ ໂຕ້ຕອບກັບສະຄຣິບດັ່ງກ່າວ." + +#: ../source/specifications/inline-script-metadata.rst:15 +msgid "" +"This specification defines a metadata comment block format (loosely inspired " +"by `reStructuredText Directives`__)." +msgstr "" +"ຂໍ້ກຳນົດນີ້ກຳນົດຮູບແບບບລັອກຄຳເຫັນຂອງຂໍ້ມູນເມຕາ (ໂດຍໄດ້ຮັບແຮງບັນດານໃຈຈາກ `reStructuredText " +"Directives`__)." + +#: ../source/specifications/inline-script-metadata.rst:20 +msgid "" +"Any Python script may have top-level comment blocks that MUST start with the " +"line ``# /// TYPE`` where ``TYPE`` determines how to process the content. " +"That is: a single ``#``, followed by a single space, followed by three " +"forward slashes, followed by a single space, followed by the type of " +"metadata. Block MUST end with the line ``# ///``. That is: a single ``#``, " +"followed by a single space, followed by three forward slashes. The ``TYPE`` " +"MUST only consist of ASCII letters, numbers and hyphens." +msgstr "" +"ສະຄຣິບ Python ໃດໆກໍຕາມອາດຈະມີບລັອກຄຳເຫັນໃນລະດັບສູງສຸດ (top-level) ເຊິ່ງ **ຕ້ອງ** " +"ຂຶ້ນຕົ້ນດ້ວຍແຖວ ``# /// TYPE`` ໂດຍທີ່ ``TYPE`` ຈະເປັນ ຕົວຕັດສິນວ່າຈະປະມວນຜົນເນື້ອໃນແນວໃດ. " +"ນັ້ນຄື: ເຄື່ອງໝາຍ ``#`` ອັນດຽວ, ຕາມດ້ວຍຊ່ອງຫວ່າງອັນດຽວ, ຕາມດ້ວຍເຄື່ອງໝາຍທັບສາມອັນ, " +"ຕາມດ້ວຍຊ່ອງຫວ່າງ ອັນດຽວ, ຕາມດ້ວຍປະເພດຂອງຂໍ້ມູນເມຕາ. ບລັອກ **ຕ້ອງ** ລົງທ້າຍດ້ວຍແຖວ ``# ///" +"``. ນັ້ນຄື: ເຄື່ອງໝາຍ ``#`` ອັນດຽວ, ຕາມດ້ວຍຊ່ອງຫວ່າງອັນດຽວ, ຕາມດ້ວຍເຄື່ອງໝາຍທັບ ສາມອັນ. " +"``TYPE`` **ຕ້ອງ** ປະກອບດ້ວຍສະເພາະຕົວອັກສອນ ASCII, ຕົວເລກ ແລະ ຂີດຕໍ່ເທົ່ານັ້ນ." + +#: ../source/specifications/inline-script-metadata.rst:28 +msgid "" +"Every line between these two lines (``# /// TYPE`` and ``# ///``) MUST be a " +"comment starting with ``#``. If there are characters after the ``#`` then " +"the first character MUST be a space. The embedded content is formed by " +"taking away the first two characters of each line if the second character is " +"a space, otherwise just the first character (which means the line consists " +"of only a single ``#``)." +msgstr "" +"ທຸກໆແຖວລະຫວ່າງສອງແຖວນີ້ (``# /// TYPE`` ແລະ ``# ///``) **ຕ້ອງ** ເປັນຄຳເຫັນ ທີ່ຂຶ້ນຕົ້ນດ້ວຍ " +"``#``. ຖ້າມີຕົວອັກສອນຫຼັງ ``#``, ຕົວອັກສອນທຳອິດ **ຕ້ອງ** ເປັນຊ່ອງຫວ່າງ. " +"ເນື້ອໃນທີ່ຝັງຢູ່ຈະຖືກສ້າງຂຶ້ນໂດຍການຕັດສອງຕົວອັກສອນທຳອິດຂອງແຕ່ລະແຖວອອກ " +"ຖ້າຕົວອັກສອນທີສອງເປັນຊ່ອງຫວ່າງ, ຖ້າບໍ່ດັ່ງນັ້ນກໍຕັດພຽງແຕ່ຕົວອັກສອນທຳອິດ (ເຊິ່ງໝາຍຄວາມວ່າແຖວນັ້ນມີພຽງແຕ່ " +"``#`` ອັນດຽວ)." + +#: ../source/specifications/inline-script-metadata.rst:35 +msgid "" +"Precedence for an ending line ``# ///`` is given when the next line is not a " +"valid embedded content line as described above. For example, the following " +"is a single fully valid block:" +msgstr "" +"ລຳດັບຄວາມສຳຄັນຂອງແຖວປິດ ``# ///`` ຈະຖືກກຳນົດເມື່ອແຖວຖັດໄປບໍ່ແມ່ນແຖວເນື້ອໃນ " +"ທີ່ຝັງໄວ້ທີ່ຖືກຕ້ອງຕາມທີ່ອະທິບາຍໄວ້ຂ້າງເທິງ. ຕົວຢ່າງ, ຕໍ່ໄປນີ້ແມ່ນບລັອກ ທີ່ຖືກຕ້ອງຄົບຖ້ວນອັນດຽວ:" + +#: ../source/specifications/inline-script-metadata.rst:51 +msgid "" +"A starting line MUST NOT be placed between another starting line and its " +"ending line. In such cases tools MAY produce an error. Unclosed blocks MUST " +"be ignored." +msgstr "" +"ແຖວເລີ່ມຕົ້ນ **ຕ້ອງບໍ່** ຖືກວາງໄວ້ລະຫວ່າງແຖວເລີ່ມຕົ້ນອື່ນ ແລະ ແຖວປິດຂອງມັນ. ໃນກໍລະນີດັ່ງກ່າວ ເຄື່ອງມື " +"**ອາດຈະ** ແຈ້ງຂໍ້ຜິດພາດ. ບລັອກທີ່ບໍ່ມີແຖວປິດ **ຕ້ອງ** ຖືກລະເລີຍ." + +#: ../source/specifications/inline-script-metadata.rst:54 +msgid "" +"When there are multiple comment blocks of the same ``TYPE`` defined, tools " +"MUST produce an error." +msgstr "ເມື່ອມີບລັອກຄຳເຫັນທີ່ມີ ``TYPE`` ດຽວກັນຫຼາຍບລັອກ, ເຄື່ອງມື **ຕ້ອງ** ແຈ້ງຂໍ້ຜິດພາດ." + +#: ../source/specifications/inline-script-metadata.rst:57 +msgid "" +"Tools reading embedded metadata MAY respect the standard Python encoding " +"declaration. If they choose not to do so, they MUST process the file as " +"UTF-8." +msgstr "" +"ເຄື່ອງມືທີ່ອ່ານຂໍ້ມູນເມຕາທີ່ຝັງຢູ່ **ອາດຈະ** ປະຕິບັດຕາມການປະກາດການເຂົ້າລະຫັດ Python ມາດຕະຖານ. " +"ຖ້າພວກເຂົາເລືອກທີ່ຈະບໍ່ເຮັດແນວນັ້ນ, ພວກເຂົາ **ຕ້ອງ** ປະມວນຜົນໄຟລ໌ ເປັນ UTF-8." + +#: ../source/specifications/inline-script-metadata.rst:60 +msgid "" +"This is the canonical regular expression that MAY be used to parse the " +"metadata:" +msgstr "ນີ້ແມ່ນ regular expression ມາດຕະຖານທີ່ **ອາດຈະ** ຖືກໃຊ້ເພື່ອ parse ຂໍ້ມູນເມຕາ:" + +#: ../source/specifications/inline-script-metadata.rst:67 +msgid "" +"In circumstances where there is a discrepancy between the text specification " +"and the regular expression, the text specification takes precedence." +msgstr "" +"ໃນສະຖານະການທີ່ມີຄວາມແຕກຕ່າງລະຫວ່າງຂໍ້ກຳນົດແບບຂໍ້ຄວາມ ແລະ regular expression, " +"ຂໍ້ກຳນົດແບບຂໍ້ຄວາມຈະມີຄວາມສຳຄັນກວ່າ." + +#: ../source/specifications/inline-script-metadata.rst:70 +msgid "" +"Tools MUST NOT read from metadata blocks with types that have not been " +"standardized by this specification." +msgstr "" +"ເຄື່ອງມື **ຕ້ອງບໍ່** ອ່ານຈາກບລັອກຂໍ້ມູນເມຕາທີ່ມີປະເພດທີ່ບໍ່ໄດ້ຖືກ ເຮັດໃຫ້ເປັນມາດຕະຖານໂດຍຂໍ້ກຳນົດນີ້." + +#: ../source/specifications/inline-script-metadata.rst:73 +msgid "" +"Note that the specification only requires that *top-level* comment blocks " +"are recognised as containing metadata. However, parsing Python code is non-" +"trivial, and therefore:" +msgstr "" +"ໝາຍເຫດວ່າຂໍ້ກຳນົດນີ້ພຽງແຕ່ຕ້ອງການໃຫ້ບລັອກຄຳເຫັນ *ລະດັບສູງສຸດ (top-level)* " +"ຖືກຮັບຮູ້ວ່າເປັນຂໍ້ມູນເມຕາ. ແນວໃດກໍຕາມ, ການ parse ລະຫັດ Python ແມ່ນບໍ່ແມ່ນເລື່ອງງ່າຍ, ແລະ ດັ່ງນັ້ນ:" + +#: ../source/specifications/inline-script-metadata.rst:77 +msgid "" +"Tools MAY choose to do a simple textual scan, rather than a full Python " +"parse." +msgstr "" +"ເຄື່ອງມື **ອາດຈະ** ເລືອກທີ່ຈະເຮັດການສະແກນຂໍ້ຄວາມແບບງ່າຍໆ, ແທນທີ່ຈະ parse Python ເຕັມຮູບແບບ." + +#: ../source/specifications/inline-script-metadata.rst:78 +msgid "" +"As a result of the previous point, the behaviour of scripts that contain " +"data that looks like metadata within another Python construct such as a " +"multi-line string is tool-dependent and should not be relied on." +msgstr "" +"ຜົນຈາກຂໍ້ຂ້າງເທິງ, ພຶດຕິກຳຂອງສະຄຣິບທີ່ມີຂໍ້ມູນທີ່ເບິ່ງຄືຂໍ້ມູນເມຕາ ຢູ່ພາຍໃນໂຄງສ້າງ Python ອື່ນໆ ເຊັ່ນ " +"multi-line string ແມ່ນຂຶ້ນກັບເຄື່ອງມື ແລະ ບໍ່ຄວນເຊື່ອຖືໄດ້ຢ່າງແນ່ນອນ." + +#: ../source/specifications/inline-script-metadata.rst:81 +msgid "" +"The canonical regular expression provided above is an example of an " +"implementation that does a simple textual scan." +msgstr "ເຣັກກູລາເອັກສ໌ເພຣັດຊັນມາດຕະຖານທີ່ໃຫ້ໄວ້ຂ້າງເທິງນັ້ນແມ່ນຕົວຢ່າງຂອງການເຮັດວຽກທີ່ທຳການສະແກນຂໍ້ຄວາມແບບງ່າຍໆ." + +#: ../source/specifications/inline-script-metadata.rst:85 +msgid "script type" +msgstr "ປະເພດ script" + +#: ../source/specifications/inline-script-metadata.rst:87 +msgid "" +"The first type of metadata block is named ``script``, which contains script " +"metadata (dependency data and tool configuration)." +msgstr "" +"ບລັອກຂໍ້ມູນເມຕາປະເພດທຳອິດມີຊື່ວ່າ ``script``, ເຊິ່ງປະກອບດ້ວຍຂໍ້ມູນເມຕາຂອງສະຄຣິບ (ຂໍ້ມູນ " +"dependency ແລະ ການຕັ້ງຄ່າເຄື່ອງມື)." + +#: ../source/specifications/inline-script-metadata.rst:90 +msgid "" +"This document MAY include the top-level fields ``dependencies`` and " +"``requires-python``, and MAY optionally include a ``[tool]`` table." +msgstr "" +"ເອກະສານນີ້ **ອາດຈະ** ລວມເອົາຟີວລະດັບສູງສຸດ ``dependencies`` ແລະ ``requires-" +"python``, ແລະ **ອາດຈະ** ລວມເອົາຕາຕະລາງ ``[tool]`` ເປັນທາງເລືອກ." + +#: ../source/specifications/inline-script-metadata.rst:93 +msgid "" +"The ``[tool]`` table MAY be used by any tool, script runner or otherwise, to " +"configure behavior. It has the same semantics as the :ref:`[tool] table in " +"pyproject.toml `." +msgstr "" +"ຕາຕະລາງ ``[tool]`` **ອາດຈະ** ຖືກໃຊ້ໂດຍເຄື່ອງມືໃດໆກໍຕາມ, ຕົວລັນສະຄຣິບ ຫຼື ອື່ນໆ, " +"ເພື່ອຕັ້ງຄ່າພຶດຕິກຳ. ມັນມີຄວາມໝາຍຄືກັນກັບ :ref:`[tool] table in pyproject.toml " +"`." + +#: ../source/specifications/inline-script-metadata.rst:97 +msgid "The top-level fields are:" +msgstr "ຟີວລະດັບສູງສຸດຄື:" + +#: ../source/specifications/inline-script-metadata.rst:99 +msgid "" +"``dependencies``: A list of strings that specifies the runtime dependencies " +"of the script. Each entry MUST be a valid :ref:`dependency specifier " +"`." +msgstr "" +"``dependencies``: ລາຍຊື່ຂອງຂໍ້ຄວາມທີ່ລະບຸ dependencies ໃນເວລາເຮັດວຽກຂອງສະຄຣິບ. " +"ແຕ່ລະລາຍການ **ຕ້ອງ** ເປັນ :ref:`dependency specifier ` " +"ທີ່ຖືກຕ້ອງ." + +#: ../source/specifications/inline-script-metadata.rst:102 +msgid "" +"``requires-python``: A string that specifies the Python version(s) with " +"which the script is compatible. The value of this field MUST be a " +"valid :ref:`version specifier `." +msgstr "" +"``requires-python``: ຂໍ້ຄວາມທີ່ລະບຸເວີຊັນຂອງ Python ທີ່ສະຄຣິບຮອງຮັບ. ຄ່າຂອງຟີວນີ້ **ຕ້ອງ** " +"ເປັນ :ref:`version specifier ` ທີ່ຖືກຕ້ອງ." + +#: ../source/specifications/inline-script-metadata.rst:106 +msgid "" +"Script runners MUST error if the specified ``dependencies`` cannot be " +"provided. Script runners SHOULD error if no version of Python that satisfies " +"the specified ``requires-python`` can be provided." +msgstr "" +"ຕົວລັນສະຄຣິບ **ຕ້ອງ** ແຈ້ງຂໍ້ຜິດພາດ ຖ້າບໍ່ສາມາດສະໜອງ ``dependencies`` ທີ່ລະບຸໄວ້ໄດ້. " +"ຕົວລັນສະຄຣິບ **ຄວນ** ແຈ້ງຂໍ້ຜິດພາດ ຖ້າບໍ່ມີເວີຊັນຂອງ Python ທີ່ກົງກັບ ``requires-python`` " +"ທີ່ລະບຸໄວ້." + +#: ../source/specifications/inline-script-metadata.rst:113 +msgid "The following is an example of a script with embedded metadata:" +msgstr "ຕໍ່ໄປນີ້ແມ່ນຕົວຢ່າງຂອງສະຄຣິບທີ່ມີຂໍ້ມູນເມຕາຝັງຢູ່:" + +#: ../source/specifications/inline-script-metadata.rst:136 +msgid "" +"The following is an example of how to read the metadata on Python 3.11 or " +"higher." +msgstr "ຕໍ່ໄປນີ້ແມ່ນຕົວຢ່າງວິທີການອ່ານຂໍ້ມູນເມຕາໃນ Python 3.11 ຫຼື ສູງກວ່າ." + +#: ../source/specifications/inline-script-metadata.rst:162 +msgid "" +"Often tools will edit dependencies like package managers or dependency " +"update automation in CI. The following is a crude example of modifying the " +"content using the ``tomlkit`` library__." +msgstr "" +"ເລື້ອຍໆທີ່ເຄື່ອງມືຈະແກ້ໄຂ dependencies ເຊັ່ນ ຕົວຈັດການແພັກເກດ ຫຼື ລະບົບອັດຕະໂນມັດ ໃນການອັບເດດ " +"dependency ໃນ CI. ຕໍ່ໄປນີ້ແມ່ນຕົວຢ່າງຄ່າວໆໃນການແກ້ໄຂເນື້ອໃນ ໂດຍໃຊ້ໄລບຣາຣີ ``tomlkit``__." + +#: ../source/specifications/inline-script-metadata.rst:193 +msgid "" +"Note that this example used a library that preserves TOML formatting. This " +"is not a requirement for editing by any means but rather is a \"nice to " +"have\" feature." +msgstr "" +"ໝາຍເຫດວ່າຕົວຢ່າງນີ້ໃຊ້ໄລບຣາຣີທີ່ຮັກສາຮູບແບບຂອງ TOML ໄວ້. ນີ້ບໍ່ແມ່ນຂໍ້ກຳນົດ ໃນການແກ້ໄຂ " +"ແຕ່ເປັນຄຸນສົມບັດທີ່ \"ດີທີ່ມີໄວ້\"." + +#: ../source/specifications/inline-script-metadata.rst:197 +msgid "" +"The following is an example of how to read a stream of arbitrary metadata " +"blocks." +msgstr "ຕໍ່ໄປນີ້ແມ່ນຕົວຢ່າງວິທີການອ່ານສະຕຣີມຂອງບລັອກຂໍ້ມູນເມຕາໃດໆ." + +#: ../source/specifications/inline-script-metadata.rst:216 +#: ../source/specifications/simple-repository-api.rst:925 +msgid "Recommendations" +msgstr "ຄຳແນະນຳ" + +#: ../source/specifications/inline-script-metadata.rst:218 +msgid "" +"Tools that support managing different versions of Python should attempt to " +"use the highest available version of Python that is compatible with the " +"script's ``requires-python`` metadata, if defined." +msgstr "" +"ເຄື່ອງມືທີ່ຮອງຮັບການຈັດການ Python ຫຼາຍເວີຊັນ ຄວນພະຍາຍາມໃຊ້ Python ເວີຊັນສູງສຸດ " +"ທີ່ມີຢູ່ທີ່ເຂົ້າກັນໄດ້ກັບຂໍ້ມູນເມຕາ ``requires-python`` ຂອງສະຄຣິບ, ຖ້າມີການກຳນົດໄວ້." + +#: ../source/specifications/inline-script-metadata.rst:226 +msgid "" +"October 2023: This specification was conditionally approved " +"through :pep:`723`." +msgstr "ຕຸລາ 2023: ຂໍ້ກຳນົດນີ້ໄດ້ຮັບການອະນຸມັດແບບມີເງື່ອນໄຂຜ່ານ :pep:`723`." + +#: ../source/specifications/inline-script-metadata.rst:227 +msgid "" +"January 2024: Through amendments to :pep:`723`, the ``pyproject`` metadata " +"block type was renamed to ``script``, and the ``[run]`` table was dropped, " +"making the ``dependencies`` and ``requires-python`` keys top-level. " +"Additionally, the specification is no longer provisional." +msgstr "" +"ມັງກອນ 2024: ໂດຍຜ່ານການແກ້ໄຂ :pep:`723`, ປະເພດບລັອກຂໍ້ມູນເມຕາ ``pyproject`` " +"ຖືກປ່ຽນຊື່ເປັນ ``script``, ແລະ ຕາຕະລາງ ``[run]`` ຖືກຕັດອອກ, ເຮັດໃຫ້ keys " +"``dependencies`` ແລະ ``requires-python`` ກາຍເປັນລະດັບສູງສຸດ. ນອກນັ້ນ, " +"ຂໍ້ກຳນົດນີ້ບໍ່ໄດ້ຢູ່ໃນສະຖານະຊົ່ວຄາວ (provisional) ອີກຕໍ່ໄປ." + +#: ../source/specifications/license-expression.rst:5 +msgid "" +":pep:`639` defined a new :ref:`pyproject.toml's license ` value and added a corresponding :ref:`core metadata License-" +"Expression field `. This specification " +"defines which license expressions are acceptable." +msgstr "" +":pep:`639` ໄດ້ກຳນົດຄ່າ :ref:`pyproject.toml's license ` " +"ໃໝ່ ແລະ ເພີ່ມຟີວ :ref:`core metadata License-Expression ` ທີ່ກ່ຽວຂ້ອງ. ຂໍ້ກຳນົດນີ້ກຳນົດວ່າ license expressions ໃດແດ່ທີ່ຍອມຮັບໄດ້." + +#: ../source/specifications/license-expression.rst:14 +msgid "" +"License can be defined as a text string that is a valid SPDX :term:`license " +"expression `, as documented in the `SPDX specification " +"`__, either Version 2.2 or a later compatible version." +msgstr "" +"License ສາມາດຖືກກຳນົດເປັນຂໍ້ຄວາມທີ່ເປັນ SPDX :term:`license expression ` ທີ່ຖືກຕ້ອງ, ຕາມທີ່ມີບັນທຶກໄວ້ໃນ `SPDX specification `__, " +"ບໍ່ວ່າຈະເປັນເວີຊັນ 2.2 ຫຼື ເວີຊັນຫຼັງທີ່ເຂົ້າກັນໄດ້." + +#: ../source/specifications/license-expression.rst:19 +msgid "A license expression can use the following license identifiers:" +msgstr "license expression ສາມາດໃຊ້ຕົວລະບຸໃບອະນຸຍາດ (license identifiers) ຕໍ່ໄປນີ້:" + +#: ../source/specifications/license-expression.rst:21 +msgid "" +"Any SPDX-listed license short-form identifiers that are published in the " +"`SPDX License List `__, version 3.17 or any later compatible " +"version." +msgstr "" +"ຕົວລະບຸແບບຫຍໍ້ຂອງໃບອະນຸຍາດທີ່ຢູ່ໃນລາຍຊື່ SPDX ທີ່ເຜີຍແຜ່ໃນ `SPDX License List " +"`__, ເວີຊັນ 3.17 ຫຼື ເວີຊັນຫຼັງທີ່ເຂົ້າກັນໄດ້." + +#: ../source/specifications/license-expression.rst:25 +msgid "" +"The custom ``LicenseRef-[idstring]`` string(s), where ``[idstring]`` is a " +"unique string containing letters, numbers, ``.`` and/or ``-``, to identify " +"licenses that are not included in the SPDX license list. The custom " +"identifiers must follow the SPDX specification, `clause 10.1 " +"`__ of the given specification version." +msgstr "" +"ສະຕຣິງ ``LicenseRef-[idstring]`` ທີ່ກໍານົດເອງ, ໂດຍທີ່ ``[idstring]`` ແມ່ນສະຕຣິງທີ່ບໍ່ຊໍ້າກັນ " +"ເຊິ່ງປະກອບດ້ວຍຕົວອັກສອນ, ຕົວເລກ, ``.`` ແລະ/ຫຼື ``-``, " +"ເພື່ອລະບຸໃບອະນຸຍາດທີ່ບໍ່ໄດ້ລວມຢູ່ໃນລາຍຊື່ໃບອະນຸຍາດ SPDX. ຕົວລະບຸທີ່ກໍານົດເອງຕ້ອງປະຕິບັດຕາມຂໍ້ກໍານົດຂອງ " +"SPDX, `ຂໍ້ 10.1 `__ ຂອງເວີຊັນຂໍ້ກໍານົດທີ່ລະບຸໄວ້." + +#: ../source/specifications/license-expression.rst:32 +msgid "Examples of valid license expressions:" +msgstr "ຕົວຢ່າງຂອງ license expressions ທີ່ຖືກຕ້ອງ:" + +#: ../source/specifications/license-expression.rst:45 +msgid "Examples of invalid license expressions:" +msgstr "ຕົວຢ່າງຂອງ license expressions ທີ່ບໍ່ຖືກຕ້ອງ:" + +#: ../source/specifications/name-normalization.rst:3 +msgid "Names and normalization" +msgstr "ຊື່ ແລະ ການເຮັດໃຫ້ເປັນມາດຕະຖານ (Normalization)" + +#: ../source/specifications/name-normalization.rst:5 +msgid "" +"This specification defines the format that names for packages and extras are " +"required to follow. It also describes how to normalize them, which should be " +"done before lookups and comparisons." +msgstr "" +"ຂໍ້ກຳນົດນີ້ກຳນົດຮູບແບບທີ່ຊື່ແພັກເກດ ແລະ extras ຕ້ອງປະຕິບັດຕາມ. ມັນຍັງອະທິບາຍ " +"ວິທີການເຮັດໃຫ້ພວກມັນເປັນມາດຕະຖານ (normalize), ເຊິ່ງຄວນເຮັດກ່ອນການຄົ້ນຫາ ແລະ ການປຽບທຽບ." + +#: ../source/specifications/name-normalization.rst:13 +msgid "Name format" +msgstr "ຮູບແບບຊື່" + +#: ../source/specifications/name-normalization.rst:15 +msgid "" +"A valid name consists only of ASCII letters and numbers, period, underscore " +"and hyphen. It must start and end with a letter or number. This means that " +"valid project names are limited to those which match the following regex " +"(run with :py:data:`re.IGNORECASE`)::" +msgstr "" +"ຊື່ທີ່ຖືກຕ້ອງຕ້ອງປະກອບດ້ວຍສະເພາະຕົວອັກສອນ ASCII ແລະ ຕົວເລກ, ຈຸດ, ເຄື່ອງໝາຍຂີດກ້ອງ ແລະ ຂີດຕໍ່. " +"ມັນຕ້ອງຂຶ້ນຕົ້ນ ແລະ ລົງທ້າຍດ້ວຍຕົວອັກສອນ ຫຼື ຕົວເລກ. ສິ່ງນີ້ໝາຍຄວາມວ່າ " +"ຊື່ໂຄງການທີ່ຖືກຕ້ອງແມ່ນຈຳກັດສະເພາະອັນທີ່ກົງກັບ regex ຕໍ່ໄປນີ້ " +"(ລັນດ້ວຍ :py:data:`re.IGNORECASE`)::" + +#: ../source/specifications/name-normalization.rst:26 +msgid "Name normalization" +msgstr "ການເຮັດໃຫ້ຊື່ເປັນມາດຕະຖານ" + +#: ../source/specifications/name-normalization.rst:28 +msgid "" +"The name should be lowercased with all runs of the characters ``.``, ``-``, " +"or ``_`` replaced with a single ``-`` character. This can be implemented in " +"Python with the re module:" +msgstr "" +"ຊື່ຄວນຖືກປ່ຽນເປັນຕົວອັກສອນນ້ອຍທັງໝົດ ໂດຍທີ່ຕົວອັກສອນ ``.``, ``-``, ຫຼື ``_`` ທີ່ຕິດຕໍ່ກັນ " +"ຈະຖືກປ່ຽນແທນດ້ວຍເຄື່ອງໝາຍຂີດຕໍ່ ``-`` ພຽງອັນດຽວ. ສິ່ງນີ້ສາມາດນຳໃຊ້ໃນ Python ດ້ວຍໂມດູນ re:" + +#: ../source/specifications/name-normalization.rst:39 +msgid "This means that the following names are all equivalent:" +msgstr "ສິ່ງນີ້ໝາຍຄວາມວ່າຊື່ຕໍ່ໄປນີ້ທັງໝົດແມ່ນທຽບເທົ່າກັນ:" + +#: ../source/specifications/name-normalization.rst:41 +msgid "``friendly-bard`` (normalized form)" +msgstr "``friendly-bard`` (ຮູບແບບມາດຕະຖານ)" + +#: ../source/specifications/name-normalization.rst:42 +msgid "``Friendly-Bard``" +msgstr "``Friendly-Bard``" + +#: ../source/specifications/name-normalization.rst:43 +msgid "``FRIENDLY-BARD``" +msgstr "``FRIENDLY-BARD``" + +#: ../source/specifications/name-normalization.rst:44 +msgid "``friendly.bard``" +msgstr "``friendly.bard``" + +#: ../source/specifications/name-normalization.rst:45 +msgid "``friendly_bard``" +msgstr "``friendly_bard``" + +#: ../source/specifications/name-normalization.rst:46 +msgid "``friendly--bard``" +msgstr "``friendly--bard``" + +#: ../source/specifications/name-normalization.rst:47 +msgid "" +"``FrIeNdLy-._.-bArD`` (a *terrible* way to write a name, but it is valid)" +msgstr "``FrIeNdLy-._.-bArD`` (ວິທີຂຽນຊື່ທີ່ *ແຍ່ຫຼາຍ*, ແຕ່ມັນກໍຖືກຕ້ອງ)" + +#: ../source/specifications/name-normalization.rst:52 +msgid "" +"September 2015: The specification of name normalized was approved " +"through :pep:`503 <503#normalized-names>`." +msgstr "" +"ກັນຍາ 2015: ຂໍ້ກຳນົດຂອງການເຮັດໃຫ້ຊື່ເປັນມາດຕະຖານໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`503 " +"<503#normalized-names>`." + +#: ../source/specifications/name-normalization.rst:54 +msgid "" +"November 2015: The specification of valid names was approved " +"through :pep:`508 <508#names>`." +msgstr "ພະຈິກ 2015: ຂໍ້ກຳນົດຂອງຊື່ທີ່ຖືກຕ້ອງໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`508 <508#names>`." + +#: ../source/specifications/platform-compatibility-tags.rst:6 +msgid "Platform compatibility tags" +msgstr "ແທັກຄວາມເຂົ້າກັນໄດ້ຂອງແພລັດຟອມ" + +#: ../source/specifications/platform-compatibility-tags.rst:8 +msgid "" +"Platform compatibility tags allow build tools to mark distributions as being " +"compatible with specific platforms, and allows installers to understand " +"which distributions are compatible with the system they are running on." +msgstr "" +"ແທັກຄວາມເຂົ້າກັນໄດ້ຂອງແພລັດຟອມຊ່ວຍໃຫ້ເຄື່ອງມື build ສາມາດໝາຍການແຈກຢາຍວ່າ " +"ເຂົ້າກັນໄດ້ກັບແພລັດຟອມສະເພາະໃດໜຶ່ງ, ແລະ ຊ່ວຍໃຫ້ຕົວຕິດຕັ້ງເຂົ້າໃຈວ່າ " +"ການແຈກຢາຍໃດແດ່ທີ່ເຂົ້າກັນໄດ້ກັບລະບົບທີ່ພວກມັນກຳລັງລັນຢູ່." + +#: ../source/specifications/platform-compatibility-tags.rst:16 +msgid "The tag format is ``{python tag}-{abi tag}-{platform tag}``." +msgstr "ຮູບແບບແທັກແມ່ນ ``{python tag}-{abi tag}-{platform tag}``." + +#: ../source/specifications/platform-compatibility-tags.rst:18 +msgid "python tag" +msgstr "python tag" + +#: ../source/specifications/platform-compatibility-tags.rst:19 +msgid "'py27', 'cp33'" +msgstr "'py27', 'cp33'" + +#: ../source/specifications/platform-compatibility-tags.rst:21 +msgid "'cp32dmu', 'none'" +msgstr "'cp32dmu', 'none'" + +#: ../source/specifications/platform-compatibility-tags.rst:23 +msgid "'linux_x86_64', 'any'" +msgstr "'linux_x86_64', 'any'" + +#: ../source/specifications/platform-compatibility-tags.rst:25 +msgid "" +"For example, the tag ``py27-none-any`` indicates compatibility with Python " +"2.7 (any Python 2.7 implementation) with no abi requirement, on any platform." +msgstr "" +"ຕົວຢ່າງ, ແທັກ ``py27-none-any`` ບົ່ງບອກເຖິງຄວາມເຂົ້າກັນໄດ້ກັບ Python 2.7 (Python 2.7 " +"ລຸ້ນໃດກໍໄດ້) ໂດຍບໍ່ມີຂໍ້ກຳນົດ abi, ໃນແພລັດຟອມໃດກໍໄດ້." + +#: ../source/specifications/platform-compatibility-tags.rst:28 +msgid "" +"The ``wheel`` built package format includes these tags in its filenames, of " +"the form ``{distribution}-{version}(-{build tag})?-{python tag}-{abitag}-" +"{platform tag}.whl``. Other package formats may have their own conventions." +msgstr "" +"ຮູບແບບແພັກເກດ ``wheel`` ຈະລວມເອົາແທັກເຫຼົ່ານີ້ໄວ້ໃນຊື່ໄຟລ໌, ໃນຮູບແບບ ``{distribution}-" +"{version}(-{build tag})?-{python tag}-{abitag}-{platform tag}.whl``. " +"ຮູບແບບແພັກເກດອື່ນໆອາດຈະມີທຳນຽມຂອງພວກເຂົາເອງ." + +#: ../source/specifications/platform-compatibility-tags.rst:33 +msgid "Any potential spaces in any tag should be replaced with ``_``." +msgstr "ຊ່ອງຫວ່າງທີ່ອາດຈະມີໃນແທັກໃດໆ ຄວນຖືກປ່ຽນແທນດ້ວຍ ``_``." + +#: ../source/specifications/platform-compatibility-tags.rst:37 +msgid "Python Tag" +msgstr "Python Tag" + +#: ../source/specifications/platform-compatibility-tags.rst:39 +msgid "" +"The Python tag indicates the implementation and version required by a " +"distribution. Major implementations have abbreviated codes, initially:" +msgstr "" +"Python tag ບົ່ງບອກເຖິງເວີຊັນ ແລະ ລຸ້ນທີ່ຕ້ອງການໂດຍການແຈກຢາຍ. ລຸ້ນຫຼັກໆ (implementations) " +"ຈະມີລະຫັດຫຍໍ້, ໃນເບື້ອງຕົ້ນຄື:" + +#: ../source/specifications/platform-compatibility-tags.rst:42 +msgid "py: Generic Python (does not require implementation-specific features)" +msgstr "py: Generic Python (ບໍ່ຕ້ອງການຄຸນສົມບັດສະເພາະຂອງແຕ່ລະລຸ້ນ)" + +#: ../source/specifications/platform-compatibility-tags.rst:43 +msgid "cp: CPython" +msgstr "cp: CPython" + +#: ../source/specifications/platform-compatibility-tags.rst:44 +msgid "ip: IronPython" +msgstr "ip: IronPython" + +#: ../source/specifications/platform-compatibility-tags.rst:45 +msgid "pp: PyPy" +msgstr "pp: PyPy" + +#: ../source/specifications/platform-compatibility-tags.rst:46 +msgid "jy: Jython" +msgstr "jy: Jython" + +#: ../source/specifications/platform-compatibility-tags.rst:48 +msgid "" +"Other Python implementations should use :py:data:`sys.implementation.name " +"`." +msgstr "" +"Python implementations ອື່ນໆຄວນໃຊ້ :py:data:`sys.implementation.name " +"`." + +#: ../source/specifications/platform-compatibility-tags.rst:50 +msgid "" +"The version is ``py_version_nodot``. CPython gets away with no dot, but if " +"one is needed the underscore ``_`` is used instead. PyPy should probably " +"use its own versions here ``pp18``, ``pp19``." +msgstr "" +"ເວີຊັນແມ່ນ ``py_version_nodot``. CPython ສາມາດໃຊ້ໄດ້ໂດຍບໍ່ມີຈຸດ, ແຕ່ຖ້າຈຳເປັນ " +"ຈະໃຊ້ເຄື່ອງໝາຍຂີດກ້ອງ ``_`` ແທນ. PyPy ອາດຈະຄວນໃຊ້ເວີຊັນຂອງມັນເອງທີ່ນີ້ ເຊັ່ນ ``pp18``, " +"``pp19``." + +#: ../source/specifications/platform-compatibility-tags.rst:54 +msgid "" +"The version can be just the major version ``2`` or ``3`` ``py2``, ``py3`` " +"for many pure-Python distributions." +msgstr "" +"ເວີຊັນອາດຈະເປັນພຽງເວີຊັນຫຼັກ ``2`` ຫຼື ``3`` ເຊັ່ນ ``py2``, ``py3`` ສຳລັບການແຈກຢາຍແບບ " +"pure-Python ຫຼາຍອັນ." + +#: ../source/specifications/platform-compatibility-tags.rst:57 +msgid "" +"Importantly, major-version-only tags like ``py2`` and ``py3`` are not " +"shorthand for ``py20`` and ``py30``. Instead, these tags mean the packager " +"intentionally released a cross-version-compatible distribution." +msgstr "" +"ທີ່ສຳຄັນ, ແທັກທີ່ມີພຽງເວີຊັນຫຼັກເຊັ່ນ ``py2`` ແລະ ``py3`` ບໍ່ແມ່ນຕົວຫຍໍ້ຂອງ ``py20`` ແລະ " +"``py30``. ແຕ່ແທັກເຫຼົ່ານີ້ໝາຍຄວາມວ່າຜູ້ເຮັດແພັກເກດຕັ້ງໃຈ ເຜີຍແຜ່ການແຈກຢາຍທີ່ເຂົ້າກັນໄດ້ກັບຫຼາຍເວີຊັນ." + +#: ../source/specifications/platform-compatibility-tags.rst:61 +msgid "" +"A single-source Python 2/3 compatible distribution can use the compound tag " +"``py2.py3``. See `Compressed Tag Sets`_, below." +msgstr "" +"ການແຈກຢາຍທີ່ເຂົ້າກັນໄດ້ທັງ Python 2/3 ຈາກ source ດຽວ ສາມາດໃຊ້ແທັກປະສົມ ``py2.py3``. " +"ເບິ່ງ `Compressed Tag Sets`_, ຂ້າງລຸ່ມນີ້." + +#: ../source/specifications/platform-compatibility-tags.rst:66 +msgid "ABI Tag" +msgstr "ABI Tag" + +#: ../source/specifications/platform-compatibility-tags.rst:68 +msgid "" +"The ABI tag indicates which Python ABI is required by any included extension " +"modules. For implementation-specific ABIs, the implementation is " +"abbreviated in the same way as the Python Tag, e.g. ``cp33d`` would be the " +"CPython 3.3 ABI with debugging." +msgstr "" +"ABI tag ບົ່ງບອກວ່າ Python ABI ໃດທີ່ຕ້ອງການໂດຍ extension modules ທີ່ລວມຢູ່ນຳ. ສຳລັບ ABI " +"ທີ່ສະເພາະແຕ່ລະລຸ້ນ, ຊື່ລຸ້ນຈະຖືກຫຍໍ້ໃນແບບດຽວກັນກັບ Python Tag, ຕົວຢ່າງ ``cp33d`` ຈະໝາຍເຖິງ " +"CPython 3.3 ABI ທີ່ມີ debugging." + +#: ../source/specifications/platform-compatibility-tags.rst:73 +msgid "The CPython stable ABI is ``abi3`` as in the shared library suffix." +msgstr "CPython stable ABI ແມ່ນ ``abi3`` ຄືກັບທີ່ຢູ່ໃນນາມສະກຸນໄລບຣາຣີ." + +#: ../source/specifications/platform-compatibility-tags.rst:75 +msgid "" +"Implementations with a very unstable ABI may use the first 6 bytes (as 8 " +"base64-encoded characters) of the SHA-256 hash of their source code revision " +"and compiler flags, etc, but will probably not have a great need to " +"distribute binary distributions. Each implementation's community may decide " +"how to best use the ABI tag." +msgstr "" +"ລຸ້ນ (Implementations) ທີ່ມີ ABI ບໍ່ຄົງທີ່ຫຼາຍ ອາດຈະໃຊ້ 6 ໄບທ໌ທຳອິດ (ເປັນຕົວອັກສອນ base64 8 " +"ຕົວ) ຂອງ SHA-256 hash ຂອງເວີຊັນ source code ແລະ compiler flags ແລະ ອື່ນໆ, " +"ແຕ່ຄົງຈະບໍ່ມີຄວາມຈຳເປັນຫຼາຍໃນການເຜີຍແຜ່ binary distributions. " +"ຊຸມຊົນຂອງແຕ່ລະລຸ້ນອາດຈະຕັດສິນໃຈເອງວ່າຈະໃຊ້ ABI tag ໃຫ້ດີທີ່ສຸດແນວໃດ." + +#: ../source/specifications/platform-compatibility-tags.rst:83 +msgid "Platform Tag" +msgstr "Platform Tag" + +#: ../source/specifications/platform-compatibility-tags.rst:86 +msgid "" +"Platform tags are dependent on the versioning of the operating system or " +"platform they represent and may change over time as the underlying platform " +"changes its versioning." +msgstr "" +"Platform tags ແມ່ນຂຶ້ນກັບການກຳນົດເວີຊັນຂອງລະບົບປະຕິບັດການ ຫຼື ແພລັດຟອມ ທີ່ພວກມັນຕາງໜ້າໃຫ້ ແລະ " +"ອາດຈະປ່ຽນແປງຕາມເວລາເມື່ອແພລັດຟອມນັ້ນມີການປ່ຽນແປງເວີຊັນ." + +#: ../source/specifications/platform-compatibility-tags.rst:91 +msgid "Basic platform tags" +msgstr "ແທັກແພລັດຟອມພື້ນຖານ" + +#: ../source/specifications/platform-compatibility-tags.rst:93 +msgid "" +"In its simplest form, the platform tag " +"is :py:func:`sysconfig.get_platform()` with all hyphens ``-`` and periods " +"``.`` replaced with underscore ``_``. Until the removal of :ref:`distutils` " +"in Python 3.12, this was ``distutils.util.get_platform()``. For example:" +msgstr "" +"ໃນຮູບແບບທີ່ງ່າຍທີ່ສຸດ, platform tag ແມ່ນ :py:func:`sysconfig.get_platform()` " +"ໂດຍປ່ຽນເຄື່ອງໝາຍຂີດຕໍ່ ``-`` ແລະ ຈຸດ ``.`` ທັງໝົດເປັນເຄື່ອງໝາຍຂີດກ້ອງ ``_``. " +"ຈົນກວ່າຈະມີການຖອນ :ref:`distutils` ອອກໃນ Python 3.12, ສິ່ງນີ້ເຄີຍເປັນ " +"``distutils.util.get_platform()``. ຕົວຢ່າງ:" + +#: ../source/specifications/platform-compatibility-tags.rst:98 +msgid "win32" +msgstr "win32" + +#: ../source/specifications/platform-compatibility-tags.rst:99 +msgid "linux_i386" +msgstr "linux_i386" + +#: ../source/specifications/platform-compatibility-tags.rst:100 +msgid "linux_x86_64" +msgstr "linux_x86_64" + +#: ../source/specifications/platform-compatibility-tags.rst:106 +msgid "``manylinux``" +msgstr "``manylinux``" + +#: ../source/specifications/platform-compatibility-tags.rst:108 +msgid "" +"The simple scheme above is insufficient for public distribution of wheel " +"files to Linux platforms, due to the large ecosystem of Linux platforms and " +"subtle differences between them." +msgstr "" +"ຮູບແບບທີ່ງ່າຍດາຍຂ້າງເທິງນັ້ນບໍ່ພຽງພໍສຳລັບການເຜີຍແຜ່ໄຟລ໌ wheel ຕໍ່ສາທາລະນະ ໃນແພລັດຟອມ Linux, " +"ເນື່ອງຈາກລະບົບນິເວດຂະໜາດໃຫຍ່ຂອງ Linux ແລະ ຄວາມແຕກຕ່າງ ເລັກໆນ້ອຍໆລະຫວ່າງພວກມັນ." + +#: ../source/specifications/platform-compatibility-tags.rst:112 +msgid "" +"Instead, for those platforms, the ``manylinux`` standard represents a common " +"subset of Linux platforms, and allows building wheels tagged with the " +"``manylinux`` platform tag which can be used across most common Linux " +"distributions." +msgstr "" +"ແທນທີ່ຈະເປັນແນວນັ້ນ, ສຳລັບແພລັດຟອມເຫຼົ່ານັ້ນ, ມາດຕະຖານ ``manylinux`` ຈະຕາງໜ້າໃຫ້ subset " +"ທີ່ໃຊ້ຮ່ວມກັນຂອງແພລັດຟອມ Linux, ແລະ ຊ່ວຍໃຫ້ build wheels ທີ່ຕິດແທັກ ``manylinux`` " +"ເຊິ່ງສາມາດໃຊ້ງານໄດ້ໃນ Linux distributions ສ່ວນໃຫຍ່." + +#: ../source/specifications/platform-compatibility-tags.rst:117 +msgid "" +"The current standard is the future-proof :file:`manylinux_{x}_{y}` standard. " +"It defines tags of the form :file:`manylinux_{x}_{y}_{arch}`, where ``x`` " +"and ``y`` are glibc major and minor versions supported (e.g. " +"``manylinux_2_24_xxx`` should work on any distro using glibc 2.24+), and " +"``arch`` is the architecture, matching the value " +"of :py:func:`sysconfig.get_platform()` on the system as in the \"simple\" " +"form above." +msgstr "" +"ມາດຕະຖານປະຈຸບັນແມ່ນ :file:`manylinux_{x}_{y}` ທີ່ຮອງຮັບອະນາຄົດ. " +"ມັນກຳນົດແທັກໃນຮູບແບບ :file:`manylinux_{x}_{y}_{arch}`, ໂດຍທີ່ ``x`` ແລະ ``y`` " +"ແມ່ນເວີຊັນຫຼັກ ແລະ ເວີຊັນຍ່ອຍຂອງ glibc ທີ່ຮອງຮັບ (ຕົວຢ່າງ ``manylinux_2_24_xxx`` " +"ຄວນເຮັດວຽກໄດ້ໃນ distro ໃດກໍຕາມທີ່ໃຊ້ glibc 2.24+), ແລະ ``arch`` ແມ່ນສະຖາປັດຕະຍະກຳ " +"(architecture), ເຊິ່ງກົງກັບຄ່າຂອງ :py:func:`sysconfig.get_platform()` " +"ໃນລະບົບຄືກັບຮູບແບບ \"ງ່າຍໆ\" ຂ້າງເທິງ." + +#: ../source/specifications/platform-compatibility-tags.rst:123 +msgid "" +"The following older tags are still supported for backward compatibility:" +msgstr "ແທັກເກົ່າໆຕໍ່ໄປນີ້ຍັງຄົງໄດ້ຮັບການຮອງຮັບເພື່ອຄວາມເຂົ້າກັນໄດ້ກັບເວີຊັນກ່ອນໜ້າ:" + +#: ../source/specifications/platform-compatibility-tags.rst:125 +msgid "" +"``manylinux1`` supports glibc 2.5 on ``x86_64`` and ``i686`` architectures." +msgstr "``manylinux1`` ຮອງຮັບ glibc 2.5 ໃນສະຖາປັດຕະຍະກຳ ``x86_64`` ແລະ ``i686``." + +#: ../source/specifications/platform-compatibility-tags.rst:126 +msgid "``manylinux2010`` supports glibc 2.12 on ``x86_64`` and ``i686``." +msgstr "``manylinux2010`` ຮອງຮັບ glibc 2.12 ໃນ ``x86_64`` ແລະ ``i686``." + +#: ../source/specifications/platform-compatibility-tags.rst:127 +msgid "" +"``manylinux2014`` supports glibc 2.17 on ``x86_64``, ``i686``, ``aarch64``, " +"``armv7l``, ``ppc64``, ``ppc64le``, and ``s390x``." +msgstr "" +"``manylinux2014`` ຮອງຮັບ glibc 2.17 ໃນ ``x86_64``, ``i686``, ``aarch64``, " +"``armv7l``, ``ppc64``, ``ppc64le``, ແລະ ``s390x``." + +#: ../source/specifications/platform-compatibility-tags.rst:130 +msgid "" +"In general, distributions built for older versions of the specification are " +"forwards-compatible (meaning that ``manylinux1`` distributions should " +"continue to work on modern systems) but not backwards-compatible (meaning " +"that ``manylinux2010`` distributions are not expected to work on platforms " +"that existed before 2010)." +msgstr "" +"ໂດຍທົ່ວໄປແລ້ວ, ການແຈກຢາຍທີ່ build ສຳລັບເວີຊັນເກົ່າຂອງຂໍ້ກຳນົດ ແມ່ນສາມາດ ເຂົ້າກັນໄດ້ກັບເວີຊັນໃໝ່ " +"(ໝາຍຄວາມວ່າການແຈກຢາຍ ``manylinux1`` ຄວນຈະ ຍັງຄົງເຮັດວຽກໄດ້ໃນລະບົບທີ່ທັນສະໄໝ) " +"ແຕ່ບໍ່ສາມາດເຂົ້າກັນໄດ້ກັບເວີຊັນກ່ອນໜ້າ (ໝາຍຄວາມວ່າການແຈກຢາຍ ``manylinux2010`` " +"ອາດຈະບໍ່ເຮັດວຽກໃນແພລັດຟອມ ທີ່ມີມາກ່ອນປີ 2010)." + +#: ../source/specifications/platform-compatibility-tags.rst:136 +msgid "" +"Package maintainers should attempt to target the most compatible " +"specification possible, with the caveat that the provided build environment " +"for ``manylinux1`` and ``manylinux2010`` have reached end-of-life meaning " +"that these images will no longer receive security updates." +msgstr "" +"ຜູ້ດູແລແພັກເກດຄວນພະຍາຍາມຕັ້ງເປົ້າໝາຍໃສ່ຂໍ້ກຳນົດທີ່ເຂົ້າກັນໄດ້ຫຼາຍທີ່ສຸດເທົ່າທີ່ຈະເປັນໄປໄດ້, " +"ແຕ່ຕ້ອງລະວັງວ່າສະພາບແວດລ້ອມການ build ທີ່ໃຫ້ໄວ້ສຳລັບ ``manylinux1`` ແລະ " +"``manylinux2010`` ໄດ້ໝົດອາຍຸການໃຊ້ງານແລ້ວ (end-of-life), ເຊິ່ງໝາຍຄວາມວ່າ images " +"ເຫຼົ່ານີ້ຈະບໍ່ໄດ້ຮັບການອັບເດດດ້ານຄວາມປອດໄພອີກຕໍ່ໄປ." + +#: ../source/specifications/platform-compatibility-tags.rst:141 +msgid "" +"The following table shows the minimum versions of relevant projects to " +"support the various ``manylinux`` standards:" +msgstr "" +"ຕາຕະລາງຕໍ່ໄປນີ້ສະແດງເວີຊັນຂັ້ນຕ່ຳຂອງໂຄງການທີ່ກ່ຽວຂ້ອງ ເພື່ອຮອງຮັບມາດຕະຖານ ``manylinux`` ຕ່າງໆ:" + +#: ../source/specifications/platform-compatibility-tags.rst:145 +msgid "Tool" +msgstr "ເຄື່ອງມື" + +#: ../source/specifications/platform-compatibility-tags.rst:145 +msgid "``manylinux1``" +msgstr "``manylinux1``" + +#: ../source/specifications/platform-compatibility-tags.rst:145 +msgid "``manylinux2010``" +msgstr "``manylinux2010``" + +#: ../source/specifications/platform-compatibility-tags.rst:145 +msgid "``manylinux2014``" +msgstr "``manylinux2014``" + +#: ../source/specifications/platform-compatibility-tags.rst:145 +msgid "``manylinux_x_y``" +msgstr "``manylinux_x_y``" + +#: ../source/specifications/platform-compatibility-tags.rst:147 +msgid "``>=8.1.0``" +msgstr "``>=8.1.0``" + +#: ../source/specifications/platform-compatibility-tags.rst:147 +msgid "``>=19.0``" +msgstr "``>=19.0``" + +#: ../source/specifications/platform-compatibility-tags.rst:147 +msgid "``>=19.3``" +msgstr "``>=19.3``" + +#: ../source/specifications/platform-compatibility-tags.rst:147 +msgid "``>=20.3``" +msgstr "``>=20.3``" + +#: ../source/specifications/platform-compatibility-tags.rst:148 +msgid "auditwheel" +msgstr "auditwheel" + +#: ../source/specifications/platform-compatibility-tags.rst:148 +msgid "``>=1.0.0``" +msgstr "``>=1.0.0``" + +#: ../source/specifications/platform-compatibility-tags.rst:148 +msgid "``>=2.0.0``" +msgstr "``>=2.0.0``" + +#: ../source/specifications/platform-compatibility-tags.rst:148 +msgid "``>=3.0.0``" +msgstr "``>=3.0.0``" + +#: ../source/specifications/platform-compatibility-tags.rst:148 +msgid "``>=3.3.0`` [#]_" +msgstr "``>=3.3.0`` [#]_" + +#: ../source/specifications/platform-compatibility-tags.rst:151 +msgid "Only support for ``manylinux_2_24`` has been added in auditwheel 3.3.0" +msgstr "ສະເພາະການຮອງຮັບສຳລັບ ``manylinux_2_24`` ເທົ່ານັ້ນທີ່ຖືກເພີ່ມໃນ auditwheel 3.3.0" + +#: ../source/specifications/platform-compatibility-tags.rst:155 +msgid "``musllinux``" +msgstr "``musllinux``" + +#: ../source/specifications/platform-compatibility-tags.rst:157 +msgid "" +"The ``musllinux`` family of tags is similar to ``manylinux``, but for Linux " +"platforms that use the musl_ libc rather than glibc (a prime example being " +"Alpine Linux). The schema is :file:`musllinux_{x}_{y}_{arch}`, supporting " +"musl ``x.y`` and higher on the architecture ``arch``." +msgstr "" +"ກຸ່ມແທັກ ``musllinux`` ແມ່ນຄ້າຍຄືກັບ ``manylinux``, ແຕ່ສຳລັບແພລັດຟອມ Linux ທີ່ໃຊ້ musl_ " +"libc ແທນທີ່ຈະເປັນ glibc (ຕົວຢ່າງທີ່ຊັດເຈນແມ່ນ Alpine Linux). " +"ຮູບແບບແມ່ນ :file:`musllinux_{x}_{y}_{arch}`, ເຊິ່ງຮອງຮັບ musl ``x.y`` ແລະ " +"ສູງກວ່າໃນສະຖາປັດຕະຍະກຳ ``arch``." + +#: ../source/specifications/platform-compatibility-tags.rst:162 +msgid "" +"The musl version values can be obtained by executing the musl libc shared " +"library the Python interpreter is currently running on, and parsing the " +"output:" +msgstr "" +"ຄ່າເວີຊັນຂອງ musl ສາມາດໄດ້ຮັບໂດຍການເອີ້ນໃຊ້ musl libc shared library ທີ່ Python " +"interpreter ກຳລັງລັນຢູ່, ແລະ parse ຜົນລັດທີ່ໄດ້:" + +#: ../source/specifications/platform-compatibility-tags.rst:193 +msgid "" +"There are currently two possible ways to find the musl library’s location " +"that a Python interpreter is running on, either with the system ldd_ " +"command, or by parsing the ``PT_INTERP`` section’s value from the " +"executable’s ELF_ header." +msgstr "" +"ປະຈຸບັນມີສອງວິທີທີ່ເປັນໄປໄດ້ໃນການຊອກຫາສະຖານທີ່ຂອງໄລບຣາຣີ musl ທີ່ Python interpreter " +"ກຳລັງລັນຢູ່, ຄືການໃຊ້ຄຳສັ່ງ ldd_ ຂອງລະບົບ, ຫຼື ການ parse ຄ່າໃນສ່ວນ ``PT_INTERP`` ຈາກ ELF_ " +"header ຂອງໄຟລ໌ executable." + +#: ../source/specifications/platform-compatibility-tags.rst:202 +msgid "" +"macOS uses the ``macosx`` family of tags (the ``x`` suffix is a historical " +"artefact of Apple's official macOS naming scheme). The schema for " +"compatibility tags is :file:`macosx_{x}_{y}_{arch}`, indicating that the " +"wheel is compatible with macOS ``x.y`` or later on the architecture ``arch``." +msgstr "" +"macOS ໃຊ້ກຸ່ມແທັກ ``macosx`` (ຕົວອັກສອນ ``x`` ແມ່ນມາຈາກຊື່ macOS ຢ່າງເປັນທາງການ ຂອງ " +"Apple ໃນເມື່ອກ່ອນ). ຮູບແບບສຳລັບແທັກຄວາມເຂົ້າກັນໄດ້ແມ່ນ :file:`macosx_{x}_{y}_{arch}`, " +"ເຊິ່ງບົ່ງບອກວ່າ wheel ນັ້ນເຂົ້າກັນໄດ້ກັບ macOS ``x.y`` ຫຼື ໃໝ່ກວ່າໃນສະຖາປັດຕະຍະກຳ ``arch``." + +#: ../source/specifications/platform-compatibility-tags.rst:207 +msgid "" +"For macOS 10, the tag is :file:`macosx_10_{y}_{arch}`, where ``y`` " +"corresponds to the minor version number of the macOS release. For macOS 11 " +"and higher, the tag is :file:`macosx_{x}_0_{arch}`, where ``x`` corresponds " +"to the major version number of the macOS release. Following the published " +"macOS major versions, the ``x`` value is either ``10 <= x <= 15``, or " +"``>=26`` and corresponding to the year of the macOS release. For example, " +"``macosx_11_0_arm64`` indicates compatibility with macOS 11 or later." +msgstr "" +"ສຳລັບ macOS 10, ແທັກແມ່ນ :file:`macosx_10_{y}_{arch}`, ໂດຍທີ່ ``y`` " +"ກົງກັບໝາຍເລກເວີຊັນຍ່ອຍຂອງ macOS. ສຳລັບ macOS 11 ແລະ ສູງກວ່າ, ແທັກແມ່ນ :file:`macosx_{x}" +"_0_{arch}`, ໂດຍທີ່ ``x`` ກົງກັບໝາຍເລກເວີຊັນຫຼັກຂອງ macOS. ຕາມເວີຊັນຫຼັກຂອງ macOS ທີ່ເຜີຍແຜ່, " +"ຄ່າ ``x`` ຈະເປັນ ``10 <= x <= 15``, ຫຼື ``>=26`` ເຊິ່ງກົງກັບປີທີ່ເຜີຍແຜ່ macOS. ຕົວຢ່າງ, " +"``macosx_11_0_arm64`` ບົ່ງບອກເຖິງຄວາມເຂົ້າກັນໄດ້ກັບ macOS 11 ຫຼື ໃໝ່ກວ່າ." + +#: ../source/specifications/platform-compatibility-tags.rst:215 +msgid "" +"macOS binaries can be compiled for a single architecture, or can include " +"support for multiple architectures in the same binary (sometimes called " +"\"fat\" binaries). To indicate support for a single architecture, the value " +"of ``arch`` must match the value of :py:func:`platform.machine()` on the " +"system. To indicate support multiple architectures, the ``arch`` tag should " +"be an identifier from the following list that describes the set of supported " +"architectures:" +msgstr "" +"ໄຟລ໌ binary ຂອງ macOS ສາມາດຖືກ compile ສຳລັບສະຖາປັດຕະຍະກຳດຽວ, ຫຼື " +"ສາມາດລວມເອົາການຮອງຮັບຫຼາຍສະຖາປັດຕະຍະກຳໃນ binary ດຽວກັນ (ບາງຄັ້ງ ເອີ້ນວ່າ \"fat\" " +"binaries). ເພື່ອບົ່ງບອກການຮອງຮັບສະຖາປັດຕະຍະກຳດຽວ, ຄ່າຂອງ ``arch`` " +"ຕ້ອງກົງກັບຄ່າຂອງ :py:func:`platform.machine()` ໃນລະບົບ. " +"ເພື່ອບົ່ງບອກການຮອງຮັບຫຼາຍສະຖາປັດຕະຍະກຳ, ແທັກ ``arch`` ຄວນເປັນຕົວລະບຸ " +"ຈາກລາຍຊື່ຕໍ່ໄປນີ້ທີ່ອະທິບາຍຊຸດຂອງສະຖາປັດຕະຍະກຳທີ່ຮອງຮັບ:" + +#: ../source/specifications/platform-compatibility-tags.rst:223 +msgid "``arch``" +msgstr "``arch``" + +#: ../source/specifications/platform-compatibility-tags.rst:223 +msgid "Architectures supported" +msgstr "ສະຖາປັດຕະຍະກຳທີ່ຮອງຮັບ" + +#: ../source/specifications/platform-compatibility-tags.rst:225 +msgid "``universal2``" +msgstr "``universal2``" + +#: ../source/specifications/platform-compatibility-tags.rst:225 +msgid "``arm64``, ``x86_64``" +msgstr "``arm64``, ``x86_64``" + +#: ../source/specifications/platform-compatibility-tags.rst:226 +msgid "``universal``" +msgstr "``universal``" + +#: ../source/specifications/platform-compatibility-tags.rst:226 +msgid "``i386``, ``ppc``, ``ppc64``, ``x86_64``" +msgstr "``i386``, ``ppc``, ``ppc64``, ``x86_64``" + +#: ../source/specifications/platform-compatibility-tags.rst:227 +msgid "``intel``" +msgstr "``intel``" + +#: ../source/specifications/platform-compatibility-tags.rst:227 +msgid "``i386``, ``x86_64``" +msgstr "``i386``, ``x86_64``" + +#: ../source/specifications/platform-compatibility-tags.rst:228 +msgid "``fat``" +msgstr "``fat``" + +#: ../source/specifications/platform-compatibility-tags.rst:228 +msgid "``i386``, ``ppc``" +msgstr "``i386``, ``ppc``" + +#: ../source/specifications/platform-compatibility-tags.rst:229 +msgid "``fat3``" +msgstr "``fat3``" + +#: ../source/specifications/platform-compatibility-tags.rst:229 +msgid "``i386``, ``ppc``, ``x86_64``" +msgstr "``i386``, ``ppc``, ``x86_64``" + +#: ../source/specifications/platform-compatibility-tags.rst:230 +msgid "``fat64``" +msgstr "``fat64``" + +#: ../source/specifications/platform-compatibility-tags.rst:230 +msgid "``ppc64``, ``x86_64``" +msgstr "``ppc64``, ``x86_64``" + +#: ../source/specifications/platform-compatibility-tags.rst:233 +msgid "" +"The minimum supported macOS version may also be constrained by architecture. " +"For example, macOS 11 (Big Sur) was the first release to support arm64. " +"These additional constraints are enforced transparently by the macOS " +"compilation toolchain when building binaries that support multiple " +"architectures." +msgstr "" +"ເວີຊັນ macOS ຂັ້ນຕ່ຳທີ່ຮອງຮັບອາດຈະຖືກຈຳກັດໂດຍສະຖາປັດຕະຍະກຳຄືກັນ. ຕົວຢ່າງ, macOS 11 (Big " +"Sur) ແມ່ນລຸ້ນທຳອິດທີ່ຮອງຮັບ arm64. ຂໍ້ຈຳກັດເພີ່ມເຕີມເຫຼົ່ານີ້ ຈະຖືກບັງຄັບໃຊ້ໂດຍອັດຕະໂນມັດໂດຍ macOS " +"compilation toolchain ເມື່ອ build binaries ທີ່ຮອງຮັບຫຼາຍສະຖາປັດຕະຍະກຳ." + +#: ../source/specifications/platform-compatibility-tags.rst:241 +msgid "Android" +msgstr "Android" + +#: ../source/specifications/platform-compatibility-tags.rst:243 +msgid "" +"Android uses the schema :file:`android_{apilevel}_{abi}`, indicating " +"compatibility with the given Android API level or later, on the given ABI. " +"For example, ``android_27_arm64_v8a`` indicates support for API level 27 or " +"later, on ``arm64_v8a`` devices. Android makes no distinction between " +"physical devices and emulated devices." +msgstr "" +"Android ໃຊ້ຮູບແບບ :file:`android_{apilevel}_{abi}`, ເຊິ່ງບົ່ງບອກເຖິງ ຄວາມເຂົ້າກັນໄດ້ກັບ " +"Android API level ທີ່ກຳນົດ ຫຼື ໃໝ່ກວ່າ, ໃນ ABI ທີ່ກຳນົດ. ຕົວຢ່າງ, " +"``android_27_arm64_v8a`` ບົ່ງບອກເຖິງການຮອງຮັບ API level 27 ຫຼື ໃໝ່ກວ່າ, ໃນອຸປະກອນ " +"``arm64_v8a``. Android ບໍ່ໄດ້ແບ່ງແຍກລະຫວ່າງອຸປະກອນຈິງ ແລະ ອຸປະກອນຈຳລອງ (emulated " +"devices)." + +#: ../source/specifications/platform-compatibility-tags.rst:249 +msgid "" +"The API level should be a positive integer. This is *not* the same thing as " +"the user-facing Android version. For example, the release known as Android " +"12 (code named \"Snow Cone\") uses API level 31 or 32, depending on the " +"specific Android version in use. Android's release documentation contains " +"the `full list of Android versions and their corresponding API levels " +"`__." +msgstr "" +"API level ຄວນເປັນຈຳນວນຖ້ວນບວກ. ນີ້ *ບໍ່ແມ່ນ* ສິ່ງດຽວກັນກັບເວີຊັນ Android ທີ່ຜູ້ໃຊ້ເຫັນ. ຕົວຢ່າງ, " +"Android 12 (ຊື່ລະຫັດ \"Snow Cone\") ໃຊ້ API level 31 ຫຼື 32, ຂຶ້ນກັບເວີຊັນ Android " +"ທີ່ໃຊ້ຢູ່. ເອກະສານຂອງ Android ປະກອບດ້ວຍ `ລາຍຊື່ເວີຊັນ Android ທັງໝົດ ແລະ API levels " +"ທີ່ກ່ຽວຂ້ອງ `__." + +#: ../source/specifications/platform-compatibility-tags.rst:256 +msgid "" +"There are 4 `supported ABIs `__. Normalized according to the rules above, they are:" +msgstr "" +"ມີ 4 `ABIs ທີ່ໄດ້ຮັບການຮອງຮັບ `__. " +"ເມື່ອເຮັດໃຫ້ເປັນມາດຕະຖານຕາມກົດຂ້າງເທິງແລ້ວ, ພວກມັນຄື:" + +#: ../source/specifications/platform-compatibility-tags.rst:259 +msgid "``armeabi_v7a``" +msgstr "``armeabi_v7a``" + +#: ../source/specifications/platform-compatibility-tags.rst:260 +msgid "``arm64_v8a``" +msgstr "``arm64_v8a``" + +#: ../source/specifications/platform-compatibility-tags.rst:261 +msgid "``x86``" +msgstr "``x86``" + +#: ../source/specifications/platform-compatibility-tags.rst:262 +msgid "``x86_64``" +msgstr "``x86_64``" + +#: ../source/specifications/platform-compatibility-tags.rst:264 +msgid "" +"Virtually all current physical devices use one of the ARM architectures. " +"``x86`` and ``x86_64`` are supported for use in the emulator. ``x86`` has " +"not been supported as a development platform since 2020, and no new emulator " +"images have been released since then." +msgstr "" +"ເກືອບທັງໝົດຂອງອຸປະກອນຈິງໃນປະຈຸບັນໃຊ້ສະຖາປັດຕະຍະກຳ ARM. ``x86`` ແລະ ``x86_64`` " +"ແມ່ນຮອງຮັບສຳລັບໃຊ້ໃນຕົວຈຳລອງ (emulator). ``x86`` ບໍ່ໄດ້ຮັບການຮອງຮັບ " +"ໃນຖານະແພລັດຟອມສຳລັບພັດທະນາຕັ້ງແຕ່ປີ 2020, ແລະ ບໍ່ມີ emulator images ໃໝ່ໆຖືກເຜີຍແຜ່ຕັ້ງແຕ່ນັ້ນມາ." + +#: ../source/specifications/platform-compatibility-tags.rst:272 +msgid "iOS" +msgstr "iOS" + +#: ../source/specifications/platform-compatibility-tags.rst:274 +msgid "" +"iOS uses the schema :file:`ios_{x}_{y}_{arch}_{sdk}`, indicating " +"compatibility with iOS ``x.y`` or later, on the ``arch`` architecture, using " +"the ``sdk`` SDK." +msgstr "" +"iOS ໃຊ້ຮູບແບບ :file:`ios_{x}_{y}_{arch}_{sdk}`, ເຊິ່ງບົ່ງບອກເຖິງ ຄວາມເຂົ້າກັນໄດ້ກັບ iOS " +"``x.y`` ຫຼື ໃໝ່ກວ່າ, ໃນສະຖາປັດຕະຍະກຳ ``arch``, ໂດຍໃຊ້ SDK ທີ່ຊື່ວ່າ ``sdk``." + +#: ../source/specifications/platform-compatibility-tags.rst:277 +msgid "" +"The value of ``x`` and ``y`` correspond to the major and minor version " +"number of the iOS release, respectively. They must both be positive " +"integers. The version number always includes a major *and* minor version, " +"even if Apple's official version numbering only refers to the major value. " +"For example, a ``ios_13_0_arm64_iphonesimulator`` indicates compatibility " +"with iOS 13 or later." +msgstr "" +"ຄ່າຂອງ ``x`` ແລະ ``y`` ກົງກັບໝາຍເລກເວີຊັນຫຼັກ ແລະ ເວີຊັນຍ່ອຍຂອງ iOS ຕາມລຳດັບ. " +"ທັງສອງຕ້ອງເປັນຈຳນວນຖ້ວນບວກ. ໝາຍເລກເວີຊັນຈະລວມເອົາທັງເວີຊັນຫຼັກ *ແລະ* ຍ່ອຍສະເໝີ, " +"ເຖິງແມ່ນວ່າການຕັ້ງເວີຊັນຢ່າງເປັນທາງການຂອງ Apple ຈະອ້າງເຖິງພຽງແຕ່ເວີຊັນຫຼັກກໍຕາມ. ຕົວຢ່າງ, " +"``ios_13_0_arm64_iphonesimulator`` ບົ່ງບອກເຖິງຄວາມເຂົ້າກັນໄດ້ກັບ iOS 13 ຫຼື ໃໝ່ກວ່າ." + +#: ../source/specifications/platform-compatibility-tags.rst:283 +msgid "" +"The value of ``arch`` must match the value of :py:func:`platform.machine()` " +"on the system." +msgstr "ຄ່າຂອງ ``arch`` ຕ້ອງກົງກັບຄ່າຂອງ :py:func:`platform.machine()` ໃນລະບົບ." + +#: ../source/specifications/platform-compatibility-tags.rst:286 +msgid "" +"The value of ``sdk`` must be either ``iphoneos`` (for physical devices), or " +"``iphonesimulator`` (for device simulators). These SDKs have the same API " +"surface, but are incompatible at the binary level, even if they are running " +"on the same CPU architecture. Code compiled for an arm64 simulator will not " +"run on an arm64 device." +msgstr "" +"ຄ່າຂອງ ``sdk`` ຕ້ອງເປັນ ``iphoneos`` (ສຳລັບອຸປະກອນຈິງ), ຫຼື ``iphonesimulator`` " +"(ສຳລັບຕົວຈຳລອງອຸປະກອນ). SDK ເຫຼົ່ານີ້ມີ API ຄືກັນ, ແຕ່ບໍ່ສາມາດເຂົ້າກັນໄດ້ໃນລະດັບ binary, " +"ເຖິງແມ່ນວ່າພວກມັນຈະລັນຢູ່ໃນສະຖາປັດຕະຍະກຳ CPU ດຽວກັນກໍຕາມ. ໂຄ້ດທີ່ compile ສຳລັບ arm64 " +"simulator ຈະບໍ່ສາມາດລັນໃນອຸປະກອນ arm64 ຈິງໄດ້." + +#: ../source/specifications/platform-compatibility-tags.rst:292 +msgid "" +"The combination of :file:`{arch}_{sdk}` is referred to as the \"multiarch\". " +"There are three possible values for multiarch:" +msgstr "" +"ການລວມກັນຂອງ :file:`{arch}_{sdk}` ເອີ້ນວ່າ \"multiarch\". ມີສາມຄ່າທີ່ເປັນໄປໄດ້ສຳລັບ " +"multiarch:" + +#: ../source/specifications/platform-compatibility-tags.rst:295 +msgid "" +"``arm64_iphoneos``, for physical iPhone/iPad devices. This includes every " +"iOS device manufactured since ~2015;" +msgstr "" +"``arm64_iphoneos``, ສຳລັບອຸປະກອນ iPhone/iPad ຈິງ. ນີ້ລວມເຖິງທຸກອຸປະກອນ iOS " +"ທີ່ຜະລິດປະມານຕັ້ງແຕ່ປີ 2015;" + +#: ../source/specifications/platform-compatibility-tags.rst:297 +msgid "" +"``arm64_iphonesimulator``, for simulators running on Apple Silicon macOS " +"hardware; and" +msgstr "" +"``arm64_iphonesimulator``, ສຳລັບຕົວຈຳລອງທີ່ລັນເທິງ Apple Silicon macOS hardware; " +"ແລະ" + +#: ../source/specifications/platform-compatibility-tags.rst:299 +msgid "``x86_64_iphonesimulator``, for simulators running on x86_64 hardware." +msgstr "``x86_64_iphonesimulator``, ສຳລັບຕົວຈຳລອງທີ່ລັນເທິງ x86_64 hardware." + +#: ../source/specifications/platform-compatibility-tags.rst:302 +msgid "Use" +msgstr "ການໃຊ້ງານ" + +#: ../source/specifications/platform-compatibility-tags.rst:304 +msgid "" +"The tags are used by installers to decide which built distribution (if any) " +"to download from a list of potential built distributions. The installer " +"maintains a list of (pyver, abi, arch) tuples that it will support. If the " +"built distribution's tag is ``in`` the list, then it can be installed." +msgstr "" +"ແທັກເຫຼົ່ານີ້ຖືກໃຊ້ໂດຍຕົວຕິດຕັ້ງເພື່ອຕັດສິນໃຈວ່າຈະດາວໂຫລດການແຈກຢາຍທີ່ build ແລ້ວອັນໃດ (ຖ້າມີ) " +"ຈາກລາຍຊື່ການແຈກຢາຍທີ່ມີໃຫ້. ຕົວຕິດຕັ້ງຈະເກັບລາຍຊື່ຂອງ (pyver, abi, arch) ທີ່ມັນຮອງຮັບ. " +"ຖ້າແທັກຂອງການແຈກຢາຍທີ່ build ແລ້ວ ``ຢູ່ໃນ`` ລາຍຊື່, ມັນກໍສາມາດຕິດຕັ້ງໄດ້." + +#: ../source/specifications/platform-compatibility-tags.rst:310 +msgid "" +"It is recommended that installers try to choose the most feature complete " +"built distribution available (the one most specific to the installation " +"environment) by default before falling back to pure Python versions " +"published for older Python releases. Installers are also recommended to " +"provide a way to configure and re-order the list of allowed compatibility " +"tags; for example, a user might accept only the ``*-none-any`` tags to only " +"download built packages that advertise themselves as being pure Python." +msgstr "" +"ແນະນຳໃຫ້ຕົວຕິດຕັ້ງພະຍາຍາມເລືອກການແຈກຢາຍທີ່ build ແລ້ວທີ່ມີຄຸນສົມບັດຄົບຖ້ວນທີ່ສຸດ " +"(ອັນທີ່ສະເພາະເຈາະຈົງກັບສະພາບແວດລ້ອມການຕິດຕັ້ງທີ່ສຸດ) ໂດຍຄ່າເລີ່ມຕົ້ນ ກ່ອນທີ່ຈະ ກັບໄປໃຊ້ເວີຊັນ pure " +"Python ທີ່ເຜີຍແຜ່ສຳລັບ Python ລຸ້ນເກົ່າ. ແນະນຳໃຫ້ຕົວຕິດຕັ້ງ ມີວິທີການຕັ້ງຄ່າ ແລະ " +"ຈັດລຳດັບລາຍຊື່ແທັກຄວາມເຂົ້າກັນໄດ້ທີ່ອະນຸຍາດ; ຕົວຢ່າງ, ຜູ້ໃຊ້ອາດຈະຍອມຮັບສະເພາະແທັກ ``*-none-" +"any`` ເພື່ອດາວໂຫລດສະເພາະແພັກເກດ ທີ່ລະບຸວ່າເປັນ pure Python ເທົ່ານັ້ນ." + +#: ../source/specifications/platform-compatibility-tags.rst:318 +msgid "" +"Another desirable installer feature might be to include \"re-compile from " +"source if possible\" as more preferable than some of the compatible but " +"legacy pre-built options." +msgstr "" +"ຄຸນສົມບັດຂອງຕົວຕິດຕັ້ງທີ່ດີອີກຢ່າງໜຶ່ງອາດຈະເປັນການລວມເອົາ \"re-compile ຈາກ source " +"ຖ້າເປັນໄປໄດ້\" ໃຫ້ມີຄວາມສຳຄັນກວ່າຕົວເລືອກ pre-built ທີ່ເຂົ້າກັນໄດ້ແຕ່ເປັນຂອງເກົ່າ." + +#: ../source/specifications/platform-compatibility-tags.rst:322 +msgid "" +"This example list is for an installer running under CPython 3.3 on a " +"linux_x86_64 system. It is in order from most-preferred (a distribution with " +"a compiled extension module, built for the current version of Python) to " +"least-preferred (a pure-Python distribution built with an older version of " +"Python):" +msgstr "" +"ລາຍຊື່ຕົວຢ່າງນີ້ແມ່ນສຳລັບຕົວຕິດຕັ້ງທີ່ລັນພາຍໃຕ້ CPython 3.3 ໃນລະບົບ linux_x86_64. " +"ມັນລຽງລຳດັບຈາກສິ່ງທີ່ຕ້ອງການທີ່ສຸດ (ການແຈກຢາຍທີ່ມີ extension module ທີ່ compile ແລ້ວ, build " +"ສຳລັບ Python ເວີຊັນປະຈຸບັນ) ໄປຫາສິ່ງທີ່ຕ້ອງການໜ້ອຍທີ່ສຸດ (ການແຈກຢາຍ pure-Python ທີ່ build " +"ດ້ວຍ Python ເວີຊັນເກົ່າ):" + +#: ../source/specifications/platform-compatibility-tags.rst:328 +msgid "cp33-cp33m-linux_x86_64" +msgstr "cp33-cp33m-linux_x86_64" + +#: ../source/specifications/platform-compatibility-tags.rst:329 +msgid "cp33-abi3-linux_x86_64" +msgstr "cp33-abi3-linux_x86_64" + +#: ../source/specifications/platform-compatibility-tags.rst:330 +msgid "cp3-abi3-linux_x86_64" +msgstr "cp3-abi3-linux_x86_64" + +#: ../source/specifications/platform-compatibility-tags.rst:331 +msgid "cp33-none-linux_x86_64*" +msgstr "cp33-none-linux_x86_64*" + +#: ../source/specifications/platform-compatibility-tags.rst:332 +msgid "cp3-none-linux_x86_64*" +msgstr "cp3-none-linux_x86_64*" + +#: ../source/specifications/platform-compatibility-tags.rst:333 +msgid "py33-none-linux_x86_64*" +msgstr "py33-none-linux_x86_64*" + +#: ../source/specifications/platform-compatibility-tags.rst:334 +msgid "py3-none-linux_x86_64*" +msgstr "py3-none-linux_x86_64*" + +#: ../source/specifications/platform-compatibility-tags.rst:335 +msgid "cp33-none-any" +msgstr "cp33-none-any" + +#: ../source/specifications/platform-compatibility-tags.rst:336 +msgid "cp3-none-any" +msgstr "cp3-none-any" + +#: ../source/specifications/platform-compatibility-tags.rst:337 +msgid "py33-none-any" +msgstr "py33-none-any" + +#: ../source/specifications/platform-compatibility-tags.rst:338 +msgid "py3-none-any" +msgstr "py3-none-any" + +#: ../source/specifications/platform-compatibility-tags.rst:339 +msgid "py32-none-any" +msgstr "py32-none-any" + +#: ../source/specifications/platform-compatibility-tags.rst:340 +msgid "py31-none-any" +msgstr "py31-none-any" + +#: ../source/specifications/platform-compatibility-tags.rst:341 +msgid "py30-none-any" +msgstr "py30-none-any" + +#: ../source/specifications/platform-compatibility-tags.rst:343 +msgid "" +"Built distributions may be platform specific for reasons other than C " +"extensions, such as by including a native executable invoked as a subprocess." +msgstr "" +"ການແຈກຢາຍທີ່ build ແລ້ວອາດຈະສະເພາະກັບແພລັດຟອມດ້ວຍເຫດຜົນອື່ນນອກຈາກ C extensions, ເຊັ່ນ " +"ການລວມເອົາໄຟລ໌ native executable ທີ່ຖືກເອີ້ນໃຊ້ເປັນ subprocess." + +#: ../source/specifications/platform-compatibility-tags.rst:347 +msgid "" +"Sometimes there will be more than one supported built distribution for a " +"particular version of a package. For example, a packager could release a " +"package tagged ``cp33-abi3-linux_x86_64`` that contains an optional C " +"extension and the same distribution tagged ``py3-none-any`` that does not. " +"The index of the tag in the supported tags list breaks the tie, and the " +"package with the C extension is installed in preference to the package " +"without because that tag appears first in the list." +msgstr "" +"ບາງຄັ້ງອາດຈະມີການແຈກຢາຍທີ່ build ແລ້ວຫຼາຍກວ່າໜຶ່ງອັນທີ່ຮອງຮັບສຳລັບເວີຊັນສະເພາະ ຂອງແພັກເກດ. " +"ຕົວຢ່າງ, ຜູ້ເຮັດແພັກເກດອາດຈະເຜີຍແຜ່ແພັກເກດທີ່ຕິດແທັກ ``cp33-abi3-linux_x86_64`` ເຊິ່ງມີ C " +"extension ເສີມ ແລະ ການແຈກຢາຍອັນດຽວກັນທີ່ຕິດແທັກ ``py3-none-any`` ທີ່ບໍ່ມີ C extension. " +"ລຳດັບຂອງແທັກໃນລາຍຊື່ແທັກທີ່ຮອງຮັບຈະເປັນຕົວຕັດສິນ, ແລະ ແພັກເກດທີ່ມີ C extension " +"ຈະຖືກຕິດຕັ້ງກ່ອນແພັກເກດທີ່ບໍ່ມີ ເພາະວ່າແທັກນັ້ນ ປະກົດຂຶ້ນກ່ອນໃນລາຍຊື່." + +#: ../source/specifications/platform-compatibility-tags.rst:356 +msgid "Compressed Tag Sets" +msgstr "ຊຸດແທັກແບບຫຍໍ້ (Compressed Tag Sets)" + +#: ../source/specifications/platform-compatibility-tags.rst:358 +msgid "" +"To allow for compact filenames of bdists that work with more than one " +"compatibility tag triple, each tag in a filename can instead be a '.'-" +"separated, sorted, collection of tags. For example, pip, a pure-Python " +"package that is written to run under Python 2 and 3 with the same source " +"code, could distribute a bdist with the tag ``py2.py3-none-any``. The full " +"list of simple tags is::" +msgstr "" +"ເພື່ອໃຫ້ຊື່ໄຟລ໌ຂອງ bdists ມີຂະໜາດນ້ອຍລົງ ແລະ ສາມາດເຮັດວຽກກັບແທັກຄວາມເຂົ້າກັນໄດ້ ຫຼາຍກວ່າໜຶ່ງຊຸດ, " +"ແຕ່ລະແທັກໃນຊື່ໄຟລ໌ສາມາດໃຊ້ເປັນການລວມແທັກທີ່ແຍກດ້ວຍ ``.`` ແລະ ຈັດລຳດັບແລ້ວ. ຕົວຢ່າງ, pip, " +"ເຊິ່ງເປັນແພັກເກດ pure-Python ທີ່ຂຽນມາເພື່ອ ລັນພາຍໃຕ້ Python 2 ແລະ 3 ດ້ວຍ source code " +"ດຽວກັນ, ສາມາດເຜີຍແຜ່ bdist ດ້ວຍແທັກ ``py2.py3-none-any``. ລາຍຊື່ເຕັມຂອງແທັກແບບງ່າຍໆຄື::" + +#: ../source/specifications/platform-compatibility-tags.rst:370 +msgid "" +"A bdist format that implements this scheme should include the expanded tags " +"in bdist-specific metadata. This compression scheme can generate large " +"numbers of unsupported tags and \"impossible\" tags that are supported by no " +"Python implementation e.g. \"cp33-cp31u-win64\", so use it sparingly." +msgstr "" +"ຮູບແບບ bdist ທີ່ນຳໃຊ້ຮູບແບບນີ້ຄວນລວມເອົາແທັກທີ່ຂະຫຍາຍແລ້ວໄວ້ໃນຂໍ້ມູນເມຕາ ສະເພາະຂອງ bdist. " +"ຮູບແບບການຫຍໍ້ນີ້ສາມາດສ້າງແທັກທີ່ບໍ່ໄດ້ຮັບການຮອງຮັບ ແລະ ແທັກທີ່ \"ເປັນໄປບໍ່ໄດ້\" ເຊິ່ງບໍ່ມີ Python " +"implementation ໃດຮອງຮັບ ຕົວຢ່າງ \"cp33-cp31u-win64\", ດັ່ງນັ້ນຄວນໃຊ້ດ້ວຍຄວາມລະມັດລະວັງ." + +#: ../source/specifications/platform-compatibility-tags.rst:383 +msgid "What tags are used by default?" +msgstr "ແທັກໃດຖືກໃຊ້ເປັນຄ່າເລີ່ມຕົ້ນ?" + +#: ../source/specifications/platform-compatibility-tags.rst:379 +msgid "" +"Tools should use the most-preferred architecture dependent tag e.g. ``cp33-" +"cp33m-win32`` or the most-preferred pure python tag e.g. ``py33-none-any`` " +"by default. If the packager overrides the default it indicates that they " +"intended to provide cross-Python compatibility." +msgstr "" +"ເຄື່ອງມືຄວນໃຊ້ແທັກທີ່ຂຶ້ນກັບສະຖາປັດຕະຍະກຳທີ່ຕ້ອງການທີ່ສຸດ ເຊັ່ນ ``cp33-cp33m-win32`` ຫຼື ແທັກ pure " +"python ທີ່ຕ້ອງການທີ່ສຸດ ເຊັ່ນ ``py33-none-any`` ເປັນຄ່າເລີ່ມຕົ້ນ. " +"ຖ້າຜູ້ສ້າງແພັກເກັດກຳນົດຄ່າທັບຄ່າເລີ່ມຕົ້ນ ມັນສະແດງວ່າພວກເຂົາ ຕັ້ງໃຈທີ່ຈະໃຫ້ຮອງຮັບຄວາມເຂົ້າກັນໄດ້ລະຫວ່າງ " +"Python ຫຼາຍເວີຊັນ." + +#: ../source/specifications/platform-compatibility-tags.rst:393 +msgid "" +"What tag do I use if my distribution uses a feature exclusive to the newest " +"version of Python?" +msgstr "ຂ້ອຍຄວນໃຊ້ແທັກໃດ ຖ້າການແຈກຢາຍຂອງຂ້ອຍໃຊ້ຄຸນສົມບັດທີ່ມີສະເພາະໃນເວີຊັນໃໝ່ລ່າສຸດຂອງ Python?" + +#: ../source/specifications/platform-compatibility-tags.rst:386 +msgid "" +"Compatibility tags aid installers in selecting the *most compatible* build " +"of a *single version* of a distribution. For example, when there is no " +"Python 3.3 compatible build of ``beaglevote-1.2.0`` (it uses a Python 3.4 " +"exclusive feature) it may still use the ``py3-none-any`` tag instead of the " +"``py34-none-any`` tag. A Python 3.3 user must combine other qualifiers, such " +"as a requirement for the older release ``beaglevote-1.1.0`` that does not " +"use the new feature, to get a compatible build." +msgstr "" +"ແທັກຄວາມເຂົ້າກັນໄດ້ຊ່ວຍໃຫ້ຜູ້ຕິດຕັ້ງເລືອກບິວດ໌ (build) ທີ່ *ເຂົ້າກັນໄດ້ດີທີ່ສຸດ* ຂອງ *ເວີຊັນດຽວ* " +"ຂອງການແຈກຢາຍ. ຕົວຢ່າງ: ເມື່ອບໍ່ມີບິວດ໌ຂອງ ``beaglevote-1.2.0`` ທີ່ເຂົ້າກັນໄດ້ກັບ Python 3.3 " +"(ຍ້ອນມັນໃຊ້ຄຸນສົມບັດສະເພາະຂອງ Python 3.4) ມັນອາດຈະ ຍັງໃຊ້ແທັກ ``py3-none-any`` " +"ແທນທີ່ຈະເປັນແທັກ ``py34-none-any``. ຜູ້ໃຊ້ Python 3.3 ຕ້ອງໃຊ້ຂໍ້ກຳນົດອື່ນຮ່ວມນຳ ເຊັ່ນ: " +"ການລະບຸຄວາມຕ້ອງການເວີຊັນເກົ່າ ``beaglevote-1.1.0`` ທີ່ບໍ່ໄດ້ໃຊ້ຄຸນສົມບັດໃໝ່ " +"ເພື່ອໃຫ້ໄດ້ບິວດ໌ທີ່ເຂົ້າກັນໄດ້." + +#: ../source/specifications/platform-compatibility-tags.rst:398 +msgid "Why isn't there a ``.`` in the Python version number?" +msgstr "ເປັນຫຍັງຈຶ່ງບໍ່ມີ ``.`` ໃນເລກເວີຊັນຂອງ Python?" + +#: ../source/specifications/platform-compatibility-tags.rst:396 +msgid "" +"CPython has lasted 20+ years without a 3-digit major release. This should " +"continue for some time. Other implementations may use _ as a delimiter, " +"since both - and . delimit the surrounding filename." +msgstr "" +"CPython ຢູ່ມາໄດ້ 20 ກວ່າປີໂດຍບໍ່ມີການອອກເວີຊັນຫຼັກ 3 ຫຼັກ. ສິ່ງນີ້ຄວນຈະດຳເນີນຕໍ່ໄປ ອີກໄລຍະໜຶ່ງ. " +"ການເຮັດວຽກ (implementations) ອື່ນໆ ອາດຈະໃຊ້ _ ເປັນຕົວແຍກ, ເນື່ອງຈາກທັງ - ແລະ . " +"ຖືກໃຊ້ເປັນຕົວແຍກໃນຊື່ໄຟລ໌ແລ້ວ." + +#: ../source/specifications/platform-compatibility-tags.rst:404 +msgid "" +"Why normalise hyphens and other non-alphanumeric characters to underscores?" +msgstr "" +"ເປັນຫຍັງຈຶ່ງປັບປ່ຽນເຄື່ອງໝາຍຂີດຕໍ່ ແລະ ອັກສອນທີ່ບໍ່ແມ່ນຕົວເລກຫຼືຕົວໜັງສືອື່ນໆ ໃຫ້ເປັນເຄື່ອງໝາຍຂີດກ້ອງ?" + +#: ../source/specifications/platform-compatibility-tags.rst:401 +msgid "" +"To avoid conflicting with the ``.`` and ``-`` characters that separate " +"components of the filename, and for better compatibility with the widest " +"range of filesystem limitations for filenames (including being usable in URL " +"paths without quoting)." +msgstr "" +"ເພື່ອຫຼີກເວັ້ນການຂັດແຍ່ງກັບຕົວອັກສອນ ``.`` ແລະ ``-`` ທີ່ໃຊ້ແຍກສ່ວນປະກອບຂອງຊື່ໄຟລ໌, ແລະ " +"ເພື່ອຄວາມເຂົ້າກັນໄດ້ທີ່ດີຂຶ້ນກັບຂໍ້ຈຳກັດຂອງລະບົບໄຟລ໌ທີ່ຫຼາກຫຼາຍ (ລວມເຖິງການ ນຳໃຊ້ໃນ URL path " +"ໄດ້ໂດຍບໍ່ຕ້ອງໃຊ້ເຄື່ອງໝາຍອ້າງອີງ)." + +#: ../source/specifications/platform-compatibility-tags.rst:413 +msgid "Why not use special character rather than ``.`` or ``-``?" +msgstr "ເປັນຫຍັງຈຶ່ງບໍ່ໃຊ້ຕົວອັກສອນພິເສດ ແທນທີ່ຈະເປັນ ``.`` ຫຼື ``-``?" + +#: ../source/specifications/platform-compatibility-tags.rst:407 +msgid "" +"Either because that character is inconvenient or potentially confusing in " +"some contexts (for example, ``+`` must be quoted in URLs, ``~`` is used to " +"denote the user's home directory in POSIX), or because the advantages " +"weren't sufficiently compelling to justify changing the existing reference " +"implementation for the wheel format defined in :pep:`427` (for example, " +"using ``,`` rather than ``.`` to separate components in a compressed tag)." +msgstr "" +"ອາດເປັນຍ້ອນຕົວອັກສອນນັ້ນບໍ່ສະດວກ ຫຼື ອາດເຮັດໃຫ້ເກີດຄວາມສັບສົນໃນບາງບໍລິບົດ (ຕົວຢ່າງ: ``+`` " +"ຕ້ອງໃສ່ເຄື່ອງໝາຍອ້າງອີງໃນ URL, ``~`` ຖືກໃຊ້ແທນໄດເຣັກທໍຣີຫຼັກຂອງຜູ້ໃຊ້ໃນ POSIX), ຫຼື " +"ຍ້ອນວ່າຂໍ້ດີຂອງມັນຍັງບໍ່ມີນໍ້າໜັກພຽງພໍທີ່ຈະປ່ຽນແປງ reference implementation ທີ່ມີຢູ່ ສຳລັບຮູບແບບ " +"wheel ທີ່ກຳນົດໄວ້ໃນ :pep:`427`." + +#: ../source/specifications/platform-compatibility-tags.rst:418 +msgid "Who will maintain the registry of abbreviated implementations?" +msgstr "ໃຜຈະເປັນຜູ້ເບິ່ງແຍງລະບົບການລົງທະບຽນຕົວຫຍໍ້ຂອງການເຮັດວຽກ (implementations)?" + +#: ../source/specifications/platform-compatibility-tags.rst:416 +msgid "" +"New two-letter abbreviations can be requested on the python-dev mailing " +"list. As a rule of thumb, abbreviations are reserved for the current 4 most " +"prominent implementations." +msgstr "" +"ສາມາດຂໍຕົວຫຍໍ້ສອງຕົວອັກສອນໃໝ່ໄດ້ໃນ mailing list ຂອງ python-dev. ໂດຍທົ່ວໄປແລ້ວ, " +"ຕົວຫຍໍ້ຈະຖືກສະຫງວນໄວ້ສຳລັບ 4 implementations ທີ່ໂດດເດັ່ນທີ່ສຸດໃນປັດຈຸບັນ." + +#: ../source/specifications/platform-compatibility-tags.rst:423 +msgid "Does the compatibility tag go into METADATA or PKG-INFO?" +msgstr "ແທັກຄວາມເຂົ້າກັນໄດ້ຄວນຢູ່ໃນ METADATA ຫຼື PKG-INFO?" + +#: ../source/specifications/platform-compatibility-tags.rst:421 +msgid "" +"No. The compatibility tag is part of the built distribution's metadata. " +"METADATA / PKG-INFO should be valid for an entire distribution, not a single " +"build of that distribution." +msgstr "" +"ບໍ່. ແທັກຄວາມເຂົ້າກັນໄດ້ແມ່ນສ່ວນໜຶ່ງຂອງ metadata ຂອງການແຈກຢາຍທີ່ບິວດ໌ (build) ແລ້ວ. " +"METADATA / PKG-INFO ຄວນມີຜົນໃຊ້ໄດ້ກັບການແຈກຢາຍທັງໝົດ, ບໍ່ແມ່ນພຽງແຕ່ບິວດ໌ດຽວ " +"ຂອງການແຈກຢາຍນັ້ນ." + +#: ../source/specifications/platform-compatibility-tags.rst:429 +msgid "Why didn't you mention my favorite Python implementation?" +msgstr "ເປັນຫຍັງເຈົ້າຈຶ່ງບໍ່ໄດ້ກ່າວເຖິງ Python implementation ທີ່ຂ້ອຍມັກ?" + +#: ../source/specifications/platform-compatibility-tags.rst:426 +msgid "" +"The abbreviated tags facilitate sharing compiled Python code in a public " +"index. Your Python implementation can use this specification too, but with " +"longer tags. Recall that all \"pure Python\" built distributions just use " +"``py``." +msgstr "" +"ແທັກຕົວຫຍໍ້ຊ່ວຍໃຫ້ການແບ່ງປັນລະຫັດ Python ທີ່ຄອມພາຍ (compiled) ແລ້ວໃນ index " +"ສາທາລະນະສະດວກຂຶ້ນ. Python implementation ຂອງເຈົ້າກໍສາມາດໃຊ້ຂໍ້ກຳນົດນີ້ໄດ້ຄືກັນ, " +"ແຕ່ຕ້ອງໃຊ້ແທັກທີ່ຍາວກວ່າ. ຢ່າລືມວ່າການແຈກຢາຍແບບ \"pure Python\" ທັງໝົດແມ່ນໃຊ້ພຽງ ``py``." + +#: ../source/specifications/platform-compatibility-tags.rst:437 +msgid "" +"Why is the ABI tag (the second tag) sometimes \"none\" in the reference " +"implementation?" +msgstr "" +"ເປັນຫຍັງແທັກ ABI (ແທັກທີສອງ) ບາງຄັ້ງຈຶ່ງເປັນ \"none\" ໃນ reference implementation?" + +#: ../source/specifications/platform-compatibility-tags.rst:432 +msgid "" +"Since Python 2 does not have an easy way to get to the SOABI (the concept " +"comes from newer versions of Python 3) the reference implementation at the " +"time of writing guesses \"none\". Ideally it would detect \"py27(d|m|u)\" " +"analogous to newer versions of Python, but in the meantime \"none\" is a " +"good enough way to say \"don't know\"." +msgstr "" +"ເນື່ອງຈາກ Python 2 ບໍ່ມີວິທີງ່າຍໆໃນການເຂົ້າເຖິງ SOABI (ແນວຄວາມຄິດນີ້ມາຈາກເວີຊັນໃໝ່ຂອງ Python " +"3) ໃນຂະນະທີ່ຂຽນ reference implementation ນີ້ຈຶ່ງກຳນົດໃຫ້ເປັນ \"none\". ໃນທາງທີ່ດີ " +"ມັນຄວນຈະກວດຫາ \"py27(d|m|u)\" ຄ້າຍຄືກັບ Python ເວີຊັນໃໝ່, ແຕ່ໃນລະຫວ່າງນີ້ \"none\" " +"ກໍເປັນວິທີທີ່ດີພໍທີ່ຈະບອກວ່າ \"ບໍ່ຮູ້\"." + +#: ../source/specifications/platform-compatibility-tags.rst:442 +msgid "" +"February 2013: The original version of this specification was approved " +"through :pep:`425`." +msgstr "ກຸມພາ 2013: ເວີຊັນເລີ່ມຕົ້ນຂອງຂໍ້ກຳນົດນີ້ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`425`." + +#: ../source/specifications/platform-compatibility-tags.rst:444 +msgid "January 2016: The ``manylinux1`` tag was approved through :pep:`513`." +msgstr "ມັງກອນ 2016: ແທັກ ``manylinux1`` ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`513`." + +#: ../source/specifications/platform-compatibility-tags.rst:445 +msgid "April 2018: The ``manylinux2010`` tag was approved through :pep:`571`." +msgstr "ເມສາ 2018: ແທັກ ``manylinux2010`` ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`571`." + +#: ../source/specifications/platform-compatibility-tags.rst:446 +msgid "July 2019: The ``manylinux2014`` tag was approved through :pep:`599`." +msgstr "ກໍລະກົດ 2019: ແທັກ ``manylinux2014`` ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`599`." + +#: ../source/specifications/platform-compatibility-tags.rst:447 +msgid "" +"November 2019: The ``manylinux_x_y`` perennial tag was approved " +"through :pep:`600`." +msgstr "" +"ພະຈິກ 2019: ແທັກ ``manylinux_x_y`` ແບບຕະຫຼອດການ ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`600`." + +#: ../source/specifications/platform-compatibility-tags.rst:449 +msgid "April 2021: The ``musllinux_x_y`` tag was approved through :pep:`656`." +msgstr "ເມສາ 2021: ແທັກ ``musllinux_x_y`` ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`656`." + +#: ../source/specifications/platform-compatibility-tags.rst:450 +msgid "December 2023: The tags for iOS were approved through :pep:`730`." +msgstr "ທັນວາ 2023: ແທັກສຳລັບ iOS ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`730`." + +#: ../source/specifications/platform-compatibility-tags.rst:451 +msgid "March 2024: The tags for Android were approved through :pep:`738`." +msgstr "ມີນາ 2024: ແທັກສຳລັບ Android ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`738`." + +#: ../source/specifications/project-status-markers.rst:5 +msgid "Project Status Markers" +msgstr "ເຄື່ອງໝາຍສະຖານະຂອງໂຄງການ" + +#: ../source/specifications/project-status-markers.rst:9 +msgid "This specification was originally defined in :pep:`792`." +msgstr "ຂໍ້ກຳນົດນີ້ຖືກກຳນົດຂຶ້ນມາໃນເບື້ອງຕົ້ນໃນ :pep:`792`." + +#: ../source/specifications/project-status-markers.rst:14 +msgid "" +":pep:`792` includes changes to the HTML and JSON index APIs. These changes " +"are documented in the :ref:`simple-repository-api` under :ref:`HTML - " +"Project Detail ` and :ref:`JSON - " +"Project Detail `." +msgstr "" +":pep:`792` ລວມມີການປ່ຽນແປງໃນ API ຂອງ HTML ແລະ JSON index. ການປ່ຽນແປງເຫຼົ່ານີ້ " +"ຖືກບັນທຶກໄວ້ໃນ :ref:`simple-repository-api` ພາຍໃຕ້ :ref:`HTML - Project Detail " +"` ແລະ :ref:`JSON - Project Detail " +"`." + +#: ../source/specifications/project-status-markers.rst:22 +msgid "" +"A project always has exactly one status. If no status is explicitly noted, " +"then the project is considered to be in the ``active`` state." +msgstr "" +"ໂຄງການໜຶ່ງຈະມີສະຖານະດຽວສະເໝີ. ຖ້າບໍ່ມີການລະບຸສະຖານະຢ່າງຊັດເຈນ, ໂຄງການຈະຖືກຖືວ່າຢູ່ໃນສະຖານະ " +"``active`` (ກຳລັງດຳເນີນການ)." + +#: ../source/specifications/project-status-markers.rst:25 +msgid "" +"Indices **MAY** implement any subset of the status markers specified, as " +"applicable to their needs." +msgstr "Index **ອາດຈະ** ນຳໃຊ້ສ່ວນໃດສ່ວນໜຶ່ງຂອງເຄື່ອງໝາຍສະຖານະທີ່ກຳນົດໄວ້ ຕາມຄວາມຈຳເປັນ." + +#: ../source/specifications/project-status-markers.rst:28 +msgid "" +"This standard does not prescribe *which* principals (i.e. project " +"maintainers, index administrators, etc.) are allowed to set and unset which " +"statuses." +msgstr "" +"ມາດຕະຖານນີ້ບໍ່ໄດ້ກຳນົດວ່າ *ບຸກຄົນໃດ* (ເຊັ່ນ: ຜູ້ເບິ່ງແຍງໂຄງການ, ຜູ້ເບິ່ງແຍງ index, ແລະ ອື່ນໆ) " +"ທີ່ມີສິດໃນການຕັ້ງຄ່າ ຫຼື ຍົກເລີກສະຖານະໃດໆ." + +#: ../source/specifications/project-status-markers.rst:32 +msgid "``active``" +msgstr "``active`` (ກຳລັງດຳເນີນການ)" + +#: ../source/specifications/project-status-markers.rst:34 +msgid "" +"Description: The project is active. This is the default status for a project." +msgstr "ລາຍລະອຽດ: ໂຄງການກຳລັງດຳເນີນງານຢູ່. ນີ້ແມ່ນສະຖານະເລີ່ມຕົ້ນຂອງໂຄງການ." + +#: ../source/specifications/project-status-markers.rst:36 +#: ../source/specifications/project-status-markers.rst:49 +#: ../source/specifications/project-status-markers.rst:65 +#: ../source/specifications/project-status-markers.rst:83 +msgid "Index semantics:" +msgstr "ຄວາມໝາຍທາງດ້ານ Index:" + +#: ../source/specifications/project-status-markers.rst:38 +msgid "" +"The index hosting the project **MUST** allow uploads of new distributions to " +"the project." +msgstr "Index ທີ່ໂຮສໂຄງການ **ຕ້ອງ** ອະນຸຍາດໃຫ້ອັບໂຫຼດການແຈກຢາຍໃໝ່ໆເຂົ້າໃນໂຄງການ." + +#: ../source/specifications/project-status-markers.rst:40 +#: ../source/specifications/project-status-markers.rst:53 +msgid "" +"The index **MUST** offer existing distributions of the project for download." +msgstr "Index **ຕ້ອງ** ມີການແຈກຢາຍທີ່ມີຢູ່ຂອງໂຄງການໃຫ້ດາວໂຫຼດ." + +#: ../source/specifications/project-status-markers.rst:42 +msgid "Installer semantics: none." +msgstr "ຄວາມໝາຍທາງດ້ານຜູ້ຕິດຕັ້ງ: ບໍ່ມີ." + +#: ../source/specifications/project-status-markers.rst:45 +msgid "``archived``" +msgstr "``archived`` (ຖືກເກັບໄວ້)" + +#: ../source/specifications/project-status-markers.rst:47 +msgid "Description: The project does not expect to be updated in the future." +msgstr "ລາຍລະອຽດ: ໂຄງການບໍ່ໄດ້ຄາດຫວັງວ່າຈະມີການອັບເດດໃນອະນາຄົດ." + +#: ../source/specifications/project-status-markers.rst:51 +#: ../source/specifications/project-status-markers.rst:67 +msgid "" +"The index hosting the project **MUST NOT** allow uploads of new " +"distributions to the project." +msgstr "Index ທີ່ໂຮສໂຄງການ **ຕ້ອງບໍ່** ອະນຸຍາດໃຫ້ອັບໂຫຼດການແຈກຢາຍໃໝ່ໆເຂົ້າໃນໂຄງການ." + +#: ../source/specifications/project-status-markers.rst:55 +#: ../source/specifications/project-status-markers.rst:71 +#: ../source/specifications/project-status-markers.rst:87 +msgid "Installer semantics:" +msgstr "ຄວາມໝາຍທາງດ້ານຜູ້ຕິດຕັ້ງ:" + +#: ../source/specifications/project-status-markers.rst:57 +msgid "Installers **MAY** produce warnings about a project's archival." +msgstr "ຜູ້ຕິດຕັ້ງ **ອາດຈະ** ແຈ້ງເຕືອນກ່ຽວກັບການເກັບຮັກສາ (archival) ຂອງໂຄງການ." + +#: ../source/specifications/project-status-markers.rst:60 +msgid "``quarantined``" +msgstr "``quarantined`` (ຖືກກັກບໍລິເວນ)" + +#: ../source/specifications/project-status-markers.rst:62 +msgid "" +"Description: The project is considered generally unsafe for use, e.g. due to " +"malware." +msgstr "" +"ລາຍລະອຽດ: ໂຄງການຖືກພິຈາລະນາວ່າບໍ່ປອດໄພທົ່ວໄປໃນການນຳໃຊ້ ເຊັ່ນ: ຍ້ອນມີມັລແວ (malware)." + +#: ../source/specifications/project-status-markers.rst:69 +msgid "" +"The index **MUST NOT** offer any distributions of the project for download." +msgstr "Index **ຕ້ອງບໍ່** ມີການແຈກຢາຍໃດໆຂອງໂຄງການໃຫ້ດາວໂຫຼດ." + +#: ../source/specifications/project-status-markers.rst:73 +msgid "" +"Installers **MAY** produce warnings about a project's quarantine, although " +"doing so is effectively moot (as the index will not offer any distributions " +"for installation)." +msgstr "" +"ຜູ້ຕິດຕັ້ງ **ອາດຈະ** ແຈ້ງເຕືອນກ່ຽວກັບການກັກບໍລິເວນຂອງໂຄງການ, ເຖິງແມ່ນວ່າການເຮັດ " +"ແບບນັ້ນອາດຈະບໍ່ມີຜົນຫຍັງຫຼາຍ (ເນື່ອງຈາກ Index ຈະບໍ່ມີການແຈກຢາຍໃຫ້ຕິດຕັ້ງຢູ່ແລ້ວ)." + +#: ../source/specifications/project-status-markers.rst:78 +msgid "``deprecated``" +msgstr "``deprecated`` (ຖືກຍົກເລີກການນຳໃຊ້)" + +#: ../source/specifications/project-status-markers.rst:80 +msgid "" +"Description: The project is considered obsolete, and may have been " +"superseded by another project." +msgstr "ລາຍລະອຽດ: ໂຄງການຖືກພິຈາລະນາວ່າລ້າສະໄໝ ແລະ ອາດຖືກປ່ຽນແທນໂດຍໂຄງການອື່ນ." + +#: ../source/specifications/project-status-markers.rst:85 +msgid "This status shares the same semantics as ``active``." +msgstr "ສະຖານະນີ້ມີຄວາມໝາຍຄືກັນກັບ ``active``." + +#: ../source/specifications/project-status-markers.rst:89 +msgid "Installers **MAY** produce warnings about a project's deprecation." +msgstr "ຜູ້ຕິດຕັ້ງ **ອາດຈະ** ແຈ້ງເຕືອນກ່ຽວກັບການຍົກເລີກການນຳໃຊ້ໂຄງການ." + +#: ../source/specifications/pylock-toml.rst:6 +msgid "``pylock.toml`` Specification" +msgstr "ຂໍ້ກຳນົດຂອງ ``pylock.toml``" + +#: ../source/specifications/pylock-toml.rst:8 +msgid "" +"The ``pylock.toml`` file format is for specifying dependencies to enable " +"reproducible installation in a Python environment." +msgstr "" +"ຮູບແບບໄຟລ໌ ``pylock.toml`` ແມ່ນສຳລັບກຳນົດ dependency ເພື່ອໃຫ້ສາມາດ ຕິດຕັ້ງຊ້ຳໄດ້ " +"(reproducible) ໃນສະພາບແວດລ້ອມ Python." + +#: ../source/specifications/pylock-toml.rst:11 +msgid "This specification was originally defined in :pep:`751`." +msgstr "ຂໍ້ກຳນົດນີ້ຖືກກຳນົດຂຶ້ນມາໃນເບື້ອງຕົ້ນໃນ :pep:`751`." + +#: ../source/specifications/pylock-toml.rst:16 +msgid "File Name" +msgstr "ຊື່ໄຟລ໌" + +#: ../source/specifications/pylock-toml.rst:18 +msgid "" +"A lock file MUST be named :file:`pylock.toml` or match the regular " +"expression ``r\"^pylock\\.([^.]+)\\.toml$\"`` if a name for the lock file is " +"desired or if multiple lock files exist (i.e. the regular expression " +"``r\"^pylock\\.([^.]+\\.)?toml$\"`` for any file name). The prefix and " +"suffix of a named file MUST be lowercase when possible, for easy detection " +"and removal, e.g.:" +msgstr "" +"ໄຟລ໌ lock **ຕ້ອງ** ຕັ້ງຊື່ວ່າ :file:`pylock.toml` ຫຼື ກົງກັບ regular expression " +"``r\"^pylock\\.([^.]+)\\.toml$\"`` ຫາກຕ້ອງການຕັ້ງຊື່ ຫຼື ຫາກມີຫຼາຍໄຟລ໌... ສ່ວນໜ້າ ແລະ " +"ສ່ວນທ້າຍຂອງຊື່ໄຟລ໌ **ຕ້ອງ** ເປັນຕົວພິມນ້ອຍຫາກເປັນໄປໄດ້ ເພື່ອໃຫ້ກວດຫາ ແລະ ລຶບອອກໄດ້ງ່າຍ, ເຊັ່ນ:" + +#: ../source/specifications/pylock-toml.rst:30 +msgid "" +"The expectation is that services that automatically install from lock files " +"will search for:" +msgstr "ສິ່ງທີ່ຄາດຫວັງຄື ບໍລິການທີ່ຕິດຕັ້ງອັດຕະໂນມັດຈາກໄຟລ໌ lock ຈະຄົ້ນຫາ:" + +#: ../source/specifications/pylock-toml.rst:33 +msgid "The lock file with the service's name and doing the default install" +msgstr "ໄຟລ໌ lock ທີ່ມີຊື່ຂອງບໍລິການ ແລະ ທຳການຕິດຕັ້ງແບບຄ່າເລີ່ມຕົ້ນ" + +#: ../source/specifications/pylock-toml.rst:34 +msgid "" +"A multi-use :file:`pylock.toml` with a dependency group with the name of the " +"service" +msgstr "ໄຟລ໌ :file:`pylock.toml` ແບບໃຊ້ຫຼາຍຄັ້ງທີ່ມີກຸ່ມ dependency ຕາມຊື່ຂອງບໍລິການ" + +#: ../source/specifications/pylock-toml.rst:35 +msgid "The default install of :file:`pylock.toml`" +msgstr "ການຕິດຕັ້ງຄ່າເລີ່ມຕົ້ນຂອງ :file:`pylock.toml`" + +#: ../source/specifications/pylock-toml.rst:37 +msgid "" +"E.g. a cloud host service named \"spam\" would first look " +"for :file:`pylock.spam.toml` to install from, and if that file didn't exist " +"then install from :file:`pylock.toml` and look for a dependency group named " +"\"spam\" to use if present." +msgstr "" +"ເຊັ່ນ: ບໍລິການຄລາວທີ່ຊື່ວ່າ \"spam\" ຈະຄົ້ນຫາ :file:`pylock.spam.toml` ກ່ອນ, " +"ຖ້າບໍ່ພົບກໍຈະຕິດຕັ້ງຈາກ :file:`pylock.toml` ແລະ ຄົ້ນຫາ dependency group ທີ່ຊື່ວ່າ \"spam\" " +"ແທນ." + +#: ../source/specifications/pylock-toml.rst:42 +msgid "" +"The lock file(s) SHOULD be located in the directory as appropriate for the " +"scope of the lock file. Locking against a single :file:`pyproject.toml`, for " +"instance, would place the :file:`pylock.toml` in the same directory. If the " +"lock file covered multiple projects in a monorepo, then the expectation is " +"the :file:`pylock.toml` file would be in the directory that held all the " +"projects being locked." +msgstr "" +"ໄຟລ໌ lock **ຄວນ** ຕັ້ງຢູ່ໃນໄດເຣັກທໍຣີທີ່ເໝາະສົມກັບຂອບເຂດຂອງມັນ. ເຊັ່ນ: ຫາກລັອກ " +"ໄຟລ໌ :file:`pyproject.toml` ພຽງອັນດຽວ, ກໍຄວນວາງ :file:`pylock.toml` " +"ໄວ້ໃນໄດເຣັກທໍຣີດຽວກັນ. ຫາກໄຟລ໌ lock ຄອບຄຸມຫຼາຍໂຄງການໃນ monorepo, ມັນກໍຄວນ " +"ຈະຢູ່ໃນໄດເຣັກທໍຣີທີ່ລວມທຸກໂຄງການເຫຼົ່ານັ້ນໄວ້." + +#: ../source/specifications/pylock-toml.rst:53 +msgid "The format of the file is TOML_." +msgstr "ຮູບແບບຂອງໄຟລ໌ແມ່ນ TOML_." + +#: ../source/specifications/pylock-toml.rst:55 +msgid "" +"Tools SHOULD write their lock files in a consistent way to minimize noise in " +"diff output. Keys in tables -- including the top-level table -- SHOULD be " +"recorded in a consistent order (if inspiration is desired, this " +"specification has tried to write down keys in a logical order). As well, " +"tools SHOULD sort arrays in consistent order. Usage of inline tables SHOULD " +"also be kept consistent." +msgstr "" +"ເຄື່ອງມື **ຄວນ** ຂຽນໄຟລ໌ lock ໃນຮູບແບບທີ່ຄົງທີ່ເພື່ອຫຼຸດຜ່ອນຄວາມແຕກຕ່າງໃນຜົນລັດ diff. Key " +"ໃນຕາຕະລາງ **ຄວນ** ຖືກບັນທຶກຕາມລໍາດັບທີ່ແນ່ນອນ. ເຊັ່ນດຽວກັນ, ເຄື່ອງມື **ຄວນ** ລຽງລຳດັບອາເຣ " +"(array) ໃຫ້ຄືກັນສະເໝີ." + +#: ../source/specifications/pylock-toml.rst:65 +msgid "``lock-version``" +msgstr "``lock-version``" + +#: ../source/specifications/pylock-toml.rst:67 +msgid "**Type**: string; value of ``\"1.0\"``" +msgstr "**ປະເພດ**: string; ມີຄ່າແມ່ນ ``\"1.0\"``" + +#: ../source/specifications/pylock-toml.rst:68 +#: ../source/specifications/pylock-toml.rst:174 +#: ../source/specifications/pylock-toml.rst:189 +#: ../source/specifications/pylock-toml.rst:202 +#: ../source/specifications/pylock-toml.rst:298 +#: ../source/specifications/pylock-toml.rst:348 +#: ../source/specifications/pylock-toml.rst:397 +#: ../source/specifications/pylock-toml.rst:505 +#: ../source/specifications/pylock-toml.rst:704 +msgid "**Required?**: yes" +msgstr "**ຈຳເປັນຫຼືບໍ່?**: ຈຳເປັນ" + +#: ../source/specifications/pylock-toml.rst:69 +msgid "**Inspiration**: :ref:`core-metadata-metadata-version`" +msgstr "**ແຮງບັນດານໃຈ**: :ref:`core-metadata-metadata-version`" + +#: ../source/specifications/pylock-toml.rst:70 +msgid "Record the file format version that the file adheres to." +msgstr "ບັນທຶກເວີຊັນຂອງຮູບແບບໄຟລ໌ທີ່ໄຟລ໌ນີ້ປະຕິບັດຕາມ." + +#: ../source/specifications/pylock-toml.rst:71 +msgid "" +"This PEP specifies the initial version -- and only valid value until future " +"updates to the standard change it -- as ``\"1.0\"``." +msgstr "" +"PEP ນີ້ກຳນົດເວີຊັນເລີ່ມຕົ້ນ (ແລະ ເປັນຄ່າດຽວທີ່ໃຊ້ໄດ້ ຈົນກວ່າຈະມີການອັບເດດມາດຕະຖານ ໃນອະນາຄົດ) ແມ່ນ " +"``\"1.0\"``." + +#: ../source/specifications/pylock-toml.rst:73 +msgid "" +"If a tool supports the major version but not the minor version, a tool " +"SHOULD warn when an unknown key is seen." +msgstr "" +"ຖ້າເຄື່ອງມືຮອງຮັບເວີຊັນຫຼັກ (major version) ແຕ່ບໍ່ຮອງຮັບເວີຊັນຍ່ອຍ (minor version), ເຄື່ອງມື " +"**ຄວນ** ແຈ້ງເຕືອນເມື່ອພົບ key ທີ່ບໍ່ຮູ້ຈັກ." + +#: ../source/specifications/pylock-toml.rst:75 +msgid "If a tool doesn't support a major version, it MUST raise an error." +msgstr "ຖ້າເຄື່ອງມືບໍ່ຮອງຮັບເວີຊັນຫຼັກ, ມັນ **ຕ້ອງ** ສະແດງຂໍ້ຜິດພາດ." + +#: ../source/specifications/pylock-toml.rst:81 +msgid "``environments``" +msgstr "``environments``" + +#: ../source/specifications/pylock-toml.rst:83 +#: ../source/specifications/pylock-toml.rst:110 +#: ../source/specifications/pylock-toml.rst:132 +#: ../source/specifications/pylock-toml.rst:154 +msgid "**Type**: Array of strings" +msgstr "**ປະເພດ**: ອາເຣ (Array) ຂອງ string" + +#: ../source/specifications/pylock-toml.rst:84 +#: ../source/specifications/pylock-toml.rst:98 +#: ../source/specifications/pylock-toml.rst:213 +#: ../source/specifications/pylock-toml.rst:230 +#: ../source/specifications/pylock-toml.rst:243 +#: ../source/specifications/pylock-toml.rst:255 +#: ../source/specifications/pylock-toml.rst:334 +#: ../source/specifications/pylock-toml.rst:362 +#: ../source/specifications/pylock-toml.rst:435 +#: ../source/specifications/pylock-toml.rst:480 +#: ../source/specifications/pylock-toml.rst:493 +#: ../source/specifications/pylock-toml.rst:530 +#: ../source/specifications/pylock-toml.rst:689 +#: ../source/specifications/pylock-toml.rst:715 +#: ../source/specifications/pylock-toml.rst:730 +msgid "**Required?**: no" +msgstr "**ຈຳເປັນຫຼືບໍ່?**: ບໍ່" + +#: ../source/specifications/pylock-toml.rst:85 +#: ../source/specifications/pylock-toml.rst:531 +#: ../source/specifications/pylock-toml.rst:549 +msgid "**Inspiration**: uv_" +msgstr "**ແຮງບັນດານໃຈ**: uv_" + +#: ../source/specifications/pylock-toml.rst:86 +msgid "" +"A list of :ref:`dependency-specifiers-environment-markers` for which the " +"lock file is considered compatible with." +msgstr "" +"ລາຍການຂອງ :ref:`dependency-specifiers-environment-markers` ທີ່ໄຟລ໌ lock " +"ນີ້ເຂົ້າກັນໄດ້." + +#: ../source/specifications/pylock-toml.rst:88 +msgid "" +"Tools SHOULD write exclusive/non-overlapping environment markers to ease in " +"understanding." +msgstr "ເຄື່ອງມື **ຄວນ** ຂຽນ environment marker ແບບບໍ່ຊ້ຳກັນເພື່ອໃຫ້ເຂົ້າໃຈງ່າຍ." + +#: ../source/specifications/pylock-toml.rst:97 +#: ../source/specifications/pylock-toml.rst:173 +#: ../source/specifications/pylock-toml.rst:201 +#: ../source/specifications/pylock-toml.rst:212 +#: ../source/specifications/pylock-toml.rst:229 +#: ../source/specifications/pylock-toml.rst:242 +#: ../source/specifications/pylock-toml.rst:308 +#: ../source/specifications/pylock-toml.rst:319 +#: ../source/specifications/pylock-toml.rst:333 +#: ../source/specifications/pylock-toml.rst:347 +#: ../source/specifications/pylock-toml.rst:361 +#: ../source/specifications/pylock-toml.rst:396 +#: ../source/specifications/pylock-toml.rst:452 +#: ../source/specifications/pylock-toml.rst:463 +#: ../source/specifications/pylock-toml.rst:529 +#: ../source/specifications/pylock-toml.rst:562 +#: ../source/specifications/pylock-toml.rst:633 +#: ../source/specifications/pylock-toml.rst:703 +msgid "**Type**: string" +msgstr "**ປະເພດ**: string" + +#: ../source/specifications/pylock-toml.rst:99 +#: ../source/specifications/pylock-toml.rst:190 +#: ../source/specifications/pylock-toml.rst:256 +#: ../source/specifications/pylock-toml.rst:566 +#: ../source/specifications/pylock-toml.rst:621 +#: ../source/specifications/pylock-toml.rst:637 +msgid "**Inspiration**: PDM_, Poetry_, uv_" +msgstr "**ແຮງບັນດານໃຈ**: PDM_, Poetry_, uv_" + +#: ../source/specifications/pylock-toml.rst:100 +msgid "" +"Specifies the :ref:`core-metadata-requires-python` for the minimum Python " +"version compatible for any environment supported by the lock file (i.e. the " +"minimum viable Python version for the lock file)." +msgstr "" +"ກຳນົດ :ref:`core-metadata-requires-python` ສຳລັບເວີຊັນ Python ຕໍ່າສຸດທີ່ " +"ເຂົ້າກັນໄດ້ກັບທຸກສະພາບແວດລ້ອມທີ່ໄຟລ໌ lock ຮອງຮັບ." + +#: ../source/specifications/pylock-toml.rst:111 +#: ../source/specifications/pylock-toml.rst:133 +#: ../source/specifications/pylock-toml.rst:155 +msgid "**Required?**: no; defaults to ``[]``" +msgstr "**ຈຳເປັນຫຼືບໍ່?**: ບໍ່; ຄ່າເລີ່ມຕົ້ນແມ່ນ ``[]``" + +#: ../source/specifications/pylock-toml.rst:112 +msgid "**Inspiration**: :ref:`core-metadata-provides-extra`" +msgstr "**ແຮງບັນດານໃຈ**: :ref:`core-metadata-provides-extra`" + +#: ../source/specifications/pylock-toml.rst:113 +msgid "" +"The list of :ref:`extras ` supported by this " +"lock file." +msgstr "" +"ລາຍການຂອງ :ref:`extras ` ທີ່ໄຟລ໌ lock ນີ້ຮອງຮັບ." + +#: ../source/specifications/pylock-toml.rst:115 +#: ../source/specifications/pylock-toml.rst:138 +msgid "" +"Lockers MAY choose to not support writing lock files that support extras and " +"dependency groups (i.e. tools may only support exporting a single-use lock " +"file)." +msgstr "" +"ເຄື່ອງມືສ້າງ lock **ອາດຈະ** ເລືອກທີ່ຈະບໍ່ຮອງຮັບການຂຽນໄຟລ໌ lock ທີ່ຮອງຮັບ extras ແລະ " +"dependency groups." + +#: ../source/specifications/pylock-toml.rst:118 +msgid "Tools supporting extras MUST also support dependency groups." +msgstr "ເຄື່ອງມືທີ່ຮອງຮັບ extras **ຕ້ອງ** ຮອງຮັບ dependency groups ນຳ." + +#: ../source/specifications/pylock-toml.rst:119 +msgid "" +"Tools should explicitly set this key to an empty array to signal that the " +"inputs used to generate the lock file had no extras (e.g. " +"a :ref:`pyproject.toml ` file had " +"no :ref:`[project.optional-dependencies] ` table), signalling that the lock file is, in effect, multi-" +"use even if it only looks to be single-use." +msgstr "" +"ເຄື່ອງມືຄວນຕັ້ງຄ່າ key ນີ້ໃຫ້ເປັນອາເຣຫວ່າງເປົ່າຢ່າງຊັດເຈນ ເພື່ອບົ່ງບອກວ່າຂໍ້ມູນທີ່ ໃຊ້ສ້າງໄຟລ໌ lock ບໍ່ມີ " +"extras..." + +#: ../source/specifications/pylock-toml.rst:130 +msgid "``dependency-groups``" +msgstr "``dependency-groups``" + +#: ../source/specifications/pylock-toml.rst:134 +#: ../source/specifications/pylock-toml.rst:716 +#: ../source/specifications/pylock-toml.rst:731 +msgid "**Inspiration**: :ref:`pyproject-tool-table`" +msgstr "**ແຮງບັນດານໃຈ**: :ref:`pyproject-tool-table`" + +#: ../source/specifications/pylock-toml.rst:135 +msgid "" +"The list of :ref:`dependency-groups` publicly supported by this lock file " +"(i.e. dependency groups users are expected to be able to specify via a " +"tool's UI)." +msgstr "" +"ລາຍການຂອງ :ref:`dependency-groups` ທີ່ໄຟລ໌ lock ນີ້ຮອງຮັບຢ່າງເປັນສາທາລະນະ " +"(ໝາຍເຖິງກຸ່ມທີ່ຜູ້ໃຊ້ສາມາດລະບຸຜ່ານ UI ຂອງເຄື່ອງມືໄດ້)." + +#: ../source/specifications/pylock-toml.rst:141 +msgid "Tools supporting dependency groups MUST also support extras." +msgstr "ເຄື່ອງມືທີ່ຮອງຮັບ dependency groups **ຕ້ອງ** ຮອງຮັບ extras ນຳ." + +#: ../source/specifications/pylock-toml.rst:142 +msgid "" +"Tools SHOULD explicitly set this key to an empty array to signal that the " +"inputs used to generate the lock file had no dependency groups (e.g. " +"a :ref:`pyproject.toml ` file had no :ref:`[dependency-" +"groups] ` table), signalling that the lock file is, in " +"effect, multi-use even if it only looks to be single-use." +msgstr "" +"ເຄື່ອງມື **ຄວນ** ຕັ້ງຄ່າ key ນີ້ໃຫ້ເປັນອາເຣຫວ່າງເປົ່າຢ່າງຊັດເຈນ ເພື່ອບົ່ງບອກວ່າ ຂໍ້ມູນທີ່ໃຊ້ສ້າງໄຟລ໌ " +"lock ບໍ່ມີ dependency groups..." + +#: ../source/specifications/pylock-toml.rst:152 +msgid "``default-groups``" +msgstr "``default-groups``" + +#: ../source/specifications/pylock-toml.rst:156 +msgid "**Inspiration**: Poetry_, PDM_" +msgstr "**ແຮງບັນດານໃຈ**: Poetry_, PDM_" + +#: ../source/specifications/pylock-toml.rst:157 +msgid "" +"The name of synthetic dependency groups to represent what should be " +"installed by default (e.g. what :ref:`[project.dependencies] ` implicitly represents)." +msgstr "ຊື່ຂອງກຸ່ມ dependency ສັງເຄາະ ເພື່ອແທນສິ່ງທີ່ຄວນຕິດຕັ້ງເປັນຄ່າເລີ່ມຕົ້ນ." + +#: ../source/specifications/pylock-toml.rst:161 +msgid "" +"Meant to be used in situations where :ref:`pylock-packages-marker` " +"necessitates such a group to exist." +msgstr "ເພື່ອໃຊ້ໃນກໍລະນີທີ່ :ref:`pylock-packages-marker` ຈຳເປັນຕ້ອງມີກຸ່ມດັ່ງກ່າວ." + +#: ../source/specifications/pylock-toml.rst:163 +msgid "" +"The groups listed by this key SHOULD NOT be listed in :ref:`pylock-" +"dependency-groups` as the groups are not meant to be directly exposed to " +"users by name but instead via an installer's UI." +msgstr "" +"ກຸ່ມທີ່ລະບຸໃນ key ນີ້ **ບໍ່ຄວນ** ຖືກລະບຸໃນ :ref:`pylock-dependency-groups` " +"ເນື່ອງຈາກກຸ່ມເຫຼົ່ານີ້ບໍ່ໄດ້ມີໄວ້ໃຫ້ຜູ້ໃຊ້ເລືອກໂດຍກົງຜ່ານຊື່." + +#: ../source/specifications/pylock-toml.rst:171 +msgid "``created-by``" +msgstr "``created-by``" + +#: ../source/specifications/pylock-toml.rst:175 +msgid "**Inspiration**: Tools with their name in their lock file name" +msgstr "**ແຮງບັນດານໃຈ**: ເຄື່ອງມືທີ່ມີຊື່ຂອງພວກເຂົາຢູ່ໃນຊື່ໄຟລ໌ lock" + +#: ../source/specifications/pylock-toml.rst:176 +msgid "Records the name of the tool used to create the lock file." +msgstr "ບັນທຶກຊື່ຂອງເຄື່ອງມືທີ່ໃຊ້ສ້າງໄຟລ໌ lock." + +#: ../source/specifications/pylock-toml.rst:177 +msgid "" +"Tools MAY use the :ref:`pylock-tool` table to record enough details that it " +"can be inferred what inputs were used to create the lock file." +msgstr "" +"ເຄື່ອງມື **ອາດຈະ** ໃຊ້ຕາຕະລາງ :ref:`pylock-tool` ເພື່ອບັນທຶກລາຍລະອຽດທີ່ ພຽງພໍ " +"ເພື່ອໃຫ້ຮູ້ວ່າຂໍ້ມູນໃດຖືກໃຊ້ສ້າງໄຟລ໌ lock." + +#: ../source/specifications/pylock-toml.rst:179 +msgid "" +"Tools SHOULD record the normalized name of the tool if it is available as a " +"Python package to facilitate finding the tool." +msgstr "" +"ເຄື່ອງມື **ຄວນ** ບັນທຶກຊື່ເຄື່ອງມືທີ່ປັບປ່ຽນໃຫ້ເປັນມາດຕະຖານ (normalized) ຖ້າ " +"ມັນມີໃຫ້ໃຊ້ໃນຮູບແບບແພັກເກັດ Python." + +#: ../source/specifications/pylock-toml.rst:186 +msgid "``[[packages]]``" +msgstr "``[[packages]]``" + +#: ../source/specifications/pylock-toml.rst:188 +#: ../source/specifications/pylock-toml.rst:254 +#: ../source/specifications/pylock-toml.rst:618 +#: ../source/specifications/pylock-toml.rst:688 +msgid "**Type**: array of tables" +msgstr "**ປະເພດ**: ອາເຣຂອງຕາຕະລາງ" + +#: ../source/specifications/pylock-toml.rst:191 +msgid "An array containing all packages that *may* be installed." +msgstr "ອາເຣທີ່ບັນຈຸແພັກເກັດທັງໝົດທີ່ *ອາດຈະ* ຖືກຕິດຕັ້ງ." + +#: ../source/specifications/pylock-toml.rst:192 +msgid "" +"Packages MAY be listed multiple times with varying data, but all packages to " +"be installed MUST narrow down to a single entry at install time." +msgstr "" +"ແພັກເກັດ **ອາດຈະ** ຖືກລະບຸຫຼາຍຄັ້ງດ້ວຍຂໍ້ມູນທີ່ຕ່າງກັນ, ແຕ່ແພັກເກັດທີ່ຈະຕິດຕັ້ງ ທັງໝົດ **ຕ້ອງ** " +"ຖືກຄັດຈ້ອນໃຫ້ເຫຼືອພຽງລາຍການດຽວໃນເວລາຕິດຕັ້ງ." + +#: ../source/specifications/pylock-toml.rst:199 +msgid "``packages.name``" +msgstr "``packages.name``" + +#: ../source/specifications/pylock-toml.rst:203 +msgid "**Inspiration**: :ref:`core-metadata-name`" +msgstr "**ແຮງບັນດານໃຈ**: :ref:`core-metadata-name`" + +#: ../source/specifications/pylock-toml.rst:204 +msgid "The name of the package :ref:`normalized `." +msgstr "ຊື່ຂອງແພັກເກັດທີ່ :ref:`ປັບໃຫ້ເປັນມາດຕະຖານ `." + +#: ../source/specifications/pylock-toml.rst:210 +msgid "``packages.version``" +msgstr "``packages.version``" + +#: ../source/specifications/pylock-toml.rst:214 +msgid "**Inspiration**: :ref:`core-metadata-version`" +msgstr "**ແຮງບັນດານໃຈ**: :ref:`core-metadata-version`" + +#: ../source/specifications/pylock-toml.rst:215 +msgid "The version of the package." +msgstr "ເວີຊັນຂອງແພັກເກັດ." + +#: ../source/specifications/pylock-toml.rst:216 +msgid "" +"The version SHOULD be specified when the version is known to be stable (i.e. " +"when an :ref:`sdist ` or :ref:`wheels ` are specified)." +msgstr "" +"**ຄວນ** ລະບຸເວີຊັນ ເມື່ອຮູ້ວ່າເວີຊັນນັ້ນຄົງທີ່ (stable) (ເຊັ່ນ ເມື່ອລະບຸ :ref:`sdist` " +"ຫຼື :ref:`wheels`)." + +#: ../source/specifications/pylock-toml.rst:219 +msgid "" +"The version MUST NOT be included when it cannot be guaranteed to be " +"consistent with the code used (i.e. when a :ref:`source tree ` is used)." +msgstr "" +"**ຕ້ອງບໍ່** ລະບຸເວີຊັນ ເມື່ອບໍ່ສາມາດຮັບປະກັນໄດ້ວ່າມັນຈະກົງກັບລະຫັດທີ່ໃຊ້ (ເຊັ່ນ ເມື່ອໃຊ້ :ref:`source " +"tree`)." + +#: ../source/specifications/pylock-toml.rst:227 +msgid "``packages.marker``" +msgstr "``packages.marker``" + +#: ../source/specifications/pylock-toml.rst:231 +msgid "**Inspiration**: PDM_" +msgstr "**ແຮງບັນດານໃຈ**: PDM_" + +#: ../source/specifications/pylock-toml.rst:232 +msgid "" +"The :ref:`environment marker ` " +"which specify when the package should be installed." +msgstr "" +":ref:`environment marker ` " +"ທີ່ກຳນົດວ່າຄວນຕິດຕັ້ງແພັກເກັດເມື່ອໃດ." + +#: ../source/specifications/pylock-toml.rst:240 +msgid "``packages.requires-python``" +msgstr "``packages.requires-python``" + +#: ../source/specifications/pylock-toml.rst:244 +msgid "**Inspiration**: :ref:`core-metadata-requires-python`" +msgstr "**ແຮງບັນດານໃຈ**: :ref:`core-metadata-requires-python`" + +#: ../source/specifications/pylock-toml.rst:245 +msgid "" +"Holds the :ref:`version-specifiers` for Python version compatibility for the " +"package." +msgstr "ເກັບກຳ :ref:`version-specifiers` ສຳລັບຄວາມເຂົ້າກັນໄດ້ຂອງເວີຊັນ Python." + +#: ../source/specifications/pylock-toml.rst:252 +msgid "``[[packages.dependencies]]``" +msgstr "``[[packages.dependencies]]``" + +#: ../source/specifications/pylock-toml.rst:257 +msgid "" +"Records the other entries in :ref:`pylock-packages` which are direct " +"dependencies of this package." +msgstr "" +"ບັນທຶກລາຍການອື່ນໆໃນ :ref:`pylock-packages` ທີ່ເປັນ dependency ໂດຍກົງຂອງແພັກເກັດນີ້." + +#: ../source/specifications/pylock-toml.rst:259 +msgid "" +"Each entry is a table which contains the minimum information required to " +"tell which other package entry it corresponds to where doing a key-by-key " +"comparison would find the appropriate package with no ambiguity (e.g. if " +"there are two entries for the ``spam`` package, then you can include the " +"version number like ``{name = \"spam\", version = \"1.0.0\"}``, or by source " +"like ``{name = \"spam\", vcs = { url = \"...\"}``)." +msgstr "" +"ແຕ່ລະລາຍການແມ່ນຕາຕະລາງທີ່ບັນຈຸຂໍ້ມູນຂັ້ນຕໍ່າທີ່ຈຳເປັນ ເພື່ອບອກວ່າແພັກເກັດນີ້ " +"ກົງກັບລາຍການແພັກເກັດອື່ນໃດໂດຍບໍ່ໃຫ້ມີຄວາມສັບສົນ..." + +#: ../source/specifications/pylock-toml.rst:265 +msgid "" +"Tools MUST NOT use this information when doing installation; it is purely " +"informational for auditing purposes." +msgstr "" +"ເຄື່ອງມື **ຕ້ອງບໍ່** ໃຊ້ຂໍ້ມູນນີ້ໃນເວລາຕິດຕັ້ງ; ມັນມີໄວ້ເພື່ອເປັນຂໍ້ມູນສຳລັບ ການກວດສອບ (auditing) ເທົັ້ນ." + +#: ../source/specifications/pylock-toml.rst:272 +msgid "``[packages.vcs]``" +msgstr "``[packages.vcs]``" + +#: ../source/specifications/pylock-toml.rst:274 +#: ../source/specifications/pylock-toml.rst:376 +#: ../source/specifications/pylock-toml.rst:434 +#: ../source/specifications/pylock-toml.rst:546 +#: ../source/specifications/pylock-toml.rst:714 +#: ../source/specifications/pylock-toml.rst:729 +msgid "**Type**: table" +msgstr "**ປະເພດ**: ຕາຕະລາງ" + +#: ../source/specifications/pylock-toml.rst:275 +msgid "" +"**Required?**: no; mutually-exclusive with :ref:`pylock-packages-" +"directory`, :ref:`pylock-packages-archive`, :ref:`pylock-packages-sdist`, " +"and :ref:`pylock-packages-wheels`" +msgstr "" +"**ຈຳເປັນຫຼືບໍ່?**: ບໍ່; ບໍ່ສາມາດໃຊ້ຮ່ວມກັບ :ref:`pylock-packages-" +"directory`, :ref:`pylock-packages-archive`, :ref:`pylock-packages-sdist`, " +"ແລະ :ref:`pylock-packages-wheels`" + +#: ../source/specifications/pylock-toml.rst:278 +msgid "**Inspiration**: :ref:`direct-url-data-structure`" +msgstr "**ແຮງບັນດານໃຈ**: :ref:`direct-url-data-structure`" + +#: ../source/specifications/pylock-toml.rst:279 +msgid "" +"Record the version control system details for the :ref:`source tree ` it contains." +msgstr "ບັນທຶກລາຍລະອຽດຂອງລະບົບຄວບຄຸມເວີຊັນ (VCS) ສຳລັບ :ref:`source tree` ທີ່ມັນບັນຈຸຢູ່." + +#: ../source/specifications/pylock-toml.rst:282 +msgid "" +"Tools MAY choose to not support version control systems, both from a locking " +"and/or installation perspective." +msgstr "" +"ເຄື່ອງມື **ອາດຈະ** ເລືອກທີ່ຈະບໍ່ຮອງຮັບລະບົບຄວບຄຸມເວີຊັນ ທັງໃນດ້ານການສ້າງ lock ແລະ/ຫຼື ການຕິດຕັ້ງ." + +#: ../source/specifications/pylock-toml.rst:284 +msgid "Tools MAY choose to only support a subset of the available VCS types." +msgstr "ເຄື່ອງມື **ອາດຈະ** ເລືອກຮອງຮັບພຽງແຕ່ບາງປະເພດຂອງ VCS ທີ່ມີຢູ່." + +#: ../source/specifications/pylock-toml.rst:285 +msgid "" +"Tools SHOULD provide a way for users to opt in/out of using version control " +"systems." +msgstr "ເຄື່ອງມື **ຄວນ** ມີວິທີໃຫ້ຜູ້ໃຊ້ເລືອກວ່າຈະໃຊ້ ຫຼື ບໍ່ໃຊ້ລະບົບຄວບຄຸມເວີຊັນ." + +#: ../source/specifications/pylock-toml.rst:287 +msgid "" +"Installation from a version control system is considered originating from " +"a :ref:`direct URL reference `." +msgstr "" +"ການຕິດຕັ້ງຈາກລະບົບຄວບຄຸມເວີຊັນຖືກຖືວ່າແມ່ນມາຈາກ :ref:`direct URL reference `." + +#: ../source/specifications/pylock-toml.rst:294 +msgid "``packages.vcs.type``" +msgstr "``packages.vcs.type``" + +#: ../source/specifications/pylock-toml.rst:296 +msgid "" +"**Type**: string; supported values specified in :ref:`direct-url-data-" +"structure-registered-vcs`" +msgstr "" +"**ປະເພດ**: string; ຄ່າທີ່ຮອງຮັບແມ່ນກຳນົດໄວ້ໃນ :ref:`direct-url-data-structure-" +"registered-vcs`" + +#: ../source/specifications/pylock-toml.rst:299 +#: ../source/specifications/pylock-toml.rst:310 +#: ../source/specifications/pylock-toml.rst:321 +#: ../source/specifications/pylock-toml.rst:335 +#: ../source/specifications/pylock-toml.rst:349 +msgid "**Inspiration**: :ref:`direct-url-data-structure-vcs`" +msgstr "**ແຮງບັນດານໃຈ**: :ref:`direct-url-data-structure-vcs`" + +#: ../source/specifications/pylock-toml.rst:300 +msgid "The type of version control system used." +msgstr "ປະເພດຂອງລະບົບຄວບຄຸມເວີຊັນທີ່ໃຊ້." + +#: ../source/specifications/pylock-toml.rst:306 +msgid "``packages.vcs.url``" +msgstr "``packages.vcs.url``" + +#: ../source/specifications/pylock-toml.rst:309 +msgid "**Required?**: if :ref:`pylock-packages-vcs-path` is not specified" +msgstr "**ຈຳເປັນຫຼືບໍ່?**: ຖ້າບໍ່ໄດ້ລະບຸ :ref:`pylock-packages-vcs-path`" + +#: ../source/specifications/pylock-toml.rst:311 +msgid "The URL_ to the source tree." +msgstr "URL_ ໄປຫາ source tree." + +#: ../source/specifications/pylock-toml.rst:317 +msgid "``packages.vcs.path``" +msgstr "``packages.vcs.path``" + +#: ../source/specifications/pylock-toml.rst:320 +msgid "**Required?**: if :ref:`pylock-packages-vcs-url` is not specified" +msgstr "**ຈຳເປັນຫຼືບໍ່?**: ຖ້າບໍ່ໄດ້ລະບຸ :ref:`pylock-packages-vcs-url`" + +#: ../source/specifications/pylock-toml.rst:322 +msgid "The path to the local directory of the source tree." +msgstr "ເສັ້ນທາງ (path) ໄປຫາໄດເຣັກທໍຣີພາຍໃນເຄື່ອງຂອງ source tree." + +#: ../source/specifications/pylock-toml.rst:323 +#: ../source/specifications/pylock-toml.rst:467 +msgid "" +"If a relative path is used it MUST be relative to the location of this file." +msgstr "ຖ້າໃຊ້ path ແບບທຽບຖານ (relative path), ມັນ **ຕ້ອງ** ທຽບກັບທີ່ຕັ້ງຂອງໄຟລ໌ນີ້." + +#: ../source/specifications/pylock-toml.rst:324 +#: ../source/specifications/pylock-toml.rst:468 +msgid "" +"If the path is relative it MAY use POSIX-style path separators explicitly " +"for portability." +msgstr "" +"ຖ້າ path ເປັນແບບທຽບຖານ, ມັນ **ອາດຈະ** ໃຊ້ຕົວແຍກ path ແບບ POSIX ເພື່ອ " +"ຄວາມສະດວກໃນການເຄື່ອນຍ້າຍລະບົບ." + +#: ../source/specifications/pylock-toml.rst:331 +msgid "``packages.vcs.requested-revision``" +msgstr "``packages.vcs.requested-revision``" + +#: ../source/specifications/pylock-toml.rst:336 +msgid "The branch/tag/ref/commit/revision/etc. that the user requested." +msgstr "ສາຂາ/ແທັກ/ການອ້າງອີງ/ຄອມມິດ/ສະບັບປັບປຸງ/ແລະອື່ນໆ ທີ່ຜູ້ໃຊ້ຮ້ອງຂໍ." + +#: ../source/specifications/pylock-toml.rst:337 +msgid "" +"This is purely informational and to facilitate writing the :ref:`direct-url-" +"data-structure`; it MUST NOT be used to checkout the repository." +msgstr "" +"ນີ້ແມ່ນພຽງຂໍ້ມູນເພື່ອຄວາມສະດວກໃນການຂຽນ :ref:`direct-url-data-structure`; ມັນ **ຕ້ອງບໍ່** " +"ຖືກນຳໃຊ້ເພື່ອ checkout repository." + +#: ../source/specifications/pylock-toml.rst:345 +msgid "``packages.vcs.commit-id``" +msgstr "``packages.vcs.commit-id``" + +#: ../source/specifications/pylock-toml.rst:350 +msgid "The exact commit/revision number that is to be installed." +msgstr "ໝາຍເລກ commit/revision ທີ່ແນ່ນອນທີ່ຈະຖືກຕິດຕັ້ງ." + +#: ../source/specifications/pylock-toml.rst:351 +msgid "" +"If the VCS supports commit-hash based revision identifiers, such a commit-" +"hash, it MUST be used as the commit ID in order to reference an immutable " +"version of the source code." +msgstr "" +"ຖ້າ VCS ຮອງຮັບການລະບຸ revision ດ້ວຍ commit-hash, ໝາຍເລກ commit-hash ນັ້ນ **ຕ້ອງ** " +"ຖືກໃຊ້ເປັນ commit ID ເພື່ອອ້າງອີງເຖິງລະຫັດເວີຊັນທີ່ບໍ່ສາມາດປ່ຽນແປງໄດ້." + +#: ../source/specifications/pylock-toml.rst:359 +msgid "``packages.vcs.subdirectory``" +msgstr "``packages.vcs.subdirectory``" + +#: ../source/specifications/pylock-toml.rst:363 +msgid "**Inspiration**: :ref:`direct-url-data-structure-subdirectories`" +msgstr "**ແຮງບັນດານໃຈ**: :ref:`direct-url-data-structure-subdirectories`" + +#: ../source/specifications/pylock-toml.rst:364 +msgid "" +"The subdirectory within the :ref:`source tree ` where the project root of the project is (e.g. the location of " +"the :ref:`pyproject.toml ` file)." +msgstr "ໄດເຣັກທໍຣີຍ່ອຍພາຍໃນ :ref:`source tree` ທີ່ເປັນທີ່ຕັ້ງຂອງຮາກໂຄງການ (project root)." + +#: ../source/specifications/pylock-toml.rst:368 +msgid "The path MUST be relative to the root of the source tree structure." +msgstr "ເສັ້ນທາງ **ຕ້ອງ** ທຽບກັບຮາກຂອງໂຄງສ້າງ source tree." + +#: ../source/specifications/pylock-toml.rst:374 +msgid "``[packages.directory]``" +msgstr "``[packages.directory]``" + +#: ../source/specifications/pylock-toml.rst:377 +msgid "" +"**Required?**: no; mutually-exclusive with :ref:`pylock-packages-" +"vcs`, :ref:`pylock-packages-archive`, :ref:`pylock-packages-sdist`, " +"and :ref:`pylock-packages-wheels`" +msgstr "" +"**ຈຳເປັນຫຼືບໍ່?**: ບໍ່; ບໍ່ສາມາດໃຊ້ຮ່ວມກັບ :ref:`pylock-packages-vcs`, :ref:`pylock-" +"packages-archive`, :ref:`pylock-packages-sdist`, ແລະ :ref:`pylock-packages-" +"wheels`" + +#: ../source/specifications/pylock-toml.rst:380 +#: ../source/specifications/pylock-toml.rst:398 +#: ../source/specifications/pylock-toml.rst:412 +msgid "**Inspiration**: :ref:`direct-url-data-structure-local-directory`" +msgstr "**ແຮງບັນດານໃຈ**: :ref:`direct-url-data-structure-local-directory`" + +#: ../source/specifications/pylock-toml.rst:381 +msgid "" +"Record the local directory details for the :ref:`source tree ` it contains." +msgstr "ບັນທຶກລາຍລະອຽດຂອງໄດເຣັກທໍຣີພາຍໃນເຄື່ອງສຳລັບ :ref:`source tree` ທີ່ມັນບັນຈຸຢູ່." + +#: ../source/specifications/pylock-toml.rst:384 +msgid "" +"Tools MAY choose to not support local directories, both from a locking and/" +"or installation perspective." +msgstr "" +"ເຄື່ອງມື **ອາດຈະ** ເລືອກທີ່ຈະບໍ່ຮອງຮັບໄດເຣັກທໍຣີພາຍໃນເຄື່ອງ ທັງໃນດ້ານການສ້າງ lock ແລະ/ຫຼື " +"ການຕິດຕັ້ງ." + +#: ../source/specifications/pylock-toml.rst:386 +msgid "" +"Tools SHOULD provide a way for users to opt in/out of using local " +"directories." +msgstr "ເຄື່ອງມື **ຄວນ** ມີວິທີໃຫ້ຜູ້ໃຊ້ເລືອກວ່າຈະໃຊ້ ຫຼື ບໍ່ໃຊ້ໄດເຣັກທໍຣີພາຍໃນເຄື່ອງ." + +#: ../source/specifications/pylock-toml.rst:387 +msgid "" +"Installation from a directory is considered originating from a :ref:`direct " +"URL reference `." +msgstr "" +"ການຕິດຕັ້ງຈາກໄດເຣັກທໍຣີຖືກຖືວ່າແມ່ນມາຈາກ :ref:`direct URL reference `." + +#: ../source/specifications/pylock-toml.rst:394 +msgid "``packages.directory.path``" +msgstr "``packages.directory.path``" + +#: ../source/specifications/pylock-toml.rst:399 +msgid "The local directory where the source tree is." +msgstr "ໄດເຣັກທໍຣີພາຍໃນເຄື່ອງທີ່ source tree ຕັ້ງຢູ່." + +#: ../source/specifications/pylock-toml.rst:400 +msgid "" +"If the path is relative it MUST be relative to the location of the lock file." +msgstr "ຖ້າເສັ້ນທາງເປັນແບບທຽບຖານ ມັນ **ຕ້ອງ** ທຽບກັບທີ່ຕັ້ງຂອງໄຟລ໌ lock." + +#: ../source/specifications/pylock-toml.rst:401 +msgid "" +"If the path is relative it MAY use POSIX-style path separators for " +"portability." +msgstr "" +"ຖ້າເສັ້ນທາງເປັນແບບທຽບຖານ ມັນ **ອາດຈະ** ໃຊ້ຕົວແຍກ path ແບບ POSIX ເພື່ອ " +"ຄວາມສະດວກໃນການເຄື່ອນຍ້າຍລະບົບ." + +#: ../source/specifications/pylock-toml.rst:408 +msgid "``packages.directory.editable``" +msgstr "``packages.directory.editable``" + +#: ../source/specifications/pylock-toml.rst:410 +msgid "**Type**: boolean" +msgstr "**ປະເພດ**: ບູລີນ (boolean)" + +#: ../source/specifications/pylock-toml.rst:411 +msgid "**Required?**: no; defaults to ``false``" +msgstr "**ຈຳເປັນຫຼືບໍ່?**: ບໍ່; ຄ່າເລີ່ມຕົ້ນແມ່ນ ``false``" + +#: ../source/specifications/pylock-toml.rst:413 +msgid "" +"A flag representing whether the source tree was an editable install at lock " +"time." +msgstr "" +"ເຄື່ອງໝາຍທີ່ບົ່ງບອກວ່າ source tree ເປັນການຕິດຕັ້ງແບບແກ້ໄຂໄດ້ (editable install) " +"ໃນເວລາທີ່ສ້າງ lock ຫຼື ບໍ່." + +#: ../source/specifications/pylock-toml.rst:415 +msgid "" +"An installer MAY choose to ignore this flag if user actions or context would " +"make an editable install unnecessary or undesirable (e.g. a container image " +"that will not be mounted for development purposes but instead deployed to " +"production where it would be treated at read-only)." +msgstr "" +"ຜູ້ຕິດຕັ້ງ **ອາດຈະ** ເລືອກທີ່ຈະບໍ່ສົນໃຈເຄື່ອງໝາຍນີ້ ຖ້າບໍລິບົດເຮັດໃຫ້ການຕິດຕັ້ງ ແບບແກ້ໄຂໄດ້ນັ້ນບໍ່ຈຳເປັນ " +"(ເຊັ່ນ ການໃຊ້ໃນ container ສຳລັບ production)." + +#: ../source/specifications/pylock-toml.rst:424 +msgid "``packages.directory.subdirectory``" +msgstr "``packages.directory.subdirectory``" + +#: ../source/specifications/pylock-toml.rst:426 +#: ../source/specifications/pylock-toml.rst:521 +msgid "See :ref:`pylock-packages-vcs-subdirectory`." +msgstr "ເບິ່ງ :ref:`pylock-packages-vcs-subdirectory`." + +#: ../source/specifications/pylock-toml.rst:432 +msgid "``[packages.archive]``" +msgstr "``[packages.archive]``" + +#: ../source/specifications/pylock-toml.rst:436 +#: ../source/specifications/pylock-toml.rst:454 +#: ../source/specifications/pylock-toml.rst:465 +msgid "**Inspiration**: :ref:`direct-url-data-structure-archive`" +msgstr "**ແຮງບັນດານໃຈ**: :ref:`direct-url-data-structure-archive`" + +#: ../source/specifications/pylock-toml.rst:437 +msgid "" +"A direct reference to an archive file to install from (this can include " +"wheels and sdists, as well as other archive formats containing a source " +"tree)." +msgstr "" +"ການອ້າງອີງໂດຍກົງເຖິງໄຟລ໌ຈັດເກັບ (archive file) ເພື່ອຕິດຕັ້ງ (ລວມເຖິງ wheels, sdists ແລະ " +"ຮູບແບບການຈັດເກັບອື່ນໆ)." + +#: ../source/specifications/pylock-toml.rst:440 +msgid "" +"Tools MAY choose to not support archive files, both from a locking and/or " +"installation perspective." +msgstr "" +"ເຄື່ອງມື **ອາດຈະ** ເລືອກທີ່ຈະບໍ່ຮອງຮັບໄຟລ໌ຈັດເກັບ ທັງໃນດ້ານການສ້າງ lock ແລະ/ຫຼື ການຕິດຕັ້ງ." + +#: ../source/specifications/pylock-toml.rst:442 +msgid "" +"Tools SHOULD provide a way for users to opt in/out of using archive files." +msgstr "ເຄື່ອງມື **ຄວນ** ມີວິທີໃຫ້ຜູ້ໃຊ້ເລືອກວ່າຈະໃຊ້ ຫຼື ບໍ່ໃຊ້ໄຟລ໌ຈັດເກັບ." + +#: ../source/specifications/pylock-toml.rst:443 +msgid "" +"Installation from an archive file is considered originating from " +"a :ref:`direct URL reference `." +msgstr "" +"ການຕິດຕັ້ງຈາກໄຟລ໌ຈັດເກັບຖືກຖືວ່າແມ່ນມາຈາກ :ref:`direct URL reference `." + +#: ../source/specifications/pylock-toml.rst:450 +msgid "``packages.archive.url``" +msgstr "``packages.archive.url``" + +#: ../source/specifications/pylock-toml.rst:453 +msgid "**Required?**: if :ref:`pylock-packages-archive-path` is not specified" +msgstr "**ຈຳເປັນຫຼືບໍ່?**: ຖ້າບໍ່ໄດ້ລະບຸ :ref:`pylock-packages-archive-path`" + +#: ../source/specifications/pylock-toml.rst:455 +msgid "The URL_ to the archive." +msgstr "URL_ ໄປຫາໄຟລ໌ຈັດເກັບ." + +#: ../source/specifications/pylock-toml.rst:461 +msgid "``packages.archive.path``" +msgstr "``packages.archive.path``" + +#: ../source/specifications/pylock-toml.rst:464 +msgid "**Required?**: if :ref:`pylock-packages-archive-url` is not specified" +msgstr "**ຈຳເປັນຫຼືບໍ່?**: ຖ້າບໍ່ໄດ້ລະບຸ :ref:`pylock-packages-archive-url`" + +#: ../source/specifications/pylock-toml.rst:466 +msgid "The path to the archive." +msgstr "ເສັ້ນທາງໄປຫາໄຟລ໌ຈັດເກັບ." + +#: ../source/specifications/pylock-toml.rst:470 +msgid "" +"If :ref:`pylock-packages-archive-url` is also specified, the filename as " +"specified by this key takes precedence." +msgstr "" +"ຖ້າໄດ້ລະບຸ :ref:`pylock-packages-archive-url` ໄວ້ຄືກັນ, ຊື່ໄຟລ໌ທີ່ລະບຸໂດຍ key " +"ນີ້ຈະມີບຸລິມະສິດສູງກວ່າ." + +#: ../source/specifications/pylock-toml.rst:477 +msgid "``packages.archive.size``" +msgstr "``packages.archive.size``" + +#: ../source/specifications/pylock-toml.rst:479 +msgid "**Type**: integer" +msgstr "**ປະເພດ**: ຈຳນວນຖ້ວນ (integer)" + +#: ../source/specifications/pylock-toml.rst:481 +msgid "**Inspiration**: uv_, :ref:`simple-repository-api`" +msgstr "**ແຮງບັນດານໃຈ**: uv_, :ref:`simple-repository-api`" + +#: ../source/specifications/pylock-toml.rst:482 +msgid "The size of the archive file." +msgstr "ຂະໜາດຂອງໄຟລ໌ຈັດເກັບ." + +#: ../source/specifications/pylock-toml.rst:483 +msgid "" +"Tools SHOULD provide the file size when reasonably possible (e.g. the file " +"size is available via the Content-Length_ header from a HEAD_ HTTP request)." +msgstr "ເຄື່ອງມື **ຄວນ** ລະບຸຂະໜາດໄຟລ໌ເມື່ອສາມາດເຮັດໄດ້..." + +#: ../source/specifications/pylock-toml.rst:490 +msgid "``packages.archive.upload-time``" +msgstr "``packages.archive.upload-time``" + +#: ../source/specifications/pylock-toml.rst:492 +msgid "**Type**: datetime" +msgstr "**ປະເພດ**: ວັນທີ ແລະ ເວລາ (datetime)" + +#: ../source/specifications/pylock-toml.rst:494 +msgid "**Inspiration**: :ref:`simple-repository-api`" +msgstr "**ແຮງບັນດານໃຈ**: :ref:`simple-repository-api`" + +#: ../source/specifications/pylock-toml.rst:495 +msgid "The time the file was uploaded." +msgstr "ເວລາທີ່ໄຟລ໌ຖືກອັບໂຫຼດ." + +#: ../source/specifications/pylock-toml.rst:496 +msgid "The date and time MUST be recorded in UTC." +msgstr "ວັນທີ ແລະ ເວລາ **ຕ້ອງ** ຖືກບັນທຶກໃນຮູບແບບ UTC." + +#: ../source/specifications/pylock-toml.rst:502 +msgid "``[packages.archive.hashes]``" +msgstr "``[packages.archive.hashes]``" + +#: ../source/specifications/pylock-toml.rst:504 +msgid "**Type**: Table of strings" +msgstr "**ປະເພດ**: ຕາຕະລາງຂອງ string" + +#: ../source/specifications/pylock-toml.rst:506 +msgid "**Inspiration**: PDM_, Poetry_, uv_, :ref:`simple-repository-api`" +msgstr "**ແຮງບັນດານໃຈ**: PDM_, Poetry_, uv_, :ref:`simple-repository-api`" + +#: ../source/specifications/pylock-toml.rst:507 +msgid "" +"A table listing known hash values of the file where the key is the hash " +"algorithm and the value is the hash value." +msgstr "" +"ຕາຕະລາງທີ່ລະບຸຄ່າ hash ຂອງໄຟລ໌ ໂດຍ key ແມ່ນ algorithm ຂອງ hash ແລະ value ແມ່ນຄ່າ " +"hash." + +#: ../source/specifications/pylock-toml.rst:509 +msgid "The table MUST contain at least one entry." +msgstr "ຕາຕະລາງ **ຕ້ອງ** ມີຢ່າງໜ້ອຍໜຶ່ງລາຍການ." + +#: ../source/specifications/pylock-toml.rst:510 +msgid "Hash algorithm keys SHOULD be lowercase." +msgstr "Key ຂອງ algorithm hash **ຄວນ** ເປັນຕົວພິມນ້ອຍ." + +#: ../source/specifications/pylock-toml.rst:511 +msgid "" +"At least one secure algorithm from :py:data:`hashlib.algorithms_guaranteed` " +"SHOULD always be included (at time of writing, sha256 specifically is " +"recommended." +msgstr "" +"**ຄວນ** ລວມເອົາຢ່າງໜ້ອຍໜຶ່ງ algorithm " +"ທີ່ປອດໄພຈາກ :py:data:`hashlib.algorithms_guaranteed` ໄວ້ສະເໝີ (ແນະນຳ sha256)." + +#: ../source/specifications/pylock-toml.rst:519 +msgid "``packages.archive.subdirectory``" +msgstr "``packages.archive.subdirectory``" + +#: ../source/specifications/pylock-toml.rst:527 +msgid "``packages.index``" +msgstr "``packages.index``" + +#: ../source/specifications/pylock-toml.rst:532 +msgid "" +"The base URL for the package index from :ref:`simple-repository-api` where " +"the sdist and/or wheels were found (e.g. ``https://pypi.org/simple/``)." +msgstr "URL ຫຼັກສຳລັບ package index ບ່ອນທີ່ພົບ sdist ແລະ/ຫຼື wheels." + +#: ../source/specifications/pylock-toml.rst:534 +msgid "" +"When possible, this SHOULD be specified to assist with generating `software " +"bill of materials`_ -- aka SBOMs -- and to assist in finding a file if a URL " +"ceases to be valid." +msgstr "" +"ຫາກເປັນໄປໄດ້, **ຄວນ** ລະບຸສິ່ງນີ້ເພື່ອຊ່ວຍໃນການສ້າງ SBOMs ແລະ ຊ່ວຍໃນການ ຄົ້ນຫາໄຟລ໌ຫາກ URL " +"ເດີມໃຊ້ບໍ່ໄດ້ແລ້ວ." + +#: ../source/specifications/pylock-toml.rst:537 +msgid "" +"Tools MAY support installing from an index if the URL recorded for a " +"specific file is no longer valid (e.g. returns a 404 HTTP error code)." +msgstr "ເຄື່ອງມື **ອາດຈະ** ຮອງຮັບການຕິດຕັ້ງຈາກ index ຫາກ URL ທີ່ບັນທຶກໄວ້ ໃຊ້ບໍ່ໄດ້ແລ້ວ." + +#: ../source/specifications/pylock-toml.rst:544 +msgid "``[packages.sdist]``" +msgstr "``[packages.sdist]``" + +#: ../source/specifications/pylock-toml.rst:547 +#: ../source/specifications/pylock-toml.rst:619 +msgid "" +"**Required?**: no; mutually-exclusive with :ref:`pylock-packages-" +"vcs`, :ref:`pylock-packages-directory`, and :ref:`pylock-packages-archive`" +msgstr "" +"**ຈຳເປັນຫຼືບໍ່?**: ບໍ່; ບໍ່ສາມາດໃຊ້ຮ່ວມກັບ :ref:`pylock-packages-vcs`, :ref:`pylock-" +"packages-directory`, ແລະ :ref:`pylock-packages-archive`" + +#: ../source/specifications/pylock-toml.rst:550 +msgid "Details of a :ref:`source-distribution-format-sdist` for the package." +msgstr "ລາຍລະອຽດຂອງ :ref:`sdist` ສຳລັບແພັກເກັດ." + +#: ../source/specifications/pylock-toml.rst:552 +msgid "" +"Tools MAY choose to not support sdist files, both from a locking and/or " +"installation perspective." +msgstr "" +"ເຄື່ອງມື **ອາດຈະ** ເລືອກທີ່ຈະບໍ່ຮອງຮັບໄຟລ໌ sdist ທັງໃນດ້ານການສ້າງ lock ແລະ/ຫຼື ການຕິດຕັ້ງ." + +#: ../source/specifications/pylock-toml.rst:554 +msgid "" +"Tools SHOULD provide a way for users to opt in/out of using sdist files." +msgstr "ເຄື່ອງມື **ຄວນ** ມີວິທີໃຫ້ຜູ້ໃຊ້ເລືອກວ່າຈະໃຊ້ ຫຼື ບໍ່ໃຊ້ໄຟລ໌ sdist." + +#: ../source/specifications/pylock-toml.rst:560 +msgid "``packages.sdist.name``" +msgstr "``packages.sdist.name``" + +#: ../source/specifications/pylock-toml.rst:563 +msgid "" +"**Required?**: no, not when the last component of :ref:`pylock-packages-" +"sdist-path`/ :ref:`pylock-packages-sdist-url` would be the same value" +msgstr "**ຈຳເປັນຫຼືບໍ່?**: ບໍ່, ຫາກມີຄ່າດຽວກັນກັບສ່ວນທ້າຍຂອງ path ຫຼື url" + +#: ../source/specifications/pylock-toml.rst:567 +msgid "The file name of the :ref:`source-distribution-format-sdist` file." +msgstr "ຊື່ໄຟລ໌ຂອງໄຟລ໌ :ref:`sdist`." + +#: ../source/specifications/pylock-toml.rst:568 +msgid "" +"If specified, this key's value takes precedence over the file name found in " +"either :ref:`pylock-packages-sdist-url` or :ref:`pylock-packages-sdist-path`." +msgstr "ຫາກລະບຸໄວ້, ຄ່າຂອງ key ນີ້ຈະມີບຸລິມະສິດສູງກວ່າຊື່ໄຟລ໌ທີ່ພົບໃນ url ຫຼື path." + +#: ../source/specifications/pylock-toml.rst:575 +msgid "``packages.sdist.upload-time``" +msgstr "``packages.sdist.upload-time``" + +#: ../source/specifications/pylock-toml.rst:577 +#: ../source/specifications/pylock-toml.rst:648 +msgid "See :ref:`pylock-packages-archive-upload-time`." +msgstr "ເບິ່ງ :ref:`pylock-packages-archive-upload-time`." + +#: ../source/specifications/pylock-toml.rst:583 +msgid "``packages.sdist.url``" +msgstr "``packages.sdist.url``" + +#: ../source/specifications/pylock-toml.rst:585 +#: ../source/specifications/pylock-toml.rst:656 +msgid "See :ref:`pylock-packages-archive-url`." +msgstr "ເບິ່ງ :ref:`pylock-packages-archive-url`." + +#: ../source/specifications/pylock-toml.rst:591 +msgid "``packages.sdist.path``" +msgstr "``packages.sdist.path``" + +#: ../source/specifications/pylock-toml.rst:593 +#: ../source/specifications/pylock-toml.rst:664 +msgid "See :ref:`pylock-packages-archive-path`." +msgstr "ເບິ່ງ :ref:`pylock-packages-archive-path`." + +#: ../source/specifications/pylock-toml.rst:599 +msgid "``packages.sdist.size``" +msgstr "``packages.sdist.size``" + +#: ../source/specifications/pylock-toml.rst:601 +#: ../source/specifications/pylock-toml.rst:672 +msgid "See :ref:`pylock-packages-archive-size`." +msgstr "ເບິ່ງ :ref:`pylock-packages-archive-size`." + +#: ../source/specifications/pylock-toml.rst:607 +msgid "``packages.sdist.hashes``" +msgstr "``packages.sdist.hashes``" + +#: ../source/specifications/pylock-toml.rst:609 +#: ../source/specifications/pylock-toml.rst:680 +msgid "See :ref:`pylock-packages-archive-hashes`." +msgstr "ເບິ່ງ :ref:`pylock-packages-archive-hashes`." + +#: ../source/specifications/pylock-toml.rst:616 +msgid "``[[packages.wheels]]``" +msgstr "``[[packages.wheels]]``" + +#: ../source/specifications/pylock-toml.rst:622 +msgid "" +"For recording the wheel files as specified by :ref:`binary-distribution-" +"format` for the package." +msgstr "ສຳລັບບັນທຶກໄຟລ໌ wheel ຕາມທີ່ກຳນົດໄວ້ໃນ :ref:`binary-distribution-format`." + +#: ../source/specifications/pylock-toml.rst:624 +msgid "" +"Tools MUST support wheel files, both from a locking and installation " +"perspective." +msgstr "ເຄື່ອງມື **ຕ້ອງ** ຮອງຮັບໄຟລ໌ wheel ທັງໃນດ້ານການສ້າງ lock ແລະ ການຕິດຕັ້ງ." + +#: ../source/specifications/pylock-toml.rst:631 +msgid "``packages.wheels.name``" +msgstr "``packages.wheels.name``" + +#: ../source/specifications/pylock-toml.rst:634 +msgid "" +"**Required?**: no, not when the last component of :ref:`pylock-packages-" +"wheels-path`/ :ref:`pylock-packages-wheels-url` would be the same value" +msgstr "**ຈຳເປັນຫຼືບໍ່?**: ບໍ່, ຫາກມີຄ່າດຽວກັນກັບສ່ວນທ້າຍຂອງ path ຫຼື url" + +#: ../source/specifications/pylock-toml.rst:638 +msgid "The file name of the :ref:`binary-distribution-format` file." +msgstr "ຊື່ໄຟລ໌ຂອງໄຟລ໌ wheel." + +#: ../source/specifications/pylock-toml.rst:639 +msgid "" +"If specified, this key's value takes precedence over the file name found in " +"either :ref:`pylock-packages-wheels-url` or :ref:`pylock-packages-wheels-" +"path`." +msgstr "ຫາກລະບຸໄວ້, ຄ່າຂອງ key ນີ້ຈະມີບຸລິມະສິດສູງກວ່າຊື່ໄຟລ໌ທີ່ພົບໃນ url ຫຼື path." + +#: ../source/specifications/pylock-toml.rst:646 +msgid "``packages.wheels.upload-time``" +msgstr "``packages.wheels.upload-time``" + +#: ../source/specifications/pylock-toml.rst:654 +msgid "``packages.wheels.url``" +msgstr "``packages.wheels.url``" + +#: ../source/specifications/pylock-toml.rst:662 +msgid "``packages.wheels.path``" +msgstr "``packages.wheels.path``" + +#: ../source/specifications/pylock-toml.rst:670 +msgid "``packages.wheels.size``" +msgstr "``packages.wheels.size``" + +#: ../source/specifications/pylock-toml.rst:678 +msgid "``packages.wheels.hashes``" +msgstr "``packages.wheels.hashes``" + +#: ../source/specifications/pylock-toml.rst:686 +msgid "``[[packages.attestation-identities]]``" +msgstr "``[[packages.attestation-identities]]``" + +#: ../source/specifications/pylock-toml.rst:690 +#: ../source/specifications/pylock-toml.rst:705 +msgid "**Inspiration**: :ref:`provenance-object`" +msgstr "**ແຮງບັນດານໃຈ**: :ref:`provenance-object`" + +#: ../source/specifications/pylock-toml.rst:691 +msgid "" +"A recording of the attestations for **any** file recorded for this package." +msgstr "ການບັນທຶກການຢືນຢັນ (attestations) ສຳລັບໄຟລ໌ໃດໜຶ່ງທີ່ບັນທຶກໄວ້ສຳລັບແພັກເກັດນີ້." + +#: ../source/specifications/pylock-toml.rst:692 +msgid "If available, tools SHOULD include the attestation identities found." +msgstr "ຫາກມີຂໍ້ມູນ, ເຄື່ອງມື **ຄວນ** ລວມເອົາຂໍ້ມູນຕົວຕົນການຢືນຢັນທີ່ພົບ." + +#: ../source/specifications/pylock-toml.rst:693 +msgid "" +"Publisher-specific keys are to be included in the table as-is (i.e. top-" +"level), following the spec at :ref:`index-hosted-attestations`." +msgstr "Key ສະເພາະຂອງຜູ້ເຜີຍແຜ່ (Publisher) ໃຫ້ລວມໄວ້ໃນຕາຕະລາງຕາມສະພາບເດີມ..." + +#: ../source/specifications/pylock-toml.rst:701 +msgid "``packages.attestation-identities.kind``" +msgstr "``packages.attestation-identities.kind``" + +#: ../source/specifications/pylock-toml.rst:706 +msgid "The unique identity of the Trusted Publisher." +msgstr "ຕົວຕົນທີ່ເປັນເອກະລັກຂອງຜູ້ເຜີຍແຜ່ທີ່ໄດ້ຮັບຄວາມເຊື່ອຖື (Trusted Publisher)." + +#: ../source/specifications/pylock-toml.rst:712 +msgid "``[packages.tool]``" +msgstr "``[packages.tool]``" + +#: ../source/specifications/pylock-toml.rst:717 +msgid "" +"Similar usage as that of the :ref:`pylock-tool` table from " +"the :ref:`pyproject-toml-spec`, but at the package version level instead of " +"at the lock file level (which is also available via :ref:`pylock-tool`)." +msgstr "ການນຳໃຊ້ທີ່ຄ້າຍຄືກັນກັບຕາຕະລາງ :ref:`pylock-tool` ແຕ່ຢູ່ໃນລະດັບເວີຊັນຂອງແພັກເກັດ..." + +#: ../source/specifications/pylock-toml.rst:720 +msgid "" +"Data recorded in the table MUST be disposable (i.e. it MUST NOT affect " +"installation)." +msgstr "" +"ຂໍ້ມູນທີ່ບັນທຶກໃນຕາຕະລາງ **ຕ້ອງ** ສາມາດຖິ້ມໄດ້ (ໝາຍຄວາມວ່າ ມັນ **ຕ້ອງບໍ່** ສົ່ງຜົນກະທົບຕໍ່ການຕິດຕັ້ງ)." + +#: ../source/specifications/pylock-toml.rst:727 +msgid "``[tool]``" +msgstr "``[tool]``" + +#: ../source/specifications/pylock-toml.rst:732 +msgid "See :ref:`pylock-packages-tool`." +msgstr "ເບິ່ງ :ref:`pylock-packages-tool`." + +#: ../source/specifications/pylock-toml.rst:746 +msgid "" +"The following outlines the steps to be taken to install from a lock file " +"(while the requirements are prescriptive, the general steps and order are a " +"suggestion):" +msgstr "ຕໍ່ໄປນີ້ແມ່ນຂັ້ນຕອນທີ່ຈະປະຕິບັດເພື່ອຕິດຕັ້ງຈາກໄຟລ໌ lock (ຂັ້ນຕອນ ແລະ ລຳດັບ ເຫຼົ່ານີ້ແມ່ນຂໍ້ແນະນຳ):" + +#: ../source/specifications/pylock-toml.rst:750 +msgid "" +"Gather the extras and dependency groups to install and set ``extras`` and " +"``dependency_groups`` for marker evaluation, respectively." +msgstr "" +"ລວບລວມ extras ແລະ dependency groups ເພື່ອຕິດຕັ້ງ ແລະ ຕັ້ງຄ່າ ``extras`` ແລະ " +"``dependency_groups`` ສຳລັບການປະເມີນ marker." + +#: ../source/specifications/pylock-toml.rst:753 +msgid "``extras`` SHOULD be set to the empty set by default." +msgstr "``extras`` **ຄວນ** ຖືກຕັ້ງໃຫ້ເປັນເຊັດຫວ່າງ (empty set) ເປັນຄ່າເລີ່ມຕົ້ນ." + +#: ../source/specifications/pylock-toml.rst:754 +msgid "" +"``dependency_groups`` SHOULD be the set created from :ref:`pylock-default-" +"groups` by default." +msgstr "" +"``dependency_groups`` **ຄວນ** ເປັນເຊັດທີ່ສ້າງຂຶ້ນຈາກ :ref:`pylock-default-groups` " +"ເປັນຄ່າເລີ່ມຕົ້ນ." + +#: ../source/specifications/pylock-toml.rst:757 +msgid "" +"Check if the metadata version specified by :ref:`pylock-lock-version` is " +"supported; an error or warning MUST be raised as appropriate." +msgstr "" +"ກວດສອບວ່າເວີຊັນ metadata ທີ່ລະບຸໂດຍ :ref:`pylock-lock-version` ໄດ້ຮັບການ ຮອງຮັບຫຼືບໍ່; " +"**ຕ້ອງ** ສະແດງຂໍ້ຜິດພາດ ຫຼື ຄຳເຕືອນຕາມຄວາມເໝາະສົມ." + +#: ../source/specifications/pylock-toml.rst:759 +msgid "" +"If :ref:`pylock-requires-python` is specified, check that the environment " +"being installed for meets the requirement; an error MUST be raised if it is " +"not met." +msgstr "" +"ຫາກລະບຸ :ref:`pylock-requires-python`, ໃຫ້ກວດສອບວ່າສະພາບແວດລ້ອມທີ່ກຳລັງ " +"ຕິດຕັ້ງນັ້ນກົງຕາມຄວາມຕ້ອງການຫຼືບໍ່; **ຕ້ອງ** ສະແດງຂໍ້ຜິດພາດຫາກບໍ່ກົງຕາມເງື່ອນໄຂ." + +#: ../source/specifications/pylock-toml.rst:762 +msgid "" +"If :ref:`pylock-environments` is specified, check that at least one of the " +"environment marker expressions is satisfied; an error MUST be raised if no " +"expression is satisfied." +msgstr "" +"ຫາກລະບຸ :ref:`pylock-environments`, ໃຫ້ກວດສອບວ່າຢ່າງໜ້ອຍໜຶ່ງໃນນິພົດ environment " +"marker ນັ້ນກົງຕາມເງື່ອນໄຂຫຼືບໍ່; **ຕ້ອງ** ສະແດງຂໍ້ຜິດພາດຫາກ ບໍ່ມີນິພົດໃດກົງຕາມເງື່ອນໄຂ." + +#: ../source/specifications/pylock-toml.rst:765 +msgid "For each package listed in :ref:`pylock-packages`:" +msgstr "ສຳລັບແຕ່ລະແພັກເກັດທີ່ລະບຸໃນ :ref:`pylock-packages`:" + +#: ../source/specifications/pylock-toml.rst:767 +msgid "" +"If :ref:`pylock-packages-marker` is specified, check if it is satisfied; if " +"it isn't, skip to the next package." +msgstr "" +"ຫາກລະບຸ :ref:`pylock-packages-marker`, ໃຫ້ກວດສອບວ່ານັ້ນກົງຕາມເງື່ອນໄຂຫຼືບໍ່; ຫາກບໍ່ກົງ, " +"ໃຫ້ຂ້າມໄປແພັກເກັດຖັດໄປ." + +#: ../source/specifications/pylock-toml.rst:769 +msgid "" +"If :ref:`pylock-packages-requires-python` is specified, check if it is " +"satisfied; an error MUST be raised if it isn't." +msgstr "" +"ຫາກລະບຸ :ref:`pylock-packages-requires-python`, ໃຫ້ກວດສອບວ່ານັ້ນກົງຕາມເງື່ອນໄຂຫຼືບໍ່; " +"**ຕ້ອງ** ສະແດງຂໍ້ຜິດພາດຫາກບໍ່ກົງຕາມເງື່ອນໄຂ." + +#: ../source/specifications/pylock-toml.rst:771 +msgid "" +"Check that no other conflicting instance of the package has been slated to " +"be installed; an error about the ambiguity MUST be raised otherwise." +msgstr "" +"ກວດສອບວ່າບໍ່ມີແພັກເກັດດຽວກັນແຕ່ຄົນລະລາຍການທີ່ຂັດແຍ່ງກັນຖືກກຳນົດໃຫ້ຕິດຕັ້ງ; **ຕ້ອງ** " +"ສະແດງຂໍ້ຜິດພາດຫາກພົບຄວາມບໍ່ຊັດເຈນ." + +#: ../source/specifications/pylock-toml.rst:773 +msgid "" +"Check that the source of the package is specified appropriately (i.e. there " +"are no conflicting sources in the package entry); an error MUST be raised if " +"any issues are found." +msgstr "" +"ກວດສອບວ່າແຫຼ່ງທີ່ມາຂອງແພັກເກັດຖືກລະບຸຢ່າງເໝາະສົມ; **ຕ້ອງ** ສະແດງຂໍ້ຜິດພາດ ຫາກພົບບັນຫາໃດໆ." + +#: ../source/specifications/pylock-toml.rst:776 +msgid "Add the package to the set of packages to install." +msgstr "ເພີ່ມແພັກເກັດເຂົ້າໃນເຊັດຂອງແພັກເກັດທີ່ຈະຕິດຕັ້ງ." + +#: ../source/specifications/pylock-toml.rst:778 +msgid "For each package to be installed:" +msgstr "ສຳລັບແຕ່ລະແພັກເກັດທີ່ຈະຕິດຕັ້ງ:" + +#: ../source/specifications/pylock-toml.rst:780 +msgid "If :ref:`pylock-packages-vcs` is set:" +msgstr "ຫາກ :ref:`pylock-packages-vcs` ຖືກຕັ້ງຄ່າ:" + +#: ../source/specifications/pylock-toml.rst:782 +msgid "" +"Clone the repository to the commit ID specified in :ref:`pylock-packages-vcs-" +"commit-id`." +msgstr "" +"Clone repository ຕາມໝາຍເລກ commit ID ທີ່ລະບຸໃນ :ref:`pylock-packages-vcs-commit-" +"id`." + +#: ../source/specifications/pylock-toml.rst:784 +msgid "" +":ref:`Build ` the package, " +"respecting :ref:`pylock-packages-vcs-subdirectory`." +msgstr "" +":ref:`ບິວດ໌ (Build) ` ແພັກເກັດ, " +"ໂດຍປະຕິບັດຕາມ :ref:`pylock-packages-vcs-subdirectory`." + +#: ../source/specifications/pylock-toml.rst:786 +#: ../source/specifications/pylock-toml.rst:792 +#: ../source/specifications/pylock-toml.rst:801 +#: ../source/specifications/pylock-toml.rst:821 +#: ../source/specifications/pylock-toml.rst:836 +msgid ":ref:`Install `." +msgstr ":ref:`ຕິດຕັ້ງ `." + +#: ../source/specifications/pylock-toml.rst:788 +msgid "Else if :ref:`pylock-packages-directory` is set:" +msgstr "ຫາກບໍ່ດັ່ງນັ້ນ ຖ້າ :ref:`pylock-packages-directory` ຖືກຕັ້ງຄ່າ:" + +#: ../source/specifications/pylock-toml.rst:790 +msgid "" +":ref:`Build ` the package, " +"respecting :ref:`pylock-packages-directory-subdirectory`." +msgstr "" +":ref:`ບິວດ໌ (Build) ` ແພັກເກັດ, " +"ໂດຍປະຕິບັດຕາມ :ref:`pylock-packages-directory-subdirectory`." + +#: ../source/specifications/pylock-toml.rst:794 +msgid "Else if :ref:`pylock-packages-archive` is set:" +msgstr "ຫາກບໍ່ດັ່ງນັ້ນ ຖ້າ :ref:`pylock-packages-archive` ຖືກຕັ້ງຄ່າ:" + +#: ../source/specifications/pylock-toml.rst:796 +#: ../source/specifications/pylock-toml.rst:826 +msgid "Get the file." +msgstr "ດຶງໄຟລ໌ມາ." + +#: ../source/specifications/pylock-toml.rst:797 +msgid "" +"Validate using :ref:`pylock-packages-archive-size` and :ref:`pylock-packages-" +"archive-hashes`." +msgstr "" +"ກວດສອບຄວາມຖືກຕ້ອງໂດຍໃຊ້ :ref:`pylock-packages-archive-size` ແລະ :ref:`pylock-" +"packages-archive-hashes`." + +#: ../source/specifications/pylock-toml.rst:799 +msgid "" +":ref:`Build ` the package, " +"respecting :ref:`pylock-packages-archive-subdirectory`." +msgstr "" +":ref:`ບິວດ໌ (Build) ` ແພັກເກັດ, " +"ໂດຍປະຕິບັດຕາມ :ref:`pylock-packages-archive-subdirectory`." + +#: ../source/specifications/pylock-toml.rst:803 +msgid "Else if there are entries for :ref:`pylock-packages-wheels`:" +msgstr "ຫາກບໍ່ດັ່ງນັ້ນ ຖ້າມີລາຍການສຳລັບ :ref:`pylock-packages-wheels`:" + +#: ../source/specifications/pylock-toml.rst:805 +msgid "" +"Look for the appropriate wheel file based on :ref:`pylock-packages-wheels-" +"name`; if one is not found then move on to :ref:`pylock-packages-sdist` or " +"an error MUST be raised about a lack of source for the project." +msgstr "" +"ຄົ້ນຫາໄຟລ໌ wheel ທີ່ເໝາະສົມຕາມ :ref:`pylock-packages-wheels-name`; " +"ຫາກບໍ່ພົບໃຫ້ໄປທີ່ :ref:`pylock-packages-sdist` ຫຼື ສະແດງຂໍ້ຜິດພາດ." + +#: ../source/specifications/pylock-toml.rst:809 +msgid "Get the file:" +msgstr "ດຶງໄຟລ໌ມາ:" + +#: ../source/specifications/pylock-toml.rst:811 +msgid "If :ref:`pylock-packages-wheels-path` is set, use it." +msgstr "ຫາກ :ref:`pylock-packages-wheels-path` ຖືກຕັ້ງຄ່າ, ໃຫ້ໃຊ້ມັນ." + +#: ../source/specifications/pylock-toml.rst:812 +msgid "" +"Else if :ref:`pylock-packages-wheels-url` is set, try to use it; optionally " +"tools MAY use :ref:`pylock-packages-index` or some tool-specific mechanism " +"to download the selected wheel file (tools MUST NOT try to change what wheel " +"file to download based on what's available; what file to install should be " +"determined in an offline fashion for reproducibility)." +msgstr "" +"ຫາກບໍ່ດັ່ງນັ້ນ ຖ້າ :ref:`pylock-packages-wheels-url` ຖືກຕັ້ງຄ່າ, ໃຫ້ລອງໃຊ້ມັນ; ເຄື່ອງມື " +"**ອາດຈະ** ໃຊ້ :ref:`pylock-packages-index` ຫຼື ກົນໄກອື່ນ..." + +#: ../source/specifications/pylock-toml.rst:819 +msgid "" +"Validate using :ref:`pylock-packages-wheels-size` and :ref:`pylock-packages-" +"wheels-hashes`." +msgstr "" +"ກວດສອບຄວາມຖືກຕ້ອງໂດຍໃຊ້ :ref:`pylock-packages-wheels-size` ແລະ :ref:`pylock-" +"packages-wheels-hashes`." + +#: ../source/specifications/pylock-toml.rst:823 +msgid "" +"Else if no :ref:`pylock-packages-wheels` file is found or :ref:`pylock-" +"packages-sdist` is solely set:" +msgstr "ຫາກບໍ່ດັ່ງນັ້ນ ຖ້າບໍ່ພົບໄຟລ໌ wheel ຫຼື ມີການຕັ້ງຄ່າ sdist ພຽງຢ່າງດຽວ:" + +#: ../source/specifications/pylock-toml.rst:828 +msgid "If :ref:`pylock-packages-sdist-path` is set, use it." +msgstr "ຫາກ :ref:`pylock-packages-sdist-path` ຖືກຕັ້ງຄ່າ, ໃຫ້ໃຊ້ມັນ." + +#: ../source/specifications/pylock-toml.rst:829 +msgid "" +"Else if :ref:`pylock-packages-sdist-url` is set, try to use it; tools MAY " +"use :ref:`pylock-packages-index` or some tool-specific mechanism to download " +"the file." +msgstr "ຫາກບໍ່ດັ່ງນັ້ນ ຖ້າ :ref:`pylock-packages-sdist-url` ຖືກຕັ້ງຄ່າ, ໃຫ້ລອງໃຊ້ມັນ..." + +#: ../source/specifications/pylock-toml.rst:833 +msgid "" +"Validate using :ref:`pylock-packages-sdist-size` and :ref:`pylock-packages-" +"sdist-hashes`." +msgstr "" +"ກວດສອບຄວາມຖືກຕ້ອງໂດຍໃຊ້ :ref:`pylock-packages-sdist-size` ແລະ :ref:`pylock-" +"packages-sdist-hashes`." + +#: ../source/specifications/pylock-toml.rst:835 +msgid ":ref:`Build ` the package." +msgstr ":ref:`ບິວດ໌ (Build) ` ແພັກເກັດ." + +#: ../source/specifications/pylock-toml.rst:843 +msgid "April 2025: Initial version, approved via :pep:`751`." +msgstr "ເມສາ 2025: ເວີຊັນເລີ່ມຕົ້ນ, ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`751`." + +#: ../source/specifications/pylock-toml.rst:844 +msgid "" +"March 2026: Clarify file name precedence for archives, sdists, and wheels." +msgstr "" +"ມີນາ 2026: ເຮັດໃຫ້ລຳດັບຄວາມສຳຄັນຂອງຊື່ໄຟລ໌ສຳລັບ archives, sdists, ແລະ wheels ຊັດເຈນຂຶ້ນ." + +#: ../source/specifications/pypirc.rst:6 +msgid "The :file:`.pypirc` file" +msgstr "ໄຟລ໌ :file:`.pypirc`" + +#: ../source/specifications/pypirc.rst:8 +msgid "" +"A :file:`.pypirc` file allows you to define the configuration " +"for :term:`package indexes ` (referred to here as " +"\"repositories\"), so that you don't have to enter the URL, username, or " +"password whenever you upload a package with :ref:`twine` or :ref:`flit`." +msgstr "" +"ໄຟລ໌ :file:`.pypirc` ຊ່ວຍໃຫ້ເຈົ້າກຳນົດການຕັ້ງຄ່າສຳລັບ :term:`package indexes` " +"(ໃນທີ່ນີ້ເອີ້ນວ່າ \"repositories\") ເພື່ອໃຫ້ເຈົ້າບໍ່ຕ້ອງປ້ອນ URL, ຊື່ຜູ້ໃຊ້ ຫຼື ລະຫັດຜ່ານ " +"ທຸກຄັ້ງທີ່ເຈົ້າອັບໂຫຼດແພັກເກັດດ້ວຍ :ref:`twine` ຫຼື :ref:`flit`." + +#: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "ໄຟລ໌ :file:`.pypirc` **ຄວນ** ຖືກເຂົ້າລະຫັດເປັນ UTF-8." + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" +"ເຄື່ອງມືທີ່ອ່ານ ຫຼື ຂຽນໄຟລ໌ :file:`.pypirc` ອາດຈະເຮັດວຽກບໍ່ຖືກຕ້ອງ ຖ້າໃຊ້ການເຂົ້າລະຫັດຕົວອັກສອນອື່ນ." + +#: ../source/specifications/pypirc.rst:18 +msgid "The format (originally defined by the :ref:`distutils` package) is:" +msgstr "ຮູບແບບ (ກຳນົດເບື້ອງຕົ້ນໂດຍແພັກເກັດ :ref:`distutils`) ແມ່ນ:" + +#: ../source/specifications/pypirc.rst:37 +msgid "" +"The ``distutils`` section defines an ``index-servers`` field that lists the " +"name of all sections describing a repository." +msgstr "" +"ສ່ວນ ``distutils`` ກຳນົດຟີວ (field) ``index-servers`` ທີ່ລະບຸຊື່ຂອງ " +"ທຸກພາກສ່ວນທີ່ອະທິບາຍກ່ຽວກັບ repository." + +#: ../source/specifications/pypirc.rst:40 +msgid "Each section describing a repository defines three fields:" +msgstr "ແຕ່ລະພາກສ່ວນທີ່ອະທິບາຍ repository ຈະກຳນົດສາມຟີວ:" + +#: ../source/specifications/pypirc.rst:42 +msgid "``repository``: The URL of the repository." +msgstr "``repository``: URL ຂອງ repository." + +#: ../source/specifications/pypirc.rst:43 +msgid "``username``: The registered username on the repository." +msgstr "``username``: ຊື່ຜູ້ໃຊ້ທີ່ລົງທະບຽນໃນ repository." + +#: ../source/specifications/pypirc.rst:44 +msgid "``password``: The password that will used to authenticate the username." +msgstr "``password``: ລະຫັດຜ່ານທີ່ຈະໃຊ້ເພື່ອຢືນຢັນຕົວຕົນຂອງຊື່ຜູ້ໃຊ້." + +#: ../source/specifications/pypirc.rst:48 +msgid "" +"Be aware that this stores your password in plain text. For better security, " +"consider an alternative like `keyring`_, setting environment variables, or " +"providing the password on the command line." +msgstr "" +"ຄວນລະວັງວ່າສິ່ງນີ້ຈະເກັບລະຫັດຜ່ານຂອງເຈົ້າເປັນຂໍ້ຄວາມທຳມະດາ. ເພື່ອຄວາມປອດໄພ ທີ່ດີກວ່າ, " +"ໃຫ້ພິຈາລະນາໃຊ້ທາງເລືອກອື່ນ ເຊັ່ນ `keyring`_..." + +#: ../source/specifications/pypirc.rst:52 +msgid "" +"Otherwise, set the permissions on :file:`.pypirc` so that only you can view " +"or modify it. For example, on Linux or macOS, run:" +msgstr "" +"ຫາກບໍ່ດັ່ງນັ້ນ, ໃຫ້ຕັ້ງຄ່າການອະນຸຍາດ (permissions) ໃນ :file:`.pypirc` " +"ເພື່ອໃຫ້ເຈົ້າພຽງຜູ້ດຽວທີ່ສາມາດເບິ່ງ ຫຼື ແກ້ໄຂມັນໄດ້. ເຊັ່ນ:" + +#: ../source/specifications/pypirc.rst:62 +msgid "Common configurations" +msgstr "ການຕັ້ງຄ່າທົ່ວໄປ" + +#: ../source/specifications/pypirc.rst:66 +msgid "" +"These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " +"use :file:`.pypirc`, but with different defaults. Please refer to each " +"project's documentation for more details and usage instructions." +msgstr "" +"ຕົວຢ່າງເຫຼົ່ານີ້ໃຊ້ກັບ :ref:`twine`. ໂຄງການອື່ນໆ (ເຊັ່ນ :ref:`flit`) ກໍໃຊ້ :file:`.pypirc` " +"ຄືກັນ ແຕ່ມີຄ່າເລີ່ມຕົ້ນທີ່ຕ່າງກັນ..." + +#: ../source/specifications/pypirc.rst:70 +msgid "" +"Twine's default configuration mimics a :file:`.pypirc` with repository " +"sections for PyPI and TestPyPI:" +msgstr "" +"ການຕັ້ງຄ່າເລີ່ມຕົ້ນຂອງ Twine ຈະຈຳລອງ :file:`.pypirc` ທີ່ມີພາກສ່ວນ repository ສຳລັບ PyPI " +"ແລະ TestPyPI:" + +#: ../source/specifications/pypirc.rst:86 +msgid "" +"Twine will add additional configuration from :file:`$HOME/.pypirc`, the " +"command line, and environment variables to this default configuration." +msgstr "" +"Twine ຈະເພີ່ມການຕັ້ງຄ່າເພີ່ມເຕີມຈາກ :file:`$HOME/.pypirc`, ບັນທັດຄຳສັ່ງ, ແລະ " +"ຕົວປ່ຽນສະພາບແວດລ້ອມ ເຂົ້າໃນການຕັ້ງຄ່າເລີ່ມຕົ້ນນີ້." + +#: ../source/specifications/pypirc.rst:90 +msgid "Using a PyPI token" +msgstr "ການໃຊ້ PyPI token" + +#: ../source/specifications/pypirc.rst:92 +msgid "" +"To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " +"similar to:" +msgstr "" +"ເພື່ອຕັ້ງຄ່າ `API token`_ ຂອງເຈົ້າສຳລັບ PyPI, ເຈົ້າສາມາດສ້າງ :file:`$HOME/.pypirc` " +"ທີ່ຄ້າຍຄືກັບ:" + +#: ../source/specifications/pypirc.rst:101 +msgid "" +"For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " +"the API token from your TestPyPI account." +msgstr "" +"ສຳລັບ :ref:`TestPyPI`, ໃຫ້ເພີ່ມພາກສ່ວນ ``[testpypi]`` ໂດຍໃຊ້ API token ຈາກບັນຊີ " +"TestPyPI ຂອງເຈົ້າ." + +#: ../source/specifications/pypirc.rst:107 +msgid "Using another package index" +msgstr "ການໃຊ້ package index ອື່ນ" + +#: ../source/specifications/pypirc.rst:109 +msgid "" +"To configure an additional repository, you'll need to redefine the ``index-" +"servers`` field to include the repository name. Here is a complete example " +"of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" +msgstr "" +"ເພື່ອຕັ້ງຄ່າ repository ເພີ່ມເຕີມ, ເຈົ້າຈະຕ້ອງກຳນົດຟີວ ``index-servers`` ໃໝ່ເພື່ອລວມເອົາຊື່ " +"repository ນັ້ນນຳ. ນີ້ແມ່ນຕົວຢ່າງ:" + +#: ../source/specifications/pypirc.rst:136 +msgid "" +"Instead of using the ``password`` field, consider saving your API tokens and " +"passwords securely using `keyring`_ (which is installed by Twine):" +msgstr "" +"ແທັນທີ່ຈະໃຊ້ຟີວ ``password``, ໃຫ້ພິຈາລະນາການບັນທຶກ API tokens ແລະ " +"ລະຫັດຜ່ານຂອງເຈົ້າຢ່າງປອດໄພໂດຍໃຊ້ `keyring`_:" + +#: ../source/specifications/pyproject-toml.rst:6 +msgid "``pyproject.toml`` specification" +msgstr "ຂໍ້ກຳນົດຂອງ ``pyproject.toml``" + +#: ../source/specifications/pyproject-toml.rst:10 +msgid "" +"This is a **technical, formal specification**. For a gentle, user-friendly " +"guide to ``pyproject.toml``, see :ref:`writing-pyproject-toml`." +msgstr "" +"ນີ້ແມ່ນ **ຂໍ້ກຳນົດທາງດ້ານເຕັກນິກຢ່າງເປັນທາງການ**. ສຳລັບຄຳແນະນຳການໃຊ້ ``pyproject.toml`` " +"ທີ່ເຂົ້າໃຈງ່າຍ, ໃຫ້ເບິ່ງ :ref:`writing-pyproject-toml`." + +#: ../source/specifications/pyproject-toml.rst:14 +msgid "" +"The ``pyproject.toml`` file acts as a configuration file for packaging-" +"related tools (as well as other tools)." +msgstr "" +"ໄຟລ໌ ``pyproject.toml`` ເຮັດໜ້າທີ່ເປັນໄຟລ໌ຕັ້ງຄ່າສຳລັບເຄື່ອງມືທີ່ກ່ຽວຂ້ອງ ກັບການເຮັດແພັກເກັດ " +"(ລວມເຖິງເຄື່ອງມືອື່ນໆ)." + +#: ../source/specifications/pyproject-toml.rst:17 +msgid "" +"The ``pyproject.toml`` file is written in `TOML `_. Three " +"tables are currently specified, namely :ref:`[build-system] `, :ref:`[project] ` and :ref:`[tool] " +"`. Other tables are reserved for future use (tool-" +"specific configuration should use the ``[tool]`` table)." +msgstr "" +"ໄຟລ໌ ``pyproject.toml`` ຖືກຂຽນໃນຮູບແບບ TOML. ໃນປັດຈຸບັນມີສາມຕາຕະລາງ ທີ່ຖືກກຳນົດໄວ້ " +"ຄື: :ref:`[build-system]`, :ref:`[project]` ແລະ :ref:`[tool]`..." + +#: ../source/specifications/pyproject-toml.rst:27 +msgid "Declaring build system dependencies: the ``[build-system]`` table" +msgstr "ການປະກາດ dependency ຂອງລະບົບບິວດ໌: ຕາຕະລາງ ``[build-system]``" + +#: ../source/specifications/pyproject-toml.rst:29 +msgid "" +"The ``[build-system]`` table declares any Python level dependencies that " +"must be installed in order to run the project's build system successfully." +msgstr "" +"ຕາຕະລາງ ``[build-system]`` ໃຊ້ປະກາດ dependency ລະດັບ Python ໃດໆ ທີ່ ຕ້ອງໄດ້ຕິດຕັ້ງ " +"ເພື່ອໃຫ້ສາມາດດຳເນີນການລະບົບບິວດ໌ຂອງໂຄງການໄດ້ຢ່າງສຳເລັດຜົນ." + +#: ../source/specifications/pyproject-toml.rst:35 +msgid "" +"The ``[build-system]`` table is used to store build-related data. Initially, " +"only one key of the table is valid and is mandatory for the table: " +"``requires``. This key must have a value of a list of strings representing " +"dependencies required to execute the build system. The strings in this list " +"follow the :ref:`version specifier specification `." +msgstr "" +"ຕາຕະລາງ ``[build-system]`` ໃຊ້ເພື່ອເກັບຂໍ້ມູນທີ່ກ່ຽວຂ້ອງກັບການບິວດ໌. ໃນເບື້ອງຕົ້ນ, ມີພຽງ key " +"ດຽວທີ່ຈຳເປັນຕ້ອງມີ ຄື: ``requires``..." + +#: ../source/specifications/pyproject-toml.rst:42 +msgid "" +"An example ``[build-system]`` table for a project built with ``setuptools`` " +"is:" +msgstr "ຕົວຢ່າງຕາຕະລາງ ``[build-system]`` ສຳລັບໂຄງການທີ່ບິວດ໌ດ້ວຍ ``setuptools`` ແມ່ນ:" + +#: ../source/specifications/pyproject-toml.rst:51 +msgid "" +"Build tools are expected to use the example configuration file above as " +"their default semantics when a ``pyproject.toml`` file is not present." +msgstr "" +"ເຄື່ອງມືບິວດ໌ຖືກຄາດຫວັງວ່າຈະໃຊ້ຕົວຢ່າງການຕັ້ງຄ່າຂ້າງເທິງນັ້ນເປັນຄ່າເລີ່ມຕົ້ນ ເມື່ອບໍ່ມີໄຟລ໌ " +"``pyproject.toml``." + +#: ../source/specifications/pyproject-toml.rst:54 +msgid "" +"Tools should not require the existence of the ``[build-system]`` table. A " +"``pyproject.toml`` file may be used to store configuration details other " +"than build-related data and thus lack a ``[build-system]`` table " +"legitimately. If the file exists but is lacking the ``[build-system]`` table " +"then the default values as specified above should be used. If the table is " +"specified but is missing required fields then the tool should consider it an " +"error." +msgstr "" +"ເຄື່ອງມືບໍ່ຄວນບັງຄັບວ່າຕ້ອງມີຕາຕະລາງ ``[build-system]``. ຫາກມີໄຟລ໌ແຕ່ບໍ່ມີ ຕາຕະລາງດັ່ງກ່າວ " +"ໃຫ້ໃຊ້ຄ່າເລີ່ມຕົ້ນຕາມທີ່ລະບຸໄວ້ຂ້າງເທິງ." + +#: ../source/specifications/pyproject-toml.rst:62 +msgid "" +"Tools may choose to present an error to the user if the file exists, " +"``[build-system]`` table is missing, and there is no clear indication that " +"the project should be built (e.g., no setup.py/setup.cfg or other build " +"configuration files, and no ``[project]`` table)." +msgstr "" +"ເຄື່ອງມືອາດຈະສະແດງຂໍ້ຜິດພາດຫາກບໍ່ມີຕາຕະລາງ ``[build-system]`` ແລະ ບໍ່ມີ " +"ສັນຍານທີ່ຊັດເຈນວ່າໂຄງການນັ້ນຄວນຖືກບິວດ໌..." + +#: ../source/specifications/pyproject-toml.rst:67 +msgid "" +"To provide a type-specific representation of the resulting data from the " +"TOML file for illustrative purposes only, the following `JSON Schema " +"`_ would match the data format:" +msgstr "" +"ເພື່ອສະແດງໃຫ້ເຫັນຮູບແບບຂໍ້ມູນທີ່ໄດ້ຈາກໄຟລ໌ TOML ໂດຍໃຊ້ JSON Schema (ເພື່ອເປັນຕົວຢ່າງເທົ່ານັ້ນ), " +"ຮູບແບບຂໍ້ມູນຈະກົງກັບ:" + +#: ../source/specifications/pyproject-toml.rst:105 +msgid "Declaring project metadata: the ``[project]`` table" +msgstr "ການປະກາດ metadata ຂອງໂຄງການ: ຕາຕະລາງ ``[project]``" + +#: ../source/specifications/pyproject-toml.rst:107 +msgid "" +"The ``[project]`` table specifies the project's :ref:`core metadata `." +msgstr "ຕາຕະລາງ ``[project]`` ກຳນົດ :ref:`core metadata` ຂອງໂຄງການ." + +#: ../source/specifications/pyproject-toml.rst:109 +msgid "" +"There are two kinds of metadata: *static* and *dynamic*. Static metadata is " +"specified in the ``pyproject.toml`` file directly and cannot be specified or " +"changed by a tool (this includes data *referred* to by the metadata, e.g. " +"the contents of files referenced by the metadata). Dynamic metadata is " +"listed via the ``dynamic`` key (defined later in this specification) and " +"represents metadata that a tool will later provide." +msgstr "" +"ເມຕາດາຕາ ມີຢູ່ສອງປະເພດຄື: *static* (ຄົງທີ່) ແລະ *dynamic* (ປ່ຽນແປງໄດ້). static " +"metadata ຖືກລະບຸໄວ້ໃນໄຟລ໌ ``pyproject.toml`` ໂດຍກົງ ແລະ ບໍ່ສາມາດຖືກລະບຸ ຫຼື " +"ປ່ຽນແປງໂດຍເຄື່ອງມືໄດ້ (ເຊິ່ງລວມເຖິງຂໍ້ມູນທີ່ *ຖືກອ້າງອີງ* ໂດຍເມຕາດາຕາ, ຕົວຢ່າງ: " +"ເນື້ອໃນຂອງໄຟລ໌ທີ່ຖືກອ້າງອີງໂດຍເມຕາດາຕາ). dynamic metadata ຖືກລະບຸຜ່ານຄີ ``dynamic`` " +"(ເຊິ່ງກຳນົດໄວ້ພາຍຫຼັງໃນຂໍ້ກຳນົດສະເພານີ້) ແລະ ແທນຂໍ້ມູນເມຕາດາຕາທີ່ເຄື່ອງມືຈະໃຫ້ມາໃນພາຍຫຼັງ." + +#: ../source/specifications/pyproject-toml.rst:117 +msgid "" +"A key whose value is a list or a table of arbitrary entries MAY be specified " +"statically *and* listed in ``dynamic`` at the same time. In that case the " +"entries given statically are fixed and a build back-end MAY only *append* " +"further entries to them; the back-end MUST NOT remove, reorder, or modify " +"any statically-specified entries. See the :ref:`dynamic ` key for details." +msgstr "" +"Key ບາງປະເພດ **ອາດຈະ** ຖືກກຳນົດທັງແບບ static ແລະ ລະບຸໄວ້ໃນ ``dynamic`` ພ້ອມກັນ. " +"ໃນກໍລະນີນັ້ນ build back-end ຈະເຮັດໄດ້ພຽງແຕ່ *ເພີ່ມຕໍ່ທ້າຍ* (append) ຂໍ້ມູນເທົ່ານັ້ນ, ຫ້າມລຶບ ຫຼື " +"ແກ້ໄຂຂໍ້ມູນ static ເດີມ." + +#: ../source/specifications/pyproject-toml.rst:124 +msgid "" +"The lack of a ``[project]`` table implicitly means the :term:`build backend " +"` will dynamically provide all keys." +msgstr "" +"ການທີ່ບໍ່ມີຕາຕະລາງ ``[project]`` ໝາຍເຖິງ build backend ຈະສະໜອງ keys ທັງໝົດແບບ " +"dynamic ເອງ." + +#: ../source/specifications/pyproject-toml.rst:127 +msgid "The only keys required to be statically defined are:" +msgstr "ຄີດຽວທີ່ຈຳເປັນຕ້ອງຖືກກຳນົດແບບ static ຄື:" + +#: ../source/specifications/pyproject-toml.rst:131 +msgid "" +"The keys which are required but may be specified *either* statically or " +"listed as dynamic are:" +msgstr "ຄີທີ່ຈຳເປັນແຕ່ອາດຈະຖືກລະບຸ *ບໍ່ວ່າຈະ* ເປັນແບບ static ຫຼື ລະບຸເປັນແບບ dynamic ຄື:" + +#: ../source/specifications/pyproject-toml.rst:136 +msgid "" +"All other keys are considered optional and may be specified statically, " +"listed as dynamic, or left unspecified." +msgstr "" +"ຄີອື່ນໆທັງໝົດຖືວ່າເປັນທາງເລືອກ ແລະ ອາດຈະຖືກລະບຸແບບ static, ລະບຸເປັນແບບ dynamic ຫຼື " +"ປະໄວ້ໂດຍບໍ່ຕ້ອງລະບຸ." + +#: ../source/specifications/pyproject-toml.rst:139 +msgid "The complete list of keys allowed in the ``[project]`` table are:" +msgstr "ລາຍການ keys ທັງໝົດທີ່ອະນຸຍາດໃຫ້ມີໃນຕາຕະລາງ ``[project]`` ແມ່ນ:" + +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:650 +msgid "``authors``" +msgstr "``authors`` (ຜູ້ຂຽນ)" + +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:459 +#: ../source/specifications/pyproject-toml.rst:652 +msgid "``dependencies``" +msgstr "``dependencies``" + +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:609 +msgid "``dynamic``" +msgstr "``dynamic``" + +#: ../source/specifications/pyproject-toml.rst:146 +#: ../source/specifications/pyproject-toml.rst:653 +msgid "``entry-points``" +msgstr "``entry-points``" + +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:654 +msgid "``gui-scripts``" +msgstr "``gui-scripts``" + +#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:655 +msgid "``import-names``" +msgstr "``import-names``" + +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:568 +#: ../source/specifications/pyproject-toml.rst:656 +msgid "``import-namespaces``" +msgstr "``import-namespaces``" + +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:659 +msgid "``maintainers``" +msgstr "``maintainers`` (ຜູ້ເບິ່ງແຍງ)" + +#: ../source/specifications/pyproject-toml.rst:155 +#: ../source/specifications/pyproject-toml.rst:483 +#: ../source/specifications/pyproject-toml.rst:660 +msgid "``optional-dependencies``" +msgstr "``optional-dependencies``" + +#: ../source/specifications/pyproject-toml.rst:168 +#: ../source/specifications/pyproject-toml.rst:183 +#: ../source/specifications/pyproject-toml.rst:198 +#: ../source/specifications/pyproject-toml.rst:252 +#: ../source/specifications/pyproject-toml.rst:264 +msgid "TOML_ type: string" +msgstr "ປະເພດ TOML_: string" + +#: ../source/specifications/pyproject-toml.rst:169 +msgid "" +"Corresponding :ref:`core metadata ` field: :ref:`Name `" +msgstr "ຟີວ :ref:`core metadata` ທີ່ກົງກັນ: :ref:`Name`" + +#: ../source/specifications/pyproject-toml.rst:172 +msgid "The name of the project." +msgstr "ຊື່ຂອງໂຄງການ." + +#: ../source/specifications/pyproject-toml.rst:174 +msgid "" +"Tools SHOULD :ref:`normalize ` this name, as soon as it " +"is read for internal consistency." +msgstr "" +"ເຄື່ອງມື **ຄວນ** :ref:`ປັບຊື່ໃຫ້ເປັນມາດຕະຖານ ` " +"ທັນທີທີ່ອ່ານເພື່ອຄວາມສອດຄ່ອງພາຍໃນ." + +#: ../source/specifications/pyproject-toml.rst:184 +msgid "" +"Corresponding :ref:`core metadata ` field: :ref:`Version " +"`" +msgstr "ຟີວ :ref:`core metadata` ທີ່ກົງກັນ: :ref:`Version`" + +#: ../source/specifications/pyproject-toml.rst:187 +msgid "" +"The version of the project, as defined in the :ref:`Version specifier " +"specification `." +msgstr "ເວີຊັນຂອງໂຄງການ, ຕາມທີ່ກຳນົດໄວ້ໃນ :ref:`Version specifier specification`." + +#: ../source/specifications/pyproject-toml.rst:190 +msgid "Users SHOULD prefer to specify already-normalized versions." +msgstr "ຜູ້ໃຊ້ **ຄວນ** ເລືອກທີ່ຈະລະບຸເວີຊັນທີ່ປັບໃຫ້ເປັນມາດຕະຖານແລ້ວ." + +#: ../source/specifications/pyproject-toml.rst:199 +msgid "" +"Corresponding :ref:`core metadata ` field: :ref:`Summary " +"`" +msgstr "ຟີວ :ref:`core metadata` ທີ່ກົງກັນ: :ref:`Summary`" + +#: ../source/specifications/pyproject-toml.rst:202 +msgid "" +"The summary description of the project in one line. Tools MAY error if this " +"includes multiple lines." +msgstr "ຄຳອະທິບາຍຫຍໍ້ຂອງໂຄງການໃນແຖວດຽວ. ເຄື່ອງມື **ອາດຈະ** ສະແດງຂໍ້ຜິດພາດ ຖ້າຫາກມີຫຼາຍແຖວ." + +#: ../source/specifications/pyproject-toml.rst:211 +msgid "TOML_ type: string or table" +msgstr "ປະເພດ TOML_: string ຫຼື ຕາຕະລາງ" + +#: ../source/specifications/pyproject-toml.rst:212 +msgid "" +"Corresponding :ref:`core metadata ` field: :ref:`Description " +"` and :ref:`Description-Content-Type `" +msgstr "" +"ຟີວ :ref:`core metadata` ທີ່ກົງກັນ: :ref:`Description` ແລະ :ref:`Description-" +"Content-Type`" + +#: ../source/specifications/pyproject-toml.rst:216 +msgid "The full description of the project (i.e. the README)." +msgstr "ຄຳອະທິບາຍແບບເຕັມຂອງໂຄງການ (ເຊັ່ນ README)." + +#: ../source/specifications/pyproject-toml.rst:218 +msgid "" +"The key accepts either a string or a table. If it is a string then it is a " +"path relative to ``pyproject.toml`` to a text file containing the full " +"description. Tools MUST assume the file's encoding is UTF-8. If the file " +"path ends in a case-insensitive ``.md`` suffix, then tools MUST assume the " +"content-type is ``text/markdown``. If the file path ends in a case-" +"insensitive ``.rst``, then tools MUST assume the content-type is ``text/x-" +"rst``. If a tool recognizes more extensions than this specification, it MAY " +"infer the content-type for the user without specifying this key as " +"``dynamic``. For all unrecognized suffixes when a content-type is not " +"provided, tools MUST raise an error." +msgstr "" +"ຄີນີ້ຮັບເອົາທັງ string ຫຼື ຕາຕະລາງ. ຫາກມັນເປັນ string ມັນຈະເປັນເສັ້ນທາງທີ່ທຽບກັບ " +"``pyproject.toml`` ໄປຫາໄຟລ໌ຂໍ້ຄວາມທີ່ບັນຈຸຄຳອະທິບາຍທັງໝົດ. ເຄື່ອງມື ຕ້ອງ (MUST) " +"ສົມມຸດວ່າການເຂົ້າລະຫັດຂອງໄຟລ໌ແມ່ນ UTF-8. ຫາກເສັ້ນທາງໄຟລ໌ລົງທ້າຍດ້ວຍນາມສະກຸນ ``.md`` " +"ທີ່ບໍ່ແຍກຕົວອັກສອນໃຫຍ່-ນ້ອຍ, ເຄື່ອງມື ຕ້ອງ (MUST) ສົມມຸດວ່າປະເພດເນື້ອໃນແມ່ນ ``text/markdown``. " +"ຫາກເສັ້ນທາງໄຟລ໌ລົງທ້າຍດ້ວຍ ``.rst`` ທີ່ບໍ່ແຍກຕົວອັກສອນໃຫຍ່-ນ້ອຍ, ເຄື່ອງມື ຕ້ອງ (MUST) " +"ສົມມຸດວ່າປະເພດເນື້ອໃນແມ່ນ ``text/x-rst``. " +"ຫາກເຄື່ອງມືສາມາດຮູ້ຈັກນາມສະກຸນອື່ນໆຫຼາຍກວ່າຂໍ້ກຳນົດສະເພາະນີ້, ມັນ ອາດຈະ (MAY) " +"ອະນຸມານປະເພດເນື້ອໃນໃຫ້ກັບຜູ້ໃຊ້ໂດຍບໍ່ຕ້ອງລະບຸຄີນີ້ເປັນ ``dynamic``. ສຳລັບນາມສະກຸນທັງໝົດທີ່ບໍ່ຮູ້ຈັກ " +"ເມື່ອບໍ່ມີການລະບຸປະເພດເນື້ອໃນມາໃຫ້, ເຄື່ອງມື ຕ້ອງ (MUST) ສະແດງຂໍ້ຜິດພາດ." + +#: ../source/specifications/pyproject-toml.rst:229 +msgid "" +"The ``readme`` key may also take a table. The ``file`` key has a string " +"value representing a path relative to ``pyproject.toml`` to a file " +"containing the full description. The ``text`` key has a string value which " +"is the full description. These keys are mutually-exclusive, thus tools MUST " +"raise an error if the metadata specifies both keys." +msgstr "" +"ຄີ ``readme`` ອາດຈະຮັບຄ່າເປັນຕາຕະລາງໄດ້ເຊັ່ນກັນ. ຄີ ``file`` " +"ມີຄ່າເປັນສະຕຣິງທີ່ສະແດງເຖິງເສັ້ນທາງທີ່ທຽບກັບ ``pyproject.toml`` ໄປຫາໄຟລ໌ທີ່ມີຄຳອະທິບາຍຄົບຖ້ວນ. " +"ຄີ ``text`` ມີຄ່າເປັນສະຕຣິງເຊິ່ງແມ່ນຄຳອະທິບາຍຄົບຖ້ວນ. ຄີເຫຼົ່ານີ້ແມ່ນບໍ່ສາມາດໃຊ້ຮ່ວມກັນໄດ້, ດັ່ງນັ້ນ " +"ເຄື່ອງມືຕ່າງໆ ຕ້ອງແຈ້ງຂໍ້ຜິດພາດ ຖ້າຂໍ້ມູນເມຕາ (metadata) ລະບຸທັງສອງຄີ." + +#: ../source/specifications/pyproject-toml.rst:236 +msgid "" +"A table specified in the ``readme`` key also has a ``content-type`` key " +"which takes a string specifying the content-type of the full description. A " +"tool MUST raise an error if the metadata does not specify this key in the " +"table. If the metadata does not specify the ``charset`` parameter, then it " +"is assumed to be UTF-8. Tools MAY support other encodings if they choose to. " +"Tools MAY support alternative content-types which they can transform to a " +"content-type as supported by the :ref:`core metadata `. " +"Otherwise tools MUST raise an error for unsupported content-types." +msgstr "" +"ຕາຕະລາງໃນ key ``readme`` ຍັງມີ key ``content-type`` ເພື່ອກຳນົດປະເພດ ຂອງເນື້ອຫາ..." + +#: ../source/specifications/pyproject-toml.rst:253 +msgid "" +"Corresponding :ref:`core metadata ` field: :ref:`Requires-" +"Python `" +msgstr "ຟີວ :ref:`core metadata` ທີ່ກົງກັນ: :ref:`Requires-Python`" + +#: ../source/specifications/pyproject-toml.rst:256 +msgid "The Python version requirements of the project." +msgstr "ຄວາມຕ້ອງການເວີຊັນ Python ຂອງໂຄງການ." + +#: ../source/specifications/pyproject-toml.rst:265 +msgid "" +"Corresponding :ref:`core metadata ` field: :ref:`License-" +"Expression `" +msgstr "ຟີວ :ref:`core metadata` ທີ່ກົງກັນ: :ref:`License-Expression`" + +#: ../source/specifications/pyproject-toml.rst:268 +msgid "" +"Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " +"Tools SHOULD validate and perform case normalization of the expression." +msgstr "ຂໍ້ຄວາມທີ່ເປັນ SPDX :term:`license expression` ທີ່ຖືກຕ້ອງ..." + +#: ../source/specifications/pyproject-toml.rst:273 +msgid "" +"This key should **only** be specified if the license expression for any and " +"all distribution files created by a build backend using " +"the :file:`pyproject.toml` is the same as the one specified. If the license " +"expression will differ then it should either be specified as dynamic or not " +"set at all." +msgstr "" +"ຄີນີ້ຄວນຖືກລະບຸ **ພຽງແຕ່** ໃນກໍລະນີທີ່ການສະແດງອອກຂອງໃບອະນຸຍາດ (license expression) " +"ສຳລັບໄຟລ໌ການແຈກຢາຍໃດໆ ແລະ ທັງໝົດທີ່ຖືກສ້າງຂຶ້ນໂດຍ build backend " +"ໂດຍການໃຊ້ :file:`pyproject.toml` ແມ່ນຄືກັນກັບອັນທີ່ໄດ້ລະບຸໄວ້. " +"ຖ້າການສະແດງອອກຂອງໃບອະນຸຍາດແຕກຕ່າງກັນ, ມັນຄວນຈະຖືກລະບຸເປັນ dynamic ຫຼື ບໍ່ຕ້ອງຕັ້ງຄ່າເລີຍ." + +#: ../source/specifications/pyproject-toml.rst:280 +msgid "Legacy specification" +msgstr "ຂໍ້ກຳນົດແບບເກົ່າ (Legacy)" + +#: ../source/specifications/pyproject-toml.rst:282 +msgid "TOML_ type: table" +msgstr "ປະເພດ TOML_: ຕາຕະລາງ" + +#: ../source/specifications/pyproject-toml.rst:283 +msgid "" +"Corresponding :ref:`core metadata ` field: :ref:`License " +"`" +msgstr "ຟີວ :ref:`core metadata` ທີ່ກົງກັນ: :ref:`License`" + +#: ../source/specifications/pyproject-toml.rst:286 +msgid "" +"The table may have one of two keys. The ``file`` key has a string value that " +"is a file path relative to :file:`pyproject.toml` to the file which contains " +"the license for the project. Tools MUST assume the file's encoding is UTF-8. " +"The ``text`` key has a string value which is the license of the project. " +"These keys are mutually exclusive, so a tool MUST raise an error if the " +"metadata specifies both keys." +msgstr "ຕາຕະລາງອາດຈະມີໜຶ່ງໃນສອງ keys: ``file`` ຫຼື ``text`` ເຊິ່ງຫ້າມໃຊ້ພ້ອມກັນ..." + +#: ../source/specifications/pyproject-toml.rst:293 +msgid "" +"The table subkeys were deprecated by :pep:`639` in favor of the string value." +msgstr "ຄີຍ່ອຍຂອງຕາຕະລາງໄດ້ຖືກຍົກເລີກການນຳໃຊ້ໂດຍ :pep:`639` ເພື່ອປ່ຽນໄປໃຊ້ຄ່າແບບສະຕຣິງແທນ." + +#: ../source/specifications/pyproject-toml.rst:300 +#: ../source/specifications/pyproject-toml.rst:383 +#: ../source/specifications/pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:519 +#: ../source/specifications/pyproject-toml.rst:570 +msgid "TOML_ type: array of strings" +msgstr "ປະເພດ TOML_: ອາເຣຂອງ string" + +#: ../source/specifications/pyproject-toml.rst:301 +msgid "" +"Corresponding :ref:`core metadata ` field: :ref:`License-File " +"`" +msgstr "ຟີວ :ref:`core metadata` ທີ່ກົງກັນ: :ref:`License-File`" + +#: ../source/specifications/pyproject-toml.rst:304 +msgid "" +"An array specifying paths in the project source tree relative to the project " +"root directory (i.e. directory containing :file:`pyproject.toml` or legacy " +"project configuration files, e.g. :file:`setup.py`, :file:`setup.cfg`, etc.) " +"to file(s) containing licenses and other legal notices to be distributed " +"with the package." +msgstr "" +"ອາເຣທີ່ລະບຸເສັ້ນທາງໄປຫາໄຟລ໌ license ແລະ ແຈ້ງການທາງກົດໝາຍອື່ນໆ ທີ່ຈະແຈກຢາຍ ໄປພ້ອມກັບແພັກເກັດ." + +#: ../source/specifications/pyproject-toml.rst:310 +msgid "" +"The strings MUST contain valid glob patterns, as specified in :doc:`/" +"specifications/glob-patterns`." +msgstr "" +"ສະຕຣິງຕ່າງໆ ຕ້ອງມີຮູບແບບ glob ທີ່ຖືກຕ້ອງ, ຕາມທີ່ໄດ້ລະບຸໄວ້ໃນ :doc:`/specifications/glob-" +"patterns`." + +#: ../source/specifications/pyproject-toml.rst:313 +msgid "" +"Patterns are relative to the directory containing :file:`pyproject.toml`," +msgstr "ຮູບແບບ (Patterns) ແມ່ນທຽບກັບໄດເຣັກທໍຣີທີ່ບັນຈຸ :file:`pyproject.toml`," + +#: ../source/specifications/pyproject-toml.rst:315 +msgid "" +"Tools MUST assume that license file content is valid UTF-8 encoded text, and " +"SHOULD validate this and raise an error if it is not." +msgstr "ເຄື່ອງມື **ຕ້ອງ** ສົມມຸດວ່າເນື້ອໃນໄຟລ໌ license ແມ່ນຂໍ້ຄວາມທີ່ເຂົ້າລະຫັດ UTF-8..." + +#: ../source/specifications/pyproject-toml.rst:318 +msgid "Build tools:" +msgstr "ເຄື່ອງມືບິວດ໌:" + +#: ../source/specifications/pyproject-toml.rst:320 +msgid "" +"MUST include all files matched by a listed pattern in all distribution " +"archives." +msgstr "**ຕ້ອງ** ລວມເອົາໄຟລ໌ທັງໝົດທີ່ກົງກັບຮູບແບບທີ່ລະບຸໄວ້ໃນ archive ຂອງການແຈກຢາຍ." + +#: ../source/specifications/pyproject-toml.rst:322 +msgid "" +"MUST list each matched file path under a License-File field in the Core " +"Metadata." +msgstr "**ຕ້ອງ** ລະບຸແຕ່ລະເສັ້ນທາງໄຟລ໌ທີ່ກົງກັນພາຍໃຕ້ຟີວ License-File ໃນ Core Metadata." + +#: ../source/specifications/pyproject-toml.rst:325 +msgid "" +"If the ``license-files`` key is present and is set to a value of an empty " +"array, then tools MUST NOT include any license files and MUST NOT raise an " +"error. If the ``license-files`` key is not defined, tools can decide how to " +"handle license files. For example they can choose not to include any files " +"or use their own logic to discover the appropriate files in the distribution." +msgstr "" +"ຖ້າ key ``license-files`` ຖືກຕັ້ງເປັນອາເຣຫວ່າງເປົ່າ, ເຄື່ອງມື **ຕ້ອງບໍ່** ລວມເອົາໄຟລ໌ " +"license ໃດໆ..." + +#: ../source/specifications/pyproject-toml.rst:339 +msgid "TOML_ type: Array of inline tables with string keys and values" +msgstr "ປະເພດ TOML_: ອາເຣຂອງ inline tables ທີ່ມີ key ແລະ value ເປັນ string" + +#: ../source/specifications/pyproject-toml.rst:340 +msgid "" +"Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `, :ref:`Maintainer `, and :ref:`Maintainer-" +"email `" +msgstr "" +"ຟີວ :ref:`core metadata` ທີ່ກົງກັນ: :ref:`Author`, :ref:`Author-" +"email`, :ref:`Maintainer`, ແລະ :ref:`Maintainer-email`" + +#: ../source/specifications/pyproject-toml.rst:346 +msgid "" +"The people or organizations considered to be the \"authors\" of the project. " +"The exact meaning is open to interpretation — it may list the original or " +"primary authors, current maintainers, or owners of the package." +msgstr "ບຸກຄົນ ຫຼື ອົງກອນທີ່ຖືກຖືວ່າເປັນ \"ຜູ້ຂຽນ\" (authors) ຂອງໂຄງການ..." + +#: ../source/specifications/pyproject-toml.rst:351 +msgid "" +"The \"maintainers\" key is similar to \"authors\" in that its exact meaning " +"is open to interpretation." +msgstr "" +"ຄີ \"maintainers\" ແມ່ນຄ້າຍຄືກັບ \"authors\" " +"ໃນແງ່ທີ່ຄວາມໝາຍທີ່ແນ່ນອນຂອງມັນແມ່ນເປີດກວ້າງໃຫ້ຕີຄວາມໝາຍໄດ້." + +#: ../source/specifications/pyproject-toml.rst:354 +msgid "" +"These keys accept an array of tables with 2 keys: ``name`` and ``email``. " +"Both values must be strings. The ``name`` value MUST be a valid email name " +"(i.e. whatever can be put as a name, before an email, in :rfc:`822`) and not " +"contain commas. The ``email`` value MUST be a valid email address. Both keys " +"are optional, but at least one of the keys must be specified in the table." +msgstr "" +"ຄີເຫຼົ່ານີ້ຮັບເອົາອາເຣ (array) ຂອງຕາຕະລາງທີ່ມີ 2 ຄີ: ``name`` ແລະ ``email``. " +"ທັງສອງຄ່າຕ້ອງເປັນສະຕຣິງ. ຄ່າ ``name`` ຕ້ອງເປັນຊື່ໃນອີເມລທີ່ຖືກຕ້ອງ (ໝາຍເຖິງ " +"ອັນໃດກໍຕາມທີ່ສາມາດໃສ່ເປັນຊື່ໄດ້ ກ່ອນໜ້າອີເມລ ໃນ :rfc:`822`) ແລະ ຕ້ອງບໍ່ມີເຄື່ອງໝາຍຈຸດ. ຄ່າ " +"``email`` ຕ້ອງເປັນທີ່ຢູ່ອີເມລທີ່ຖືກຕ້ອງ. ທັງສອງຄີແມ່ນທາງເລືອກ, " +"ແຕ່ຢ່າງໜ້ອຍຕ້ອງມີຄີໃດໜຶ່ງຖືກລະບຸໄວ້ໃນຕາຕະລາງ." + +#: ../source/specifications/pyproject-toml.rst:361 +msgid "" +"Using the data to fill in :ref:`core metadata ` is as follows:" +msgstr "ການໃຊ້ຂໍ້ມູນເພື່ອຕື່ມໃນ :ref:`core metadata` ມີດັ່ງນີ້:" + +#: ../source/specifications/pyproject-toml.rst:364 +msgid "" +"If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." +msgstr "ຫາກລະບຸພຽງແຕ່ ``name``, ຄ່ານັ້ນຈະຖືກໃສ່ໃນ :ref:`Author` ຫຼື :ref:`Maintainer`." + +#: ../source/specifications/pyproject-toml.rst:367 +msgid "" +"If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." +msgstr "" +"ຫາກລະບຸພຽງແຕ່ ``email``, ຄ່ານັ້ນຈະຖືກໃສ່ໃນ :ref:`Author-email` ຫຼື :ref:`Maintainer-" +"email`." + +#: ../source/specifications/pyproject-toml.rst:371 +msgid "" +"If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" +"email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." +msgstr "" +"ຫາກລະບຸທັງ ``email`` ແລະ ``name``, ຄ່ານັ້ນຈະຖືກໃສ່ໃນຮູບແບບ ``{name} <{email}>``." + +#: ../source/specifications/pyproject-toml.rst:375 +msgid "Multiple values should be separated by commas." +msgstr "ຫາກມີຫຼາຍຄ່າ ຄວນແຍກດ້ວຍເຄື່ອງໝາຍຈຸດ." + +#: ../source/specifications/pyproject-toml.rst:384 +msgid "" +"Corresponding :ref:`core metadata ` field: :ref:`Keywords " +"`" +msgstr "ຟີວ :ref:`core metadata` ທີ່ກົງກັນ: :ref:`Keywords`" + +#: ../source/specifications/pyproject-toml.rst:387 +msgid "The keywords for the project." +msgstr "ຄຳສຳຄັນ (keywords) ສຳລັບໂຄງການ." + +#: ../source/specifications/pyproject-toml.rst:396 +msgid "" +"Corresponding :ref:`core metadata ` field: :ref:`Classifier " +"`" +msgstr "ຟີວ :ref:`core metadata` ທີ່ກົງກັນ: :ref:`Classifier`" + +#: ../source/specifications/pyproject-toml.rst:399 +msgid "Trove classifiers which apply to the project." +msgstr "Trove classifiers ທີ່ໃຊ້ກັບໂຄງການ." + +#: ../source/specifications/pyproject-toml.rst:401 +msgid "" +"The use of ``License ::`` classifiers is deprecated and tools MAY issue a " +"warning informing users about that. Build tools MAY raise an error if both " +"the ``license`` string value (translating to ``License-Expression`` metadata " +"field) and the ``License ::`` classifiers are used." +msgstr "ການໃຊ້ ``License ::`` classifiers ຖືກຍົກເລີກການນຳໃຊ້ແລ້ວ..." + +#: ../source/specifications/pyproject-toml.rst:413 +msgid "TOML_ type: table with keys and values of strings" +msgstr "ປະເພດ TOML_: ຕາຕະລາງທີ່ມີ key ແລະ value ເປັນ string" + +#: ../source/specifications/pyproject-toml.rst:414 +msgid "" +"Corresponding :ref:`core metadata ` field: :ref:`Project-URL " +"`" +msgstr "ຟີວ :ref:`core metadata` ທີ່ກົງກັນ: :ref:`Project-URL`" + +#: ../source/specifications/pyproject-toml.rst:417 +msgid "" +"A table of URLs where the key is the URL label and the value is the URL " +"itself. See :ref:`well-known-project-urls` for normalization rules and well-" +"known rules when processing metadata for presentation." +msgstr "ຕາຕະລາງຂອງ URLs ໂດຍທີ່ key ແມ່ນປ້າຍຊື່ URL ແລະ value ແມ່ນຕົວ URL ເອງ..." + +#: ../source/specifications/pyproject-toml.rst:427 +msgid "Entry points" +msgstr "ຈຸດເລີ່ມຕົ້ນ (Entry points)" + +#: ../source/specifications/pyproject-toml.rst:429 +msgid "" +"TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " +"``[project.entry-points]``)" +msgstr "" +"ປະເພດ TOML_: ຕາຕະລາງ (``[project.scripts]``, ``[project.gui-scripts]``, ແລະ " +"``[project.entry-points]``)" + +#: ../source/specifications/pyproject-toml.rst:431 +msgid ":ref:`Entry points specification `" +msgstr ":ref:`ຂໍ້ກຳນົດຂອງ Entry points `" + +#: ../source/specifications/pyproject-toml.rst:433 +msgid "" +"There are three tables related to entry points. The ``[project.scripts]`` " +"table corresponds to the ``console_scripts`` group in the :ref:`entry points " +"specification `. The key of the table is the name of the entry " +"point and the value is the object reference." +msgstr "" +"ມີສາມຕາຕະລາງທີ່ກ່ຽວຂ້ອງກັບ entry points. ຕາຕະລາງ ``[project.scripts]`` ກົງກັບກຸ່ມ " +"``console_scripts``..." + +#: ../source/specifications/pyproject-toml.rst:439 +msgid "" +"The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " +"in the :ref:`entry points specification `. Its format is the " +"same as ``[project.scripts]``." +msgstr "" +"ຕາຕະລາງ ``[project.gui-scripts]`` ກົງກັບກຸ່ມ ``gui_scripts`` ໃນ :ref:`ຂໍ້ກຳນົດຂອງ " +"entry points `. ຮູບແບບຂອງມັນຄືກັນກັບ ``[project.scripts]``." + +#: ../source/specifications/pyproject-toml.rst:443 +msgid "" +"The ``[project.entry-points]`` table is a collection of tables. Each sub-" +"table's name is an entry point group. The key and value semantics are the " +"same as ``[project.scripts]``. Users MUST NOT create nested sub-tables but " +"instead keep the entry point groups to only one level deep." +msgstr "ຕາຕະລາງ ``[project.entry-points]`` ແມ່ນການລວມກຸ່ມຂອງຕາຕະລາງ..." + +#: ../source/specifications/pyproject-toml.rst:449 +msgid "" +"Build back-ends MUST raise an error if the metadata defines a " +"``[project.entry-points.console_scripts]`` or ``[project.entry-" +"points.gui_scripts]`` table, as they would be ambiguous in the face of " +"``[project.scripts]`` and ``[project.gui-scripts]``, respectively." +msgstr "" +"Build back-ends **ຕ້ອງ** ສະແດງຂໍ້ຜິດພາດ ຫາກ metadata ກຳນົດຕາຕະລາງ " +"``[project.entry-points.console_scripts]`` ຫຼື ``[project.entry-" +"points.gui_scripts]``..." + +#: ../source/specifications/pyproject-toml.rst:461 +msgid "" +"TOML_ type: Array of :ref:`dependency specifier ` " +"strings (``dependencies``)" +msgstr "" +"ປະເພດ TOML_: ອາເຣຂອງ :ref:`dependency specifier` string (``dependencies``)" + +#: ../source/specifications/pyproject-toml.rst:463 +msgid "" +"Corresponding :ref:`core metadata ` field: :ref:`Requires-" +"Dist `" +msgstr "ຟີວ :ref:`core metadata` ທີ່ກົງກັນ: :ref:`Requires-Dist`" + +#: ../source/specifications/pyproject-toml.rst:466 +msgid "" +"``dependencies`` lists the expected dependencies of the project as an array " +"of strings." +msgstr "``dependencies`` ລະບຸ dependency ທີ່ຄາດຫວັງຂອງໂຄງການໃນຮູບແບບອາເຣຂອງ string." + +#: ../source/specifications/pyproject-toml.rst:469 +msgid "" +"Each string represents a dependency of the project and MUST be formatted as " +"a valid :ref:`dependency specifier `." +msgstr "" +"ແຕ່ລະ string ແທນ dependency ຂອງໂຄງການ ແລະ **ຕ້ອງ** " +"ຖືກຈັດຮູບແບບໃຫ້ເປັນ :ref:`dependency specifier` ທີ່ຖືກຕ້ອງ." + +#: ../source/specifications/pyproject-toml.rst:472 +msgid "" +"Each string maps directly to a :ref:`Requires-Dist ` entry." +msgstr "ແຕ່ລະ string ຈະຖືກເຊື່ອມໂຍງໂດຍກົງກັບລາຍການ :ref:`Requires-Dist`." + +#: ../source/specifications/pyproject-toml.rst:475 +msgid "" +"Dependencies listed in this array are always considered for installation, " +"but may still contain environment markers that cause them to be skipped in " +"some environments." +msgstr "" +"ສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ (Dependencies) ທີ່ຢູ່ໃນອາເຣນີ້ຈະຖືກພິຈາລະນາເພື່ອການຕິດຕັ້ງສະເໝີ, " +"ແຕ່ອາດຈະຍັງມີຕົວໝາຍສະພາບແວດລ້ອມ (environment markers) " +"ທີ່ເຮັດໃຫ້ພວກມັນຖືກຂ້າມໄປໃນບາງສະພາບແວດລ້ອມ." + +#: ../source/specifications/pyproject-toml.rst:485 +msgid "" +"TOML_ type: table with string keys mapping to arrays of :ref:`dependency " +"specifier ` strings (``optional-dependencies``)" +msgstr "ປະເພດ TOML_: ຕາຕະລາງທີ່ມີ key ເປັນ string (``optional-dependencies``)" + +#: ../source/specifications/pyproject-toml.rst:487 +msgid "" +"Corresponding :ref:`core metadata ` fields: :ref:`Requires-" +"Dist ` and :ref:`Provides-Extra `" +msgstr "" +"ຟີວ :ref:`core metadata` ທີ່ກົງກັນ: :ref:`Requires-Dist` ແລະ :ref:`Provides-Extra`" + +#: ../source/specifications/pyproject-toml.rst:491 +msgid "" +"``optional-dependencies`` is a table where each key specifies an extra and " +"whose value is an array of strings using the same format as the " +"``dependencies`` array (the strings in the arrays must be " +"valid :ref:`dependency specifiers `)." +msgstr "``optional-dependencies`` ແມ່ນຕາຕະລາງທີ່ແຕ່ລະ key ກຳນົດ extra..." + +#: ../source/specifications/pyproject-toml.rst:496 +msgid "" +"The keys MUST be valid values for :ref:`Provides-Extra `. Each value in the array thus becomes a " +"corresponding :ref:`Requires-Dist ` entry for " +"the matching :ref:`Provides-Extra ` metadata." +msgstr "" +"ຄີຕ່າງໆ ຕ້ອງເປັນຄ່າທີ່ຖືກຕ້ອງສຳລັບ :ref:`Provides-Extra `. ແຕ່ລະຄ່າໃນອາເຣຈຶ່ງກາຍເປັນລາຍການ :ref:`Requires-Dist ` ທີ່ກົງກັນສຳລັບຂໍ້ມູນເມຕາ :ref:`Provides-Extra ` ທີ່ເຂົ້າກັນ." + +#: ../source/specifications/pyproject-toml.rst:503 +msgid "" +"The optionality of these dependencies is recorded by modifying the " +"environment marker clause on the related ``Requires-Dist`` entries to check " +"the extra name. Optional dependencies are thus only considered for " +"installation if installation if the associated extra name is requested." +msgstr "" +"ຄວາມເປັນທາງເລືອກຂອງ dependency ເຫຼົ່ານີ້ຖືກບັນທຶກໂດຍການປ່ຽນແປງເງື່ອນໄຂ environment " +"marker..." + +#: ../source/specifications/pyproject-toml.rst:508 +msgid "" +"Dependency specifiers in an extra may self-reference other extras from the " +"current project (e.g. ``all = [\"your-project-name[gui, cli]\"]``). " +"See :ref:`self-referential extras ` for an example. " +"Most package managers now support this kind of extra, " +"including :ref:`pip`, :ref:`uv`, :ref:`poetry`, :ref:`hatch`, :ref:`pdm` " +"and :ref:`pipenv`." +msgstr "" +"ຂໍ້ກຳນົດສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ (Dependency specifiers) ໃນ extra ອາດຈະອ້າງອີງເຖິງ extra ອື່ນໆ " +"ຈາກໂປຣເຈັກປັດຈຸບັນ (ຕົວຢ່າງ: ``all = [\"your-project-name[gui, cli]\"]``). " +"ເບິ່ງ :ref:`self-referential extras ` ສຳລັບຕົວຢ່າງ. " +"ຕົວຈັດການແພັກເກັດສ່ວນໃຫຍ່ໃນຕອນນີ້ຮອງຮັບ extra ປະເພດນີ້, " +"ລວມທັງ :ref:`pip`, :ref:`uv`, :ref:`poetry`, :ref:`hatch`, :ref:`pdm` " +"ແລະ :ref:`pipenv`." + +#: ../source/specifications/pyproject-toml.rst:520 +msgid "" +"Corresponding :ref:`core metadata ` field: :ref:`Import-Name " +"`" +msgstr "ຟີວ :ref:`core metadata` ທີ່ກົງກັນ: :ref:`Import-Name`" + +#: ../source/specifications/pyproject-toml.rst:523 +msgid "" +"An array of strings specifying the import names that the project exclusively " +"provides when installed. Each string MUST be a valid Python identifier or " +"can be empty. An import name MAY be followed by a semicolon and the term " +"\"private\" (e.g. ``\"; private\"``) with any amount of whitespace " +"surrounding the semicolon." +msgstr "ອາເຣຂອງ string ທີ່ລະບຸຊື່ import ທີ່ໂຄງການສະໜອງໃຫ້ໂດຍສະເພາະເມື່ອຕິດຕັ້ງ..." + +#: ../source/specifications/pyproject-toml.rst:528 +msgid "" +"Projects SHOULD list all the shortest import names that are exclusively " +"provided by the project. If any of the shortest names are dotted names, all " +"intervening names from that name to the top-level name should also be listed " +"appropriately in ``import-names`` and/or ``import-namespaces``. For " +"instance, a project which is a single package named spam with multiple " +"submodules would only list ``project.import-names = [\"spam\"]``. A project " +"that lists ``spam.bacon.eggs`` would also need to account for ``spam`` and " +"``spam.bacon`` appropriately in ``import-names`` and ``import-namespaces``. " +"Listing all names acts as a check that the intent of the import names is as " +"expected. As well, projects SHOULD list all import names, public or private, " +"using the ``; private`` modifier as appropriate." +msgstr "" +"ໂຄງການ ຄວນ (SHOULD) ລາຍຊື່ການນໍາເຂົ້າ (import names) " +"ທີ່ສັ້ນທີ່ສຸດທັງໝົດທີ່ສະໜອງໃຫ້ໂດຍໂຄງການເທົ່ານັ້ນ. ຖ້າຊື່ທີ່ສັ້ນທີ່ສຸດໃດໜຶ່ງເປັນຊື່ທີ່ມີຈຸດ (dotted names), " +"ຊື່ລະຫວ່າງກາງທັງໝົດຈາກຊື່ນັ້ນໄປຫາຊື່ລະດັບເທິງສຸດກໍຄວນຖືກລະບຸໄວ້ຢ່າງເໝາະສົມໃນ ``import-names`` " +"ແລະ/ຫຼື ``import-namespaces``. ຕົວຢ່າງ, ໂຄງການທີ່ເປັນແພັກເກັດດຽວຊື່ spam ທີ່ມີຫຼາຍໂມດູນຍ່ອຍ " +"ຈະລະບຸພຽງແຕ່ ``project.import-names = [\"spam\"]``. ໂຄງການທີ່ລະບຸ " +"``spam.bacon.eggs`` ກໍຈະຕ້ອງລວມເອົາ ``spam`` ແລະ ``spam.bacon`` ຢ່າງເໝາະສົມໃນ " +"``import-names`` ແລະ ``import-namespaces``. " +"ການລາຍຊື່ທັງໝົດເຮັດໜ້າທີ່ເປັນການກວດສອບວ່າຈຸດປະສົງຂອງຊື່ການນໍາເຂົ້າແມ່ນເປັນໄປຕາມທີ່ຄາດໄວ້. " +"ນອກຈາກນັ້ນ, ໂຄງການ ຄວນ (SHOULD) ລາຍຊື່ການນໍາເຂົ້າທັງໝົດ, ບໍ່ວ່າຈະເປັນແບບສາທາລະນະ ຫຼື ສ່ວນຕົວ, " +"ໂດຍໃຊ້ຕົວດັດແກ້ ``; private`` ຕາມຄວາມເໝາະສົມ." + +#: ../source/specifications/pyproject-toml.rst:540 +#: ../source/specifications/pyproject-toml.rst:589 +msgid "" +"If a project lists the same name in both ``import-names`` and ``import-" +"namespaces``, then tools MUST raise an error due to ambiguity." +msgstr "" +"ຫາກໂຄງການລະບຸຊື່ດຽວກັນທັງໃນ ``import-names`` ແລະ ``import-namespaces``, ເຄື່ອງມື " +"**ຕ້ອງ** ສະແດງຂໍ້ຜິດພາດຍ້ອນຄວາມບໍ່ຊັດເຈນ." + +#: ../source/specifications/pyproject-toml.rst:543 +msgid "" +"Projects MAY set ``import-names`` to an empty array to represent a project " +"with no import names (i.e. there are no Python modules of any kind in the " +"distribution file)." +msgstr "" +"ໂຄງການ **ອາດຈະ** ຕັ້ງຄ່າ ``import-names`` ເປັນອາເຣຫວ່າງເປົ່າ ເພື່ອແທນໂຄງການ ທີ່ບໍ່ມີຊື່ " +"import." + +#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:592 +msgid "" +"Build back-ends MAY support dynamically calculating the value if the user " +"declares the key in ``project.dynamic``." +msgstr "" +"Build back-ends **ອາດຈະ** ຮອງຮັບການຄິດໄລ່ຄ່າແບບ dynamic ຫາກຜູ້ໃຊ້ປະກາດ key ໃນ " +"``project.dynamic``." + +#: ../source/specifications/pyproject-toml.rst:550 +msgid "Examples:" +msgstr "ຕົວຢ່າງ:" + +#: ../source/specifications/pyproject-toml.rst:571 +msgid "" +"Corresponding :ref:`core metadata ` field: :ref:`Import-" +"Namespace `" +msgstr "ຟີວ :ref:`core metadata` ທີ່ກົງກັນ: :ref:`Import-Namespace`" + +#: ../source/specifications/pyproject-toml.rst:574 +msgid "" +"An array of strings specifying the import names that the project provides " +"when installed, but not exclusively. Each string MUST be a valid Python " +"identifier. An import name MAY be followed by a semicolon and the term " +"\"private\" (e.g. ``\"; private\"``) with any amount of whitespace " +"surrounding the semicolon. Note that unlike ``import-names``, ``import-" +"namespaces`` CANNOT be an empty array." +msgstr "" +"ອາເຣຂອງ string ທີ່ລະບຸຊື່ import ທີ່ໂຄງການສະໜອງໃຫ້ເມື່ອຕິດຕັ້ງ ແຕ່ບໍ່ໄດ້ ສະໜອງໃຫ້ພຽງຜູ້ດຽວ..." + +#: ../source/specifications/pyproject-toml.rst:580 +msgid "" +"Projects SHOULD list all the shortest import names that are exclusively " +"provided by the project. If any of the shortest names are dotted names, all " +"intervening names from that name to the top-level name should also be listed " +"appropriately in ``import-names`` and/or ``import-namespaces``." +msgstr "ໂຄງການ **ຄວນ** ລະບຸຊື່ import ທີ່ສັ້ນທີ່ສຸດທັງໝົດທີ່ໂຄງການສະໜອງໃຫ້ໂດຍສະເພາະ..." + +#: ../source/specifications/pyproject-toml.rst:585 +msgid "" +"This field is used for namespace packages where multiple projects can " +"contribute to the same import namespace. Projects all listing the same " +"import name in ``import-namespaces`` can be installed together without " +"shadowing each other." +msgstr "" +"ຟີວນີ້ຖືກໃຊ້ສຳລັບ namespace packages ເຊິ່ງຫຼາຍໂຄງການສາມາດມີສ່ວນຮ່ວມໃນ namespace " +"ດຽວກັນໄດ້..." + +#: ../source/specifications/pyproject-toml.rst:595 +msgid "Example:" +msgstr "ຕົວຢ່າງ:" + +#: ../source/specifications/pyproject-toml.rst:611 +msgid "TOML_ type: array of string" +msgstr "ປະເພດ TOML_: ອາເຣຂອງ string" + +#: ../source/specifications/pyproject-toml.rst:612 +msgid "" +"Corresponding :ref:`core metadata ` field: :ref:`Dynamic " +"`" +msgstr "ຟີວ :ref:`core metadata` ທີ່ກົງກັນ: :ref:`Dynamic`" + +#: ../source/specifications/pyproject-toml.rst:615 +msgid "" +"Specifies which keys listed by this PEP were intentionally unspecified so " +"another tool can/will provide such metadata dynamically. This clearly " +"delineates which metadata is purposefully unspecified and expected to stay " +"unspecified compared to being provided via tooling later on." +msgstr "ລະບຸວ່າ keys ໃດທີ່ກຳນົດໂດຍ PEP ນີ້ທີ່ຖືກຕັ້ງໃຈປ່ອຍໃຫ້ບໍ່ລະບຸໄວ້..." + +#: ../source/specifications/pyproject-toml.rst:621 +msgid "" +"A build back-end MUST honour statically-specified metadata (which means the " +"metadata did not list the key in ``dynamic``)." +msgstr "build back-end **ຕ້ອງ** ປະຕິບັດຕາມ metadata ທີ່ຖືກກຳນົດແບບ static." + +#: ../source/specifications/pyproject-toml.rst:623 +msgid "" +"A build back-end MUST raise an error if the metadata specifies ``name`` in " +"``dynamic``." +msgstr "" +"build back-end **ຕ້ອງ** ສະແດງຂໍ້ຜິດພາດ ຫາກ metadata ລະບຸ ``name`` ໃນ ``dynamic``." + +#: ../source/specifications/pyproject-toml.rst:625 +msgid "" +"If the :ref:`core metadata ` specification lists a field as " +"\"Required\", then the metadata MUST specify the key statically or list it " +"in ``dynamic`` (build back-ends MUST raise an error otherwise, i.e. it " +"should not be possible for a required key to not be listed somehow in the " +"``[project]`` table)." +msgstr "" +"ຫາກຂໍ້ກຳນົດ :ref:`core metadata` ລະບຸວ່າຟີວໃດ \"Required\" (ຈຳເປັນ), metadata " +"**ຕ້ອງ** ກຳນົດ key ນັ້ນແບບ static ຫຼື ລະບຸໄວ້ໃນ ``dynamic``..." + +#: ../source/specifications/pyproject-toml.rst:630 +msgid "" +"If the :ref:`core metadata ` specification lists a field as " +"\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " +"a build back-end will provide the data for the key later." +msgstr "" +"ຫາກຂໍ້ກຳນົດ :ref:`core metadata` ລະບຸວ່າຟີວໃດ \"Optional\" (ທາງເລືອກ), metadata " +"**ອາດຈະ** ລະບຸໄວ້ໃນ ``dynamic``..." + +#: ../source/specifications/pyproject-toml.rst:634 +msgid "" +"Build back-ends MUST raise an error if the metadata specifies a key " +"statically as well as being listed in ``dynamic``, *unless* the key " +"represents a list or arbitrary table that can be extended, listed below." +msgstr "" +"Build back-ends **ຕ້ອງ** ສະແດງຂໍ້ຜິດພາດ ຫາກ metadata ກຳນົດ key ທັງແບບ static ແລະ " +"ລະບຸໃນ ``dynamic`` ພ້ອມກັນ..." + +#: ../source/specifications/pyproject-toml.rst:637 +msgid "" +"If the metadata does not list a key in ``dynamic``, then a build back-end " +"CANNOT fill in the requisite metadata on behalf of the user (i.e. " +"``dynamic`` is the only way to allow a tool to fill in metadata and the user " +"must opt into the filling in)." +msgstr "" +"ຫາກ metadata ບໍ່ໄດ້ລະບຸ key ໃນ ``dynamic``, build back-end ຈະ **ບໍ່ສາມາດ** ຕື່ມ " +"metadata ທີ່ຈຳເປັນແທນຜູ້ໃຊ້ໄດ້..." + +#: ../source/specifications/pyproject-toml.rst:641 +msgid "" +"Build back-ends MUST raise an error if the metadata specifies a key in " +"``dynamic`` but the build back-end was unable to determine the data for it " +"(omitting the data, if determined to be the accurate value, is acceptable)." +msgstr "" +"Build back-ends **ຕ້ອງ** ສະແດງຂໍ້ຜິດພາດ ຫາກ metadata ລະບຸ key ໃນ ``dynamic`` ແຕ່ " +"build back-end ບໍ່ສາມາດກຳນົດຂໍ້ມູນນັ້ນໄດ້..." + +#: ../source/specifications/pyproject-toml.rst:646 +msgid "" +"A key whose value is a list or a table of arbitrary entries MAY be specified " +"statically and listed in ``dynamic`` simultaneously. The keys fitting that " +"description are:" +msgstr "" +"Key ທີ່ມີຄ່າເປັນລາຍການ ຫຼື ຕາຕະລາງ **ອາດຈະ** ຖືກກຳນົດແບບ static ແລະ ລະບຸໃນ ``dynamic`` " +"ພ້ອມກັນໄດ້. keys ເຫຼົ່ານັ້ນມີຄື:" + +#: ../source/specifications/pyproject-toml.rst:664 +msgid "When such a key is specified both statically and listed in ``dynamic``:" +msgstr "ເມື່ອ key ດັ່ງກ່າວຖືກກຳນົດທັງແບບ static ແລະ ລະບຸໃນ ``dynamic``:" + +#: ../source/specifications/pyproject-toml.rst:667 +msgid "" +"A build back-end MAY only *append* entries to the value; it MUST NOT remove, " +"reorder, or modify any statically-specified entries. For tables (such as " +"``optional-dependencies`` or ``entry-points``) this means a back-end MAY add " +"new keys and MAY append to the values of existing keys (in the case of a " +"list), but MUST NOT change or remove the entries given statically." +msgstr "" +"build back-end **ອາດຈະ** ເຮັດໄດ້ພຽງ *ເພີ່ມຕໍ່ທ້າຍ* (append) ລາຍການເຂົ້າໃນຄ່າເທົ່ານັ້ນ; ມັນ " +"**ຕ້ອງບໍ່** ລຶບ, ຈັດລຽງໃໝ່ ຫຼື ແກ້ໄຂລາຍການໃດໆທີ່ຖືກກຳນົດແບບ static..." + +#: ../source/specifications/pyproject-toml.rst:673 +msgid "" +"A build back-end SHOULD raise an error if a key is listed in ``dynamic`` and " +"it does not support extending that key." +msgstr "" +"build back-end **ຄວນ** ສະແດງຂໍ້ຜິດພາດ ຫາກ key ຖືກລະບຸໃນ ``dynamic`` " +"ແຕ່ມັນບໍ່ຮອງຮັບການຂະຫຍາຍ key ນັ້ນ." + +#: ../source/specifications/pyproject-toml.rst:680 +msgid "Arbitrary tool configuration: the ``[tool]`` table" +msgstr "ການຕັ້ງຄ່າເຄື່ອງມືທົ່ວໄປ: ຕາຕະລາງ ``[tool]``" + +#: ../source/specifications/pyproject-toml.rst:682 +msgid "" +"The ``[tool]`` table is where any tool related to your Python project, not " +"just build tools, can have users specify configuration data as long as they " +"use a sub-table within ``[tool]``, e.g. the `flit `_ tool would store its configuration in ``[tool.flit]``." +msgstr "" +"ຕາຕະລາງ ``[tool]`` ແມ່ນບ່ອນທີ່ເຄື່ອງມືໃດໆທີ່ກ່ຽວຂ້ອງກັບໂຄງການ Python ສາມາດ " +"ໃຫ້ຜູ້ໃຊ້ກຳນົດຂໍ້ມູນການຕັ້ງຄ່າໄດ້..." + +#: ../source/specifications/pyproject-toml.rst:688 +msgid "" +"A mechanism is needed to allocate names within the ``tool.*`` namespace, to " +"make sure that different projects do not attempt to use the same sub-table " +"and collide. Our rule is that a project can use the subtable ``tool.$NAME`` " +"if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." +msgstr "" +"ຈຳເປັນຕ້ອງມີກົນໄກໃນການຈັດສັນຊື່ພາຍໃນ namespace ``tool.*`` ເພື່ອຮັບປະກັນວ່າ " +"ໂຄງການຕ່າງໆຈະບໍ່ໃຊ້ຕາຕະລາງຍ່ອຍດຽວກັນຈົນເກີດການຂັດແຍ່ງກັນ..." + +#: ../source/specifications/pyproject-toml.rst:699 +msgid "" +"May 2016: The initial specification of the ``pyproject.toml`` file, with " +"just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " +"table, was approved through :pep:`518`." +msgstr "" +"ພຶດສະພາ 2016: ຂໍ້ກຳນົດເລີ່ມຕົ້ນຂອງໄຟລ໌ ``pyproject.toml``, ທີ່ມີພຽງແຕ່ ``[build-system]`` " +"ເຊິ່ງປະກອບດ້ວຍຄີ ``requires`` ແລະ ຕາຕະລາງ ``[tool]``, ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`518`." + +#: ../source/specifications/pyproject-toml.rst:703 +msgid "" +"November 2020: The specification of the ``[project]`` table was approved " +"through :pep:`621`." +msgstr "ພະຈິກ 2020: ຂໍ້ກຳນົດຂອງຕາຕະລາງ ``[project]`` ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`621`." + +#: ../source/specifications/pyproject-toml.rst:706 +msgid "" +"December 2024: The ``license`` key was redefined, the ``license-files`` key " +"was added and ``License::`` classifiers were deprecated through :pep:`639`." +msgstr "" +"ທັນວາ 2024: ຄີ ``license`` ໄດ້ຖືກກຳນົດຄືນໃໝ່, ໄດ້ມີການເພີ່ມຄີ ``license-files`` ແລະ " +"ຍົກເລີກການໃຊ້ ``License::`` classifiers ຜ່ານ :pep:`639`." + +#: ../source/specifications/pyproject-toml.rst:709 +msgid "" +"September 2025: Clarity that the ``license`` key applies to all distribution " +"files generated from the :file:`pyproject.toml` file." +msgstr "" +"ກັນຍາ 2025: ຄວາມຊັດເຈນວ່າຄີ ``license`` ນຳໃຊ້ກັບທຸກໄຟລ໌ການແຈກຢາຍ (distribution " +"files) ທີ່ຖືກສ້າງຂຶ້ນຈາກໄຟລ໌ :file:`pyproject.toml`." + +#: ../source/specifications/pyproject-toml.rst:712 +msgid "" +"October 2025: The ``import-names`` and ``import-namespaces`` keys were added " +"through :pep:`794`." +msgstr "" +"ຕຸລາ 2025: ໄດ້ມີການເພີ່ມຄີ ``import-names`` ແລະ ``import-namespaces`` " +"ຜ່ານ :pep:`794`." + +#: ../source/specifications/pyproject-toml.rst:718 +msgid "" +"May 2026: Allowed list and table keys to be specified statically as well as " +"listed in ``dynamic``, with build back-ends only able to append entries, " +"through :pep:`808`." +msgstr "" +"ພຶດສະພາ 2026: ອະນຸຍາດໃຫ້ກຳນົດຄີແບບ list ແລະ table ແບບ static ລວມທັງລະບຸໄວ້ໃນ " +"``dynamic``, ໂດຍ build back-ends ສາມາດເພີ່ມຂໍ້ມູນຕໍ່ທ້າຍໄດ້ເທົ່ານັ້ນ, ຜ່ານ :pep:`808`." + +#: ../source/specifications/pyproject-toml.rst:722 +msgid "" +"August 2026: Document self-referential extra as a supported feature by many " +"modern package managers of Python." +msgstr "" +"ສິງຫາ 2026: ບັນທຶກ self-referential extra ເປັນຟີເຈີທີ່ຮອງຮັບໂດຍຕົວຈັດການແພັກເກດ (package " +"managers) ທີ່ທັນສະໄໝຫຼາຍຕົວຂອງ Python." + +#: ../source/specifications/recording-installed-packages.rst:7 +msgid "Recording installed projects" +msgstr "ການບັນທຶກໂຄງການທີ່ຕິດຕັ້ງແລ້ວ" + +#: ../source/specifications/recording-installed-packages.rst:9 +msgid "" +"This document specifies a common format of recording information about " +"Python :term:`projects ` installed in an environment. A common " +"metadata format allows tools to query, manage or uninstall projects, " +"regardless of how they were installed." +msgstr "" +"ເອກະສານນີ້ກຳນົດຮູບແບບທົ່ວໄປຂອງການບັນທຶກຂໍ້ມູນກ່ຽວກັບ Python :term:`projects ` " +"ທີ່ຕິດຕັ້ງຢູ່ໃນສະພາບແວດລ້ອມ (environment). ຮູບແບບ metadata ທົ່ວໄປຊ່ວຍໃຫ້ເຄື່ອງມືຕ່າງໆ " +"ສາມາດສອບຖາມ, ຈັດການ ຫຼື ຖອນການຕິດຕັ້ງໂຄງການໄດ້, ໂດຍບໍ່ສົນວ່າພວກມັນຖືກຕິດຕັ້ງດ້ວຍວິທີໃດ." + +#: ../source/specifications/recording-installed-packages.rst:14 +msgid "" +"Almost all information is optional. This allows tools outside the Python " +"ecosystem, such as Linux package managers, to integrate with Python tooling " +"as much as possible. For example, even if an installer cannot easily provide " +"a list of installed files in a format specific to Python tooling, it should " +"still record the name and version of the installed project." +msgstr "" +"ຂໍ້ມູນເກືອບທັງໝົດແມ່ນເປັນທາງເລືອກ (optional). ສິ່ງນີ້ຊ່ວຍໃຫ້ເຄື່ອງມືພາຍນອກລະບົບນິເວດຂອງ Python, " +"ເຊັ່ນ ຕົວຈັດການແພັກເກດຂອງ Linux, ສາມາດເຮັດວຽກຮ່ວມກັບເຄື່ອງມືຂອງ Python " +"ໄດ້ຫຼາຍທີ່ສຸດເທົ່າທີ່ຈະເປັນໄປໄດ້. ຕົວຢ່າງ: " +"ເຖິງແມ່ນວ່າຕົວຕິດຕັ້ງບໍ່ສາມາດສະໜອງລາຍຊື່ໄຟລ໌ທີ່ຕິດຕັ້ງໃນຮູບແບບສະເພາະຂອງເຄື່ອງມື Python " +"ໄດ້ຢ່າງງ່າຍດາຍ, ແຕ່ມັນກໍຍັງຄວນບັນທຶກຊື່ ແລະ ເວີຊັນຂອງໂຄງການທີ່ຕິດຕັ້ງໄວ້." + +#: ../source/specifications/recording-installed-packages.rst:25 +msgid "" +"Each project installed from a distribution must, in addition to files, " +"install a \"``.dist-info``\" directory located alongside importable modules " +"and packages (commonly, the ``site-packages`` directory)." +msgstr "" +"ແຕ່ລະໂຄງການທີ່ຕິດຕັ້ງຈາກການແຈກຢາຍ (distribution) ຈະຕ້ອງຕິດຕັ້ງໄດເລັກທໍຣີ \"``.dist-" +"info``\" ໄວ້ຄຽງຄູ່ກັບໂມດູນ ແລະ ແພັກເກດທີ່ສາມາດ import ໄດ້ (ໂດຍທົ່ວໄປແມ່ນໄດເລັກທໍຣີ ``site-" +"packages``), ນອກເໜືອຈາກໄຟລ໌ຕ່າງໆ." + +#: ../source/specifications/recording-installed-packages.rst:29 +msgid "" +"This directory is named as ``{name}-{version}.dist-info``, with ``name`` and " +"``version`` fields corresponding to :ref:`core-metadata`. Both fields must " +"be normalized (see the :ref:`name normalization specification ` and the :ref:`version normalization specification `), and replace dash (``-``) characters with " +"underscore (``_``) characters, so the ``.dist-info`` directory always has " +"exactly one dash (``-``) character in its stem, separating the ``name`` and " +"``version`` fields." +msgstr "" +"ໄດເລັກທໍຣີນີ້ຖືກຕັ້ງຊື່ເປັນ ``{name}-{version}.dist-info``, ໂດຍມີຟິລ ``name`` ແລະ " +"``version`` ທີ່ກົງກັບ :ref:`core-metadata`. ທັງສອງຟິລຕ້ອງຖືກເຮັດໃຫ້ເປັນມາດຕະຖານ " +"(ເບິ່ງ :ref:`name normalization specification ` " +"ແລະ :ref:`version normalization specification `), ແລະ ປ່ຽນເຄື່ອງໝາຍຂີດກາງ (``-``) ເປັນເຄື່ອງໝາຍຂີດກ້ອງ (``_``), " +"ເພື່ອໃຫ້ໄດເລັກທໍຣີ ``.dist-info`` ມີເຄື່ອງໝາຍຂີດກາງ (``-``) ພຽງອັນດຽວໃນສ່ວນຊື່ຫຼັກ ເພື່ອແຍກຟິລ " +"``name`` ແລະ ``version``." + +#: ../source/specifications/recording-installed-packages.rst:37 +msgid "" +"Historically, tools have failed to replace dot characters or normalize case " +"in the ``name`` field, or not perform normalization in the ``version`` " +"field. Tools consuming ``.dist-info`` directories should expect those fields " +"to be unnormalized, and treat them as equivalent to their normalized " +"counterparts. New tools that write ``.dist-info`` directories MUST normalize " +"both ``name`` and ``version`` fields using the rules described above, and " +"existing tools are encouraged to start normalizing those fields." +msgstr "" +"ໃນອະດີດ, ເຄື່ອງມືຕ່າງໆ ບໍ່ໄດ້ປ່ຽນເຄື່ອງໝາຍຈ້ຳ ຫຼື ປັບຕົວອັກສອນໃນຟິລ ``name`` ໃຫ້ເປັນມາດຕະຖານ, ຫຼື " +"ບໍ່ໄດ້ເຮັດ normalization ໃນຟິລ ``version``. ເຄື່ອງມືທີ່ໃຊ້ໄດເລັກທໍຣີ ``.dist-info`` " +"ຄວນຄາດການວ່າຟິລເຫຼົ່ານັ້ນອາດຈະບໍ່ເປັນມາດຕະຖານ, ແລະ ໃຫ້ຖືວ່າພວກມັນເທົ່າກັບຄູ່ຮ່ວມທີ່ເປັນມາດຕະຖານ. " +"ເຄື່ອງມືໃໝ່ທີ່ຂຽນໄດເລັກທໍຣີ ``.dist-info`` ຈະຕ້ອງ (MUST) ເຮັດໃຫ້ທັງຟິລ ``name`` ແລະ " +"``version`` ເປັນມາດຕະຖານໂດຍໃຊ້ກົດລະບຽບທີ່ອະທິບາຍໄວ້ຂ້າງເທິງ, ແລະ " +"ແນະນຳໃຫ້ເຄື່ອງມືທີ່ມີຢູ່ແລ້ວເລີ່ມເຮັດໃຫ້ຟິລເຫຼົ່ານັ້ນເປັນມາດຕະຖານ." + +#: ../source/specifications/recording-installed-packages.rst:47 +msgid "" +"The ``.dist-info`` directory's name is formatted to unambiguously represent " +"a distribution as a filesystem path. Tools presenting a distribution name to " +"a user should avoid using the normalized name, and instead present the " +"specified name (when needed prior to resolution to an installed package), or " +"read the respective fields in Core Metadata, since values listed there are " +"unescaped and accurately reflect the distribution. Libraries should provide " +"API for such tools to consume, so tools can have access to the unnormalized " +"name when displaying distribution information." +msgstr "" +"ຊື່ຂອງໄດເລັກທໍຣີ ``.dist-info`` ຖືກກຳນົດຮູບແບບເພື່ອສະແດງເຖິງການແຈກຢາຍ (distribution) " +"ເປັນ path ໃນລະບົບໄຟລ໌ຢ່າງຊັດເຈນ. ເຄື່ອງມືທີ່ສະແດງຊື່ການແຈກຢາຍໃຫ້ຜູ້ໃຊ້ເຫັນ " +"ຄວນຫຼີກເວັ້ນການໃຊ້ຊື່ທີ່ເປັນມາດຕະຖານ (normalized name), ແຕ່ໃຫ້ສະແດງຊື່ທີ່ລະບຸໄວ້ແທນ " +"(ເມື່ອຈຳເປັນກ່ອນການແກ້ໄຂໄປຫາແພັກເກດທີ່ຕິດຕັ້ງແລ້ວ), ຫຼື ອ່ານຟິລທີ່ກ່ຽວຂ້ອງໃນ Core Metadata, " +"ເນື່ອງຈາກຄ່າທີ່ລະບຸໄວ້ຢູ່ບັ້ນນັ້ນບໍ່ໄດ້ຖືກແປງ (unescaped) ແລະ ສະທ້ອນເຖິງການແຈກຢາຍຢ່າງຖືກຕ້ອງ. " +"ໄລບຣາຣີຄວນສະໜອງ API ສຳລັບເຄື່ອງມືດັ່ງກ່າວ ເພື່ອໃຫ້ເຄື່ອງມືສາມາດເຂົ້າເຖິງຊື່ທີ່ບໍ່ໄດ້ເປັນມາດຕະຖານ " +"(unnormalized name) ເມື່ອສະແດງຂໍ້ມູນການແຈກຢາຍ." + +#: ../source/specifications/recording-installed-packages.rst:56 +msgid "" +"This ``.dist-info`` directory may contain the following files, described in " +"detail below:" +msgstr "ໄດເລັກທໍຣີ ``.dist-info`` ນີ້ອາດຈະປະກອບມີໄຟລ໌ດັ່ງຕໍ່ໄປນີ້, ເຊິ່ງອະທິບາຍລະອຽດໄວ້ຂ້າງລຸ່ມ:" + +#: ../source/specifications/recording-installed-packages.rst:59 +msgid "``METADATA``: contains project metadata" +msgstr "``METADATA``: ປະກອບມີ metadata ຂອງໂຄງການ" + +#: ../source/specifications/recording-installed-packages.rst:60 +msgid "``RECORD``: records the list of installed files." +msgstr "``RECORD``: ບັນທຶກລາຍຊື່ຂອງໄຟລ໌ທີ່ຕິດຕັ້ງ." + +#: ../source/specifications/recording-installed-packages.rst:61 +msgid "" +"``INSTALLER``: records the name of the tool used to install the project." +msgstr "``INSTALLER``: ບັນທຶກຊື່ຂອງເຄື່ອງມືທີ່ໃຊ້ເພື່ອຕິດຕັ້ງໂຄງການ." + +#: ../source/specifications/recording-installed-packages.rst:62 +msgid "``entry_points.txt``: see :ref:`entry-points` for details" +msgstr "``entry_points.txt``: ເບິ່ງ :ref:`entry-points` ສຳລັບລາຍລະອຽດ" + +#: ../source/specifications/recording-installed-packages.rst:63 +msgid "``direct_url.json``: see :ref:`direct-url` for details" +msgstr "``direct_url.json``: ເບິ່ງ :ref:`direct-url` ສຳລັບລາຍລະອຽດ" + +#: ../source/specifications/recording-installed-packages.rst:65 +msgid "" +"The ``METADATA`` file is mandatory. All other files may be omitted at the " +"installing tool's discretion. Additional installer-specific files may be " +"present." +msgstr "" +"ໄຟລ໌ ``METADATA`` ແມ່ນຈຳເປັນ (mandatory). " +"ໄຟລ໌ອື່ນໆທັງໝົດອາດຈະຖືກລະເວັ້ນໄດ້ຕາມການພິຈາລະນາຂອງເຄື່ອງມືຕິດຕັ້ງ. " +"ອາດມີໄຟລ໌ເພີ່ມເຕີມສະເພາະຂອງຕົວຕິດຕັ້ງນຳອີກ." + +#: ../source/specifications/recording-installed-packages.rst:69 +msgid "" +"This :file:`.dist-info/` directory may contain the following directories, " +"described in detail below:" +msgstr "" +"ໄດເລັກທໍຣີ :file:`.dist-info/` ນີ້ອາດຈະປະກອບມີໄດເລັກທໍຣີດັ່ງຕໍ່ໄປນີ້, ເຊິ່ງອະທິບາຍລະອຽດໄວ້ຂ້າງລຸ່ມ:" + +#: ../source/specifications/recording-installed-packages.rst:72 +msgid ":file:`licenses/`: contains license files." +msgstr ":file:`licenses/`: ປະກອບມີໄຟລ໌ໃບອະນຸຍາດ (license files)." + +#: ../source/specifications/recording-installed-packages.rst:73 +msgid ":file:`sboms/`: contains Software Bill-of-Materials files (SBOMs)." +msgstr ":file:`sboms/`: ປະກອບມີໄຟລ໌ Software Bill-of-Materials (SBOMs)." + +#: ../source/specifications/recording-installed-packages.rst:77 +msgid "" +"The :ref:`binary-distribution-format` specification describes additional " +"files that may appear in the ``.dist-info`` directory of a :term:`Wheel`. " +"Such files may be copied to the ``.dist-info`` directory of an installed " +"project." +msgstr "" +"ຂໍ້ກຳນົດ :ref:`binary-distribution-format` " +"ອະທິບາຍເຖິງໄຟລ໌ເພີ່ມເຕີມທີ່ອາດຈະປາກົດຢູ່ໃນໄດເລັກທໍຣີ ``.dist-info`` ຂອງ :term:`Wheel`. " +"ໄຟລ໌ດັ່ງກ່າວອາດຈະຖືກກັອບປີ້ໄປຍັງໄດເລັກທໍຣີ ``.dist-info`` ຂອງໂຄງການທີ່ຕິດຕັ້ງແລ້ວ." + +#: ../source/specifications/recording-installed-packages.rst:82 +msgid "" +"The previous versions of this specification also specified a ``REQUESTED`` " +"file. This file is now considered a tool-specific extension, but may be " +"standardized again in the future. See `PEP 376 `_ for its original meaning." +msgstr "" +"ເວີຊັນກ່ອນໜ້າຂອງຂໍ້ກຳນົດນີ້ຍັງໄດ້ລະບຸໄຟລ໌ ``REQUESTED``. " +"ຕອນນີ້ໄຟລ໌ນີ້ຖືກຖືວ່າເປັນສ່ວນຂະຫຍາຍສະເພາະຂອງເຄື່ອງມື, " +"ແຕ່ອາດຈະຖືກເຮັດໃຫ້ເປັນມາດຕະຖານອີກຄັ້ງໃນອະນາຄົດ. ເບິ່ງ `PEP 376 `_ ສຳລັບຄວາມໝາຍດັ້ງເດີມຂອງມັນ." + +#: ../source/specifications/recording-installed-packages.rst:89 +msgid "The METADATA file" +msgstr "ໄຟລ໌ METADATA" + +#: ../source/specifications/recording-installed-packages.rst:91 +msgid "" +"The ``METADATA`` file contains metadata as described in the :ref:`core-" +"metadata` specification, version 1.1 or greater." +msgstr "" +"ໄຟລ໌ ``METADATA`` ປະກອບມີ metadata ຕາມທີ່ອະທິບາຍໄວ້ໃນຂໍ້ກຳນົດ :ref:`core-metadata`, " +"ເວີຊັນ 1.1 ຫຼື ສູງກວ່າ." + +#: ../source/specifications/recording-installed-packages.rst:94 +msgid "" +"The ``METADATA`` file is mandatory. If it cannot be created, or if required " +"core metadata is not available, installers must report an error and fail to " +"install the project." +msgstr "" +"ໄຟລ໌ ``METADATA`` ແມ່ນຈຳເປັນ (mandatory). ຫາກບໍ່ສາມາດສ້າງມັນໄດ້, ຫຼື ຫາກບໍ່ມີ core " +"metadata ທີ່ຈຳເປັນ, ຕົວຕິດຕັ້ງຈະຕ້ອງລາຍງານຂໍ້ຜິດພາດ ແລະ ຢຸດການຕິດຕັ້ງໂຄງການ." + +#: ../source/specifications/recording-installed-packages.rst:100 +msgid "The RECORD file" +msgstr "ໄຟລ໌ RECORD" + +#: ../source/specifications/recording-installed-packages.rst:102 +msgid "" +"The ``RECORD`` file holds the list of installed files. It is a CSV file " +"containing one record (line) per installed file." +msgstr "" +"ໄຟລ໌ ``RECORD`` ເກັບລາຍຊື່ຂອງໄຟລ໌ທີ່ຕິດຕັ້ງ. ມັນເປັນໄຟລ໌ CSV ທີ່ປະກອບມີໜຶ່ງລະບົບ (ແຖວ) " +"ຕໍ່ໜຶ່ງໄຟລ໌ທີ່ຕິດຕັ້ງ." + +#: ../source/specifications/recording-installed-packages.rst:105 +msgid "" +"The CSV dialect must be readable with the default ``reader`` of Python's " +"``csv`` module:" +msgstr "" +"ຮູບແບບ (dialect) ຂອງ CSV ຕ້ອງສາມາດອ່ານໄດ້ດ້ວຍ ``reader`` ເລີ່ມຕົ້ນຂອງໂມດູນ ``csv`` ຂອງ " +"Python:" + +#: ../source/specifications/recording-installed-packages.rst:108 +msgid "field delimiter: ``,`` (comma)," +msgstr "ຕົວແຍກຟິລ: ``,`` (ຈ້ຳຈຸດ)," + +#: ../source/specifications/recording-installed-packages.rst:109 +msgid "quoting char: ``\"`` (straight double quote)," +msgstr "ຕົວອັກສອນຄອບຂໍ້ຄວາມ (quoting char): ``\"`` (ເຄື່ອງໝາຍວົງຢືມຄູ່)," + +#: ../source/specifications/recording-installed-packages.rst:110 +msgid "line terminator: either ``\\r\\n`` or ``\\n``." +msgstr "ຕົວຢຸດແຖວ (line terminator): ອາດຈະເປັນ ``\\r\\n`` ຫຼື ``\\n``." + +#: ../source/specifications/recording-installed-packages.rst:112 +msgid "" +"Each record is composed of three elements: the file's **path**, the **hash** " +"of the contents, and its **size**." +msgstr "" +"ແຕ່ລະແຖວປະກອບດ້ວຍສາມອົງປະກອບ: **path** ຂອງໄຟລ໌, **hash** ຂອງເນື້ອໃນ, ແລະ **ຂະໜາດ " +"(size)** ຂອງມັນ." + +#: ../source/specifications/recording-installed-packages.rst:115 +msgid "" +"The *path* may be either absolute, or relative to the directory containing " +"the ``.dist-info`` directory (commonly, the ``site-packages`` directory). On " +"Windows, directories may be separated either by forward- or backslashes (``/" +"`` or ``\\``)." +msgstr "" +"*path* ອາດຈະເປັນແບບ absolute (ເຕັມ), ຫຼື relative (ທຽບເຄືອງ) ກັບໄດເລັກທໍຣີທີ່ບັນຈຸໄດເລັກທໍຣີ " +"``.dist-info`` (ໂດຍທົ່ວໄປແມ່ນໄດເລັກທໍຣີ ``site-packages``). ໃນ Windows, " +"ໄດເລັກທໍຣີອາດຈະຖືກແຍກດ້ວຍ forward- ຫຼື backslashes (``/`` ຫຼື ``\\``)." + +#: ../source/specifications/recording-installed-packages.rst:120 +msgid "" +"The *hash* is either an empty string or the name of a hash algorithm " +"from :py:data:`hashlib.algorithms_guaranteed`, followed by the equals " +"character ``=`` and the digest of the file's contents, encoded with the " +"urlsafe-base64-nopad encoding (:py:func:`base64.urlsafe_b64encode(digest) " +"` with trailing ``=`` removed)." +msgstr "" +"*hash* ອາດຈະເປັນ string ຫວ່າງ ຫຼື ຊື່ຂອງ algorithm hash " +"ຈາກ :py:data:`hashlib.algorithms_guaranteed`, ຕາມດ້ວຍເຄື່ອງໝາຍເທົ່າກັບ ``=`` ແລະ " +"digest ຂອງເນື້ອໃນໄຟລ໌, ເຊິ່ງຖືກເຂົ້າລະຫັດດ້ວຍ urlsafe-base64-nopad " +"(:py:func:`base64.urlsafe_b64encode(digest) ` " +"ໂດຍຕັດເຄື່ອງໝາຍ ``=`` ທາງທ້າຍອອກ)." + +#: ../source/specifications/recording-installed-packages.rst:125 +msgid "" +"The *size* is either the empty string, or file's size in bytes, as a base 10 " +"integer." +msgstr "" +"*size* ອາດຈະເປັນ string ຫວ່າງ, ຫຼື ຂະໜາດຂອງໄຟລ໌ເປັນໄບຕ໌ (bytes), ໃນຮູບແບບເລກຖານ 10." + +#: ../source/specifications/recording-installed-packages.rst:128 +msgid "" +"For any file, either or both of the *hash* and *size* fields may be left " +"empty. Commonly, entries for ``.pyc`` files and the ``RECORD`` file itself " +"have empty *hash* and *size*. For other files, leaving the information out " +"is discouraged, as it prevents verifying the integrity of the installed " +"project." +msgstr "" +"ສຳລັບໄຟລ໌ໃດໜຶ່ງ, ຟິລ *hash* ຫຼື *size* (ຫຼື ທັງສອງຢ່າງ) ອາດຈະຖືກປະຫວ່າງໄວ້ໄດ້. ໂດຍທົ່ວໄປແລ້ວ, " +"ຂໍ້ມູນຂອງໄຟລ໌ ``.pyc`` ແລະ ໄຟລ໌ ``RECORD`` ເອງ ມັກຈະມີ *hash* ແລະ *size* ຫວ່າງເປົ່າ. " +"ສຳລັບໄຟລ໌ອື່ນໆ, ບໍ່ແນະນຳໃຫ້ປະຂໍ້ມູນນີ້ໄວ້ ເພາະມັນຈະເຮັດໃຫ້ບໍ່ສາມາດກວດສອບຄວາມຖືກຕ້ອງ (integrity) " +"ຂອງໂຄງການທີ່ຕິດຕັ້ງແລ້ວໄດ້." + +#: ../source/specifications/recording-installed-packages.rst:134 +msgid "" +"If the ``RECORD`` file is present, it must list all installed files of the " +"project, except ``.pyc`` files corresponding to ``.py`` files listed in " +"``RECORD``, which are optional. Notably, the contents of the ``.dist-info`` " +"directory (including the ``RECORD`` file itself) must be listed. Directories " +"should not be listed." +msgstr "" +"ຫາກມີໄຟລ໌ ``RECORD``, ມັນຈະຕ້ອງລະບຸລາຍຊື່ໄຟລ໌ທັງໝົດຂອງໂຄງການທີ່ຕິດຕັ້ງ, ຍົກເວັ້ນໄຟລ໌ ``.pyc`` " +"ທີ່ກົງກັບໄຟລ໌ ``.py`` ທີ່ລະບຸໄວ້ໃນ ``RECORD`` ເຊິ່ງເປັນທາງເລືອກ. ທີ່ສຳຄັນ, ເນື້ອໃນຂອງໄດເລັກທໍຣີ " +"``.dist-info`` (ລວມທັງໄຟລ໌ ``RECORD`` ເອງ) ຈະຕ້ອງຖືກລະບຸໄວ້. ສ່ວນໄດເລັກທໍຣີຕ່າງໆ " +"ແມ່ນບໍ່ຄວນລະບຸໄວ້." + +#: ../source/specifications/recording-installed-packages.rst:141 +msgid "" +"To completely uninstall a package, a tool needs to remove all files listed " +"in ``RECORD``, all ``.pyc`` files (of all optimization levels) corresponding " +"to removed ``.py`` files, and any directories emptied by the uninstallation." +msgstr "" +"ເພື່ອຖອນການຕິດຕັ້ງແພັກເກດໃຫ້ສົມບູນ, ເຄື່ອງມືຕ້ອງລຶບໄຟລ໌ທັງໝົດທີ່ລະບຸໄວ້ໃນ ``RECORD``, ໄຟລ໌ " +"``.pyc`` ທັງໝົດ (ຂອງທຸກລະດັບ optimization) ທີ່ກົງກັບໄຟລ໌ ``.py`` ທີ່ຖືກລຶບອອກ, ແລະ " +"ໄດເລັກທໍຣີໃດໆ ທີ່ວ່າງເປົ່າຫຼັງຈາກການຖອນການຕິດຕັ້ງ." + +#: ../source/specifications/recording-installed-packages.rst:146 +msgid "Here is an example snippet of a possible ``RECORD`` file::" +msgstr "ນີ້ແມ່ນຕົວຢ່າງບາງສ່ວນຂອງໄຟລ໌ ``RECORD`` ທີ່ເປັນໄປໄດ້::" + +#: ../source/specifications/recording-installed-packages.rst:165 +msgid "" +"If the ``RECORD`` file is missing, tools that rely on ``.dist-info`` must " +"not attempt to uninstall or upgrade the package. (This restriction does not " +"apply to tools that rely on other sources of information, such as system " +"package managers in Linux distros.)" +msgstr "" +"ຫາກບໍ່ມີໄຟລ໌ ``RECORD``, ເຄື່ອງມືທີ່ອີງໃສ່ ``.dist-info`` ຈະຕ້ອງບໍ່ພະຍາຍາມຖອນການຕິດຕັ້ງ ຫຼື " +"ອັບເກຣດແພັກເກດ. (ຂໍ້ຈຳກັດນີ້ບໍ່ໄດ້ໃຊ້ກັບເຄື່ອງມືທີ່ອີງໃສ່ແຫຼ່ງຂໍ້ມູນອື່ນໆ, ເຊັ່ນ ຕົວຈັດການແພັກເກດລະບົບໃນ " +"Linux distros.)" + +#: ../source/specifications/recording-installed-packages.rst:172 +msgid "" +"It is *strongly discouraged* for an installed package to modify itself " +"(e.g., store cache files under its namespace in ``site-packages``). Changes " +"inside ``site-packages`` should be left to specialized installer tools such " +"as pip. If a package is nevertheless modified in this way, then the " +"``RECORD`` must be updated, otherwise uninstalling the package will leave " +"unlisted files in place (possibly resulting in a zombie namespace package)." +msgstr "" +"*ບໍ່ແນະນຳຢ່າງເດັດຂາດ* ໃຫ້ແພັກເກດທີ່ຕິດຕັ້ງແລ້ວແກ້ໄຂຕົວມັນເອງ (ເຊັ່ນ: ການເກັບໄຟລ໌ cache ໄວ້ພາຍໃຕ້ " +"namespace ຂອງມັນໃນ ``site-packages``). ການປ່ຽນແປງພາຍໃນ ``site-packages`` " +"ຄວນປ່ອຍໃຫ້ເປັນໜ້າທີ່ຂອງເຄື່ອງມືຕິດຕັ້ງສະເພາະທາງ ເຊັ່ນ pip. ຢ່າງໃດກໍຕາມ, " +"ຫາກແພັກເກດຖືກແກ້ໄຂໃນລັກສະນະນີ້, ``RECORD`` ຈະຕ້ອງຖືກອັບເດດ, " +"ຖ້າບໍ່ດັ່ງນັ້ນການຖອນການຕິດຕັ້ງແພັກເກດຈະເຮັດໃຫ້ມີໄຟລ໌ທີ່ບໍ່ໄດ້ລະບຸໄວ້ຕົກຄ້າງຢູ່ (ເຊິ່ງອາດສົ່ງຜົນໃຫ້ເກີດ zombie " +"namespace package)." + +#: ../source/specifications/recording-installed-packages.rst:181 +msgid "The INSTALLER file" +msgstr "ໄຟລ໌ INSTALLER" + +#: ../source/specifications/recording-installed-packages.rst:183 +msgid "" +"If present, ``INSTALLER`` is a single-line text file naming the tool used to " +"install the project. If the installer is executable from the command line, " +"``INSTALLER`` should contain the command name. Otherwise, it should contain " +"a printable ASCII string." +msgstr "" +"ຫາກມີ, ``INSTALLER`` ແມ່ນໄຟລ໌ຂໍ້ຄວາມແຖວດຽວທີ່ລະບຸຊື່ຂອງເຄື່ອງມືທີ່ໃຊ້ເພື່ອຕິດຕັ້ງໂຄງການ. " +"ຫາກຕົວຕິດຕັ້ງສາມາດເອີ້ນໃຊ້ໄດ້ຈາກ command line, ``INSTALLER`` ຄວນປະກອບດ້ວຍຊື່ຄຳສັ່ງ. " +"ຖ້າບໍ່ດັ່ງນັ້ນ, ມັນຄວນປະກອບດ້ວຍ string ASCII ທີ່ສາມາດພິມໄດ້." + +#: ../source/specifications/recording-installed-packages.rst:189 +msgid "The file can be terminated by zero or more ASCII whitespace characters." +msgstr "ໄຟລ໌ສາມາດຈົບລົງດ້ວຍຕົວອັກສອນ ASCII whitespace ສູນ ຫຼື ຫຼາຍກວ່ານັ້ນ." + +#: ../source/specifications/recording-installed-packages.rst:191 +msgid "Here are examples of two possible ``INSTALLER`` files::" +msgstr "ນີ້ແມ່ນຕົວຢ່າງຂອງໄຟລ໌ ``INSTALLER`` ທີ່ເປັນໄປໄດ້ສອງແບບ::" + +#: ../source/specifications/recording-installed-packages.rst:199 +msgid "" +"This value should be used for informational purposes only. For example, if a " +"tool is asked to uninstall a project but finds no ``RECORD`` file, it may " +"suggest that the tool named in ``INSTALLER`` may be able to do the " +"uninstallation." +msgstr "" +"ຄ່ານີ້ຄວນຖືກໃຊ້ເພື່ອຈຸດປະສົງໃນການໃຫ້ຂໍ້ມູນເທົ່ານັ້ນ. ຕົວຢ່າງ: ຫາກເຄື່ອງມືຖືກຮ້ອງຂໍໃຫ້ຖອນການຕິດຕັ້ງໂຄງການ " +"ແຕ່ບໍ່ພົບໄຟລ໌ ``RECORD``, ມັນອາດຈະແນະນຳວ່າເຄື່ອງມືທີ່ລະບຸຊື່ໄວ້ໃນ ``INSTALLER`` " +"ອາດຈະສາມາດເຮັດການຖອນການຕິດຕັ້ງໄດ້." + +#: ../source/specifications/recording-installed-packages.rst:206 +msgid "The entry_points.txt file" +msgstr "ໄຟລ໌ entry_points.txt" + +#: ../source/specifications/recording-installed-packages.rst:208 +msgid "" +"This file MAY be created by installers to indicate when packages contain " +"components intended for discovery and use by other code, including console " +"scripts and other applications that the installer has made available for " +"execution." +msgstr "" +"ໄຟລ໌ນີ້ ອາດຈະ (MAY) ຖືກສ້າງຂຶ້ນໂດຍຕົວຕິດຕັ້ງ ເພື່ອບົ່ງບອກວ່າເມື່ອໃດທີ່ແພັກເກດມີອົງປະກອບທີ່ມີໄວ້ເພື່ອໃຫ້ " +"code ອື່ນຄົ້ນຫາ ແລະ ໃຊ້ງານ, ລວມທັງ console scripts ແລະ ແອັບພລິເຄຊັນອື່ນໆ " +"ທີ່ຕົວຕິດຕັ້ງໄດ້ເຮັດໃຫ້ພ້ອມສຳລັບການປະຕິບັດງານ." + +#: ../source/specifications/recording-installed-packages.rst:213 +msgid "Its detailed specification is at :ref:`entry-points`." +msgstr "ຂໍ້ກຳນົດລະອຽດຂອງມັນແມ່ນຢູ່ທີ່ :ref:`entry-points`." + +#: ../source/specifications/recording-installed-packages.rst:217 +msgid "The direct_url.json file" +msgstr "ໄຟລ໌ direct_url.json" + +#: ../source/specifications/recording-installed-packages.rst:219 +msgid "" +"This file MUST be created by installers when installing a distribution from " +"a requirement specifying a direct URL reference (including a VCS URL)." +msgstr "" +"ໄຟລ໌ນີ້ ຈະຕ້ອງ (MUST) ຖືກສ້າງຂຶ້ນໂດຍຕົວຕິດຕັ້ງ ເມື່ອຕິດຕັ້ງການແຈກຢາຍຈາກ requirement ທີ່ລະບຸ URL " +"ອ້າງອີງໂດຍກົງ (ລວມທັງ VCS URL)." + +#: ../source/specifications/recording-installed-packages.rst:225 +msgid "Its detailed specification is at :ref:`direct-url`." +msgstr "ຂໍ້ກຳນົດລະອຽດຂອງມັນແມ່ນຢູ່ທີ່ :ref:`direct-url`." + +#: ../source/specifications/recording-installed-packages.rst:229 +msgid "The :file:`licenses/` subdirectory" +msgstr "ໄດເລັກທໍຣີຍ່ອຍ :file:`licenses/`" + +#: ../source/specifications/recording-installed-packages.rst:231 +msgid "" +"If the metadata version is 2.4 or greater and one or more ``License-File`` " +"fields is specified, the :file:`.dist-info/` directory MUST contain " +"a :file:`licenses/` subdirectory which MUST contain the files listed in the " +"``License-File`` fields in the :file:`METADATA` file at their respective " +"paths relative to the :file:`licenses/` directory. Any files in this " +"directory MUST be copied from wheels by the install tools." +msgstr "" +"ຫາກເວີຊັນຂອງ metadata ແມ່ນ 2.4 ຫຼື ສູງກວ່າ ແລະ ມີການລະບຸຟິລ ``License-File`` ໜຶ່ງຟິລ ຫຼື " +"ຫຼາຍກວ່າ, ໄດເລັກທໍຣີ :file:`.dist-info/` ຈະຕ້ອງ (MUST) " +"ປະກອບມີໄດເລັກທໍຣີຍ່ອຍ :file:`licenses/` ເຊິ່ງຈະຕ້ອງປະກອບມີໄຟລ໌ທີ່ລະບຸໄວ້ໃນຟິລ ``License-" +"File`` ໃນໄຟລ໌ :file:`METADATA` ຕາມ path " +"ຂອງພວກມັນທີ່ທຽບເຄືອງກັບໄດເລັກທໍຣີ :file:`licenses/`. ໄຟລ໌ໃດໆ ໃນໄດເລັກທໍຣີນີ້ ຈະຕ້ອງ (MUST) " +"ຖືກກັອບປີ້ມາຈາກ wheels ໂດຍເຄື່ອງມືຕິດຕັ້ງ." + +#: ../source/specifications/recording-installed-packages.rst:240 +msgid "The :file:`sboms/` subdirectory" +msgstr "ໄດເລັກທໍຣີຍ່ອຍ :file:`sboms/`" + +#: ../source/specifications/recording-installed-packages.rst:242 +msgid "" +"All files contained within the :file:`.dist-info/sboms/` directory MUST be " +"Software Bill-of-Materials (SBOM) files that describe software contained " +"within the installed package. Any files in this directory MUST be copied " +"from wheels by the install tools." +msgstr "" +"ໄຟລ໌ທັງໝົດທີ່ບັນຈຸຢູ່ພາຍໃນໄດເລັກທໍຣີ :file:`.dist-info/sboms/` ຈະຕ້ອງ (MUST) ເປັນໄຟລ໌ " +"Software Bill-of-Materials (SBOM) ທີ່ອະທິບາຍຊອບແວທີ່ບັນຈຸຢູ່ພາຍໃນແພັກເກດທີ່ຕິດຕັ້ງ. ໄຟລ໌ໃດໆ " +"ໃນໄດເລັກທໍຣີນີ້ ຈະຕ້ອງ (MUST) ຖືກກັອບປີ້ມາຈາກ wheels ໂດຍເຄື່ອງມືຕິດຕັ້ງ." + +#: ../source/specifications/recording-installed-packages.rst:249 +msgid "Intentionally preventing changes to installed packages" +msgstr "ການເຈດຕະນາປ້ອງກັນການປ່ຽນແປງຕໍ່ແພັກເກດທີ່ຕິດຕັ້ງແລ້ວ" + +#: ../source/specifications/recording-installed-packages.rst:251 +msgid "" +"In some cases (such as when needing to manage external dependencies in " +"addition to Python ecosystem dependencies), it is desirable for a tool that " +"installs packages into a Python environment to ensure that other tools are " +"not used to uninstall or otherwise modify that installed package, as doing " +"so may cause compatibility problems with the wider environment." +msgstr "" +"ໃນບາງກໍລະນີ (ເຊັ່ນ: ເມື່ອຈຳເປັນຕ້ອງຈັດການ dependencies ພາຍນອກ ເພີ່ມເຕີມຈາກ dependencies " +"ຂອງລະບົບນິເວດ Python), ມັນເປັນສິ່ງທີ່ເພິ່ງປາຖະໜາສຳລັບເຄື່ອງມືທີ່ຕິດຕັ້ງແພັກເກດລົງໃນສະພາບແວດລ້ອມ " +"Python ເພື່ອໃຫ້ແນ່ໃຈວ່າເຄື່ອງມືອື່ນໆ ຈະບໍ່ຖືກນຳມາໃຊ້ເພື່ອຖອນການຕິດຕັ້ງ ຫຼື ແກ້ໄຂແພັກເກດທີ່ຕິດຕັ້ງນັ້ນ, " +"ເພາະການເຮັດແນວນັ້ນອາດເຮັດໃຫ້ເກີດບັນຫາຄວາມເຂົ້າກັນໄດ້ກັບສະພາບແວດລ້ອມໂດຍລວມ." + +#: ../source/specifications/recording-installed-packages.rst:257 +msgid "To achieve this, affected tools should take the following steps:" +msgstr "ເພື່ອບັນລຸສິ່ງນີ້, ເຄື່ອງມືທີ່ກ່ຽວຂ້ອງຄວນດຳເນີນການຕາມຂັ້ນຕອນດັ່ງຕໍ່ໄປນີ້:" + +#: ../source/specifications/recording-installed-packages.rst:259 +msgid "" +"Rename or remove the ``RECORD`` file to prevent changes via other tools " +"(e.g. appending a suffix to create a non-standard ``RECORD.tool`` file if " +"the tool itself needs the information, or omitting the file entirely if the " +"package contents are tracked and managed via other means)" +msgstr "" +"ປ່ຽນຊື່ ຫຼື ລຶບໄຟລ໌ ``RECORD`` ອອກເພື່ອປ້ອງກັນການປ່ຽນແປງຜ່ານເຄື່ອງມືອື່ນ (ເຊັ່ນ: " +"ການເພີ່ມນາມສະກຸນເພື່ອສ້າງໄຟລ໌ ``RECORD.tool`` ທີ່ບໍ່ເປັນມາດຕະຖານ ຫາກຕົວເຄື່ອງມືເອງຕ້ອງການຂໍ້ມູນ, " +"ຫຼື ລະເວັ້ນໄຟລ໌ນັ້ນທັງໝົດ ຫາກເນື້ອໃນຂອງແພັກເກດຖືກຕິດຕາມ ແລະ ຈັດການຜ່ານວິທີອື່ນ)" + +#: ../source/specifications/recording-installed-packages.rst:263 +msgid "" +"Write an ``INSTALLER`` file indicating the name of the tool that should be " +"used to manage the package (this allows ``RECORD``-aware tools to provide " +"better error notices when asked to modify affected packages)" +msgstr "" +"ຂຽນໄຟລ໌ ``INSTALLER`` ເພື່ອບົ່ງບອກຊື່ຂອງເຄື່ອງມືທີ່ຄວນໃຊ້ເພື່ອຈັດການແພັກເກດ " +"(ສິ່ງນີ້ຊ່ວຍໃຫ້ເຄື່ອງມືທີ່ຮູ້ຈັກ ``RECORD`` ສາມາດແຈ້ງເຕືອນຂໍ້ຜິດພາດໄດ້ດີຂຶ້ນ " +"ເມື່ອຖືກຮ້ອງຂໍໃຫ້ແກ້ໄຂແພັກເກດທີ່ກ່ຽວຂ້ອງ)" + +#: ../source/specifications/recording-installed-packages.rst:267 +msgid "" +"Python runtime providers may also prevent inadvertent modification of " +"platform provided packages by modifying the default Python package " +"installation scheme to use a location other than that used by platform " +"provided packages (while also ensuring both locations appear on the default " +"Python import path)." +msgstr "" +"ຜູ້ໃຫ້ບໍລິການ Python runtime ຍັງອາດປ້ອງກັນການແກ້ໄຂແພັກເກດທີ່ມາພ້ອມກັບແພລດຟອມໂດຍບໍ່ໄດ້ຕັ້ງໃຈ " +"ໂດຍການແກ້ໄຂຮູບແບບການຕິດຕັ້ງແພັກເກດ Python " +"ເລີ່ມຕົ້ນໃຫ້ໄປໃຊ້ຕຳແໜ່ງອື່ນທີ່ບໍ່ແມ່ນບ່ອນທີ່ແພັກເກດຂອງແພລດຟອມໃຊ້ " +"(ໃນຂະນະທີ່ຍັງເຮັດໃຫ້ແນ່ໃຈວ່າທັງສອງຕຳແໜ່ງປາກົດຢູ່ໃນ path ການ import ເລີ່ມຕົ້ນຂອງ Python)." + +#: ../source/specifications/recording-installed-packages.rst:272 +msgid "" +"In some circumstances, it may be desirable to block even installation of " +"additional packages via Python-specific tools. For these cases refer " +"to :ref:`externally-managed-environments`" +msgstr "" +"ໃນບາງສະຖານະການ, " +"ມັນອາດຈະເປັນສິ່ງທີ່ເພິ່ງປາຖະໜາທີ່ຈະບລັອກແມ່ນແຕ່ການຕິດຕັ້ງແພັກເກດເພີ່ມເຕີມຜ່ານເຄື່ອງມືສະເພາະຂອງ " +"Python. ສຳລັບກໍລະນີເຫຼົ່ານີ້ ໃຫ້ເບິ່ງທີ່ :ref:`externally-managed-environments`" + +#: ../source/specifications/recording-installed-packages.rst:280 +msgid "" +"June 2009: The original version of this specification was approved " +"through :pep:`376`. At the time, it was known as the *Database of Installed " +"Python Distributions*." +msgstr "" +"ມິຖຸນາ 2009: ເວີຊັນດັ້ງເດີມຂອງຂໍ້ກຳນົດນີ້ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`376`. ໃນເວລານັ້ນ, " +"ມັນຖືກຮູ້ຈັກໃນຊື່ *Database of Installed Python Distributions*." + +#: ../source/specifications/recording-installed-packages.rst:283 +msgid "" +"March 2020: The specification of the ``direct_url.json`` file was approved " +"through :pep:`610`. It is only mentioned on this page; see :ref:`direct-url` " +"for the full definition." +msgstr "" +"ມີນາ 2020: ຂໍ້ກຳນົດຂອງໄຟລ໌ ``direct_url.json`` ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`610`. " +"ມັນຖືກກ່າວເຖິງໃນໜ້ານີ້ເທົ່ານັ້ນ; ເບິ່ງ :ref:`direct-url` ສຳລັບຄຳນິຍາມເຕັມ." + +#: ../source/specifications/recording-installed-packages.rst:286 +msgid "" +"September 2020: Various amendments and clarifications were approved " +"through :pep:`627`." +msgstr "ກັນຍາ 2020: ການປັບປຸງ ແລະ ການຊີ້ແຈງຕ່າງໆ ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`627`." + +#: ../source/specifications/schemas/index.rst:4 +msgid "PyPA schemas" +msgstr "PyPA schemas" + +#: ../source/specifications/schemas/index.rst:6 +msgid "`direct_url.json `_" +msgstr "`direct_url.json `_" + +#: ../source/specifications/schemas/index.rst:7 +msgid "`build-details.json `_" +msgstr "`build-details.json `_" + +#: ../source/specifications/schemas/index.rst:8 +msgid "`pylock.toml `_" +msgstr "`pylock.toml `_" + +#: ../source/specifications/section-distribution-formats.rst:3 +msgid "Package Distribution File Formats" +msgstr "ຮູບແບບໄຟລ໌ການແຈກຢາຍແພັກເກດ" + +#: ../source/specifications/section-distribution-metadata.rst:3 +msgid "Package Distribution Metadata" +msgstr "Metadata ຂອງການແຈກຢາຍແພັກເກດ" + +#: ../source/specifications/section-installation-metadata.rst:3 +msgid "Package Installation Metadata" +msgstr "Metadata ຂອງການຕິດຕັ້ງແພັກເກດ" + +#: ../source/specifications/section-package-indices.rst:3 +msgid "Package Index Interfaces" +msgstr "ອິນເຕີເຟດດັດຊະນີແພັກເກດ" + +#: ../source/specifications/section-python-description-formats.rst:3 +msgid "Python Description Formats" +msgstr "ຮູບແບບການອະທິບາຍຂອງ Python" + +#: ../source/specifications/section-reproducible-environments.rst:3 +msgid "Reproducible Environments" +msgstr "ສະພາບແວດລ້ອມທີ່ສາມາດເຮັດຊ້ຳໄດ້" + +#: ../source/specifications/simple-repository-api.rst:6 +msgid "Simple repository API" +msgstr "Simple repository API" + +#: ../source/specifications/simple-repository-api.rst:8 +msgid "" +"The keywords \"**MUST**\", \"**MUST NOT**\", \"**REQUIRED**\", " +"\"**SHALL**\", \"**SHALL NOT**\", \"**SHOULD**\", \"**SHOULD NOT**\", " +"\"**RECOMMENDED**\", \"**MAY**\", and \"**OPTIONAL**\"\" in this document " +"are to be interpreted as described in :rfc:`2119`." +msgstr "" +"ຄຳສຳຄັນ \"**MUST**\", \"**MUST NOT**\", \"**REQUIRED**\", \"**SHALL**\", " +"\"**SHALL NOT**\", \"**SHOULD**\", \"**SHOULD NOT**\", \"**RECOMMENDED**\", " +"\"**MAY**\", ແລະ \"**OPTIONAL**\" ໃນເອກະສານນີ້ " +"ແມ່ນໃຫ້ຕີຄວາມໝາຍຕາມທີ່ອະທິບາຍໄວ້ໃນ :rfc:`2119`." + +#: ../source/specifications/simple-repository-api.rst:13 +msgid "" +"The interface for querying available package versions and retrieving " +"packages from an index server comes in two forms: :ref:`HTML ` and :ref:`JSON `." +msgstr "" +"ອິນເຕີເຟດສຳລັບການສອບຖາມເວີຊັນຂອງແພັກເກດທີ່ມີຢູ່ ແລະ ການດຶງແພັກເກດຈາກເຊີບເວີດັດຊະນີ (index " +"server) ມີສອງຮູບແບບ: :ref:`HTML ` " +"ແລະ :ref:`JSON `." + +#: ../source/specifications/simple-repository-api.rst:21 +msgid "Base API" +msgstr "API ພື້ນຖານ" + +#: ../source/specifications/simple-repository-api.rst:23 +msgid "" +"A repository that implements the simple API is defined by its base URL. This " +"is the top level URL that all additional URLs are below. The API is named " +"the \"simple\" repository due to the fact that PyPI's base URL is ``https://" +"pypi.org/simple/``." +msgstr "" +"ຄັງເກັບ (repository) ທີ່ປະຕິບັດຕາມ simple API ແມ່ນຖືກກຳນົດໂດຍ URL ພື້ນຖານ (base URL) " +"ຂອງມັນ. ນີ້ແມ່ນ URL ລະດັບສູງສຸດ ເຊິ່ງ URL ເພີ່ມເຕີມທັງໝົດຈະຢູ່ພາຍໃຕ້ URL ນີ້. API ນີ້ຖືກຕັ້ງຊື່ວ່າ " +"\"simple\" repository ເນື່ອງຈາກຄວາມຈິງທີ່ວ່າ base URL ຂອງ PyPI ແມ່ນ ``https://" +"pypi.org/simple/``." + +#: ../source/specifications/simple-repository-api.rst:28 +msgid "" +"All subsequent URLs in this document will be relative to this base URL (so " +"given PyPI's URL, a URL of ``/foo/`` would be ``https://pypi.org/simple/foo/" +"``." +msgstr "" +"URL ທີ່ຕາມມາທັງໝົດໃນເອກະສານນີ້ ຈະທຽບເຄືອງກັບ base URL ນີ້ (ດັ່ງນັ້ນ ຫາກໃຫ້ URL ຂອງ PyPI ມາ, " +"URL ຂອງ ``/foo/`` ກໍຈະເປັນ ``https://pypi.org/simple/foo/``)." + +#: ../source/specifications/simple-repository-api.rst:33 +msgid "Normalized Names" +msgstr "ຊື່ທີ່ເປັນມາດຕະຖານ" + +#: ../source/specifications/simple-repository-api.rst:35 +msgid "" +"This spec references the concept of a \"normalized\" project name. As " +"per :ref:`the name normalization specification ` the " +"only valid characters in a name are the ASCII alphabet, ASCII numbers, " +"``.``, ``-``, and ``_``. The name should be lowercased with all runs of the " +"characters ``.``, ``-``, or ``_`` replaced with a single ``-`` character. " +"This can be implemented in Python with the ``re`` module::" +msgstr "" +"ຂໍ້ກຳນົດນີ້ອ້າງອີງເຖິງແນວຄວາມຄິດຂອງຊື່ໂຄງການທີ່ເປັນ \"ມາດຕະຖານ\" (normalized). " +"ຕາມ :ref:`ຂໍ້ກຳນົດການເຮັດໃຫ້ຊື່ເປັນມາດຕະຖານ ` " +"ຕົວອັກສອນທີ່ໃຊ້ໄດ້ໃນຊື່ມີພຽງແຕ່ ຕົວອັກສອນ ASCII, ຕົວເລກ ASCII, ``.``, ``-``, ແລະ ``_``. " +"ຊື່ຄວນເປັນຕົວພິມນ້ອຍ ໂດຍທີ່ຕົວອັກສອນ ``.``, ``-``, ຫຼື ``_`` ທີ່ຢູ່ຕິດກັນທັງໝົດ " +"ຈະຖືກປ່ຽນແທນດ້ວຍເຄື່ອງໝາຍ ``-`` ພຽງອັນດຽວ. ສິ່ງນີ້ສາມາດປະຕິບັດໄດ້ໃນ Python ດ້ວຍໂມດູນ " +"``re``::" + +#: ../source/specifications/simple-repository-api.rst:50 +msgid "Versioning PyPI's Simple API" +msgstr "ການກຳນົດເວີຊັນໃຫ້ກັບ Simple API ຂອງ PyPI" + +#: ../source/specifications/simple-repository-api.rst:52 +msgid "" +"This spec proposes the inclusion of a meta tag on the responses of every " +"successful request to a simple API page, which contains a name attribute of " +"``pypi:repository-version``, and a content that is a :ref:`version " +"specifiers specification ` compatible version number, " +"which is further constrained to ONLY be Major.Minor, and none of the " +"additional features supported by :ref:`the version specifiers specification " +"`." +msgstr "" +"ຂໍ້ກຳນົດນີ້ສະເໜີໃຫ້ລວມເອົາ meta tag ໃນການຕອບສະໜອງຂອງທຸກໆ request ທີ່ສຳເລັດໄປຫາໜ້າ simple " +"API, ເຊິ່ງປະກອບດ້ວຍ attribute ຊື່ວ່າ ``pypi:repository-version``, ແລະ ເນື້ອໃນ " +"(content) ທີ່ເປັນໝາຍເລກເວີຊັນທີ່ເຂົ້າກັນໄດ້ກັບ :ref:`ຂໍ້ກຳນົດຕົວລະບຸເວີຊັນ `, ເຊິ່ງຖືກກຳນົດເພີ່ມເຕີມໃຫ້ເປັນພຽງ Major.Minor ເທົ່ານັ້ນ, ແລະ ບໍ່ມີຟີເຈີເພີ່ມເຕີມອື່ນໆ " +"ທີ່ຮອງຮັບໂດຍ :ref:`ຂໍ້ກຳນົດຕົວລະບຸເວີຊັນ `." + +#: ../source/specifications/simple-repository-api.rst:60 +msgid "This would end up looking like:" +msgstr "ສິ່ງນີ້ຈະມີລັກສະນະຄື:" + +#: ../source/specifications/simple-repository-api.rst:66 +msgid "When interpreting the repository version:" +msgstr "ເມື່ອແປຄວາມໝາຍຂອງເວີຊັນຄັງເກັບ:" + +#: ../source/specifications/simple-repository-api.rst:68 +msgid "" +"Incrementing the major version is used to signal a backwards incompatible " +"change such that existing clients would no longer be expected to be able to " +"meaningfully use the API." +msgstr "" +"ການເພີ່ມໝາຍເລກເວີຊັນຫຼັກ (major version) " +"ແມ່ນໃຊ້ເພື່ອສົ່ງສັນຍານການປ່ຽນແປງທີ່ບໍ່ເຂົ້າກັນກັບເວີຊັນກ່ອນໜ້າ ຈົນເຖິງຂັ້ນທີ່ clients ທີ່ມີຢູ່ ບໍ່ສາມາດໃຊ້ງານ " +"API ໄດ້ຢ່າງມີຄວາມໝາຍອີກຕໍ່ໄປ." + +#: ../source/specifications/simple-repository-api.rst:71 +msgid "" +"Incrementing the minor version is used to signal a backwards compatible " +"change such that existing clients would still be expected to be able to " +"meaningfully use the API." +msgstr "" +"ການເພີ່ມໝາຍເລກເວີຊັນຍ່ອຍ (minor version) " +"ແມ່ນໃຊ້ເພື່ອສົ່ງສັນຍານການປ່ຽນແປງທີ່ເຂົ້າກັນໄດ້ກັບເວີຊັນກ່ອນໜ້າ ໂດຍທີ່ clients ທີ່ມີຢູ່ " +"ຍັງຄາດວ່າຈະສາມາດໃຊ້ງານ API ໄດ້ຢ່າງມີຄວາມໝາຍ." + +#: ../source/specifications/simple-repository-api.rst:75 +msgid "" +"It is left up to the discretion of any future specs as to what specifically " +"constitutes a backwards incompatible vs compatible change beyond the broad " +"suggestion that existing clients will be able to \"meaningfully\" continue " +"to use the API, and can include adding, modifying, or removing existing " +"features." +msgstr "" +"ມັນຂຶ້ນຢູ່ກັບການພິຈາລະນາຂອງຂໍ້ກຳນົດໃນອະນາຄົດວ່າ ສິ່ງໃດຈະຖືວ່າເປັນການປ່ຽນແປງທີ່ບໍ່ເຂົ້າກັນ ຫຼື " +"ເຂົ້າກັນໄດ້ກັບເວີຊັນກ່ອນໜ້າ ນອກເໜືອຈາກຄຳແນະນຳກວ້າງໆ ທີ່ວ່າ clients ທີ່ມີຢູ່ຈະສາມາດໃຊ້ API " +"ຕໍ່ໄປໄດ້ຢ່າງ \"ມີຄວາມໝາຍ\", ແລະ ສາມາດລວມເຖິງການເພີ່ມ, ການແກ້ໄຂ ຫຼື ການລຶບຟີເຈີທີ່ມີຢູ່." + +#: ../source/specifications/simple-repository-api.rst:81 +msgid "" +"It is expectation of this spec that the major version will never be " +"incremented, and any future major API evolutions would utilize a different " +"mechanism for API evolution. However the major version is included to " +"disambiguate with future versions (e.g. a hypothetical simple api v2 that " +"lived at /v2/, but which would be confusing if the repository-version was " +"set to a version >= 2)." +msgstr "" +"ຂໍ້ກຳນົດນີ້ຄາດການວ່າເວີຊັນຫຼັກຈະບໍ່ຖືກເພີ່ມຂຶ້ນເລີຍ, ແລະ ການພັດທະນາ API ຫຼັກໃດໆ ໃນອະນາຄົດ " +"ຈະໃຊ້ກົນໄກອື່ນໃນການພັດທະນາ API. ຢ່າງໃດກໍຕາມ, " +"ເວີຊັນຫຼັກໄດ້ຖືກລວມໄວ້ເພື່ອແຍກຄວາມແຕກຕ່າງກັບເວີຊັນໃນອະນາຄົດ (ຕົວຢ່າງ: ຫາກມີ simple api v2 " +"ທີ່ຢູ່ທີ່ /v2/ ແຕ່ອາດຈະເຮັດໃຫ້ສັບສົນຫາກ repository-version ຖືກຕັ້ງເປັນເວີຊັນ >= 2)." + +#: ../source/specifications/simple-repository-api.rst:89 +msgid "API Version History" +msgstr "ປະຫວັດເວີຊັນ API" + +#: ../source/specifications/simple-repository-api.rst:91 +msgid "" +"This section contains only an abbreviated history of changes, as marked by " +"the API version number. For a full history of changes including changes made " +"before API versioning, see :ref:`History `." +msgstr "" +"ສ່ວນນີ້ປະກອບມີພຽງແຕ່ປະຫວັດການປ່ຽນແປງແບບຫຍໍ້, ຕາມທີ່ລະບຸໂດຍໝາຍເລກເວີຊັນ API. " +"ສຳລັບປະຫວັດການປ່ຽນແປງທັງໝົດ ລວມທັງການປ່ຽນແປງກ່ອນທີ່ຈະມີການກຳນົດເວີຊັນ API, " +"ໃຫ້ເບິ່ງ :ref:`History `." + +#: ../source/specifications/simple-repository-api.rst:95 +msgid "API version 1.0: Initial version of the API, declared with :pep:`629`." +msgstr "API ເວີຊັນ 1.0: ເວີຊັນເລີ່ມຕົ້ນຂອງ API, ປະກາດໃຊ້ດ້ວຍ :pep:`629`." + +#: ../source/specifications/simple-repository-api.rst:96 +msgid "" +"API version 1.1: Added ``versions``, ``files[].size``, and ``files[].upload-" +"time`` metadata to the JSON serialization, declared with :pep:`700`." +msgstr "" +"API ເວີຊັນ 1.1: ເພີ່ມ metadata ``versions``, ``files[].size``, ແລະ " +"``files[].upload-time`` ເຂົ້າໃນການເຮັດ JSON serialization, " +"ປະກາດໃຊ້ດ້ວຍ :pep:`700`." + +#: ../source/specifications/simple-repository-api.rst:98 +msgid "" +"API version 1.2: Added repository \"tracks\" metadata, declared " +"with :pep:`708`." +msgstr "API ເວີຊັນ 1.2: ເພີ່ມ metadata \"tracks\" ຂອງຄັງເກັບ, ປະກາດໃຊ້ດ້ວຍ :pep:`708`." + +#: ../source/specifications/simple-repository-api.rst:99 +msgid "API version 1.3: Added provenance metadata, declared with :pep:`740`." +msgstr "API ເວີຊັນ 1.3: ເພີ່ມ metadata ແຫຼ່ງທີ່ມາ (provenance), ປະກາດໃຊ້ດ້ວຍ :pep:`740`." + +#: ../source/specifications/simple-repository-api.rst:100 +msgid "API version 1.4: Added status markers, declared with :pep:`792`." +msgstr "API ເວີຊັນ 1.4: ເພີ່ມຕົວບົ່ງບອກສະຖານະ, ປະກາດໃຊ້ດ້ວຍ :pep:`792`." + +#: ../source/specifications/simple-repository-api.rst:103 +msgid "Clients" +msgstr "ລູກຄ້າ (Clients)" + +#: ../source/specifications/simple-repository-api.rst:105 +msgid "" +"Clients interacting with the simple API **SHOULD** introspect each response " +"for the repository version, and if that data does not exist **MUST** assume " +"that it is version 1.0." +msgstr "" +"Clients ທີ່ໂຕ້ຕອບກັບ simple API ຄວນ (SHOULD) " +"ກວດສອບແຕ່ລະການຕອບສະໜອງສຳລັບເວີຊັນຂອງຄັງເກັບ, ແລະ ຫາກບໍ່ມີຂໍ້ມູນນັ້ນ ຈະຕ້ອງ (MUST) " +"ສັນນິຖານວ່າມັນເປັນເວີຊັນ 1.0." + +#: ../source/specifications/simple-repository-api.rst:109 +msgid "" +"When encountering a major version greater than expected, clients **MUST** " +"hard fail with an appropriate error message for the user." +msgstr "" +"ເມື່ອພົບເວີຊັນຫຼັກທີ່ສູງກວ່າທີ່ຄາດໄວ້, clients ຈະຕ້ອງ (MUST) ຢຸດການເຮັດວຽກທັນທີ (hard fail) " +"ພ້ອມກັບຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດທີ່ເໝາະສົມສຳລັບຜູ້ໃຊ້." + +#: ../source/specifications/simple-repository-api.rst:112 +msgid "" +"When encountering a minor version greater than expected, clients **SHOULD** " +"warn users with an appropriate message." +msgstr "" +"ເມື່ອພົບເວີຊັນຍ່ອຍທີ່ສູງກວ່າທີ່ຄາດໄວ້, clients ຄວນ (SHOULD) ແຈ້ງເຕືອນຜູ້ໃຊ້ດ້ວຍຂໍ້ຄວາມທີ່ເໝາະສົມ." + +#: ../source/specifications/simple-repository-api.rst:115 +msgid "" +"Clients **MAY** still continue to use feature detection in order to " +"determine what features a repository uses." +msgstr "" +"Clients ອາດຈະ (MAY) ຍັງຄົງໃຊ້ການກວດຫາຟີເຈີ (feature detection) ຕໍ່ໄປ " +"ເພື່ອພິຈາລະນາວ່າມີຟີເຈີໃດທີ່ຄັງເກັບນັ້ນໃຊ້." + +#: ../source/specifications/simple-repository-api.rst:121 +msgid "HTML Serialization" +msgstr "ການເຮັດ HTML Serialization" + +#: ../source/specifications/simple-repository-api.rst:127 +msgid "" +"The HTML representation is considered \"frozen\" and is not expected to be " +"updated. Producers and consumers of the simple API should prefer " +"the :ref:`JSON representation `." +msgstr "" +"ການສະແດງຜົນແບບ HTML ຖືກຖືວ່າ \"ຄົງທີ່\" (frozen) ແລະ ຄາດວ່າຈະບໍ່ມີການອັບເດດອີກ. ຜູ້ຜະລິດ ແລະ " +"ຜູ້ໃຊ້ simple API ຄວນເລືອກໃຊ້ :ref:`ການສະແດງຜົນແບບ JSON `." + +#: ../source/specifications/simple-repository-api.rst:131 +msgid "" +"See :pep:`833` for additional information about the HTML representation's " +"status." +msgstr "ເບິ່ງ :pep:`833` ສຳລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບສະຖານະຂອງການສະແດງຜົນແບບ HTML." + +#: ../source/specifications/simple-repository-api.rst:134 +msgid "" +"The following constraints apply to all HTML serialized responses described " +"in this spec:" +msgstr "ຂໍ້ຈຳກັດດັ່ງຕໍ່ໄປນີ້ໃຊ້ກັບທຸກການຕອບສະໜອງໃນຮູບແບບ HTML ທີ່ອະທິບາຍໄວ້ໃນຂໍ້ກຳນົດນີ້:" + +#: ../source/specifications/simple-repository-api.rst:137 +msgid "All HTML responses **MUST** be a valid HTML5 document." +msgstr "ທຸກການຕອບສະໜອງແບບ HTML ຈະຕ້ອງ (MUST) ເປັນເອກະສານ HTML5 ທີ່ຖືກຕ້ອງ." + +#: ../source/specifications/simple-repository-api.rst:138 +msgid "" +"HTML responses **MAY** contain one or more ``meta`` tags in the ```` " +"section. The semantics of these tags are defined below." +msgstr "" +"ການຕອບສະໜອງແບບ HTML ອາດຈະ (MAY) ປະກອບມີ ``meta`` tags ໜຶ່ງ ຫຼື ຫຼາຍອັນໃນສ່ວນ " +"````. ຄວາມໝາຍຂອງ tags ເຫຼົ່ານີ້ແມ່ນຖືກກຳນົດໄວ້ຂ້າງລຸ່ມ." + +#: ../source/specifications/simple-repository-api.rst:142 +#: ../source/specifications/simple-repository-api.rst:437 +msgid "Project List" +msgstr "ລາຍຊື່ໂຄງການ" + +#: ../source/specifications/simple-repository-api.rst:144 +msgid "" +"Within a repository, the root URL (``/`` for this spec which represents the " +"base URL) **MUST** be a valid HTML5 page with a single anchor element per " +"project in the repository." +msgstr "" +"ພາຍໃນຄັງເກັບ, root URL (``/`` ສຳລັບຂໍ້ກຳນົດນີ້ ເຊິ່ງສະແດງເຖິງ base URL) ຈະຕ້ອງ (MUST) " +"ເປັນໜ້າ HTML5 ທີ່ຖືກຕ້ອງ ໂດຍມີອົງປະກອບ anchor ພຽງອັນດຽວຕໍ່ໜຶ່ງໂຄງການໃນຄັງເກັບ." + +#: ../source/specifications/simple-repository-api.rst:148 +msgid "" +"The text of each anchor tag **MUST** be the name of the project and the " +"``href`` attribute **MUST** link to the URL for that particular project. As " +"an example:" +msgstr "" +"ຂໍ້ຄວາມຂອງແຕ່ລະ anchor tag ຈະຕ້ອງ (MUST) ເປັນຊື່ຂອງໂຄງການ ແລະ attribute ``href`` " +"ຈະຕ້ອງ (MUST) ລິ້ງໄປຫາ URL ສຳລັບໂຄງການນັ້ນໆ. ຕົວຢ່າງ:" + +#: ../source/specifications/simple-repository-api.rst:165 +#: ../source/specifications/simple-repository-api.rst:482 +msgid "Project Detail" +msgstr "ລາຍລະອຽດໂຄງການ" + +#: ../source/specifications/simple-repository-api.rst:167 +msgid "" +"Below the root URL is another URL for each individual project contained " +"within a repository. The format of this URL is ``//``, where the " +"```` is replaced by the normalized name for that project." +msgstr "" +"ຖັດຈາກ root URL ແມ່ນ URL ອື່ນສຳລັບແຕ່ລະໂຄງການທີ່ຢູ່ໃນຄັງເກັບ. ຮູບແບບຂອງ URL ນີ້ແມ່ນ ``/" +"/``, ໂດຍທີ່ ```` ຈະຖືກແທນທີ່ດ້ວຍຊື່ທີ່ເປັນມາດຕະຖານສຳລັບໂຄງການນັ້ນ." + +#: ../source/specifications/simple-repository-api.rst:173 +msgid "" +"For example, a project named \"HolyGrail\" would have a URL like ``/" +"holygrail/``." +msgstr "ຕົວຢ່າງ: ໂຄງການທີ່ຊື່ວ່າ \"HolyGrail\" ຈະມີ URL ເຊັ່ນ ``/holygrail/``." + +#: ../source/specifications/simple-repository-api.rst:176 +msgid "" +"The project detail URL must respond with a valid HTML5 page with a single " +"anchor element per file for the project. The ``href`` attribute **MUST** be " +"a URL that links to the location of the file for download, and the text of " +"the anchor tag **MUST** match the final path component (the filename) of the " +"URL." +msgstr "" +"URL ລາຍລະອຽດໂຄງການຕ້ອງຕອບສະໜອງດ້ວຍໜ້າ HTML5 ທີ່ຖືກຕ້ອງ ໂດຍມີອົງປະກອບ anchor " +"ພຽງອັນດຽວຕໍ່ໜຶ່ງໄຟລ໌ຂອງໂຄງການ. attribute ``href`` ຈະຕ້ອງ (MUST) ເປັນ URL " +"ທີ່ລິ້ງໄປຫາຕຳແໜ່ງຂອງໄຟລ໌ເພື່ອດາວໂຫຼດ, ແລະ ຂໍ້ຄວາມຂອງ anchor tag ຈະຕ້ອງ (MUST) " +"ກົງກັບສ່ວນປະກອບສຸດທ້າຍຂອງ path (ຊື່ໄຟລ໌) ຂອງ URL." + +#: ../source/specifications/simple-repository-api.rst:181 +msgid "" +"Each file URL **SHOULD** include a hash in the form of a URL fragment with " +"the following syntax: ``#=``, where ```` is " +"the lowercase name of the hash function (such as ``sha256``) and " +"```` is the hex encoded digest." +msgstr "" +"ແຕ່ລະ URL ຂອງໄຟລ໌ ຄວນ (SHOULD) ລວມເອົາ hash ໃນຮູບແບບຂອງ URL fragment " +"ດ້ວຍໄວຍາກອນດັ່ງນີ້: ``#=``, ໂດຍທີ່ ```` " +"ແມ່ນຊື່ຕົວພິມນ້ອຍຂອງ hash function (ເຊັ່ນ ``sha256``) ແລະ ```` ແມ່ນ digest " +"ທີ່ຖືກເຂົ້າລະຫັດແບບ hex." + +#: ../source/specifications/simple-repository-api.rst:186 +msgid "" +"In addition to the above, the following constraints are placed on the API:" +msgstr "ນອກເໜືອຈາກຂ້າງເທິງແລ້ວ, ຍັງມີຂໍ້ຈຳກັດດັ່ງຕໍ່ໄປນີ້ສຳລັບ API:" + +#: ../source/specifications/simple-repository-api.rst:188 +msgid "" +"All URLs which respond with an HTML5 page **MUST** end with a ``/`` and the " +"repository **SHOULD** redirect the URLs without a ``/`` to add a ``/`` to " +"the end." +msgstr "" +"ທຸກ URL ທີ່ຕອບສະໜອງດ້ວຍໜ້າ HTML5 ຈະຕ້ອງ (MUST) ລົງທ້າຍດ້ວຍ ``/`` ແລະ ຄັງເກັບ ຄວນ " +"(SHOULD) redirect URL ທີ່ບໍ່ມີ ``/`` ໃຫ້ເພີ່ມ ``/`` ເຂົ້າທາງທ້າຍ." + +#: ../source/specifications/simple-repository-api.rst:192 +msgid "" +"URLs may be either absolute or relative as long as they point to the correct " +"location." +msgstr "URL ອາດຈະເປັນແບບ absolute ຫຼື relative ກໍໄດ້ ຕາບໃດທີ່ພວກມັນຊີ້ໄປຫາຕຳແໜ່ງທີ່ຖືກຕ້ອງ." + +#: ../source/specifications/simple-repository-api.rst:195 +msgid "" +"There are no constraints on where the files must be hosted relative to the " +"repository." +msgstr "ບໍ່ມີຂໍ້ຈຳກັດກ່ຽວກັບບ່ອນທີ່ໄຟລ໌ຈະຕ້ອງຖືກໂຮສ (hosted) ເມື່ອທຽບກັບຄັງເກັບ." + +#: ../source/specifications/simple-repository-api.rst:198 +msgid "" +"There may be any other HTML elements on the API pages as long as the " +"required anchor elements exist." +msgstr "ອາດມີອົງປະກອບ HTML ອື່ນໆ ໃນໜ້າ API ໄດ້ ຕາບໃດທີ່ຍັງມີອົງປະກອບ anchor ທີ່ຈຳເປັນຢູ່." + +#: ../source/specifications/simple-repository-api.rst:201 +msgid "" +"Repositories **MAY** redirect unnormalized URLs to the canonical normalized " +"URL (e.g. ``/Foobar/`` may redirect to ``/foobar/``), however clients **MUST " +"NOT** rely on this redirection and **MUST** request the normalized URL." +msgstr "" +"ຄັງເກັບ ອາດຈະ (MAY) redirect URL ທີ່ບໍ່ເປັນມາດຕະຖານ ໄປຫາ URL ທີ່ເປັນມາດຕະຖານຫຼັກ " +"(canonical) (ເຊັ່ນ: ``/Foobar/`` ອາດຈະ redirect ໄປຫາ ``/foobar/``), ຢ່າງໃດກໍຕາມ " +"clients ຈະຕ້ອງບໍ່ (MUST NOT) ເພິ່ງພາການ redirect ນີ້ ແລະ ຈະຕ້ອງ (MUST) ຮ້ອງຂໍ URL " +"ທີ່ເປັນມາດຕະຖານ." + +#: ../source/specifications/simple-repository-api.rst:206 +msgid "" +"Repositories **SHOULD** choose a hash function from one of the ones " +"guaranteed to be available via the :py:mod:`hashlib` module in the Python " +"standard library (currently ``md5``, ``sha1``, ``sha224``, ``sha256``, " +"``sha384``, ``sha512``). The current recommendation is to use ``sha256``." +msgstr "" +"ຄັງເກັບ ຄວນ (SHOULD) ເລືອກ hash function " +"ຈາກອັນໃດອັນໜຶ່ງທີ່ຮັບປະກັນວ່າມີໃຫ້ໃຊ້ຜ່ານໂມດູນ :py:mod:`hashlib` ໃນ standard library ຂອງ " +"Python (ປັດຈຸບັນແມ່ນ ``md5``, ``sha1``, ``sha224``, ``sha256``, ``sha384``, " +"``sha512``). ຄຳແນະນຳໃນປັດຈຸບັນແມ່ນໃຫ້ໃຊ້ ``sha256``." + +#: ../source/specifications/simple-repository-api.rst:211 +msgid "" +"If there is a GPG signature for a particular distribution file it **MUST** " +"live alongside that file with the same name with a ``.asc`` appended to it. " +"So if the file ``/packages/HolyGrail-1.0.tar.gz`` existed and had an " +"associated signature, the signature would be located at ``/packages/" +"HolyGrail-1.0.tar.gz.asc``." +msgstr "" +"ຫາກມີລາຍເຊັນ GPG ສຳລັບໄຟລ໌ການແຈກຢາຍສະເພາະໃດໜຶ່ງ, ມັນ ຈະຕ້ອງ (MUST) " +"ຢູ່ຄຽງຄູ່ກັບໄຟລ໌ນັ້ນໂດຍມີຊື່ດຽວກັນ ແລະ ຕໍ່ທ້າຍດ້ວຍ ``.asc``. ດັ່ງນັ້ນ ຫາກມີໄຟລ໌ ``/packages/" +"HolyGrail-1.0.tar.gz`` ແລະ ມີລາຍເຊັນທີ່ກ່ຽວຂ້ອງ, ລາຍເຊັນນັ້ນຈະຕັ້ງຢູ່ທີ່ ``/packages/" +"HolyGrail-1.0.tar.gz.asc``." + +#: ../source/specifications/simple-repository-api.rst:217 +msgid "" +"A repository **MAY** include a ``data-core-metadata`` attribute on a file " +"link." +msgstr "ຄັງເກັບ ອາດຈະ (MAY) ລວມເອົາ attribute ``data-core-metadata`` ໃນລິ້ງຂອງໄຟລ໌." + +#: ../source/specifications/simple-repository-api.rst:220 +msgid "" +"The repository **SHOULD** provide the hash of the Core Metadata file as the " +"``data-core-metadata`` attribute's value using the syntax " +"``=``, where ```` is the lower cased name of " +"the hash function used, and ```` is the hex encoded digest. The " +"repository **MAY** use ``true`` as the attribute's value if a hash is " +"unavailable." +msgstr "" +"ຄັງເກັບ ຄວນ (SHOULD) ສະໜອງ hash ຂອງໄຟລ໌ Core Metadata ເປັນຄ່າຂອງ attribute ``data-" +"core-metadata`` ໂດຍໃຊ້ໄວຍາກອນ ``=``, ໂດຍທີ່ ```` " +"ແມ່ນຊື່ຕົວພິມນ້ອຍຂອງ hash function ທີ່ໃຊ້, ແລະ ```` ແມ່ນ digest " +"ທີ່ຖືກເຂົ້າລະຫັດແບບ hex. ຄັງເກັບ ອາດຈະ (MAY) ໃຊ້ ``true`` ເປັນຄ່າຂອງ attribute ຫາກບໍ່ມີ " +"hash ໃຫ້ໃຊ້." + +#: ../source/specifications/simple-repository-api.rst:226 +msgid "" +"A repository **MAY** include a ``data-dist-info-metadata`` attribute on a " +"file link." +msgstr "" +"ຄັງເກັບ ອາດຈະ (MAY) ລວມເອົາ attribute ``data-dist-info-metadata`` ໃນລິ້ງຂອງໄຟລ໌." + +#: ../source/specifications/simple-repository-api.rst:229 +msgid "" +"Index clients **MAY** consume this key if present, as a legacy fallback for " +"``data-core-metadata``." +msgstr "" +"Index clients ອາດຈະ (MAY) ໃຊ້ຄີນີ້ຫາກມີຢູ່, ເພື່ອເປັນການຮອງຮັບແບບເກົ່າ (legacy fallback) " +"ສຳລັບ ``data-core-metadata``." + +#: ../source/specifications/simple-repository-api.rst:234 +msgid "" +"``data-dist-info-metadata`` was standardized with :pep:`658` and renamed to " +"``data-core-metadata`` with :pep:`714`." +msgstr "" +"``data-dist-info-metadata`` ໄດ້ຖືກເຮັດໃຫ້ເປັນມາດຕະຖານດ້ວຍ :pep:`658` ແລະ ປ່ຽນຊື່ເປັນ " +"``data-core-metadata`` ດ້ວຍ :pep:`714`." + +#: ../source/specifications/simple-repository-api.rst:237 +msgid "" +"A repository **MAY** include a ``data-gpg-sig`` attribute on a file link " +"with a value of either ``true`` or ``false`` to indicate whether or not " +"there is a GPG signature. Repositories that do this **SHOULD** include it on " +"every link." +msgstr "" +"ຄັງເກັບ ອາດຈະ (MAY) ລວມເອົາ attribute ``data-gpg-sig`` ໃນລິ້ງຂອງໄຟລ໌ ໂດຍມີຄ່າເປັນ " +"``true`` ຫຼື ``false`` ເພື່ອບົ່ງບອກວ່າມີລາຍເຊັນ GPG ຫຼື ບໍ່. ຄັງເກັບທີ່ເຮັດແນວນີ້ ຄວນ (SHOULD) " +"ລວມເອົາມັນໄວ້ໃນທຸກລິ້ງ." + +#: ../source/specifications/simple-repository-api.rst:241 +msgid "" +"A repository **MAY** include a ``data-requires-python`` attribute on a file " +"link. This exposes the :ref:`core-metadata-requires-python` metadata field " +"for the corresponding release. Where this is present, installer tools " +"**SHOULD** ignore the download when installing to a Python version that " +"doesn't satisfy the requirement. For example:" +msgstr "" +"ຄັງເກັບ ອາດຈະ (MAY) ລວມເອົາ attribute ``data-requires-python`` ໃນລິ້ງຂອງໄຟລ໌. " +"ສິ່ງນີ້ສະແດງຟິລ metadata :ref:`core-metadata-requires-python` ສຳລັບ release " +"ທີ່ກ່ຽວຂ້ອງ. ໃນບ່ອນທີ່ມີຂໍ້ມູນນີ້, ເຄື່ອງມືຕິດຕັ້ງ ຄວນ (SHOULD) " +"ລະເວັ້ນການດາວໂຫຼດເມື່ອຕິດຕັ້ງລົງໃນເວີຊັນຂອງ Python ທີ່ບໍ່ກົງກັບຄວາມຕ້ອງການ. ຕົວຢ່າງ:" + +#: ../source/specifications/simple-repository-api.rst:251 +msgid "" +"In the attribute value, < and > have to be HTML encoded as ``<`` and " +"``>``, respectively." +msgstr "" +"ໃນຄ່າຂອງ attribute, < ແລະ > ຈະຕ້ອງຖືກເຂົ້າລະຫັດເປັນ HTML ເຊັ່ນ ``<`` ແລະ ``>`` " +"ຕາມລຳດັບ." + +#: ../source/specifications/simple-repository-api.rst:254 +msgid "" +"A repository **MAY** include a ``data-yanked`` attribute on a file link." +msgstr "ຄັງເກັບ ອາດຈະ (MAY) ລວມເອົາ attribute ``data-yanked`` ໃນລິ້ງຂອງໄຟລ໌." + +#: ../source/specifications/simple-repository-api.rst:256 +msgid "" +"The ``data-yanked`` attribute may have no value, or may have an arbitrary " +"string as a value. The presence of a ``data-yanked`` attribute **SHOULD** be " +"interpreted as indicating that the file pointed to by this particular link " +"has been \"Yanked\", and should not generally be selected by an installer, " +"except under specific scenarios." +msgstr "" +"ແອດທຣິບິວ (attribute) ``data-yanked`` ອາດຈະບໍ່ມີຄ່າ, ຫຼື ອາດຈະມີສະຕຣິງໃດໜຶ່ງເປັນຄ່າ. " +"ການມີຢູ່ຂອງແອດທຣິບິວ ``data-yanked`` **ຄວນ** ຖືກຕີຄວາມໝາຍວ່າໄຟລ໌ທີ່ລິ້ງນີ້ຊີ້ໄປໄດ້ຖືກ \"ດຶງອອກ\" " +"(Yanked), ແລະ ໂດຍທົ່ວໄປແລ້ວ ບໍ່ຄວນຖືກເລືອກໂດຍເຄື່ອງມືຕິດຕັ້ງ, " +"ຍົກເວັ້ນພາຍໃຕ້ສະຖານະການສະເພາະໃດໜຶ່ງ." + +#: ../source/specifications/simple-repository-api.rst:262 +msgid "" +"The value of the ``data-yanked`` attribute, if present, is an arbitrary " +"string that represents the reason for why the file has been yanked." +msgstr "" +"ຄ່າຂອງ attribute ``data-yanked``, ຫາກມີ, ແມ່ນ string " +"ໃດໜຶ່ງທີ່ສະແດງເຖິງເຫດຜົນວ່າເປັນຫຍັງໄຟລ໌ຈຶ່ງຖືກ yanked." + +#: ../source/specifications/simple-repository-api.rst:267 +#: ../source/specifications/simple-repository-api.rst:612 +msgid "" +"The semantics of how tools should handle yanked files is described " +"in :ref:`file-yanking`." +msgstr "" +"ຄວາມໝາຍ (semantics) ຂອງການທີ່ເຄື່ອງມືຄວນຈັດການກັບໄຟລ໌ທີ່ຖືກ yanked " +"ແມ່ນຖືກອະທິບາຍໄວ້ໃນ :ref:`file-yanking`." + +#: ../source/specifications/simple-repository-api.rst:270 +msgid "" +"A repository **MAY** include a ``data-provenance`` attribute on a file link. " +"The value of this attribute **MUST** be a fully qualified URL, signaling " +"that the file's provenance can be found at that URL. This URL **MUST** " +"represent a `secure origin `_." +msgstr "" +"ຄັງເກັບ ອາດຈະ (MAY) ລວມເອົາ attribute ``data-provenance`` ໃນລິ້ງຂອງໄຟລ໌. ຄ່າຂອງ " +"attribute ນີ້ ຈະຕ້ອງ (MUST) ເປັນ URL ແບບເຕັມ, ເຊິ່ງສົ່ງສັນຍານວ່າແຫຼ່ງທີ່ມາຂອງໄຟລ໌ສາມາດພົບໄດ້ຢູ່ທີ່ " +"URL ນັ້ນ. URL ນີ້ ຈະຕ້ອງ (MUST) ສະແດງເຖິງ `ແຫຼ່ງກຳເນີດທີ່ປອດໄພ `_." + +#: ../source/specifications/simple-repository-api.rst:277 +msgid "The ``data-provenance`` attribute was added with API version 1.3." +msgstr "ແອດທຣິບິວ ``data-provenance`` ໄດ້ຖືກເພີ່ມເຂົ້າໃນ API ເວີຊັນ 1.3." + +#: ../source/specifications/simple-repository-api.rst:281 +msgid "" +"The format of the linked provenance is defined in :ref:`index-hosted-" +"attestations`." +msgstr "" +"ຮູບແບບຂອງ provenance ທີ່ລິ້ງໄວ້ນັ້ນແມ່ນຖືກກຳນົດໄວ້ໃນ :ref:`index-hosted-attestations`." + +#: ../source/specifications/simple-repository-api.rst:283 +msgid "" +"A repository **MAY** include ``pypi:project-status`` and ``pypi:project-" +"status-reason`` meta tags on the response itself." +msgstr "" +"ຄັງເກັບ ອາດຈະ (MAY) ລວມເອົາ meta tags ``pypi:project-status`` ແລະ " +"``pypi:project-status-reason`` ໃນການຕອບສະໜອງເອງ." + +#: ../source/specifications/simple-repository-api.rst:286 +msgid "" +"The value of ``pypi:project-status`` **MUST** be a valid project status " +"marker, while the value of ``pypi:project-status-reason`` **MUST** be an " +"arbitrary string if present." +msgstr "" +"ຄ່າຂອງ ``pypi:project-status`` ຈະຕ້ອງ (MUST) ເປັນຕົວບົ່ງບອກສະຖານະໂຄງການທີ່ຖືກຕ້ອງ, " +"ໃນຂະນະທີ່ຄ່າຂອງ ``pypi:project-status-reason`` ຈະຕ້ອງ (MUST) ເປັນ string " +"ໃດໜຶ່ງຫາກມີຢູ່." + +#: ../source/specifications/simple-repository-api.rst:292 +#: ../source/specifications/simple-repository-api.rst:498 +msgid "" +"The set of valid project status markers and their semantics is described " +"in :ref:`project-status-markers`." +msgstr "" +"ຊຸດຂອງຕົວບົ່ງບອກສະຖານະໂຄງການທີ່ຖືກຕ້ອງ ແລະ " +"ຄວາມໝາຍຂອງພວກມັນແມ່ນຖືກອະທິບາຍໄວ້ໃນ :ref:`project-status-markers`." + +#: ../source/specifications/simple-repository-api.rst:297 +msgid "" +"The ``pypi:project-status`` and ``pypi:project-status-reason`` meta tags " +"were added with API version 1.4." +msgstr "" +"ເມຕາແທັກ (meta tags) ``pypi:project-status`` ແລະ ``pypi:project-status-" +"reason`` ໄດ້ຖືກເພີ່ມເຂົ້າໃນ API ເວີຊັນ 1.4." + +#: ../source/specifications/simple-repository-api.rst:303 +msgid "Serve Distribution Metadata in the Simple Repository API" +msgstr "ການໃຫ້ບໍລິການ Distribution Metadata ໃນ Simple Repository API" + +#: ../source/specifications/simple-repository-api.rst:305 +msgid "" +"In a simple repository's project page, each anchor tag pointing to a " +"distribution **MAY** have a ``data-dist-info-metadata`` attribute. The " +"presence of the attribute indicates the distribution represented by the " +"anchor tag **MUST** contain a Core Metadata file that will not be modified " +"when the distribution is processed and/or installed." +msgstr "" +"ໃນໜ້າໂຄງການຂອງ simple repository, ແຕ່ລະ anchor tag ທີ່ຊີ້ໄປຫາການແຈກຢາຍ ອາດຈະ (MAY) " +"ມີ attribute ``data-dist-info-metadata``. ການມີຢູ່ຂອງ attribute " +"ບົ່ງບອກວ່າການແຈກຢາຍທີ່ສະແດງໂດຍ anchor tag ນັ້ນ ຈະຕ້ອງ (MUST) ປະກອບມີໄຟລ໌ Core Metadata " +"ທີ່ຈະບໍ່ຖືກແກ້ໄຂເມື່ອການແຈກຢາຍຖືກປະມວນຜົນ ແລະ/ຫຼື ຕິດຕັ້ງ." + +#: ../source/specifications/simple-repository-api.rst:311 +msgid "" +"If a ``data-dist-info-metadata`` attribute is present, the repository " +"**MUST** serve the distribution's Core Metadata file alongside the " +"distribution with a ``.metadata`` appended to the distribution's file name. " +"For example, the Core Metadata of a distribution served at ``/files/" +"distribution-1.0-py3.none.any.whl`` would be located at ``/files/" +"distribution-1.0-py3.none.any.whl.metadata``. This is similar to " +"how :ref:`the base HTML API specification ` " +"specifies the GPG signature file's location." +msgstr "" +"ຫາກມີ attribute ``data-dist-info-metadata``, ຄັງເກັບ ຈະຕ້ອງ (MUST) ໃຫ້ບໍລິການໄຟລ໌ " +"Core Metadata ຂອງການແຈກຢາຍນັ້ນຄຽງຄູ່ກັບການແຈກຢາຍ ໂດຍມີການຕໍ່ທ້າຍດ້ວຍ ``.metadata`` " +"ໃສ່ຊື່ໄຟລ໌ຂອງການແຈກຢາຍ. ຕົວຢ່າງ: Core Metadata ຂອງການແຈກຢາຍທີ່ໃຫ້ບໍລິການຢູ່ທີ່ ``/files/" +"distribution-1.0-py3.none.any.whl`` ຈະຕັ້ງຢູ່ທີ່ ``/files/distribution-1.0-" +"py3.none.any.whl.metadata``. ສິ່ງນີ້ຄ້າຍຄືກັບວິທີທີ່ :ref:`ຂໍ້ກຳນົດ base HTML API ` ລະບຸຕຳແໜ່ງໄຟລ໌ລາຍເຊັນ GPG." + +#: ../source/specifications/simple-repository-api.rst:320 +msgid "" +"The repository **SHOULD** provide the hash of the Core Metadata file as the " +"``data-dist-info-metadata`` attribute's value using the syntax " +"``=``, where ```` is the lower cased name of " +"the hash function used, and ```` is the hex encoded digest. The " +"repository **MAY** use ``true`` as the attribute's value if a hash is " +"unavailable." +msgstr "" +"ຄັງເກັບ ຄວນ (SHOULD) ສະໜອງ hash ຂອງໄຟລ໌ Core Metadata ເປັນຄ່າຂອງ attribute ``data-" +"dist-info-metadata`` ໂດຍໃຊ້ໄວຍາກອນ ``=``, ໂດຍທີ່ " +"```` ແມ່ນຊື່ຕົວພິມນ້ອຍຂອງ hash function ທີ່ໃຊ້, ແລະ ```` ແມ່ນ " +"digest ທີ່ຖືກເຂົ້າລະຫັດແບບ hex. ຄັງເກັບ ອາດຈະ (MAY) ໃຊ້ ``true`` ເປັນຄ່າຂອງ attribute " +"ຫາກບໍ່ມີ hash ໃຫ້ໃຊ້." + +#: ../source/specifications/simple-repository-api.rst:328 +msgid "Backwards Compatibility" +msgstr "ຄວາມເຂົ້າກັນໄດ້ກັບເວີຊັນກ່ອນໜ້າ" + +#: ../source/specifications/simple-repository-api.rst:330 +msgid "" +"If an anchor tag lacks the ``data-dist-info-metadata`` attribute, tools are " +"expected to revert to their current behaviour of downloading the " +"distribution to inspect the metadata." +msgstr "" +"ຫາກ anchor tag ບໍ່ມີ attribute ``data-dist-info-metadata``, ເຄື່ອງມືຕ່າງໆ " +"ຈະຖືກຄາດໝາຍໃຫ້ກັບໄປໃຊ້ພຶດຕິກຳປັດຈຸບັນຂອງພວກມັນໃນການດາວໂຫຼດການແຈກຢາຍເພື່ອທົດສອບ metadata." + +#: ../source/specifications/simple-repository-api.rst:334 +msgid "" +"Older tools not supporting the new ``data-dist-info-metadata`` attribute are " +"expected to ignore the attribute and maintain their current behaviour of " +"downloading the distribution to inspect the metadata. This is similar to how " +"prior ``data-`` attribute additions expect existing tools to operate." +msgstr "" +"ເຄື່ອງມືລຸ້ນເກົ່າທີ່ບໍ່ຮອງຮັບ attribute ``data-dist-info-metadata`` ໃໝ່ນີ້ " +"ຈະຖືກຄາດໝາຍໃຫ້ລະເວັ້ນ attribute ແລະ " +"ຄົງຮັກສາພຶດຕິກຳປັດຈຸບັນຂອງພວກມັນໃນການດາວໂຫຼດການແຈກຢາຍເພື່ອທົດສອບ metadata. " +"ສິ່ງນີ້ຄ້າຍຄືກັບວິທີທີ່ການເພີ່ມ attribute ``data-`` ກ່ອນໜ້ານີ້ຄາດໝາຍໃຫ້ເຄື່ອງມືທີ່ມີຢູ່ແລ້ວເຮັດວຽກ." + +#: ../source/specifications/simple-repository-api.rst:343 +msgid "JSON-based Simple API for Python Package Indexes" +msgstr "Simple API ທີ່ອີງໃສ່ JSON ສຳລັບດັດຊະນີແພັກເກດ Python" + +#: ../source/specifications/simple-repository-api.rst:345 +msgid "" +"To enable response parsing with only the standard library, this spec " +"specifies that all responses (besides the files themselves, and the HTML " +"responses from :ref:`the base HTML API specification `) should be serialized using `JSON `_." +msgstr "" +"ເພື່ອໃຫ້ສາມາດແປ (parsing) ການຕອບສະໜອງໄດ້ໂດຍໃຊ້ພຽງແຕ່ standard library, " +"ຂໍ້ກຳນົດນີ້ລະບຸວ່າທຸກໆການຕອບສະໜອງ (ນອກເໜືອຈາກໄຟລ໌ເອງ ແລະ ການຕອບສະໜອງແບບ HTML " +"ຈາກ :ref:`ຂໍ້ກຳນົດ base HTML API `) ຄວນຖືກເຮັດ " +"serialization ໂດຍໃຊ້ `JSON `_." + +#: ../source/specifications/simple-repository-api.rst:350 +msgid "" +"To enable zero configuration discovery and to minimize the amount of " +"additional HTTP requests, this spec extends :ref:`the base HTML API " +"specification ` such that all of the API " +"endpoints (other than the files themselves) will utilize HTTP content " +"negotiation to allow client and server to select the correct serialization " +"format to serve, i.e. either HTML or JSON." +msgstr "" +"ເພື່ອໃຫ້ສາມາດຄົ້ນຫາໄດ້ໂດຍບໍ່ຕ້ອງມີການຕັ້ງຄ່າ (zero configuration discovery) ແລະ " +"ເພື່ອຫຼຸດຜ່ອນຈຳນວນ request HTTP ເພີ່ມເຕີມ, ຂໍ້ກຳນົດນີ້ໄດ້ຂະຫຍາຍ :ref:`ຂໍ້ກຳນົດ base HTML API " +"` ເພື່ອໃຫ້ທຸກ endpoints ຂອງ API (ນອກເໜືອຈາກໄຟລ໌ເອງ) " +"ຈະໃຊ້ HTTP content negotiation ເພື່ອໃຫ້ client ແລະ server ສາມາດເລືອກຮູບແບບ " +"serialization ທີ່ຖືກຕ້ອງເພື່ອໃຫ້ບໍລິການ, ນັ້ນຄື HTML ຫຼື JSON." + +#: ../source/specifications/simple-repository-api.rst:360 +msgid "" +"Versioning will adhere to :ref:`the API versioning specification ` format (``Major.Minor``), which has defined the " +"existing HTML responses to be ``1.0``. Since this spec does not introduce " +"new features into the API, rather it describes a different serialization " +"format for the existing features, this spec does not change the existing " +"``1.0`` version, and instead just describes how to serialize that into JSON." +msgstr "" +"ການກຳນົດເວີຊັນຈະປະຕິບັດຕາມຮູບແບບ :ref:`ຂໍ້ກຳນົດການກຳນົດເວີຊັນ API ` (``Major.Minor``), ເຊິ່ງໄດ້ກຳນົດໃຫ້ການຕອບສະໜອງແບບ HTML ທີ່ມີຢູ່ແລ້ວເປັນ " +"``1.0``. ເນື່ອງຈາກຂໍ້ກຳນົດນີ້ບໍ່ໄດ້ແນະນຳຟີເຈີໃໝ່ເຂົ້າໃນ API, ແຕ່ມັນອະທິບາຍເຖິງຮູບແບບ " +"serialization ທີ່ແຕກຕ່າງກັນສຳລັບຟີເຈີທີ່ມີຢູ່, ຂໍ້ກຳນົດນີ້ຈຶ່ງບໍ່ໄດ້ປ່ຽນແປງເວີຊັນ ``1.0`` ທີ່ມີຢູ່, " +"ແຕ່ພຽງແຕ່ອະທິບາຍວິທີການເຮັດ serialization ສິ່ງນັ້ນໃຫ້ເປັນ JSON." + +#: ../source/specifications/simple-repository-api.rst:367 +msgid "" +"Similar to :ref:`the API versioning specification `, the major version number **MUST** be incremented if any " +"changes to the new format would result in no longer being able to expect " +"existing clients to meaningfully understand the format." +msgstr "" +"ເຊັ່ນດຽວກັນກັບ :ref:`ຂໍ້ກຳນົດການກຳນົດເວີຊັນ API `, " +"ໝາຍເລກເວີຊັນຫຼັກ ຈະຕ້ອງ (MUST) ເພີ່ມຂຶ້ນ ຫາກການປ່ຽນແປງໃດໆ " +"ໃນຮູບແບບໃໝ່ຈະສົ່ງຜົນໃຫ້ບໍ່ສາມາດຄາດຫວັງໃຫ້ clients ທີ່ມີຢູ່ເຂົ້າໃຈຮູບແບບນັ້ນໄດ້ຢ່າງມີຄວາມໝາຍອີກຕໍ່ໄປ." + +#: ../source/specifications/simple-repository-api.rst:373 +msgid "" +"Likewise, the minor version **MUST** be incremented if features are added or " +"removed from the format, but existing clients would be expected to continue " +"to meaningfully understand the format." +msgstr "" +"ໃນທຳນອງດຽວກັນ, ເວີຊັນຍ່ອຍ ຈະຕ້ອງ (MUST) ເພີ່ມຂຶ້ນ ຫາກມີການເພີ່ມ ຫຼື ລຶບຟີເຈີອອກຈາກຮູບແບບ, ແຕ່ " +"clients ທີ່ມີຢູ່ຍັງຄົງຄາດວ່າຈະສາມາດເຂົ້າໃຈຮູບແບບນັ້ນໄດ້ຢ່າງມີຄວາມໝາຍຕໍ່ໄປ." + +#: ../source/specifications/simple-repository-api.rst:377 +msgid "" +"Changes that would not result in existing clients being unable to " +"meaningfully understand the format and which do not represent features being " +"added or removed may occur without changing the version number." +msgstr "" +"ການປ່ຽນແປງທີ່ບໍ່ສົ່ງຜົນໃຫ້ clients ທີ່ມີຢູ່ບໍ່ສາມາດເຂົ້າໃຈຮູບແບບນັ້ນໄດ້ຢ່າງມີຄວາມໝາຍ ແລະ " +"ເຊິ່ງບໍ່ໄດ້ສະແດງເຖິງການເພີ່ມ ຫຼື ລຶບຟີເຈີ ອາດຈະເກີດຂຶ້ນໄດ້ໂດຍບໍ່ຕ້ອງປ່ຽນແປງໝາຍເລກເວີຊັນ." + +#: ../source/specifications/simple-repository-api.rst:381 +msgid "" +"This is intentionally vague, as this spec believes it is best left up to " +"future specs that make any changes to the API to investigate and decide " +"whether or not that change should increment the major or minor version." +msgstr "" +"ສິ່ງນີ້ແມ່ນມີຄວາມກຳກວມໂດຍເຈດຕະນາ, " +"ເນື່ອງຈາກຂໍ້ກຳນົດນີ້ເຊື່ອວ່າມັນຈະເປັນການດີທີ່ສຸດທີ່ຈະປ່ອຍໃຫ້ເປັນໜ້າທີ່ຂອງຂໍ້ກຳນົດໃນອະນາຄົດທີ່ຈະເຮັດການປ່ຽນແປງໃດໆ " +"ກັບ API ເພື່ອສຶກສາ ແລະ ຕັດສິນໃຈວ່າການປ່ຽນແປງນັ້ນຄວນຈະເພີ່ມໝາຍເລກເວີຊັນຫຼັກ ຫຼື ເວີຊັນຍ່ອຍ." + +#: ../source/specifications/simple-repository-api.rst:385 +msgid "" +"Future versions of the API may add things that can only be represented in a " +"subset of the available serializations of that version. All serializations " +"version numbers, within a major version, **SHOULD** be kept in sync, but the " +"specifics of how a feature serializes into each format may differ, including " +"whether or not that feature is present at all." +msgstr "" +"ເວີຊັນໃນອະນາຄົດຂອງ API ອາດຈະເພີ່ມສິ່ງຕ່າງໆ ທີ່ສາມາດສະແດງໄດ້ໃນບາງສ່ວນຂອງ serializations " +"ທີ່ມີຢູ່ໃນເວີຊັນນັ້ນເທົ່ານັ້ນ. ທຸກໝາຍເລກເວີຊັນຂອງ serializations, ພາຍໃນເວີຊັນຫຼັກດຽວກັນ, ຄວນ " +"(SHOULD) ຖືກຮັກສາໃຫ້ກົງກັນ, ແຕ່ລາຍລະອຽດຂອງວິທີທີ່ຟີເຈີໜຶ່ງຈະຖືກເຮັດ serialization " +"ເຂົ້າໃນແຕ່ລະຮູບແບບອາດຈະແຕກຕ່າງກັນ, ລວມທັງວ່າຟີເຈີນັ້ນຈະມີຢູ່ຫຼືບໍ່." + +#: ../source/specifications/simple-repository-api.rst:391 +msgid "" +"It is the intent of this spec that the API should be thought of as URL " +"endpoints that return data, whose interpretation is defined by the version " +"of that data, and then serialized into the target serialization format." +msgstr "" +"ເຈດຕະນາຂອງຂໍ້ກຳນົດນີ້ຄື API ຄວນຖືກມອງວ່າເປັນ URL endpoints ທີ່ສົ່ງຄືນຂໍ້ມູນ, " +"ເຊິ່ງການແປຄວາມໝາຍຂອງມັນຖືກກຳນົດໂດຍເວີຊັນຂອງຂໍ້ມູນນັ້ນ, ແລ້ວຈຶ່ງຖືກເຮັດ serialization " +"ເຂົ້າໃນຮູບແບບ serialization ເປົ້າໝາຍ." + +#: ../source/specifications/simple-repository-api.rst:399 +msgid "JSON Serialization" +msgstr "ການເຮັດ JSON Serialization" + +#: ../source/specifications/simple-repository-api.rst:401 +msgid "" +"The URL structure from :ref:`the base HTML API specification ` still applies, as this spec only adds an " +"additional serialization format for the already existing API." +msgstr "" +"ໂຄງສ້າງ URL ຈາກ :ref:`ຂໍ້ກຳນົດ base HTML API ` ຍັງຄົງໃຊ້ໄດ້, ເນື່ອງຈາກຂໍ້ກຳນົດນີ້ພຽງແຕ່ເພີ່ມຮູບແບບ serialization " +"ເພີ່ມເຕີມສຳລັບ API ທີ່ມີຢູ່ແລ້ວເທົ່ານັ້ນ." + +#: ../source/specifications/simple-repository-api.rst:405 +msgid "" +"The following constraints apply to all JSON serialized responses described " +"in this spec:" +msgstr "ຂໍ້ຈຳກັດດັ່ງຕໍ່ໄປນີ້ໃຊ້ກັບທຸກການຕອບສະໜອງໃນຮູບແບບ JSON ທີ່ອະທິບາຍໄວ້ໃນຂໍ້ກຳນົດນີ້:" + +#: ../source/specifications/simple-repository-api.rst:408 +msgid "" +"All JSON responses will *always* be a JSON object rather than an array or " +"other type." +msgstr "" +"ທຸກການຕອບສະໜອງແບບ JSON ຈະເປັນ JSON object *ສະເໝີ* ແທນທີ່ຈະເປັນ array ຫຼື ປະເພດອື່ນໆ." + +#: ../source/specifications/simple-repository-api.rst:411 +msgid "" +"While JSON doesn't natively support a URL type, any value that represents an " +"URL in this API may be either absolute or relative as long as they point to " +"the correct location. If relative, they are relative to the current URL as " +"if it were HTML." +msgstr "" +"ເຖິງແມ່ນວ່າ JSON ຈະບໍ່ຮອງຮັບປະເພດ URL ໂດຍກົງ, ແຕ່ຄ່າໃດໆ ທີ່ສະແດງເຖິງ URL ໃນ API ນີ້ " +"ອາດຈະເປັນແບບ absolute ຫຼື relative ກໍໄດ້ ຕາບໃດທີ່ພວກມັນຊີ້ໄປຫາຕຳແໜ່ງທີ່ຖືກຕ້ອງ. ຫາກເປັນແບບ " +"relative, ພວກມັນຈະທຽບເຄືອງກັບ URL ປັດຈຸບັນຄືກັບວ່າມັນເປັນ HTML." + +#: ../source/specifications/simple-repository-api.rst:416 +msgid "" +"Additional keys may be added to any dictionary objects in the API responses " +"and clients **MUST** ignore keys that they don't understand." +msgstr "" +"ອາດມີການເພີ່ມຄີ (keys) ເພີ່ມເຕີມເຂົ້າໃນ dictionary objects ໃດໆ ໃນການຕອບສະໜອງຂອງ API " +"ແລະ clients ຈະຕ້ອງ (MUST) ລະເວັ້ນຄີທີ່ພວກເຂົາບໍ່ເຂົ້າໃຈ." + +#: ../source/specifications/simple-repository-api.rst:419 +msgid "" +"All JSON responses will have a ``meta`` key, which contains information " +"related to the response itself, rather than the content of the response." +msgstr "" +"ທຸກການຕອບສະໜອງແບບ JSON ຈະມີຄີ ``meta``, ເຊິ່ງປະກອບມີຂໍ້ມູນທີ່ກ່ຽວຂ້ອງກັບການຕອບສະໜອງນັ້ນເອງ, " +"ແທນທີ່ຈະເປັນເນື້ອໃນຂອງການຕອບສະໜອງ." + +#: ../source/specifications/simple-repository-api.rst:422 +msgid "" +"All JSON responses will have a ``meta.api-version`` key, which will be a " +"string that contains the :ref:`API versioning specification ` ``Major.Minor`` version number, with the same " +"fail/warn semantics as defined in :ref:`the API versioning specification " +"`." +msgstr "" +"ທຸກການຕອບສະໜອງແບບ JSON ຈະມີຄີ ``meta.api-version``, ເຊິ່ງຈະເປັນ string " +"ທີ່ປະກອບດ້ວຍໝາຍເລກເວີຊັນ ``Major.Minor`` ຕາມ :ref:`ຂໍ້ກຳນົດການກຳນົດເວີຊັນ API `, ໂດຍມີ semantics ຂອງການ fail/warn " +"ແບບດຽວກັນກັບທີ່ກຳນົດໄວ້ໃນ :ref:`ຂໍ້ກຳນົດການກຳນົດເວີຊັນ API `." + +#: ../source/specifications/simple-repository-api.rst:428 +msgid "" +"All requirements of :ref:`the base HTML API specification ` that are not HTML specific still apply." +msgstr "" +"ທຸກຂໍ້ກຳນົດຂອງ :ref:`ຂໍ້ກຳນົດ base HTML API ` " +"ທີ່ບໍ່ແມ່ນສະເພາະສຳລັບ HTML ແມ່ນຍັງຄົງໃຊ້ໄດ້." + +#: ../source/specifications/simple-repository-api.rst:431 +msgid "" +"Keys (at any level) with a leading underscore are reserved as private for " +"index server use. No future standard will assign a meaning to any such key." +msgstr "" +"ຄີ (ໃນທຸກລະດັບ) ທີ່ເລີ່ມຕົ້ນດ້ວຍເຄື່ອງໝາຍຂີດກ້ອງ (underscore) " +"ແມ່ນຖືກສະຫງວນໄວ້ເປັນການສ່ວນຕົວສຳລັບການໃຊ້ງານຂອງ index server. ຈະບໍ່ມີມາດຕະຖານໃດໆ " +"ໃນອະນາຄົດກຳນົດຄວາມໝາຍໃຫ້ກັບຄີດັ່ງກ່າວ." + +#: ../source/specifications/simple-repository-api.rst:439 +msgid "" +"The root URL ``/`` for this spec (which represents the base URL) will be a " +"JSON encoded dictionary which has a two keys:" +msgstr "" +"URL ຮາກ (root) ``/`` ສຳລັບຂໍ້ກຳນົດນີ້ (ເຊິ່ງສະແດງເຖິງ base URL) ຈະເປັນດິກຊັນນາຣີ " +"(dictionary) ທີ່ເຂົ້າລະຫັດແບບ JSON ເຊິ່ງມີສອງຄີ:" + +#: ../source/specifications/simple-repository-api.rst:442 +msgid "" +"``projects``: An array where each entry is a dictionary with a single key, " +"``name``, which represents string of the project name." +msgstr "" +"``projects``: array ເຊິ່ງແຕ່ລະລາຍການແມ່ນ dictionary ທີ່ມີຄີດຽວຄື ``name``, " +"ເຊິ່ງສະແດງເຖິງ string ຂອງຊື່ໂຄງການ." + +#: ../source/specifications/simple-repository-api.rst:443 +#: ../source/specifications/simple-repository-api.rst:517 +msgid "" +"``meta``: The general response metadata as `described earlier `__." +msgstr "" +"``meta``: metadata ທົ່ວໄປຂອງການຕອບສະໜອງຕາມທີ່ `ໄດ້ອະທິບາຍໄວ້ກ່ອນໜ້ານີ້ `__." + +#: ../source/specifications/simple-repository-api.rst:445 +#: ../source/specifications/simple-repository-api.rst:643 +msgid "As an example:" +msgstr "ຕົວຢ່າງ:" + +#: ../source/specifications/simple-repository-api.rst:462 +msgid "" +"The ``name`` field is the same as the one from :ref:`the base HTML API " +"specification `, which does not specify whether " +"it is the non-normalized display name or the normalized name. In practice " +"different implementations of these specs are choosing differently here, so " +"relying on it being either non-normalized or normalized is relying on an " +"implementation detail of the repository in question." +msgstr "" +"ຟິລ ``name`` ແມ່ນອັນດຽວກັນກັບອັນທີ່ມີໃນ :ref:`ຂໍ້ກຳນົດ base HTML API `, ເຊິ່ງບໍ່ໄດ້ລະບຸວ່າມັນເປັນຊື່ທີ່ສະແດງແບບບໍ່ເປັນມາດຕະຖານ ຫຼື ເປັນຊື່ທີ່ເປັນມາດຕະຖານ. " +"ໃນທາງປະຕິບັດ, ແຕ່ລະລະບົບຂອງຂໍ້ກຳນົດເຫຼົ່ານີ້ແມ່ນເລືອກໃຊ້ແຕກຕ່າງກັນ, " +"ດັ່ງນັ້ນການເພິ່ງພາວ່າມັນຈະເປັນແບບບໍ່ເປັນມາດຕະຖານ ຫຼື ເປັນມາດຕະຖານ " +"ແມ່ນເປັນການເພິ່ງພາລາຍລະອຽດການຈັດເຮັດ (implementation detail) ຂອງຄັງເກັບນັ້ນໆ." + +#: ../source/specifications/simple-repository-api.rst:472 +msgid "" +"While the ``projects`` key is an array, and thus is required to be in some " +"kind of an order, neither :ref:`the base HTML API specification ` nor this spec requires any specific ordering nor that " +"the ordering is consistent from one request to the next. Mentally this is " +"best thought of as a set, but both JSON and HTML lack the functionality to " +"have sets." +msgstr "" +"ເຖິງແມ່ນວ່າຄີ ``projects`` ຈະເປັນ array, ແລະ ດັ່ງນັ້ນຈຶ່ງຈຳເປັນຕ້ອງມີການລຽງລໍາດັບບາງຢ່າງ, " +"ແຕ່ທັງ :ref:`ຂໍ້ກຳນົດ base HTML API ` ແລະ " +"ຂໍ້ກຳນົດນີ້ກໍບໍ່ໄດ້ກຳນົດການລຽງລຳດັບສະເພາະໃດໆ ຫຼື ຂໍໃຫ້ການລຽງລຳດັບນັ້ນຄົງທີ່ໃນແຕ່ລະ request. " +"ໃນທາງຄວາມຄິດ ສິ່ງນີ້ແມ່ນຖືວ່າເປັນ set, ແຕ່ທັງ JSON ແລະ HTML ຍັງຂາດຟັງຊັນສຳລັບການມີ set." + +#: ../source/specifications/simple-repository-api.rst:484 +msgid "" +"The format of this URL is ``//`` where the ```` is " +"replaced by the :ref:`the base HTML API specification ` normalized name for that project, so a project named \"Silly_Walk\" " +"would have a URL like ``/silly-walk/``." +msgstr "" +"ຮູບແບບຂອງ URL ນີ້ແມ່ນ ``//`` ໂດຍທີ່ ```` " +"ຈະຖືກແທນທີ່ດ້ວຍຊື່ທີ່ເປັນມາດຕະຖານຕາມ :ref:`ຂໍ້ກຳນົດ base HTML API ` ສຳລັບໂຄງການນັ້ນ, ດັ່ງນັ້ນໂຄງການທີ່ຊື່ວ່າ \"Silly_Walk\" ຈະມີ URL ເຊັ່ນ ``/silly-walk/" +"``." + +#: ../source/specifications/simple-repository-api.rst:489 +msgid "" +"This URL must respond with a JSON encoded dictionary that has five keys:" +msgstr "URL ນີ້ຕ້ອງຕອບສະໜອງດ້ວຍ JSON encoded dictionary ທີ່ມີຫ້າຄີ:" + +#: ../source/specifications/simple-repository-api.rst:491 +msgid "``name``: The normalized name of the project." +msgstr "``name``: ຊື່ໂຄງການທີ່ປັບໃຫ້ເປັນມາດຕະຖານແລ້ວ." + +#: ../source/specifications/simple-repository-api.rst:492 +msgid "``project-status``: An optional dictionary, containing the following:" +msgstr "``project-status``: ດິກຊັນນາຣີທາງເລືອກ, ເຊິ່ງປະກອບມີດັ່ງຕໍ່ໄປນີ້:" + +#: ../source/specifications/simple-repository-api.rst:494 +msgid "``status``: If present, this **MUST** be a valid project status marker." +msgstr "``status``: ຖ້າມີ, ນີ້ **ຕ້ອງ** ເປັນເຄື່ອງໝາຍສະຖານະໂຄງການທີ່ຖືກຕ້ອງ." + +#: ../source/specifications/simple-repository-api.rst:503 +msgid "The ``status`` key was added with API version 1.4." +msgstr "ຄີ ``status`` ຖືກເພີ່ມເຂົ້າມາໃນ API ເວີຊັນ 1.4." + +#: ../source/specifications/simple-repository-api.rst:505 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." +msgstr "``reason``: ຖ້າມີ, ນີ້ **ຕ້ອງ** ເປັນຂໍ້ຄວາມອະທິບາຍສະຖານະຂອງໂຄງການ." + +#: ../source/specifications/simple-repository-api.rst:510 +msgid "The ``reason`` key was added with API version 1.4." +msgstr "ຄີ ``reason`` ຖືກເພີ່ມເຂົ້າມາໃນ API ເວີຊັນ 1.4." + +#: ../source/specifications/simple-repository-api.rst:514 +msgid "The ``project-status`` key was added with API version 1.4." +msgstr "ຄີ ``project-status`` ຖືກເພີ່ມເຂົ້າມາໃນ API ເວີຊັນ 1.4." + +#: ../source/specifications/simple-repository-api.rst:516 +msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "``files``: ລາຍການຂອງດິກຊັນນາຣີ, ເຊິ່ງແຕ່ລະອັນສະແດງເຖິງແຕ່ລະໄຟລ໌." + +#: ../source/specifications/simple-repository-api.rst:518 +msgid "" +"``versions``: A list of version strings specifying all of the project " +"versions uploaded for this project. The value of ``versions`` is logically a " +"set, and as such may not contain duplicates, and the order of the versions " +"is not significant." +msgstr "" +"``versions``: ລາຍການຂອງສະຕຣິງເວີຊັນທີ່ລະບຸທຸກເວີຊັນຂອງໂຄງການທີ່ໄດ້ອັບໂຫຼດແລ້ວ. ຄ່າຂອງ " +"``versions`` ຕາມຫຼັກການແລ້ວແມ່ນເປັນເຊັດ (set), ດັ່ງນັ້ນຈຶ່ງບໍ່ສາມາດມີຄ່າຊ້ຳກັນໄດ້ ແລະ " +"ລຳດັບຂອງເວີຊັນແມ່ນບໍ່ມີຄວາມສຳຄັນ." + +#: ../source/specifications/simple-repository-api.rst:525 +msgid "" +"All of the files listed in the ``files`` key MUST be associated with one of " +"the versions in the ``versions`` key. The ``versions`` key MAY contain " +"versions with no associated files (to represent versions with no files " +"uploaded, if the server has such a concept)." +msgstr "" +"ທຸກໆໄຟລ໌ທີ່ລະບຸໃນຄີ ``files`` ຕ້ອງກ່ຽວຂ້ອງກັບເວີຊັນໃດໜຶ່ງໃນຄີ ``versions``. ຄີ ``versions`` " +"ອາດຈະປະກອບມີເວີຊັນທີ່ບໍ່ມີໄຟລ໌ກ່ຽວຂ້ອງ (ເພື່ອສະແດງເຖິງເວີຊັນທີ່ບໍ່ມີການອັບໂຫຼດໄຟລ໌, " +"ຖ້າເຊີບເວີມີແນວຄວາມຄິດດັ່ງກ່າວ)." + +#: ../source/specifications/simple-repository-api.rst:532 +msgid "" +"Because servers may hold \"legacy\" data from before the adoption " +"of :ref:`the version specifiers specification (VSS) `, " +"version strings currently cannot be required to be valid VSS versions, and " +"therefore cannot be assumed to be orderable using the VSS rules. However, " +"servers **SHOULD** use normalized VSS versions where possible." +msgstr "" +"ເນື່ອງຈາກເຊີບເວີອາດຈະເກັບຂໍ້ມູນ \"ແບບເກົ່າ\" " +"ກ່ອນທີ່ຈະມີການນຳໃຊ້ :ref:`ຂໍ້ກຳນົດສະເພາະຂອງຕົວລະບຸເວີຊັນ (VSS) `, " +"ໃນປັດຈຸບັນສະຕຣິງເວີຊັນຈຶ່ງຍັງບໍ່ສາມາດບັງຄັບໃຫ້ເປັນເວີຊັນ VSS ທີ່ຖືກຕ້ອງໄດ້, " +"ດັ່ງນັ້ນຈຶ່ງບໍ່ສາມາດສົມມຸດໄດ້ວ່າຈະຈັດລຳດັບໂດຍໃຊ້ກົດເກນ VSS ໄດ້. ຢ່າງໃດກໍຕາມ, ເຊີບເວີ **ຄວນ** " +"ໃຊ້ເວີຊັນ VSS ທີ່ປັບເປັນມາດຕະຖານແລ້ວໃນກໍລະນີທີ່ເປັນໄປໄດ້." + +#: ../source/specifications/simple-repository-api.rst:540 +msgid "The ``versions`` key was added with API version 1.1." +msgstr "ຄີ ``versions`` ຖືກເພີ່ມເຂົ້າມາໃນ API ເວີຊັນ 1.1." + +#: ../source/specifications/simple-repository-api.rst:542 +msgid "Each individual file dictionary has the following keys:" +msgstr "ແຕ່ລະດິກຊັນນາຣີຂອງໄຟລ໌ມີຄີດັ່ງຕໍ່ໄປນີ້:" + +#: ../source/specifications/simple-repository-api.rst:544 +msgid "``filename``: The filename that is being represented." +msgstr "``filename``: ຊື່ໄຟລ໌ທີ່ຖືກສະແດງ." + +#: ../source/specifications/simple-repository-api.rst:545 +msgid "``url``: The URL that the file can be fetched from." +msgstr "``url``: URL ທີ່ສາມາດດາວໂຫຼດໄຟລ໌ໄດ້." + +#: ../source/specifications/simple-repository-api.rst:546 +msgid "" +"``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " +"file. Multiple hashes can be included, and it is up to the client to decide " +"what to do with multiple hashes (it may validate all of them or a subset of " +"them, or nothing at all). These hash names **SHOULD** always be normalized " +"to be lowercase." +msgstr "" +"``hashes``: ດິກຊັນນາຣີທີ່ຈັບຄູ່ຊື່ແຮຊ (hash name) ກັບຄ່າໄດເຈສ (digest) " +"ທີ່ເຂົ້າລະຫັດຖານສິບຫົກຂອງໄຟລ໌. ສາມາດໃສ່ໄດ້ຫຼາຍແຮຊ, ແລະ ຂຶ້ນກັບໄຄລເອັນ (client) " +"ທີ່ຈະຕັດສິນໃຈວ່າຈະເຮັດແນວໃດກັບແຮຊເຫຼົ່ານັ້ນ (ອາດຈະກວດສອບທັງໝົດ ຫຼື ບາງສ່ວນ, ຫຼື ບໍ່ກວດເລີຍກໍໄດ້). " +"ຊື່ແຮຊເຫຼົ່ານີ້ **ຄວນ** ປັບໃຫ້ເປັນຕົວພິມນ້ອຍສະເໝີ." + +#: ../source/specifications/simple-repository-api.rst:551 +msgid "" +"The ``hashes`` dictionary **MUST** be present, even if no hashes are " +"available for the file, however it is **HIGHLY** recommended that at least " +"one secure, guaranteed-to-be-available hash is always included." +msgstr "" +"ດິກຊັນນາຣີ ``hashes`` **ຕ້ອງ** ມີຢູ່, ເຖິງແມ່ນວ່າຈະບໍ່ມີແຮຊສຳລັບໄຟລ໌ນັ້ນກໍຕາມ, ຢ່າງໃດກໍຕາມ " +"ຂໍແນະນຳ **ຢ່າງຍິ່ງ** ວ່າຄວນຈະມີຢ່າງໜ້ອຍໜຶ່ງແຮຊທີ່ມີຄວາມປອດໄພ ແລະ ຮັບປະກັນວ່ານຳໃຊ້ໄດ້." + +#: ../source/specifications/simple-repository-api.rst:555 +msgid "" +"By default, any hash algorithm available via :py:mod:`hashlib` (specifically " +"any that can be passed to :py:func:`hashlib.new()` and do not require " +"additional parameters) can be used as a key for the hashes dictionary. At " +"least one secure algorithm from :py:data:`hashlib.algorithms_guaranteed` " +"**SHOULD** always be included. At the time of this spec, ``sha256`` " +"specifically is recommended." +msgstr "" +"ໂດຍມາດຕະຖານ, ອັລກໍຣິທຶມແຮຊໃດໆທີ່ມີຢູ່ໃນ :py:mod:`hashlib` " +"(ໂດຍສະເພາະອັນທີ່ສາມາດສົ່ງໄປຫາ :py:func:`hashlib.new()` ໂດຍບໍ່ຕ້ອງມີພາຣາມີເຕີເພີ່ມເຕີມ) " +"ແມ່ນສາມາດໃຊ້ເປັນຄີສຳລັບດິກຊັນນາຣີແຮຊໄດ້. " +"ຢ່າງໜ້ອຍໜຶ່ງອັລກໍຣິທຶມທີ່ປອດໄພຈາກ :py:data:`hashlib.algorithms_guaranteed` **ຄວນ** " +"ຖືກລວມເຂົ້າສະເໝີ. ໃນຂະນະທີ່ຂຽນຂໍ້ກຳນົດນີ້, ຂໍແນະນຳເປັນພິເສດໃຫ້ໃຊ້ ``sha256``." + +#: ../source/specifications/simple-repository-api.rst:560 +msgid "" +"``requires-python``: An **optional** key that exposes the :ref:`core-" +"metadata-requires-python` metadata field. Where this is present, installer " +"tools **SHOULD** ignore the download when installing to a Python version " +"that doesn't satisfy the requirement." +msgstr "" +"``requires-python``: ຄີ **ທາງເລືອກ** ທີ່ສະແດງຟິວເມຕາເດຕາ :ref:`core-metadata-" +"requires-python`. ໃນບ່ອນທີ່ມີຄີນີ້, ເຄື່ອງມືການຕິດຕັ້ງ **ຄວນ (SHOULD)** ເມີນເສີຍຕໍ່ການດາວໂຫຼດ " +"ເມື່ອຕິດຕັ້ງໃສ່ເວີຊັນ Python ທີ່ບໍ່ຕອບສະໜອງຕາມຂໍ້ກໍານົດ." + +#: ../source/specifications/simple-repository-api.rst:566 +msgid "" +"Unlike ``data-requires-python`` in :ref:`the base HTML API specification " +"`, the ``requires-python`` key does not require " +"any special escaping other than anything JSON does naturally." +msgstr "" +"ແຕກຕ່າງຈາກ ``data-requires-python`` ໃນ :ref:`ຂໍ້ກຳນົດພື້ນຖານຂອງ HTML API `, ຄີ ``requires-python`` ບໍ່ຈຳເປັນຕ້ອງມີການຈັດການຕົວອັກສອນພິເສດ " +"(escaping) ໃດໆ ນອກຈາກສິ່ງທີ່ JSON ເຮັດຕາມປົກກະຕິ." + +#: ../source/specifications/simple-repository-api.rst:569 +msgid "" +"``core-metadata``: An **optional** key that indicates that metadata for this " +"file is available, via the same location as specified in :ref:`the API " +"metadata file specification ` " +"(``{file_url}.metadata``). Where this is present, it **MUST** be either a " +"boolean to indicate if the file has an associated metadata file, or a " +"dictionary mapping hash names to a hex encoded digest of the metadata's hash." +msgstr "" +"``core-metadata``: ຄີ **ທາງເລືອກ** ທີ່ບົ່ງບອກວ່າ ມີເມຕາເດຕາສຳລັບໄຟລ໌ນີ້, " +"ໂດຍຜ່ານຕຳແໜ່ງດຽວກັນກັບທີ່ລະບຸໄວ້ໃນ :ref:`ຂໍ້ກຳນົດໄຟລ໌ເມຕາເດຕາຂອງ API ` (``{file_url}.metadata``). ຖ້າມີຄີນີ້, ມັນ **ຕ້ອງ** ເປັນຄ່າບູລີນ " +"(boolean) ເພື່ອບອກວ່າໄຟລ໌ນັ້ນມີໄຟລ໌ເມຕາເດຕາກ່ຽວຂ້ອງຫຼືບໍ່, ຫຼື " +"ເປັນດິກຊັນນາຣີທີ່ຈັບຄູ່ຊື່ແຮຊກັບຄ່າໄດເຈສຂອງແຮຊເມຕາເດຕາ." + +#: ../source/specifications/simple-repository-api.rst:577 +msgid "" +"When this is a dictionary of hashes instead of a boolean, then all the same " +"requirements and recommendations as the ``hashes`` key hold true for this " +"key as well." +msgstr "" +"ເມື່ອຄີນີ້ເປັນດິກຊັນນາຣີຂອງແຮຊແທນທີ່ຈະເປັນຄ່າບູລີນ, ຂໍ້ກຳນົດ ແລະ ຄຳແນະນຳທັງໝົດຄືກັນກັບຄີ ``hashes`` " +"ກໍໃຫ້ໃຊ້ກັບຄີນີ້ເຊັ່ນກັນ." + +#: ../source/specifications/simple-repository-api.rst:581 +msgid "" +"If this key is missing then the metadata file may or may not exist. If the " +"key value is truthy, then the metadata file is present, and if it is falsey " +"then it is not." +msgstr "" +"ຖ້າບໍ່ມີຄີນີ້, ໄຟລ໌ເມຕາເດຕາອາດຈະມີ ຫຼື ບໍ່ມີກໍໄດ້. ຖ້າຄ່າຂອງຄີເປັນຈິງ (truthy), " +"ສະແດງວ່າໄຟລ໌ເມຕາເດຕາມີຢູ່, ແລະ ຖ້າເປັນເທັດ (falsey) ສະແດງວ່າບໍ່ມີ." + +#: ../source/specifications/simple-repository-api.rst:585 +msgid "" +"It is recommended that servers make the hashes of the metadata file " +"available if possible." +msgstr "ຂໍແນະນຳໃຫ້ເຊີບເວີສະໜອງຄ່າແຮຊຂອງໄຟລ໌ເມຕາເດຕາຫາກເປັນໄປໄດ້." + +#: ../source/specifications/simple-repository-api.rst:588 +msgid "" +"``dist-info-metadata``: An **optional**, deprecated alias for ``core-" +"metadata``." +msgstr "" +"``dist-info-metadata``: ຊື່ເອີ້ນແທນ (alias) ຂອງ ``core-metadata`` ເຊິ່ງເປັນ " +"**ທາງເລືອກ** ແລະ ຖືກຍົກເລີກການນຳໃຊ້ແລ້ວ." + +#: ../source/specifications/simple-repository-api.rst:590 +msgid "" +"Index clients **MAY** consume this key if present, as a legacy fallback for " +"``core-metadata``." +msgstr "" +"Index clients **ອາດຈະ** ໃຊ້ຄີນີ້ຫາກມີຢູ່, ເພື່ອເປັນການຮອງຮັບແບບເກົ່າ (fallback) ສຳລັບ " +"``core-metadata``." + +#: ../source/specifications/simple-repository-api.rst:595 +msgid "" +"``dist-info-metadata`` was standardized with :pep:`658` and renamed to " +"``core-metadata`` with :pep:`714`." +msgstr "" +"``dist-info-metadata`` ຖືກເຮັດໃຫ້ເປັນມາດຕະຖານໃນ :pep:`658` ແລະ ຖືກປ່ຽນຊື່ເປັນ ``core-" +"metadata`` ໃນ :pep:`714`." + +#: ../source/specifications/simple-repository-api.rst:598 +msgid "" +"``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " +"has an associated GPG signature or not. The URL for the signature file " +"follows what is specified in :ref:`the base HTML API specification ` (``{file_url}.asc``). If this key does not exist, then " +"the signature may or may not exist." +msgstr "" +"``gpg-sig``: ຄີ **ທາງເລືອກ** ທີ່ເຮັດໜ້າທີ່ເປັນຄ່າບູລີນເພື່ອບອກວ່າໄຟລ໌ມີລາຍເຊັນ GPG ກ່ຽວຂ້ອງຫຼືບໍ່. " +"URL ສຳລັບໄຟລ໌ລາຍເຊັນແມ່ນເປັນໄປຕາມທີ່ລະບຸໃນ :ref:`ຂໍ້ກຳນົດພື້ນຖານຂອງ HTML API ` (``{file_url}.asc``). ຖ້າບໍ່ມີຄີນີ້, ລາຍເຊັນອາດຈະມີ ຫຼື ບໍ່ມີກໍໄດ້." + +#: ../source/specifications/simple-repository-api.rst:604 +msgid "" +"``yanked``: An **optional** key which may be either a boolean to indicate if " +"the file has been yanked, or a non empty, but otherwise arbitrary, string to " +"indicate that a file has been yanked with a specific reason. If the " +"``yanked`` key is present and is a truthy value, then it **SHOULD** be " +"interpreted as indicating that the file pointed to by the ``url`` field has " +"been \"Yanked\"." +msgstr "" +"``yanked``: ຄີ **ທາງເລືອກ** ເຊິ່ງອາດຈະເປັນຄ່າບູລີນເພື່ອບອກວ່າໄຟລ໌ຖືກຖອນອອກ (yanked) ຫຼື ບໍ່, " +"ຫຼື ເປັນສະຕຣິງຂໍ້ຄວາມເພື່ອບອກວ່າໄຟລ໌ຖືກຖອນອອກຍ້ອນເຫດຜົນສະເພາະໃດໜຶ່ງ. ຖ້າມີຄີ ``yanked`` ແລະ " +"ມີຄ່າເປັນຈິງ, ມັນ **ຄວນ** ຖືກຕີຄວາມໝາຍວ່າໄຟລ໌ທີ່ລະບຸໃນຟີວ ``url`` ໄດ້ຖືກ \"ຖອນອອກ\"." + +#: ../source/specifications/simple-repository-api.rst:615 +msgid "" +"``size``: A **mandatory** key. It **MUST** contain an integer which is the " +"file size in bytes." +msgstr "" +"``size``: ຄີທີ່ **ຈຳເປັນ**. ມັນ **ຕ້ອງ** ປະກອບມີຕົວເລກຈຳນວນຖ້ວນ " +"ເຊິ່ງແມ່ນຂະໜາດຂອງໄຟລ໌ເປັນໄບຕ໌ (bytes)." + +#: ../source/specifications/simple-repository-api.rst:619 +msgid "The ``size`` key was added with API version 1.1." +msgstr "ຄີ ``size`` ຖືກເພີ່ມເຂົ້າມາໃນ API ເວີຊັນ 1.1." + +#: ../source/specifications/simple-repository-api.rst:621 +msgid "" +"``upload-time``: An **optional** key that, if present, **MUST** contain a " +"valid ISO 8601 date/time string in the format ``yyyy-mm-" +"ddThh:mm:ss.ffffffZ`` which represents the time the file was uploaded to the " +"index." +msgstr "" +"``upload-time``: ຄີ **ທາງເລືອກ** ທີ່ຖ້າມີ, **ຕ້ອງ** ປະກອບມີສະຕຣິງ ວັນທີ/ເວລາ " +"ຕາມມາດຕະຖານ ISO 8601 ໃນຮູບແບບ ``yyyy-mm-ddThh:mm:ss.ffffffZ`` " +"ເຊິ່ງສະແດງເຖິງເວລາທີ່ໄຟລ໌ຖືກອັບໂຫຼດເຂົ້າໄປໃນອິນເດັກ." + +#: ../source/specifications/simple-repository-api.rst:625 +msgid "" +"As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " +"timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " +"part) is optional, and if present may contain up to 6 digits of precision. " +"If a server does not record upload time information for a file, it **MAY** " +"omit the ``upload-time`` key." +msgstr "" +"ຕາມທີ່ລະບຸດ້ວຍຕົວອັກສອນ ``Z`` ຕໍ່ທ້າຍ, ເວລາອັບໂຫຼດ **ຕ້ອງ** ໃຊ້ເຂດເວລາ UTC. ສ່ວນຂອງເສດວິນາທີ " +"(ສ່ວນ ``.ffffff``) ແມ່ນເປັນທາງເລືອກ, ແລະ ຖ້າມີ ອາດມີຄວາມລະອຽດໄດ້ສູງສຸດ 6 ຫຼັກ. " +"ຖ້າເຊີບເວີບໍ່ໄດ້ບັນທຶກຂໍ້ມູນເວລາອັບໂຫຼດສຳລັບໄຟລ໌, ມັນ **ອາດຈະ** ລະເວັ້ນຄີ ``upload-time`` ນີ້." + +#: ../source/specifications/simple-repository-api.rst:632 +msgid "The ``upload-time`` key was added with API version 1.1." +msgstr "ຄີ ``upload-time`` ຖືກເພີ່ມເຂົ້າມາໃນ API ເວີຊັນ 1.1." + +#: ../source/specifications/simple-repository-api.rst:634 +msgid "" +"``provenance``: An **optional** key which, if present **MUST** be either a " +"JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " +"associated provenance, with the same rules as ``data-provenance`` in " +"the :ref:`base HTML API specification `." +msgstr "" +"``provenance``: ຄີ **ທາງເລືອກ** ເຊິ່ງຖ້າມີ **ຕ້ອງ** ເປັນສະຕຣິງ JSON ຫຼື ``null``. " +"ຖ້າບໍ່ແມ່ນ ``null``, ມັນ **ຕ້ອງ** ເປັນ URL ໄປຫາຂໍ້ມູນແຫຼ່ງທີ່ມາກ່ຽວຂ້ອງຂອງໄຟລ໌, " +"ໂດຍໃຊ້ກົດເກນດຽວກັນກັບ ``data-provenance`` ໃນ :ref:`ຂໍ້ກຳນົດພື້ນຖານຂອງ HTML API " +"`." + +#: ../source/specifications/simple-repository-api.rst:641 +msgid "The ``provenance`` field was added with API version 1.3." +msgstr "ຟີວ ``provenance`` ຖືກເພີ່ມເຂົ້າມາໃນ API ເວີຊັນ 1.3." + +#: ../source/specifications/simple-repository-api.rst:679 +msgid "" +"While the ``files`` key is an array, and thus is required to be in some kind " +"of an order, neither :ref:`the base HTML API specification ` nor this spec requires any specific ordering nor that " +"the ordering is consistent from one request to the next. Mentally this is " +"best thought of as a set, but both JSON and HTML lack the functionality to " +"have sets." +msgstr "" +"ເຖິງແມ່ນວ່າຄີ ``files`` ຈະເປັນອາເຣ (array), ເຊິ່ງຈຳເປັນຕ້ອງມີລຳດັບບາງຢ່າງ, " +"ແຕ່ທັງ :ref:`ຂໍ້ກຳນົດພື້ນຖານຂອງ HTML API ` ແລະ " +"ຂໍ້ກຳນົດນີ້ບໍ່ໄດ້ບັງຄັບການຈັດລຳດັບສະເພາະໃດໆ ຫຼື ບັງຄັບໃຫ້ລຳດັບຕ້ອງຄືກັນໃນທຸກໆຄັ້ງທີ່ຮ້ອງຂໍ. " +"ໃນທາງຄວາມຄິດແລ້ວ ຄວນເບິ່ງມັນເປັນເຊັດ (set), ແຕ່ທັງ JSON ແລະ HTML " +"ຍັງບໍ່ມີຄວາມສາມາດໃນການຮອງຮັບເຊັດ." + +#: ../source/specifications/simple-repository-api.rst:688 +msgid "Content-Types" +msgstr "ປະເພດເນື້ອຫາ (Content-Types)" + +#: ../source/specifications/simple-repository-api.rst:690 +msgid "" +"This spec proposes that all responses from the Simple API will have a " +"standard content type that describes what the response is (a Simple API " +"response), what version of the API it represents, and what serialization " +"format has been used." +msgstr "" +"ຂໍ້ກຳນົດນີ້ສະເໜີວ່າ ທຸກໆການຕອບກັບຈາກ Simple API ຈະມີປະເພດເນື້ອຫາທີ່ເປັນມາດຕະຖານ " +"ເຊິ່ງອະທິບາຍວ່າການຕອບກັບນັ້ນແມ່ນຫຍັງ (ເປັນການຕອບກັບຂອງ Simple API), ແມ່ນ API ເວີຊັນໃດ, ແລະ " +"ໃຊ້ຮູບແບບການແປງຂໍ້ມູນ (serialization) ໃດ." + +#: ../source/specifications/simple-repository-api.rst:694 +msgid "The structure of this content type will be:" +msgstr "ໂຄງສ້າງຂອງປະເພດເນື້ອຫານີ້ຈະແມ່ນ:" + +#: ../source/specifications/simple-repository-api.rst:700 +msgid "" +"Since only major versions should be disruptive to clients attempting to " +"understand one of these API responses, only the major version will be " +"included in the content type, and will be prefixed with a ``v`` to clarify " +"that it is a version number." +msgstr "" +"ເນື່ອງຈາກມີພຽງແຕ່ເວີຊັນຫຼັກ (major versions) ເທົ່ານັ້ນທີ່ຈະມີຜົນກະທົບຕໍ່ໄຄລເອັນ, " +"ດັ່ງນັ້ນຈຶ່ງມີພຽງແຕ່ເວີຊັນຫຼັກທີ່ຈະຖືກລວມເຂົ້າໃນປະເພດເນື້ອຫາ, ແລະ ຈະມີຕົວອັກສອນ ``v`` " +"ນຳໜ້າເພື່ອໃຫ້ຊັດເຈນວ່າເປັນເລກເວີຊັນ." + +#: ../source/specifications/simple-repository-api.rst:705 +msgid "Which means that for the existing 1.0 API, the content types would be:" +msgstr "ເຊິ່ງໝາຍຄວາມວ່າສຳລັບ API 1.0 ທີ່ມີຢູ່, ປະເພດເນື້ອຫາຈະແມ່ນ:" + +#: ../source/specifications/simple-repository-api.rst:707 +msgid "**JSON:** ``application/vnd.pypi.simple.v1+json``" +msgstr "**JSON:** ``application/vnd.pypi.simple.v1+json``" + +#: ../source/specifications/simple-repository-api.rst:708 +msgid "**HTML:** ``application/vnd.pypi.simple.v1+html``" +msgstr "**HTML:** ``application/vnd.pypi.simple.v1+html``" + +#: ../source/specifications/simple-repository-api.rst:710 +msgid "" +"In addition to the above, a special \"meta\" version is supported named " +"``latest``, whose purpose is to allow clients to request the absolute latest " +"version, without having to know ahead of time what that version is. It is " +"recommended however, that clients be explicit about what versions they " +"support." +msgstr "" +"ນອກຈາກຂ້າງເທິງແລ້ວ, ຍັງມີການຮອງຮັບເວີຊັນ \"meta\" ພິເສດທີ່ຊື່ວ່າ ``latest``, " +"ເຊິ່ງມີຈຸດປະສົງເພື່ອໃຫ້ໄຄລເອັນສາມາດຮ້ອງຂໍເວີຊັນຫຼ້າສຸດໄດ້ ໂດຍບໍ່ຈຳເປັນຕ້ອງຮູ້ລ່ວງໜ້າວ່າເວີຊັນນັ້ນແມ່ນຫຍັງ. " +"ຢ່າງໃດກໍຕາມ, ຂໍແນະນຳໃຫ້ໄຄລເອັນລະບຸເວີຊັນທີ່ພວກເຂົາຮອງຮັບໃຫ້ຊັດເຈນ." + +#: ../source/specifications/simple-repository-api.rst:715 +msgid "" +"To support existing clients which expect the existing :ref:`the base HTML " +"API specification ` API responses to use the " +"``text/html`` content type, this spec further defines ``text/html`` as an " +"alias for the ``application/vnd.pypi.simple.v1+html`` content type." +msgstr "" +"ເພື່ອຮອງຮັບໄຄລເອັນເດີມທີ່ຕ້ອງການການຕອບກັບ API ຕາມ :ref:`ຂໍ້ກຳນົດພື້ນຖານຂອງ HTML API " +"` ທີ່ໃຊ້ປະເພດເນື້ອຫາ ``text/html``, ຂໍ້ກຳນົດນີ້ຈຶ່ງກຳນົດໃຫ້ " +"``text/html`` ເປັນຊື່ເອີ້ນແທນສຳລັບປະເພດເນື້ອຫາ ``application/" +"vnd.pypi.simple.v1+html``." + +#: ../source/specifications/simple-repository-api.rst:722 +msgid "Version + Format Selection" +msgstr "ການເລືອກເວີຊັນ + ຮູບແບບ" + +#: ../source/specifications/simple-repository-api.rst:724 +msgid "" +"Now that there is multiple possible serializations, we need a mechanism to " +"allow clients to indicate what serialization formats they're able to " +"understand. In addition, it would be beneficial if any possible new major " +"version to the API can be added without disrupting existing clients " +"expecting the previous API version." +msgstr "" +"ເນື່ອງຈາກຕອນນີ້ມີຮູບແບບການແປງຂໍ້ມູນຫຼາຍຮູບແບບ, " +"ພວກເຮົາຈຶ່ງຕ້ອງການກົນໄກເພື່ອໃຫ້ໄຄລເອັນສາມາດບົ່ງບອກໄດ້ວ່າຮູບແບບໃດທີ່ພວກເຂົາເຂົ້າໃຈ. ນອກຈາກນັ້ນ, " +"ມັນຈະເປັນປະໂຫຍດຫຼາຍຖ້າຫາກສາມາດເພີ່ມເວີຊັນຫຼັກໃໝ່ຂອງ API ໄດ້ ໂດຍບໍ່ມີຜົນກະທົບຕໍ່ໄຄລເອັນເດີມທີ່ຍັງໃຊ້ " +"API ເວີຊັນກ່ອນໜ້ານີ້." + +#: ../source/specifications/simple-repository-api.rst:729 +msgid "" +"To enable this, this spec standardizes on the use of HTTP's `Server-Driven " +"Content Negotiation `_." +msgstr "" +"ເພື່ອເຮັດສິ່ງນີ້ໄດ້, ຂໍ້ກຳນົດນີ້ຈຶ່ງໃຊ້ `ການຕໍ່ຮອງເນື້ອຫາໂດຍເຊີບເວີ (Server-Driven Content " +"Negotiation) `_ ຂອງ HTTP ເປັນມາດຕະຖານ." + +#: ../source/specifications/simple-repository-api.rst:732 +msgid "" +"While this spec won't fully describe the entirety of server-driven content " +"negotiation, the flow is roughly:" +msgstr "" +"ເຖິງແມ່ນວ່າຂໍ້ກຳນົດນີ້ຈະບໍ່ໄດ້ອະທິບາຍລາຍລະອຽດທັງໝົດຂອງການຕໍ່ຮອງເນື້ອຫາໂດຍເຊີບເວີ, " +"ແຕ່ຂັ້ນຕອນໂດຍປະມານແມ່ນ:" + +#: ../source/specifications/simple-repository-api.rst:735 +msgid "" +"The client makes an HTTP request containing an ``Accept`` header listing all " +"of the version+format content types that they are able to understand." +msgstr "" +"ໄຄລເອັນສົ່ງຄຳຮ້ອງ HTTP ທີ່ມີເຮດເດີ (header) ``Accept`` ເຊິ່ງລະບຸລາຍການປະເພດເນື້ອຫາ " +"ເວີຊັນ+ຮູບແບບ ທັງໝົດທີ່ພວກເຂົາເຂົ້າໃຈ." + +#: ../source/specifications/simple-repository-api.rst:737 +msgid "" +"The server inspects that header, selects one of the listed content types, " +"then returns a response using that content type (treating the absence of an " +"``Accept`` header as ``Accept: */*``)." +msgstr "" +"ເຊີບເວີກວດສອບເຮດເດີນັ້ນ, ເລືອກປະເພດເນື້ອຫາອັນໃດອັນໜຶ່ງຈາກລາຍການ, " +"ແລ້ວສົ່ງການຕອບກັບໂດຍໃຊ້ປະເພດເນື້ອຫານັ້ນ (ຖ້າບໍ່ມີເຮດເດີ ``Accept`` ຈະຖືວ່າເປັນ ``Accept: */" +"*``)." + +#: ../source/specifications/simple-repository-api.rst:740 +msgid "" +"If the server does not support any of the content types in the ``Accept`` " +"header then they are able to choose between 3 different options for how to " +"respond:" +msgstr "" +"ຖ້າເຊີບເວີບໍ່ຮອງຮັບປະເພດເນື້ອຫາໃດໆໃນເຮດເດີ ``Accept``, ພວກເຂົາສາມາດເລືອກໄດ້ລະຫວ່າງ 3 " +"ທາງເລືອກໃນການຕອບກັບ:" + +#: ../source/specifications/simple-repository-api.rst:744 +msgid "" +"Select a default content type other than what the client has requested and " +"return a response with that." +msgstr "ເລືອກປະເພດເນື້ອຫາມາດຕະຖານອື່ນນອກຈາກທີ່ໄຄລເອັນຮ້ອງຂໍ ແລະ ສົ່ງການຕອບກັບດ້ວຍຄ່ານັ້ນ." + +#: ../source/specifications/simple-repository-api.rst:746 +msgid "" +"Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " +"requested content types were available, and the server was unable or " +"unwilling to select a default content type to respond with." +msgstr "" +"ສົ່ງການຕອບກັບ HTTP ``406 Not Acceptable`` ເພື່ອບອກວ່າບໍ່ມີປະເພດເນື້ອຫາທີ່ຮ້ອງຂໍ, ແລະ " +"ເຊີບເວີບໍ່ສາມາດ ຫຼື ບໍ່ຕ້ອງການເລືອກປະເພດເນື້ອຫາມາດຕະຖານເພື່ອຕອບກັບ." + +#: ../source/specifications/simple-repository-api.rst:749 +msgid "" +"Return a HTTP ``300 Multiple Choices`` response that contains a list of all " +"of the possible responses that could have been chosen." +msgstr "" +"ສົ່ງການຕອບກັບ HTTP ``300 Multiple Choices`` " +"ເຊິ່ງປະກອບມີລາຍການຂອງການຕອບກັບທັງໝົດທີ່ອາດຈະເລືອກໄດ້." + +#: ../source/specifications/simple-repository-api.rst:751 +msgid "" +"The client interprets the response, handling the different types of " +"responses that the server may have responded with." +msgstr "ໄຄລເອັນຕີຄວາມໝາຍການຕອບກັບ, ໂດຍຈັດການກັບຮູບແບບຕ່າງໆທີ່ເຊີບເວີອາດຈະສົ່ງມານັ້ນ." + +#: ../source/specifications/simple-repository-api.rst:754 +msgid "" +"This spec does not specify which choices the server makes in regards to " +"handling a content type that it isn't able to return, and clients **SHOULD** " +"be prepared to handle all of the possible responses in whatever way makes " +"the most sense for that client." +msgstr "" +"ຂໍ້ກຳນົດນີ້ບໍ່ໄດ້ລະບຸວ່າເຊີບເວີຕ້ອງເລືອກທາງໃດໃນການຈັດການກັບປະເພດເນື້ອຫາທີ່ບໍ່ສາມາດສົ່ງໃຫ້ໄດ້, ແລະ " +"ໄຄລເອັນ **ຄວນ** " +"ກຽມພ້ອມທີ່ຈະຈັດການກັບການຕອບກັບທຸກຮູບແບບທີ່ເປັນໄປໄດ້ໃນວິທີທີ່ເໝາະສົມທີ່ສຸດສຳລັບໄຄລເອັນນັ້ນ." + +#: ../source/specifications/simple-repository-api.rst:759 +msgid "" +"However, as there is no standard format for how a ``300 Multiple Choices`` " +"response can be interpreted, this spec highly discourages servers from " +"utilizing that option, as clients will have no way to understand and select " +"a different content-type to request. In addition, it's unlikely that the " +"client *could* understand a different content type anyways, so at best this " +"response would likely just be treated the same as a ``406 Not Acceptable`` " +"error." +msgstr "" +"ຢ່າງໃດກໍຕາມ, ເນື່ອງຈາກບໍ່ມີຮູບແບບມາດຕະຖານໃນການຕີຄວາມໝາຍການຕອບກັບ ``300 Multiple " +"Choices``, ຂໍ້ກຳນົດນີ້ຈຶ່ງບໍ່ແນະນຳໃຫ້ເຊີບເວີໃຊ້ທາງເລືອກນີ້, ເພາະໄຄລເອັນຈະບໍ່ມີທາງເຂົ້າໃຈ ແລະ " +"ເລືອກປະເພດເນື້ອຫາອື່ນເພື່ອຮ້ອງຂໍໄດ້. ນອກຈາກນັ້ນ, " +"ມັນກໍເປັນໄປໄດ້ຍາກທີ່ໄຄລເອັນຈະເຂົ້າໃຈປະເພດເນື້ອຫາອື່ນຢູ່ແລ້ວ, ດັ່ງນັ້ນ " +"ຢ່າງດີທີ່ສຸດການຕອບກັບນີ້ກໍຈະຖືກປະຕິບັດຄືກັນກັບຂໍ້ຜິດພາດ ``406 Not Acceptable``." + +#: ../source/specifications/simple-repository-api.rst:766 +msgid "" +"This spec **does** require that if the meta version ``latest`` is being " +"used, the server **MUST** respond with the content type for the actual " +"version that is contained in the response (i.e. an ``Accept: application/" +"vnd.pypi.simple.latest+json`` request that returns a ``v1.x`` response " +"should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." +msgstr "" +"ຂໍ້ກຳນົດນີ້ **ບັງຄັບ** ວ່າຖ້າໃຊ້ເມຕາເວີຊັນ ``latest``, ເຊີບເວີ **ຕ້ອງ** " +"ຕອບກັບດ້ວຍປະເພດເນື້ອຫາສຳລັບເວີຊັນຕົວຈິງທີ່ຢູ່ໃນການຕອບກັບນັ້ນ (ຕົວຢ່າງ: ຄຳຮ້ອງ ``Accept: " +"application/vnd.pypi.simple.latest+json`` ທີ່ສົ່ງເວີຊັນ ``v1.x`` ກັບມາ ຄວນມີ " +"``Content-Type`` ເປັນ ``application/vnd.pypi.simple.v1+json``)." + +#: ../source/specifications/simple-repository-api.rst:773 +msgid "" +"The ``Accept`` header is a comma separated list of content types that the " +"client understands and is able to process. It supports three different " +"formats for each content type that is being requested:" +msgstr "" +"ເຮດເດີ ``Accept`` ແມ່ນລາຍການປະເພດເນື້ອຫາທີ່ແຍກດ້ວຍຈຸດ ເຊິ່ງໄຄລເອັນເຂົ້າໃຈ ແລະ " +"ສາມາດປະມວນຜົນໄດ້. ມັນຮອງຮັບ 3 ຮູບແບບທີ່ແຕກຕ່າງກັນສຳລັບແຕ່ລະປະເພດເນື້ອຫາທີ່ຮ້ອງຂໍ:" + +#: ../source/specifications/simple-repository-api.rst:777 +msgid "``$type/$subtype``" +msgstr "``$type/$subtype``" + +#: ../source/specifications/simple-repository-api.rst:778 +msgid "``$type/*``" +msgstr "``$type/*``" + +#: ../source/specifications/simple-repository-api.rst:779 +msgid "``*/*``" +msgstr "``*/*``" + +#: ../source/specifications/simple-repository-api.rst:781 +msgid "" +"For the use of selecting a version+format, the most useful of these is " +"``$type/$subtype``, as that is the only way to actually specify the version " +"and format you want." +msgstr "" +"ສຳລັບການເລືອກ ເວີຊັນ+ຮູບແບບ, ຮູບແບບທີ່ມີປະໂຫຍດທີ່ສຸດແມ່ນ ``$type/$subtype``, " +"ເພາະວ່າເປັນວິທີດຽວທີ່ຈະລະບຸເວີຊັນ ແລະ ຮູບແບບທີ່ຕ້ອງການໄດ້ແທ້ຈິງ." + +#: ../source/specifications/simple-repository-api.rst:785 +msgid "" +"The order of the content types listed in the ``Accept`` header does not have " +"any specific meaning, and the server **SHOULD** consider all of them to be " +"equally valid to respond with. If a client wishes to specify that they " +"prefer a specific content type over another, they may use the ``Accept`` " +"header's `quality value `_ syntax." +msgstr "" +"ລຳດັບຂອງປະເພດເນື້ອຫາໃນເຮດເດີ ``Accept`` ບໍ່ມີຄວາມໝາຍສະເພາະໃດໆ, ແລະ ເຊີບເວີ **ຄວນ** " +"ຖືວ່າທຸກອັນມີຄວາມຖືກຕ້ອງເທົ່າກັນໃນການຕອບກັບ. " +"ຖ້າໄຄລເອັນຕ້ອງການລະບຸວ່າພວກເຂົາມັກປະເພດເນື້ອຫາໃດໜຶ່ງຫຼາຍກວ່າ, ພວກເຂົາສາມາດໃຊ້ໄວຍາກອນ " +"`quality value `_ ຂອງເຮດເດີ ``Accept``." + +#: ../source/specifications/simple-repository-api.rst:792 +msgid "" +"This allows a client to specify a priority for a specific entry in their " +"``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " +"and ``1`` inclusive, with up to 3 decimal digits. When interpreting this " +"value, an entry with a higher quality has priority over an entry with a " +"lower quality, and any entry without a quality present will default to a " +"quality of ``1``." +msgstr "" +"ສິ່ງນີ້ຊ່ວຍໃຫ້ໄຄລເອັນລະບຸລຳດັບຄວາມສຳຄັນສຳລັບແຕ່ລະລາຍການໃນເຮດເດີ ``Accept``, ໂດຍການເຕີມ " +"``;q=`` ຕາມດ້ວຍຄ່າລະຫວ່າງ ``0`` ຫາ ``1``, ເຊິ່ງມີທົດສະນິຍົມໄດ້ສູງສຸດ 3 ຫຼັກ. " +"ໃນການຕີຄວາມໝາຍຄ່ານີ້, ລາຍການທີ່ມີຄ່າຄຸນນະພາບສູງກວ່າຈະມີບຸລິມະສິດຫຼາຍກວ່າ, ແລະ " +"ລາຍການໃດທີ່ບໍ່ມີຄ່າຄຸນນະພາບຈະຖືກກຳນົດໃຫ້ເປັນ ``1`` ໂດຍອັດຕະໂນມັດ." + +#: ../source/specifications/simple-repository-api.rst:798 +msgid "" +"However, clients should keep in mind that a server is free to select **any** " +"of the content types they've asked for, regardless of their requested " +"priority, and it may even return a content type that they did **not** ask " +"for." +msgstr "" +"ຢ່າງໃດກໍຕາມ, ໄຄລເອັນຄວນຈື່ໄວ້ວ່າ ເຊີບເວີມີສິດທີ່ຈະເລືອກປະເພດເນື້ອຫາ **ໃດກໍໄດ້** ທີ່ໄດ້ຮ້ອງຂໍໄປ, " +"ໂດຍບໍ່ຄຳນຶງເຖິງບຸລິມະສິດທີ່ລະບຸ, ແລະ ມັນອາດຈະສົ່ງປະເພດເນື້ອຫາທີ່ **ບໍ່ໄດ້** ຮ້ອງຂໍຄືນມາກໍໄດ້." + +#: ../source/specifications/simple-repository-api.rst:802 +msgid "" +"To aid clients in determining the content type of the response that they " +"have received from an API request, this spec requires that servers always " +"include a ``Content-Type`` header indicating the content type of the " +"response. This is technically a backwards incompatible change, however in " +"practice `pip has been enforcing this requirement `_ so the risks for actual breakages is low." +msgstr "" +"ເພື່ອຊ່ວຍໄຄລເອັນໃນການກຳນົດປະເພດເນື້ອຫາຂອງການຕອບກັບຈາກ API, " +"ຂໍ້ກຳນົດນີ້ບັງຄັບໃຫ້ເຊີບເວີຕ້ອງໃສ່ເຮດເດີ ``Content-Type`` " +"ເພື່ອບອກປະເພດເນື້ອຫາຂອງການຕອບກັບສະເໝີ. ໃນທາງເຕັກນິກແລ້ວ " +"ນີ້ແມ່ນການປ່ຽນແປງທີ່ບໍ່ຮອງຮັບກັບເວີຊັນເກົ່າ, ແຕ່ໃນທາງປະຕິບັດ `pip ໄດ້ບັງຄັບໃຊ້ຂໍ້ກຳນົດນີ້ແລ້ວ `_ ດັ່ງນັ້ນຄວາມສ່ຽງທີ່ຈະເກີດບັນຫາຈຶ່ງມີໜ້ອຍ." + +#: ../source/specifications/simple-repository-api.rst:809 +msgid "An example of how a client can operate would look like:" +msgstr "ຕົວຢ່າງວິທີທີ່ໄຄລເອັນສາມາດເຮັດວຽກໄດ້ແມ່ນ:" + +#: ../source/specifications/simple-repository-api.rst:860 +msgid "" +"If a client wishes to only support HTML or only support JSON, then they " +"would just remove the content types that they do not want from the " +"``Accept`` header, and turn receiving them into an error." +msgstr "" +"ຖ້າໄຄລເອັນຕ້ອງການຮອງຮັບພຽງແຕ່ HTML ຫຼື ພຽງແຕ່ JSON, " +"ພວກເຂົາກໍພຽງແຕ່ເອົາປະເພດເນື້ອຫາທີ່ບໍ່ຕ້ອງການອອກຈາກເຮດເດີ ``Accept``, ແລະ " +"ກຳນົດໃຫ້ການໄດ້ຮັບປະເພດເນື້ອຫາເຫຼົ່ານັ້ນເປັນຂໍ້ຜິດພາດ." + +#: ../source/specifications/simple-repository-api.rst:866 +msgid "Alternative Negotiation Mechanisms" +msgstr "ກົນໄກການຕໍ່ຮອງທາງເລືອກອື່ນ" + +#: ../source/specifications/simple-repository-api.rst:868 +msgid "" +"While using HTTP's Content negotiation is considered the standard way for a " +"client and server to coordinate to ensure that the client is getting an HTTP " +"response that it is able to understand, there are situations where that " +"mechanism may not be sufficient. For those cases this spec has alternative " +"negotiation mechanisms that may *optionally* be used instead." +msgstr "" +"ເຖິງແມ່ນວ່າການໃຊ້ Content negotiation ຂອງ HTTP " +"ຈະຖືວ່າເປັນວິທີມາດຕະຖານໃນການປະສານງານລະຫວ່າງໄຄລເອັນ ແລະ ເຊີບເວີ, " +"ແຕ່ກໍມີບາງສະຖານະການທີ່ກົນໄກດັ່ງກ່າວອາດຈະບໍ່ພຽງພໍ. ສຳລັບກໍລະນີເຫຼົ່ານັ້ນ, " +"ຂໍ້ກຳນົດນີ້ມີກົນໄກການຕໍ່ຮອງທາງເລືອກອື່ນທີ່ອາດຈະໃຊ້ເປັນ **ທາງເລືອກ** ແທນໄດ້." + +#: ../source/specifications/simple-repository-api.rst:876 +msgid "URL Parameter" +msgstr "ພາຣາມີເຕີ URL" + +#: ../source/specifications/simple-repository-api.rst:878 +msgid "" +"Servers that implement the Simple API may choose to support a URL parameter " +"named ``format`` to allow the clients to request a specific version of the " +"URL." +msgstr "" +"ເຊີບເວີທີ່ນຳໃຊ້ Simple API ອາດຈະເລືອກຮອງຮັບພາຣາມີເຕີ URL ທີ່ຊື່ວ່າ ``format`` " +"ເພື່ອໃຫ້ໄຄລເອັນສາມາດຮ້ອງຂໍເວີຊັນສະເພາະຂອງ URL ໄດ້." + +#: ../source/specifications/simple-repository-api.rst:881 +msgid "" +"The value of the ``format`` parameter should be **one** of the valid content " +"types. Passing multiple content types, wild cards, quality values, etc... is " +"**not** supported." +msgstr "" +"ຄ່າຂອງພາຣາມີເຕີ ``format`` ຄວນເປັນ **ອັນໃດອັນໜຶ່ງ** ຂອງປະເພດເນື້ອຫາທີ່ຖືກຕ້ອງ. " +"ການສົ່ງຫຼາຍປະເພດເນື້ອຫາ, ຕົວອັກສອນ wild card, ຄ່າຄຸນນະພາບ ແລະ ອື່ນໆ ແມ່ນ **ບໍ່ຮອງຮັບ**." + +#: ../source/specifications/simple-repository-api.rst:885 +msgid "" +"Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " +"for interacting with the API. This negotiation mechanism is intended to " +"allow for easier human based exploration of the API within a browser, or to " +"allow documentation or notes to link to a specific version+format." +msgstr "" +"ການຮອງຮັບພາຣາມີເຕີນີ້ແມ່ນເປັນທາງເລືອກ, ແລະ ໄຄລເອັນ **ບໍ່ຄວນ** ອີງໃສ່ມັນໃນການໂຕ້ຕອບກັບ API. " +"ກົນໄກການຕໍ່ຮອງນີ້ມີຈຸດປະສົງເພື່ອໃຫ້ຄົນສາມາດສຳຫຼວດ API ໃນບຣາວເຊີໄດ້ງ່າຍຂຶ້ນ, ຫຼື ເພື່ອໃຫ້ເອກະສານ ຫຼື " +"ໝາຍເຫດສາມາດເຊື່ອມຕໍ່ໄປຫາ ເວີຊັນ+ຮູບແບບ ສະເພາະໃດໜຶ່ງໄດ້." + +#: ../source/specifications/simple-repository-api.rst:890 +msgid "" +"Servers that do not support this parameter may choose to return an error " +"when it is present, or they may simple ignore its presence." +msgstr "" +"ເຊີບເວີທີ່ບໍ່ຮອງຮັບພາຣາມີເຕີນີ້ອາດຈະເລືອກສົ່ງຂໍ້ຜິດພາດກັບຄືນມາເມື່ອມີການໃຊ້ຄ່ານີ້, ຫຼື ອາດຈະລະເວັ້ນມັນໄປເລີຍ." + +#: ../source/specifications/simple-repository-api.rst:893 +msgid "" +"When a server does implement this parameter, it **SHOULD** take precedence " +"over any values in the client's ``Accept`` header, and if the server does " +"not support the requested format, it may choose to fall back to the " +"``Accept`` header, or choose any of the error conditions that standard " +"server-driven content negotiation typically has (e.g. ``406 Not Available``, " +"``303 Multiple Choices``, or selecting a default type to return)." +msgstr "" +"ເມື່ອເຊີບເວີນຳໃຊ້ພາຣາມີເຕີນີ້, ມັນ **ຄວນ** ມີບຸລິມະສິດສູງກວ່າຄ່າໃນເຮດເດີ ``Accept`` ຂອງໄຄລເອັນ, " +"ແລະ ຖ້າເຊີບເວີບໍ່ຮອງຮັບຮູບແບບທີ່ຮ້ອງຂໍ, ມັນອາດຈະເລືອກກັບໄປໃຊ້ເຮດເດີ ``Accept``, ຫຼື " +"ເລືອກສະຖານະຂໍ້ຜິດພາດໃດໜຶ່ງ (ເຊັ່ນ: ``406 Not Available``, ``303 Multiple Choices``, " +"ຫຼື ເລືອກປະເພດມາດຕະຖານເພື່ອຕອບກັບ)." + +#: ../source/specifications/simple-repository-api.rst:902 +msgid "Endpoint Configuration" +msgstr "ການກຳນົດຄ່າຈຸດເຊື່ອມຕໍ່ (Endpoint Configuration)" + +#: ../source/specifications/simple-repository-api.rst:904 +msgid "" +"This option technically is not a special option at all, it is just a natural " +"consequence of using content negotiation and allowing servers to select " +"which of the available content types is their default." +msgstr "" +"ທາງເລືອກນີ້ໃນທາງເຕັກນິກແລ້ວບໍ່ແມ່ນທາງເລືອກພິເສດຫຍັງເລີຍ, " +"ມັນເປັນພຽງຜົນທີ່ຕາມມາຂອງການໃຊ້ການຕໍ່ຮອງເນື້ອຫາ ແລະ " +"ການອະນຸຍາດໃຫ້ເຊີບເວີເລືອກວ່າປະເພດເນື້ອຫາໃດທີ່ມີຢູ່ເປັນຄ່າມາດຕະຖານ." + +#: ../source/specifications/simple-repository-api.rst:908 +msgid "" +"If a server is unwilling or unable to implement the server-driven content " +"negotiation, and would instead rather require users to explicitly configure " +"their client to select the version they want, then that is a supported " +"configuration." +msgstr "" +"ຖ້າເຊີບເວີບໍ່ຕ້ອງການ ຫຼື ບໍ່ສາມາດນຳໃຊ້ການຕໍ່ຮອງເນື້ອຫາໂດຍເຊີບເວີໄດ້, ແລະ " +"ຕ້ອງການໃຫ້ຜູ້ໃຊ້ກຳນົດຄ່າໄຄລເອັນເອງເພື່ອເລືອກເວີຊັນທີ່ຕ້ອງການ, " +"ນັ້ນກໍແມ່ນຮູບແບບການກຳນົດຄ່າທີ່ຮອງຮັບເຊັ່ນກັນ." + +#: ../source/specifications/simple-repository-api.rst:912 +msgid "" +"To enable this, a server should make multiple endpoints (for instance, ``/" +"simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " +"they wish to support. Under that endpoint, they can host a copy of their " +"repository that only supports one (or a subset) of the content-types. When a " +"client makes a request using the ``Accept`` header, the server can ignore it " +"and return the content type that corresponds to that endpoint." +msgstr "" +"ເພື່ອເຮັດແບບນີ້, ເຊີບເວີຄວນສ້າງຫຼາຍຈຸດເຊື່ອມຕໍ່ (ຕົວຢ່າງ: ``/simple/v1+html/`` ແລະ/ຫຼື ``/" +"simple/v1+json/``) ສຳລັບແຕ່ລະ ເວີຊັນ+ຮູບແບບ ທີ່ພວກເຂົາຕ້ອງການຮອງຮັບ. ພາຍໃຕ້ຈຸດເຊື່ອມຕໍ່ນັ້ນ, " +"ພວກເຂົາສາມາດເກັບສຳເນົາຂອງຄັງເກັບຂໍ້ມູນ (repository) ທີ່ຮອງຮັບພຽງປະເພດເນື້ອຫາດຽວ (ຫຼື " +"ບາງສ່ວນ). ເມື່ອໄຄລເອັນສົ່ງຄຳຮ້ອງໂດຍໃຊ້ເຮດເດີ ``Accept``, ເຊີບເວີສາມາດລະເວັ້ນມັນ ແລະ " +"ສົ່ງປະເພດເນື້ອຫາທີ່ກົງກັບຈຸດເຊື່ອມຕໍ່ນັ້ນຄືນມາ." + +#: ../source/specifications/simple-repository-api.rst:919 +msgid "" +"For clients that wish to require specific configuration, they can keep track " +"of which version+format a specific repository URL was configured for, and " +"when making a request to that server, emit an ``Accept`` header that *only* " +"includes the correct content type." +msgstr "" +"ສຳລັບໄຄລເອັນທີ່ຕ້ອງການການກຳນົດຄ່າສະເພາະ, ພວກເຂົາສາມາດບັນທຶກໄວ້ວ່າ URL ຂອງ repository " +"ໃດໜຶ່ງຖືກກຳນົດຄ່າໄວ້ສຳລັບ ເວີຊັນ+ຮູບແບບ ໃດ, ແລະ ເມື່ອສົ່ງຄຳຮ້ອງໄປຫາເຊີບເວີນັ້ນ, ກໍໃຫ້ສົ່ງເຮດເດີ " +"``Accept`` ທີ່ປະກອບມີ *ສະເພາະ* ປະເພດເນື້ອຫາທີ່ຖືກຕ້ອງເທົ່ານັ້ນ." + +#: ../source/specifications/simple-repository-api.rst:927 +msgid "" +"This section is non-normative, and represents what the spec authors believe " +"to be the best default implementation decisions for something implementing " +"this spec, but it does **not** represent any sort of requirement to match " +"these decisions." +msgstr "" +"ພາກສ່ວນນີ້ບໍ່ແມ່ນຂໍ້ບັງຄັບ, ແລະ " +"ເປັນສິ່ງທີ່ຜູ້ຂຽນຂໍ້ກຳນົດເຊື່ອວ່າເປັນການຕັດສິນໃຈໃນການນຳໃຊ້ທີ່ດີທີ່ສຸດສຳລັບຜູ້ທີ່ຈະນຳຂໍ້ກຳນົດນີ້ໄປໃຊ້, ແຕ່ມັນ " +"**ບໍ່ໄດ້** ໝາຍເຖິງຂໍ້ບັງຄັບວ່າຕ້ອງເຮັດຕາມການຕັດສິນໃຈເຫຼົ່ານີ້." + +#: ../source/specifications/simple-repository-api.rst:931 +msgid "" +"These decisions have been chosen to maximize the number of requests that can " +"be moved onto the newest version of an API, while maintaining the greatest " +"amount of compatibility. In addition, they've also tried to make using the " +"API provide guardrails that attempt to push clients into making the best " +"choices it can." +msgstr "" +"ການຕັດສິນໃຈເຫຼົ່ານີ້ຖືກເລືອກເພື່ອເພີ່ມຈຳນວນຄຳຮ້ອງທີ່ຈະຍ້າຍໄປຫາ API ເວີຊັນໃໝ່ໃຫ້ໄດ້ຫຼາຍທີ່ສຸດ, " +"ໃນຂະນະທີ່ຍັງຮັກສາຄວາມສາມາດໃນການເຮັດວຽກຮ່ວມກັນໄດ້ຫຼາຍທີ່ສຸດ. ນອກຈາກນັ້ນ, " +"ພວກເຂົາຍັງພະຍາຍາມເຮັດໃຫ້ການໃຊ້ API ມີການປ້ອງກັນເພື່ອພະຍາຍາມຊຸກດັນໃຫ້ໄຄລເອັນເລືອກສິ່ງທີ່ດີທີ່ສຸດ." + +#: ../source/specifications/simple-repository-api.rst:936 +msgid "It is recommended that servers:" +msgstr "ຂໍແນະນຳໃຫ້ເຊີບເວີ:" + +#: ../source/specifications/simple-repository-api.rst:938 +msgid "" +"Support all 3 content types described in this spec, using server-driven " +"content negotiation, for as long as they reasonably can, or at least as long " +"as they're receiving non trivial traffic that uses the HTML responses." +msgstr "" +"ຮອງຮັບທັງ 3 ປະເພດເນື້ອຫາທີ່ອະທິບາຍໄວ້ໃນຂໍ້ກຳນົດນີ້, ໂດຍໃຊ້ການຕໍ່ຮອງເນື້ອຫາໂດຍເຊີບເວີ, " +"ໃຫ້ດົນທີ່ສຸດເທົ່າທີ່ຈະເຮັດໄດ້, ຫຼື ຢ່າງໜ້ອຍກໍຕາບໃດທີ່ຍັງມີປະລິມານການນຳໃຊ້ທີ່ບໍ່ໜ້ອຍຈາກການຕອບກັບແບບ HTML." + +#: ../source/specifications/simple-repository-api.rst:942 +msgid "" +"When encountering an ``Accept`` header that does not contain any content " +"types that it knows how to work with, the server should not ever return a " +"``300 Multiple Choice`` response, and instead return a ``406 Not " +"Acceptable`` response." +msgstr "" +"ເມື່ອພົບກັບ ``Accept`` header ທີ່ບໍ່ມີປະເພດເນື້ອຫາ (content types) ໃດໆທີ່ມັນຮູ້ຈັກວິທີເຮັດວຽກນຳ, " +"ເຊີບເວີບໍ່ຄວນຕອບກັບດ້ວຍ ``300 Multiple Choice``, ແຕ່ໃຫ້ຕອບກັບດ້ວຍ ``406 Not " +"Acceptable`` ແທນ." + +#: ../source/specifications/simple-repository-api.rst:947 +msgid "" +"However, if choosing to use the endpoint configuration, you should prefer to " +"return a ``200 OK`` response in the expected content type for that endpoint." +msgstr "" +"ຢ່າງໃດກໍຕາມ, ຖ້າເລືອກໃຊ້ການກຳນົດຄ່າຈຸດເຊື່ອມຕໍ່ (endpoint configuration), " +"ທ່ານຄວນເລືອກສົ່ງການຕອບກັບ ``200 OK`` ໃນປະເພດເນື້ອຫາທີ່ຄາດໄວ້ສຳລັບຈຸດເຊື່ອມຕໍ່ນັ້ນ." + +#: ../source/specifications/simple-repository-api.rst:950 +msgid "" +"When selecting an acceptable version, the server should choose the highest " +"version that the client supports, with the most expressive/featureful " +"serialization format, taking into account the specificity of the client " +"requests as well as any quality priority values they have expressed, and it " +"should only use the ``text/html`` content type as a last resort." +msgstr "" +"ເມື່ອເລືອກເວີຊັນທີ່ຍອມຮັບໄດ້, ເຊີບເວີຄວນເລືອກເວີຊັນສູງສຸດທີ່ໄຄລເອັນຮອງຮັບ, " +"ພ້ອມກັບຮູບແບບການແປງຂໍ້ມູນທີ່ມີລັກສະນະຄົບຖ້ວນທີ່ສຸດ, " +"ໂດຍຄຳນຶງເຖິງຄວາມສະເພາະເຈາະຈົງຂອງຄຳຮ້ອງຈາກໄຄລເອັນ ລວມທັງຄ່າບຸລິມະສິດທີ່ພວກເຂົາລະບຸ, ແລະ " +"ຄວນໃຊ້ປະເພດເນື້ອຫາ ``text/html`` ເປັນທາງເລືອກສຸດທ້າຍເທົ່ານັ້ນ." + +#: ../source/specifications/simple-repository-api.rst:956 +msgid "It is recommended that clients:" +msgstr "ຂໍແນະນຳໃຫ້ໄຄລເອັນ:" + +#: ../source/specifications/simple-repository-api.rst:958 +msgid "" +"Support all 3 content types described in this spec, using server-driven " +"content negotiation, for as long as they reasonably can." +msgstr "" +"ຮອງຮັບທັງ 3 ປະເພດເນື້ອຫາທີ່ອະທິບາຍໄວ້ໃນຂໍ້ກຳນົດນີ້, ໂດຍໃຊ້ການຕໍ່ຮອງເນື້ອຫາໂດຍເຊີບເວີ, " +"ໃຫ້ດົນທີ່ສຸດເທົ່າທີ່ຈະເຮັດໄດ້." + +#: ../source/specifications/simple-repository-api.rst:961 +msgid "" +"When constructing an ``Accept`` header, include all of the content types " +"that you support." +msgstr "ເມື່ອສ້າງເຮດເດີ ``Accept``, ໃຫ້ລວມເອົາທຸກປະເພດເນື້ອຫາທີ່ທ່ານຮອງຮັບ." + +#: ../source/specifications/simple-repository-api.rst:964 +msgid "" +"You should generally *not* include a quality priority value for your content " +"types, unless you have implementation specific reasons that you want the " +"server to take into account (for example, if you're using the standard " +"library HTML parser and you're worried that there may be some kinds of HTML " +"responses that you're unable to parse in some edge cases)." +msgstr "" +"ໂດຍທົ່ວໄປແລ້ວ ທ່ານ *ບໍ່ຄວນ* ໃສ່ຄ່າບຸລິມະສິດ (quality priority) ສຳລັບປະເພດເນື້ອຫາຂອງທ່ານ, " +"ເວັ້ນເສຍແຕ່ທ່ານມີເຫດຜົນສະເພາະໃນການນຳໃຊ້ທີ່ຕ້ອງການໃຫ້ເຊີບເວີຄຳນຶງເຖິງ (ຕົວຢ່າງ: ຖ້າທ່ານໃຊ້ຕົວແຍກ " +"(parser) HTML ມາດຕະຖານ ແລະ ກັງວົນວ່າມີບາງຮູບແບບຂອງ HTML ທີ່ທ່ານບໍ່ສາມາດແຍກໄດ້ໃນບາງກໍລະນີ)." + +#: ../source/specifications/simple-repository-api.rst:970 +msgid "" +"The one exception to this recommendation is that it is recommended that you " +"*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " +"type, unless it is the only content type that you are requesting." +msgstr "" +"ຂໍ້ຍົກເວັ້ນອັນໜຶ່ງສຳລັບຄຳແນະນຳນີ້ຄື ຂໍແນະນຳວ່າທ່ານ *ຄວນ* ໃສ່ຄ່າ ``;q=0.01`` " +"ໃຫ້ກັບປະເພດເນື້ອຫາແບບເກົ່າ ``text/html``, ເວັ້ນເສຍແຕ່ວ່າມັນເປັນປະເພດເນື້ອຫາດຽວທີ່ທ່ານຮ້ອງຂໍ." + +#: ../source/specifications/simple-repository-api.rst:974 +msgid "" +"Explicitly select what versions they are looking for, rather than using the " +"``latest`` meta version during normal operation." +msgstr "" +"ລະບຸເວີຊັນທີ່ທ່ານຕ້ອງການໃຫ້ຊັດເຈນ, ແທນທີ່ຈະໃຊ້ເມຕາເວີຊັນ ``latest`` ໃນລະຫວ່າງການເຮັດວຽກປົກກະຕິ." + +#: ../source/specifications/simple-repository-api.rst:977 +msgid "" +"Check the ``Content-Type`` of the response and ensure it matches something " +"that you were expecting." +msgstr "ກວດສອບ ``Content-Type`` ຂອງການຕອບກັບ ແລະ ໃຫ້ແນ່ໃຈວ່າມັນກົງກັບສິ່ງທີ່ທ່ານຄາດໄວ້." + +#: ../source/specifications/simple-repository-api.rst:985 +msgid "September 2015: initial form of the HTML format, in :pep:`503`" +msgstr "ກັນຍາ 2015: ຮູບແບບເລີ່ມຕົ້ນຂອງ HTML, ໃນ :pep:`503`" + +#: ../source/specifications/simple-repository-api.rst:986 +msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" +msgstr "ກໍລະກົດ 2016: ເມຕາເດຕາ Requires-Python, ໃນການອັບເດດ :pep:`503`" + +#: ../source/specifications/simple-repository-api.rst:987 +msgid "May 2019: \"yank\" support, in :pep:`592`" +msgstr "ພຶດສະພາ 2019: ການຮອງຮັບ \"yank\", ໃນ :pep:`592`" + +#: ../source/specifications/simple-repository-api.rst:988 +msgid "" +"July 2020: API versioning convention and metadata, and declaring the HTML " +"format as API v1, in :pep:`629`" +msgstr "" +"ກໍລະກົດ 2020: ຂໍ້ກຳນົດການຕັ້ງເວີຊັນ API ແລະ ເມຕາເດຕາ, ແລະ ການປະກາດໃຫ້ຮູບແບບ HTML ເປັນ " +"API v1, ໃນ :pep:`629`" + +#: ../source/specifications/simple-repository-api.rst:990 +msgid "" +"May 2021: providing package metadata independently from a package, " +"in :pep:`658`" +msgstr "" +"ພຶດສະພາ 2021: ການສະໜອງເມຕາເດຕາຂອງແພັກເກດແຍກຕ່າງຫາກຈາກຕົວແພັກເກດ, ໃນ :pep:`658`" + +#: ../source/specifications/simple-repository-api.rst:992 +msgid "" +"May 2022: initial form of the JSON format, with a mechanism for clients to " +"choose between them, and declaring both formats as API v1, in :pep:`691`" +msgstr "" +"ພຶດສະພາ 2022: ຮູບແບບເລີ່ມຕົ້ນຂອງ JSON, ພ້ອມກັບກົນໄກໃຫ້ໄຄລເອັນເລືອກລະຫວ່າງພວກມັນ, ແລະ " +"ການປະກາດໃຫ້ທັງສອງຮູບແບບເປັນ API v1, ໃນ :pep:`691`" + +#: ../source/specifications/simple-repository-api.rst:994 +msgid "" +"October 2022: project versions and file size and upload-time in the JSON " +"format, in :pep:`700`" +msgstr "" +"ຕຸລາ 2022: ເວີຊັນໂຄງການ, ຂະໜາດໄຟລ໌ ແລະ ເວລາອັບໂຫຼດໃນຮູບແບບ JSON, ໃນ :pep:`700`" + +#: ../source/specifications/simple-repository-api.rst:996 +msgid "" +"June 2023: renaming the field which provides package metadata independently " +"from a package, in :pep:`714`" +msgstr "" +"ມິຖຸນາ 2023: ການປ່ຽນຊື່ຟີວທີ່ສະໜອງເມຕາເດຕາຂອງແພັກເກດແຍກຕ່າງຫາກຈາກແພັກເກດ, ໃນ :pep:`714`" + +#: ../source/specifications/simple-repository-api.rst:998 +msgid "" +"November 2024: provenance metadata in the HTML and JSON formats, " +"in :pep:`740`" +msgstr "" +"ພະຈິກ 2024: ເມຕາເດຕາແຫຼ່ງທີ່ມາ (provenance) ໃນຮູບແບບ HTML ແລະ JSON, ໃນ :pep:`740`" + +#: ../source/specifications/simple-repository-api.rst:999 +msgid "" +"July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" +msgstr "ກໍລະກົດ 2025: ເຄື່ອງໝາຍສະຖານະໂຄງການໃນຮູບແບບ HTML ແລະ JSON, ໃນ :pep:`792`" + +#: ../source/specifications/simple-repository-api.rst:1000 +msgid "" +"July 2025: layout changes (dedicated page for file yanking, introduce " +"concepts before API details)" +msgstr "" +"ກໍລະກົດ 2025: ການປ່ຽນແປງການຈັດວາງ (ໜ້າສະເພາະສຳລັບການຖອນໄຟລ໌, " +"ແນະນຳແນວຄວາມຄິດກ່ອນລາຍລະອຽດຂອງ API)" + +#: ../source/specifications/simple-repository-api.rst:1001 +msgid "" +"June 2026: :pep:`833` formally \"freezes\" the HTML representation of the " +"simple API" +msgstr "" +"ມິຖຸນາ 2026: :pep:`833` ໄດ້ມີການ \"ຢຸດການປ່ຽນແປງ (freezes)\" ຮູບແບບ HTML ຂອງ simple " +"API ຢ່າງເປັນທາງການ" + +#: ../source/specifications/source-distribution-format.rst:6 +msgid "Source distribution format" +msgstr "ຮູບແບບການແຈກຈ່າຍຊອດໂຄ້ດ (Source distribution)" + +#: ../source/specifications/source-distribution-format.rst:8 +msgid "" +"The current standard source distribution format is identified by the " +"presence of a :file:`pyproject.toml` file in the distribution archive. The " +"layout of such a distribution was originally specified in :pep:`517` and is " +"formally documented here." +msgstr "" +"ຮູບແບບການແຈກຈ່າຍຊອດໂຄ້ດມາດຕະຖານໃນປະຈຸບັນແມ່ນຖືກລະບຸໂດຍການມີໄຟລ໌ :file:`pyproject.toml` " +"ຢູ່ໃນບ່ອນເກັບມ້ຽນໄຟລ໌ (archive) ຂອງການແຈກຈ່າຍ. " +"ໂຄງສ້າງຂອງການແຈກຈ່າຍດັ່ງກ່າວໄດ້ຖືກກຳນົດໄວ້ໃນ :pep:`517` ແລະ " +"ໄດ້ຖືກບັນທຶກເປັນເອກະສານຢ່າງເປັນທາງການຢູ່ທີ່ນີ້." + +#: ../source/specifications/source-distribution-format.rst:13 +msgid "" +"There is also the legacy source distribution format, implicitly defined by " +"the behaviour of ``distutils`` module in the standard library, when " +"executing :command:`setup.py sdist`. This document does not attempt to " +"standardise this format, except to note that if a legacy source distribution " +"contains a ``PKG-INFO`` file using metadata version 2.2 or later, then it " +"MUST follow the rules applicable to source distributions defined in the " +"metadata specification." +msgstr "" +"ນອກຈາກນີ້ຍັງມີຮູບແບບການແຈກຈ່າຍຊອດໂຄ້ດແບບເກົ່າ (legacy), ເຊິ່ງຖືກກຳນົດໂດຍພຶດຕິກຳຂອງໂມດູນ " +"``distutils`` ໃນໄລບຣາຣີມາດຕະຖານ ເມື່ອມີການລັນຄຳສັ່ງ :command:`setup.py sdist`. " +"ເອກະສານສະບັບນີ້ຈະບໍ່ພະຍາຍາມເຮັດໃຫ້ຮູບແບບນີ້ເປັນມາດຕະຖານ, ຍົກເວັ້ນແຕ່ການລະບຸວ່າ " +"ຖ້າການແຈກຈ່າຍຊອດໂຄ້ດແບບເກົ່າ ມີໄຟລ໌ ``PKG-INFO`` ທີ່ໃຊ້ເມຕາເດຕາ (metadata) ເວີຊັນ 2.2 ຫຼື " +"ສູງກວ່າ, ມັນ \"ຕ້ອງ\" " +"ປະຕິບັດຕາມກົດລະບຽບທີ່ໃຊ້ກັບການແຈກຈ່າຍຊອດໂຄ້ດທີ່ກຳນົດໄວ້ໃນຂໍ້ກຳນົດຂອງເມຕາເດຕາ." + +#: ../source/specifications/source-distribution-format.rst:21 +msgid "Source distributions are also known as *sdists* for short." +msgstr "ການແຈກຈ່າຍຊອດໂຄ້ດ (Source distributions) ຍັງຖືກເອີ້ນສັ້ນໆວ່າ *sdists*." + +#: ../source/specifications/source-distribution-format.rst:26 +msgid "Source trees" +msgstr "ຊອດທຣີ (Source trees)" + +#: ../source/specifications/source-distribution-format.rst:28 +msgid "" +"A *source tree* is a collection of files and directories -- like a version " +"control system checkout -- which contains a :file:`pyproject.toml` file that " +"can be used to build a source distribution from the contained files and " +"directories. :pep:`517` and :pep:`518` specify what is required to meet the " +"definition of what :file:`pyproject.toml` must contain for something to be " +"deemed a source tree." +msgstr "" +"*ຊອດທຣີ (source tree)* ແມ່ນກຸ່ມຂອງໄຟລ໌ ແລະ ໂຟນເດີ -- ຄືກັນກັບການ checkout " +"ຈາກລະບົບຄວບຄຸມເວີຊັນ -- ເຊິ່ງປະກອບມີໄຟລ໌ :file:`pyproject.toml` " +"ທີ່ສາມາດໃຊ້ເພື່ອສ້າງການແຈກຈ່າຍຊອດໂຄ້ດຈາກໄຟລ໌ ແລະ ໂຟນເດີເຫຼົ່ານັ້ນ. :pep:`517` " +"ແລະ :pep:`518` ໄດ້ລະບຸສິ່ງທີ່ຈຳເປັນເພື່ອໃຫ້ກົງກັບຄຳນິຍາມຂອງສິ່ງທີ່ :file:`pyproject.toml` " +"ຕ້ອງມີ ເພື່ອໃຫ້ສິ່ງນັ້ນຖືກຖືວ່າເປັນຊອດທຣີ." + +#: ../source/specifications/source-distribution-format.rst:38 +msgid "Source distribution file name" +msgstr "ຊື່ໄຟລ໌ການແຈກຈ່າຍຊອດໂຄ້ດ" + +#: ../source/specifications/source-distribution-format.rst:40 +msgid "" +"The file name of a sdist was standardised in :pep:`625`. The file name must " +"be in the form ``{name}-{version}.tar.gz``, where ``{name}`` is normalised " +"according to the same rules as for binary distributions (see :ref:`binary-" +"distribution-format`), and ``{version}`` is the canonicalized form of the " +"project version (see :ref:`version-specifiers`)." +msgstr "" +"ຊື່ໄຟລ໌ຂອງ sdist ໄດ້ຖືກເຮັດໃຫ້ເປັນມາດຕະຖານໃນ :pep:`625`. ຊື່ໄຟລ໌ຕ້ອງຢູ່ໃນຮູບແບບ ``{name}-" +"{version}.tar.gz``, ໂດຍທີ່ ``{name}`` ຈະຖືກປັບໃຫ້ເປັນມາດຕະຖານ (normalised) " +"ຕາມກົດລະບຽບດຽວກັນກັບການແຈກຈ່າຍແບບໄບນາຣີ (ເບິ່ງ :ref:`binary-distribution-format`), " +"ແລະ ``{version}`` ແມ່ນຮູບແບບມາດຕະຖານ (canonicalized) ຂອງເວີຊັນໂປຣເຈັກ " +"(ເບິ່ງ :ref:`version-specifiers`)." + +#: ../source/specifications/source-distribution-format.rst:46 +msgid "" +"The name and version components of the filename MUST match the values stored " +"in the metadata contained in the file." +msgstr "ສ່ວນປະກອບຂອງຊື່ ແລະ ເວີຊັນໃນຊື່ໄຟລ໌ \"ຕ້ອງ\" ກົງກັບຄ່າທີ່ເກັບໄວ້ໃນເມຕາເດຕາທີ່ຢູ່ໃນໄຟລ໌ນັ້ນ." + +#: ../source/specifications/source-distribution-format.rst:49 +msgid "" +"Code that produces a source distribution file MUST give the file a name that " +"matches this specification. This includes the ``build_sdist`` hook of " +"a :term:`build backend `." +msgstr "" +"ໂຄ້ດທີ່ສ້າງໄຟລ໌ການແຈກຈ່າຍຊອດໂຄ້ດ \"ຕ້ອງ\" ຕັ້ງຊື່ໄຟລ໌ໃຫ້ກົງກັບຂໍ້ກຳນົດນີ້. ເຊິ່ງລວມເຖິງ " +"``build_sdist`` hook ຂອງ :term:`build backend `." + +#: ../source/specifications/source-distribution-format.rst:53 +msgid "" +"Code that processes source distribution files MAY recognise source " +"distribution files by the ``.tar.gz`` suffix and the presence of precisely " +"*one* hyphen in the filename. Code that does this may then use the " +"distribution name and version from the filename without further verification." +msgstr "" +"ໂຄ້ດທີ່ປະມວນຜົນໄຟລ໌ການແຈກຈ່າຍຊອດໂຄ້ດ \"ອາດຈະ\" ຈຳແນກໄຟລ໌ການແຈກຈ່າຍຊອດໂຄ້ດດ້ວຍນາມສະກຸນ " +"``.tar.gz`` ແລະ ການມີເຄື່ອງໝາຍຂີດກາງ (hyphen) ພຽງ \"ອັນດຽວ\" ໃນຊື່ໄຟລ໌. " +"ໂຄ້ດທີ່ເຮັດແບບນີ້ອາດຈະໃຊ້ຊື່ ແລະ ເວີຊັນການແຈກຈ່າຍຈາກຊື່ໄຟລ໌ໄດ້ໂດຍບໍ່ຕ້ອງມີການກວດສອບເພີ່ມເຕີມ." + +#: ../source/specifications/source-distribution-format.rst:59 +msgid "Source distribution file format" +msgstr "ຮູບແບບໄຟລ໌ການແຈກຈ່າຍຊອດໂຄ້ດ" + +#: ../source/specifications/source-distribution-format.rst:61 +msgid "" +"A ``.tar.gz`` source distribution (sdist) contains a single top-level " +"directory called ``{name}-{version}`` (e.g. ``foo-1.0``), containing the " +"source files of the package. The name and version MUST match the metadata " +"stored in the file. This directory must also contain " +"a :file:`pyproject.toml` in the format defined in :ref:`pyproject-toml-" +"spec`, and a :file:`PKG-INFO` file containing metadata in the format " +"described in the :ref:`core-metadata` specification. The metadata MUST " +"conform to at least version 2.2 of the metadata specification." +msgstr "" +"ການແຈກຈ່າຍຊອດໂຄ້ດ (sdist) ແບບ ``.tar.gz`` ປະກອບມີໂຟນເດີລະດັບສູງສຸດພຽງອັນດຽວທີ່ຊື່ວ່າ " +"``{name}-{version}`` (ຕົວຢ່າງ: ``foo-1.0``), ເຊິ່ງບັນຈຸໄຟລ໌ຊອດໂຄ້ດຂອງແພັກເກດ. ຊື່ ແລະ " +"ເວີຊັນ \"ຕ້ອງ\" ກົງກັບເມຕາເດຕາທີ່ເກັບໄວ້ໃນໄຟລ໌. " +"ໂຟນເດີນີ້ຍັງຕ້ອງປະກອບມີ :file:`pyproject.toml` ໃນຮູບແບບທີ່ກຳນົດໄວ້ໃນ :ref:`pyproject-" +"toml-spec`, ແລະ ໄຟລ໌ :file:`PKG-INFO` " +"ທີ່ບັນຈຸເມຕາເດຕາໃນຮູບແບບທີ່ອະທິບາຍໄວ້ໃນຂໍ້ກຳນົດ :ref:`core-metadata`. ເມຕາເດຕາ \"ຕ້ອງ\" " +"ຮອງຮັບຢ່າງໜ້ອຍເວີຊັນ 2.2 ຂອງຂໍ້ກຳນົດເມຕາເດຕາ." + +#: ../source/specifications/source-distribution-format.rst:69 +msgid "" +"If the metadata version is 2.4 or greater, the source distribution MUST " +"contain any license files specified by the ``License-File`` field in " +"the :file:`PKG-INFO` at their respective paths relative to the root " +"directory of the sdist (containing the :file:`pyproject.toml` and " +"the :file:`PKG-INFO` metadata)." +msgstr "" +"ຖ້າເວີຊັນຂອງເມຕາເດຕາແມ່ນ 2.4 ຫຼື ສູງກວ່າ, ການແຈກຈ່າຍຊອດໂຄ້ດ \"ຕ້ອງ\" ປະກອບມີໄຟລ໌ໃບອະນຸຍາດ " +"(license) ທີ່ລະບຸໂດຍຟິວ ``License-File`` ໃນ :file:`PKG-INFO` " +"ຕາມເສັ້ນທາງທີ່ກ່ຽວຂ້ອງກັບໂຟນເດີຮາກຂອງ sdist (ເຊິ່ງປະກອບມີ :file:`pyproject.toml` ແລະ " +"ເມຕາເດຕາ :file:`PKG-INFO`)." + +#: ../source/specifications/source-distribution-format.rst:74 +msgid "" +"No other content of a sdist is required or defined. Build systems can store " +"whatever information they need in the sdist to build the project." +msgstr "" +"ບໍ່ມີການກຳນົດ ຫຼື ບັງຄັບເນື້ອຫາອື່ນໆຂອງ sdist. ລະບົບການສ້າງ (Build systems) " +"ສາມາດເກັບຂໍ້ມູນໃດໆກໍຕາມທີ່ພວກເຂົາຕ້ອງການໃນ sdist ເພື່ອສ້າງໂປຣເຈັກ." + +#: ../source/specifications/source-distribution-format.rst:77 +msgid "" +"The tarball must use the modern POSIX.1-2001 pax tar format, which specifies " +"UTF-8 based file names. In particular, source distribution files must be " +"readable using the standard library tarfile module with the open flag 'r:gz'." +msgstr "" +"ໄຟລ໌ tarball ຕ້ອງໃຊ້ຮູບແບບ pax tar ຂອງ POSIX.1-2001 ທີ່ທັນສະໄໝ, ເຊິ່ງກຳນົດຊື່ໄຟລ໌ເປັນແບບ " +"UTF-8. ໂດຍສະເພາະແມ່ນ ໄຟລ໌ການແຈກຈ່າຍຊອດໂຄ້ດຕ້ອງສາມາດອ່ານໄດ້ໂດຍໃຊ້ໂມດູນ tarfile " +"ຂອງໄລບຣາຣີມາດຕະຖານ ດ້ວຍການໃຊ້ແຟລັກ 'r:gz' ໃນການເປີດ." + +#: ../source/specifications/source-distribution-format.rst:85 +msgid "Source distribution archive features" +msgstr "ຄຸນສົມບັດຂອງບ່ອນເກັບໄຟລ໌ການແຈກຈ່າຍຊອດໂຄ້ດ" + +#: ../source/specifications/source-distribution-format.rst:87 +msgid "" +"Because extracting tar files as-is is dangerous, and the results are " +"platform-specific, archive features of source distributions are limited." +msgstr "" +"ເນື່ອງຈາກການແຕກໄຟລ໌ tar ໂດຍກົງນັ້ນເປັນອັນຕະລາຍ ແລະ ຜົນທີ່ໄດ້ອາດຈະຂຶ້ນກັບແຕ່ລະແພລັດຟອມ, " +"ຄຸນສົມບັດຂອງບ່ອນເກັບໄຟລ໌ການແຈກຈ່າຍຊອດໂຄ້ດຈຶ່ງຖືກຈຳກັດໄວ້." + +#: ../source/specifications/source-distribution-format.rst:91 +msgid "Unpacking with the data filter" +msgstr "ການແຕກໄຟລ໌ດ້ວຍ data filter" + +#: ../source/specifications/source-distribution-format.rst:93 +msgid "" +"When extracting a source distribution, tools MUST either " +"use :py:func:`tarfile.data_filter` (e.g. :py:meth:`TarFile.extractall(..., " +"filter='data') `), OR follow the *Unpacking " +"without the data filter* section below." +msgstr "" +"ເມື່ອແຕກໄຟລ໌ການແຈກຈ່າຍຊອດໂຄ້ດ, ເຄື່ອງມື \"ຕ້ອງ\" ໃຊ້ :py:func:`tarfile.data_filter` " +"(ຕົວຢ່າງ: :py:meth:`TarFile.extractall(..., filter='data') " +"`), ຫຼື ປະຕິບັດຕາມຫົວຂໍ້ *ການແຕກໄຟລ໌ໂດຍບໍ່ມີ data filter* " +"ດ້ານລຸ່ມນີ້." + +#: ../source/specifications/source-distribution-format.rst:97 +msgid "" +"As an exception, on Python interpreters without :py:func:`hasattr(tarfile, " +"'data_filter') ` (:pep:`706`), tools that normally use " +"that filter (directly on indirectly) MAY warn the user and ignore this " +"specification. The trade-off between usability (e.g. fully trusting the " +"archive) and security (e.g. refusing to unpack) is left up to the tool in " +"this case." +msgstr "" +"ໃນກໍລະນີຍົກເວັ້ນ, ສຳລັບຕົວແປພາສາ Python ທີ່ບໍ່ມີ :py:func:`hasattr(tarfile, " +"'data_filter') ` (:pep:`706`), ເຄື່ອງມືທີ່ປົກກະຕິໃຊ້ filter ນັ້ນ " +"(ທັງທາງກົງ ຫຼື ທາງອ້ອມ) \"ອາດຈະ\" ແຈ້ງເຕືອນຜູ້ໃຊ້ ແລະ ລະເລີຍຂໍ້ກຳນົດນີ້. " +"ການຕັດສິນໃຈລະຫວ່າງຄວາມສະດວກໃນການໃຊ້ງານ (ເຊັ່ນ: ການໄວ້ວາງໃຈໄຟລ໌ທັງໝົດ) ແລະ ຄວາມປອດໄພ " +"(ເຊັ່ນ: ການປະຕິເສດທີ່ຈະແຕກໄຟລ໌) ແມ່ນຂຶ້ນກັບການຕັດສິນໃຈຂອງເຄື່ອງມືນັ້ນໆ." + +#: ../source/specifications/source-distribution-format.rst:105 +msgid "Unpacking without the data filter" +msgstr "ການແຕກໄຟລ໌ໂດຍບໍ່ມີ data filter" + +#: ../source/specifications/source-distribution-format.rst:107 +msgid "" +"Tools that do not use the ``data`` filter directly (e.g. for backwards " +"compatibility, allowing additional features, or not using Python) MUST " +"follow this section. (At the time of this writing, the ``data`` filter also " +"follows this section, but it may get out of sync in the future.)" +msgstr "" +"ເຄື່ອງມືທີ່ບໍ່ໄດ້ໃຊ້ ``data`` filter ໂດຍກົງ (ຕົວຢ່າງ: ເພື່ອຄວາມເຂົ້າກັນໄດ້ກັບເວີຊັນເກົ່າ, " +"ການອະນຸຍາດຄຸນສົມບັດເພີ່ມເຕີມ, ຫຼື ບໍ່ໄດ້ໃຊ້ Python) \"ຕ້ອງ\" ປະຕິບັດຕາມພາກສ່ວນນີ້. " +"(ໃນຂະນະທີ່ຂຽນນີ້, ``data`` filter ກໍປະຕິບັດຕາມພາກສ່ວນນີ້ຄືກັນ, " +"ແຕ່ມັນອາດຈະມີການປ່ຽນແປງໃນອະນາຄົດ.)" + +#: ../source/specifications/source-distribution-format.rst:113 +msgid "" +"The following files are invalid in an *sdist* archive. Upon encountering " +"such an entry, tools SHOULD notify the user, MUST NOT unpack the entry, and " +"MAY abort with a failure:" +msgstr "" +"ໄຟລ໌ຕໍ່ໄປນີ້ຖືວ່າບໍ່ຖືກຕ້ອງໃນບ່ອນເກັບໄຟລ໌ *sdist*. ເມື່ອພົບລາຍການດັ່ງກ່າວ, ເຄື່ອງມື \"ຄວນ\" " +"ແຈ້ງໃຫ້ຜູ້ໃຊ້ຊາບ, \"ຕ້ອງບໍ່\" ແຕກໄຟລ໌ລາຍການນັ້ນ, ແລະ \"ອາດຈະ\" ຍົກເລີກການເຮັດວຽກດ້ວຍຂໍ້ຜິດພາດ:" + +#: ../source/specifications/source-distribution-format.rst:117 +msgid "Files that would be placed outside the destination directory." +msgstr "ໄຟລ໌ທີ່ຈະຖືກວາງໄວ້ນອກໂຟນເດີປາຍທາງ." + +#: ../source/specifications/source-distribution-format.rst:118 +msgid "Links (symbolic or hard) pointing outside the destination directory." +msgstr "ລິ້ງ (symbolic ຫຼື hard) ທີ່ຊີ້ໄປນອກໂຟນເດີປາຍທາງ." + +#: ../source/specifications/source-distribution-format.rst:119 +msgid "Device files (including pipes)." +msgstr "ໄຟລ໌ອຸປະກອນ (ລວມເຖິງ pipes)." + +#: ../source/specifications/source-distribution-format.rst:121 +msgid "" +"The following are also invalid. Tools MAY treat them as above, but are NOT " +"REQUIRED to do so:" +msgstr "" +"ສິ່ງຕໍ່ໄປນີ້ຖືວ່າບໍ່ຖືກຕ້ອງຄືກັນ. ເຄື່ອງມື \"ອາດຈະ\" ຈັດການກັບພວກມັນຄືກັບຂ້າງເທິງ, ແຕ່ \"ບໍ່ໄດ້ຖືກບັງຄັບ\" " +"ໃຫ້ເຮັດເຊັ່ນນັ້ນ:" + +#: ../source/specifications/source-distribution-format.rst:124 +msgid "Files with a ``..`` component in the filename or link target." +msgstr "ໄຟລ໌ທີ່ມີສ່ວນປະກອບ ``..`` ໃນຊື່ໄຟລ໌ ຫຼື ເປົ້າໝາຍຂອງລິ້ງ." + +#: ../source/specifications/source-distribution-format.rst:125 +msgid "Links pointing to a file that is not part of the archive." +msgstr "ລິ້ງທີ່ຊີ້ໄປຫາໄຟລ໌ທີ່ບໍ່ໄດ້ເປັນສ່ວນໜຶ່ງຂອງບ່ອນເກັບໄຟລ໌." + +#: ../source/specifications/source-distribution-format.rst:127 +msgid "" +"Tools MAY unpack links (symbolic or hard) as regular files, using content " +"from the archive." +msgstr "" +"ເຄື່ອງມື \"ອາດຈະ\" ແຕກລິ້ງ (symbolic ຫຼື hard) ໃຫ້ເປັນໄຟລ໌ທຳມະດາ " +"ໂດຍໃຊ້ເນື້ອຫາຈາກບ່ອນເກັບໄຟລ໌." + +#: ../source/specifications/source-distribution-format.rst:130 +msgid "When extracting *sdist* archives:" +msgstr "ເມື່ອແຕກໄຟລ໌ຈາກບ່ອນເກັບໄຟລ໌ *sdist*:" + +#: ../source/specifications/source-distribution-format.rst:132 +msgid "" +"Leading slashes in file names MUST be dropped. (This is nowadays standard " +"behaviour for ``tar`` unpacking.)" +msgstr "" +"ເຄື່ອງໝາຍ slash (/) ທີ່ຢູ່ທາງໜ້າຊື່ໄຟລ໌ \"ຕ້ອງ\" ຖືກຕັດອອກ. (ປະຈຸບັນນີ້ແມ່ນພຶດຕິກຳມາດຕະຖານ " +"ສຳລັບການແຕກໄຟລ໌ ``tar``.)" + +#: ../source/specifications/source-distribution-format.rst:134 +msgid "For each ``mode`` (Unix permission) bit, tools MUST either:" +msgstr "" +"ສຳລັບແຕ່ລະບິດຂອງ ``mode`` (ສິດການເຂົ້າເຖິງແບບ Unix), ເຄື່ອງມື \"ຕ້ອງ\" ເລືອກຢ່າງໃດຢ່າງໜຶ່ງ:" + +#: ../source/specifications/source-distribution-format.rst:136 +msgid "use the platform's default for a new file/directory (respectively)," +msgstr "ໃຊ້ຄ່າເລີ່ມຕົ້ນຂອງແພລັດຟອມສຳລັບໄຟລ໌/ໂຟນເດີໃໝ່ (ຕາມລຳດັບ)," + +#: ../source/specifications/source-distribution-format.rst:137 +msgid "set the bit according to the archive, or" +msgstr "ຕັ້ງຄ່າບິດຕາມທີ່ລະບຸໃນບ່ອນເກັບໄຟລ໌, ຫຼື" + +#: ../source/specifications/source-distribution-format.rst:138 +msgid "" +"use the bit from ``rw-r--r--`` (``0o644``) for non-executable files or " +"``rwxr-xr-x`` (``0o755``) for executable files and directories." +msgstr "" +"ໃຊ້ຄ່າບິດຈາກ ``rw-r--r--`` (``0o644``) ສຳລັບໄຟລ໌ທີ່ລັນບໍ່ໄດ້ ຫຼື ``rwxr-xr-x`` " +"(``0o755``) ສຳລັບໄຟລ໌ ແລະ ໂຟນເດີທີ່ລັນໄດ້ (executable)." + +#: ../source/specifications/source-distribution-format.rst:141 +msgid "High ``mode`` bits (setuid, setgid, sticky) MUST be cleared." +msgstr "ບິດ ``mode`` ລະດັບສູງ (setuid, setgid, sticky) \"ຕ້ອງ\" ຖືກລ້າງອອກ." + +#: ../source/specifications/source-distribution-format.rst:142 +msgid "It is RECOMMENDED to preserve the user *executable* bit." +msgstr "ແມ່ນ \"ແນະນຳ (RECOMMENDED)\" ໃຫ້ຮັກສາບິດ *executable* ຂອງຜູ້ໃຊ້ໄວ້." + +#: ../source/specifications/source-distribution-format.rst:146 +msgid "Further hints" +msgstr "ຄຳແນະນຳເພີ່ມເຕີມ" + +#: ../source/specifications/source-distribution-format.rst:148 +msgid "" +"Tool authors are encouraged to consider how *hints for further verification* " +"in ``tarfile`` documentation apply to their tool." +msgstr "" +"ຜູ້ພັດທະນາເຄື່ອງມືຄວນພິຈາລະນາວ່າ *ຄຳແນະນຳສຳລັບການກວດສອບເພີ່ມເຕີມ* ໃນເອກະສານຂອງ " +"``tarfile`` ສາມາດນຳມາໃຊ້ກັບເຄື່ອງມືຂອງຕົນໄດ້ແນວໃດ." + +#: ../source/specifications/source-distribution-format.rst:155 +msgid "" +"November 2020: The original version of this specification was approved " +"through :pep:`643`." +msgstr "ພະຈິກ 2020: ເວີຊັນເລີ່ມຕົ້ນຂອງຂໍ້ກຳນົດນີ້ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`643`." + +#: ../source/specifications/source-distribution-format.rst:157 +msgid "July 2021: Defined what a source tree is." +msgstr "ກໍລະກົດ 2021: ໄດ້ກຳນົດຄຳນິຍາມຂອງ ຊອດທຣີ (source tree)." + +#: ../source/specifications/source-distribution-format.rst:158 +msgid "" +"September 2022: The filename of a source distribution was standardized " +"through :pep:`625`." +msgstr "ກັນຍາ 2022: ຊື່ໄຟລ໌ຂອງການແຈກຈ່າຍຊອດໂຄ້ດໄດ້ຖືກເຮັດໃຫ້ເປັນມາດຕະຖານຜ່ານ :pep:`625`." + +#: ../source/specifications/source-distribution-format.rst:160 +msgid "" +"August 2023: Source distribution archive features were standardized " +"through :pep:`721`." +msgstr "" +"ສິງຫາ 2023: " +"ຄຸນສົມບັດຂອງບ່ອນເກັບໄຟລ໌ການແຈກຈ່າຍຊອດໂຄ້ດໄດ້ຖືກເຮັດໃຫ້ເປັນມາດຕະຖານຜ່ານ :pep:`721`." + +#: ../source/specifications/source-distribution-format.rst:162 +msgid "" +"December 2024: License files inclusion into source distribution was " +"standardized through :pep:`639`." +msgstr "" +"ທັນວາ 2024: " +"ການລວມໄຟລ໌ໃບອະນຸຍາດເຂົ້າໃນການແຈກຈ່າຍຊອດໂຄ້ດໄດ້ຖືກເຮັດໃຫ້ເປັນມາດຕະຖານຜ່ານ :pep:`639`." + +#: ../source/specifications/version-specifiers.rst:7 +#: ../source/specifications/version-specifiers.rst:797 +msgid "Version specifiers" +msgstr "ຕົວລະບຸເວີຊັນ (Version specifiers)" + +#: ../source/specifications/version-specifiers.rst:10 +msgid "" +"This specification describes a scheme for identifying versions of Python " +"software distributions, and declaring dependencies on particular versions." +msgstr "" +"ຂໍ້ກຳນົດນີ້ອະທິບາຍເຖິງຮູບແບບການລະບຸເວີຊັນຂອງການແຈກຈ່າຍຊອບແວ Python ແລະ " +"ການປະກາດສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ (dependencies) ສຳລັບເວີຊັນສະເພາະໃດໜຶ່ງ." + +#: ../source/specifications/version-specifiers.rst:15 +msgid "Definitions" +msgstr "ຄຳນິຍາມ" + +#: ../source/specifications/version-specifiers.rst:17 +msgid "" +"The key words \"MUST\", \"MUST NOT\", \"REQUIRED\", \"SHALL\", \"SHALL " +"NOT\", \"SHOULD\", \"SHOULD NOT\", \"RECOMMENDED\", \"MAY\", and " +"\"OPTIONAL\" in this document are to be interpreted as described " +"in :rfc:`2119`." +msgstr "" +"ຄຳສຳຄັນ \"MUST\", \"MUST NOT\", \"REQUIRED\", \"SHALL\", \"SHALL NOT\", " +"\"SHOULD\", \"SHOULD NOT\", \"RECOMMENDED\", \"MAY\", ແລະ \"OPTIONAL\" " +"ໃນເອກະສານສະບັບນີ້ ແມ່ນໃຫ້ຕີຄວາມໝາຍຕາມທີ່ໄດ້ອະທິບາຍໄວ້ໃນ :rfc:`2119`." + +#: ../source/specifications/version-specifiers.rst:21 +msgid "" +"\"Build tools\" are automated tools intended to run on development systems, " +"producing source and binary distribution archives. Build tools may also be " +"invoked by integration tools in order to build software distributed as " +"sdists rather than prebuilt binary archives." +msgstr "" +"\"ເຄື່ອງມືໃນການສ້າງ (Build tools)\" " +"ແມ່ນເຄື່ອງມືອັດຕະໂນມັດທີ່ມີຈຸດປະສົງເພື່ອລັນໃນລະບົບການພັດທະນາ, " +"ເພື່ອສ້າງບ່ອນເກັບໄຟລ໌ການແຈກຈ່າຍແບບຊອດໂຄ້ດ ແລະ ແບບໄບນາຣີ. ເຄື່ອງມືໃນການສ້າງອາດຈະຖືກເອີ້ນໃຊ້ໂດຍ " +"ເຄື່ອງມືການລວມລະບົບ (integration tools) ເພື່ອສ້າງຊອບແວທີ່ຖືກແຈກຈ່າຍເປັນ sdists ແທນທີ່ຈະເປັນ " +"ໄບນາຣີທີ່ສ້າງໄວ້ລ່ວງໜ້າ." + +#: ../source/specifications/version-specifiers.rst:26 +msgid "" +"\"Index servers\" are active distribution registries which publish version " +"and dependency metadata and place constraints on the permitted metadata." +msgstr "" +"\"ອິນເດັກເຊີເວີ (Index servers)\" " +"ແມ່ນລະບົບລົງທະບຽນການແຈກຈ່າຍທີ່ເຮັດໜ້າທີ່ເຜີຍແຜ່ເມຕາເດຕາຂອງເວີຊັນ ແລະ ສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້, " +"ພ້ອມທັງກຳນົດຂໍ້ຈຳກັດຂອງເມຕາເດຕາທີ່ອະນຸຍາດ." + +#: ../source/specifications/version-specifiers.rst:29 +msgid "" +"\"Publication tools\" are automated tools intended to run on development " +"systems and upload source and binary distribution archives to index servers." +msgstr "" +"\"ເຄື່ອງມືໃນການເຜີຍແຜ່ (Publication tools)\" " +"ແມ່ນເຄື່ອງມືອັດຕະໂນມັດທີ່ມີຈຸດປະສົງເພື່ອລັນໃນລະບົບການພັດທະນາ ແລະ " +"ອັບໂຫຼດບ່ອນເກັບໄຟລ໌ການແຈກຈ່າຍແບບຊອດໂຄ້ດ ແລະ ແບບໄບນາຣີ ໄປຫາອິນເດັກເຊີເວີ." + +#: ../source/specifications/version-specifiers.rst:32 +msgid "" +"\"Installation tools\" are integration tools specifically intended to run on " +"deployment targets, consuming source and binary distribution archives from " +"an index server or other designated location and deploying them to the " +"target system." +msgstr "" +"\"ເຄື່ອງມືໃນການຕິດຕັ້ງ (Installation tools)\" " +"ແມ່ນເຄື່ອງມືການລວມລະບົບທີ່ມີຈຸດປະສົງສະເພາະເພື່ອລັນໃນ ລະບົບເປົ້າໝາຍທີ່ຈະຕິດຕັ້ງ, " +"ໂດຍດຶງເອົາບ່ອນເກັບໄຟລ໌ການແຈກຈ່າຍແບບຊອດໂຄ້ດ ແລະ ແບບໄບນາຣີ ຈາກອິນເດັກເຊີເວີ ຫຼື " +"ສະຖານທີ່ອື່ນໆທີ່ກຳນົດໄວ້ ແລະ ນຳພວກມັນໄປຕິດຕັ້ງໃນລະບົບເປົ້າໝາຍ." + +#: ../source/specifications/version-specifiers.rst:37 +msgid "" +"\"Automated tools\" is a collective term covering build tools, index " +"servers, publication tools, integration tools and any other software that " +"produces or consumes distribution version and dependency metadata." +msgstr "" +"\"ເຄື່ອງມືອັດຕະໂນມັດ (Automated tools)\" ແມ່ນຄຳສັບລວມທີ່ຄຸມເຖິງ ເຄື່ອງມືໃນການສ້າງ, " +"ອິນເດັກເຊີເວີ, ເຄື່ອງມືໃນການເຜີຍແຜ່, ເຄື່ອງມືການລວມລະບົບ ແລະ ຊອບແວອື່ນໆທີ່ສ້າງ ຫຼື " +"ໃຊ້ຂໍ້ມູນເມຕາເດຕາຂອງເວີຊັນການແຈກຈ່າຍ ແລະ ສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້." + +#: ../source/specifications/version-specifiers.rst:43 +msgid "Version scheme" +msgstr "ຮູບແບບເວີຊັນ (Version scheme)" + +#: ../source/specifications/version-specifiers.rst:45 +msgid "" +"Distributions are identified by a public version identifier which supports " +"all defined version comparison operations" +msgstr "" +"ການແຈກຈ່າຍຕ່າງໆແມ່ນຖືກລະບຸດ້ວຍ ຕົວລະບຸເວີຊັນສາທາລະນະ (public version identifier) " +"ເຊິ່ງຮອງຮັບທຸກການດຳເນີນການປຽບທຽບເວີຊັນທີ່ໄດ້ກຳນົດໄວ້" + +#: ../source/specifications/version-specifiers.rst:48 +msgid "" +"The version scheme is used both to describe the distribution version " +"provided by a particular distribution archive, as well as to place " +"constraints on the version of dependencies needed in order to build or run " +"the software." +msgstr "" +"ຮູບແບບເວີຊັນຖືກໃຊ້ທັງເພື່ອອະທິບາຍເວີຊັນການແຈກຈ່າຍທີ່ມີຢູ່ໃນບ່ອນເກັບໄຟລ໌ນັ້ນໆ, ແລະ " +"ເພື່ອກຳນົດຂໍ້ຈຳກັດຂອງເວີຊັນຂອງສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ (dependencies) ທີ່ຕ້ອງການໃນການສ້າງ ຫຼື " +"ການລັນຊອບແວ." + +#: ../source/specifications/version-specifiers.rst:57 +msgid "Public version identifiers" +msgstr "ຕົວລະບຸເວີຊັນສາທາລະນະ" + +#: ../source/specifications/version-specifiers.rst:59 +msgid "" +"The canonical public version identifiers MUST comply with the following " +"scheme::" +msgstr "ຕົວລະບຸເວີຊັນສາທາລະນະແບບມາດຕະຖານ (canonical) \"ຕ້ອງ\" ປະຕິບັດຕາມຮູບແບບຕໍ່ໄປນີ້::" + +#: ../source/specifications/version-specifiers.rst:64 +msgid "" +"Public version identifiers MUST NOT include leading or trailing whitespace." +msgstr "ຕົວລະບຸເວີຊັນສາທາລະນະ \"ຕ້ອງບໍ່\" ມີຍະຫວ່າງ (whitespace) ທາງໜ້າ ຫຼື ທາງຫຼັງ." + +#: ../source/specifications/version-specifiers.rst:66 +msgid "Public version identifiers MUST be unique within a given distribution." +msgstr "ຕົວລະບຸເວີຊັນສາທາລະນະ \"ຕ້ອງ\" ບໍ່ຊ້ຳກັນພາຍໃນການແຈກຈ່າຍໜຶ່ງໆ." + +#: ../source/specifications/version-specifiers.rst:68 +msgid "" +"Installation tools SHOULD ignore any public versions which do not comply " +"with this scheme but MUST also include the normalizations specified below. " +"Installation tools MAY warn the user when non-compliant or ambiguous " +"versions are detected." +msgstr "" +"ເຄື່ອງມືໃນການຕິດຕັ້ງ \"ຄວນ\" ລະເລີຍເວີຊັນສາທາລະນະໃດໆທີ່ບໍ່ປະຕິບັດຕາມຮູບແບບນີ້ ແຕ່ກໍ \"ຕ້ອງ\" " +"ລວມເອົາການປັບໃຫ້ເປັນມາດຕະຖານ (normalizations) ທີ່ລະບຸໄວ້ດ້ານລຸ່ມນີ້ດ້ວຍ. ເຄື່ອງມືໃນການຕິດຕັ້ງ " +"\"ອາດຈະ\" ແຈ້ງເຕືອນຜູ້ໃຊ້ເມື່ອພົບເວີຊັນທີ່ບໍ່ຖືກຕ້ອງຕາມຂໍ້ກຳນົດ ຫຼື ເວີຊັນທີ່ກຳກວມ." + +#: ../source/specifications/version-specifiers.rst:73 +msgid "" +"See also :ref:`version-specifiers-regex` which provides a regular expression " +"to check strict conformance with the canonical format, as well as a more " +"permissive regular expression accepting inputs that may require subsequent " +"normalization." +msgstr "" +"ເບິ່ງ :ref:`version-specifiers-regex` ທີ່ໃຫ້ regular expression " +"ເພື່ອກວດສອບຄວາມຖືກຕ້ອງຕາມ ຮູບແບບມາດຕະຖານຢ່າງເຂັ້ມງວດ, ພ້ອມທັງ regular expression " +"ແບບຜ່ອນຜັນທີ່ຍອມຮັບຄ່າທີ່ອາດຈະ ຕ້ອງມີການປັບໃຫ້ເປັນມາດຕະຖານໃນພາຍຫຼັງ." + +#: ../source/specifications/version-specifiers.rst:78 +msgid "Public version identifiers are separated into up to five segments:" +msgstr "ຕົວລະບຸເວີຊັນສາທາລະນະຖືກແບ່ງອອກເປັນສູງສຸດຫ້າພາກສ່ວນ:" + +#: ../source/specifications/version-specifiers.rst:80 +msgid "Epoch segment: ``N!``" +msgstr "ພາກສ່ວນອີພັອກ (Epoch segment): ``N!``" + +#: ../source/specifications/version-specifiers.rst:81 +msgid "Release segment: ``N(.N)*``" +msgstr "ພາກສ່ວນການປ່ອຍ (Release segment): ``N(.N)*``" + +#: ../source/specifications/version-specifiers.rst:82 +msgid "Pre-release segment: ``{a|b|rc}N``" +msgstr "ພາກສ່ວນກ່ອນການປ່ອຍ (Pre-release segment): ``{a|b|rc}N``" + +#: ../source/specifications/version-specifiers.rst:83 +msgid "Post-release segment: ``.postN``" +msgstr "ພາກສ່ວນຫຼັງການປ່ອຍ (Post-release segment): ``.postN``" + +#: ../source/specifications/version-specifiers.rst:84 +msgid "Development release segment: ``.devN``" +msgstr "ພາກສ່ວນລະຫວ່າງການພັດທະນາ (Development release segment): ``.devN``" + +#: ../source/specifications/version-specifiers.rst:86 +msgid "" +"Any given release will be a \"final release\", \"pre-release\", \"post-" +"release\" or \"developmental release\" as defined in the following sections." +msgstr "" +"ການປ່ອຍໃດໆກໍຕາມຈະເປັນ \"ການປ່ອຍເວີຊັນສົມບູນ (final release)\", \"ເວີຊັນກ່ອນອອກຈິງ (pre-" +"release)\", \"ເວີຊັນຫຼັງອອກຈິງ (post-release)\" ຫຼື \"ເວີຊັນລະຫວ່າງການພັດທະນາ " +"(developmental release)\" ຕາມທີ່ໄດ້ກຳນົດໄວ້ໃນພາກສ່ວນຕໍ່ໆໄປ." + +#: ../source/specifications/version-specifiers.rst:89 +msgid "" +"All numeric components MUST be non-negative integers represented as " +"sequences of ASCII digits." +msgstr "" +"ສ່ວນປະກອບທີ່ເປັນຕົວເລກທັງໝົດ \"ຕ້ອງ\" ເປັນຈຳນວນຖ້ວນບວກ ເຊິ່ງສະແດງອອກໃນຮູບແບບຂອງ ລຳດັບຕົວເລກ " +"ASCII." + +#: ../source/specifications/version-specifiers.rst:92 +msgid "" +"All numeric components MUST be interpreted and ordered according to their " +"numeric value, not as text strings." +msgstr "" +"ສ່ວນປະກອບທີ່ເປັນຕົວເລກທັງໝົດ \"ຕ້ອງ\" ຖືກຕີຄວາມໝາຍ ແລະ ຈັດລຳດັບຕາມຄ່າຂອງຕົວເລກ, " +"ບໍ່ແມ່ນຕາມລຳດັບຕົວອັກສອນ (text strings)." + +#: ../source/specifications/version-specifiers.rst:95 +msgid "" +"All numeric components MAY be zero. Except as described below for the " +"release segment, a numeric component of zero has no special significance " +"aside from always being the lowest possible value in the version ordering." +msgstr "" +"ສ່ວນປະກອບຕົວເລກທັງໝົດ \"ອາດຈະ\" ເປັນສູນ. ຍົກເວັ້ນຕາມທີ່ໄດ້ອະທິບາຍໄວ້ດ້ານລຸ່ມສຳລັບພາກສ່ວນການປ່ອຍ, " +"ສ່ວນປະກອບຕົວເລກທີ່ເປັນສູນບໍ່ມີຄວາມໝາຍພິເສດໃດໆ ນອກຈາກການເປັນຄ່າທີ່ຕ່ຳສຸດສະເໝີໃນການຈັດລຳດັບເວີຊັນ." + +#: ../source/specifications/version-specifiers.rst:101 +msgid "" +"Some hard to read version identifiers are permitted by this scheme in order " +"to better accommodate the wide range of versioning practices across existing " +"public and private Python projects." +msgstr "" +"ຕົວລະບຸເວີຊັນບາງຢ່າງທີ່ອ່ານຍາກກໍໄດ້ຮັບການອະນຸຍາດໃນຮູບແບບນີ້ ເພື່ອໃຫ້ຮອງຮັບການຕັ້ງເວີຊັນ " +"ທີ່ຫຼາກຫຼາຍໃນໂປຣເຈັກ Python ທີ່ມີຢູ່ທັງແບບສາທາລະນະ ແລະ ສ່ວນຕົວ." + +#: ../source/specifications/version-specifiers.rst:105 +msgid "" +"Accordingly, some of the versioning practices which are technically " +"permitted by the specification are strongly discouraged for new projects. " +"Where this is the case, the relevant details are noted in the following " +"sections." +msgstr "" +"ດັ່ງນັ້ນ, ບາງວິທີການຕັ້ງເວີຊັນທີ່ໄດ້ຮັບການອະນຸຍາດທາງດ້ານເຕັກນິກ ໂດຍຂໍ້ກຳນົດນີ້ ແມ່ນ \"ບໍ່ແນະນຳຢ່າງຍິ່ງ\" " +"ສຳລັບໂປຣເຈັກໃໝ່. ໃນກໍລະນີດັ່ງກ່າວ, ລາຍລະອຽດທີ່ກ່ຽວຂ້ອງຈະຖືກລະບຸໄວ້ໃນພາກສ່ວນຕໍ່ໆໄປ." + +#: ../source/specifications/version-specifiers.rst:116 +msgid "Local version identifiers MUST comply with the following scheme::" +msgstr "ຕົວລະບຸເວີຊັນທ້ອງຖິ່ນ (Local version identifiers) \"ຕ້ອງ\" ປະຕິບັດຕາມຮູບແບບຕໍ່ໄປນີ້::" + +#: ../source/specifications/version-specifiers.rst:120 +msgid "" +"They consist of a normal public version identifier (as defined in the " +"previous section), along with an arbitrary \"local version label\", " +"separated from the public version identifier by a plus. Local version labels " +"have no specific semantics assigned, but some syntactic restrictions are " +"imposed." +msgstr "" +"ພວກມັນປະກອບດ້ວຍຕົວລະບຸເວີຊັນສາທາລະນະປົກກະຕິ (ຕາມທີ່ໄດ້ກຳນົດໃນພາກສ່ວນກ່ອນໜ້ານີ້), ພ້ອມກັບ " +"\"ປ້າຍກຳກັບເວີຊັນທ້ອງຖິ່ນ (local version label)\" ທີ່ກຳນົດເອງ, " +"ເຊິ່ງແຍກຈາກຕົວລະບຸເວີຊັນສາທາລະນະດ້ວຍເຄື່ອງໝາຍບວກ (+). ປ້າຍກຳກັບເວີຊັນທ້ອງຖິ່ນບໍ່ມີຄວາມໝາຍສະເພາະ " +"ແຕ່ມີຂໍ້ຈຳກັດບາງຢ່າງທາງດ້ານໄວຍາກອນ." + +#: ../source/specifications/version-specifiers.rst:125 +msgid "" +"Local version identifiers are used to denote fully API (and, if applicable, " +"ABI) compatible patched versions of upstream projects. For example, these " +"may be created by application developers and system integrators by applying " +"specific backported bug fixes when upgrading to a new upstream release would " +"be too disruptive to the application or other integrated system (such as a " +"Linux distribution)." +msgstr "" +"ຕົວລະບຸເວີຊັນທ້ອງຖິ່ນຖືກໃຊ້ເພື່ອລະບຸເວີຊັນທີ່ມີການແກ້ໄຂ (patched) ເຊິ່ງເຂົ້າກັນໄດ້ກັບ API (ແລະ ABI " +"ຖ້າມີ) ຂອງໂປຣເຈັກຕົ້ນທາງ (upstream). ຕົວຢ່າງ: ສິ່ງເຫຼົ່ານີ້ອາດຖືກສ້າງຂຶ້ນໂດຍຜູ້ພັດທະນາແອັບພລິເຄຊັນ " +"ແລະ ຜູ້ລວມລະບົບ ໂດຍການນຳເອົາການແກ້ໄຂບັກ (backported bug fixes) ມາໃຊ້ ເມື່ອການອັບເກຣດ " +"ໄປຫາເວີຊັນຕົ້ນທາງໃໝ່ອາດຈະສົ່ງຜົນກະທົບຕໍ່ແອັບພລິເຄຊັນ ຫຼື ລະບົບອື່ນໆ (ເຊັ່ນ Linux distribution) " +"ຫຼາຍເກີນໄປ." + +#: ../source/specifications/version-specifiers.rst:132 +msgid "" +"The inclusion of the local version label makes it possible to differentiate " +"upstream releases from potentially altered rebuilds by downstream " +"integrators. The use of a local version identifier does not affect the kind " +"of a release but, when applied to a source distribution, does indicate that " +"it may not contain the exact same code as the corresponding upstream release." +msgstr "" +"ການລວມເອົາປ້າຍກຳກັບເວີຊັນທ້ອງຖິ່ນເຮັດໃຫ້ສາມາດແຍກແຍະການປ່ອຍເວີຊັນຕົ້ນທາງ ອອກຈາກເວີຊັນທີ່ອາດມີການ " +"ປ່ຽນແປງໂດຍຜູ້ລວມລະບົບປາຍທາງ (downstream). ການໃຊ້ຕົວລະບຸເວີຊັນທ້ອງຖິ່ນບໍ່ໄດ້ສົ່ງຜົນກະທົບຕໍ່ປະເພດ " +"ຂອງການປ່ອຍ, ແຕ່ເມື່ອນຳໃຊ້ກັບການແຈກຈ່າຍຊອດໂຄ້ດ, ມັນສະແດງໃຫ້ເຫັນວ່າໄຟລ໌ນັ້ນອາດຈະບໍ່ມີໂຄ້ດທີ່ຄືກັນ " +"ກັບເວີຊັນຕົ້ນທາງທຸກປະການ." + +#: ../source/specifications/version-specifiers.rst:138 +msgid "" +"To ensure local version identifiers can be readily incorporated as part of " +"filenames and URLs, and to avoid formatting inconsistencies in hexadecimal " +"hash representations, local version labels MUST be limited to the following " +"set of permitted characters:" +msgstr "" +"ເພື່ອໃຫ້ແນ່ໃຈວ່າຕົວລະບຸເວີຊັນທ້ອງຖິ່ນສາມາດນຳໄປໃຊ້ເປັນສ່ວນໜຶ່ງຂອງຊື່ໄຟລ໌ ແລະ URL ໄດ້ຢ່າງສະດວກ, ແລະ " +"ເພື່ອຫຼີກເວັ້ນຄວາມບໍ່ສອດຄ່ອງໃນການສະແດງຮູບແບບ hash ເລກຖານສິບຫົກ, ປ້າຍກຳກັບເວີຊັນທ້ອງຖິ່ນ \"ຕ້ອງ\" " +"ຖືກຈຳກັດໃຫ້ໃຊ້ພຽງແຕ່ກຸ່ມຕົວອັກສອນຕໍ່ໄປນີ້:" + +#: ../source/specifications/version-specifiers.rst:143 +msgid "ASCII letters (``[a-zA-Z]``)" +msgstr "ຕົວອັກສອນ ASCII (``[a-zA-Z]``)" + +#: ../source/specifications/version-specifiers.rst:144 +msgid "ASCII digits (``[0-9]``)" +msgstr "ຕົວເລກ ASCII (``[0-9]``)" + +#: ../source/specifications/version-specifiers.rst:145 +msgid "periods (``.``)" +msgstr "ຈຸດ (``.``)" + +#: ../source/specifications/version-specifiers.rst:147 +msgid "Local version labels MUST start and end with an ASCII letter or digit." +msgstr "ປ້າຍກຳກັບເວີຊັນທ້ອງຖິ່ນ \"ຕ້ອງ\" ເລີ່ມຕົ້ນ ແລະ ຈົບລົງດ້ວຍຕົວອັກສອນ ຫຼື ຕົວເລກ ASCII." + +#: ../source/specifications/version-specifiers.rst:149 +msgid "" +"Comparison and ordering of local versions considers each segment of the " +"local version (divided by a ``.``) separately. If a segment consists " +"entirely of ASCII digits then that section should be considered an integer " +"for comparison purposes and if a segment contains any ASCII letters then " +"that segment is compared lexicographically with case insensitivity. When " +"comparing a numeric and lexicographic segment, the numeric section always " +"compares as greater than the lexicographic segment. Additionally a local " +"version with a great number of segments will always compare as greater than " +"a local version with fewer segments, as long as the shorter local version's " +"segments match the beginning of the longer local version's segments exactly." +msgstr "" +"ການປຽບທຽບ ແລະ ການຈັດລຳດັບຂອງເວີຊັນທ້ອງຖິ່ນຈະພິຈາລະນາແຕ່ລະພາກສ່ວນ (ທີ່ແຍກດ້ວຍ ``.``) " +"ແຍກກັນ. ຖ້າພາກສ່ວນໃດໜຶ່ງປະກອບດ້ວຍຕົວເລກ ASCII ທັງໝົດ, " +"ພາກສ່ວນນັ້ນຈະຖືກຖືວ່າເປັນຈຳນວນຖ້ວນໃນການປຽບທຽບ, ແລະ ຖ້າພາກສ່ວນໃດມີຕົວອັກສອນ ASCII, " +"ພາກສ່ວນນັ້ນຈະຖືກປຽບທຽບຕາມລຳດັບຕົວອັກສອນ (lexicographically) ໂດຍບໍ່ແຍກຕົວພິມໃຫຍ່ພິມນ້ອຍ. " +"ເມື່ອປຽບທຽບພາກສ່ວນຕົວເລກກັບພາກສ່ວນຕົວອັກສອນ, ພາກສ່ວນຕົວເລກ " +"ຈະຖືກຖືວ່າສູງກວ່າພາກສ່ວນຕົວອັກສອນສະເໝີ. ນອກຈາກນີ້, ເວີຊັນທ້ອງຖິ່ນທີ່ມີຈຳນວນພາກສ່ວນຫຼາຍກວ່າ " +"ຈະຖືກຖືວ່າສູງກວ່າເວີຊັນທ້ອງຖິ່ນທີ່ມີພາກສ່ວນໜ້ອຍກວ່າ, ຕາບໃດທີ່ພາກສ່ວນຂອງເວີຊັນທີ່ສັ້ນກວ່າ " +"ນັ້ນກົງກັບພາກສ່ວນເລີ່ມຕົ້ນຂອງເວີຊັນທີ່ຍາວກວ່າຢ່າງແນ່ນອນ." + +#: ../source/specifications/version-specifiers.rst:160 +msgid "" +"An \"upstream project\" is a project that defines its own public versions. A " +"\"downstream project\" is one which tracks and redistributes an upstream " +"project, potentially backporting security and bug fixes from later versions " +"of the upstream project." +msgstr "" +"\"ໂປຣເຈັກຕົ້ນທາງ (upstream project)\" ແມ່ນໂປຣເຈັກທີ່ກຳນົດເວີຊັນສາທາລະນະຂອງຕົນເອງ. " +"\"ໂປຣເຈັກປາຍທາງ (downstream project)\" ແມ່ນໂປຣເຈັກທີ່ຕິດຕາມ ແລະ ນຳເອົາໂປຣເຈັກຕົ້ນທາງ " +"ມາແຈກຈ່າຍຕໍ່, ເຊິ່ງອາດຈະມີການນຳເອົາການແກ້ໄຂຄວາມປອດໄພ ແລະ ບັກຈາກເວີຊັນຫຼ້າສຸດຂອງຕົ້ນທາງ " +"ມາໃສ່ໃນເວີຊັນເກົ່າ (backporting)." + +#: ../source/specifications/version-specifiers.rst:165 +msgid "" +"Local version identifiers SHOULD NOT be used when publishing upstream " +"projects to a public index server, but MAY be used to identify private " +"builds created directly from the project source. Local version identifiers " +"SHOULD be used by downstream projects when releasing a version that is API " +"compatible with the version of the upstream project identified by the public " +"version identifier, but contains additional changes (such as bug fixes). As " +"the Python Package Index is intended solely for indexing and hosting " +"upstream projects, it MUST NOT allow the use of local version identifiers." +msgstr "" +"ຕົວລະບຸເວີຊັນທ້ອງຖິ່ນ \"ບໍ່ຄວນ\" ຖືກໃຊ້ເມື່ອເຜີຍແຜ່ໂປຣເຈັກຕົ້ນທາງໄປຫາອິນເດັກເຊີເວີສາທາລະນະ, ແຕ່ " +"\"ອາດຈະ\" ໃຊ້ເພື່ອລະບຸເວີຊັນທີ່ສ້າງຂຶ້ນເປັນສ່ວນຕົວຈາກຊອດໂຄ້ດຂອງໂປຣເຈັກ. ຕົວລະບຸເວີຊັນທ້ອງຖິ່ນ " +"\"ຄວນ\" ຖືກໃຊ້ໂດຍໂປຣເຈັກປາຍທາງເມື່ອມີການປ່ອຍເວີຊັນທີ່ເຂົ້າກັນໄດ້ກັບ API ຂອງໂປຣເຈັກຕົ້ນທາງ, " +"ແຕ່ມີການປ່ຽນແປງເພີ່ມເຕີມ (ເຊັ່ນການແກ້ໄຂບັກ). ເນື່ອງຈາກ Python Package Index " +"ມີຈຸດປະສົງເພື່ອໃຊ້ເກັບລາຍຊື່ ແລະ ໂຮສຕິງໂປຣເຈັກຕົ້ນທາງເທົ່ານັ້ນ, ມັນ \"ຕ້ອງບໍ່\" ອະນຸຍາດ " +"ໃຫ້ໃຊ້ຕົວລະບຸເວີຊັນທ້ອງຖິ່ນ." + +#: ../source/specifications/version-specifiers.rst:177 +msgid "Final releases" +msgstr "ການປ່ອຍເວີຊັນສົມບູນ (Final releases)" + +#: ../source/specifications/version-specifiers.rst:179 +msgid "" +"A version identifier that consists solely of a release segment and " +"optionally an epoch identifier is termed a \"final release\"." +msgstr "" +"ຕົວລະບຸເວີຊັນທີ່ປະກອບດ້ວຍພາກສ່ວນການປ່ອຍ (release segment) ພຽງຢ່າງດຽວ ແລະ " +"ອາດຈະມີຕົວລະບຸອີພັອກ (epoch identifier) ຈະຖືກເອີ້ນວ່າ \"ການປ່ອຍເວີຊັນສົມບູນ (final release)" +"\"." + +#: ../source/specifications/version-specifiers.rst:182 +msgid "" +"The release segment consists of one or more non-negative integer values, " +"separated by dots::" +msgstr "ພາກສ່ວນການປ່ອຍປະກອບດ້ວຍຄ່າຈຳນວນຖ້ວນບວກໜຶ່ງຕົວ ຫຼື ຫຼາຍກວ່າ, ແຍກກັນດ້ວຍຈຸດ::" + +#: ../source/specifications/version-specifiers.rst:187 +msgid "" +"Final releases within a project MUST be numbered in a consistently " +"increasing fashion, otherwise automated tools will not be able to upgrade " +"them correctly." +msgstr "" +"ການປ່ອຍເວີຊັນສົມບູນພາຍໃນໂປຣເຈັກ \"ຕ້ອງ\" ຖືກຕັ້ງເລກໃນຮູບແບບທີ່ເພີ່ມຂຶ້ນຢ່າງຕໍ່ເນື່ອງ, " +"ບໍ່ດັ່ງນັ້ນເຄື່ອງມືອັດຕະໂນມັດຈະບໍ່ສາມາດອັບເກຣດພວກມັນໄດ້ຢ່າງຖືກຕ້ອງ." + +#: ../source/specifications/version-specifiers.rst:191 +msgid "" +"Comparison and ordering of release segments considers the numeric value of " +"each component of the release segment in turn. When comparing release " +"segments with different numbers of components, the shorter segment is padded " +"out with additional zeros as necessary." +msgstr "" +"ການປຽບທຽບ ແລະ ການຈັດລຳດັບຂອງພາກສ່ວນການປ່ອຍຈະພິຈາລະນາຄ່າຕົວເລກຂອງແຕ່ລະສ່ວນປະກອບ " +"ຕາມລຳດັບ. ເມື່ອປຽບທຽບພາກສ່ວນການປ່ອຍທີ່ມີຈຳນວນສ່ວນປະກອບຕ່າງກັນ, ພາກສ່ວນທີ່ສັ້ນກວ່າ " +"ຈະຖືກຕື່ມດ້ວຍເລກສູນຕາມຄວາມຈຳເປັນ." + +#: ../source/specifications/version-specifiers.rst:196 +msgid "" +"While any number of additional components after the first are permitted " +"under this scheme, the most common variants are to use two components " +"(\"major.minor\") or three components (\"major.minor.micro\")." +msgstr "" +"ເຖິງແມ່ນວ່າຈະສາມາດມີສ່ວນປະກອບເພີ່ມເຕີມໄດ້ບໍ່ຈຳກັດຫຼັງຈາກສ່ວນທຳອິດ, ແຕ່ຮູບແບບທີ່ນິຍົມທີ່ສຸດ " +"ແມ່ນການໃຊ້ສອງສ່ວນ (\"major.minor\") ຫຼື ສາມສ່ວນ (\"major.minor.micro\")." + +#: ../source/specifications/version-specifiers.rst:215 +msgid "" +"A release series is any set of final release numbers that start with a " +"common prefix. For example, ``3.3.1``, ``3.3.5`` and ``3.3.9.45`` are all " +"part of the ``3.3`` release series." +msgstr "" +"ຊຸດຂອງການປ່ອຍ (release series) ແມ່ນກຸ່ມຂອງເລກເວີຊັນສົມບູນທີ່ເລີ່ມຕົ້ນດ້ວຍຕົວເລກທາງໜ້າທີ່ຄືກັນ. " +"ຕົວຢ່າງ: ``3.3.1``, ``3.3.5`` ແລະ ``3.3.9.45`` ທັງໝົດແມ່ນສ່ວນໜຶ່ງຂອງຊຸດການປ່ອຍ ``3.3``." + +#: ../source/specifications/version-specifiers.rst:221 +msgid "" +"``X.Y`` and ``X.Y.0`` are not considered distinct release numbers, as the " +"release segment comparison rules implicit expand the two component form to " +"``X.Y.0`` when comparing it to any release segment that includes three " +"components." +msgstr "" +"``X.Y`` ແລະ ``X.Y.0`` ບໍ່ຖືວ່າເປັນເລກການປ່ອຍທີ່ແຕກຕ່າງກັນ, ເພາະວ່າກົດລະບຽບການປຽບທຽບ " +"ພາກສ່ວນການປ່ອຍຈະຂະຫຍາຍຮູບແບບສອງສ່ວນໃຫ້ເປັນ ``X.Y.0`` ໂດຍອັດຕະໂນມັດ ເມື່ອປຽບທຽບກັບ " +"ພາກສ່ວນການປ່ອຍທີ່ມີສາມສ່ວນ." + +#: ../source/specifications/version-specifiers.rst:226 +msgid "" +"Date-based release segments are also permitted. An example of a date-based " +"release scheme using the year and month of the release::" +msgstr "" +"ພາກສ່ວນການປ່ອຍແບບອີງຕາມວັນທີກໍໄດ້ຮັບການອະນຸຍາດ. ຕົວຢ່າງຂອງຮູບແບບການປ່ອຍແບບອີງຕາມປີ ແລະ " +"ເດືອນ::" + +#: ../source/specifications/version-specifiers.rst:240 +msgid "Pre-releases" +msgstr "ເວີຊັນກ່ອນອອກຈິງ (Pre-releases)" + +#: ../source/specifications/version-specifiers.rst:242 +msgid "" +"Some projects use an \"alpha, beta, release candidate\" pre-release cycle to " +"support testing by their users prior to a final release." +msgstr "" +"ບາງໂປຣເຈັກໃຊ້ວົງຈອນ \"alpha, beta, release candidate\" ກ່ອນການປ່ອຍເວີຊັນສົມບູນ " +"ເພື່ອໃຫ້ຜູ້ໃຊ້ໄດ້ທົດສອບກ່ອນ." + +#: ../source/specifications/version-specifiers.rst:245 +msgid "" +"If used as part of a project's development cycle, these pre-releases are " +"indicated by including a pre-release segment in the version identifier::" +msgstr "" +"ຖ້າຖືກໃຊ້ເປັນສ່ວນໜຶ່ງຂອງວົງຈອນການພັດທະນາ, ເວີຊັນກ່ອນອອກຈິງເຫຼົ່ານີ້ຈະຖືກລະບຸໂດຍການລວມເອົາ ພາກສ່ວນ " +"pre-release ເຂົ້າໃນຕົວລະບຸເວີຊັນ::" + +#: ../source/specifications/version-specifiers.rst:253 +msgid "" +"A version identifier that consists solely of a release segment and a pre-" +"release segment is termed a \"pre-release\"." +msgstr "" +"ຕົວລະບຸເວີຊັນທີ່ປະກອບດ້ວຍພາກສ່ວນການປ່ອຍ (release segment) ແລະ ພາກສ່ວນ pre-release " +"ພຽງເທົ່ານັ້ນ ຈະຖືກເອີ້ນວ່າ \"ເວີຊັນກ່ອນອອກຈິງ (pre-release)\"." + +#: ../source/specifications/version-specifiers.rst:256 +msgid "" +"The pre-release segment consists of an alphabetical identifier for the pre-" +"release phase, along with a non-negative integer value. Pre-releases for a " +"given release are ordered first by phase (alpha, beta, release candidate) " +"and then by the numerical component within that phase." +msgstr "" +"ພາກສ່ວນ pre-release ປະກອບດ້ວຍຕົວອັກສອນລະບຸໄລຍະຂອງ pre-release ພ້ອມກັບຄ່າຈຳນວນຖ້ວນບວກ. " +"ເວີຊັນກ່ອນອອກຈິງຈະຖືກຈັດລຳດັບຕາມໄລຍະ (alpha, beta, release candidate) ແລະ " +"ຕາມດ້ວຍຄ່າຕົວເລກພາຍໃນໄລຍະນັ້ນ." + +#: ../source/specifications/version-specifiers.rst:261 +msgid "" +"Installation tools MAY accept both ``c`` and ``rc`` releases for a common " +"release segment in order to handle some existing legacy distributions." +msgstr "" +"ເຄື່ອງມືໃນການຕິດຕັ້ງ \"ອາດຈະ\" ຍອມຮັບທັງເວີຊັນ ``c`` ແລະ ``rc`` ສຳລັບພາກສ່ວນການປ່ອຍດຽວກັນ " +"ເພື່ອຮອງຮັບການແຈກຈ່າຍແບບເກົ່າບາງຢ່າງທີ່ມີຢູ່." + +#: ../source/specifications/version-specifiers.rst:264 +msgid "" +"Installation tools SHOULD interpret ``c`` versions as being equivalent to " +"``rc`` versions (that is, ``c1`` indicates the same version as ``rc1``)." +msgstr "" +"ເຄື່ອງມືໃນການຕິດຕັ້ງ \"ຄວນ\" ຕີຄວາມໝາຍເວີຊັນ ``c`` ໃຫ້ເທົ່າກັບເວີຊັນ ``rc`` (ໝາຍຄວາມວ່າ " +"``c1`` ລະບຸເວີຊັນດຽວກັນກັບ ``rc1``)." + +#: ../source/specifications/version-specifiers.rst:267 +msgid "" +"Build tools, publication tools and index servers SHOULD disallow the " +"creation of both ``rc`` and ``c`` releases for a common release segment." +msgstr "" +"ເຄື່ອງມືໃນການສ້າງ, ເຄື່ອງມືໃນການເຜີຍແຜ່ ແລະ ອິນເດັກເຊີເວີ \"ຄວນ\" ບໍ່ອະນຸຍາດ ໃຫ້ສ້າງທັງເວີຊັນ " +"``rc`` ແລະ ``c`` ສຳລັບພາກສ່ວນການປ່ອຍດຽວກັນ." + +#: ../source/specifications/version-specifiers.rst:272 +msgid "Post-releases" +msgstr "ເວີຊັນຫຼັງອອກຈິງ (Post-releases)" + +#: ../source/specifications/version-specifiers.rst:274 +msgid "" +"Some projects use post-releases to address minor errors in a final release " +"that do not affect the distributed software (for example, correcting an " +"error in the release notes)." +msgstr "" +"ບາງໂປຣເຈັກໃຊ້ເວີຊັນຫຼັງອອກຈິງເພື່ອແກ້ໄຂຂໍ້ຜິດພາດເລັກນ້ອຍໃນເວີຊັນສົມບູນ ເຊິ່ງບໍ່ມີຜົນກະທົບຕໍ່ຊອບແວ " +"(ຕົວຢ່າງ: ການແກ້ໄຂຄຳຜິດໃນເອກະສານແຈ້ງການປ່ອຍ)." + +#: ../source/specifications/version-specifiers.rst:278 +msgid "" +"If used as part of a project's development cycle, these post-releases are " +"indicated by including a post-release segment in the version identifier::" +msgstr "" +"ຖ້າຖືກໃຊ້ເປັນສ່ວນໜຶ່ງຂອງວົງຈອນການພັດທະນາ, ເວີຊັນຫຼັງອອກຈິງເຫຼົ່ານີ້ຈະຖືກລະບຸໂດຍການລວມເອົາ ພາກສ່ວນ " +"post-release ເຂົ້າໃນຕົວລະບຸເວີຊັນ::" + +#: ../source/specifications/version-specifiers.rst:283 +msgid "" +"A version identifier that includes a post-release segment without a " +"developmental release segment is termed a \"post-release\"." +msgstr "" +"ຕົວລະບຸເວີຊັນທີ່ມີພາກສ່ວນ post-release ໂດຍບໍ່ມີພາກສ່ວນ developmental release ຈະຖືກເອີ້ນວ່າ " +"\"ເວີຊັນຫຼັງອອກຈິງ (post-release)\"." + +#: ../source/specifications/version-specifiers.rst:286 +msgid "" +"The post-release segment consists of the string ``.post``, followed by a non-" +"negative integer value. Post-releases are ordered by their numerical " +"component, immediately following the corresponding release, and ahead of any " +"subsequent release." +msgstr "" +"ພາກສ່ວນ post-release ປະກອບດ້ວຍຂໍ້ຄວາມ ``.post`` ຕາມດ້ວຍຄ່າຈຳນວນຖ້ວນບວກ. " +"ເວີຊັນຫຼັງອອກຈິງຈະຖືກຈັດລຳດັບຕາມຄ່າຕົວເລກ, ໂດຍຕໍ່ຈາກເວີຊັນທີ່ກ່ຽວຂ້ອງທັນທີ ແລະ " +"ຢູ່ກ່ອນການປ່ອຍເວີຊັນຖັດໄປໃດໆ." + +#: ../source/specifications/version-specifiers.rst:293 +msgid "" +"The use of post-releases to publish maintenance releases containing actual " +"bug fixes is strongly discouraged. In general, it is better to use a longer " +"release number and increment the final component for each maintenance " +"release." +msgstr "" +"ການໃຊ້ post-releases ເພື່ອເຜີຍແຜ່ເວີຊັນປັບປຸງທີ່ມີການແກ້ໄຂບັກແທ້ໆນັ້ນແມ່ນ \"ບໍ່ແນະນຳຢ່າງຍິ່ງ\". " +"ໂດຍທົ່ວໄປແລ້ວ, ມັນດີກວ່າທີ່ຈະໃຊ້ເລກເວີຊັນທີ່ຍາວກວ່າ ແລະ ເພີ່ມຄ່າໃນສ່ວນປະກອບສຸດທ້າຍ " +"ສຳລັບແຕ່ລະເວີຊັນປັບປຸງ." + +#: ../source/specifications/version-specifiers.rst:298 +msgid "Post-releases are also permitted for pre-releases::" +msgstr "" +"ເວີຊັນຫຼັງອອກຈິງ (Post-releases) ຍັງຖືກອະນຸຍາດໃຫ້ໃຊ້ກັບເວີຊັນກ່ອນອອກຈິງ (pre-releases)::" + +#: ../source/specifications/version-specifiers.rst:306 +msgid "" +"Creating post-releases of pre-releases is strongly discouraged, as it makes " +"the version identifier difficult to parse for human readers. In general, it " +"is substantially clearer to simply create a new pre-release by incrementing " +"the numeric component." +msgstr "" +"ການສ້າງ post-releases ຂອງ pre-releases ແມ່ນ \"ບໍ່ແນະນຳຢ່າງຍິ່ງ\", ເພາະວ່າມັນເຮັດໃຫ້ " +"ຕົວລະບຸເວີຊັນອ່ານ ແລະ ເຂົ້າໃຈຍາກສຳລັບຄົນ. ໂດຍທົ່ວໄປແລ້ວ, ມັນຈະແຈ້ງກວ່າທີ່ຈະສ້າງ pre-release " +"ໃໝ່ໂດຍການເພີ່ມຄ່າຕົວເລກ." + +#: ../source/specifications/version-specifiers.rst:313 +msgid "Developmental releases" +msgstr "ເວີຊັນລະຫວ່າງການພັດທະນາ (Developmental releases)" + +#: ../source/specifications/version-specifiers.rst:315 +msgid "" +"Some projects make regular developmental releases, and system packagers " +"(especially for Linux distributions) may wish to create early releases " +"directly from source control which do not conflict with later project " +"releases." +msgstr "" +"ບາງໂປຣເຈັກມີການປ່ອຍເວີຊັນລະຫວ່າງການພັດທະນາເປັນປະຈຳ, ແລະ ຜູ້ຈັດເຮັດແພັກເກດລະບົບ " +"(ໂດຍສະເພາະສຳລັບ Linux distributions) ອາດຈະຕ້ອງການສ້າງເວີຊັນເລີ່ມຕົ້ນໂດຍກົງຈາກ " +"ລະບົບຄວບຄຸມຊອດໂຄ້ດ ເຊິ່ງບໍ່ໃຫ້ໄປຊ້ຳກັບການປ່ອຍເວີຊັນຂອງໂປຣເຈັກໃນພາຍຫຼັງ." + +#: ../source/specifications/version-specifiers.rst:320 +msgid "" +"If used as part of a project's development cycle, these developmental " +"releases are indicated by including a developmental release segment in the " +"version identifier::" +msgstr "" +"ຖ້າຖືກໃຊ້ເປັນສ່ວນໜຶ່ງຂອງວົງຈອນການພັດທະນາ, ເວີຊັນລະຫວ່າງການພັດທະນາເຫຼົ່ານີ້ຈະຖືກລະບຸໂດຍການລວມເອົາ " +"ພາກສ່ວນ developmental release ເຂົ້າໃນຕົວລະບຸເວີຊັນ::" + +#: ../source/specifications/version-specifiers.rst:326 +msgid "" +"A version identifier that includes a developmental release segment is termed " +"a \"developmental release\"." +msgstr "" +"ຕົວລະບຸເວີຊັນທີ່ມີພາກສ່ວນ developmental release ຈະຖືກເອີ້ນວ່າ \"ເວີຊັນລະຫວ່າງການພັດທະນາ " +"(developmental release)\"." + +#: ../source/specifications/version-specifiers.rst:329 +msgid "" +"The developmental release segment consists of the string ``.dev``, followed " +"by a non-negative integer value. Developmental releases are ordered by their " +"numerical component, immediately before the corresponding release (and " +"before any pre-releases with the same release segment), and following any " +"previous release (including any post-releases)." +msgstr "" +"ພາກສ່ວນ developmental release ປະກອບດ້ວຍຂໍ້ຄວາມ ``.dev`` ຕາມດ້ວຍຄ່າຈຳນວນຖ້ວນບວກ. " +"ເວີຊັນລະຫວ່າງການພັດທະນາຈະຖືກຈັດລຳດັບຕາມຄ່າຕົວເລກ, ໂດຍຢູ່ກ່ອນເວີຊັນທີ່ກ່ຽວຂ້ອງທັນທີ (ແລະ ກ່ອນ pre-" +"releases ທີ່ມີພາກສ່ວນການປ່ອຍດຽວກັນ), ແລະ ຕໍ່ຈາກເວີຊັນກ່ອນໜ້ານີ້ໃດໆ (ລວມເຖິງ post-releases)." + +#: ../source/specifications/version-specifiers.rst:335 +msgid "" +"Developmental releases are also permitted for pre-releases and post-" +"releases::" +msgstr "" +"ເວີຊັນລະຫວ່າງການພັດທະນາ (Developmental releases) ຍັງຖືກອະນຸຍາດໃຫ້ໃຊ້ກັບ pre-releases " +"ແລະ post-releases::" + +#: ../source/specifications/version-specifiers.rst:343 +msgid "" +"Do note that development releases are considered a type of pre-release when " +"handling them." +msgstr "ໃຫ້ສັງເກດວ່າເວີຊັນລະຫວ່າງການພັດທະນາຖືກຖືວ່າເປັນປະເພດໜຶ່ງຂອງ pre-release ໃນການຈັດການ." + +#: ../source/specifications/version-specifiers.rst:348 +msgid "" +"While they may be useful for continuous integration purposes, publishing " +"developmental releases of pre-releases to general purpose public index " +"servers is strongly discouraged, as it makes the version identifier " +"difficult to parse for human readers. If such a release needs to be " +"published, it is substantially clearer to instead create a new pre-release " +"by incrementing the numeric component." +msgstr "" +"ເຖິງວ່າມັນຈະມີປະໂຫຍດສຳລັບການເຮັດ continuous integration (CI), ແຕ່ການເຜີຍແຜ່ " +"developmental releases ຂອງ pre-releases ໄປຫາອິນເດັກເຊີເວີສາທາລະນະແມ່ນ " +"\"ບໍ່ແນະນຳຢ່າງຍິ່ງ\", ເນື່ອງຈາກມັນເຮັດໃຫ້ຕົວລະບຸເວີຊັນອ່ານ ແລະ ເຂົ້າໃຈຍາກ. " +"ຖ້າຈຳເປັນຕ້ອງເຜີຍແຜ່ເວີຊັນດັ່ງກ່າວ, ມັນຈະແຈ້ງກວ່າທີ່ຈະສ້າງ pre-release ໃໝ່ໂດຍການເພີ່ມຄ່າຕົວເລກ." + +#: ../source/specifications/version-specifiers.rst:355 +msgid "" +"Developmental releases of post-releases are also strongly discouraged, but " +"they may be appropriate for projects which use the post-release notation for " +"full maintenance releases which may include code changes." +msgstr "" +"ການອອກເວີຊັນສຳລັບການພັດທະນາ (Developmental releases) ຂອງ post-releases " +"ແມ່ນບໍ່ແນະນຳຢ່າງເດັດຂາດ, ແຕ່ພວກມັນອາດຈະເໝາະສົມສຳລັບໂປຣເຈັກທີ່ໃຊ້ຮູບແບບ post-release " +"ສຳລັບເວີຊັນການບຳລຸງຮັກສາແບບເຕັມຮູບແບບ ເຊິ່ງອາດລວມມີການປ່ຽນແປງລະຫັດ." + +#: ../source/specifications/version-specifiers.rst:361 +msgid "Version epochs" +msgstr "ອີພັອກຂອງເວີຊັນ (Version epochs)" + +#: ../source/specifications/version-specifiers.rst:363 +msgid "" +"If included in a version identifier, the epoch appears before all other " +"components, separated from the release segment by an exclamation mark::" +msgstr "" +"ຖ້າລວມຢູ່ໃນຕົວລະບຸເວີຊັນ, ອີພັອກຈະປະກົດຢູ່ທາງໜ້າສ່ວນປະກອບອື່ນໆທັງໝົດ, " +"ໂດຍແຍກຈາກພາກສ່ວນການປ່ອຍດ້ວຍເຄື່ອງໝາຍອັດສະຈັນ (!)::" + +#: ../source/specifications/version-specifiers.rst:368 +msgid "If no explicit epoch is given, the implicit epoch is ``0``." +msgstr "ຖ້າບໍ່ມີການກຳນົດອີພັອກຢ່າງຊັດເຈນ, ອີພັອກໂດຍນໄນຈະແມ່ນ ``0``." + +#: ../source/specifications/version-specifiers.rst:370 +msgid "" +"Most version identifiers will not include an epoch, as an explicit epoch is " +"only needed if a project *changes* the way it handles version numbering in a " +"way that means the normal version ordering rules will give the wrong answer. " +"For example, if a project is using date based versions like ``2014.04`` and " +"would like to switch to semantic versions like ``1.0``, then the new " +"releases would be identified as *older* than the date based releases when " +"using the normal sorting scheme::" +msgstr "" +"ຕົວລະບຸເວີຊັນສ່ວນໃຫຍ່ຈະບໍ່ມີອີພັອກ, ເພາະວ່າອີພັອກທີ່ຊັດເຈນແມ່ນຈຳເປັນກໍຕໍ່ເມື່ອໂປຣເຈັກ *ປ່ຽນ* " +"ວິທີການຕັ້ງເລກເວີຊັນ ເຊິ່ງເຮັດໃຫ້ກົດລະບຽບການຈັດລຳດັບເວີຊັນປົກກະຕິໃຫ້ຜົນທີ່ຜິດພາດ. ຕົວຢ່າງ: " +"ຖ້າໂປຣເຈັກໃຊ້ເວີຊັນແບບອີງຕາມວັນທີເຊັ່ນ ``2014.04`` ແລະ ຕ້ອງການປ່ຽນມາໃຊ້ ເວີຊັນແບບ semantic " +"ເຊັ່ນ ``1.0``, ເວີຊັນໃໝ່ຈະຖືກລະບຸວ່າ *ເກົ່າກວ່າ* ເວີຊັນແບບອີງຕາມວັນທີ " +"ເມື່ອໃຊ້ວິທີການຈັດລຳດັບແບບປົກກະຕິ::" + +#: ../source/specifications/version-specifiers.rst:384 +msgid "" +"However, by specifying an explicit epoch, the sort order can be changed " +"appropriately, as all versions from a later epoch are sorted after versions " +"from an earlier epoch::" +msgstr "" +"ແນວໃດກໍຕາມ, ໂດຍການກຳນົດອີພັອກທີ່ຊັດເຈນ, ລຳດັບການຈັດລຽງສາມາດຖືກປ່ຽນແປງໄດ້ຢ່າງເໝາະສົມ, " +"ເນື່ອງຈາກທຸກເວີຊັນຈາກອີພັອກທີ່ຫຼັງກວ່າຈະຖືກຈັດລຽງຕໍ່ຈາກເວີຊັນໃນອີພັອກກ່ອນໜ້ານັ້ນ::" + +#: ../source/specifications/version-specifiers.rst:396 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" +"ການໃຊ້ອີພັອກທີ່ບໍ່ແມ່ນສູນແມ່ນ \"ບໍ່ແນະນຳ\". ພວກມັນມັກຈະບໍ່ໄດ້ຮັບການຮອງຮັບ ຫຼື ບໍ່ໄດ້ຮັບການແນະນຳ " +"ໂດຍການຈັດເຮັດແພັກເກດປາຍທາງ (downstream), ແລະ ເນື່ອງຈາກການໃຊ້ງານທີ່ມີໜ້ອຍ, ພວກມັນອາດຈະ " +"ບໍ່ໄດ້ຮັບການຮອງຮັບທີ່ດີໂດຍເຄື່ອງມືຈັດການແພັກເກດຂອງ Python." + +#: ../source/specifications/version-specifiers.rst:401 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" +"ເມື່ອຕ້ອງການປ່ຽນຮູບແບບເວີຊັນ, ແມ່ນດີກວ່າທີ່ຈະໃຊ້ຕົວເລກທີ່ເພີ່ມຂຶ້ນເລື້ອຍໆໃນອີພັອກສູນ (epoch zero). " +"ຕົວຢ່າງ: ເວີຊັນ 2026.x ສາມາດຕາມດ້ວຍ 3000.x ໄດ້ໂດຍບໍ່ມີຄວາມກຳກວມ." + +#: ../source/specifications/version-specifiers.rst:405 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" +"ເບິ່ງ `Discouraging use of epoch segments in versions `__ ສຳລັບການສົນທະນາທີ່ກ່ຽວຂ້ອງ." + +#: ../source/specifications/version-specifiers.rst:413 +msgid "Normalization" +msgstr "ການປັບໃຫ້ເປັນມາດຕະຖານ (Normalization)" + +#: ../source/specifications/version-specifiers.rst:415 +msgid "" +"In order to maintain better compatibility with existing versions there are a " +"number of \"alternative\" syntaxes that MUST be taken into account when " +"parsing versions. These syntaxes MUST be considered when parsing a version, " +"however they should be \"normalized\" to the standard syntax defined above." +msgstr "" +"ເພື່ອຮັກສາຄວາມເຂົ້າກັນໄດ້ດີຂຶ້ນກັບເວີຊັນທີ່ມີຢູ່, ຍັງມີໄວຍາກອນ \"ທາງເລືອກ\" ຫຼາຍຢ່າງທີ່ \"ຕ້ອງ\" " +"ຖືກນຳມາພິຈາລະນາເມື່ອມີການວິເຄາະ (parsing) ເວີຊັນ. ໄວຍາກອນເຫຼົ່ານີ້ \"ຕ້ອງ\" ຖືກພິຈາລະນາ " +"ແຕ່ພວກມັນຄວນຈະຖືກ \"ປັບໃຫ້ເປັນມາດຕະຖານ (normalized)\" " +"ໃຫ້ເປັນໄວຍາກອນມາດຕະຖານທີ່ກຳນົດໄວ້ຂ້າງເທິງ." + +#: ../source/specifications/version-specifiers.rst:422 +msgid "Case sensitivity" +msgstr "ການແຍກຕົວພິມໃຫຍ່ພິມນ້ອຍ (Case sensitivity)" + +#: ../source/specifications/version-specifiers.rst:424 +msgid "" +"All ascii letters should be interpreted case insensitively within a version " +"and the normal form is lowercase. This allows versions such as ``1.1RC1`` " +"which would be normalized to ``1.1rc1``." +msgstr "" +"ຕົວອັກສອນ ASCII ທັງໝົດໃນເວີຊັນຄວນຖືກຕີຄວາມໝາຍໂດຍບໍ່ແຍກຕົວພິມໃຫຍ່ພິມນ້ອຍ ແລະ " +"ຮູບແບບປົກກະຕິແມ່ນຕົວພິມນ້ອຍ. ສິ່ງນີ້ຊ່ວຍໃຫ້ເວີຊັນເຊັ່ນ ``1.1RC1`` ຖືກປັບໃຫ້ເປັນມາດຕະຖານເປັນ " +"``1.1rc1``." + +#: ../source/specifications/version-specifiers.rst:430 +msgid "Integer Normalization" +msgstr "ການປັບຈຳນວນຖ້ວນໃຫ້ເປັນມາດຕະຖານ" + +#: ../source/specifications/version-specifiers.rst:432 +msgid "" +"All integers are interpreted via the ``int()`` built in and normalize to the " +"string form of the output. This means that an integer version of ``00`` " +"would normalize to ``0`` while ``09000`` would normalize to ``9000``. This " +"does not hold true for integers inside of an alphanumeric segment of a local " +"version such as ``1.0+foo0100`` which is already in its normalized form." +msgstr "" +"ຈຳນວນຖ້ວນທັງໝົດຈະຖືກຕີຄວາມໝາຍຜ່ານຟັງຊັນ ``int()`` ແລະ ປັບໃຫ້ເປັນຮູບແບບຂໍ້ຄວາມ (string) " +"ຂອງຜົນລັອກ. ໝາຍຄວາມວ່າ ເວີຊັນຕົວເລກ ``00`` ຈະຖືກປັບເປັນ ``0`` ໃນຂະນະທີ່ ``09000`` " +"ຈະຖືກປັບເປັນ ``9000``. ສິ່ງນີ້ບໍ່ລວມເຖິງຕົວເລກທີ່ຢູ່ໃນພາກສ່ວນຕົວອັກສອນປົນຕົວເລກຂອງ ເວີຊັນທ້ອງຖິ່ນ ເຊັ່ນ " +"``1.0+foo0100`` ເຊິ່ງຖືວ່າຢູ່ໃນຮູບແບບມາດຕະຖານຢູ່ແລ້ວ." + +#: ../source/specifications/version-specifiers.rst:440 +msgid "Pre-release separators" +msgstr "ຕົວແຍກ Pre-release" + +#: ../source/specifications/version-specifiers.rst:442 +msgid "" +"Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " +"release segment and the pre-release segment. The normal form for this is " +"without a separator. This allows versions such as ``1.1.a1`` or ``1.1-a1`` " +"which would be normalized to ``1.1a1``. It should also allow a separator to " +"be used between the pre-release signifier and the numeral. This allows " +"versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." +msgstr "" +"Pre-releases ຄວນອະນຸຍາດໃຫ້ໃຊ້ຕົວແຍກ ``.``, ``-``, ຫຼື ``_`` ລະຫວ່າງພາກສ່ວນການປ່ອຍ ແລະ " +"ພາກສ່ວນ pre-release. ຮູບແບບປົກກະຕິແມ່ນບໍ່ມີຕົວແຍກ. ສິ່ງນີ້ຊ່ວຍໃຫ້ເວີຊັນເຊັ່ນ ``1.1.a1`` ຫຼື ``1.1-" +"a1`` ຖືກປັບເປັນ ``1.1a1``. ມັນຄວນຈະອະນຸຍາດໃຫ້ໃຊ້ຕົວແຍກ ລະຫວ່າງຕົວລະບຸ pre-release ແລະ " +"ຕົວເລກນຳດ້ວຍ. ສິ່ງນີ້ຊ່ວຍໃຫ້ເວີຊັນເຊັ່ນ ``1.0a.1`` ຖືກປັບເປັນ ``1.0a1``." + +#: ../source/specifications/version-specifiers.rst:451 +msgid "Pre-release spelling" +msgstr "ການສະກົດຄຳ Pre-release" + +#: ../source/specifications/version-specifiers.rst:453 +msgid "" +"Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " +"``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " +"respectively. This allows versions such as ``1.1alpha1``, ``1.1beta2``, or " +"``1.1c3`` which normalize to ``1.1a1``, ``1.1b2``, and ``1.1rc3``. In every " +"case the additional spelling should be considered equivalent to their normal " +"forms." +msgstr "" +"Pre-releases ອະນຸຍາດໃຫ້ໃຊ້ການສະກົດຄຳເພີ່ມເຕີມເຊັ່ນ ``alpha``, ``beta``, ``c``, " +"``pre``, ແລະ ``preview`` ແທນ ``a``, ``b``, ``rc``, ``rc``, ແລະ ``rc`` " +"ຕາມລຳດັບ. ສິ່ງນີ້ຊ່ວຍໃຫ້ເວີຊັນເຊັ່ນ ``1.1alpha1``, ``1.1beta2``, ຫຼື ``1.1c3`` ຖືກປັບເປັນ " +"``1.1a1``, ``1.1b2``, ແລະ ``1.1rc3``. ໃນທຸກກໍລະນີ, ການສະກົດຄຳເພີ່ມເຕີມ " +"ຄວນຖືກຖືວ່າເທົ່າກັບຮູບແບບປົກກະຕິຂອງພວກມັນ." + +#: ../source/specifications/version-specifiers.rst:462 +msgid "Implicit pre-release number" +msgstr "ຕົວເລກ pre-release ໂດຍນໄນ" + +#: ../source/specifications/version-specifiers.rst:464 +msgid "" +"Pre releases allow omitting the numeral in which case it is implicitly " +"assumed to be ``0``. The normal form for this is to include the ``0`` " +"explicitly. This allows versions such as ``1.2a`` which is normalized to " +"``1.2a0``." +msgstr "" +"Pre releases ອະນຸຍາດໃຫ້ຕັດຕົວເລກອອກໄດ້ ເຊິ່ງໃນກໍລະນີນັ້ນຈະຖືກຄິດວ່າເປັນ ``0`` ໂດຍນໄນ. " +"ຮູບແບບປົກກະຕິແມ່ນການລວມເອົາ ``0`` ໄວ້ຢ່າງຊັດເຈນ. ສິ່ງນີ້ຊ່ວຍໃຫ້ເວີຊັນເຊັ່ນ ``1.2a`` ຖືກປັບເປັນ " +"``1.2a0``." + +#: ../source/specifications/version-specifiers.rst:470 +msgid "Post release separators" +msgstr "ຕົວແຍກ Post release" + +#: ../source/specifications/version-specifiers.rst:472 +msgid "" +"Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " +"the separator all together. The normal form of this is with the ``.`` " +"separator. This allows versions such as ``1.2-post2`` or ``1.2post2`` which " +"normalize to ``1.2.post2``. Like the pre-release separator this also allows " +"an optional separator between the post release signifier and the numeral. " +"This allows versions like ``1.2.post-2`` which would normalize to " +"``1.2.post2``." +msgstr "" +"Post releases ອະນຸຍາດໃຫ້ໃຊ້ຕົວແຍກ ``.``, ``-``, ຫຼື ``_`` " +"ພ້ອມທັງສາມາດຕັດຕົວແຍກອອກໄດ້ເລີຍ. ຮູບແບບປົກກະຕິແມ່ນໃຊ້ຕົວແຍກ ``.``. ສິ່ງນີ້ຊ່ວຍໃຫ້ເວີຊັນເຊັ່ນ ``1.2-" +"post2`` ຫຼື ``1.2post2`` ຖືກປັບເປັນ ``1.2.post2``. ເຊັ່ນດຽວກັບຕົວແຍກ pre-release, " +"ສິ່ງນີ້ຍັງອະນຸຍາດ ໃຫ້ມີຕົວແຍກເສີມລະຫວ່າງຕົວລະບຸ post release ແລະ ຕົວເລກ. ສິ່ງນີ້ຊ່ວຍໃຫ້ເວີຊັນເຊັ່ນ " +"``1.2.post-2`` ຖືກປັບເປັນ ``1.2.post2``." + +#: ../source/specifications/version-specifiers.rst:481 +msgid "Post release spelling" +msgstr "ການສະກົດຄຳ Post release" + +#: ../source/specifications/version-specifiers.rst:483 +msgid "" +"Post-releases allow the additional spellings of ``rev`` and ``r``. This " +"allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " +"with the pre-releases the additional spellings should be considered " +"equivalent to their normal forms." +msgstr "" +"Post-releases ອະນຸຍາດໃຫ້ໃຊ້ການສະກົດຄຳເພີ່ມເຕີມເຊັ່ນ ``rev`` ແລະ ``r``. " +"ສິ່ງນີ້ຊ່ວຍໃຫ້ເວີຊັນເຊັ່ນ ``1.0-r4`` ຖືກປັບເປັນ ``1.0.post4``. ເຊັ່ນດຽວກັບ pre-releases, " +"ການສະກົດຄຳເພີ່ມເຕີມຄວນຖືກຖືວ່າເທົ່າກັບຮູບແບບປົກກະຕິ." + +#: ../source/specifications/version-specifiers.rst:490 +msgid "Implicit post release number" +msgstr "ຕົວເລກ post release ໂດຍນໄນ" + +#: ../source/specifications/version-specifiers.rst:492 +msgid "" +"Post releases allow omitting the numeral in which case it is implicitly " +"assumed to be ``0``. The normal form for this is to include the ``0`` " +"explicitly. This allows versions such as ``1.2.post`` which is normalized to " +"``1.2.post0``." +msgstr "" +"Post releases ອະນຸຍາດໃຫ້ຕັດຕົວເລກອອກໄດ້ ເຊິ່ງໃນກໍລະນີນັ້ນຈະຖືກຄິດວ່າເປັນ ``0`` ໂດຍນໄນ. " +"ຮູບແບບປົກກະຕິແມ່ນການລວມເອົາ ``0`` ໄວ້ຢ່າງຊັດເຈນ. ສິ່ງນີ້ຊ່ວຍໃຫ້ເວີຊັນເຊັ່ນ ``1.2.post`` " +"ຖືກປັບເປັນ ``1.2.post0``." + +#: ../source/specifications/version-specifiers.rst:498 +msgid "Implicit post releases" +msgstr "Post releases ໂດຍນໄນ" + +#: ../source/specifications/version-specifiers.rst:500 +msgid "" +"Post releases allow omitting the ``post`` signifier all together. When using " +"this form the separator MUST be ``-`` and no other form is allowed. This " +"allows versions such as ``1.0-1`` to be normalized to ``1.0.post1``. This " +"particular normalization MUST NOT be used in conjunction with the implicit " +"post release number rule. In other words, ``1.0-`` is *not* a valid version " +"and it does *not* normalize to ``1.0.post0``." +msgstr "" +"Post releases ອະນຸຍາດໃຫ້ຕັດຕົວລະບຸ ``post`` ອອກໄດ້ທັງໝົດ. ເມື່ອໃຊ້ຮູບແບບນີ້ ຕົວແຍກ \"ຕ້ອງ\" " +"ແມ່ນ ``-`` ແລະ ບໍ່ອະນຸຍາດໃຫ້ໃຊ້ຮູບແບບອື່ນ. ສິ່ງນີ້ຊ່ວຍໃຫ້ເວີຊັນ ເຊັ່ນ ``1.0-1`` ຖືກປັບເປັນ " +"``1.0.post1``. ການປັບໃຫ້ເປັນມາດຕະຖານແບບນີ້ \"ຕ້ອງບໍ່\" ຖືກໃຊ້ຮ່ວມກັບກົດລະບຽບຕົວເລກ post " +"release ໂດຍນໄນ. ໝາຍຄວາມວ່າ ``1.0-`` \"ບໍ່ແມ່ນ\" ເວີຊັນທີ່ຖືກຕ້ອງ ແລະ ມັນ \"ບໍ່ໄດ້\" " +"ຖືກປັບເປັນ ``1.0.post0``." + +#: ../source/specifications/version-specifiers.rst:509 +msgid "Development release separators" +msgstr "ຕົວແຍກ Development release" + +#: ../source/specifications/version-specifiers.rst:511 +msgid "" +"Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " +"omitting the separator all together. The normal form of this is with the " +"``.`` separator. This allows versions such as ``1.2-dev2`` or ``1.2dev2`` " +"which normalize to ``1.2.dev2``." +msgstr "" +"Development releases ອະນຸຍາດໃຫ້ໃຊ້ຕົວແຍກ ``.``, ``-``, ຫຼື ``_`` " +"ພ້ອມທັງສາມາດຕັດຕົວແຍກອອກໄດ້ເລີຍ. ຮູບແບບປົກກະຕິແມ່ນໃຊ້ຕົວແຍກ ``.``. ສິ່ງນີ້ຊ່ວຍໃຫ້ເວີຊັນເຊັ່ນ ``1.2-" +"dev2`` ຫຼື ``1.2dev2`` ຖືກປັບເປັນ ``1.2.dev2``." + +#: ../source/specifications/version-specifiers.rst:518 +msgid "Implicit development release number" +msgstr "ຕົວເລກ development release ໂດຍນໄນ" + +#: ../source/specifications/version-specifiers.rst:520 +msgid "" +"Development releases allow omitting the numeral in which case it is " +"implicitly assumed to be ``0``. The normal form for this is to include the " +"``0`` explicitly. This allows versions such as ``1.2.dev`` which is " +"normalized to ``1.2.dev0``." +msgstr "" +"Development releases ອະນຸຍາດໃຫ້ຕັດຕົວເລກອອກໄດ້ ເຊິ່ງໃນກໍລະນີນັ້ນຈະຖືກຄິດວ່າເປັນ ``0`` " +"ໂດຍນໄນ. ຮູບແບບປົກກະຕິແມ່ນການລວມເອົາ ``0`` ໄວ້ຢ່າງຊັດເຈນ. ສິ່ງນີ້ຊ່ວຍໃຫ້ເວີຊັນເຊັ່ນ ``1.2.dev`` " +"ຖືກປັບເປັນ ``1.2.dev0``." + +#: ../source/specifications/version-specifiers.rst:527 +msgid "Local version segments" +msgstr "ພາກສ່ວນເວີຊັນທ້ອງຖິ່ນ" + +#: ../source/specifications/version-specifiers.rst:529 +msgid "" +"With a local version, in addition to the use of ``.`` as a separator of " +"segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " +"using the ``.`` character. This allows versions such as ``1.0+ubuntu-1`` to " +"be normalized to ``1.0+ubuntu.1``." +msgstr "" +"ສຳລັບເວີຊັນທ້ອງຖິ່ນ, ນອກຈາກການໃຊ້ ``.`` ເປັນຕົວແຍກພາກສ່ວນແລ້ວ, ການໃຊ້ ``-`` ແລະ ``_`` " +"ກໍເປັນທີ່ຍອມຮັບໄດ້. ຮູບແບບປົກກະຕິແມ່ນການໃຊ້ຕົວອັກສອນ ``.``. ສິ່ງນີ້ຊ່ວຍໃຫ້ເວີຊັນເຊັ່ນ " +"``1.0+ubuntu-1`` ຖືກປັບເປັນ ``1.0+ubuntu.1``." + +#: ../source/specifications/version-specifiers.rst:536 +msgid "Preceding v character" +msgstr "ຕົວອັກສອນ v ທາງໜ້າ" + +#: ../source/specifications/version-specifiers.rst:538 +msgid "" +"In order to support the common version notation of ``v1.0`` versions may be " +"preceded by a single literal ``v`` character. This character MUST be ignored " +"for all purposes and should be omitted from all normalized forms of the " +"version. The same version with and without the ``v`` is considered " +"equivalent." +msgstr "" +"ເພື່ອຮອງຮັບຮູບແບບການຂຽນເວີຊັນທົ່ວໄປເຊັ່ນ ``v1.0``, ເວີຊັນຕ່າງໆອາດຈະມີຕົວອັກສອນ ``v`` ຢູ່ທາງໜ້າ. " +"ຕົວອັກສອນນີ້ ຕ້ອງ (MUST) ຖືກລະເລີຍໃນທຸກກໍລະນີ ແລະ " +"ຄວນຖືກຕັດອອກຈາກຮູບແບບມາດຕະຖານທັງໝົດຂອງເວີຊັນ. ເວີຊັນດຽວກັນທີ່ມີ ແລະ ບໍ່ມີ ``v`` " +"ແມ່ນຖືວ່າທຽບເທົ່າກັນ." + +#: ../source/specifications/version-specifiers.rst:545 +msgid "Leading and Trailing Whitespace" +msgstr "ຍະຫວ່າງທາງໜ້າ ແລະ ທາງຫຼັງ" + +#: ../source/specifications/version-specifiers.rst:547 +msgid "" +"Leading and trailing whitespace must be silently ignored and removed from " +"all normalized forms of a version. This includes ``\" \"``, ``\\t``, " +"``\\n``, ``\\r``, ``\\f``, and ``\\v``. This allows accidental whitespace to " +"be handled sensibly, such as a version like ``1.0\\n`` which normalizes to " +"``1.0``." +msgstr "" +"ຍະຫວ່າງ (whitespace) ທາງໜ້າ ແລະ ທາງຫຼັງຕ້ອງຖືກລະເລີຍ ແລະ " +"ຕັດອອກຈາກທຸກຮູບແບບມາດຕະຖານຂອງເວີຊັນ. ເຊິ່ງລວມເຖິງ ``\" \"``, ``\\t``, ``\\n``, " +"``\\r``, ``\\f``, ແລະ ``\\v``. " +"ສິ່ງນີ້ຊ່ວຍໃຫ້ການຈັດການກັບຍະຫວ່າງທີ່ບໍ່ໄດ້ຕັ້ງໃຈເປັນໄປຢ່າງເໝາະສົມ ເຊັ່ນເວີຊັນ ``1.0\\n`` ຈະຖືກປັບເປັນ " +"``1.0``." + +#: ../source/specifications/version-specifiers.rst:554 +msgid "Examples of compliant version schemes" +msgstr "ຕົວຢ່າງຂອງຮູບແບບເວີຊັນທີ່ຖືກຕ້ອງຕາມຂໍ້ກຳນົດ" + +#: ../source/specifications/version-specifiers.rst:556 +msgid "" +"The standard version scheme is designed to encompass a wide range of " +"identification practices across public and private Python projects. In " +"practice, a single project attempting to use the full flexibility offered by " +"the scheme would create a situation where human users had difficulty " +"figuring out the relative order of versions, even though the rules above " +"ensure all compliant tools will order them consistently." +msgstr "" +"ຮູບແບບເວີຊັນມາດຕະຖານຖືກອອກແບບມາເພື່ອໃຫ້ຄຸມເຖິງວິທີການລະບຸເວີຊັນທີ່ຫຼາກຫຼາຍ ໃນໂປຣເຈັກ Python " +"ທັງແບບສາທາລະນະ ແລະ ສ່ວນຕົວ. ໃນທາງປະຕິບັດ, ໂປຣເຈັກໜຶ່ງທີ່ " +"ພະຍາຍາມໃຊ້ຄວາມຍືດຍຸ່ນທັງໝົດທີ່ຮູບແບບນີ້ມີໃຫ້ ອາດຈະເຮັດໃຫ້ຜູ້ໃຊ້ທົ່ວໄປມີຄວາມຫຍຸ້ງຍາກ " +"ໃນການຈັດລຳດັບເວີຊັນ, ເຖິງແມ່ນວ່າກົດລະບຽບຂ້າງເທິງຈະຮັບປະກັນວ່າເຄື່ອງມືທັງໝົດ " +"ທີ່ເຮັດຕາມຂໍ້ກຳນົດຈະຈັດລຳດັບພວກມັນໄດ້ຢ່າງສອດຄ່ອງກັນກໍຕາມ." + +#: ../source/specifications/version-specifiers.rst:563 +msgid "" +"The following examples illustrate a small selection of the different " +"approaches projects may choose to identify their releases, while still " +"ensuring that the \"latest release\" and the \"latest stable release\" can " +"be easily determined, both by human users and automated tools." +msgstr "" +"ຕົວຢ່າງຕໍ່ໄປນີ້ສະແດງໃຫ້ເຫັນເຖິງວິທີການຕ່າງໆທີ່ໂປຣເຈັກອາດຈະເລືອກໃຊ້ເພື່ອລະບຸການປ່ອຍເວີຊັນ, " +"ໃນຂະນະທີ່ຍັງຮັບປະກັນວ່າ \"ການປ່ອຍຫຼ້າສຸດ\" ແລະ \"ການປ່ອຍເວີຊັນສະຖຽນຫຼ້າສຸດ\" " +"ສາມາດຖືກກຳນົດໄດ້ໂດຍງ່າຍ ທັງໂດຍຜູ້ໃຊ້ ແລະ ເຄື່ອງມືອັດຕະໂນມັດ." + +#: ../source/specifications/version-specifiers.rst:568 +msgid "Simple \"major.minor\" versioning::" +msgstr "ການຕັ້ງເວີຊັນແບບງ່າຍໆ \"major.minor\"::" + +#: ../source/specifications/version-specifiers.rst:577 +msgid "Simple \"major.minor.micro\" versioning::" +msgstr "ການຕັ້ງເວີຊັນແບບງ່າຍໆ \"major.minor.micro\"::" + +#: ../source/specifications/version-specifiers.rst:585 +msgid "" +"\"major.minor\" versioning with alpha, beta and candidate pre-releases::" +msgstr "" +"ການຕັ້ງເວີຊັນແບບ \"major.minor\" ພ້ອມກັບ alpha, beta ແລະ candidate pre-releases::" + +#: ../source/specifications/version-specifiers.rst:597 +msgid "" +"\"major.minor\" versioning with developmental releases, release candidates " +"and post-releases for minor corrections::" +msgstr "" +"ການຕັ້ງເວີຊັນແບບ \"major.minor\" ພ້ອມກັບ developmental releases, release " +"candidates ແລະ post-releases ສຳລັບການແກ້ໄຂເລັກນ້ອຍ::" + +#: ../source/specifications/version-specifiers.rst:612 +msgid "" +"Date based releases, using an incrementing serial within each year, skipping " +"zero::" +msgstr "ການປ່ອຍແບບອີງຕາມວັນທີ ໂດຍໃຊ້ເລກລຳດັບທີ່ເພີ່ມຂຶ້ນໃນແຕ່ລະປີ ແລະ ຂ້າມເລກສູນ::" + +#: ../source/specifications/version-specifiers.rst:626 +msgid "Summary of permitted suffixes and relative ordering" +msgstr "ບົດສະຫຼຸບຂອງນາມສະກຸນທີ່ອະນຸຍາດ ແລະ ລຳດັບການຈັດລຽງ" + +#: ../source/specifications/version-specifiers.rst:630 +msgid "" +"This section is intended primarily for authors of tools that automatically " +"process distribution metadata, rather than developers of Python " +"distributions deciding on a versioning scheme." +msgstr "" +"ພາກສ່ວນນີ້ມີຈຸດປະສົງຫຼັກສຳລັບຜູ້ພັດທະນາເຄື່ອງມືທີ່ປະມວນຜົນເມຕາເດຕາການແຈກຈ່າຍໂດຍອັດຕະໂນມັດ, " +"ຫຼາຍກວ່າທີ່ຈະເປັນຜູ້ພັດທະນາ Python distribution ທີ່ກຳລັງຕັດສິນໃຈເລືອກຮູບແບບເວີຊັນ." + +#: ../source/specifications/version-specifiers.rst:634 +msgid "" +"The epoch segment of version identifiers MUST be sorted according to the " +"numeric value of the given epoch. If no epoch segment is present, the " +"implicit numeric value is ``0``." +msgstr "" +"ພາກສ່ວນອີພັອກ (epoch) ຂອງຕົວລະບຸເວີຊັນ \"ຕ້ອງ\" ຖືກຈັດລຽງຕາມຄ່າຕົວເລກຂອງອີພັອກທີ່ໃຫ້ມາ. " +"ຖ້າບໍ່ມີພາກສ່ວນອີພັອກ, ຄ່າຕົວເລກໂດຍນໄນຈະແມ່ນ ``0``." + +#: ../source/specifications/version-specifiers.rst:638 +msgid "" +"The release segment of version identifiers MUST be sorted in the same order " +"as Python's tuple sorting when the normalized release segment is parsed as " +"follows::" +msgstr "" +"ພາກສ່ວນການປ່ອຍ (release segment) ຂອງຕົວລະບຸເວີຊັນ \"ຕ້ອງ\" ຖືກຈັດລຽງໃນລຳດັບດຽວກັນກັບ " +"ການຈັດລຽງ tuple ຂອງ Python ເມື່ອພາກສ່ວນການປ່ອຍທີ່ປັບເປັນມາດຕະຖານແລ້ວຖືກວິເຄາະດັ່ງນີ້::" + +#: ../source/specifications/version-specifiers.rst:644 +msgid "" +"All release segments involved in the comparison MUST be converted to a " +"consistent length by padding shorter segments with zeros as needed." +msgstr "" +"ພາກສ່ວນການປ່ອຍທັງໝົດທີ່ກ່ຽວຂ້ອງກັບການປຽບທຽບ \"ຕ້ອງ\" ຖືກປ່ຽນໃຫ້ມີຄວາມຍາວເທົ່າກັນ " +"ໂດຍການຕື່ມເລກສູນໃສ່ພາກສ່ວນທີ່ສັ້ນກວ່າຕາມຄວາມຈຳເປັນ." + +#: ../source/specifications/version-specifiers.rst:647 +msgid "" +"Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " +"permitted and MUST be ordered as shown::" +msgstr "" +"ພາຍໃນການປ່ອຍແບບຕົວເລກ (``1.0``, ``2.7.3``), ນາມສະກຸນຕໍ່ໄປນີ້ແມ່ນໄດ້ຮັບການອະນຸຍາດ ແລະ " +"\"ຕ້ອງ\" ຖືກຈັດລຳດັບຕາມທີ່ສະແດງ::" + +#: ../source/specifications/version-specifiers.rst:652 +msgid "" +"Note that ``c`` is considered to be semantically equivalent to ``rc`` and " +"must be sorted as if it were ``rc``. Tools MAY reject the case of having the " +"same ``N`` for both a ``c`` and a ``rc`` in the same release segment as " +"ambiguous and remain in compliance with the specification." +msgstr "" +"ໃຫ້ສັງເກດວ່າ ``c`` ຖືກຖືວ່າເທົ່າກັບ ``rc`` ໃນທາງຄວາມໝາຍ ແລະ ຕ້ອງຖືກຈັດລຽງຄືກັບວ່າມັນແມ່ນ " +"``rc``. ເຄື່ອງມື \"ອາດຈະ\" ປະຕິເສດກໍລະນີທີ່ມີເລກ ``N`` ດຽວກັນສຳລັບທັງ ``c`` ແລະ ``rc`` " +"ໃນພາກສ່ວນການປ່ອຍດຽວກັນ ຍ້ອນຄວາມກຳກວມ ແລະ ຍັງຄົງຖືວ່າຖືກຕ້ອງຕາມຂໍ້ກຳນົດ." + +#: ../source/specifications/version-specifiers.rst:657 +msgid "" +"Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " +"(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " +"ordered as shown::" +msgstr "" +"ພາຍໃນ alpha (``1.0a1``), beta (``1.0b1``), ຫຼື release candidate (``1.0rc1``, " +"``1.0c1``), ຄໍາລົງທ້າຍ (suffixes) ຕໍ່ໄປນີ້ແມ່ນໄດ້ຮັບອະນຸຍາດ ແລະ ຕ້ອງ (MUST) " +"ຈັດລຽງຕາມທີ່ສະແດງໄວ້::" + +#: ../source/specifications/version-specifiers.rst:663 +msgid "" +"Within a post-release (``1.0.post1``), the following suffixes are permitted " +"and MUST be ordered as shown::" +msgstr "" +"ພາຍໃນ post-release (``1.0.post1``), ນາມສະກຸນຕໍ່ໄປນີ້ແມ່ນໄດ້ຮັບການອະນຸຍາດ ແລະ \"ຕ້ອງ\" " +"ຖືກຈັດລຳດັບຕາມທີ່ສະແດງ::" + +#: ../source/specifications/version-specifiers.rst:668 +msgid "" +"Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " +"used immediately following a numeric version (e.g. ``1.0.dev456``, " +"``1.0.post1``)." +msgstr "" +"ໃຫ້ສັງເກດວ່າ ``devN`` ແລະ ``postN`` \"ຕ້ອງ\" ມີຈຸດນຳໜ້າສະເໝີ, ເຖິງແມ່ນວ່າຈະໃຊ້ " +"ຕໍ່ຈາກເວີຊັນຕົວເລກທັນທີກໍຕາມ (ຕົວຢ່າງ: ``1.0.dev456``, ``1.0.post1``)." + +#: ../source/specifications/version-specifiers.rst:672 +msgid "" +"Within a pre-release, post-release or development release segment with a " +"shared prefix, ordering MUST be by the value of the numeric component." +msgstr "" +"ພາຍໃນພາກສ່ວນ pre-release, post-release ຫຼື development release ທີ່ມີຄຳນຳໜ້າຄືກັນ, " +"ການຈັດລຳດັບ \"ຕ້ອງ\" ເປັນໄປຕາມຄ່າຂອງສ່ວນປະກອບຕົວເລກ." + +#: ../source/specifications/version-specifiers.rst:675 +msgid "The following example covers many of the possible combinations::" +msgstr "ຕົວຢ່າງຕໍ່ໄປນີ້ຄຸມເຖິງຫຼາຍຮູບແບບການປະສົມທີ່ເປັນໄປໄດ້::" + +#: ../source/specifications/version-specifiers.rst:700 +msgid "Version ordering across different metadata versions" +msgstr "ການຈັດລຳດັບເວີຊັນຂ້າມເວີຊັນຂອງເມຕາເດຕາທີ່ຕ່າງກັນ" + +#: ../source/specifications/version-specifiers.rst:702 +msgid "" +"Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " +"standard version identification or ordering scheme. However metadata v1.2 " +"(:pep:`345`) does specify a scheme which is defined in :pep:`386`." +msgstr "" +"ເມຕາເດຕາ v1.0 (:pep:`241`) ແລະ ເມຕາເດຕາ v1.1 (:pep:`314`) ບໍ່ໄດ້ກຳນົດ " +"ຮູບແບບການລະບຸເວີຊັນ ຫຼື ການຈັດລຳດັບມາດຕະຖານ. ແນວໃດກໍຕາມ, ເມຕາເດຕາ v1.2 (:pep:`345`) " +"ໄດ້ກຳນົດຮູບແບບທີ່ລະບຸໄວ້ໃນ :pep:`386`." + +#: ../source/specifications/version-specifiers.rst:706 +msgid "" +"Due to the nature of the simple installer API it is not possible for an " +"installer to be aware of which metadata version a particular distribution " +"was using. Additionally installers required the ability to create a " +"reasonably prioritized list that includes all, or as many as possible, " +"versions of a project to determine which versions it should install. These " +"requirements necessitate a standardization across one parsing mechanism to " +"be used for all versions of a project." +msgstr "" +"ເນື່ອງຈາກທຳມະຊາດຂອງ API ຜູ້ຕິດຕັ້ງແບບງ່າຍ, ມັນເປັນໄປບໍ່ໄດ້ທີ່ຜູ້ຕິດຕັ້ງຈະຮູ້ວ່າ " +"ການແຈກຈ່າຍໃດໜຶ່ງກຳລັງໃຊ້ເມຕາເດຕາເວີຊັນໃດ. ນອກຈາກນີ້, ຜູ້ຕິດຕັ້ງຍັງຕ້ອງການຄວາມສາມາດ " +"ໃນການສ້າງລາຍຊື່ຕາມລຳດັບຄວາມສຳຄັນທີ່ລວມເອົາທຸກເວີຊັນ, ຫຼື ຫຼາຍເທົ່າທີ່ເປັນໄປໄດ້, " +"ຂອງໂປຣເຈັກເພື່ອຕັດສິນໃຈວ່າຄວນຕິດຕັ້ງເວີຊັນໃດ. ຂໍ້ກຳນົດເຫຼົ່ານີ້ເຮັດໃຫ້ຈຳເປັນຕ້ອງມີ " +"ມາດຕະຖານຜ່ານກົນໄກການວິເຄາະ (parsing) ອັນດຽວເພື່ອໃຊ້ກັບທຸກເວີຊັນຂອງໂປຣເຈັກ." + +#: ../source/specifications/version-specifiers.rst:714 +msgid "" +"Due to the above, this specification MUST be used for all versions of " +"metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " +"ignore any versions which cannot be parsed by the rules in this " +"specification, but MAY fall back to implementation defined version parsing " +"and ordering schemes if no versions complying with this specification are " +"available." +msgstr "" +"ຈາກເຫດຜົນຂ້າງເທິງ, ຂໍ້ກຳນົດນີ້ \"ຕ້ອງ\" ຖືກໃຊ້ສຳລັບເມຕາເດຕາທຸກເວີຊັນ ແລະ " +"ເຂົ້າມາແທນທີ່ :pep:`386` ເຖິງແມ່ນວ່າຈະເປັນເມຕາເດຕາ v1.2 ກໍຕາມ. ເຄື່ອງມື \"ຄວນ\" " +"ລະເລີຍເວີຊັນໃດໆ ທີ່ບໍ່ສາມາດວິເຄາະໄດ້ດ້ວຍກົດລະບຽບໃນຂໍ້ກຳນົດນີ້, ແຕ່ \"ອາດຈະ\" " +"ກັບໄປໃຊ້ຮູບແບບການວິເຄາະ ແລະ ຈັດລຳດັບເວີຊັນທີ່ກຳນົດໂດຍການພັດທະນາຂອງຕົນເອງ " +"ຫາກບໍ່ມີເວີຊັນທີ່ຖືກຕ້ອງຕາມຂໍ້ກຳນົດນີ້ໃຫ້ໃຊ້." + +#: ../source/specifications/version-specifiers.rst:720 +msgid "" +"Distribution users may wish to explicitly remove non-compliant versions from " +"any private package indexes they control." +msgstr "" +"ຜູ້ໃຊ້ການແຈກຈ່າຍອາດຈະຕ້ອງການລຶບເວີຊັນທີ່ບໍ່ຖືກຕ້ອງຕາມຂໍ້ກຳນົດອອກຈາກ " +"ອິນເດັກແພັກເກດສ່ວນຕົວທີ່ພວກເຂົາຄວບຄຸມ." + +#: ../source/specifications/version-specifiers.rst:725 +msgid "Compatibility with other version schemes" +msgstr "ຄວາມເຂົ້າກັນໄດ້ກັບຮູບແບບເວີຊັນອື່ນໆ" + +#: ../source/specifications/version-specifiers.rst:727 +msgid "" +"Some projects may choose to use a version scheme which requires translation " +"in order to comply with the public version scheme defined in this " +"specification. In such cases, the project specific version can be stored in " +"the metadata while the translated public version is published in the version " +"field." +msgstr "" +"ບາງໂປຣເຈັກອາດຈະເລືອກໃຊ້ຮູບແບບເວີຊັນທີ່ຕ້ອງມີການແປງເພື່ອໃຫ້ສອດຄ່ອງກັບ " +"ຮູບແບບເວີຊັນສາທາລະນະທີ່ກຳນົດໃນຂໍ້ກຳນົດນີ້. ໃນກໍລະນີດັ່ງກ່າວ, ເວີຊັນສະເພາະຂອງໂປຣເຈັກ " +"ສາມາດເກັບໄວ້ໃນເມຕາເດຕາ ໃນຂະນະທີ່ເວີຊັນສາທາລະນະທີ່ແປງແລ້ວຈະຖືກເຜີຍແຜ່ໃນຟິວເວີຊັນ." + +#: ../source/specifications/version-specifiers.rst:732 +msgid "" +"This allows automated distribution tools to provide consistently correct " +"ordering of published releases, while still allowing developers to use the " +"internal versioning scheme they prefer for their projects." +msgstr "" +"ສິ່ງນີ້ຊ່ວຍໃຫ້ເຄື່ອງມືການແຈກຈ່າຍອັດຕະໂນມັດສາມາດຈັດລຳດັບການປ່ອຍເວີຊັນທີ່ເຜີຍແຜ່ ໄດ້ຢ່າງຖືກຕ້ອງ ແລະ " +"ສອດຄ່ອງກັນ, ໃນຂະນະທີ່ຍັງອະນຸຍາດໃຫ້ຜູ້ພັດທະນາໃຊ້ຮູບແບບເວີຊັນ " +"ພາຍໃນທີ່ພວກເຂົາຕ້ອງການສຳລັບໂປຣເຈັກຂອງຕົນເອງໄດ້." + +#: ../source/specifications/version-specifiers.rst:740 +msgid "" +"`Semantic versioning`_ is a popular version identification scheme that is " +"more prescriptive than this specification regarding the significance of " +"different elements of a release number. Even if a project chooses not to " +"abide by the details of semantic versioning, the scheme is worth " +"understanding as it covers many of the issues that can arise when depending " +"on other distributions, and when publishing a distribution that others rely " +"on." +msgstr "" +"`Semantic versioning`_ ແມ່ນຮູບແບບການລະບຸເວີຊັນທີ່ໄດ້ຮັບຄວາມນິຍົມ ເຊິ່ງມີຄວາມເຄັ່ງຄັດ " +"ຫຼາຍກວ່າຂໍ້ກຳນົດນີ້ກ່ຽວກັບຄວາມສຳຄັນຂອງສ່ວນປະກອບຕ່າງໆຂອງເລກເວີຊັນ. ເຖິງແມ່ນວ່າໂປຣເຈັກ " +"ຈະເລືອກທີ່ຈະບໍ່ປະຕິບັດຕາມລາຍລະອຽດຂອງ semantic versioning, ແຕ່ຮູບແບບນີ້ກໍຄຸ້ມຄ່າ " +"ທີ່ຈະທຳຄວາມເຂົ້າໃຈ ເພາະວ່າມັນຄຸມເຖິງຫຼາຍບັນຫາທີ່ອາດຈະເກີດຂຶ້ນເມື່ອຕ້ອງເພິ່ງພາ ການແຈກຈ່າຍອື່ນໆ, ແລະ " +"ເມື່ອເຜີຍແຜ່ການແຈກຈ່າຍທີ່ຄົນອື່ນນຳໄປໃຊ້ຕໍ່." + +#: ../source/specifications/version-specifiers.rst:747 +msgid "" +"The \"Major.Minor.Patch\" (described in this specification as " +"\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " +"2.0.0 specification) are fully compatible with the version scheme defined in " +"this specification, and abiding by these aspects is encouraged." +msgstr "" +"ດ້ານຕ່າງໆຂອງການກຳນົດລຸ້ນແບບເຊມັນຕິກ \"ຫຼັກ.ຍ່ອຍ.ແກ້ໄຂ\" (Major.Minor.Patch) " +"(ທີ່ອະທິບາຍໃນຂໍ້ກຳນົດນີ້ວ່າ \"major.minor.micro\") (ຂໍ້ທີ 1-8 ໃນຂໍ້ກຳນົດ 2.0.0) " +"ແມ່ນສາມາດເຂົ້າກັນໄດ້ຢ່າງສົມບູນກັບຮູບແບບເວີຊັນທີ່ກຳນົດໄວ້ໃນຂໍ້ກຳນົດນີ້, ແລະ ແນະນຳໃຫ້ປະຕິບັດຕາມດ້ານເຫຼົ່ານີ້." + +#: ../source/specifications/version-specifiers.rst:752 +msgid "" +"Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " +"sign (builds - clause 11) are *not* compatible with this specification and " +"are not permitted in the public version field." +msgstr "" +"ເວີຊັນແບບເຊມັນຕິກທີ່ມີເຄື່ອງໝາຍຂີດຕໍ່ (ລຸ້ນກ່ອນອອກຈິງ - ຂໍ້ທີ 10) ຫຼື ເຄື່ອງໝາຍບວກ (ການບິວ - ຂໍ້ທີ 11) " +"ແມ່ນ *ບໍ່* ສາມາດເຂົ້າກັນໄດ້ກັບຂໍ້ກຳນົດນີ້ ແລະ ບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ໃຊ້ໃນຊ່ອງຂໍ້ມູນເວີຊັນສາທາລະນະ." + +#: ../source/specifications/version-specifiers.rst:756 +msgid "" +"One possible mechanism to translate such semantic versioning based source " +"labels to compatible public versions is to use the ``.devN`` suffix to " +"specify the appropriate version order." +msgstr "" +"ກົນໄກໜຶ່ງທີ່ເປັນໄປໄດ້ໃນການແປງປ້າຍກຳກັບຊອດໂຄດທີ່ອີງຕາມການກຳນົດລຸ້ນແບບເຊມັນຕິກດັ່ງກ່າວ " +"ໃຫ້ເປັນເວີຊັນສາທາລະນະທີ່ເຂົ້າກັນໄດ້ ແມ່ນການໃຊ້ຄຳຕໍ່ທ້າຍ ``.devN`` ເພື່ອລະບຸລໍາດັບເວີຊັນທີ່ເໝາະສົມ." + +#: ../source/specifications/version-specifiers.rst:760 +msgid "" +"Specific build information may also be included in local version labels." +msgstr "ຂໍ້ມູນການບິວສະເພາະອາດຈະຖືກລວມເຂົ້າໃນປ້າຍກຳກັບເວີຊັນທ້ອງຖິ່ນນຳ." + +#: ../source/specifications/version-specifiers.rst:766 +msgid "DVCS based version labels" +msgstr "ປ້າຍກຳກັບເວີຊັນທີ່ອີງຕາມ DVCS" + +#: ../source/specifications/version-specifiers.rst:768 +msgid "" +"Many build tools integrate with distributed version control systems like Git " +"and Mercurial in order to add an identifying hash to the version identifier. " +"As hashes cannot be ordered reliably such versions are not permitted in the " +"public version field." +msgstr "" +"ເຄື່ອງມືບິວຫຼາຍຊະນິດມີການເຊື່ອມຕໍ່ກັບລະບົບຄວບຄຸມເວີຊັນແບບກະຈາຍ ເຊັ່ນ Git ແລະ Mercurial " +"ເພື່ອເພີ່ມຄ່າແຮັດຊ໌ລະບຸຕົວຕົນເຂົ້າໃນຕົວລະບຸເວີຊັນ. ເນື່ອງຈາກຄ່າແຮັດຊ໌ບໍ່ສາມາດຈັດລໍາດັບໄດ້ຢ່າງໜ້າເຊື່ອຖື, " +"ເວີຊັນດັ່ງກ່າວຈຶ່ງບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ໃຊ້ໃນຊ່ອງຂໍ້ມູນເວີຊັນສາທາລະນະ." + +#: ../source/specifications/version-specifiers.rst:773 +msgid "" +"As with semantic versioning, the public ``.devN`` suffix may be used to " +"uniquely identify such releases for publication, while the original DVCS " +"based label can be stored in the project metadata." +msgstr "" +"ເຊັ່ນດຽວກັບການກຳນົດລຸ້ນແບບເຊມັນຕິກ, ຄຳຕໍ່ທ້າຍ ``.devN`` " +"ສາທາລະນະອາດຈະຖືກນຳໃຊ້ເພື່ອລະບຸລຸ້ນດັ່ງກ່າວໃຫ້ເປັນເອກະລັກເພື່ອການເຜີຍແຜ່, ໃນຂະນະທີ່ປ້າຍກຳກັບທີ່ອີງຕາມ " +"DVCS ດັ້ງເດີມສາມາດເກັບໄວ້ໃນເມຕາເດຕາຂອງໂຄງການໄດ້." + +#: ../source/specifications/version-specifiers.rst:777 +msgid "" +"Identifying hash information may also be included in local version labels." +msgstr "ຂໍ້ມູນຄ່າແຮັດຊ໌ລະບຸຕົວຕົນອາດຈະຖືກລວມເຂົ້າໃນປ້າຍກຳກັບເວີຊັນທ້ອງຖິ່ນນຳ." + +#: ../source/specifications/version-specifiers.rst:781 +msgid "Olson database versioning" +msgstr "ການກຳນົດລຸ້ນຖານຂໍ້ມູນ Olson" + +#: ../source/specifications/version-specifiers.rst:783 +msgid "" +"The ``pytz`` project inherits its versioning scheme from the corresponding " +"Olson timezone database versioning scheme: the year followed by a lowercase " +"character indicating the version of the database within that year." +msgstr "" +"ໂຄງການ ``pytz`` ສືບທອດຮູບແບບການກຳນົດລຸ້ນມາຈາກຮູບແບບການກຳນົດລຸ້ນຖານຂໍ້ມູນເຂດເວລາ Olson " +"ທີ່ກ່ຽວຂ້ອງ: ປີ ຕາມດ້ວຍຕົວອັກສອນພິມນ້ອຍທີ່ບົ່ງບອກເຖິງເວີຊັນຂອງຖານຂໍ້ມູນພາຍໃນປີນັ້ນ." + +#: ../source/specifications/version-specifiers.rst:787 +msgid "" +"This can be translated to a compliant public version identifier as ``." +"``, where the serial starts at zero or one (for the 'a' " +"release) and is incremented with each subsequent database update within the " +"year." +msgstr "" +"ສິ່ງນີ້ສາມາດແປງເປັນຕົວລະບຸເວີຊັນສາທາລະນະທີ່ຖືກຕ້ອງຕາມຂໍ້ກຳນົດເປັນ ``.``, " +"ໂດຍທີ່ລໍາດັບ (serial) ເລີ່ມຕົ້ນທີ່ສູນ ຫຼື ໜຶ່ງ (ສຳລັບລຸ້ນ 'a') ແລະ " +"ຈະເພີ່ມຂຶ້ນໃນແຕ່ລະຄັ້ງທີ່ມີການອັບເດດຖານຂໍ້ມູນພາຍໃນປີນັ້ນ." + +#: ../source/specifications/version-specifiers.rst:792 +msgid "" +"As with other translated version identifiers, the corresponding Olson " +"database version could be recorded in the project metadata." +msgstr "" +"ເຊັ່ນດຽວກັບຕົວລະບຸເວີຊັນທີ່ຖືກແປງອື່ນໆ, ເວີຊັນຖານຂໍ້ມູນ Olson " +"ທີ່ກ່ຽວຂ້ອງສາມາດບັນທຶກໄວ້ໃນເມຕາເດຕາຂອງໂຄງການໄດ້." + +#: ../source/specifications/version-specifiers.rst:799 +msgid "" +"A version specifier consists of a series of version clauses, separated by " +"commas. For example::" +msgstr "ຕົວກຳນົດເວີຊັນປະກອບດ້ວຍຊຸດຂອງຂໍ້ກຳນົດເວີຊັນ, ແຍກກັນດ້ວຍເຄື່ອງໝາຍຈຸດ. ຕົວຢ່າງ::" + +#: ../source/specifications/version-specifiers.rst:804 +msgid "The comparison operator determines the kind of version clause:" +msgstr "ຕົວດຳເນີນການປຽບທຽບບົ່ງບອກເຖິງປະເພດຂອງຂໍ້ກຳນົດເວີຊັນ:" + +#: ../source/specifications/version-specifiers.rst:806 +msgid "``~=``: `Compatible release`_ clause" +msgstr "``~=``: ຂໍ້ກຳນົດ `ລຸ້ນທີ່ເຂົ້າກັນໄດ້`_" + +#: ../source/specifications/version-specifiers.rst:807 +msgid "``==``: `Version matching`_ clause" +msgstr "``==``: ຂໍ້ກຳນົດ `ການຈັບຄູ່ເວີຊັນ`_" + +#: ../source/specifications/version-specifiers.rst:808 +msgid "``!=``: `Version exclusion`_ clause" +msgstr "``!=``: ຂໍ້ກຳນົດ `ການຍົກເວັ້ນເວີຊັນ`_" + +#: ../source/specifications/version-specifiers.rst:809 +msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" +msgstr "``<=``, ``>=``: ຂໍ້ກຳນົດ `ການປຽບທຽບລໍາດັບແບບລວມ`_" + +#: ../source/specifications/version-specifiers.rst:810 +msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" +msgstr "``<``, ``>``: ຂໍ້ກຳນົດ `ການປຽບທຽບລໍາດັບແບບແຍກ`_" + +#: ../source/specifications/version-specifiers.rst:811 +msgid "``===``: `Arbitrary equality`_ clause." +msgstr "``===``: ຂໍ້ກຳນົດ `ຄວາມເທົ່າກັນແບບກຳນົດເອງ`_." + +#: ../source/specifications/version-specifiers.rst:813 +msgid "" +"The comma (\",\") is equivalent to a logical **and** operator: a candidate " +"version must match all given version clauses in order to match the specifier " +"as a whole." +msgstr "" +"ເຄື່ອງໝາຍຈຸດ (\",\") ມີຄ່າເທົ່າກັບຕົວດຳເນີນການຕັກກະ **ແລະ**: " +"ເວີຊັນທີ່ຖືກພິຈາລະນາຕ້ອງກົງກັບທຸກຂໍ້ກຳນົດເວີຊັນທີ່ໃຫ້ມາ ເພື່ອໃຫ້ກົງກັບຕົວກຳນົດທັງໝົດ." + +#: ../source/specifications/version-specifiers.rst:817 +msgid "" +"Whitespace between a conditional operator and the following version " +"identifier is optional, as is the whitespace around the commas." +msgstr "" +"ຊ່ອງວ່າງລະຫວ່າງຕົວດຳເນີນການເງື່ອນໄຂ ແລະ ຕົວລະບຸເວີຊັນທີ່ຕາມມາແມ່ນຈະມີຫຼືບໍ່ມີກໍໄດ້, " +"ລວມທັງຊ່ອງວ່າງອ້ອມຮອບເຄື່ອງໝາຍຈຸດນຳ." + +#: ../source/specifications/version-specifiers.rst:820 +msgid "" +"When multiple candidate versions match a version specifier, the preferred " +"version SHOULD be the latest version as determined by the consistent " +"ordering defined by the standard `Version scheme`_. Whether or not pre-" +"releases are considered as candidate versions SHOULD be handled as described " +"in `Handling of pre-releases`_." +msgstr "" +"ເມື່ອມີຫຼາຍເວີຊັນທີ່ກົງກັບຕົວກຳນົດເວີຊັນ, ເວີຊັນທີ່ຄວນເລືອກ " +"ຄວນຈະເປັນເວີຊັນຫຼ້າສຸດຕາມການຈັດລໍາດັບທີ່ກຳນົດໂດຍມາດຕະຖານ `ຮູບແບບເວີຊັນ`_. " +"ສ່ວນການຈະພິຈາລະນາລຸ້ນກ່ອນອອກຈິງ (pre-releases) ຫຼື ບໍ່ນັ້ນ ຄວນຈັດການຕາມທີ່ອະທິບາຍໄວ້ໃນ " +"`ການຈັດການລຸ້ນກ່ອນອອກຈິງ`_." + +#: ../source/specifications/version-specifiers.rst:826 +msgid "" +"Except where specifically noted below, local version identifiers MUST NOT be " +"permitted in version specifiers, and local version labels MUST be ignored " +"entirely when checking if candidate versions match a given version specifier." +msgstr "" +"ຍົກເວັ້ນບ່ອນທີ່ມີການລະບຸໄວ້ເປັນພິເສດຂ້າງລຸ່ມນີ້, ຫ້າມບໍ່ໃຫ້ມີຕົວລະບຸເວີຊັນທ້ອງຖິ່ນໃນຕົວກຳນົດເວີຊັນຢ່າງເດັດຂາດ, " +"ແລະ ຕ້ອງບໍ່ສົນໃຈປ້າຍກຳກັບເວີຊັນທ້ອງຖິ່ນທັງໝົດໃນເວລາທີ່ກວດສອບວ່າເວີຊັນນັ້ນກົງກັບຕົວກຳນົດເວີຊັນທີ່ໃຫ້ມາຫຼືບໍ່." + +#: ../source/specifications/version-specifiers.rst:835 +msgid "Compatible release" +msgstr "ລຸ້ນທີ່ເຂົ້າກັນໄດ້" + +#: ../source/specifications/version-specifiers.rst:837 +msgid "" +"A compatible release clause consists of the compatible release operator " +"``~=`` and a version identifier. It matches any candidate version that is " +"expected to be compatible with the specified version." +msgstr "" +"ຂໍ້ກຳນົດລຸ້ນທີ່ເຂົ້າກັນໄດ້ປະກອບດ້ວຍຕົວດຳເນີນການລຸ້ນທີ່ເຂົ້າກັນໄດ້ ``~=`` ແລະ ຕົວລະບຸເວີຊັນ. " +"ມັນຈະຈັບຄູ່ກັບເວີຊັນໃດກໍຕາມທີ່ຄາດວ່າຈະເຂົ້າກັນໄດ້ກັບເວີຊັນທີ່ລະບຸໄວ້." + +#: ../source/specifications/version-specifiers.rst:841 +msgid "" +"The specified version identifier must be in the standard format described in " +"`Version scheme`_. Local version identifiers are NOT permitted in this " +"version specifier." +msgstr "" +"ຕົວລະບຸເວີຊັນທີ່ລະບຸໄວ້ຕ້ອງຢູ່ໃນຮູບແບບມາດຕະຖານທີ່ອະທິບາຍໄວ້ໃນ `ຮູບແບບເວີຊັນ`_. " +"ບໍ່ອະນຸຍາດໃຫ້ໃຊ້ຕົວລະບຸເວີຊັນທ້ອງຖິ່ນໃນຕົວກຳນົດເວີຊັນນີ້." + +#: ../source/specifications/version-specifiers.rst:845 +msgid "" +"For a given release identifier ``V.N``, the compatible release clause is " +"approximately equivalent to the pair of comparison clauses::" +msgstr "" +"ສຳລັບຕົວລະບຸລຸ້ນ ``V.N`` ໃດໜຶ່ງ, ຂໍ້ກຳນົດລຸ້ນທີ່ເຂົ້າກັນໄດ້ຈະມີຄ່າໃກ້ຄຽງກັບຄູ່ຂອງຂໍ້ກຳນົດການປຽບທຽບ::" + +#: ../source/specifications/version-specifiers.rst:850 +msgid "" +"This operator MUST NOT be used with a single segment version number such as " +"``~=1``." +msgstr "ຫ້າມໃຊ້ຕົວດຳເນີນການນີ້ກັບໝາຍເລກເວີຊັນທີ່ມີສ່ວນດຽວ ເຊັ່ນ ``~=1``." + +#: ../source/specifications/version-specifiers.rst:853 +msgid "For example, the following groups of version clauses are equivalent::" +msgstr "ຕົວຢ່າງ, ກຸ່ມຂອງຂໍ້ກຳນົດເວີຊັນຕໍ່ໄປນີ້ແມ່ນມີຄ່າເທົ່າກັນ::" + +#: ../source/specifications/version-specifiers.rst:861 +msgid "" +"If a pre-release, post-release or developmental release is named in a " +"compatible release clause as ``V.N.suffix``, then the suffix is ignored when " +"determining the required prefix match::" +msgstr "" +"ຖ້າຫາກມີການລະບຸລຸ້ນກ່ອນອອກຈິງ, ລຸ້ນຫຼັງອອກຈິງ ຫຼື ລຸ້ນລະຫວ່າງການພັດທະນາໃນຂໍ້ກຳນົດລຸ້ນທີ່ເຂົ້າກັນໄດ້ເປັນ " +"``V.N.suffix``, ຄຳຕໍ່ທ້າຍຈະຖືກລະເວັ້ນໃນເວລາທີ່ກຳນົດການຈັບຄູ່ຄຳນຳໜ້າທີ່ຕ້ອງການ::" + +#: ../source/specifications/version-specifiers.rst:871 +msgid "" +"The padding rules for release segment comparisons means that the assumed " +"degree of forward compatibility in a compatible release clause can be " +"controlled by appending additional zeros to the version specifier::" +msgstr "" +"ກົດເກັນການຕື່ມຊ່ອງວ່າງ (padding) ສຳລັບການປຽບທຽບສ່ວນຂອງລຸ້ນ " +"ໝາຍຄວາມວ່າລະດັບການເຂົ້າກັນໄດ້ໃນອະນາຄົດທີ່ຄາດໄວ້ໃນຂໍ້ກຳນົດລຸ້ນທີ່ເຂົ້າກັນໄດ້ " +"ສາມາດຄວບຄຸມໄດ້ໂດຍການເພີ່ມເລກສູນຕໍ່ທ້າຍຕົວກຳນົດເວີຊັນ::" + +#: ../source/specifications/version-specifiers.rst:883 +msgid "Version matching" +msgstr "ການຈັບຄູ່ເວີຊັນ" + +#: ../source/specifications/version-specifiers.rst:885 +msgid "" +"A version matching clause includes the version matching operator ``==`` and " +"a version identifier." +msgstr "ຂໍ້ກຳນົດການຈັບຄູ່ເວີຊັນປະກອບດ້ວຍຕົວດຳເນີນການຈັບຄູ່ເວີຊັນ ``==`` ແລະ ຕົວລະບຸເວີຊັນ." + +#: ../source/specifications/version-specifiers.rst:888 +msgid "" +"The specified version identifier must be in the standard format described in " +"`Version scheme`_, but a trailing ``.*`` is permitted on public version " +"identifiers as described below." +msgstr "" +"ຕົວລະບຸເວີຊັນທີ່ລະບຸໄວ້ຕ້ອງຢູ່ໃນຮູບແບບມາດຕະຖານທີ່ອະທິບາຍໄວ້ໃນ `ຮູບແບບເວີຊັນ`_, ແຕ່ອະນຸຍາດໃຫ້ມີ " +"``.*`` ຕໍ່ທ້າຍຕົວລະບຸເວີຊັນສາທາລະນະໄດ້ຕາມທີ່ອະທິບາຍໄວ້ຂ້າງລຸ່ມ." + +#: ../source/specifications/version-specifiers.rst:892 +msgid "" +"By default, the version matching operator is based on a strict equality " +"comparison: the specified version must be exactly the same as the requested " +"version. The *only* substitution performed is the zero padding of the " +"release segment to ensure the release segments are compared with the same " +"length." +msgstr "" +"ໂດຍມາດຕະຖານ, ຕົວດຳເນີນການຈັບຄູ່ເວີຊັນຈະອີງຕາມການປຽບທຽບຄວາມເທົ່າກັນແບບເຄັ່ງຄັດ: " +"ເວີຊັນທີ່ລະບຸໄວ້ຕ້ອງຄືກັນກັບເວີຊັນທີ່ຮ້ອງຂໍທຸກປະການ. ການແທນທີ່ *ພຽງຢ່າງດຽວ* " +"ທີ່ເກີດຂຶ້ນແມ່ນການຕື່ມເລກສູນໃນສ່ວນຂອງລຸ້ນ ເພື່ອໃຫ້ແນ່ໃຈວ່າສ່ວນຂອງລຸ້ນຖືກປຽບທຽບດ້ວຍຄວາມຍາວທີ່ເທົ່າກັນ." + +#: ../source/specifications/version-specifiers.rst:898 +msgid "" +"Whether or not strict version matching is appropriate depends on the " +"specific use case for the version specifier. Automated tools SHOULD at least " +"issue warnings and MAY reject them entirely when strict version matches are " +"used inappropriately." +msgstr "" +"ການຈັບຄູ່ເວີຊັນແບບເຄັ່ງຄັດຈະເໝາະສົມຫຼືບໍ່ນັ້ນ ແມ່ນຂຶ້ນກັບກໍລະນີການນຳໃຊ້ສະເພາະຂອງຕົວກຳນົດເວີຊັນ. " +"ເຄື່ອງມືອັດຕະໂນມັດ ຄວນ ຈະອອກຄຳເຕືອນຢ່າງໜ້ອຍ ແລະ ອາດຈະ " +"ປະຕິເສດທັງໝົດເມື່ອມີການໃຊ້ການຈັບຄູ່ເວີຊັນແບບເຄັ່ງຄັດຢ່າງບໍ່ເໝາະສົມ." + +#: ../source/specifications/version-specifiers.rst:903 +msgid "" +"Prefix matching may be requested instead of strict comparison, by appending " +"a trailing ``.*`` to the version identifier in the version matching clause. " +"This means that additional trailing segments will be ignored when " +"determining whether or not a version identifier matches the clause. If the " +"specified version includes only a release segment, then trailing components " +"(or the lack thereof) in the release segment are also ignored." +msgstr "" +"ສາມາດຮ້ອງຂໍການຈັບຄູ່ຄຳນຳໜ້າ (prefix matching) ແທນການປຽບທຽບແບບເຄັ່ງຄັດໄດ້ ໂດຍການເພີ່ມ " +"``.*`` ຕໍ່ທ້າຍຕົວລະບຸເວີຊັນໃນຂໍ້ກຳນົດການຈັບຄູ່ເວີຊັນ. " +"ນີ້ໝາຍຄວາມວ່າສ່ວນຕໍ່ທ້າຍທີ່ເພີ່ມມາຈະຖືກລະເວັ້ນໃນເວລາທີ່ກຳນົດວ່າຕົວລະບຸເວີຊັນນັ້ນກົງກັບຂໍ້ກຳນົດຫຼືບໍ່. " +"ຖ້າເວີຊັນທີ່ລະບຸໄວ້ມີພຽງແຕ່ສ່ວນຂອງລຸ້ນ, ສ່ວນປະກອບຕໍ່ທ້າຍ (ຫຼື ການບໍ່ມີສ່ວນປະກອບນັ້ນ) " +"ໃນສ່ວນຂອງລຸ້ນກໍຈະຖືກລະເວັ້ນຄືກັນ." + +#: ../source/specifications/version-specifiers.rst:910 +#: ../source/specifications/version-specifiers.rst:971 +msgid "" +"For example, given the version ``1.1.post1``, the following clauses would " +"match or not as shown::" +msgstr "ຕົວຢ່າງ, ສຳລັບເວີຊັນ ``1.1.post1``, ຂໍ້ກຳນົດຕໍ່ໄປນີ້ຈະຈັບຄູ່ຫຼືບໍ່ ຕາມທີ່ສະແດງ::" + +#: ../source/specifications/version-specifiers.rst:917 +msgid "" +"For purposes of prefix matching, the pre-release segment is considered to " +"have an implied preceding ``.``, so given the version ``1.1a1``, the " +"following clauses would match or not as shown::" +msgstr "" +"ສຳລັບຈຸດປະສົງຂອງການຈັບຄູ່ຄຳນຳໜ້າ, ສ່ວນຂອງລຸ້ນກ່ອນອອກຈິງຈະຖືກພິຈາລະນາວ່າຄືກັບມີ ``.`` ນຳໜ້າ, " +"ດັ່ງນັ້ນສຳລັບເວີຊັນ ``1.1a1``, ຂໍ້ກຳນົດຕໍ່ໄປນີ້ຈະຈັບຄູ່ຫຼືບໍ່ ຕາມທີ່ສະແດງ::" + +#: ../source/specifications/version-specifiers.rst:925 +msgid "" +"An exact match is also considered a prefix match (this interpretation is " +"implied by the usual zero padding rules for the release segment of version " +"identifiers). Given the version ``1.1``, the following clauses would match " +"or not as shown::" +msgstr "" +"ການຈັບຄູ່ທີ່ຄືກັນທຸກປະການກໍຖືວ່າເປັນການຈັບຄູ່ຄຳນຳໜ້າ " +"(ການຕີຄວາມໝາຍນີ້ແມ່ນມາຈາກກົດເກັນການຕື່ມເລກສູນປົກກະຕິສຳລັບສ່ວນຂອງລຸ້ນຂອງຕົວລະບຸເວີຊັນ). ສຳລັບເວີຊັນ " +"``1.1``, ຂໍ້ກຳນົດຕໍ່ໄປນີ້ຈະຈັບຄູ່ຫຼືບໍ່ ຕາມທີ່ສະແດງ::" + +#: ../source/specifications/version-specifiers.rst:937 +msgid "" +"It is invalid to have a prefix match containing a development or local " +"release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " +"development release segment is always the final segment in the public " +"version, and the local version is ignored for comparison purposes, so using " +"either in a prefix match wouldn't make any sense." +msgstr "" +"ການຈັບຄູ່ຄຳນຳໜ້າທີ່ມີລຸ້ນລະຫວ່າງການພັດທະນາ ຫຼື ລຸ້ນທ້ອງຖິ່ນ ເຊັ່ນ ``1.0.dev1.*`` ຫຼື " +"``1.0+foo1.*`` ແມ່ນບໍ່ຖືກຕ້ອງ. ຖ້າມີ, " +"ສ່ວນຂອງລຸ້ນລະຫວ່າງການພັດທະນາຈະເປັນສ່ວນສຸດທ້າຍສະເໝີໃນເວີຊັນສາທາລະນະ, ແລະ " +"ເວີຊັນທ້ອງຖິ່ນຈະຖືກລະເວັ້ນເພື່ອຈຸດປະສົງໃນການປຽບທຽບ, " +"ດັ່ງນັ້ນການໃຊ້ຢ່າງໃດຢ່າງໜຶ່ງໃນການຈັບຄູ່ຄຳນຳໜ້າຈຶ່ງບໍ່ມີປະໂຫຍດ." + +#: ../source/specifications/version-specifiers.rst:943 +msgid "" +"The use of ``==`` (without at least the wildcard suffix) when defining " +"dependencies for published distributions is strongly discouraged as it " +"greatly complicates the deployment of security fixes. The strict version " +"comparison operator is intended primarily for use when defining dependencies " +"for repeatable *deployments of applications* while using a shared " +"distribution index." +msgstr "" +"ບໍ່ແນະນຳຢ່າງຍິ່ງໃຫ້ໃຊ້ ``==`` (ໂດຍບໍ່ມີຕົວແທນ (wildcard) ຕໍ່ທ້າຍຢ່າງໜ້ອຍໜຶ່ງຕົວ) " +"ເມື່ອກຳນົດຄວາມຂຶ້ນຕໍ່ກັນ (dependencies) ສຳລັບການເຜີຍແຜ່ຊອບແວ " +"ເພາະມັນຈະເຮັດໃຫ້ການອັບເດດຄວາມປອດໄພມີຄວາມຫຍຸ້ງຍາກຫຼາຍ. " +"ຕົວດຳເນີນການປຽບທຽບເວີຊັນແບບເຄັ່ງຄັດມີຈຸດປະສົງຫຼັກເພື່ອໃຊ້ໃນການກຳນົດຄວາມຂຶ້ນຕໍ່ກັນສຳລັບ " +"*ການຕິດຕັ້ງແອັບພລິເຄຊັນ* ທີ່ຕ້ອງການຄວາມແນ່ນອນ ໃນຂະນະທີ່ໃຊ້ດັດຊະນີການແຈກຢາຍຮ່ວມກັນ." + +#: ../source/specifications/version-specifiers.rst:950 +msgid "" +"If the specified version identifier is a public version identifier (no local " +"version label), then the local version label of any candidate versions MUST " +"be ignored when matching versions." +msgstr "" +"ຖ້າຕົວລະບຸເວີຊັນທີ່ລະບຸໄວ້ເປັນຕົວລະບຸເວີຊັນສາທາລະນະ (ບໍ່ມີປ້າຍກຳກັບເວີຊັນທ້ອງຖິ່ນ), ຕ້ອງ " +"ລະເວັ້ນປ້າຍກຳກັບເວີຊັນທ້ອງຖິ່ນຂອງເວີຊັນໃດກໍຕາມທີ່ຖືກພິຈາລະນາໃນເວລາທີ່ຈັບຄູ່ເວີຊັນ." + +#: ../source/specifications/version-specifiers.rst:954 +msgid "" +"If the specified version identifier is a local version identifier, then the " +"local version labels of candidate versions MUST be considered when matching " +"versions, with the public version identifier being matched as described " +"above, and the local version label being checked for equivalence using a " +"strict string equality comparison." +msgstr "" +"ຖ້າຕົວລະບຸເວີຊັນທີ່ລະບຸໄວ້ເປັນຕົວລະບຸເວີຊັນທ້ອງຖິ່ນ, ຕ້ອງ " +"ພິຈາລະນາປ້າຍກຳກັບເວີຊັນທ້ອງຖິ່ນຂອງເວີຊັນທີ່ຖືກພິຈາລະນາໃນເວລາທີ່ຈັບຄູ່ເວີຊັນ, " +"ໂດຍທີ່ຕົວລະບຸເວີຊັນສາທາລະນະຈະຖືກຈັບຄູ່ຕາມທີ່ອະທິບາຍໄວ້ຂ້າງເທິງ, ແລະ " +"ປ້າຍກຳກັບເວີຊັນທ້ອງຖິ່ນຈະຖືກກວດສອບຄວາມເທົ່າກັນໂດຍໃຊ້ການປຽບທຽບຂໍ້ຄວາມ (string) ແບບເຄັ່ງຄັດ." + +#: ../source/specifications/version-specifiers.rst:962 +msgid "Version exclusion" +msgstr "ການຍົກເວັ້ນເວີຊັນ" + +#: ../source/specifications/version-specifiers.rst:964 +msgid "" +"A version exclusion clause includes the version exclusion operator ``!=`` " +"and a version identifier." +msgstr "ຂໍ້ກຳນົດການຍົກເວັ້ນເວີຊັນປະກອບດ້ວຍຕົວດຳເນີນການຍົກເວັ້ນເວີຊັນ ``!=`` ແລະ ຕົວລະບຸເວີຊັນ." + +#: ../source/specifications/version-specifiers.rst:967 +msgid "" +"The allowed version identifiers and comparison semantics are the same as " +"those of the `Version matching`_ operator, except that the sense of any " +"match is inverted." +msgstr "" +"ຕົວລະບຸເວີຊັນທີ່ອະນຸຍາດ ແລະ ຫຼັກການປຽບທຽບແມ່ນຄືກັນກັບຕົວດຳເນີນການ `ການຈັບຄູ່ເວີຊັນ`_, " +"ຍົກເວັ້ນແຕ່ວ່າຜົນຂອງການຈັບຄູ່ຈະຖືກປີ້ນກັບກັນ." + +#: ../source/specifications/version-specifiers.rst:980 +msgid "Inclusive ordered comparison" +msgstr "ການປຽບທຽບລໍາດັບແບບລວມ" + +#: ../source/specifications/version-specifiers.rst:982 +msgid "" +"An inclusive ordered comparison clause includes a comparison operator and a " +"version identifier, and will match any version where the comparison is " +"correct based on the relative position of the candidate version and the " +"specified version given the consistent ordering defined by the standard " +"`Version scheme`_." +msgstr "" +"ຂໍ້ກຳນົດການປຽບທຽບລໍາດັບແບບລວມປະກອບດ້ວຍຕົວດຳເນີນການປຽບທຽບ ແລະ ຕົວລະບຸເວີຊັນ, ແລະ " +"ຈະຈັບຄູ່ກັບເວີຊັນໃດກໍຕາມທີ່ການປຽບທຽບນັ້ນຖືກຕ້ອງໂດຍອີງຕາມຕຳແໜ່ງທີ່ກ່ຽວຂ້ອງຂອງເວີຊັນທີ່ຖືກພິຈາລະນາ ແລະ " +"ເວີຊັນທີ່ລະບຸໄວ້ ຕາມການຈັດລໍາດັບທີ່ກຳນົດໂດຍມາດຕະຖານ `ຮູບແບບເວີຊັນ`_." + +#: ../source/specifications/version-specifiers.rst:988 +msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." +msgstr "ຕົວດຳເນີນການປຽບທຽບລໍາດັບແບບລວມແມ່ນ ``<=`` ແລະ ``>=``." + +#: ../source/specifications/version-specifiers.rst:990 +#: ../source/specifications/version-specifiers.rst:1020 +msgid "" +"As with version matching, the release segment is zero padded as necessary to " +"ensure the release segments are compared with the same length." +msgstr "" +"ເຊັ່ນດຽວກັບການຈັບຄູ່ເວີຊັນ, ສ່ວນຂອງລຸ້ນຈະຖືກຕື່ມເລກສູນຕາມຄວາມຈຳເປັນ " +"ເພື່ອໃຫ້ແນ່ໃຈວ່າສ່ວນຂອງລຸ້ນຖືກປຽບທຽບດ້ວຍຄວາມຍາວທີ່ເທົ່າກັນ." + +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 +msgid "Local version identifiers are NOT permitted in this version specifier." +msgstr "ບໍ່ອະນຸຍາດໃຫ້ໃຊ້ຕົວລະບຸເວີຊັນທ້ອງຖິ່ນໃນຕົວກຳນົດເວີຊັນນີ້." + +#: ../source/specifications/version-specifiers.rst:997 +msgid "Exclusive ordered comparison" +msgstr "ການປຽບທຽບລໍາດັບແບບແຍກ" + +#: ../source/specifications/version-specifiers.rst:999 +msgid "" +"The exclusive ordered comparisons ``>`` and ``<`` are similar to the " +"inclusive ordered comparisons in that they rely on the relative position of " +"the candidate version and the specified version given the consistent " +"ordering defined by the standard `Version scheme`_. However, they " +"specifically exclude pre-releases, post-releases, and local versions of the " +"specified version." +msgstr "" +"ການປຽບທຽບລໍາດັບແບບແຍກ ``>`` ແລະ ``<`` ແມ່ນຄ້າຍຄືກັບການປຽບທຽບລໍາດັບແບບລວມ " +"ທີ່ພວກມັນອີງຕາມຕຳແໜ່ງທີ່ກ່ຽວຂ້ອງຂອງເວີຊັນທີ່ຖືກພິຈາລະນາ ແລະ ເວີຊັນທີ່ລະບຸໄວ້ " +"ຕາມການຈັດລໍາດັບທີ່ກຳນົດໂດຍມາດຕະຖານ `ຮູບແບບເວີຊັນ`_. ເຖິງຢ່າງໃດກໍຕາມ, " +"ພວກມັນຈະຍົກເວັ້ນລຸ້ນກ່ອນອອກຈິງ, ລຸ້ນຫຼັງອອກຈິງ, ແລະ ເວີຊັນທ້ອງຖິ່ນຂອງເວີຊັນທີ່ລະບຸໄວ້ໂດຍສະເພາະ." + +#: ../source/specifications/version-specifiers.rst:1005 +msgid "" +"The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " +"the given version unless ``V`` itself is a post release. You may mandate " +"that releases are later than a particular post release, including additional " +"post releases, by using ``>V.postN``. For example, ``>1.7`` will allow " +"``1.7.1`` but not ``1.7.0.post1`` and ``>1.7.post2`` will allow ``1.7.1`` " +"and ``1.7.0.post3`` but not ``1.7.0``." +msgstr "" +"ການປຽບທຽບລໍາດັບແບບແຍກ ``>V`` **ຕ້ອງບໍ່** ອະນຸຍາດໃຫ້ມີລຸ້ນຫຼັງອອກຈິງຂອງເວີຊັນທີ່ໃຫ້ມາ ຍົກເວັ້ນແຕ່ " +"``V`` ນັ້ນເອງຈະເປັນລຸ້ນຫຼັງອອກຈິງ. ທ່ານສາມາດບັງຄັບໃຫ້ລຸ້ນຕ່າງໆຕ້ອງໃໝ່ກວ່າລຸ້ນຫຼັງອອກຈິງໃດໜຶ່ງ, " +"ລວມທັງລຸ້ນຫຼັງອອກຈິງເພີ່ມເຕີມ, ໂດຍການໃຊ້ ``>V.postN``. ຕົວຢ່າງ, ``>1.7`` ຈະອະນຸຍາດ " +"``1.7.1`` ແຕ່ບໍ່ອະນຸຍາດ ``1.7.0.post1`` ແລະ ``>1.7.post2`` ຈະອະນຸຍາດ ``1.7.1`` " +"ແລະ ``1.7.0.post3`` ແຕ່ບໍ່ອະນຸຍາດ ``1.7.0``." + +#: ../source/specifications/version-specifiers.rst:1012 +msgid "" +"The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " +"of the specified version." +msgstr "ການປຽບທຽບລໍາດັບແບບແຍກ ``>V`` **ຕ້ອງບໍ່** ຈັບຄູ່ກັບເວີຊັນທ້ອງຖິ່ນຂອງເວີຊັນທີ່ລະບຸໄວ້." + +#: ../source/specifications/version-specifiers.rst:1015 +msgid "" +"The exclusive ordered comparison ``=`` entry as part " +"of the URL fragment." +msgstr "" +"ສຳລັບການອ້າງອີງຊອດໂຄດ ແລະ ໄຟລ໌ wheel, ສາມາດລະບຸຄ່າແຮັດຊ໌ທີ່ຄາດໄວ້ໄດ້ໂດຍການລວມເອົາ ``=`` ເປັນສ່ວນໜຶ່ງຂອງ URL fragment." + +#: ../source/specifications/version-specifiers.rst:1145 +msgid "" +"For version control references, the ``VCS+protocol`` scheme SHOULD be used " +"to identify both the version control system and the secure transport, and a " +"version control system with hash based commit identifiers SHOULD be used. " +"Automated tools MAY omit warnings about missing hashes for version control " +"systems that do not provide hash based commit identifiers." +msgstr "" +"ສຳລັບການອ້າງອີງລະບົບຄວບຄຸມເວີຊັນ, ຄວນ ໃຊ້ຮູບແບບ ``VCS+protocol`` " +"ເພື່ອລະບຸທັງລະບົບຄວບຄຸມເວີຊັນ ແລະ ການສົ່ງຂໍ້ມູນທີ່ປອດໄພ, ແລະ ຄວນ " +"ໃຊ້ລະບົບຄວບຄຸມເວີຊັນທີ່ມີຕົວລະບຸການຄອມມິດ (commit) ທີ່ອີງຕາມຄ່າແຮັດຊ໌. ເຄື່ອງມືອັດຕະໂນມັດ ອາດຈະ " +"ລະເວັ້ນຄຳເຕືອນກ່ຽວກັບຄ່າແຮັດຊ໌ທີ່ຫາຍໄປສຳລັບລະບົບຄວບຄຸມເວີຊັນທີ່ບໍ່ມີຕົວລະບຸການຄອມມິດແບບຄ່າແຮັດຊ໌." + +#: ../source/specifications/version-specifiers.rst:1151 +msgid "" +"To handle version control systems that do not support including commit or " +"tag references directly in the URL, that information may be appended to the " +"end of the URL using the ``@`` or the ``@#`` " +"notation." +msgstr "" +"ເພື່ອຈັດການກັບລະບົບຄວບຄຸມເວີຊັນທີ່ບໍ່ຮອງຮັບການລວມເອົາການອ້າງອີງຄອມມິດ ຫຼື ແທັກ (tag) ເຂົ້າໃນ URL " +"ໂດຍກົງ, ສາມາດເພີ່ມຂໍ້ມູນນັ້ນຕໍ່ທ້າຍ URL ໄດ້ໂດຍໃຊ້ຮູບແບບ ``@`` ຫຼື " +"``@#``." + +#: ../source/specifications/version-specifiers.rst:1158 +msgid "" +"This isn't *quite* the same as the existing VCS reference notation supported " +"by pip. Firstly, the distribution name is moved in front rather than " +"embedded as part of the URL. Secondly, the commit hash is included even when " +"retrieving based on a tag, in order to meet the requirement above that " +"*every* link should include a hash to make things harder to forge (creating " +"a malicious repo with a particular tag is easy, creating one with a specific " +"*hash*, less so)." +msgstr "" +"ສິ່ງນີ້ *ບໍ່ຄືກັນ* ກັບຮູບແບບການອ້າງອີງ VCS ທີ່ມີຢູ່ໃນ pip. ຢ່າງທຳອິດ, " +"ຊື່ຂອງຊຸດແຈກຢາຍຈະຖືກຍ້າຍມາໄວ້ທາງໜ້າແທນທີ່ຈະຝັງໄວ້ເປັນສ່ວນໜຶ່ງຂອງ URL. ຢ່າງທີສອງ, " +"ຄ່າແຮັດຊ໌ຂອງຄອມມິດຈະຖືກລວມເຂົ້າໄປນຳເຖິງແມ່ນວ່າຈະດຶງຂໍ້ມູນຕາມແທັກກໍຕາມ, " +"ເພື່ອໃຫ້ເປັນໄປຕາມຂໍ້ກຳນົດຂ້າງເທິງທີ່ວ່າ *ທຸກໆ* ລິງກ໌ຄວນມີຄ່າແຮັດຊ໌ ເພື່ອເຮັດໃຫ້ການປອມແປງເຮັດໄດ້ຍາກຂຶ້ນ " +"(ການສ້າງບ່ອນເກັບໂຄດ (repo) ທີ່ເປັນອັນຕະລາຍດ້ວຍແທັກໃດໜຶ່ງນັ້ນເຮັດໄດ້ງ່າຍ, " +"ແຕ່ການສ້າງດ້ວຍຄ່າແຮັດຊ໌ສະເພາະໃດໜຶ່ງນັ້ນເຮັດໄດ້ຍາກກວ່າ)." + +#: ../source/specifications/version-specifiers.rst:1166 +msgid "Remote URL examples::" +msgstr "ຕົວຢ່າງ URL ໄລຍະໄກ::" + +#: ../source/specifications/version-specifiers.rst:1174 +msgid "File URLs" +msgstr "URL ຂອງໄຟລ໌" + +#: ../source/specifications/version-specifiers.rst:1176 +msgid "" +"File URLs take the form of ``file:///``. If the ```` is " +"omitted it is assumed to be ``localhost`` and even if the ```` is " +"omitted the third slash MUST still exist. The ```` defines what the " +"file path on the filesystem that is to be accessed." +msgstr "" +"URL ຂອງໄຟລ໌ຈະຢູ່ໃນຮູບແບບ ``file:///``. ຖ້າລະເວັ້ນ ```` ຈະຖືວ່າເປັນ " +"``localhost`` ແລະ ເຖິງແມ່ນວ່າຈະລະເວັ້ນ ```` ແຕ່ເຄື່ອງໝາຍທັບ (slash) ຕົວທີສາມ ກໍຕ້ອງ " +"ຍັງຄົງມີຢູ່. ```` ກຳນົດເສັ້ນທາງຂອງໄຟລ໌ໃນລະບົບໄຟລ໌ທີ່ຈະເຂົ້າເຖິງ." + +#: ../source/specifications/version-specifiers.rst:1181 +msgid "" +"On the various \\*nix operating systems the only allowed values for " +"```` is for it to be omitted, ``localhost``, or another FQDN that the " +"current machine believes matches its own host. In other words, on \\*nix the " +"``file://`` scheme can only be used to access paths on the local machine." +msgstr "" +"ໃນລະບົບປະຕິບັດການ \\*nix ຕ່າງໆ, ຄ່າທີ່ອະນຸຍາດສຳລັບ ```` ມີພຽງແຕ່ການລະເວັ້ນໄວ້, " +"``localhost``, ຫຼື FQDN ອື່ນທີ່ເຄື່ອງປະຈຸບັນເຊື່ອວ່າກົງກັບໂຮສ (host) ຂອງມັນເອງ. ເວົ້າອີກຢ່າງໜຶ່ງຄື, " +"ໃນ \\*nix ຮູບແບບ ``file://`` ສາມາດໃຊ້ເພື່ອເຂົ້າເຖິງເສັ້ນທາງໃນເຄື່ອງທ້ອງຖິ່ນເທົ່ານັ້ນ." + +#: ../source/specifications/version-specifiers.rst:1186 +msgid "" +"On Windows the file format should include the drive letter if applicable as " +"part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " +"on Windows the ```` parameter may be used to specify a file residing " +"on a network share. In other words, in order to translate ``\\" +"\\machine\\volume\\file`` to a ``file://`` url, it would end up as ``file://" +"machine/volume/file``. For more information on ``file://`` URLs on Windows " +"see `MSDN `_." +msgstr "" +"ໃນ Windows, ຮູບແບບໄຟລ໌ຄວນລວມເອົາຕົວອັກສອນໄດຣ໌ (drive) ຖ້າມີ ເປັນສ່ວນໜຶ່ງຂອງ ```` " +"(ເຊັ່ນ ``file:///c:/path/to/a/file``). ຕ່າງຈາກ \\*nix, ໃນ Windows ພາຣາມິເຕີ " +"```` ສາມາດໃຊ້ເພື່ອລະບຸໄຟລ໌ທີ່ຢູ່ໃນເຄືອຂ່າຍທີ່ໃຊ້ຮ່ວມກັນ (network share) ໄດ້. " +"ເວົ້າອີກຢ່າງໜຶ່ງຄື, ເພື່ອແປງ ``\\\\machine\\volume\\file`` ເປັນ URL ແບບ ``file://``, " +"ມັນຈະກາຍເປັນ ``file://machine/volume/file``. ສຳລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບ URL ແບບ " +"``file://`` ໃນ Windows ເບິ່ງໄດ້ທີ່ `MSDN `_." + +#: ../source/specifications/version-specifiers.rst:1197 +msgid "Summary of differences from pkg_resources.parse_version" +msgstr "ສະຫຼຸບຄວາມແຕກຕ່າງຈາກ pkg_resources.parse_version" + +#: ../source/specifications/version-specifiers.rst:1199 +msgid "" +"Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " +"the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " +"and later versions adopted the behaviour described here." +msgstr "" +"ໝາຍເຫດ: ການປຽບທຽບນີ້ແມ່ນທຽບກັບ ``pkg_resources.parse_version`` " +"ຕາມທີ່ມີຢູ່ໃນເວລາທີ່ຂຽນ :pep:`440`. ຫຼັງຈາກ PEP ໄດ້ຮັບການຍອມຮັບ, setuptools 6.0 ແລະ " +"ເວີຊັນຕໍ່ໆມາໄດ້ນຳໃຊ້ພຶດຕິກຳຕາມທີ່ອະທິບາຍໄວ້ຢູ່ນີ້." + +#: ../source/specifications/version-specifiers.rst:1203 +msgid "" +"Local versions sort differently, this specification requires that they sort " +"as greater than the same version without a local version, whereas " +"``pkg_resources.parse_version`` considers it a pre-release marker." +msgstr "" +"ເວີຊັນທ້ອງຖິ່ນມີການຈັດລໍາດັບທີ່ແຕກຕ່າງກັນ, " +"ຂໍ້ກຳນົດນີ້ກຳນົດໃຫ້ພວກມັນຖືກຈັດລໍາດັບວ່າໃຫຍ່ກວ່າເວີຊັນດຽວກັນທີ່ບໍ່ມີເວີຊັນທ້ອງຖິ່ນ, ໃນຂະນະທີ່ " +"``pkg_resources.parse_version`` ຖືວ່າມັນເປັນເຄື່ອງໝາຍລຸ້ນກ່ອນອອກຈິງ." + +#: ../source/specifications/version-specifiers.rst:1207 +msgid "" +"This specification purposely restricts the syntax which constitutes a valid " +"version while ``pkg_resources.parse_version`` attempts to provide some " +"meaning from *any* arbitrary string." +msgstr "" +"ຂໍ້ກຳນົດນີ້ຕັ້ງໃຈຈຳກັດໄວຍາກອນທີ່ຈະຖືວ່າເປັນເວີຊັນທີ່ຖືກຕ້ອງ, ໃນຂະນະທີ່ " +"``pkg_resources.parse_version`` ພະຍາຍາມຕີຄວາມໝາຍຈາກຂໍ້ຄວາມໃດໆກໍຕາມ." + +#: ../source/specifications/version-specifiers.rst:1211 +msgid "" +"``pkg_resources.parse_version`` allows arbitrarily deeply nested version " +"signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " +"only a single use of each type and they must exist in a certain order." +msgstr "" +"``pkg_resources.parse_version`` ອະນຸຍາດໃຫ້ມີຕົວກຳນົດເວີຊັນທີ່ຊ້ອນກັນໄດ້ຫຼາຍຊັ້ນ ເຊັ່ນ " +"``1.0.dev1.post1.dev5``. ເຖິງຢ່າງໃດກໍຕາມ, ຂໍ້ກຳນົດນີ້ອະນຸຍາດໃຫ້ໃຊ້ແຕ່ລະປະເພດໄດ້ພຽງຄັ້ງດຽວ " +"ແລະ ຕ້ອງຢູ່ໃນລໍາດັບທີ່ກຳນົດໄວ້." + +#: ../source/specifications/version-specifiers.rst:1220 +msgid "Appendix: Parsing version strings with regular expressions" +msgstr "ພາກຜະນວກ: ການແຍກຂໍ້ຄວາມເວີຊັນດ້ວຍ Regular Expressions" + +#: ../source/specifications/version-specifiers.rst:1222 +msgid "" +"As noted earlier in the :ref:`public-version-identifiers` section, published " +"version identifiers SHOULD use the canonical format. This section provides " +"regular expressions that can be used to test whether a version is already in " +"that form, and if it's not, extract the various components for subsequent " +"normalization." +msgstr "" +"ຕາມທີ່ໄດ້ລະບຸໄວ້ກ່ອນໜ້ານີ້ໃນສ່ວນ :ref:`public-version-identifiers`, ຕົວລະບຸເວີຊັນທີ່ເຜີຍແຜ່ " +"ຄວນ ໃຊ້ຮູບແບບມາດຕະຖານ (canonical format). ສ່ວນນີ້ໃຫ້ regular expressions " +"ທີ່ສາມາດໃຊ້ເພື່ອທົດສອບວ່າເວີຊັນຢູ່ໃນຮູບແບບນັ້ນແລ້ວຫຼືບໍ່, ແລະ ຖ້າບໍ່ແມ່ນ, " +"ໃຫ້ແຍກສ່ວນປະກອບຕ່າງໆອອກມາເພື່ອເຮັດໃຫ້ເປັນມາດຕະຖານໃນຂັ້ນຕອນຕໍ່ໄປ." + +#: ../source/specifications/version-specifiers.rst:1228 +msgid "" +"To test whether a version identifier is in the canonical format, you can use " +"the following function:" +msgstr "ເພື່ອທົດສອບວ່າຕົວລະບຸເວີຊັນຢູ່ໃນຮູບແບບມາດຕະຖານຫຼືບໍ່, ທ່ານສາມາດໃຊ້ຟັງຊັນຕໍ່ໄປນີ້:" + +#: ../source/specifications/version-specifiers.rst:1237 +msgid "" +"To extract the components of a version identifier, use the following regular " +"expression (as defined by the `packaging `_ project):" +msgstr "" +"ເພື່ອແຍກສ່ວນປະກອບຂອງຕົວລະບຸເວີຊັນ, ໃຫ້ໃຊ້ regular expression ຕໍ່ໄປນີ້ (ຕາມທີ່ກຳນົດໂດຍໂຄງການ " +"`packaging `_):" + +#: ../source/specifications/version-specifiers.rst:1284 +msgid "August 2014: This specification was approved through :pep:`440`." +msgstr "ສິງຫາ 2014: ຂໍ້ກຳນົດນີ້ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`440`." + +#: ../source/specifications/version-specifiers.rst:1285 +msgid "" +"May 2025: Clarify that development releases are a form of pre-release when " +"they are handled." +msgstr "" +"ພຶດສະພາ 2025: ຊີ້ແຈງວ່າລຸ້ນລະຫວ່າງການພັດທະນາແມ່ນຮູບແບບໜຶ່ງຂອງລຸ້ນກ່ອນອອກຈິງໃນເວລາທີ່ຖືກຈັດການ." + +#: ../source/specifications/version-specifiers.rst:1287 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "ພະຈິກ 2025: ເຮັດໃຫ້ຄວາມເທົ່າກັນແບບກຳນົດເອງເປັນແບບບໍ່ແຍກຕົວພິມໃຫຍ່-ພິມນ້ອຍຢ່າງຊັດເຈນ." + +#: ../source/specifications/version-specifiers.rst:1288 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "ມັງກອນ 2026: ບໍ່ແນະນຳໃຫ້ມີການໃຊ້ epochs." + +#: ../source/specifications/virtual-environments.rst:6 +msgid "Python Virtual Environments" +msgstr "ສະພາບແວດລ້ອມສະເໝືອນຂອງ Python" + +#: ../source/specifications/virtual-environments.rst:8 +msgid "" +"For Python 3.3 and later versions, :pep:`405` introduced interpreter level " +"support for the concept of \"Python Virtual Environments\". Each virtual " +"environment has its own Python binary (allowing creation of environments " +"with various Python versions) and can have its own independent set of " +"installed Python packages in its site directories, but shares the standard " +"library with the base installed Python. While the concept of virtual " +"environments existed prior to this update, there was no previously " +"standardised mechanism for declaring or discovering them." +msgstr "" +"ສຳລັບ Python 3.3 ແລະ ເວີຊັນຕໍ່ໆມາ, :pep:`405` ໄດ້ນຳສະເໜີການຮອງຮັບໃນລະດັບອິນເຕີພຣີເຕີ " +"(interpreter) ສຳລັບແນວຄວາມຄິດຂອງ \"ສະພາບແວດລ້ອມສະເໝືອນຂອງ Python\" (Python " +"Virtual Environments). ແຕ່ລະສະພາບແວດລ້ອມສະເໝືອນຈະມີໄຟລ໌ໄບນາຣີ Python ຂອງຕົນເອງ " +"(ຊ່ວຍໃຫ້ສາມາດສ້າງສະພາບແວດລ້ອມທີ່ມີ Python ຫຼາຍເວີຊັນໄດ້) ແລະ ສາມາດມີຊຸດແພັກເກດ Python " +"ທີ່ຕິດຕັ້ງແຍກເປັນອິດສະຫຼະໃນໄດເຣັກທໍຣີ site ຂອງມັນເອງ, ແຕ່ຈະໃຊ້ໄລບຣາຣີມາດຕະຖານຮ່ວມກັບ Python " +"ຫຼັກທີ່ຕິດຕັ້ງໄວ້. ເຖິງວ່າແນວຄວາມຄິດຂອງສະພາບແວດລ້ອມສະເໝືອນຈະມີມາກ່ອນການອັບເດດນີ້, " +"ແຕ່ກ່ອນໜ້ານັ້ນຍັງບໍ່ມີກົນໄກມາດຕະຖານໃນການປະກາດ ຫຼື ກວດຫາພວກມັນ." + +#: ../source/specifications/virtual-environments.rst:18 +msgid "Runtime detection of virtual environments" +msgstr "ການກວດຫາສະພາບແວດລ້ອມສະເໝືອນໃນເວລາເຮັດວຽກ (Runtime)" + +#: ../source/specifications/virtual-environments.rst:20 +msgid "" +"At runtime, virtual environments can be identified by virtue " +"of :py:data:`sys.prefix` (the filesystem location of the running " +"interpreter) having a different value from :py:data:`sys.base_prefix` (the " +"default filesystem location of the standard library directories)." +msgstr "" +"ໃນເວລາເຮັດວຽກ, ສາມາດລະບຸສະພາບແວດລ້ອມສະເໝືອນໄດ້ໂດຍອາໄສຄ່າຂອງ :py:data:`sys.prefix` " +"(ຕຳແໜ່ງໃນລະບົບໄຟລ໌ຂອງອິນເຕີພຣີເຕີທີ່ກຳລັງເຮັດວຽກ) " +"ເຊິ່ງຈະມີຄ່າແຕກຕ່າງຈາກ :py:data:`sys.base_prefix` " +"(ຕຳແໜ່ງມາດຕະຖານໃນລະບົບໄຟລ໌ຂອງໄດເຣັກທໍຣີໄລບຣາຣີມາດຕະຖານ)." + +#: ../source/specifications/virtual-environments.rst:25 +msgid "" +":ref:`venv-explanation` in the Python standard library documentation for " +"the :py:mod:`venv` module covers this along with the concept of " +"\"activating\" a virtual environment in an interactive operating system " +"shell (this activation step is optional and hence the changes it makes can't " +"be reliably used to detect whether a Python program is running in a virtual " +"environment or not)." +msgstr "" +":ref:`venv-explanation` ໃນເອກະສານໄລບຣາຣີມາດຕະຖານຂອງ Python " +"ສຳລັບໂມດູນ :py:mod:`venv` ໄດ້ກວມເອົາເລື່ອງນີ້ ລວມທັງແນວຄວາມຄິດຂອງການ \"ເປີດໃຊ້\" " +"(activating) ສະພາບແວດລ້ອມສະເໝືອນໃນເຊລ (shell) ຂອງລະບົບປະຕິບັດການ " +"(ຂັ້ນຕອນການເປີດໃຊ້ນີ້ແມ່ນເປັນທາງເລືອກ, " +"ດັ່ງນັ້ນການປ່ຽນແປງທີ່ເກີດຂຶ້ນຈຶ່ງບໍ່ສາມາດໃຊ້ເພື່ອລະບຸໄດ້ຢ່າງໜ້າເຊື່ອຖືວ່າໂປຣແກຣມ Python " +"ກຳລັງເຮັດວຽກຢູ່ໃນສະພາບແວດລ້ອມສະເໝືອນຫຼືບໍ່)." + +#: ../source/specifications/virtual-environments.rst:33 +msgid "Declaring installation environments as Python virtual environments" +msgstr "ການປະກາດສະພາບແວດລ້ອມການຕິດຕັ້ງໃຫ້ເປັນສະພາບແວດລ້ອມສະເໝືອນຂອງ Python" + +#: ../source/specifications/virtual-environments.rst:35 +msgid "" +"As described in :pep:`405`, a Python virtual environment in its simplest " +"form consists of nothing more than a copy or symlink of the Python binary " +"accompanied by a ``site-packages`` directory and a ``pyvenv.cfg`` file with " +"a ``home`` key that indicates where to find the Python standard library " +"modules." +msgstr "" +"ຕາມທີ່ອະທິບາຍໄວ້ໃນ :pep:`405`, ສະພາບແວດລ້ອມສະເໝືອນຂອງ Python " +"ໃນຮູບແບບທີ່ງ່າຍທີ່ສຸດແມ່ນປະກອບດ້ວຍພຽງແຕ່ການກັອບປີ້ ຫຼື ຊິມລິງກ໌ (symlink) ຂອງໄຟລ໌ໄບນາຣີ Python " +"ພ້ອມກັບໄດເຣັກທໍຣີ ``site-packages`` ແລະ ໄຟລ໌ ``pyvenv.cfg`` ທີ່ມີຄີ (key) ຊື່ວ່າ ``home`` " +"ເຊິ່ງລະບຸບ່ອນທີ່ຈະຊອກຫາໂມດູນໄລບຣາຣີມາດຕະຖານຂອງ Python." + +#: ../source/specifications/virtual-environments.rst:40 +msgid "" +"While designed to meet the needs of the standard :py:mod:`venv` module, this " +"split installation and ``pyvenv.cfg`` file approach can be used by *any* " +"Python installation provider that desires Python-specific tools to be aware " +"that they are already operating in a virtual environment and no further " +"environment nesting is required or desired." +msgstr "" +"ເຖິງວ່າຈະຖືກອອກແບບມາເພື່ອຕອບສະໜອງຄວາມຕ້ອງການຂອງໂມດູນ :py:mod:`venv` ມາດຕະຖານ, " +"ແຕ່ການແຍກການຕິດຕັ້ງ ແລະ ການໃຊ້ໄຟລ໌ ``pyvenv.cfg`` ນີ້ ສາມາດຖືກນຳໃຊ້ໂດຍຜູ້ໃຫ້ບໍລິການຕິດຕັ້ງ " +"Python *ທຸກລາຍ* ທີ່ຕ້ອງການໃຫ້ເຄື່ອງມືສະເພາະຂອງ Python " +"ຮັບຮູ້ວ່າພວກມັນກຳລັງເຮັດວຽກຢູ່ໃນສະພາບແວດລ້ອມສະເໝືອນແລ້ວ ແລະ ບໍ່ຈຳເປັນ ຫຼື " +"ບໍ່ຕ້ອງການການຊ້ອນກັນຂອງສະພາບແວດລ້ອມອີກ." + +#: ../source/specifications/virtual-environments.rst:46 +msgid "" +"Even in the absence of a ``pyvenv.cfg`` file, any approach (e.g. " +"``sitecustomize.py``, patching the installed Python runtime) that results " +"in :py:data:`sys.prefix` and :py:data:`sys.base_prefix` having different " +"values, while still providing a matching default package installation scheme " +"in :py:mod:`sysconfig`, will be detected and behave as a Python virtual " +"environment." +msgstr "" +"ເຖິງແມ່ນວ່າຈະບໍ່ມີໄຟລ໌ ``pyvenv.cfg``, ວິທີການໃດກໍຕາມ (ເຊັ່ນ ``sitecustomize.py``, " +"ການແກ້ໄຂ Python runtime ທີ່ຕິດຕັ້ງໄວ້) ທີ່ເຮັດໃຫ້ຄ່າຂອງ :py:data:`sys.prefix` " +"ແລະ :py:data:`sys.base_prefix` ແຕກຕ່າງກັນ, " +"ໃນຂະນະທີ່ຍັງຄົງໃຫ້ຮູບແບບການຕິດຕັ້ງແພັກເກດມາດຕະຖານທີ່ກົງກັນໃນ :py:mod:`sysconfig`, " +"ຈະຖືກກວດພົບ ແລະ ເຮັດວຽກເປັນສະພາບແວດລ້ອມສະເໝືອນຂອງ Python." + +#: ../source/specifications/virtual-environments.rst:56 +msgid "May 2012: This specification was approved through :pep:`405`." +msgstr "ພຶດສະພາ 2012: ຂໍ້ກຳນົດນີ້ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`405`." + +#: ../source/specifications/well-known-project-urls.rst:5 +msgid "Well-known Project URLs in Metadata" +msgstr "URL ຂອງໂຄງການທີ່ເປັນທີ່ຮູ້ຈັກໃນເມຕາເດຕາ" + +#: ../source/specifications/well-known-project-urls.rst:9 +msgid "" +"This document is primarily of interest to metadata *consumers*, who should " +"use the normalization rules and well-known list below to make their " +"presentation of project URLs consistent across the Python ecosystem." +msgstr "" +"ເອກະສານນີ້ແມ່ນເນັ້ນໃສ່ *ຝ່າຍນຳໃຊ້* ເມຕາເດຕາ (consumers), " +"ເຊິ່ງຄວນໃຊ້ກົດເກນການເຮັດໃຫ້ເປັນມາດຕະຖານ ແລະ ລາຍຊື່ທີ່ເປັນທີ່ຮູ້ຈັກຢູ່ລຸ່ມນີ້ ເພື່ອເຮັດໃຫ້ການສະແດງຜົນ URL " +"ຂອງໂຄງການມີຄວາມສອດຄ່ອງກັນໃນທົ່ວລະບົບນິເວດຂອງ Python." + +#: ../source/specifications/well-known-project-urls.rst:14 +msgid "" +"Metadata *producers* (such as build tools and individual package " +"maintainers) may continue to use any labels they please, within the overall " +"``Project-URL`` length restrictions. However, when possible, users are " +"*encouraged* to pick meaningful labels that normalize to well-known labels." +msgstr "" +"*ຝ່າຍສ້າງ* ເມຕາເດຕາ (producers) (ເຊັ່ນ: ເຄື່ອງມືໃນການບິວ (build tools) ແລະ " +"ຜູ້ເບິ່ງແຍງແພັກເກດ) ສາມາດເລືອກໃຊ້ປ້າຍຊື່ (labels) ໃດກໍໄດ້ຕາມຄວາມຕ້ອງການ " +"ພາຍໃຕ້ຂໍ້ກຳນົດຄວາມຍາວຂອງ ``Project-URL``. ແນວໃດກໍຕາມ, ຖ້າເປັນໄປໄດ້, ຜູ້ໃຊ້ໄດ້ຮັບການ " +"*ສະໜັບສະໜູນ* ໃຫ້ເລືອກປ້າຍຊື່ທີ່ມີຄວາມໝາຍ ເຊິ່ງສາມາດປ່ຽນເປັນມາດຕະຖານໃຫ້ກົງກັບປ້າຍຊື່ທີ່ເປັນທີ່ຮູ້ຈັກໄດ້." + +#: ../source/specifications/well-known-project-urls.rst:22 +msgid "" +"See :ref:`Writing your pyproject.toml - urls ` " +"for user-oriented guidance on choosing project URL labels in your package's " +"metadata." +msgstr "" +"ເບິ່ງ :ref:`Writing your pyproject.toml - urls ` " +"ສຳລັບຄຳແນະນຳສຳລັບຜູ້ໃຊ້ໃນການເລືອກປ້າຍຊື່ URL ຂອງໂຄງການໃນເມຕາເດຕາຂອງແພັກເກດຂອງທ່ານ." + +#: ../source/specifications/well-known-project-urls.rst:26 +msgid "This specification was originally defined in :pep:`753`." +msgstr "ຂໍ້ກຳນົດສະເພາະນີ້ຖືກກຳນົດໄວ້ໃນເບື້ອງຕົ້ນໃນ :pep:`753`." + +#: ../source/specifications/well-known-project-urls.rst:28 +msgid "" +":pep:`753` deprecates the :ref:`core-metadata-home-page` and :ref:`core-" +"metadata-download-url` metadata fields in favor of :ref:`core-metadata-" +"project-url`, and defines a normalization and lookup procedure for " +"determining whether a ``Project-URL`` is \"well-known,\" i.e. has the " +"semantics assigned to ``Home-page``, ``Download-URL``, or other common " +"project URLs." +msgstr "" +":pep:`753` ຍົກເລີກການໃຊ້ຟິວເມຕາເດຕາ :ref:`core-metadata-home-page` " +"ແລະ :ref:`core-metadata-download-url` ໂດຍປ່ຽນມາໃຊ້ :ref:`core-metadata-project-" +"url` ແທນ, ແລະ ກຳນົດຂັ້ນຕອນການເຮັດໃຫ້ເປັນມາດຕະຖານ ລວມທັງການກວດສອບວ່າ ``Project-URL`` " +"ນັ້ນແມ່ນ \"ເປັນທີ່ຮູ້ຈັກ\" ຫຼື ບໍ່, ເຊັ່ນ: ມີຄວາມໝາຍດຽວກັນກັບ ``Home-page``, ``Download-URL`` " +"ຫຼື URL ອື່ນໆ ທີ່ໃຊ້ກັນທົ່ວໄປ." + +#: ../source/specifications/well-known-project-urls.rst:35 +msgid "" +"This allows indices (such as the Python Package Index) and other downstream " +"metadata consumers to present project URLs in a consistent manner." +msgstr "" +"ສິ່ງນີ້ຊ່ວຍໃຫ້ລະບົບດັດຊະນີ (ເຊັ່ນ: Python Package Index) ແລະ ຝ່າຍນຳໃຊ້ເມຕາເດຕາອື່ນໆ " +"ສາມາດສະແດງ URL ຂອງໂຄງການໃນຮູບແບບທີ່ສອດຄ່ອງກັນ." + +#: ../source/specifications/well-known-project-urls.rst:42 +msgid "Label normalization" +msgstr "ການເຮັດໃຫ້ປ້າຍຊື່ເປັນມາດຕະຖານ" + +#: ../source/specifications/well-known-project-urls.rst:46 +msgid "" +"Label normalization is performed by metadata *consumers*, not metadata " +"producers." +msgstr "" +"ການເຮັດໃຫ້ປ້າຍຊື່ເປັນມາດຕະຖານແມ່ນຖືກປະຕິບັດໂດຍ *ຝ່າຍນຳໃຊ້* ເມຕາເດຕາ, ບໍ່ແມ່ນຝ່າຍສ້າງເມຕາເດຕາ." + +#: ../source/specifications/well-known-project-urls.rst:49 +msgid "" +"To determine whether a ``Project-URL`` label is \"well-known,\" metadata " +"consumers should normalize the label before comparing it to the :ref:`list " +"of well-known labels `." +msgstr "" +"ເພື່ອລະບຸວ່າປ້າຍຊື່ ``Project-URL`` ແມ່ນ \"ເປັນທີ່ຮູ້ຈັກ\" ຫຼື ບໍ່, " +"ຝ່າຍນຳໃຊ້ເມຕາເດຕາຄວນເຮັດໃຫ້ປ້າຍຊື່ເປັນມາດຕະຖານກ່ອນ " +"ແລ້ວຈຶ່ງນຳໄປປຽບທຽບກັບ :ref:`ລາຍຊື່ປ້າຍຊື່ທີ່ເປັນທີ່ຮູ້ຈັກ `." + +#: ../source/specifications/well-known-project-urls.rst:53 +msgid "" +"The normalization procedure for ``Project-URL`` labels is defined by the " +"following Python function:" +msgstr "" +"ຂັ້ນຕອນການເຮັດໃຫ້ເປັນມາດຕະຖານສຳລັບປ້າຍຊື່ ``Project-URL`` ແມ່ນຖືກກຳນົດໂດຍຟັງຊັນ Python " +"ຕໍ່ໄປນີ້:" + +#: ../source/specifications/well-known-project-urls.rst:65 +msgid "" +"In plain language: a label is *normalized* by deleting all ASCII punctuation " +"and whitespace, and then converting the result to lowercase." +msgstr "" +"ເວົ້າແບບເຂົ້າໃຈງ່າຍໆ: ປ້າຍຊື່ຈະຖືກ *ເຮັດໃຫ້ເປັນມາດຕະຖານ* ໂດຍການລຶບເຄື່ອງໝາຍວັກຕອນ ASCII ແລະ " +"ຍະຫວ່າງທັງໝົດອອກ, ຈາກນັ້ນປ່ຽນຜົນໄດ້ຮັບໃຫ້ເປັນໂຕພິມນ້ອຍ." + +#: ../source/specifications/well-known-project-urls.rst:68 +msgid "" +"The following table shows examples of labels before (raw) and after " +"normalization:" +msgstr "ຕາຕະລາງຕໍ່ໄປນີ້ສະແດງຕົວຢ່າງຂອງປ້າຍຊື່ກ່ອນ (ຕົ້ນສະບັບ) ແລະ ຫຼັງການເຮັດໃຫ້ເປັນມາດຕະຖານ:" + +#: ../source/specifications/well-known-project-urls.rst:74 +msgid "Raw" +msgstr "ຕົ້ນສະບັບ" + +#: ../source/specifications/well-known-project-urls.rst:75 +msgid "Normalized" +msgstr "ມາດຕະຖານ" + +#: ../source/specifications/well-known-project-urls.rst:76 +msgid "``Homepage``" +msgstr "``Homepage``" + +#: ../source/specifications/well-known-project-urls.rst:77 +#: ../source/specifications/well-known-project-urls.rst:79 +#: ../source/specifications/well-known-project-urls.rst:81 +msgid "``homepage``" +msgstr "``homepage``" + +#: ../source/specifications/well-known-project-urls.rst:78 +msgid "``Home-page``" +msgstr "``Home-page``" + +#: ../source/specifications/well-known-project-urls.rst:80 +msgid "``Home page``" +msgstr "``Home page``" + +#: ../source/specifications/well-known-project-urls.rst:82 +msgid "``Change_Log``" +msgstr "``Change_Log``" + +#: ../source/specifications/well-known-project-urls.rst:83 +msgid "``changelog``" +msgstr "``changelog``" + +#: ../source/specifications/well-known-project-urls.rst:84 +msgid "``What's New?``" +msgstr "``What's New?``" + +#: ../source/specifications/well-known-project-urls.rst:85 +msgid "``whatsnew``" +msgstr "``whatsnew``" + +#: ../source/specifications/well-known-project-urls.rst:86 +#: ../source/specifications/well-known-project-urls.rst:87 +msgid "``github``" +msgstr "``github``" + +#: ../source/specifications/well-known-project-urls.rst:92 +msgid "Well-known labels" +msgstr "ປ້າຍຊື່ທີ່ເປັນທີ່ຮູ້ຈັກ" + +#: ../source/specifications/well-known-project-urls.rst:96 +msgid "" +"The list of well-known labels is a living standard, maintained as part of " +"this document." +msgstr "" +"ລາຍຊື່ຂອງປ້າຍຊື່ທີ່ເປັນທີ່ຮູ້ຈັກແມ່ນມາດຕະຖານທີ່ມີການປັບປຸງຢູ່ສະເໝີ, ເຊິ່ງຖືກເບິ່ງແຍງເປັນສ່ວນໜຶ່ງຂອງເອກະສານນີ້." + +#: ../source/specifications/well-known-project-urls.rst:99 +msgid "" +"The following table lists labels that are well-known for the purpose of " +"specializing the presentation of ``Project-URL`` metadata:" +msgstr "" +"ຕາຕະລາງຕໍ່ໄປນີ້ສະແດງລາຍຊື່ປ້າຍຊື່ທີ່ເປັນທີ່ຮູ້ຈັກ ເພື່ອຈຸດປະສົງໃນການກຳນົດການສະແດງຜົນຂໍ້ມູນເມຕາເດຕາຂອງ " +"``Project-URL``:" + +#: ../source/specifications/well-known-project-urls.rst:105 +msgid "Label (Human-readable equivalent)" +msgstr "ປ້າຍຊື່ (ຄຳອະທິບາຍທີ່ຄົນເຂົ້າໃຈໄດ້)" + +#: ../source/specifications/well-known-project-urls.rst:107 +msgid "Aliases" +msgstr "ຊື່ເອີ້ນອື່ນ" + +#: ../source/specifications/well-known-project-urls.rst:108 +msgid "``homepage`` (Homepage)" +msgstr "``homepage`` (ໜ້າຫຼັກ)" + +#: ../source/specifications/well-known-project-urls.rst:109 +msgid "The project's home page" +msgstr "ໜ້າຫຼັກຂອງໂຄງການ" + +#: ../source/specifications/well-known-project-urls.rst:110 +#: ../source/specifications/well-known-project-urls.rst:116 +#: ../source/specifications/well-known-project-urls.rst:122 +msgid "*(none)*" +msgstr "*(ບໍ່ມີ)*" + +#: ../source/specifications/well-known-project-urls.rst:111 +msgid "``source`` (Source Code)" +msgstr "``source`` (ຊອດໂຄ້ດ)" + +#: ../source/specifications/well-known-project-urls.rst:112 +msgid "The project's hosted source code or repository" +msgstr "ບ່ອນເກັບຊອດໂຄ້ດ ຫຼື ຄັງເກັບ (repository) ຂອງໂຄງການ" + +#: ../source/specifications/well-known-project-urls.rst:113 +msgid "``repository``, ``sourcecode``, ``github``" +msgstr "``repository``, ``sourcecode``, ``github``" + +#: ../source/specifications/well-known-project-urls.rst:114 +msgid "``download`` (Download)" +msgstr "``download`` (ດາວໂຫຼດ)" + +#: ../source/specifications/well-known-project-urls.rst:115 +msgid "" +"A download URL for the current distribution, equivalent to ``Download-URL``" +msgstr "URL ສຳລັບດາວໂຫຼດເວີຊັນທີ່ມີການແຈກຢາຍໃນປັດຈຸບັນ, ມີຄ່າເທົ່າກັບ ``Download-URL``" + +#: ../source/specifications/well-known-project-urls.rst:117 +msgid "``changelog`` (Changelog)" +msgstr "``changelog`` (ບັນທຶກການປ່ຽນແປງ)" + +#: ../source/specifications/well-known-project-urls.rst:118 +msgid "The project's comprehensive changelog" +msgstr "ບັນທຶກການປ່ຽນແປງທີ່ລະອຽດຂອງໂຄງການ" + +#: ../source/specifications/well-known-project-urls.rst:119 +msgid "``changes``, ``whatsnew``, ``history``" +msgstr "``changes``, ``whatsnew``, ``history``" + +#: ../source/specifications/well-known-project-urls.rst:120 +msgid "``releasenotes`` (Release Notes)" +msgstr "``releasenotes`` (ບັນທຶກການປ່ອຍເວີຊັນ)" + +#: ../source/specifications/well-known-project-urls.rst:121 +msgid "The project's curated release notes" +msgstr "ບັນທຶກການປ່ອຍເວີຊັນທີ່ຄັດກອງມາແລ້ວຂອງໂຄງການ" + +#: ../source/specifications/well-known-project-urls.rst:123 +msgid "``documentation`` (Documentation)" +msgstr "``documentation`` (ເອກະສານອ້າງອີງ)" + +#: ../source/specifications/well-known-project-urls.rst:124 +msgid "The project's online documentation" +msgstr "ເອກະສານອ້າງອີງແບບອອນໄລນ໌ຂອງໂຄງການ" + +#: ../source/specifications/well-known-project-urls.rst:125 +msgid "``docs``" +msgstr "``docs``" + +#: ../source/specifications/well-known-project-urls.rst:126 +msgid "``issues`` (Issue Tracker)" +msgstr "``issues`` (ລະບົບຕິດຕາມບັນຫາ)" + +#: ../source/specifications/well-known-project-urls.rst:127 +msgid "The project's bug tracker" +msgstr "ລະບົບຕິດຕາມບັກ (bug) ຂອງໂຄງການ" + +#: ../source/specifications/well-known-project-urls.rst:128 +msgid "``bugs``, ``issue``, ``tracker``, ``issuetracker``, ``bugtracker``" +msgstr "``bugs``, ``issue``, ``tracker``, ``issuetracker``, ``bugtracker``" + +#: ../source/specifications/well-known-project-urls.rst:129 +msgid "``funding`` (Funding)" +msgstr "``funding`` (ການລະດົມທຶນ)" + +#: ../source/specifications/well-known-project-urls.rst:130 +msgid "Funding Information" +msgstr "ຂໍ້ມູນການລະດົມທຶນ" + +#: ../source/specifications/well-known-project-urls.rst:131 +msgid "``sponsor``, ``donate``, ``donation``" +msgstr "``sponsor``, ``donate``, ``donation``" + +#: ../source/specifications/well-known-project-urls.rst:133 +msgid "" +"Package metadata consumers may choose to render aliased labels the same as " +"their \"parent\" well known label, or further specialize them." +msgstr "" +"ຝ່າຍນຳໃຊ້ເມຕາເດຕາຂອງແພັກເກດອາດເລືອກສະແດງຜົນຊື່ເອີ້ນອື່ນ (aliased labels) " +"ໃຫ້ຄືກັບປ້າຍຊື່ຫຼັກທີ່ເປັນທີ່ຮູ້ຈັກ ຫຼື ອາດຈະກຳນົດຮູບແບບສະເພາະໃຫ້ພວກມັນກໍໄດ້." + +#: ../source/specifications/well-known-project-urls.rst:137 +msgid "Example behavior" +msgstr "ຕົວຢ່າງພຶດຕິກຳການເຮັດງານ" + +#: ../source/specifications/well-known-project-urls.rst:139 +msgid "" +"The following shows the flow of project URL metadata from ``pyproject.toml`` " +"to core metadata to a potential index presentation:" +msgstr "" +"ຕໍ່ໄປນີ້ແມ່ນການສະແດງຂັ້ນຕອນການສົ່ງຂໍ້ມູນ URL ຈາກ ``pyproject.toml`` ໄປຫາເມຕາເດຕາຫຼັກ " +"ຈົນເຖິງການສະແດງຜົນໃນໜ້າດັດຊະນີ:" + +#: ../source/specifications/well-known-project-urls.rst:142 +msgid "Example project URLs in standard configuration" +msgstr "ຕົວຢ່າງ URL ຂອງໂຄງການໃນການຕັ້ງຄ່າມາດຕະຖານ" + +#: ../source/specifications/well-known-project-urls.rst:151 +msgid "Core metadata representation" +msgstr "ຮູບແບບໃນເມຕາເດຕາຫຼັກ" + +#: ../source/specifications/well-known-project-urls.rst:159 +msgid "Potential rendering" +msgstr "ການສະແດງຜົນທີ່ອາດຈະເປັນໄປໄດ້" + +#: ../source/specifications/well-known-project-urls.rst:167 +msgid "" +"Observe that the core metadata appears in the form provided by the user " +"(since metadata *producers* do not perform normalization), but the metadata " +"*consumer* normalizes and identifies appropriate human-readable equivalents " +"based on the normalized form:" +msgstr "" +"ສັງເກດວ່າເມຕາເດຕາຫຼັກຈະປາກົດໃນຮູບແບບທີ່ຜູ້ໃຊ້ປ້ອນເຂົ້າມາ (ເນື່ອງຈາກ *ຝ່າຍສ້າງ* " +"ເມຕາເດຕາບໍ່ໄດ້ເຮັດໃຫ້ເປັນມາດຕະຖານ), ແຕ່ *ຝ່າຍນຳໃຊ້* ເມຕາເດຕາຈະເຮັດໃຫ້ເປັນມາດຕະຖານ ແລະ " +"ລະບຸຄຳອະທິບາຍທີ່ຄົນເຂົ້າໃຈໄດ້ຕາມຮູບແບບທີ່ປ່ຽນແລ້ວ:" + +#: ../source/specifications/well-known-project-urls.rst:172 +msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" +msgstr "``Home page`` ກາຍເປັນ ``homepage``, ເຊິ່ງຈະສະແດງຜົນເປັນ ``Homepage``" + +#: ../source/specifications/well-known-project-urls.rst:173 +msgid "" +"``DOCUMENTATION`` becomes ``documentation``, which is rendered as " +"``Documentation``" +msgstr "" +"``DOCUMENTATION`` ກາຍເປັນ ``documentation``, ເຊິ່ງຈະສະແດງຜົນເປັນ ``Documentation``" + +#: ../source/specifications/well-known-project-urls.rst:174 +msgid "" +"``Repository`` becomes ``repository``, which is rendered as ``Source Code``" +msgstr "``Repository`` ກາຍເປັນ ``repository``, ເຊິ່ງຈະສະແດງຜົນເປັນ ``Source Code``" + +#: ../source/specifications/well-known-project-urls.rst:175 +msgid "" +"``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " +"(as a specialization of ``Source Code``)" +msgstr "" +"``GitHub`` ກາຍເປັນ ``github``, ເຊິ່ງຈະສະແດງຜົນເປັນ ``Source Code (GitHub)`` " +"(ໃນຖານະເປັນຮູບແບບສະເພາະຂອງ ``Source Code``)" + +#: ../source/support.rst:3 +msgid "How to Get Support" +msgstr "ວິທີການຂໍຄວາມຊ່ວຍເຫຼືອ" + +#: ../source/support.rst:5 +msgid "" +"For support related to a specific project, see the links on " +"the :doc:`Projects ` page." +msgstr "" +"ສຳລັບຄວາມຊ່ວຍເຫຼືອທີ່ກ່ຽວຂ້ອງກັບໂຄງການໃດໜຶ່ງໂດຍສະເພາະ, ໃຫ້ເບິ່ງລິ້ງໃນໜ້າ :doc:`Projects " +"`." + +#: ../source/support.rst:8 +msgid "" +"For something more general, or when you're just not sure, please `open an " +"issue `_ on the `packaging-problems `_ repository on GitHub." +msgstr "" +"ສຳລັບເລື່ອງທົ່ວໄປ ຫຼື ເມື່ອທ່ານບໍ່ແນ່ໃຈ, ກະລຸນາ `ສ້າງ issue ໃໝ່ `_ ໃນຄັງເກັບ " +"`packaging-problems `_ ໃນ GitHub." + +#: ../source/tutorials/creating-documentation.rst:4 +msgid "Creating documentation" +msgstr "ການສ້າງເອກະສານອ້າງອີງ" + +#: ../source/tutorials/creating-documentation.rst:6 +msgid "" +"This tutorial has been removed since it is not related to packaging and was " +"unmaintained. Please see the `Sphinx tutorial `_ instead." +msgstr "" +"ບົດຮຽນນີ້ຖືກຍ້າຍອອກແລ້ວ ເນື່ອງຈາກມັນບໍ່ກ່ຽວຂ້ອງກັບການເຮັດແພັກເກດ ແລະ ບໍ່ມີການເບິ່ງແຍງຕໍ່. ກະລຸນາເບິ່ງ " +"`Sphinx tutorial `_ ແທນ." + +#: ../source/tutorials/index.rst:4 +msgid "" +"**Tutorials** are opinionated step-by-step guides to help you get familiar " +"with packaging concepts. For more detailed information on specific packaging " +"topics, see :doc:`/guides/index`." +msgstr "" +"**ບົດຮຽນ (Tutorials)** ແມ່ນຄຳແນະນຳແບບເທື່ອລະຂັ້ນຕອນ " +"ເພື່ອຊ່ວຍໃຫ້ທ່ານຄຸ້ນເຄີຍກັບແນວຄວາມຄິດຂອງການເຮັດແພັກເກດ. ສຳລັບຂໍ້ມູນລະອຽດເພີ່ມເຕີມໃນຫົວຂໍ້ສະເພາະ, " +"ໃຫ້ເບິ່ງ :doc:`/guides/index`." + +#: ../source/tutorials/installing-packages.rst:5 +msgid "Installing Packages" +msgstr "ການຕິດຕັ້ງແພັກເກດ" + +#: ../source/tutorials/installing-packages.rst:7 +msgid "" +"This section covers the basics of how to install Python :term:`packages " +"`." +msgstr "" +"ພາກສ່ວນນີ້ກວມເອົາພື້ນຖານກ່ຽວກັບວິທີການຕິດຕັ້ງ :term:`ແພັກເກດ (packages) ` ຂອງ Python." + +#: ../source/tutorials/installing-packages.rst:10 +msgid "" +"It's important to note that the term \"package\" in this context is being " +"used to describe a bundle of software to be installed (i.e. as a synonym for " +"a :term:`distribution `). It does not refer to the " +"kind of :term:`package ` that you import in your Python " +"source code (i.e. a container of modules). It is common in the Python " +"community to refer to a :term:`distribution ` using " +"the term \"package\". Using the term \"distribution\" is often not " +"preferred, because it can easily be confused with a Linux distribution, or " +"another larger software distribution like Python itself." +msgstr "" +"ສິ່ງສຳຄັນທີ່ຄວນຮູ້ຄື ຄຳວ່າ \"ແພັກເກດ (package)\" ໃນສະພາບການນີ້ " +"ແມ່ນໃຊ້ເພື່ອໝາຍເຖິງກຸ່ມຊອບແວທີ່ຈະຕິດຕັ້ງ (ຫຼື ເປັນຄຳໄວພົດຂອງ :term:`ການແຈກຢາຍ (distribution) " +"`). ມັນບໍ່ໄດ້ໝາຍເຖິງ :term:`ແພັກເກດ ` ທີ່ທ່ານ " +"import ໃນຊອດໂຄ້ດ Python (ເຊິ່ງເປັນບ່ອນເກັບໂມດູນ). ໃນກຸ່ມຜູ້ໃຊ້ Python " +"ມັກຈະເອີ້ນ :term:`ການແຈກຢາຍ (distribution) ` ວ່າ " +"\"ແພັກເກດ\". ການໃຊ້ຄຳວ່າ \"distribution\" ມັກຈະບໍ່ເປັນທີ່ນິຍົມ ເພາະມັນອາດເຮັດໃຫ້ສັບສົນກັບ " +"Linux distribution ຫຼື ການແຈກຢາຍຊອບແວຂະໜາດໃຫຍ່ອື່ນໆ ເຊັ່ນ ໂຕພາສາ Python ເອງ." + +#: ../source/tutorials/installing-packages.rst:24 +msgid "Requirements for Installing Packages" +msgstr "ສິ່ງທີ່ຈຳເປັນຕ້ອງມີກ່ອນການຕິດຕັ້ງແພັກເກດ" + +#: ../source/tutorials/installing-packages.rst:26 +msgid "" +"This section describes the steps to follow before installing other Python " +"packages." +msgstr "ພາກສ່ວນນີ້ອະທິບາຍຂັ້ນຕອນທີ່ຄວນເຮັດ ກ່ອນທີ່ຈະຕິດຕັ້ງແພັກເກດ Python ອື່ນໆ." + +#: ../source/tutorials/installing-packages.rst:31 +msgid "Ensure you can run Python from the command line" +msgstr "ກວດສອບໃຫ້ແນ່ໃຈວ່າທ່ານສາມາດລັນ Python ຈາກບັນທັດຄຳສັ່ງ (command line) ໄດ້" + +#: ../source/tutorials/installing-packages.rst:33 +msgid "" +"Before you go any further, make sure you have Python and that the expected " +"version is available from your command line. You can check this by running:" +msgstr "" +"ກ່ອນຈະໄປຂັ້ນຕອນຕໍ່ໄປ, ໃຫ້ແນ່ໃຈວ່າທ່ານມີ Python ແລະ " +"ເວີຊັນທີ່ຕ້ອງການສາມາດໃຊ້ງານໄດ້ຈາກບັນທັດຄຳສັ່ງຂອງທ່ານ. ທ່ານສາມາດກວດສອບໄດ້ໂດຍການລັນ:" + +#: ../source/tutorials/installing-packages.rst:49 +msgid "" +"You should get some output like ``Python 3.6.3``. If you do not have Python, " +"please install the latest 3.x version from `python.org`_ or refer to " +"the :ref:`Installing Python ` section of the " +"Hitchhiker's Guide to Python." +msgstr "" +"ທ່ານຄວນຈະເຫັນຂໍ້ຄວາມສະແດງຜົນປະມານວ່າ ``Python 3.6.3``. ຖ້າທ່ານຍັງບໍ່ມີ Python, " +"ກະລຸນາຕິດຕັ້ງເວີຊັນ 3.x ລ່າສຸດຈາກ `python.org`_ ຫຼື ອ້າງອີງຈາກພາກສ່ວນ :ref:`Installing " +"Python ` ໃນ Hitchhiker's Guide to Python." + +#: ../source/tutorials/installing-packages.rst:53 +msgid "If you're a newcomer and you get an error like this:" +msgstr "ຖ້າທ່ານເປັນມືໃໝ່ ແລະ ພົບຂໍ້ຜິດພາດແບບນີ້:" + +#: ../source/tutorials/installing-packages.rst:62 +msgid "" +"It's because this command and other suggested commands in this tutorial are " +"intended to be run in a *shell* (also called a *terminal* or *console*). See " +"the Python for Beginners `getting started tutorial`_ for an introduction to " +"using your operating system's shell and interacting with Python." +msgstr "" +"ນັ້ນເປັນເພາະວ່າຄຳສັ່ງນີ້ ແລະ ຄຳສັ່ງອື່ນໆ ທີ່ແນະນຳໃນບົດຮຽນນີ້ ແມ່ນມີໄວ້ເພື່ອລັນໃນ *shell* (ຫຼື ເອີ້ນວ່າ " +"*terminal* ຫຼື *console*). ເບິ່ງ `ບົດຮຽນເລີ່ມຕົ້ນ (getting started tutorial)`_ " +"ສຳລັບມືໃໝ່ ເພື່ອຮຽນຮູ້ການໃຊ້ shell ຂອງລະບົບປະຕິບັດການ ແລະ ການໂຕ້ຕອບກັບ Python." + +#: ../source/tutorials/installing-packages.rst:68 +msgid "" +"If you're using an enhanced shell like IPython or the Jupyter notebook, you " +"can run system commands like those in this tutorial by prefacing them with a " +"``!`` character:" +msgstr "" +"ຖ້າທ່ານກຳລັງໃຊ້ shell ທີ່ໄດ້ຮັບການປັບປຸງມາແລ້ວ ເຊັ່ນ IPython ຫຼື Jupyter notebook, " +"ທ່ານສາມາດລັນຄຳສັ່ງລະບົບຄືກັບໃນບົດຮຽນນີ້ໄດ້ ໂດຍການຕື່ມເຄື່ອງໝາຍ ``!`` ໄວ້ທາງໜ້າ:" + +#: ../source/tutorials/installing-packages.rst:78 +msgid "" +"It's recommended to write ``{sys.executable}`` rather than plain ``python`` " +"in order to ensure that commands are run in the Python installation matching " +"the currently running notebook (which may not be the same Python " +"installation that the ``python`` command refers to)." +msgstr "" +"ແນະນຳໃຫ້ຂຽນ ``{sys.executable}`` ແທນທີ່ຈະເປັນ ``python`` ທຳມະດາ ເພື່ອໃຫ້ແນ່ໃຈວ່າ " +"ຄຳສັ່ງຖືກລັນໃນ Python ໂຕທີ່ກົງກັບ notebook ທີ່ກຳລັງໃຊ້ງານຢູ່ (ເຊິ່ງອາດຈະບໍ່ແມ່ນ Python ໂຕດຽວກັບ " +"ທີ່ຄຳສັ່ງ ``python`` ອ້າງເຖິງ)." + +#: ../source/tutorials/installing-packages.rst:83 +msgid "" +"Due to the way most Linux distributions are handling the Python 3 migration, " +"Linux users using the system Python without creating a virtual environment " +"first should replace the ``python`` command in this tutorial with " +"``python3`` and the ``python -m pip`` command with ``python3 -m pip --" +"user``. Do *not* run any of the commands in this tutorial with ``sudo``: if " +"you get a permissions error, come back to the section on creating virtual " +"environments, set one up, and then continue with the tutorial as written." +msgstr "" +"ເນື່ອງຈາກວິທີທີ່ Linux distribution ສ່ວນໃຫຍ່ຈັດການກັບການປ່ຽນມາໃຊ້ Python 3, ຜູ້ໃຊ້ Linux " +"ທີ່ໃຊ້ Python ຂອງລະບົບໂດຍບໍ່ໄດ້ສ້າງສະພາບແວດລ້ອມສະເໝືອນ (virtual environment) ກ່ອນ " +"ຄວນປ່ຽນຄຳສັ່ງ ``python`` ໃນບົດຮຽນນີ້ເປັນ ``python3`` ແລະ ປ່ຽນ ``python -m pip`` ເປັນ " +"``python3 -m pip --user``. **ຫ້າມ** ລັນຄຳສັ່ງໃດໆ ໃນບົດຮຽນນີ້ດ້ວຍ ``sudo``: " +"ຖ້າທ່ານພົບຂໍ້ຜິດພາດກ່ຽວກັບສິດການໃຊ້ງານ (permissions error), " +"ໃຫ້ກັບໄປເບິ່ງພາກສ່ວນການສ້າງສະພາບແວດລ້ອມສະເໝືອນ, ຕັ້ງຄ່າມັນໃຫ້ຮຽບຮ້ອຍ, ແລ້ວຈຶ່ງເຮັດຕາມບົດຮຽນຕໍ່." + +#: ../source/tutorials/installing-packages.rst:95 +msgid "Ensure you can run pip from the command line" +msgstr "ກວດສອບໃຫ້ແນ່ໃຈວ່າທ່ານສາມາດລັນ pip ຈາກບັນທັດຄຳສັ່ງໄດ້" + +#: ../source/tutorials/installing-packages.rst:97 +msgid "" +"Additionally, you'll need to make sure you have :ref:`pip` available. You " +"can check this by running:" +msgstr "" +"ນອກຈາກນັ້ນ, ທ່ານຕ້ອງໝັ້ນໃຈວ່າທ່ານມີ :ref:`pip` ພ້ອມໃຊ້ງານ. ທ່ານສາມາດກວດສອບໄດ້ໂດຍການລັນ:" + +#: ../source/tutorials/installing-packages.rst:112 +msgid "" +"If you installed Python from source, with an installer from `python.org`_, " +"or via `Homebrew`_ you should already have pip. If you're on Linux and " +"installed using your OS package manager, you may have to install pip " +"separately, see :doc:`/guides/installing-using-linux-tools`." +msgstr "" +"ຖ້າທ່ານຕິດຕັ້ງ Python ຈາກຊອດໂຄ້ດ, ຕິດຕັ້ງດ້ວຍໂຕຕິດຕັ້ງຈາກ `python.org`_, ຫຼື ຜ່ານ " +"`Homebrew`_, ທ່ານຄວນຈະມີ pip ຢູ່ແລ້ວ. ຖ້າທ່ານໃຊ້ Linux ແລະ " +"ຕິດຕັ້ງຜ່ານໂຕຈັດການແພັກເກດຂອງລະບົບ (OS package manager), ທ່ານອາດຈະຕ້ອງຕິດຕັ້ງ pip " +"ແຍກຕ່າງຫາກ, ເບິ່ງ :doc:`/guides/installing-using-linux-tools`." + +#: ../source/tutorials/installing-packages.rst:119 +msgid "" +"If ``pip`` isn't already installed, then first try to bootstrap it from the " +"standard library:" +msgstr "" +"ຖ້າ ``pip`` ຍັງບໍ່ໄດ້ຕິດຕັ້ງ, ໃຫ້ລອງຕິດຕັ້ງເບື້ອງຕົ້ນ (bootstrap) ຈາກໄລບຣາຣີມາດຕະຖານ " +"(standard library):" + +#: ../source/tutorials/installing-packages.rst:134 +msgid "If that still doesn't allow you to run ``python -m pip``:" +msgstr "ຖ້າຫາກຍັງບໍ່ສາມາດລັນ ``python -m pip`` ໄດ້:" + +#: ../source/tutorials/installing-packages.rst:136 +msgid "" +"Securely Download `get-pip.py `_ [1]_" +msgstr "" +"ດາວໂຫຼດ `get-pip.py `_ ຢ່າງປອດໄພ [1]_" + +#: ../source/tutorials/installing-packages.rst:139 +msgid "" +"Run ``python get-pip.py``. [2]_ This will install or upgrade pip. " +"Additionally, it may install :ref:`setuptools` and :ref:`wheel` if they're " +"not installed already." +msgstr "" +"ລັນ ``python get-pip.py``. [2]_ ສິ່ງນີ້ຈະຕິດຕັ້ງ ຫຼື ອັບເກຣດ pip. ນອກຈາກນັ້ນ, " +"ມັນອາດຈະຕິດຕັ້ງ :ref:`setuptools` ແລະ :ref:`wheel` ຖ້າຍັງບໍ່ມີ." + +#: ../source/tutorials/installing-packages.rst:145 +msgid "" +"Be cautious if you're using a Python install that's managed by your " +"operating system or another package manager. get-pip.py does not coordinate " +"with those tools, and may leave your system in an inconsistent state. You " +"can use ``python get-pip.py --prefix=/usr/local/`` to install in ``/usr/" +"local`` which is designed for locally-installed software." +msgstr "" +"ຄວນລະມັດລະວັງຖ້າທ່ານໃຊ້ Python ທີ່ຖືກຈັດການໂດຍລະບົບປະຕິບັດການ ຫຼື ໂຕຈັດການແພັກເກດອື່ນ. get-" +"pip.py ບໍ່ໄດ້ເຮັດວຽກປະສານກັບເຄື່ອງມືເຫຼົ່ານັ້ນ ແລະ ອາດເຮັດໃຫ້ລະບົບຂອງທ່ານບໍ່ມີຄວາມສະຖຽນ. " +"ທ່ານສາມາດໃຊ້ ``python get-pip.py --prefix=/usr/local/`` ເພື່ອຕິດຕັ້ງໃນ ``/usr/" +"local`` ເຊິ່ງອອກແບບມາສຳລັບຊອບແວທີ່ຕິດຕັ້ງພາຍໃນເຄື່ອງເອງ." + +#: ../source/tutorials/installing-packages.rst:154 +msgid "Ensure pip is up to date" +msgstr "ກວດສອບໃຫ້ແນ່ໃຈວ່າ pip ເປັນເວີຊັນລ່າສຸດ" + +#: ../source/tutorials/installing-packages.rst:156 +msgid "" +"Make sure you have the latest features and fixes, and support for the latest " +"Python packaging specifications." +msgstr "" +"ເພື່ອໃຫ້ແນ່ໃຈວ່າທ່ານມີຟີເຈີໃໝ່ ແລະ ການແກ້ໄຂບັກລ່າສຸດ ລວມທັງການຮອງຮັບຂໍ້ກຳນົດຂອງ Python " +"packaging ລ່າສຸດ." + +#: ../source/tutorials/installing-packages.rst:172 +msgid "Optionally, create a virtual environment" +msgstr "ສ້າງສະພາບແວດລ້ອມສະເໝືອນ (ທາງເລືອກ)" + +#: ../source/tutorials/installing-packages.rst:174 +msgid "" +"See :ref:`section below ` for " +"details, but here's the basic :doc:`venv ` [3]_ command " +"to use on a typical Linux system:" +msgstr "" +"ເບິ່ງ :ref:`ພາກສ່ວນລຸ່ມນີ້ ` ສຳລັບລາຍລະອຽດ, " +"ແຕ່ ນີ້ແມ່ນຄຳສັ່ງພື້ນຖານຂອງ :doc:`venv ` [3]_ ສຳລັບລະບົບ Linux " +"ທົ່ວໄປ:" + +#: ../source/tutorials/installing-packages.rst:191 +msgid "" +"This will create a new virtual environment in the ``tutorial_env`` " +"subdirectory, and configure the current shell to use it as the default " +"``python`` environment." +msgstr "" +"ສິ່ງນີ້ຈະສ້າງສະພາບແວດລ້ອມສະເໝືອນໃໝ່ໃນໂຟນເດີຍ່ອຍ ``tutorial_env``, ແລະ ຕັ້ງຄ່າ shell " +"ປັດຈຸບັນໃຫ້ໃຊ້ສະພາບແວດລ້ອມນັ້ນເປັນ ``python`` ຫຼັກ." + +#: ../source/tutorials/installing-packages.rst:198 +msgid "Creating Virtual Environments" +msgstr "ການສ້າງສະພາບແວດລ້ອມສະເໝືອນ (Virtual Environments)" + +#: ../source/tutorials/installing-packages.rst:200 +msgid "" +"Python \"Virtual Environments\" allow Python :term:`packages ` to be installed in an isolated location for a particular " +"application, rather than being installed globally. If you are looking to " +"safely install global command line tools, see :doc:`/guides/installing-stand-" +"alone-command-line-tools`." +msgstr "" +"\"ສະພາບແວດລ້ອມສະເໝືອນ (Virtual Environments)\" ຂອງ Python " +"ຊ່ວຍໃຫ້ສາມາດຕິດຕັ້ງ :term:`ແພັກເກດ (packages) ` " +"ແຍກໄວ້ໃນບ່ອນສະເພາະສຳລັບແຕ່ລະແອັບພລິເຄຊັນ, ແທນທີ່ຈະຕິດຕັ້ງລວມກັນໃນລະບົບ. " +"ຖ້າທ່ານຕ້ອງການຕິດຕັ້ງເຄື່ອງມືບັນທັດຄຳສັ່ງແບບທົ່ວລະບົບຢ່າງປອດໄພ, ໃຫ້ເບິ່ງ :doc:`/guides/" +"installing-stand-alone-command-line-tools`." + +#: ../source/tutorials/installing-packages.rst:206 +msgid "" +"Imagine you have an application that needs version 1 of LibFoo, but another " +"application requires version 2. How can you use both these applications? If " +"you install everything into /usr/lib/python3.6/site-packages (or whatever " +"your platform’s standard location is), it’s easy to end up in a situation " +"where you unintentionally upgrade an application that shouldn’t be upgraded." +msgstr "" +"ລອງນຶກພາບວ່າທ່ານມີແອັບຯໜຶ່ງທີ່ຕ້ອງການ LibFoo ເວີຊັນ 1, ແຕ່ອີກແອັບຯໜຶ່ງຕ້ອງການເວີຊັນ 2. " +"ທ່ານຈະໃຊ້ທັງສອງແອັບຯນີ້ໄດ້ແນວໃດ? ຖ້າທ່ານຕິດຕັ້ງທຸກຢ່າງລົງໃນ /usr/lib/python3.6/site-" +"packages (ຫຼື ບ່ອນເກັບມາດຕະຖານຂອງລະບົບ), " +"ມັນເປັນໄປໄດ້ສູງທີ່ທ່ານຈະເຜີອັບເກຣດແອັບຯທີ່ບໍ່ຄວນອັບເກຣດໂດຍບໍ່ຕັ້ງໃຈ." + +#: ../source/tutorials/installing-packages.rst:212 +msgid "" +"Or more generally, what if you want to install an application and leave it " +"be? If an application works, any change in its libraries or the versions of " +"those libraries can break the application." +msgstr "" +"ຫຼື ເວົ້າລວມໆ ກໍຄື, ຖ້າທ່ານຕ້ອງການຕິດຕັ້ງແອັບຯໃດໜຶ່ງແລ້ວໃຫ້ມັນເຮັດວຽກໄດ້ຕະຫຼອດໄປ? " +"ຖ້າແອັບຯໃດໜຶ່ງເຮັດວຽກໄດ້ດີຢູ່ແລ້ວ, ການປ່ຽນແປງໃດໆ ໃນໄລບຣາຣີ ຫຼື ເວີຊັນຂອງໄລບຣາຣີເຫຼົ່ານັ້ນ " +"ກໍອາດຈະເຮັດໃຫ້ແອັບຯນັ້ນໃຊ້ງານບໍ່ໄດ້." + +#: ../source/tutorials/installing-packages.rst:216 +msgid "" +"Also, what if you can’t install :term:`packages ` into " +"the global site-packages directory? For instance, on a shared host." +msgstr "" +"ນອກຈາກນັ້ນ, ຖ້າທ່ານບໍ່ສາມາດຕິດຕັ້ງ :term:`ແພັກເກດ ` ລົງໃນໄດເຣັກທໍຣີ " +"site-packages ຂອງລະບົບໄດ້? ເຊັ່ນ: ໃນ shared host." + +#: ../source/tutorials/installing-packages.rst:219 +msgid "" +"In all these cases, virtual environments can help you. They have their own " +"installation directories and they don’t share libraries with other virtual " +"environments." +msgstr "" +"ໃນທຸກກໍລະນີທີ່ກ່າວມາ, ສະພາບແວດລ້ອມສະເໝືອນສາມາດຊ່ວຍທ່ານໄດ້. " +"ພວກມັນມີໄດເຣັກທໍຣີການຕິດຕັ້ງເປັນຂອງຕົນເອງ ແລະ ບໍ່ໄດ້ໃຊ້ໄລບຣາຣີຮ່ວມກັບສະພາບແວດລ້ອມສະເໝືອນອື່ນໆ." + +#: ../source/tutorials/installing-packages.rst:223 +msgid "" +"Currently, there are two common tools for creating Python virtual " +"environments:" +msgstr "ໃນປັດຈຸບັນ, ມີເຄື່ອງມືຍອດນິຍົມ 2 ຢ່າງໃນການສ້າງສະພາບແວດລ້ອມສະເໝືອນຂອງ Python:" + +#: ../source/tutorials/installing-packages.rst:225 +msgid "" +":doc:`venv ` is available by default in Python 3.3 and " +"later, and installs :ref:`pip` into created virtual environments in Python " +"3.4 and later (Python versions prior to 3.12 also " +"installed :ref:`setuptools`)." +msgstr "" +":doc:`venv ` ມີໃຫ້ໃຊ້ຕັ້ງແຕ່ຕອນຕົ້ນໃນ Python 3.3 ຂຶ້ນໄປ, ແລະ " +"ຈະຕິດຕັ້ງ :ref:`pip` ໃຫ້ອັດຕະໂນມັດໃນ Python 3.4 ຂຶ້ນໄປ (ເວີຊັນກ່ອນ 3.12 " +"ຍັງຕິດຕັ້ງ :ref:`setuptools` ໃຫ້ອີກດ້ວຍ)." + +#: ../source/tutorials/installing-packages.rst:228 +msgid "" +":ref:`virtualenv` needs to be installed separately, but supports Python 2.7+ " +"and Python 3.3+, and :ref:`pip`, :ref:`setuptools` and :ref:`wheel` are " +"installed into created virtual environments by default. Note that " +"``setuptools`` is no longer included by default starting with Python 3.12 " +"(and ``virtualenv`` follows this behavior)." +msgstr "" +":ref:`virtualenv` ຕ້ອງໄດ້ຕິດຕັ້ງແຍກຕ່າງຫາກ, ແຕ່ຮອງຮັບ Python 2.7+ ແລະ 3.3+, " +"ໂດຍຈະຕິດຕັ້ງ :ref:`pip`, :ref:`setuptools` ແລະ :ref:`wheel` ໃຫ້ອັດຕະໂນມັດ. ໝາຍເຫດ: " +"``setuptools`` ຈະບໍ່ຖືກລວມເຂົ້າຕັ້ງແຕ່ Python 3.12 ເປັນຕົ້ນໄປ (ເຊິ່ງ ``virtualenv`` " +"ກໍເຮັດຕາມນັ້ນ)." + +#: ../source/tutorials/installing-packages.rst:233 +msgid "The basic usage is like so:" +msgstr "ການໃຊ້ງານພື້ນຖານແມ່ນເຮັດແບບນີ້:" + +#: ../source/tutorials/installing-packages.rst:235 +msgid "Using :doc:`venv `:" +msgstr "ການໃຊ້ :doc:`venv `:" + +#: ../source/tutorials/installing-packages.rst:251 +msgid "Using :ref:`virtualenv`:" +msgstr "ການໃຊ້ :ref:`virtualenv`:" + +#: ../source/tutorials/installing-packages.rst:267 +msgid "" +"For more information, see the :doc:`venv ` docs or " +"the :doc:`virtualenv ` docs." +msgstr "" +"ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ, ເບິ່ງເອກະສານຂອງ :doc:`venv ` " +"ຫຼື :doc:`virtualenv `." + +#: ../source/tutorials/installing-packages.rst:270 +msgid "" +"The use of :command:`source` under Unix shells ensures that the virtual " +"environment's variables are set within the current shell, and not in a " +"subprocess (which then disappears, having no useful effect)." +msgstr "" +"ການໃຊ້ຄຳສັ່ງ :command:`source` ໃນ Unix shell ຊ່ວຍໃຫ້ແນ່ໃຈວ່າຕົວປ່ຽນຕ່າງໆ " +"ຂອງສະພາບແວດລ້ອມສະເໝືອນ ຖືກກຳນົດໄວ້ໃນ shell ປັດຈຸບັນ, ບໍ່ແມ່ນໃນ subprocess " +"(ເຊິ່ງຈະຫາຍໄປຫຼັງຈາກລັນຈົບ ແລະ ບໍ່ມີຜົນຫຍັງ)." + +#: ../source/tutorials/installing-packages.rst:275 +msgid "" +"In both of the above cases, Windows users should *not* use " +"the :command:`source` command, but should rather run the :command:`activate` " +"script directly from the command shell like so:" +msgstr "" +"ສຳລັບທັງສອງກໍລະນີຂ້າງເທິງ, ຜູ້ໃຊ້ Windows **ບໍ່ຄວນ** ໃຊ້ຄຳສັ່ງ :command:`source`, " +"ແຕ່ໃຫ້ລັນສະຄຣິບ :command:`activate` ໂດຍກົງຈາກ command shell ແບບນີ້:" + +#: ../source/tutorials/installing-packages.rst:285 +msgid "" +"Managing multiple virtual environments directly can become tedious, so " +"the :ref:`dependency management tutorial ` introduces " +"a higher level tool, :ref:`Pipenv`, that automatically manages a separate " +"virtual environment for each project and application that you work on." +msgstr "" +"ການຈັດການຫຼາຍສະພາບແວດລ້ອມສະເໝືອນດ້ວຍຕົນເອງອາດຈະຫຍຸ້ງຍາກ, " +"ດັ່ງນັ້ນໃນ :ref:`ບົດຮຽນການຈັດການສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ (dependency management tutorial) " +"` ຈຶ່ງໄດ້ແນະນຳເຄື່ອງມືທີ່ສູງຂຶ້ນຢ່າງ :ref:`Pipenv`, " +"ເຊິ່ງຈະຈັດການສະພາບແວດລ້ອມສະເໝືອນແຍກໃຫ້ແຕ່ລະໂຄງການໂດຍອັດຕະໂນມັດ." + +#: ../source/tutorials/installing-packages.rst:292 +msgid "Use pip for Installing" +msgstr "ໃຊ້ pip ໃນການຕິດຕັ້ງ" + +#: ../source/tutorials/installing-packages.rst:294 +msgid "" +":ref:`pip` is the recommended installer. Below, we'll cover the most common " +"usage scenarios. For more detail, see the :doc:`pip docs `, which " +"includes a complete :doc:`Reference Guide `." +msgstr "" +":ref:`pip` ແມ່ນໂຕຕິດຕັ້ງທີ່ໄດ້ຮັບການແນະນຳ. ຢູ່ລຸ່ມນີ້, ພວກເຮົາຈະເວົ້າເຖິງກໍລະນີການໃຊ້ງານທົ່ວໄປ. " +"ສຳລັບລາຍລະອຽດເພີ່ມເຕີມ, ເບິ່ງ :doc:`ເອກະສານຂອງ pip `." + +#: ../source/tutorials/installing-packages.rst:300 +msgid "Installing from PyPI" +msgstr "ການຕິດຕັ້ງຈາກ PyPI" + +#: ../source/tutorials/installing-packages.rst:302 +msgid "" +"The most common usage of :ref:`pip` is to install from the :term:`Python " +"Package Index ` using a :term:`requirement " +"specifier `. Generally speaking, a requirement " +"specifier is composed of a project name followed by an " +"optional :term:`version specifier `. A full description " +"of the supported specifiers can be found in the :ref:`Version specifier " +"specification `. Below are some examples." +msgstr "" +"ການໃຊ້ງານ :ref:`pip` ທີ່ພົບເລື້ອຍທີ່ສຸດແມ່ນການຕິດຕັ້ງຈາກ :term:`Python Package Index " +"(PyPI)` ໂດຍໃຊ້ :term:`ໂຕລະບຸຄວາມຕ້ອງການ (requirement specifier) `. ໂດຍທົ່ວໄປແລ້ວ, ມັນຈະປະກອບດ້ວຍຊື່ໂຄງການ ຕາມດ້ວຍ :term:`ໂຕລະບຸເວີຊັນ " +"(version specifier) ` (ຖ້າມີ). " +"ລາຍລະອຽດທັງໝົດສາມາດເບິ່ງໄດ້ທີ່ :ref:`Version specifier specification `. ຕົວຢ່າງມີດັ່ງລຸ່ມນີ້." + +#: ../source/tutorials/installing-packages.rst:310 +msgid "To install the latest version of \"SomeProject\":" +msgstr "ເພື່ອຕິດຕັ້ງ \"SomeProject\" ເວີຊັນລ່າສຸດ:" + +#: ../source/tutorials/installing-packages.rst:324 +msgid "To install a specific version:" +msgstr "ເພື່ອຕິດຕັ້ງເວີຊັນທີ່ລະບຸ:" + +#: ../source/tutorials/installing-packages.rst:338 +msgid "To install greater than or equal to one version and less than another:" +msgstr "ເພື່ອຕິດຕັ້ງເວີຊັນທີ່ຫຼາຍກວ່າ ຫຼື ເທົ່າກັບ ເວີຊັນໜຶ່ງ ແລະ ໜ້ອຍກວ່າ ອີກເວີຊັນໜຶ່ງ:" + +#: ../source/tutorials/installing-packages.rst:353 +msgid "" +"To install a version that's :ref:`compatible ` with a certain version: [4]_" +msgstr "" +"ເພື່ອຕິດຕັ້ງເວີຊັນທີ່ :ref:`ເຂົ້າກັນໄດ້ (compatible) ` ກັບເວີຊັນທີ່ລະບຸ: [4]_" + +#: ../source/tutorials/installing-packages.rst:368 +msgid "" +"In this case, this means to install any version \"==1.4.*\" version that's " +"also \">=1.4.2\"." +msgstr "" +"ໃນກໍລະນີນີ້, ໝາຍເຖິງການຕິດຕັ້ງເວີຊັນໃດກໍໄດ້ທີ່ເປັນ \"==1.4.*\" ແລະ ຕ້ອງເປັນ \">=1.4.2\" ນຳ." + +#: ../source/tutorials/installing-packages.rst:373 +msgid "Source Distributions vs Wheels" +msgstr "Source Distributions ປຽບທຽບກັບ Wheels" + +#: ../source/tutorials/installing-packages.rst:375 +msgid "" +":ref:`pip` can install from either :term:`Source Distributions (sdist) " +"` or :term:`Wheels `, but if both " +"are present on PyPI, pip will prefer a compatible :term:`wheel `. You " +"can override pip`s default behavior by e.g. using its :ref:`--no-binary " +"` option." +msgstr "" +":ref:`pip` ສາມາດຕິດຕັ້ງໄດ້ທັງຈາກ :term:`Source Distributions (sdist)` " +"ຫຼື :term:`Wheels`. ແຕ່ຖ້າມີທັງສອງຢ່າງໃນ PyPI, pip ຈະເລືອກ :term:`wheel` " +"ທີ່ເຂົ້າກັນໄດ້ກ່ອນ. ທ່ານສາມາດປ່ຽນພຶດຕິກຳນີ້ໄດ້ໂດຍການໃຊ້ຕົວເລືອກ ເຊັ່ນ :ref:`--no-binary " +"`." + +#: ../source/tutorials/installing-packages.rst:381 +msgid "" +":term:`Wheels ` are a pre-built :term:`distribution ` format that provides faster installation compared to :term:`Source " +"Distributions (sdist) `, especially when " +"a project contains compiled extensions." +msgstr "" +":term:`Wheels` ແມ່ນຮູບແບບ :term:`ການແຈກຢາຍ` ທີ່ຖືກບິວ (build) ໄວ້ລ່ວງໜ້າແລ້ວ " +"ເຊິ່ງຊ່ວຍໃຫ້ຕິດຕັ້ງໄດ້ໄວກວ່າ :term:`Source Distributions (sdist)`, " +"ໂດຍສະເພາະເມື່ອໂຄງການມີສ່ວນເສີມທີ່ຕ້ອງຄອມໄພລ໌ (compiled extensions)." + +#: ../source/tutorials/installing-packages.rst:386 +msgid "" +"If :ref:`pip` does not find a wheel to install, it will locally build a " +"wheel and cache it for future installs, instead of rebuilding the source " +"distribution in the future." +msgstr "" +"ຖ້າ :ref:`pip` ບໍ່ພົບ wheel ທີ່ຈະຕິດຕັ້ງ, ມັນຈະເຮັດການບິວ wheel ຢູ່ພາຍໃນເຄື່ອງ ແລະ ເກັບໄວ້ໃນ " +"cache ເພື່ອໃຊ້ໃນການຕິດຕັ້ງຄັ້ງຕໍ່ໄປ, ໂດຍບໍ່ຕ້ອງບິວໃໝ່ຈາກ source distribution ອີກ." + +#: ../source/tutorials/installing-packages.rst:394 +msgid "Upgrade an already installed ``SomeProject`` to the latest from PyPI." +msgstr "ອັບເກຣດ ``SomeProject`` ທີ່ຕິດຕັ້ງໄວ້ແລ້ວ ໃຫ້ເປັນເວີຊັນລ່າສຸດຈາກ PyPI." + +#: ../source/tutorials/installing-packages.rst:411 +msgid "Installing to the User Site" +msgstr "ການຕິດຕັ້ງໄວ້ໃນພື້ນທີ່ຂອງຜູ້ໃຊ້ (User Site)" + +#: ../source/tutorials/installing-packages.rst:413 +msgid "" +"To install :term:`packages ` that are isolated to the " +"current user, use the ``--user`` flag:" +msgstr "" +"ເພື່ອຕິດຕັ້ງ :term:`ແພັກເກດ ` ແຍກໄວ້ສະເພາະສຳລັບຜູ້ໃຊ້ປັດຈຸບັນ, ໃຫ້ໃຊ້ " +"flag ``--user``:" + +#: ../source/tutorials/installing-packages.rst:428 +msgid "" +"For more information see the `User Installs `_ section from the pip docs." +msgstr "" +"ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ, ເບິ່ງພາກສ່ວນ `User Installs `_ ໃນເອກະສານຂອງ pip." + +#: ../source/tutorials/installing-packages.rst:432 +msgid "" +"Note that the ``--user`` flag has no effect when inside a virtual " +"environment - all installation commands will affect the virtual environment." +msgstr "" +"ໝາຍເຫດ: flag ``--user`` ຈະບໍ່ມີຜົນຫຍັງເມື່ອຢູ່ໃນສະພາບແວດລ້ອມສະເໝືອນ (virtual " +"environment) - ທຸກໆ ຄຳສັ່ງຕິດຕັ້ງຈະມີຜົນຕໍ່ສະພາບແວດລ້ອມສະເໝືອນນັ້ນເທົ່ານັ້ນ." + +#: ../source/tutorials/installing-packages.rst:435 +msgid "" +"If ``SomeProject`` defines any command-line scripts or console entry points, " +"``--user`` will cause them to be installed inside the `user base`_'s binary " +"directory, which may or may not already be present in your " +"shell's :envvar:`PATH`. (Starting in version 10, pip displays a warning " +"when installing any scripts to a directory outside :envvar:`PATH`.) If the " +"scripts are not available in your shell after installation, you'll need to " +"add the directory to your :envvar:`PATH`:" +msgstr "" +"ຖ້າ ``SomeProject`` ກໍານົດສະຄຣິບຄໍາສັ່ງ (command-line scripts) ຫຼື console entry " +"points ໃດໜຶ່ງ, ``--user`` ຈະເຮັດໃຫ້ພວກມັນຖືກຕິດຕັ້ງໄວ້ໃນໄດເຣັກທໍຣີໄບນາຣີຂອງ `user base`_, " +"ເຊິ່ງອາດຈະມີ ຫຼື ບໍ່ມີຢູ່ໃນ :envvar:`PATH` ຂອງເຊວ (shell) ຂອງທ່ານແລ້ວ. (ເລີ່ມຈາກເວີຊັນ 10, " +"pip ຈະສະແດງຄໍາເຕືອນເມື່ອຕິດຕັ້ງສະຄຣິບໃດໆລົງໃນໄດເຣັກທໍຣີທີ່ຢູ່ນອກ :envvar:`PATH`.) " +"ຖ້າສະຄຣິບບໍ່ພ້ອມໃຊ້ງານໃນເຊວຂອງທ່ານຫຼັງຈາກການຕິດຕັ້ງ, " +"ທ່ານຈະຕ້ອງເພີ່ມໄດເຣັກທໍຣີນັ້ນເຂົ້າໃນ :envvar:`PATH` ຂອງທ່ານ:" + +#: ../source/tutorials/installing-packages.rst:443 +msgid "" +"On Linux and macOS you can find the user base binary directory by running " +"``python -m site --user-base`` and adding ``bin`` to the end. For example, " +"this will typically print ``~/.local`` (with ``~`` expanded to the absolute " +"path to your home directory) so you'll need to add ``~/.local/bin`` to your " +"``PATH``. You can set your ``PATH`` permanently by `modifying ~/.profile`_." +msgstr "" +"ໃນ Linux ແລະ macOS, ທ່ານສາມາດຫາໄດເຣັກທໍຣີບີນາຣີຂອງ user base ໄດ້ໂດຍການລັນ ``python " +"-m site --user-base`` ແລ້ວຕື່ມ ``bin`` ໃສ່ທາງທ້າຍ. ຕົວຢ່າງ: ປົກກະຕິມັນຈະສະແດງຜົນເປັນ " +"``~/.local``, ດັ່ງນັ້ນທ່ານຕ້ອງເພີ່ມ ``~/.local/bin`` ເຂົ້າໃນ ``PATH``. ທ່ານສາມາດຕັ້ງຄ່າ " +"``PATH`` ແບບຖາວອນໄດ້ໂດຍ `ແກ້ໄຂໄຟລ໌ ~/.profile`_." + +#: ../source/tutorials/installing-packages.rst:449 +msgid "" +"On Windows you can find the user base binary directory by running ``py -m " +"site --user-site`` and replacing ``site-packages`` with ``Scripts``. For " +"example, this could return ``C:" +"\\Users\\Username\\AppData\\Roaming\\Python36\\site-packages`` so you would " +"need to set your ``PATH`` to include ``C:" +"\\Users\\Username\\AppData\\Roaming\\Python36\\Scripts``. You can set your " +"user ``PATH`` permanently in the `Control Panel`_. You may need to log out " +"for the ``PATH`` changes to take effect." +msgstr "" +"ໃນ Windows, ທ່ານສາມາດຫາໄດເຣັກທໍຣີບີນາຣີຂອງ user base ໄດ້ໂດຍການລັນ ``py -m site --" +"user-site`` ແລ້ວປ່ຽນ ``site-packages`` ເປັນ ``Scripts``. ຕົວຢ່າງ: ຖ້າມັນສະແດງຜົນເປັນ " +"``C:\\Users\\Username\\AppData\\Roaming\\Python36\\site-packages``, " +"ທ່ານຕ້ອງເພີ່ມ ``C:\\Users\\Username\\AppData\\Roaming\\Python36\\Scripts`` ເຂົ້າໃນ " +"``PATH``. ທ່ານສາມາດຕັ້ງຄ່າ ``PATH`` ແບບຖາວອນໄດ້ໃນ `Control Panel`_." + +#: ../source/tutorials/installing-packages.rst:465 +msgid "" +"Install a list of requirements specified in a :ref:`Requirements File " +"`." +msgstr "" +"ຕິດຕັ້ງລາຍຊື່ແພັກເກດທີ່ລະບຸໄວ້ໃນ :ref:`ໄຟລ໌ Requirements `." + +#: ../source/tutorials/installing-packages.rst:481 +msgid "Installing from VCS" +msgstr "ການຕິດຕັ້ງຈາກ VCS" + +#: ../source/tutorials/installing-packages.rst:483 +msgid "" +"Install a project from VCS in \"editable\" mode. For a full breakdown of " +"the syntax, see pip's section on :ref:`VCS Support `." +msgstr "" +"ຕິດຕັ້ງໂຄງການຈາກ VCS ໃນຮູບແບບ \"ແກ້ໄຂໄດ້ (editable)\". ສຳລັບລາຍລະອຽດຂອງໄວຍາກອນ, " +"ເບິ່ງພາກສ່ວນ :ref:`VCS Support ` ຂອງ pip." + +#: ../source/tutorials/installing-packages.rst:505 +msgid "Installing from other Indexes" +msgstr "ການຕິດຕັ້ງຈາກດັດຊະນີອື່ນໆ" + +#: ../source/tutorials/installing-packages.rst:507 +msgid "Install from an alternate index" +msgstr "ຕິດຕັ້ງຈາກດັດຊະນີສຳຮອງ" + +#: ../source/tutorials/installing-packages.rst:521 +msgid "" +"Search an additional index during install, in addition to :term:`PyPI " +"`" +msgstr "" +"ຄົ້ນຫາໃນດັດຊະນີເພີ່ມເຕີມໃນລະຫວ່າງການຕິດຕັ້ງ ນອກເໜືອຈາກ :term:`PyPI `" + +#: ../source/tutorials/installing-packages.rst:537 +msgid "Installing from a local src tree" +msgstr "ການຕິດຕັ້ງຈາກ src tree ພາຍໃນເຄື່ອງ" + +#: ../source/tutorials/installing-packages.rst:540 +msgid "" +"Installing from local src in :doc:`Development Mode `, i.e. in such a way that the project appears to be " +"installed, but yet is still editable from the src tree." +msgstr "" +"ການຕິດຕັ້ງຈາກ src ພາຍໃນເຄື່ອງໃນ :doc:`ຮູບແບບການພັດທະນາ (Development Mode) " +"`, " +"ເຊິ່ງເປັນການຕິດຕັ້ງທີ່ເຮັດໃຫ້ເບິ່ງຄືວ່າແພັກເກດຖືກຕິດຕັ້ງແລ້ວ ແຕ່ຍັງສາມາດແກ້ໄຂໂຄ້ດຈາກ src tree ໄດ້." + +#: ../source/tutorials/installing-packages.rst:557 +msgid "You can also install normally from src" +msgstr "ທ່ານຍັງສາມາດຕິດຕັ້ງແບບປົກກະຕິຈາກ src ໄດ້" + +#: ../source/tutorials/installing-packages.rst:572 +msgid "Installing from local archives" +msgstr "ການຕິດຕັ້ງຈາກໄຟລ໌ບີບອັດພາຍໃນເຄື່ອງ" + +#: ../source/tutorials/installing-packages.rst:574 +msgid "Install a particular source archive file." +msgstr "ຕິດຕັ້ງຈາກໄຟລ໌ບີບອັດຊອດໂຄ້ດ (source archive) ທີ່ລະບຸ." + +#: ../source/tutorials/installing-packages.rst:588 +msgid "" +"Install from a local directory containing archives (and don't " +"check :term:`PyPI `)" +msgstr "" +"ຕິດຕັ້ງຈາກໄດເຣັກທໍຣີພາຍໃນເຄື່ອງທີ່ມີໄຟລ໌ບີບອັດ (ໂດຍບໍ່ຕ້ອງກວດສອບ :term:`PyPI `)" + +#: ../source/tutorials/installing-packages.rst:608 +msgid "Installing from other sources" +msgstr "ການຕິດຕັ້ງຈາກແຫຼ່ງອື່ນໆ" + +#: ../source/tutorials/installing-packages.rst:610 +msgid "" +"To install from other data sources (for example Amazon S3 storage) you can " +"create a helper application that presents the data in a format compliant " +"with the :ref:`simple repository API `:, and use the " +"``--extra-index-url`` flag to direct pip to use that index." +msgstr "" +"ເພື່ອຕິດຕັ້ງຈາກແຫຼ່ງຂໍ້ມູນອື່ນໆ (ຕົວຢ່າງ: Amazon S3 storage), ທ່ານສາມາດສ້າງແອັບຯຊ່ວຍ " +"ທີ່ສະແດງຂໍ້ມູນໃນຮູບແບບທີ່ກົງກັບ :ref:`simple repository API `, " +"ແລ້ວໃຊ້ flag ``--extra-index-url`` ເພື່ອບອກໃຫ້ pip ໃຊ້ດັດຊະນີນັ້ນ." + +#: ../source/tutorials/installing-packages.rst:622 +msgid "Installing Prereleases" +msgstr "ການຕິດຕັ້ງເວີຊັນທົດລອງ (Prereleases)" + +#: ../source/tutorials/installing-packages.rst:624 +msgid "" +"Find pre-release and development versions, in addition to stable versions. " +"By default, pip only finds stable versions." +msgstr "" +"ຄົ້ນຫາເວີຊັນທົດລອງ (pre-release) ແລະ ເວີຊັນພັດທະນາ (development) ເພີ່ມເຕີມຈາກເວີຊັນປົກກະຕິ " +"(stable). ໂດຍປົກກະຕິແລ້ວ pip ຈະຫາສະເພາະເວີຊັນປົກກະຕິເທົ່ານັ້ນ." + +#: ../source/tutorials/installing-packages.rst:640 +msgid "Installing \"Extras\"" +msgstr "ການຕິດຕັ້ງ \"ສ່ວນເສີມ (Extras)\"" + +#: ../source/tutorials/installing-packages.rst:642 +msgid "" +"Extras are optional \"variants\" of a package, which may include additional " +"dependencies, and thereby enable additional functionality from the package. " +"If you wish to install an extra for a package which you know publishes one, " +"you can include it in the pip installation command:" +msgstr "" +"Extras ແມ່ນ \"ຮູບແບບຍ່ອຍ\" ທີ່ເປັນທາງເລືອກຂອງແພັກເກດ ເຊິ່ງອາດຈະມີສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ເພີ່ມເຕີມ " +"ເພື່ອເປີດໃຊ້ງານຟັງຊັນເສີມຂອງແພັກເກດນັ້ນ. ຖ້າທ່ານຕ້ອງການຕິດຕັ້ງສ່ວນເສີມ, " +"ທ່ານສາມາດລະບຸມັນໃນຄຳສັ່ງຕິດຕັ້ງ pip ໄດ້:" + +#: ../source/tutorials/installing-packages.rst:665 +msgid "" +"\"Secure\" in this context means using a modern browser or a tool " +"like :command:`curl` that verifies SSL certificates when downloading from " +"https URLs." +msgstr "" +"\"ຢ່າງປອດໄພ (Secure)\" ໃນສະພາບການນີ້ ໝາຍເຖິງການໃຊ້ບຣາວເຊີທີ່ທັນສະໄໝ ຫຼື " +"ເຄື່ອງມືເຊັ່ນ :command:`curl` ທີ່ມີການກວດສອບ SSL certificate ເມື່ອດາວໂຫຼດຈາກ URL ທີ່ເປັນ " +"https." + +#: ../source/tutorials/installing-packages.rst:674 +msgid "" +"Beginning with Python 3.4, ``venv`` (a stdlib alternative " +"to :ref:`virtualenv`) will create virtualenv environments with ``pip`` pre-" +"installed, thereby making it an equal alternative to :ref:`virtualenv`." +msgstr "" +"ເລີ່ມຕັ້ງແຕ່ Python 3.4 ເປັນຕົ້ນໄປ, ``venv`` " +"(ທາງເລືອກໃນໄລບຣາຣີມາດຕະຖານແທນ :ref:`virtualenv`) ຈະສ້າງສະພາບແວດລ້ອມສະເໝືອນທີ່ມີ " +"``pip`` ຕິດຕັ້ງມາໃຫ້ພ້ອມ, ເຮັດໃຫ້ມັນເປັນທາງເລືອກທີ່ດີເທົ່າກັບ :ref:`virtualenv`." + +#: ../source/tutorials/installing-packages.rst:679 +msgid "" +"The compatible release specifier was accepted in :pep:`440` and support was " +"released in :ref:`setuptools` v8.0 and :ref:`pip` v6.0" +msgstr "" +"ໂຕລະບຸເວີຊັນທີ່ເຂົ້າກັນໄດ້ (compatible release specifier) ໄດ້ຮັບການຍອມຮັບໃນ :pep:`440` " +"ແລະ ເລີ່ມຮອງຮັບໃນ :ref:`setuptools` v8.0 ແລະ :ref:`pip` v6.0" + +#: ../source/tutorials/managing-dependencies.rst:4 +msgid "Managing Application Dependencies" +msgstr "ການຈັດການສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ (Dependencies) ຂອງແອັບພລິເຄຊັນ" + +#: ../source/tutorials/managing-dependencies.rst:6 +msgid "" +"The :ref:`package installation tutorial ` covered the " +"basics of getting set up to install and update Python packages." +msgstr "" +":ref:`ບົດຮຽນການຕິດຕັ້ງແພັກເກດ ` ໄດ້ເວົ້າເຖິງພື້ນຖານການຕັ້ງຄ່າ ເພື່ອຕິດຕັ້ງ " +"ແລະ ອັບເດດແພັກເກດ Python ໄປແລ້ວ." + +#: ../source/tutorials/managing-dependencies.rst:9 +msgid "" +"However, running these commands interactively can get tedious even for your " +"own personal projects, and things get even more difficult when trying to set " +"up development environments automatically for projects with multiple " +"contributors." +msgstr "" +"ແນວໃດກໍຕາມ, ການລັນຄຳສັ່ງເຫຼົ່ານີ້ດ້ວຍຕົນເອງອາດຈະເປັນໜ້າເບື່ອ " +"ເຖິງວ່າຈະເປັນໂຄງການສ່ວນຕົວຂອງທ່ານເອງກໍຕາມ, ແລະ " +"ມັນຈະຍິ່ງຍາກຂຶ້ນເມື່ອຕ້ອງຕັ້ງຄ່າສະພາບແວດລ້ອມການພັດທະນາແບບອັດຕະໂນມັດ " +"ສຳລັບໂຄງການທີ່ມີຜູ້ຮ່ວມພັດທະນາຫຼາຍຄົນ." + +#: ../source/tutorials/managing-dependencies.rst:13 +msgid "" +"This tutorial walks you through the use of :ref:`Pipenv` to manage " +"dependencies for an application. It will show you how to install and use the " +"necessary tools and make strong recommendations on best practices." +msgstr "" +"ບົດຮຽນນີ້ຈະນຳພາທ່ານໄປຮຽນຮູ້ການໃຊ້ :ref:`Pipenv` ເພື່ອຈັດການສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ສຳລັບແອັບພລິເຄຊັນ. " +"ມັນຈະສະແດງວິທີການຕິດຕັ້ງ, ການໃຊ້ເຄື່ອງມືທີ່ຈຳເປັນ ແລະ ຄຳແນະນຳກ່ຽວກັບວິທີການທີ່ດີທີ່ສຸດ (best " +"practices)." + +#: ../source/tutorials/managing-dependencies.rst:17 +msgid "" +"Keep in mind that Python is used for a great many different purposes, and " +"precisely how you want to manage your dependencies may change based on how " +"you decide to publish your software. The guidance presented here is most " +"directly applicable to the development and deployment of network services " +"(including web applications), but is also very well suited to managing " +"development and testing environments for any kind of project." +msgstr "" +"ຄວນຈື່ໄວ້ວ່າ Python ຖືກນຳໃຊ້ໃນຫຼາຍຈຸດປະສົງ, ແລະ ວິທີການຈັດການສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ " +"ອາດຈະປ່ຽນແປງໄປຕາມວິທີທີ່ທ່ານເລືອກໃນການເຜີຍແຜ່ຊອບແວ. ຄຳແນະນຳຢູ່ບ່ອນນີ້ແມ່ນເໝາະສົມທີ່ສຸດ " +"ສຳລັບການພັດທະນາ ແລະ ຕິດຕັ້ງບໍລິການເຄືອຂ່າຍ (ລວມທັງເວັບແອັບພລິເຄຊັນ), ແຕ່ກໍຍັງເໝາະສຳລັບການຈັດການ " +"ສະພາບແວດລ້ອມການພັດທະນາ ແລະ ການທົດສອບສຳລັບໂຄງການທຸກປະເພດ." + +#: ../source/tutorials/managing-dependencies.rst:24 +msgid "" +"For alternatives, see `Other Tools for Application Dependency Management`_." +msgstr "ສຳລັບທາງເລືອກອື່ນ, ເບິ່ງ `ເຄື່ອງມືອື່ນໆ ສຳລັບການຈັດການສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ຂອງແອັບພລິເຄຊັນ`_." + +#: ../source/tutorials/managing-dependencies.rst:27 +msgid "Installing Pipenv" +msgstr "ການຕິດຕັ້ງ Pipenv" + +#: ../source/tutorials/managing-dependencies.rst:29 +msgid "" +":ref:`Pipenv` is a dependency manager for Python projects. If you're " +"familiar with Node.js' `npm`_ or Ruby's `bundler`_, it is similar in spirit " +"to those tools. While :ref:`pip` alone is often sufficient for personal use, " +"Pipenv is recommended for collaborative projects as it's a higher-level tool " +"that simplifies dependency management for common use cases." +msgstr "" +":ref:`Pipenv` ແມ່ນໂຕຈັດການສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ສຳລັບໂຄງການ Python. ຖ້າທ່ານຄຸ້ນເຄີຍກັບ `npm`_ " +"ຂອງ Node.js ຫຼື `bundler`_ ຂອງ Ruby, ມັນຈະມີຫຼັກການຄ້າຍຄືກັນ. ເຖິງວ່າການໃຊ້ :ref:`pip` " +"ຢ່າງດຽວຈະພຽງພໍສຳລັບການໃຊ້ສ່ວນຕົວ, ແຕ່ Pipenv ແມ່ນໄດ້ຮັບການແນະນຳສຳລັບໂຄງການທີ່ເຮັດວຽກຮ່ວມກັນ " +"ເພາະມັນເປັນເຄື່ອງມືລະດັບສູງທີ່ຊ່ວຍໃຫ້ການຈັດການງ່າຍຂຶ້ນ." + +#: ../source/tutorials/managing-dependencies.rst:35 +msgid "Use ``pip`` to install Pipenv:" +msgstr "ໃຊ້ ``pip`` ເພື່ອຕິດຕັ້ງ Pipenv:" + +#: ../source/tutorials/managing-dependencies.rst:51 +msgid "" +"This does a `user installation`_ to prevent breaking any system-wide " +"packages. If ``pipenv`` isn't available in your shell after installation, " +"you'll need to add the :py:data:`user base `'s binary " +"directory to your ``PATH``. See :ref:`Installing to the User Site` for more " +"information." +msgstr "" +"ສິ່ງນີ້ແມ່ນການຕິດຕັ້ງແບບ `user installation`_ ເພື່ອປ້ອງກັນບໍ່ໃຫ້ແພັກເກດຂອງລະບົບເສຍຫາຍ. ຖ້າ " +"``pipenv`` ໃຊ້ງານບໍ່ໄດ້ຫຼັງການຕິດຕັ້ງ, ທ່ານຕ້ອງເພີ່ມໄດເຣັກທໍຣີບີນາຣີຂອງ :py:data:`user base " +"` ເຂົ້າໃນ ``PATH``. ເບິ່ງ :ref:`Installing to the User " +"Site` ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ." + +#: ../source/tutorials/managing-dependencies.rst:62 +msgid "Installing packages for your project" +msgstr "ການຕິດຕັ້ງແພັກເກດສຳລັບໂຄງການຂອງທ່ານ" + +#: ../source/tutorials/managing-dependencies.rst:64 +msgid "" +"Pipenv manages dependencies on a per-project basis. To install packages, " +"change into your project's directory (or just an empty directory for this " +"tutorial) and run:" +msgstr "" +"Pipenv ຈັດການສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ແຍກຕາມແຕ່ລະໂຄງການ. ເພື່ອຕິດຕັ້ງແພັກເກດ, " +"ໃຫ້ເຂົ້າໄປໃນໄດເຣັກທໍຣີຂອງໂຄງການ (ຫຼື ໄດເຣັກທໍຣີຫວ່າງເປົ່າສຳລັບບົດຮຽນນີ້) ແລ້ວລັນ:" + +#: ../source/tutorials/managing-dependencies.rst:73 +msgid "" +"Pipenv will install the `Requests`_ library and create a ``Pipfile`` for you " +"in your project's directory. The :ref:`Pipfile` is used to track which " +"dependencies your project needs in case you need to re-install them, such as " +"when you share your project with others. You should get output similar to " +"this (although the exact paths shown will vary):" +msgstr "" +"Pipenv ຈະຕິດຕັ້ງໄລບຣາຣີ `Requests`_ ແລະ ສ້າງໄຟລ໌ ``Pipfile`` " +"ໃຫ້ໃນໄດເຣັກທໍຣີໂຄງການຂອງທ່ານ. :ref:`Pipfile` " +"ໃຊ້ເພື່ອຕິດຕາມວ່າໂຄງການຂອງທ່ານຕ້ອງການແພັກເກດໃດແດ່ ໃນກໍລະນີທີ່ຕ້ອງຕິດຕັ້ງໃໝ່ ເຊັ່ນ " +"ເມື່ອທ່ານແບ່ງປັນໂຄງການໃຫ້ຄົນອື່ນ. ທ່ານຄວນຈະເຫັນຂໍ້ຄວາມສະແດງຜົນປະມານນີ້:" + +#: ../source/tutorials/managing-dependencies.rst:109 +msgid "Using installed packages" +msgstr "ການໃຊ້ແພັກເກດທີ່ຕິດຕັ້ງແລ້ວ" + +#: ../source/tutorials/managing-dependencies.rst:111 +msgid "" +"Now that Requests is installed you can create a simple :file:`main.py` file " +"to use it:" +msgstr "" +"ເມື່ອຕິດຕັ້ງ Requests ຮຽບຮ້ອຍແລ້ວ, ທ່ານສາມາດສ້າງໄຟລ໌ :file:`main.py` ແບບງ່າຍໆ " +"ເພື່ອລອງໃຊ້ງານ:" + +#: ../source/tutorials/managing-dependencies.rst:122 +msgid "Then you can run this script using ``pipenv run``:" +msgstr "ຈາກນັ້ນທ່ານສາມາດລັນສະຄຣິບນີ້ໄດ້ໂດຍໃຊ້ ``pipenv run``:" + +#: ../source/tutorials/managing-dependencies.rst:128 +msgid "You should get output similar to this:" +msgstr "ທ່ານຄວນຈະເຫັນຂໍ້ຄວາມສະແດງຜົນປະມານນີ້:" + +#: ../source/tutorials/managing-dependencies.rst:134 +msgid "" +"Using ``pipenv run`` ensures that your installed packages are available to " +"your script. It's also possible to spawn a new shell that ensures all " +"commands have access to your installed packages with ``pipenv shell``." +msgstr "" +"ການໃຊ້ ``pipenv run`` ຊ່ວຍໃຫ້ໝັ້ນໃຈວ່າແພັກເກດທີ່ຕິດຕັ້ງແລ້ວພ້ອມໃຊ້ງານສຳລັບສະຄຣິບຂອງທ່ານ. " +"ນອກຈາກນັ້ນ, ທ່ານຍັງສາມາດເປີດ shell ໃໝ່ທີ່ທຸກຄຳສັ່ງສາມາດເຂົ້າເຖິງແພັກເກດທີ່ຕິດຕັ້ງແລ້ວໄດ້ດ້ວຍ " +"``pipenv shell``." + +#: ../source/tutorials/managing-dependencies.rst:140 +#: ../source/tutorials/packaging-projects.rst:484 +msgid "Next steps" +msgstr "ຂັ້ນຕອນຕໍ່ໄປ" + +#: ../source/tutorials/managing-dependencies.rst:142 +msgid "" +"Congratulations, you now know how to effectively manage dependencies and " +"development environments on a collaborative Python project! ✨ 🍰 ✨" +msgstr "" +"ຂໍສະແດງຄວາມຍິນດີ, ຕອນນີ້ທ່ານຮູ້ວິທີການຈັດການສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ ແລະ ສະພາບແວດລ້ອມການພັດທະນາ " +"ໃນໂຄງການ Python ທີ່ເຮັດວຽກຮ່ວມກັນຢ່າງມີປະສິດທິພາບແລ້ວ! ✨ 🍰 ✨" + +#: ../source/tutorials/managing-dependencies.rst:145 +msgid "" +"If you're interested in creating and distributing your own Python packages, " +"see the :ref:`tutorial on packaging and distributing packages `." +msgstr "" +"ຖ້າທ່ານສົນໃຈໃນການສ້າງ ແລະ ແຈກຢາຍແພັກເກດ Python ຂອງທ່ານເອງ, " +"ໃຫ້ເບິ່ງ :ref:`ບົດຮຽນການເຮັດແພັກເກດ ແລະ ການແຈກຢາຍແພັກເກດ `." + +#: ../source/tutorials/managing-dependencies.rst:148 +msgid "" +"Note that when your application includes definitions of Python source " +"packages, they (and their dependencies) can be added to your ``pipenv`` " +"environment with ``pipenv install -e `` " +"(e.g. ``pipenv install -e .`` or ``pipenv install -e src``)." +msgstr "" +"ໝາຍເຫດ: ເມື່ອແອັບພລິເຄຊັນຂອງທ່ານມີການກຳນົດຊອດໂຄ້ດແພັກເກດ Python, ພວກມັນ (ແລະ " +"ສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້) ສາມາດເພີ່ມເຂົ້າໃນສະພາບແວດລ້ອມ ``pipenv`` ໄດ້ດ້ວຍ ``pipenv install -e " +"``." + +#: ../source/tutorials/managing-dependencies.rst:157 +msgid "Other Tools for Application Dependency Management" +msgstr "ເຄື່ອງມືອື່ນໆ ສຳລັບການຈັດການສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ຂອງແອັບພລິເຄຊັນ" + +#: ../source/tutorials/managing-dependencies.rst:159 +msgid "" +"If you find this particular approach to managing application dependencies " +"isn't working well for you or your use case, you may want to explore these " +"other tools and techniques, listed in alphabetical order, to see if one of " +"them is a better fit:" +msgstr "" +"ຖ້າທ່ານຮູ້ສຶກວ່າວິທີການນີ້ບໍ່ເໝາະສົມກັບການໃຊ້ງານຂອງທ່ານ, ທ່ານອາດຈະລອງສຶກສາເຄື່ອງມື ແລະ ເຕັກນິກອື່ນໆ " +"ເຫຼົ່ານີ້ (ລຽງຕາມລຳດັບຕົວອັກສອນ) ເພື່ອເບິ່ງວ່າໂຕໃດເໝາະສົມກວ່າ:" + +#: ../source/tutorials/managing-dependencies.rst:163 +msgid "" +"`hatch `_ for opinionated coverage of even " +"more steps in the project management workflow, such as incrementing versions " +"and creating new skeleton projects from project templates." +msgstr "" +"`hatch `_ ສຳລັບການຈັດການຂັ້ນຕອນຕ່າງໆ " +"ໃນຂະບວນການເຮັດວຽກຂອງໂຄງການທີ່ຄົບຖ້ວນກວ່າ ເຊັ່ນ ການເພີ່ມເວີຊັນ ແລະ " +"ການສ້າງໂຄງຮ່າງໂຄງການໃໝ່ຈາກແມ່ແບບ (templates)." + +#: ../source/tutorials/managing-dependencies.rst:166 +msgid "" +"`micropipenv `_ for a " +"lightweight wrapper around pip that supports ``requirements.txt``, Pipenv " +"and Poetry lock files, or converting them to pip-tools compatible output. " +"Designed for containerized Python applications, but not limited to them." +msgstr "" +"`micropipenv `_ " +"ແມ່ນໂຕເສີມຂະໜາດເບົາສຳລັບ pip ທີ່ຮອງຮັບ ``requirements.txt``, ໄຟລ໌ lock ຂອງ Pipenv " +"ແລະ Poetry. ອອກແບບມາສຳລັບແອັບພລິເຄຊັນ Python ທີ່ໃຊ້ຄອນເທນເນີ (containerized) " +"ແຕ່ກໍສາມາດໃຊ້ທົ່ວໄປໄດ້." + +#: ../source/tutorials/managing-dependencies.rst:170 +msgid "" +"`PDM `_ for a modern Python package " +"management relying on standards such as :pep:`517` and :pep:`621`." +msgstr "" +"`PDM `_ ສຳລັບການຈັດການແພັກເກດ Python " +"ທີ່ທັນສະໄໝ ໂດຍອີງຕາມມາດຕະຖານເຊັ່ນ :pep:`517` ແລະ :pep:`621`." + +#: ../source/tutorials/managing-dependencies.rst:172 +msgid "" +"`pip-tools `_ for creating a lock " +"file of all dependencies from a list of packages directly used in a project, " +"and ensuring that only those dependencies are installed." +msgstr "" +"`pip-tools `_ ສຳລັບການສ້າງໄຟລ໌ lock " +"ຂອງທຸກສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ ຈາກລາຍຊື່ແພັກເກດທີ່ໃຊ້ໃນໂຄງການໂດຍກົງ ແລະ " +"ເພື່ອໃຫ້ແນ່ໃຈວ່າຈະມີການຕິດຕັ້ງສະເພາະສິ່ງທີ່ຈຳເປັນເຫຼົ່ານັ້ນເທົ່ານັ້ນ." + +#: ../source/tutorials/managing-dependencies.rst:175 +msgid "" +"`Poetry `__ for a tool comparable " +"in scope to Pipenv that focuses more directly on use cases where the project " +"being managed is structured as a distributable Python package with a valid " +"``pyproject.toml`` file. By contrast, Pipenv explicitly avoids making the " +"assumption that the application being worked on will support distribution as " +"a ``pip``-installable Python package." +msgstr "" +"`Poetry `__ ແມ່ນເຄື່ອງມືທີ່ມີຂອບເຂດໃກ້ຄຽງກັບ " +"Pipenv ແຕ່ເນັ້ນໃສ່ໂຄງການທີ່ຖືກຈັດໂຄງສ້າງເປັນແພັກເກດ Python ທີ່ສາມາດແຈກຢາຍໄດ້ ແລະ ມີໄຟລ໌ " +"``pyproject.toml``." + +#: ../source/tutorials/managing-dependencies.rst:180 +msgid "" +"`uv `__ for a single tool that covers the entire " +"project management workflow, including dependency management, packaging, and " +"publishing." +msgstr "" +"`uv `__ ແມ່ນເຄື່ອງມືດຽວທີ່ກວມເອົາທຸກຂັ້ນຕອນການຈັດການໂຄງການ " +"ລວມທັງການຈັດການສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້, ການເຮັດແພັກເກດ ແລະ ການເຜີຍແຜ່." + +#: ../source/tutorials/packaging-projects.rst:2 +msgid "Packaging Python Projects" +msgstr "ການເຮັດແພັກເກດໂຄງການ Python" + +#: ../source/tutorials/packaging-projects.rst:4 +msgid "" +"This tutorial walks you through how to package a simple Python project. It " +"will show you how to add the necessary files and structure to create the " +"package, how to build the package, and how to upload it to the Python " +"Package Index (PyPI)." +msgstr "" +"ບົດຮຽນນີ້ຈະນຳພາທ່ານໄປຮຽນຮູ້ວິທີການເຮັດແພັກເກດໂຄງການ Python ແບບງ່າຍໆ. " +"ມັນຈະສະແດງວິທີການເພີ່ມໄຟລ໌ທີ່ຈຳເປັນ, ການຈັດໂຄງສ້າງເພື່ອສ້າງແພັກເກດ, ວິທີການບິວແພັກເກດ ແລະ " +"ວິທີການອັບໂຫຼດໄປຍັງ Python Package Index (PyPI)." + +#: ../source/tutorials/packaging-projects.rst:10 +msgid "" +"If you have trouble running the commands in this tutorial, please copy the " +"command and its output, then `open an issue`_ on the `packaging-problems`_ " +"repository on GitHub. We'll do our best to help you!" +msgstr "" +"ຖ້າທ່ານພົບຄວາມຫຍຸ້ງຍາກໃນການລັນຄຳສັ່ງໃນບົດຮຽນນີ້, ກະລຸນາກັອບປີ້ຄຳສັ່ງ ແລະ ຂໍ້ຄວາມສະແດງຜົນ ແລ້ວ " +"`ສ້າງ issue ໃໝ່`_ ໃນຄັງເກັບ `packaging-problems`_ ໃນ GitHub. " +"ພວກເຮົາຈະພະຍາຍາມຊ່ວຍທ່ານຢ່າງເຕັມທີ່!" + +#: ../source/tutorials/packaging-projects.rst:18 +msgid "" +"Some of the commands require a newer version of :ref:`pip`, so start by " +"making sure you have the latest version installed:" +msgstr "ບາງຄຳສັ່ງຕ້ອງການ pip ເວີຊັນໃໝ່, ດັ່ງນັ້ນໃຫ້ເລີ່ມດ້ວຍການກວດສອບວ່າທ່ານໄດ້ຕິດຕັ້ງເວີຊັນລ່າສຸດແລ້ວ:" + +#: ../source/tutorials/packaging-projects.rst:35 +msgid "A simple project" +msgstr "ໂຄງການແບບງ່າຍໆ" + +#: ../source/tutorials/packaging-projects.rst:37 +msgid "" +"This tutorial uses a simple project named " +"``example_package_YOUR_USERNAME_HERE``. If your username is ``me``, then the " +"package would be ``example_package_me``; this ensures that you have a unique " +"package name that doesn't conflict with packages uploaded by other people " +"following this tutorial. We recommend following this tutorial as-is using " +"this project, before packaging your own project." +msgstr "" +"ບົດຮຽນນີ້ໃຊ້ໂຄງການງ່າຍໆ ທີ່ມີຊື່ວ່າ ``example_package_YOUR_USERNAME_HERE``. " +"ຖ້າຊື່ຜູ້ໃຊ້ຂອງທ່ານແມ່ນ ``me``, ຊື່ແພັກເກດກໍຈະແມ່ນ ``example_package_me``; " +"ສິ່ງນີ້ຈະຊ່ວຍໃຫ້ຊື່ແພັກເກດຂອງທ່ານບໍ່ຊໍ້າກັບຂອງຄົນອື່ນ. ແນະນຳໃຫ້ເຮັດຕາມບົດຮຽນນີ້ໂດຍໃຊ້ໂຄງການນີ້ກ່ອນ " +"ແລ້ວຈຶ່ງຄ່ອຍລອງເຮັດແພັກເກດໂຄງການຂອງທ່ານເອງ." + +#: ../source/tutorials/packaging-projects.rst:44 +msgid "Create the following file structure locally:" +msgstr "ສ້າງໂຄງສ້າງໄຟລ໌ຕໍ່ໄປນີ້ໃນເຄື່ອງຂອງທ່ານ:" + +#: ../source/tutorials/packaging-projects.rst:54 +msgid "" +"The directory containing the Python files should match the project name. " +"This simplifies the configuration and is more obvious to users who install " +"the package." +msgstr "" +"ໄດເຣັກທໍຣີທີ່ມີໄຟລ໌ Python ຄວນຈະມີຊື່ກົງກັບຊື່ໂຄງການ. ສິ່ງນີ້ຊ່ວຍໃຫ້ການຕັ້ງຄ່າງ່າຍຂຶ້ນ ແລະ " +"ເຮັດໃຫ້ຜູ້ໃຊ້ທີ່ຕິດຕັ້ງແພັກເກດເຂົ້າໃຈໄດ້ງ່າຍ." + +#: ../source/tutorials/packaging-projects.rst:57 +msgid "" +"Creating the file :file:`__init__.py` is recommended because the existence " +"of an :file:`__init__.py` file allows users to import the directory as a " +"regular package, even if (as is the case in this " +"tutorial) :file:`__init__.py` is empty. [#namespace-packages]_" +msgstr "" +"ການສ້າງໄຟລ໌ :file:`__init__.py` ແມ່ນໄດ້ຮັບການແນະນຳ ເພາະມັນຊ່ວຍໃຫ້ຜູ້ໃຊ້ສາມາດ import " +"ໄດເຣັກທໍຣີ ໃນຖານະແພັກເກດປົກກະຕິໄດ້, ເຖິງແມ່ນວ່າ (ຄືໃນບົດຮຽນນີ້) ໄຟລ໌ :file:`__init__.py` " +"ຈະຫວ່າງເປົ່າກໍຕາມ." + +#: ../source/tutorials/packaging-projects.rst:62 +msgid "" +":file:`example.py` is an example of a module within the package that could " +"contain the logic (functions, classes, constants, etc.) of your package. " +"Open that file and enter the following content:" +msgstr "" +":file:`example.py` ແມ່ນຕົວຢ່າງຂອງໂມດູນພາຍໃນແພັກເກດ ທີ່ອາດຈະມີສ່ວນຂອງການເຮັດວຽກ (ຟັງຊັນ, " +"ຄລາດ, ຄ່າຄົງທີ່ ແລະ ອື່ນໆ). ໃຫ້ເປີດໄຟລ໌ນັ້ນແລ້ວໃສ່ເນື້ອຫາຕໍ່ໄປນີ້:" + +#: ../source/tutorials/packaging-projects.rst:71 +msgid "" +"If you are unfamiliar with Python's :term:`modules ` " +"and :term:`import packages `, take a few minutes to read " +"over the `Python documentation for packages and modules`_." +msgstr "" +"ຖ້າທ່ານຍັງບໍ່ຄຸ້ນເຄີຍກັບ :term:`ໂມດູນ (modules) ` ແລະ :term:`ແພັກເກດ (import " +"packages) ` ຂອງ Python, ກະລຸນາສະລະເວລາອ່ານ `ເອກະສານຂອງ Python " +"ກ່ຽວກັບແພັກເກດ ແລະ ໂມດູນ`_." + +#: ../source/tutorials/packaging-projects.rst:75 +msgid "" +"Once you create this structure, you'll want to run all of the commands in " +"this tutorial within the ``packaging_tutorial`` directory." +msgstr "" +"ເມື່ອທ່ານສ້າງໂຄງສ້າງນີ້ແລ້ວ, ໃຫ້ລັນທຸກຄຳສັ່ງໃນບົດຮຽນນີ້ພາຍໃນໄດເຣັກທໍຣີ ``packaging_tutorial``." + +#: ../source/tutorials/packaging-projects.rst:83 +msgid "Creating the package files" +msgstr "ການສ້າງໄຟລ໌ຂອງແພັກເກດ" + +#: ../source/tutorials/packaging-projects.rst:85 +msgid "" +"You will now add files that are used to prepare the project for " +"distribution. When you're done, the project structure will look like this:" +msgstr "" +"ຕອນນີ້ທ່ານຈະເພີ່ມໄຟລ໌ຕ່າງໆ ທີ່ໃຊ້ໃນການກຽມໂຄງການເພື່ອການແຈກຢາຍ. ເມື່ອສຳເລັດແລ້ວ, " +"ໂຄງສ້າງໂຄງການຈະເປັນແບບນີ້:" + +#: ../source/tutorials/packaging-projects.rst:103 +msgid "Creating a test directory" +msgstr "ການສ້າງໄດເຣັກທໍຣີສຳລັບທົດສອບ" + +#: ../source/tutorials/packaging-projects.rst:105 +msgid ":file:`tests/` is a placeholder for test files. Leave it empty for now." +msgstr ":file:`tests/` ແມ່ນບ່ອນສຳລັບເກັບໄຟລ໌ທົດສອບ. ໃຫ້ປະມັນຫວ່າງໄວ້ກ່ອນໃນຕອນນີ້." + +#: ../source/tutorials/packaging-projects.rst:111 +msgid "Choosing a build backend" +msgstr "ການເລືອກ build backend" + +#: ../source/tutorials/packaging-projects.rst:113 +msgid "" +"Tools like :ref:`pip` and :ref:`build` do not actually convert your sources " +"into a :term:`distribution package ` (like a wheel); " +"that job is performed by a :term:`build backend `. The build " +"backend determines how your project will specify its configuration, " +"including metadata (information about the project, for example, the name and " +"tags that are displayed on PyPI) and input files. Build backends have " +"different levels of functionality, such as whether they support " +"building :term:`extension modules `, and you should choose " +"one that suits your needs and preferences." +msgstr "" +"ເຄື່ອງມືເຊັ່ນ :ref:`pip` ແລະ :ref:`build` " +"ບໍ່ໄດ້ເປັນໂຕປ່ຽນຊອດໂຄ້ດຂອງທ່ານໃຫ້ເປັນ :term:`ແພັກເກດການແຈກຢາຍ (distribution package) " +"` (ເຊັ່ນ wheel) ໂດຍກົງ; ໜ້າທີ່ນັ້ນແມ່ນຂອງ :term:`build backend " +"`. build backend ຈະເປັນໂຕກຳນົດວ່າ ໂຄງການຂອງທ່ານຈະລະບຸການຕັ້ງຄ່າແນວໃດ, " +"ລວມທັງເມຕາເດຕາ ແລະ ໄຟລ໌ຕ່າງໆ. build backend ແຕ່ລະໂຕມີລະດັບການເຮັດວຽກທີ່ຕ່າງກັນ, " +"ທ່ານຄວນເລືອກໂຕທີ່ເໝາະກັບຄວາມຕ້ອງການຂອງທ່ານ." + +#: ../source/tutorials/packaging-projects.rst:122 +msgid "" +"You can choose from a number of backends; this tutorial uses :ref:`Hatchling " +"` by default, but it will work identically " +"with :ref:`setuptools`, :ref:`Flit `, :ref:`PDM `, and others " +"that support the ``[project]`` table for :ref:`metadata `." +msgstr "" +"ທ່ານສາມາດເລືອກໃຊ້ backend ໄດ້ຫຼາຍໂຕ; ບົດຮຽນນີ້ໃຊ້ :ref:`Hatchling ` " +"ເປັນຄ່າເລີ່ມຕົ້ນ, ແຕ່ມັນກໍເຮັດວຽກໄດ້ຄືກັນກັບ :ref:`setuptools`, :ref:`Flit " +"`, :ref:`PDM ` ແລະ ໂຕອື່ນໆ ທີ່ຮອງຮັບຕາຕະລາງ ``[project]`` " +"ສຳລັບ :ref:`ເມຕາເດຕາ `." + +#: ../source/tutorials/packaging-projects.rst:129 +msgid "" +"Some build backends are part of larger tools that provide a command-line " +"interface with additional features like project initialization and version " +"management, as well as building, uploading, and installing packages. This " +"tutorial uses single-purpose tools that work independently." +msgstr "" +"ບາງ build backends ແມ່ນສ່ວນໜຶ່ງຂອງເຄື່ອງມືທີ່ໃຫຍ່ກວ່າ ເຊິ່ງສະໜອງອິນເຕີເຟດແບບບັນທັດຄຳສັ່ງ " +"(command-line interface) ພ້ອມກັບຄຸນສົມບັດເພີ່ມເຕີມ ເຊັ່ນ: ການເລີ່ມຕົ້ນໂປຣເຈັກ ແລະ " +"ການຈັດການເວີຊັນ, ລວມໄປເຖິງການສ້າງ, ການອັບໂຫຼດ, ແລະ ການຕິດຕັ້ງແພັກເກັດ. " +"ຄູ່ມືການສອນນີ້ໃຊ້ເຄື່ອງມືທີ່ມີຈຸດປະສົງດຽວ ເຊິ່ງເຮັດວຽກຢ່າງເປັນເອກະລາດ." + +#: ../source/tutorials/packaging-projects.rst:134 +msgid "" +"The :file:`pyproject.toml` tells :term:`build frontend ` " +"tools like :ref:`pip` and :ref:`build` which backend to use for your " +"project. Below are some examples for common build backends, but check your " +"backend's own documentation for more details." +msgstr "" +"ໄຟລ໌ :file:`pyproject.toml` ຈະບອກເຄື່ອງມື :term:`build frontend ` ເຊັ່ນ :ref:`pip` ແລະ :ref:`build` ວ່າຈະໃຊ້ backend ໃດສຳລັບໂຄງການຂອງທ່ານ." + +#: ../source/tutorials/packaging-projects.rst:141 +msgid "" +"The ``requires`` key is a list of packages that are needed to build your " +"package. The :term:`frontend ` should install them " +"automatically when building your package. Frontends usually run builds in " +"isolated environments, so omitting dependencies here may cause build-time " +"errors. This should always include your backend's package, and might have " +"other build-time dependencies. The minimum version specified in the above " +"code block is the one that introduced support for :ref:`the new license " +"metadata `." +msgstr "" +"ຄີ ``requires`` ແມ່ນລາຍຊື່ແພັກເກດທີ່ຈຳເປັນໃນການບິວແພັກເກດຂອງທ່ານ. :term:`frontend " +"` ຄວນຈະຕິດຕັ້ງພວກມັນໃຫ້ອັດຕະໂນມັດໃນເວລາບິວ. ປົກກະຕິແລ້ວ frontend " +"ຈະລັນການບິວໃນສະພາບແວດລ້ອມທີ່ແຍກຕ່າງຫາກ, ດັ່ງນັ້ນຖ້າຂາດສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ຢູ່ບ່ອນນີ້ " +"ກໍອາດຈະເຮັດໃຫ້ເກີດຂໍ້ຜິດພາດໃນເວລາບິວໄດ້." + +#: ../source/tutorials/packaging-projects.rst:150 +msgid "" +"The ``build-backend`` key is the name of the Python object that frontends " +"will use to perform the build." +msgstr "" +"ຄີ ``build-backend`` ແມ່ນຊື່ຂອງ Python object ທີ່ frontend ຈະໃຊ້ເພື່ອປະຕິບັດການບິວ." + +#: ../source/tutorials/packaging-projects.rst:153 +msgid "" +"Both of these values will be provided by the documentation for your build " +"backend, or generated by its command line interface. There should be no need " +"for you to customize these settings." +msgstr "" +"ຄ່າທັງສອງນີ້ຈະມີໃຫ້ໃນເອກະສານຂອງ build backend ຂອງທ່ານ ຫຼື ຖືກສ້າງຂຶ້ນໂດຍບັນທັດຄຳສັ່ງຂອງມັນ. " +"ທ່ານບໍ່ຈຳເປັນຕ້ອງປັບແຕ່ງຄ່າເຫຼົ່ານີ້ດ້ວຍຕົນເອງ." + +#: ../source/tutorials/packaging-projects.rst:157 +msgid "" +"Additional configuration of the build tool will either be in a ``tool`` " +"section of the ``pyproject.toml``, or in a special file defined by the build " +"tool. For example, when using ``setuptools`` as your build backend, " +"additional configuration may be added to a ``setup.py`` or ``setup.cfg`` " +"file, and specifying ``setuptools.build_meta`` in your build allows the " +"tools to locate and use these automatically." +msgstr "" +"ການຕັ້ງຄ່າເພີ່ມເຕີມຂອງເຄື່ອງມືບິວ ຈະຢູ່ໃນພາກສ່ວນ ``tool`` ຂອງ ``pyproject.toml`` ຫຼື " +"ໃນໄຟລ໌ພິເສດທີ່ກຳນົດໂດຍເຄື່ອງມືນັ້ນໆ." + +#: ../source/tutorials/packaging-projects.rst:167 +msgid "Configuring metadata" +msgstr "ການຕັ້ງຄ່າເມຕາເດຕາ" + +#: ../source/tutorials/packaging-projects.rst:169 +msgid "" +"Open :file:`pyproject.toml` and enter the following content. Change the " +"``name`` to include your username; this ensures that you have a unique " +"package name that doesn't conflict with packages uploaded by other people " +"following this tutorial." +msgstr "" +"ເປີດໄຟລ໌ :file:`pyproject.toml` ແລ້ວໃສ່ເນື້ອຫາຕໍ່ໄປນີ້. ປ່ຽນ ``name`` ໃຫ້ມີຊື່ຜູ້ໃຊ້ຂອງທ່ານນຳ " +"ເພື່ອໃຫ້ແນ່ໃຈວ່າຊື່ແພັກເກດຈະບໍ່ຊໍ້າກັບຂອງຄົນອື່ນ." + +#: ../source/tutorials/packaging-projects.rst:196 +msgid "" +"``name`` is the *distribution name* of your package. This can be any name as " +"long as it only contains letters, numbers, ``.``, ``_`` , and ``-``. It also " +"must not already be taken on PyPI. **Be sure to update this with your " +"username** for this tutorial, as this ensures you won't try to upload a " +"package with the same name as one which already exists." +msgstr "" +"``name`` ແມ່ນ *ຊື່ການແຈກຢາຍ* ຂອງແພັກເກດຂອງທ່ານ. ມັນສາມາດເປັນຊື່ອັນໃດກໍໄດ້ທີ່ປະກອບດ້ວຍ " +"ຕົວອັກສອນ, ຕົວເລກ, ``.``, ``_`` , ແລະ ``-``. ມັນຕ້ອງບໍ່ແມ່ນຊື່ທີ່ມີຄົນໃຊ້ແລ້ວໃນ PyPI." + +#: ../source/tutorials/packaging-projects.rst:201 +msgid "" +"``version`` is the package version. (Some build backends allow it to be " +"specified another way, such as from a file or Git tag.)" +msgstr "" +"``version`` ແມ່ນເວີຊັນຂອງແພັກເກດ. (build backend ບາງໂຕອາດຈະໃຫ້ລະບຸດ້ວຍວິທີອື່ນ ເຊັ່ນ " +"ຈາກໄຟລ໌ ຫຼື Git tag)." + +#: ../source/tutorials/packaging-projects.rst:203 +msgid "" +"``authors`` is used to identify the author of the package; you specify a " +"name and an email for each author. You can also list ``maintainers`` in the " +"same format." +msgstr "" +"``authors`` ໃຊ້ເພື່ອລະບຸຜູ້ຂຽນແພັກເກດ; ທ່ານສາມາດລະບຸຊື່ ແລະ ອີເມວສຳລັບຜູ້ຂຽນແຕ່ລະຄົນໄດ້. " +"ທ່ານຍັງສາມາດລະບຸ ``maintainers`` (ຜູ້ເບິ່ງແຍງ) ໃນຮູບແບບດຽວກັນໄດ້ອີກດ້ວຍ." + +#: ../source/tutorials/packaging-projects.rst:206 +msgid "``description`` is a short, one-sentence summary of the package." +msgstr "``description`` ແມ່ນຄຳອະທິບາຍຫຍໍ້ໆ ກ່ຽວກັບແພັກເກດພາຍໃນປະໂຫຍກດຽວ." + +#: ../source/tutorials/packaging-projects.rst:207 +msgid "" +"``readme`` is a path to a file containing a detailed description of the " +"package. This is shown on the package detail page on PyPI. In this case, the " +"description is loaded from :file:`README.md` (which is a common pattern). " +"There also is a more advanced table form described in " +"the :ref:`pyproject.toml guide `." +msgstr "" +"``readme`` ແມ່ນບ່ອນເກັບໄຟລ໌ທີ່ມີຄຳອະທິບາຍລະອຽດຂອງແພັກເກດ. ສິ່ງນີ້ຈະຖືກສະແດງໃນໜ້າ PyPI. " +"ໃນກໍລະນີນີ້, ຄຳອະທິບາຍແມ່ນມາຈາກໄຟລ໌ :file:`README.md`." + +#: ../source/tutorials/packaging-projects.rst:212 +msgid "" +"``requires-python`` gives the versions of Python supported by your project. " +"An installer like :ref:`pip` will look back through older versions of " +"packages until it finds one that has a matching Python version." +msgstr "" +"``requires-python`` ລະບຸເວີຊັນຂອງ Python ທີ່ໂຄງການຂອງທ່ານຮອງຮັບ. " +"ໂຕຕິດຕັ້ງເຊັ່ນ :ref:`pip` ຈະກວດສອບເວີຊັນທີ່ເຂົ້າກັນໄດ້ກ່ອນທຳການຕິດຕັ້ງ." + +#: ../source/tutorials/packaging-projects.rst:215 +msgid "" +"``classifiers`` gives the index and :ref:`pip` some additional metadata " +"about your package. In this case, the package is only compatible with Python " +"3 and is OS-independent. You should always include at least which version(s) " +"of Python your package works on and which operating systems your package " +"will work on. For a complete list of classifiers, see https://pypi.org/" +"classifiers/." +msgstr "" +"``classifiers`` ໃຫ້ຂໍ້ມູນເມຕາເດຕາເພີ່ມເຕີມແກ່ດັດຊະນີ ແລະ :ref:`pip`. ເຊັ່ນ " +"ລະບຸວ່າແພັກເກດນີ້ໃຊ້ໄດ້ກັບ Python 3 ແລະ ໃຊ້ໄດ້ກັບທຸກລະບົບປະຕິບັດການ." + +#: ../source/tutorials/packaging-projects.rst:222 +msgid "" +"``license`` is the :term:`SPDX license expression ` of " +"your :term:`Distribution Archive` files." +msgstr "" +"``license`` ແມ່ນ :term:`SPDX license expression ` ຂອງ " +"ໄຟລ໌ :term:`ແຟ້ມຈັດເກັບການແຈກຢາຍ (Distribution Archive)` ຂອງທ່ານ." + +#: ../source/tutorials/packaging-projects.rst:224 +msgid "" +"``license-files`` is the list of glob paths to the license files, relative " +"to the directory where :file:`pyproject.toml` is located." +msgstr "" +"``license-files`` ແມ່ນລາຍຊື່ທີ່ຢູ່ຂອງໄຟລ໌ໃບອະນຸຍາດ (license files) ໂດຍອ້າງອີງຈາກ " +"ໄດເຣັກທໍຣີທີ່ໄຟລ໌ :file:`pyproject.toml` ຕັ້ງຢູ່." + +#: ../source/tutorials/packaging-projects.rst:226 +msgid "" +"``urls`` lets you list any number of extra links to show on PyPI. Generally " +"this could be to the source, documentation, issue trackers, etc." +msgstr "" +"``urls`` ຊ່ວຍໃຫ້ທ່ານສາມາດໃສ່ລິ້ງເພີ່ມເຕີມເພື່ອສະແດງໃນ PyPI ໄດ້. " +"ໂດຍທົ່ວໄປແລ້ວຈະເປັນລິ້ງໄປຫາຊອດໂຄ້ດ, ເອກະສານອ້າງອີງ, ລະບົບຕິດຕາມບັນຫາ ແລະ ອື່ນໆ." + +#: ../source/tutorials/packaging-projects.rst:229 +msgid "" +"See the :ref:`pyproject.toml guide ` for details on " +"these and other fields that can be defined in the ``[project]`` table. Other " +"common fields are ``keywords`` to improve discoverability and the " +"``dependencies`` that are required to install your package." +msgstr "" +"ເບິ່ງ :ref:`pyproject.toml guide ` " +"ສຳລັບລາຍລະອຽດຂອງຟິວເຫຼົ່ານີ້ ແລະ ຟິວອື່ນໆ ໃນຕາຕະລາງ ``[project]``." + +#: ../source/tutorials/packaging-projects.rst:236 +msgid "Creating README.md" +msgstr "ການສ້າງ README.md" + +#: ../source/tutorials/packaging-projects.rst:238 +msgid "" +"Open :file:`README.md` and enter the following content. You can customize " +"this if you'd like." +msgstr "ເປີດໄຟລ໌ :file:`README.md` ແລ້ວໃສ່ເນື້ອຫາຕໍ່ໄປນີ້. ທ່ານສາມາດປັບແຕ່ງໄດ້ຕາມໃຈ." + +#: ../source/tutorials/packaging-projects.rst:251 +msgid "Creating a LICENSE" +msgstr "ການສ້າງ LICENSE" + +#: ../source/tutorials/packaging-projects.rst:253 +msgid "" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" +msgstr "" +"ມັນສຳຄັນຫຼາຍທີ່ທຸກໆ :term:`ແຟ້ມຈັດເກັບການແຈກຢາຍ` ທີ່ອັບໂຫຼດຂຶ້ນ PyPI ຈະຕ້ອງມີໃບອະນຸຍາດ " +"(license). ສິ່ງນີ້ຈະບອກຜູ້ໃຊ້ກ່ຽວກັບເງື່ອນໄຂການນຳໃຊ້. ທ່ານສາມາດເລືອກໃບອະນຸຍາດໄດ້ທີ່ https://" +"choosealicense.com/." + +#: ../source/tutorials/packaging-projects.rst:282 +msgid "" +"Most build backends automatically include license files in packages. See " +"your backend's documentation for more details. If you include the path to " +"license in the ``license-files`` key of :file:`pyproject.toml`, and your " +"build backend supports :pep:`639`, the file will be automatically included " +"in the package." +msgstr "" +"ສ່ວນໃຫຍ່ຂອງລະບົບເບື້ອງຫຼັງການບິວດ໌ຈະລວມເອົາໄຟລ໌ໃບອະນຸຍາດເຂົ້າໃນແພັກເກດໂດຍອັດຕະໂນມັດ. " +"ເບິ່ງເອກະສານຂອງລະບົບເບື້ອງຫຼັງຂອງທ່ານສຳລັບລາຍລະອຽດເພີ່ມເຕີມ. " +"ຖ້າທ່ານລວມເອົາເສັ້ນທາງໄປຫາໃບອະນຸຍາດໃນຄີ ``license-files`` " +"ຂອງ :file:`pyproject.toml`, ແລະ ລະບົບເບື້ອງຫຼັງການບິວດ໌ຂອງທ່ານຮອງຮັບ :pep:`639`, " +"ໄຟລ໌ດັ່ງກ່າວຈະຖືກລວມເຂົ້າໃນແພັກເກດໂດຍອັດຕະໂນມັດ." + +#: ../source/tutorials/packaging-projects.rst:290 +msgid "Including other files" +msgstr "ການລວມໄຟລ໌ອື່ນໆ" + +#: ../source/tutorials/packaging-projects.rst:292 +msgid "" +"The files listed above will be included automatically in your :term:`source " +"distribution `. If you want to include " +"additional files, see the documentation for your build backend." +msgstr "" +"ໄຟລ໌ທີ່ລະບຸໄວ້ຂ້າງເທິງຈະຖືກລວມເຂົ້າໃນ :term:`source distribution (sdist)` ໂດຍອັດຕະໂນມັດ." + +#: ../source/tutorials/packaging-projects.rst:299 +msgid "Generating distribution archives" +msgstr "ການສ້າງແຟ້ມຈັດເກັບການແຈກຢາຍ" + +#: ../source/tutorials/packaging-projects.rst:301 +msgid "" +"The next step is to generate :term:`distribution packages ` for the package. These are archives that are uploaded to the " +"Python Package Index and can be installed by :ref:`pip`." +msgstr "" +"ຂັ້ນຕອນຕໍ່ໄປແມ່ນການສ້າງ :term:`ແພັກເກດການແຈກຢາຍ `. " +"ສິ່ງເຫຼົ່ານີ້ແມ່ນໄຟລ໌ບີບອັດທີ່ຈະຖືກອັບໂຫຼດຂຶ້ນ PyPI ແລະ ສາມາດຕິດຕັ້ງໄດ້ໂດຍ :ref:`pip`." + +#: ../source/tutorials/packaging-projects.rst:305 +msgid "Make sure you have the latest version of PyPA's :ref:`build` installed:" +msgstr "ກວດສອບໃຫ້ແນ່ໃຈວ່າທ່ານໄດ້ຕິດຕັ້ງ :ref:`build` ຂອງ PyPA ເວີຊັນລ່າສຸດແລ້ວ:" + +#: ../source/tutorials/packaging-projects.rst:319 +msgid "" +"If you have trouble installing these, see the :doc:`installing-packages` " +"tutorial." +msgstr "ຖ້າທ່ານພົບຄວາມຫຍຸ້ງຍາກໃນການຕິດຕັ້ງ, ໃຫ້ເບິ່ງບົດຮຽນ :doc:`installing-packages`." + +#: ../source/tutorials/packaging-projects.rst:322 +msgid "" +"Now run this command from the same directory where :file:`pyproject.toml` is " +"located:" +msgstr "ບາດນີ້ໃຫ້ລັນຄຳສັ່ງນີ້ຈາກໄດເຣັກທໍຣີດຽວກັນກັບທີ່ໄຟລ໌ :file:`pyproject.toml` ຕັ້ງຢູ່:" + +#: ../source/tutorials/packaging-projects.rst:336 +msgid "" +"This command should output a lot of text and once completed should generate " +"two files in the :file:`dist` directory:" +msgstr "" +"ຄຳສັ່ງນີ້ຈະສະແດງຂໍ້ຄວາມຈຳນວນຫຼາຍ ແລະ ເມື່ອສຳເລັດແລ້ວ ມັນຈະສ້າງໄຟລ໌ 2 " +"ໄຟລ໌ໃນໄດເຣັກທໍຣີ :file:`dist`:" + +#: ../source/tutorials/packaging-projects.rst:346 +msgid "" +"The ``tar.gz`` file is a :term:`source distribution ` whereas the ``.whl`` file is a :term:`built distribution `. Newer :ref:`pip` versions preferentially install built " +"distributions, but will fall back to source distributions if needed. You " +"should always upload a source distribution and provide built distributions " +"for the platforms your project is compatible with. In this case, our example " +"package is compatible with Python on any platform so only one built " +"distribution is needed." +msgstr "" +"ໄຟລ໌ ``tar.gz`` ແມ່ນ :term:`source distribution (sdist)` ສ່ວນໄຟລ໌ ``.whl`` " +"ແມ່ນ :term:`built distribution`. pip ເວີຊັນໃໝ່ຈະເລືອກຕິດຕັ້ງ built distribution ກ່ອນ." + +#: ../source/tutorials/packaging-projects.rst:355 +msgid "Uploading the distribution archives" +msgstr "ການອັບໂຫຼດແຟ້ມຈັດເກັບການແຈກຢາຍ" + +#: ../source/tutorials/packaging-projects.rst:357 +msgid "Finally, it's time to upload your package to the Python Package Index!" +msgstr "ສຸດທ້າຍ, ກໍເຖິງເວລາທີ່ຈະອັບໂຫຼດແພັກເກດຂອງທ່ານຂຶ້ນ Python Package Index ແລ້ວ!" + +#: ../source/tutorials/packaging-projects.rst:359 +msgid "" +"The first thing you'll need to do is register an account on TestPyPI, which " +"is a separate instance of the package index intended for testing and " +"experimentation. It's great for things like this tutorial where we don't " +"necessarily want to upload to the real index. To register an account, go to " +"https://test.pypi.org/account/register/ and complete the steps on that page. " +"You will also need to verify your email address before you're able to upload " +"any packages. For more details, see :doc:`/guides/using-testpypi`." +msgstr "" +"ສິ່ງທຳອິດທີ່ຕ້ອງເຮັດແມ່ນລົງທະບຽນບັນຊີໃນ TestPyPI ເຊິ່ງເປັນບ່ອນທົດສອບແຍກຕ່າງຫາກ. " +"ມັນດີຫຼາຍສຳລັບການທົດລອງ ເພາະພວກເຮົາບໍ່ຕ້ອງການອັບໂຫຼດຂຶ້ນດັດຊະນີແທ້." + +#: ../source/tutorials/packaging-projects.rst:367 +msgid "" +"To securely upload your project, you'll need a PyPI `API token`_. Create one " +"at https://test.pypi.org/manage/account/#api-tokens, setting the \"Scope\" " +"to \"Entire account\". **Don't close the page until you have copied and " +"saved the token — you won't see that token again.**" +msgstr "" +"ເພື່ອອັບໂຫຼດຢ່າງປອດໄພ, ທ່ານຕ້ອງມີ PyPI `API token`_. ສ້າງມັນໄດ້ທີ່ https://test.pypi.org/" +"manage/account/#api-tokens." + +#: ../source/tutorials/packaging-projects.rst:374 +msgid "" +"Now that you are registered, you can use :ref:`twine` to upload the " +"distribution packages. You'll need to install Twine:" +msgstr "" +"ເມື່ອລົງທະບຽນແລ້ວ, ທ່ານສາມາດໃຊ້ :ref:`twine` ເພື່ອອັບໂຫຼດແພັກເກດໄດ້. ທ່ານຕ້ອງຕິດຕັ້ງ Twine " +"ກ່ອນ:" + +#: ../source/tutorials/packaging-projects.rst:389 +msgid "" +"Once installed, run Twine to upload all of the archives under :file:`dist`:" +msgstr "ເມື່ອຕິດຕັ້ງແລ້ວ, ໃຫ້ລັນ Twine ເພື່ອອັບໂຫຼດທຸກໄຟລ໌ໃນ :file:`dist`:" + +#: ../source/tutorials/packaging-projects.rst:403 +msgid "" +"You will be prompted for an API token. Use the token value, including the " +"``pypi-`` prefix. Note that the input will be hidden, so be sure to paste " +"correctly." +msgstr "" +"ລະບົບຈະຖາມຫາ API token. ໃຫ້ໃຊ້ຄ່າ token ທີ່ໄດ້ມາ (ລວມທັງຄຳນຳໜ້າ ``pypi-``). ໝາຍເຫດ: " +"ຂໍ້ຄວາມທີ່ປ້ອນຈະຖືກເຊື່ອງໄວ້, ດັ່ງນັ້ນໃຫ້ກວດສອບວ່າວາງຂໍ້ມູນຖືກຕ້ອງ." + +#: ../source/tutorials/packaging-projects.rst:406 +msgid "After the command completes, you should see output similar to this:" +msgstr "ຫຼັງຈາກຄຳສັ່ງເຮັດວຽກສຳເລັດ, ທ່ານຄວນເຫັນຂໍ້ຄວາມປະມານນີ້:" + +#: ../source/tutorials/packaging-projects.rst:417 +msgid "" +"Once uploaded, your package should be viewable on TestPyPI; for example: " +"``https://test.pypi.org/project/example_package_YOUR_USERNAME_HERE``." +msgstr "ເມື່ອອັບໂຫຼດແລ້ວ, ທ່ານສາມາດເບິ່ງແພັກເກດຂອງທ່ານໃນ TestPyPI ໄດ້." + +#: ../source/tutorials/packaging-projects.rst:422 +msgid "Installing your newly uploaded package" +msgstr "ການຕິດຕັ້ງແພັກເກດທີ່ທ່ານຫາກໍອັບໂຫຼດໃໝ່" + +#: ../source/tutorials/packaging-projects.rst:424 +msgid "" +"You can use :ref:`pip` to install your package and verify that it works. " +"Create a :ref:`virtual environment ` and install your package from TestPyPI:" +msgstr "" +"ທ່ານສາມາດໃຊ້ :ref:`pip` ເພື່ອຕິດຕັ້ງແພັກເກດ ແລະ ກວດສອບວ່າມັນໃຊ້ງານໄດ້ບໍ່. " +"ໃຫ້ສ້າງ :ref:`ສະພາບແວດລ້ອມສະເໝືອນ ` " +"ແລ້ວຕິດຕັ້ງແພັກເກດຈາກ TestPyPI:" + +#: ../source/tutorials/packaging-projects.rst:440 +msgid "Make sure to specify your username in the package name!" +msgstr "ຢ່າລືມລະບຸຊື່ຜູ້ໃຊ້ຂອງທ່ານໃນຊື່ແພັກເກດນຳ!" + +#: ../source/tutorials/packaging-projects.rst:442 +msgid "" +"pip should install the package from TestPyPI and the output should look " +"something like this:" +msgstr "pip ຈະຕິດຕັ້ງແພັກເກດຈາກ TestPyPI ແລະ ຂໍ້ຄວາມສະແດງຜົນຄວນເປັນປະມານນີ້:" + +#: ../source/tutorials/packaging-projects.rst:452 +msgid "" +"This example uses ``--index-url`` flag to specify TestPyPI instead of live " +"PyPI. Additionally, it specifies ``--no-deps``. Since TestPyPI doesn't have " +"the same packages as the live PyPI, it's possible that attempting to install " +"dependencies may fail or install something unexpected. While our example " +"package doesn't have any dependencies, it's a good practice to avoid " +"installing dependencies when using TestPyPI." +msgstr "" +"ຕົວຢ່າງນີ້ໃຊ້ flag ``--index-url`` ເພື່ອລະບຸ TestPyPI ແທນ PyPI ໂຕຈິງ. ນອກຈາກນັ້ນ, " +"ຍັງມີການໃຊ້ ``--no-deps`` ເພື່ອປ້ອງກັນການຕິດຕັ້ງສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ທີ່ອາດຈະບໍ່ມີໃນ TestPyPI." + +#: ../source/tutorials/packaging-projects.rst:459 +msgid "" +"You can test that it was installed correctly by importing the package. Make " +"sure you're still in your virtual environment, then run Python:" +msgstr "" +"ທ່ານສາມາດທົດສອບວ່າແພັກເກດຖືກຕິດຕັ້ງຖືກຕ້ອງຫຼືບໍ່ ໂດຍການ import ແພັກເກດ. " +"ກວດສອບວ່າທ່ານຍັງຢູ່ໃນສະພາບແວດລ້ອມສະເໝືອນ, ແລ້ວລັນ Python:" + +#: ../source/tutorials/packaging-projects.rst:474 +msgid "and import the package:" +msgstr "ແລ້ວ import ແພັກເກດ:" + +#: ../source/tutorials/packaging-projects.rst:486 +msgid "" +"**Congratulations, you've packaged and distributed a Python project!** ✨ 🍰 " +"✨" +msgstr "" +"**ຂໍສະແດງຄວາມຍິນດີ, ທ່ານໄດ້ເຮັດແພັກເກດ ແລະ ແຈກຢາຍໂຄງການ Python ຮຽບຮ້ອຍແລ້ວ!** ✨ 🍰 ✨" + +#: ../source/tutorials/packaging-projects.rst:489 +msgid "" +"Keep in mind that this tutorial showed you how to upload your package to " +"Test PyPI, which isn't a permanent storage. The Test system occasionally " +"deletes packages and accounts. It is best to use TestPyPI for testing and " +"experiments like this tutorial." +msgstr "" +"ຄວນຈື່ໄວ້ວ່າບົດຮຽນນີ້ແມ່ນການອັບໂຫຼດຂຶ້ນ Test PyPI ເຊິ່ງບໍ່ແມ່ນບ່ອນເກັບຂໍ້ມູນຖາວອນ. " +"ລະບົບທົດສອບຈະມີການລຶບແພັກເກດ ແລະ ບັນຊີເປັນໄລຍະ." + +#: ../source/tutorials/packaging-projects.rst:494 +msgid "" +"When you are ready to upload a real package to the Python Package Index you " +"can do much the same as you did in this tutorial, but with these important " +"differences:" +msgstr "" +"ເມື່ອທ່ານພ້ອມທີ່ຈະອັບໂຫຼດແພັກເກດແທ້ຂຶ້ນ PyPI, ທ່ານສາມາດເຮັດຕາມຂັ້ນຕອນດຽວກັນນີ້ " +"ແຕ່ມີຂໍ້ແຕກຕ່າງທີ່ສຳຄັນດັ່ງນີ້:" + +#: ../source/tutorials/packaging-projects.rst:498 +msgid "" +"Choose a memorable and unique name for your package. You don't have to " +"append your username as you did in the tutorial, but you can't use an " +"existing name." +msgstr "" +"ເລືອກຊື່ທີ່ຈໍານ່າຍ ແລະ ບໍ່ຊໍ້າກັບໃຜ. ທ່ານບໍ່ຈຳເປັນຕ້ອງໃສ່ຊື່ຜູ້ໃຊ້ທາງທ້າຍຄືໃນບົດຮຽນ, " +"ແຕ່ຕ້ອງບໍ່ແມ່ນຊື່ທີ່ມີຄົນໃຊ້ແລ້ວ." + +#: ../source/tutorials/packaging-projects.rst:500 +msgid "" +"Register an account on https://pypi.org - note that these are two separate " +"servers and the login details from the test server are not shared with the " +"main server." +msgstr "" +"ລົງທະບຽນບັນຊີໃນ https://pypi.org - ໝາຍເຫດ: ມັນເປັນຄົນລະເຊີເວີກັນ ແລະ " +"ຂໍ້ມູນການເຂົ້າລະບົບກໍບໍ່ໄດ້ໃຊ້ຮ່ວມກັນ." + +#: ../source/tutorials/packaging-projects.rst:503 +msgid "" +"Use ``twine upload dist/*`` to upload your package and enter your " +"credentials for the account you registered on the real PyPI. Now that " +"you're uploading the package in production, you don't need to specify ``--" +"repository``; the package will upload to https://pypi.org/ by default." +msgstr "" +"ໃຊ້ ``twine upload dist/*`` ເພື່ອອັບໂຫຼດແພັກເກດຂອງທ່ານ. ຕອນນີ້ທ່ານບໍ່ຈຳເປັນຕ້ອງລະບຸ ``--" +"repository`` ແລ້ວ ເພາະມັນຈະອັບໂຫຼດຂຶ້ນ pypi.org ເປັນຄ່າເລີ່ມຕົ້ນ." + +#: ../source/tutorials/packaging-projects.rst:507 +msgid "" +"Install your package from the real PyPI using ``python3 -m pip install [your-" +"package]``." +msgstr "" +"ຕິດຕັ້ງແພັກເກດຂອງທ່ານຈາກ PyPI ແທ້ໂດຍໃຊ້ ``python3 -m pip install [ຊື່ແພັກເກດຂອງທ່ານ]``." + +#: ../source/tutorials/packaging-projects.rst:509 +msgid "" +"At this point if you want to read more on packaging Python libraries here " +"are some things you can do:" +msgstr "" +"ມາຮອດຈຸດນີ້, ຖ້າທ່ານຕ້ອງການອ່ານເພີ່ມເຕີມກ່ຽວກັບການເຮັດແພັກເກັດຄັງສະໝຸດ Python, " +"ນີ້ແມ່ນບາງສິ່ງທີ່ທ່ານສາມາດເຮັດໄດ້:" + +#: ../source/tutorials/packaging-projects.rst:512 +msgid "" +"Read about advanced configuration for your chosen build backend: `Hatchling " +"`_, :doc:`setuptools `, :doc:`Flit `, `PDM `_." +msgstr "" +"ອ່ານກ່ຽວກັບການຕັ້ງຄ່າຂັ້ນສູງສຳລັບ build backend ທີ່ທ່ານເລືອກ: `Hatchling`, `setuptools`, " +"`Flit`, `PDM`." + +#: ../source/tutorials/packaging-projects.rst:516 +msgid "" +"Look at the :doc:`guides ` on this site for more advanced " +"practical information, or the :doc:`discussions ` for " +"explanations and background on specific topics." +msgstr "" +"ເບິ່ງ :doc:`ຄຳແນະນຳ (guides) ` ໃນເວັບໄຊນີ້ສຳລັບຂໍ້ມູນການໃຊ້ງານຂັ້ນສູງ." + +#: ../source/tutorials/packaging-projects.rst:519 +msgid "" +"Consider packaging tools that provide a single command-line interface for " +"project management and packaging, such " +"as :ref:`hatch`, :ref:`flit`, :ref:`pdm`, and :ref:`poetry`." +msgstr "" +"ລອງພິຈາລະນາໃຊ້ເຄື່ອງມືເຮັດແພັກເກດທີ່ມີບັນທັດຄຳສັ່ງດຽວສຳລັບການຈັດການໂຄງການ " +"ເຊັ່ນ :ref:`hatch`, :ref:`flit`, :ref:`pdm`, ແລະ :ref:`poetry`." + +#: ../source/tutorials/packaging-projects.rst:527 +msgid "Notes" +msgstr "ໝາຍເຫດ" + +#: ../source/tutorials/packaging-projects.rst:529 +msgid "" +"Technically, you can also create Python packages without an ``__init__.py`` " +"file, but those are called :doc:`namespace packages ` and considered an **advanced topic** (not covered in " +"this tutorial). If you are only getting started with Python packaging, it is " +"recommended to stick with *regular packages* and ``__init__.py`` (even if " +"the file is empty)." +msgstr "" +"ຕາມຫຼັກການແລ້ວ, ທ່ານສາມາດສ້າງແພັກເກດ Python ໂດຍບໍ່ມີໄຟລ໌ ``__init__.py`` ໄດ້, " +"ແຕ່ພວກມັນຈະຖືກເອີ້ນວ່າ :doc:`namespace packages ` ເຊິ່ງເປັນ **ຫົວຂໍ້ຂັ້ນສູງ**. ຖ້າທ່ານຫາກໍເລີ່ມຕົ້ນ, ແນະນຳໃຫ້ໃຊ້ *ແພັກເກດປົກກະຕິ* ແລະ " +"ມີໄຟລ໌ ``__init__.py`` ຈະດີກວ່າ." diff --git a/locales/lzh/LC_MESSAGES/messages.po b/locales/lzh/LC_MESSAGES/messages.po index fb6fe1af9..cc57fd399 100644 --- a/locales/lzh/LC_MESSAGES/messages.po +++ b/locales/lzh/LC_MESSAGES/messages.po @@ -3,21 +3,22 @@ # This file is distributed under the same license as the Python Packaging User Guide package. # 王玎珰 <1330274738@qq.com>, 2023. # maker , 2024. +# Haozhe Xu , 2026. msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" -"PO-Revision-Date: 2024-01-31 06:01+0000\n" -"Last-Translator: maker \n" -"Language-Team: Chinese (Literary) \n" +"Language-Team: Literary Chinese \n" "Language: lzh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.4-dev\n" +"X-Generator: Weblate 2026.9.dev0\n" #: ../source/contribute.rst:5 msgid "Contribute to this guide" @@ -27,15 +28,15 @@ msgstr "助此引" msgid "" "The |PyPUG| welcomes contributors! There are lots of ways to help out, " "including:" -msgstr "" +msgstr "|PyPUG| 迎贡献者也!为是以助也:" #: ../source/contribute.rst:10 msgid "Reading the guide and giving feedback" -msgstr "" +msgstr "阅此引而反馈者也" #: ../source/contribute.rst:11 msgid "Reviewing new contributions" -msgstr "" +msgstr "顾新贡献者" #: ../source/contribute.rst:12 msgid "Revising existing content" @@ -43,11 +44,11 @@ msgstr "" #: ../source/contribute.rst:13 msgid "Writing new content" -msgstr "" +msgstr "书新文" #: ../source/contribute.rst:14 msgid "Translating the guide" -msgstr "" +msgstr "译此引" #: ../source/contribute.rst:16 msgid "" @@ -61,11 +62,11 @@ msgstr "" msgid "" "By contributing to the |PyPUG|, you're expected to follow the PSF's `Code of " "Conduct`__." -msgstr "" +msgstr "汝可助 |PyPUG| ,而随 PSF 之 `Code of Conduct`__ 。" #: ../source/contribute.rst:32 msgid "Documentation types" -msgstr "" +msgstr "档之类" #: ../source/contribute.rst:34 msgid "" @@ -90,7 +91,7 @@ msgstr "" #: ../source/contribute.rst:51 ../source/guides/index.rst:2 #: ../source/index.rst:69 msgid "Guides" -msgstr "" +msgstr "引" #: ../source/contribute.rst:53 msgid "" @@ -104,7 +105,7 @@ msgstr "" #: ../source/contribute.rst:60 ../source/discussions/index.rst:2 msgid "Discussions" -msgstr "" +msgstr "论" #: ../source/contribute.rst:62 msgid "" @@ -112,10 +113,12 @@ msgid "" "specific topic without a specific goal in mind. :doc:`example discussion-" "style document `." msgstr "" +"论者,释与信息也。是可免细思而探新题也。:doc:`引档之例 `。" #: ../source/contribute.rst:67 msgid "Specifications" -msgstr "" +msgstr "指定" #: ../source/contribute.rst:69 msgid "" @@ -127,28 +130,30 @@ msgstr "" #: ../source/contribute.rst:75 msgid "Translations" -msgstr "" +msgstr "译文" #: ../source/contribute.rst:77 msgid "" "We use `Weblate`_ to manage translations of this project. Please visit the " "`packaging.python.org`_ project on Weblate to contribute." msgstr "" +"吾以 `Weblate`_ 辖此项之译文也。汝可访 `packaging.python.org`_ 于Weblate以" +"助。" #: ../source/contribute.rst:80 msgid "" "If you are experiencing issues while you are working on translations, please " "open an issue on `GitHub`_." -msgstr "" +msgstr "若汝译之而感不佳,可开一issue于 `GitHub`_ 。" #: ../source/contribute.rst:85 msgid "" "Any translations of this project should follow `reStructuredText syntax`_." -msgstr "" +msgstr "此项之译均须循 `reStructedText syntax`_ 之法。" #: ../source/contribute.rst:93 msgid "Adding a language" -msgstr "" +msgstr "增一语言" #: ../source/contribute.rst:95 msgid "" @@ -4491,8 +4496,8 @@ msgstr "" #: ../source/guides/creating-and-discovering-plugins.rst:167 msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8566,13 +8571,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8580,23 +8592,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8607,21 +8619,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8629,7 +8641,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8637,37 +8649,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8675,7 +8687,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8684,7 +8696,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/mk/LC_MESSAGES/messages.po b/locales/mk/LC_MESSAGES/messages.po index dbb8d0e6c..d6399c8a4 100644 --- a/locales/mk/LC_MESSAGES/messages.po +++ b/locales/mk/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2023-10-21 04:04+0000\n" "Last-Translator: \"Kristijan \\\"Fremen\\\" Velkovski\" \n" "Language-Team: Macedonian `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8572,13 +8572,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8586,23 +8593,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8613,21 +8620,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8635,7 +8642,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8643,37 +8650,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8681,7 +8688,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8690,7 +8697,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/mr/LC_MESSAGES/messages.po b/locales/mr/LC_MESSAGES/messages.po index 30d8fa1e4..29f2c961c 100644 --- a/locales/mr/LC_MESSAGES/messages.po +++ b/locales/mr/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2025-01-25 14:18+0000\n" "Last-Translator: Prachi Joshi \n" "Language-Team: Marathi `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8563,13 +8563,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8577,23 +8584,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8604,21 +8611,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8626,7 +8633,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8634,37 +8641,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8672,7 +8679,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8681,7 +8688,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/mrh/LC_MESSAGES/messages.po b/locales/mrh/LC_MESSAGES/messages.po index 3c5a3e098..864961596 100644 --- a/locales/mrh/LC_MESSAGES/messages.po +++ b/locales/mrh/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2026-05-05 16:17+0000\n" "Last-Translator: Laitei \n" "Language-Team: Mara `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8563,13 +8563,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8577,23 +8584,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8604,21 +8611,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8626,7 +8633,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8634,37 +8641,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8672,7 +8679,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8681,7 +8688,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/my/LC_MESSAGES/messages.po b/locales/my/LC_MESSAGES/messages.po index b6a8be281..95b066099 100644 --- a/locales/my/LC_MESSAGES/messages.po +++ b/locales/my/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -4486,8 +4486,8 @@ msgstr "" #: ../source/guides/creating-and-discovering-plugins.rst:167 msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8561,13 +8561,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8575,23 +8582,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8602,21 +8609,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8624,7 +8631,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8632,37 +8639,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8670,7 +8677,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8679,7 +8686,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/pl/LC_MESSAGES/messages.po b/locales/pl/LC_MESSAGES/messages.po index de7dd6428..a3d6d656b 100644 --- a/locales/pl/LC_MESSAGES/messages.po +++ b/locales/pl/LC_MESSAGES/messages.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" -"PO-Revision-Date: 2026-02-11 07:09+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" +"PO-Revision-Date: 2026-08-23 23:51+0000\n" "Last-Translator: Maciej Olko \n" "Language-Team: Polish \n" @@ -19,7 +19,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -"X-Generator: Weblate 5.16-dev\n" +"X-Generator: Weblate 2026.9.dev0\n" #: ../source/contribute.rst:5 msgid "Contribute to this guide" @@ -4510,8 +4510,8 @@ msgstr "" #: ../source/guides/creating-and-discovering-plugins.rst:167 msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8585,13 +8585,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8599,23 +8606,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8626,21 +8633,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8648,7 +8655,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8656,37 +8663,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8694,7 +8701,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8703,7 +8710,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." @@ -10290,7 +10297,7 @@ msgstr "" #: ../source/index.rst:3 ../source/key_projects.rst:247 msgid "Python Packaging User Guide" -msgstr "" +msgstr "Podręcznik użytkownika pakietów Pythona" #: ../source/index.rst:25 msgid "" @@ -10298,6 +10305,9 @@ msgid "" "references to help you distribute and install Python packages with modern " "tools." msgstr "" +"Witamy w *Podręczniku użytkownika pakietów Pythona* – zbiorze samouczków i " +"materiałów referencyjnych, które pomogą Ci w dystrybucji i instalacji " +"pakietów w języku Python przy użyciu nowoczesnych narzędzi." #: ../source/index.rst:29 msgid "" @@ -10305,10 +10315,13 @@ msgid "" "Authority `. We happily accept :doc:`contributions and feedback " "`. 😊" msgstr "" +"Niniejszy przewodnik jest utrzymywany na `GitHub`_ przez :doc:`Python " +"Packaging Authority `. Z radością przyjmujemy :doc:`wkład i " +"opinie `. 😊" #: ../source/index.rst:36 msgid "Overview and Flow" -msgstr "" +msgstr "Przegląd i przebieg" #: ../source/index.rst:40 msgid "" @@ -10316,6 +10329,10 @@ msgid "" "continuous improvement are key to success. The overview and flow sections " "provide a starting point for understanding the Python packaging ecosystem." msgstr "" +"Zgłębianie wiedzy na temat pakietów w języku Python to długa droga. Kluczem " +"do sukcesu są cierpliwość i ciągłe doskonalenie się. Sekcje poświęcone " +"przeglądowi i przebiegowi procesu stanowią punkt wyjścia do zrozumienia " +"ekosystemu pakietów w języku Python." #: ../source/index.rst:44 msgid "" diff --git a/locales/pt/LC_MESSAGES/messages.po b/locales/pt/LC_MESSAGES/messages.po index e42b26768..3f966e585 100644 --- a/locales/pt/LC_MESSAGES/messages.po +++ b/locales/pt/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2026-06-14 08:02+0000\n" "Last-Translator: ssantos \n" "Language-Team: Portuguese ` ." #: ../source/guides/creating-and-discovering-plugins.rst:167 +#, fuzzy +#| msgid "" +#| "Since this specification is part of the :doc:`standard library " +#| "`, most packaging tools other than " +#| "setuptools provide support for defining entry points." msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" "Visto que esta especificação é parte da :doc:`biblioteca padrão " "`, a maioria das ferramentas de " @@ -10788,7 +10793,14 @@ msgstr "" "TestPyPI respectivamente e um trabalho adicional para construir os pacotes " "de distribuição." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" @@ -10796,7 +10808,7 @@ msgstr "" "Primeiro, definiremos o trabalho para construir os pacotes dist do seu " "projeto e armazená-los para uso posterior:" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -10804,7 +10816,7 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." @@ -10812,7 +10824,7 @@ msgstr "" "Isto descarregará o seu repositório no executor de CI e, em seguida, " "instalará e ativará o lançamento mais recente disponível do Python 3." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" @@ -10820,11 +10832,11 @@ msgstr "" "E agora podemos construir os dists a partir da fonte e armazená-los. Neste " "exemplo, usaremos o pacote ``build``. Então, adicione isto à lista de etapas:" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "Definir um ambiente de tarefa do fluxo de trabalho" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -10835,7 +10847,7 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." @@ -10843,15 +10855,15 @@ msgstr "" "Isto também garantirá que o fluxo de trabalho de publicação do PyPI só seja " "acionado se o commit atual estiver marcado." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "Publicar a distribuição para PyPI" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "Finalmente, adicione as seguintes etapas ao final:" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -10863,7 +10875,7 @@ msgstr "" "`download-artifact`_, ele envia o conteúdo da pasta ``dist /`` para PyPI " "incondicionalmente." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -10871,11 +10883,11 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "Fluxo de trabalho separado para publicação no TestPyPI" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" @@ -10883,7 +10895,7 @@ msgstr "" "Agora, repita estas etapas e crie outro trabalho para publicação no índice " "do pacote TestPyPI na secção ``jobs``:" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " @@ -10894,21 +10906,21 @@ msgstr "" "branch principal e é frequentemente usado para indicar um pipeline de " "publicação de lançamento íntegro." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "O fluxo de trabalho de CI/CD completo" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" "Este parágrafo mostra todo o fluxo de trabalho após seguir o guia acima." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "Isso é tudo, pessoal!" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -10921,7 +10933,7 @@ msgstr "" "construções de teste para os seus utilizadores alfa, bem como garantir que a " "sua versão pipeline permaneça saudável!" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -10936,7 +10948,7 @@ msgstr "" "um servidor compatível com PyPI como :ref:`pypiserver` no CI para fins de " "teste." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/pt_BR/LC_MESSAGES/messages.po b/locales/pt_BR/LC_MESSAGES/messages.po index b97a0082b..8a4e24034 100644 --- a/locales/pt_BR/LC_MESSAGES/messages.po +++ b/locales/pt_BR/LC_MESSAGES/messages.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2025-08-07 00:01+0000\n" "Last-Translator: Rafael Fontenelle \n" "Language-Team: Portuguese (Brazil) ` ." #: ../source/guides/creating-and-discovering-plugins.rst:167 +#, fuzzy +#| msgid "" +#| "Since this specification is part of the :doc:`standard library " +#| "`, most packaging tools other than " +#| "setuptools provide support for defining entry points." msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" "Visto que esta especificação é parte da :doc:`biblioteca padrão " "`, a maioria das ferramentas de " @@ -11389,7 +11394,14 @@ msgstr "" "TestPyPI respectivamente, e um trabalho adicional para construir os pacotes " "de distribuição." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" @@ -11397,7 +11409,7 @@ msgstr "" "Primeiro, definiremos o trabalho para construir os pacotes dist do seu " "projeto e armazená-los para uso posterior:" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -11405,7 +11417,7 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." @@ -11413,7 +11425,7 @@ msgstr "" "Isso fará o download do seu repositório no executor de CI e, em seguida, " "instalará e ativará o lançamento mais recente disponível do Python 3." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" @@ -11421,11 +11433,11 @@ msgstr "" "E agora podemos construir os dists a partir da fonte e armazená-los. Neste " "exemplo, usaremos o pacote ``build``. Então, adicione isso à lista de etapas:" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "Definindo um ambiente de tarefa do fluxo de trabalho" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 #, fuzzy #| msgid "" #| "Now, let's add initial setup for our job that will publish to PyPI. It's " @@ -11453,7 +11465,7 @@ msgstr "" "``pypi-publish`` precisam para implementar publicação confiável sem segredo " "para PyPI." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." @@ -11461,15 +11473,15 @@ msgstr "" "Isso também garantirá que o fluxo de trabalho de publicação do PyPI só seja " "acionado se o commit atual estiver marcado." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "Publicando a distribuição para PyPI" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "Finalmente, adicione as seguintes etapas ao final:" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -11481,7 +11493,7 @@ msgstr "" "`download-artifact`_, ele envia o conteúdo da pasta ``dist /`` para PyPI " "incondicionalmente." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -11489,11 +11501,11 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "Fluxo de trabalho separado para publicação no TestPyPI" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" @@ -11501,7 +11513,7 @@ msgstr "" "Agora, repita essas etapas e crie outro trabalho para publicação no índice " "do pacote TestPyPI na seção ``jobs``:" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " @@ -11512,21 +11524,21 @@ msgstr "" "branch principal e é frequentemente usado para indicar um pipeline de " "publicação de lançamento íntegro." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "O fluxo de trabalho de CI/CD completo" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" "Este parágrafo mostra todo o fluxo de trabalho após seguir o guia acima." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "Isso é tudo, pessoal!" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -11539,7 +11551,7 @@ msgstr "" "construções de teste para seus usuários alfa, bem como garantir que sua " "versão pipeline permaneça saudável!" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -11554,7 +11566,7 @@ msgstr "" "um servidor compatível com PyPI como :ref:`pypiserver` no CI para fins de " "teste." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/ro/LC_MESSAGES/messages.po b/locales/ro/LC_MESSAGES/messages.po index cced27637..52c80a55d 100644 --- a/locales/ro/LC_MESSAGES/messages.po +++ b/locales/ro/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2021-08-20 01:32+0000\n" "Last-Translator: GUILHERME FERNANDES NETO \n" "Language-Team: Romanian `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8568,13 +8568,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8582,23 +8589,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8609,21 +8616,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8631,7 +8638,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8639,37 +8646,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8677,7 +8684,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8686,7 +8693,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/ru/LC_MESSAGES/messages.po b/locales/ru/LC_MESSAGES/messages.po index 51d5cb090..7c9b5cf50 100644 --- a/locales/ru/LC_MESSAGES/messages.po +++ b/locales/ru/LC_MESSAGES/messages.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2025-06-07 08:01+0000\n" "Last-Translator: da070116 \n" "Language-Team: Russian ` ." #: ../source/guides/creating-and-discovering-plugins.rst:167 +#, fuzzy +#| msgid "" +#| "Since this specification is part of the :doc:`standard library " +#| "`, most packaging tools other than " +#| "setuptools provide support for defining entry points." msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" "Поскольку эта спецификация является частью :doc:`стандартной библиотеки " "`, большинство инструментов упаковки, " @@ -11510,7 +11515,14 @@ msgstr "" "Нам нужно будет определить два задания для публикации в PyPI и TestPyPI " "соответственно, а также дополнительное задание для сборки дистрибутива." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" @@ -11518,7 +11530,7 @@ msgstr "" "Сначала мы определим задание для сборки дист-пакетов вашего проекта и " "хранения их для последующего использования:" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -11526,7 +11538,7 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." @@ -11534,7 +11546,7 @@ msgstr "" "Это позволит загрузить ваш репозиторий в CI runner, а затем установить и " "активировать самый новый доступный релиз Python 3." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" @@ -11543,11 +11555,11 @@ msgstr "" "примере мы будем использовать пакет ``build``. Так что добавьте его в список " "шагов:" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "Определение рабочей среды рабочего процесса" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 #, fuzzy #| msgid "" #| "Now, let's add initial setup for our job that will publish to PyPI. It's " @@ -11576,7 +11588,7 @@ msgstr "" "необходим действию ``pypi-publish`` для реализации секретной доверенной " "публикации в PyPI." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." @@ -11584,15 +11596,15 @@ msgstr "" "Это также гарантирует, что рабочий процесс публикации PyPI будет запущен " "только в том случае, если текущий коммит помечен." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "Публикация дистрибутива в PyPI" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "Наконец, добавьте следующие шаги в конце:" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -11603,7 +11615,7 @@ msgstr "" "загрузки сохраненного дистрибутива действием `download-artifact`_, оно " "безусловно загружает содержимое папки ``dist/`` в PyPI." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -11611,11 +11623,11 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "Отдельный рабочий процесс для публикации в TestPyPI" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" @@ -11623,7 +11635,7 @@ msgstr "" "Теперь повторите эти шаги и создайте еще одно задание для публикации в " "индекс пакета TestPyPI в разделе ``jobs``:" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " @@ -11634,22 +11646,22 @@ msgstr "" "основной ветке и часто используется для обозначения здорового конвейера " "публикации pipрелизов." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "Весь рабочий процесс CI/CD" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" "В этом пункте показан весь рабочий процесс после выполнения вышеописанного " "руководства." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "Вот и все, друзья!" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -11662,7 +11674,7 @@ msgstr "" "сборок вашим альфа-пользователям, а также для того, чтобы убедиться, что ваш " "конвейер релизовpip остаётся здоровым!" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -11676,7 +11688,7 @@ msgstr "" "увеличен, но лучшим решением может быть использование PyPI-совместимого " "сервера, например :ref:`pypiserver`, в CI для тестирования." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/sai/LC_MESSAGES/messages.po b/locales/sai/LC_MESSAGES/messages.po index 4844f501d..b41929623 100644 --- a/locales/sai/LC_MESSAGES/messages.po +++ b/locales/sai/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -4485,8 +4485,8 @@ msgstr "" #: ../source/guides/creating-and-discovering-plugins.rst:167 msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8560,13 +8560,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8574,23 +8581,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8601,21 +8608,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8623,7 +8630,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8631,37 +8638,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8669,7 +8676,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8678,7 +8685,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/si/LC_MESSAGES/messages.po b/locales/si/LC_MESSAGES/messages.po index f1798fff2..af3e63865 100644 --- a/locales/si/LC_MESSAGES/messages.po +++ b/locales/si/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2022-06-11 08:19+0000\n" "Last-Translator: Kushan Gunasekera \n" "Language-Team: Sinhala `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8564,13 +8564,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8578,23 +8585,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8605,21 +8612,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8627,7 +8634,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8635,37 +8642,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8673,7 +8680,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8682,7 +8689,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/sk/LC_MESSAGES/messages.po b/locales/sk/LC_MESSAGES/messages.po index b767f8e70..b02d19030 100644 --- a/locales/sk/LC_MESSAGES/messages.po +++ b/locales/sk/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2024-11-02 00:54+0000\n" "Last-Translator: Milan Šalka \n" "Language-Team: Slovak `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8720,13 +8720,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8734,23 +8741,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8761,21 +8768,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8783,7 +8790,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8791,37 +8798,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8829,7 +8836,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8838,7 +8845,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/ta/LC_MESSAGES/messages.po b/locales/ta/LC_MESSAGES/messages.po index 92682ba40..227db005b 100644 --- a/locales/ta/LC_MESSAGES/messages.po +++ b/locales/ta/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2025-07-19 06:36+0000\n" "Last-Translator: தமிழ்நேரம் \n" "Language-Team: Tamil `." #: ../source/guides/creating-and-discovering-plugins.rst:167 +#, fuzzy +#| msgid "" +#| "Since this specification is part of the :doc:`standard library " +#| "`, most packaging tools other than " +#| "setuptools provide support for defining entry points." msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" "இந்த விவரக்குறிப்பு: டாக்: `நிலையான நூலகம் <பைதான்: நூலகம்/இறக்குமதி " "லிப்.மெட்டாடேட்டா>` `, செட்டுப்டூல்கள் தவிர பிற பெரும்பாலான பேக்கேசிங் கருவிகள் நுழைவு " @@ -11110,7 +11115,14 @@ msgstr "" "முறையே PYPI மற்றும் TestPypi க்கு வெளியிட இரண்டு வேலைகள் மற்றும் விநியோக தொகுப்புகளை " "உருவாக்க கூடுதல் வேலை ஆகியவற்றை வரையறுக்க வேண்டும்." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" @@ -11118,7 +11130,7 @@ msgstr "" "முதலில், உங்கள் திட்டத்தின் தொலைதூர தொகுப்புகளை உருவாக்குவதற்கும் அவற்றை பின்னர் பயன்படுத்த " "சேமிப்பதற்கும் வேலையை வரையறுப்போம்:" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -11126,7 +11138,7 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." @@ -11134,7 +11146,7 @@ msgstr "" "இது உங்கள் களஞ்சியத்தை தொஒ ரன்னரில் பதிவிறக்கம் செய்து பின்னர் கிடைக்கக்கூடிய புதிய பைதான் " "3 வெளியீட்டை நிறுவி செயல்படுத்தும்." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" @@ -11143,11 +11155,11 @@ msgstr "" "எடுத்துக்காட்டில், `` பில்ட்`` தொகுப்பைப் பயன்படுத்துவோம். எனவே இதை படிகள் பட்டியலில் " "சேர்க்கவும்:" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "பணிப்பாய்வு வேலை சூழலை வரையறுத்தல்" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 #, fuzzy #| msgid "" #| "Now, let's add initial setup for our job that will publish to PyPI. It's " @@ -11174,7 +11186,7 @@ msgstr "" "பைபி-பப்ளிச்`` நடவடிக்கைகள் பைபிக்கு ரகசியமற்ற நம்பகமான வெளியீட்டை செயல்படுத்த வேண்டும் " "என்று ஓபன்ஐடி இணைப்பு கிள்ளாக்கைப் பெற அனுமதிக்கிறது." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." @@ -11182,15 +11194,15 @@ msgstr "" "தற்போதைய கமிட் குறிக்கப்பட்டால் மட்டுமே PYPI பப்ளிசிங் பணிப்பாய்வு தூண்டப்படுவதை இது " "உறுதி செய்யும்." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "PYPI க்கு விநியோகத்தை வெளியிடுகிறது" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "இறுதியாக, முடிவில் பின்வரும் படிகளைச் சேர்க்கவும்:" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -11202,7 +11214,7 @@ msgstr "" "பிறகு, இது `` மாவட்ட/`கோப்புறையின் உள்ளடக்கங்களை பதிவேற்றுகிறது நிபந்தனையின்றி " "பைபிக்குள்." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -11210,11 +11222,11 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "டெச்ட்பிபிக்கு வெளியிடுவதற்கு பணிப்பாய்வு தனி" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" @@ -11222,7 +11234,7 @@ msgstr "" "இப்போது, இந்த படிகளை மீண்டும் செய்து, `` வேலைகள்`` பிரிவின் கீழ் டெச்ட்பை தொகுப்பு " "குறியீட்டுக்கு வெளியிட மற்றொரு வேலையை உருவாக்கவும்:" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " @@ -11233,21 +11245,21 @@ msgstr "" "வடிவமைக்கப்பட்டுள்ளது மற்றும் ஆரோக்கியமான வெளியீட்டு வெளியீட்டு குழாய்த்திட்டத்தைக் குறிக்க " "பெரும்பாலும் பயன்படுத்தப்படுகிறது." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "முழு சிஐ/சிடி பணிப்பாய்வு" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" "இந்த பத்தி மேலே உள்ள வழிகாட்டியைப் பின்பற்றிய பிறகு முழு பணிப்பாய்வுகளையும் காட்டுகிறது." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "அவ்வளவுதான், எல்லோரும்!" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -11259,7 +11271,7 @@ msgstr "" "சோதனை கட்டமைப்பை வழங்குவதற்கும், உங்கள் வெளியீட்டு குழாய் ஆரோக்கியமாக இருப்பதை " "உறுதிசெய்வதற்கும் பயனுள்ளதாக இருக்கும் டெச்ட்பிபிக்கு எந்தவொரு உந்துதலையும் வெளியிடும்!" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -11273,7 +11285,7 @@ msgstr "" "ஒரு சிறந்த தீர்வு ஒரு பைபி-இணக்கமான சேவையகத்தைப் பயன்படுத்தலாம்: குறிப்பு நோக்கங்களுக்காக " "தொஒ இல் `பைபிசெவர்`." -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/th/LC_MESSAGES/messages.po b/locales/th/LC_MESSAGES/messages.po index 3dd6a3e0a..8c5bc5501 100644 --- a/locales/th/LC_MESSAGES/messages.po +++ b/locales/th/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -4485,8 +4485,8 @@ msgstr "" #: ../source/guides/creating-and-discovering-plugins.rst:167 msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8560,13 +8560,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8574,23 +8581,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8601,21 +8608,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8623,7 +8630,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8631,37 +8638,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8669,7 +8676,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8678,7 +8685,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/tr/LC_MESSAGES/messages.po b/locales/tr/LC_MESSAGES/messages.po index f3057435b..7a169805d 100644 --- a/locales/tr/LC_MESSAGES/messages.po +++ b/locales/tr/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2025-09-29 04:02+0000\n" "Last-Translator: Rüzgar Hünerel \n" "Language-Team: Turkish `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8587,13 +8587,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8601,23 +8608,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8628,21 +8635,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8650,7 +8657,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8658,37 +8665,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8696,7 +8703,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8705,7 +8712,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/uk/LC_MESSAGES/messages.po b/locales/uk/LC_MESSAGES/messages.po index 28f1f873d..80512a6ed 100644 --- a/locales/uk/LC_MESSAGES/messages.po +++ b/locales/uk/LC_MESSAGES/messages.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2024-03-01 20:00+0000\n" "Last-Translator: Sviatoslav Sydorenko \n" "Language-Team: Ukrainian `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -9070,13 +9070,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -9084,23 +9091,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -9111,21 +9118,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -9133,7 +9140,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -9141,37 +9148,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "Це все, добродії!" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -9179,7 +9186,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -9188,7 +9195,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/vi/LC_MESSAGES/messages.po b/locales/vi/LC_MESSAGES/messages.po index 63aeb0f2e..d4991325b 100644 --- a/locales/vi/LC_MESSAGES/messages.po +++ b/locales/vi/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2025-09-23 05:02+0000\n" "Last-Translator: Lenny Tran \n" "Language-Team: Vietnamese `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8707,13 +8707,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8721,23 +8728,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8748,21 +8755,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8770,7 +8777,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8778,37 +8785,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8816,7 +8823,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8825,7 +8832,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." diff --git a/locales/zh_Hans/LC_MESSAGES/messages.po b/locales/zh_Hans/LC_MESSAGES/messages.po index 68ee244d3..10972c148 100644 --- a/locales/zh_Hans/LC_MESSAGES/messages.po +++ b/locales/zh_Hans/LC_MESSAGES/messages.po @@ -38,14 +38,17 @@ # rand777 , 2025. # monios , 2025. # reducedradius <137701630+flytothehighest@users.noreply.github.com>, 2026. +# Haozhe Xu , 2026. +# B10112 , 2026. +# Hosted Weblate user 162400 , 2026. +# JaxonMa , 2026. msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" -"PO-Revision-Date: 2026-06-28 07:02+0000\n" -"Last-Translator: reducedradius " -"<137701630+flytothehighest@users.noreply.github.com>\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" +"PO-Revision-Date: 2026-08-25 05:51+0000\n" +"Last-Translator: JaxonMa \n" "Language-Team: Chinese (Simplified Han script) \n" "Language: zh_Hans\n" @@ -53,7 +56,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 2026.7.dev0\n" +"X-Generator: Weblate 2026.9.dev0\n" #: ../source/contribute.rst:5 msgid "Contribute to this guide" @@ -1095,9 +1098,9 @@ msgid "" "time. For example, automatically generated Git archives do not guarantee " "this, as the compressed data may change if gzip is upgraded on the server." msgstr "" -"下游经常使用哈希来验证后续构建中源文件的真实性,而这需要文件长期保持二进制相" -"同。举个例子,自动生成的 Git 存档就不保证这一点,因为如果服务器上的 gzip 升级" -"了,那么压缩的数据可能会改变。" +"下游项目经常使用哈希值,在后续构建过程中校验源码文件的真实性,这就要求源码文" +"件随时间推移必须保持按比特完全一致。例如,自动生成的 Git 归档文件无法保证这一" +"点:如果服务端的 gzip 版本升级,压缩得到的数据就可能发生变化。" #: ../source/discussions/downstream-packaging.rst:88 msgid "" @@ -1520,19 +1523,21 @@ msgstr "验证下游包没有引入任何漏洞。" #: ../source/discussions/downstream-packaging.rst:312 msgid "" "Testing on additional platforms that are not covered by upstream testing." -msgstr "" +msgstr "在未被上游测试所覆盖的第三方平台上进行的测试。" #: ../source/discussions/downstream-packaging.rst:314 msgid "" "Finding subtle bugs that can only be reproduced with particular hardware, " "system package versions, and so on." -msgstr "" +msgstr "找出那些只在特定硬件、系统包版本等环境下才能重现的隐蔽漏洞。" #: ../source/discussions/downstream-packaging.rst:317 msgid "" "Testing the released package against newer (or older) dependency versions " "than the ones present during upstream release testing." msgstr "" +"对已发布的软件包进行测试时,使用比上游发布测试时所采用的依赖版本更新(或更" +"旧)的版本。" #: ../source/discussions/downstream-packaging.rst:320 msgid "" @@ -1541,12 +1546,16 @@ msgid "" "different installed packages, including packages that are not dependencies " "of your package, but nevertheless can cause issues." msgstr "" +"在尽可能接近生产环境的环境中测试该软件包。这可以检测出由不同已安装包之间复杂" +"交互所导致的问题,包括那些并非你软件包依赖项、但仍然可能引发问题的包。" #: ../source/discussions/downstream-packaging.rst:325 msgid "" "Testing the released package against newer Python versions (including newer " "point releases), or less tested Python implementations such as PyPy." msgstr "" +"针对较新版本的 Python(包括新的次要/补丁版本),或测试覆盖较少的 Python 实现" +"(如 PyPy),对已发布的软件包进行测试。" #: ../source/discussions/downstream-packaging.rst:328 msgid "" @@ -1558,6 +1567,10 @@ msgid "" "downstream packagers are doing their best to double-check their results, and " "help upstream maintainers triage and fix the bugs that they reported." msgstr "" +"诚然,下游测试有时可能会产生误报,或者报告一些上游项目无意支持的场景。然而," +"更多时候它确实能提前预警问题,或发现那些否则会给上游项目用户带来麻烦的隐蔽缺" +"陷。尽管错误确实难免,但绝大多数下游打包者都在尽力反复核验自己的结果,并帮助" +"上游维护者对报告的问题进行诊断和修复。" #: ../source/discussions/downstream-packaging.rst:339 msgid "" @@ -1568,12 +1581,15 @@ msgid "" "use for everyone, not just downstream packagers. Some specific suggestions " "are:" msgstr "" +"上游项目可以做许多事情来帮助下游重新打包者高效、有效地测试他们的软件包,其中" +"就包括上文提到的一些建议。这些改进通常能让测试套件对所有人来说都更可靠、更易" +"用,而不仅仅是对下游打包者。以下是一些具体建议:" #: ../source/discussions/downstream-packaging.rst:345 msgid "" "Include the test files and fixtures in the source distribution, or make it " "possible to easily download them separately." -msgstr "" +msgstr "在源代码分发包中包含测试文件及测试夹具,或者使其能够单独轻松下载。" #: ../source/discussions/downstream-packaging.rst:348 msgid "" @@ -1582,6 +1598,9 @@ msgid "" "modifications performed during testing and temporary test files may end up " "being part of the installed package!" msgstr "" +"测试期间不要向包目录中写入任何内容。下游测试环境有时会在已安装的包之上直接运" +"行测试,而测试过程中所做的修改以及临时测试文件最终可能会被误纳入已安装的包" +"中!" #: ../source/discussions/downstream-packaging.rst:353 msgid "" @@ -1591,6 +1610,10 @@ msgid "" "Use pytest-socket_ to verify that your tests work offline. This often makes " "your own test workflows faster and more reliable as well." msgstr "" +"使测试套件能够在离线状态下工作。使用诸如 responses_ 或 vcrpy_ 之类的包来模拟" +"网络交互。如果无法做到,则应提供便捷的方式禁用需要互联网访问的测试,例如通过 " +"pytest_ 标记。可使用 pytest-socket_ 来验证你的测试确实在离线状态下运行。这样" +"做通常也能让你的测试工作流更快、更可靠。" #: ../source/discussions/downstream-packaging.rst:359 msgid "" @@ -1599,6 +1622,8 @@ msgid "" "system services such as databases — in an extreme case, you could crash a " "production service!" msgstr "" +"让测试无需专门配置即可运行,或将必要配置作为测试固件的一部分来执行。切勿假设" +"你可以连接到数据库等系统服务——在极端情况下,这可能导致生产服务崩溃!" #: ../source/discussions/downstream-packaging.rst:364 msgid "" @@ -1606,6 +1631,8 @@ msgid "" "well. Either skip them if the needed packages are not installed, or add " "markers to make deselecting easy." msgstr "" +"如果你的软件包有可选依赖,那么这些依赖对应的测试也应当是可选的。如果所需的包" +"未安装,则跳过这些测试;或者添加标记,以便于轻松取消选择它们。" #: ../source/discussions/downstream-packaging.rst:368 msgid "" @@ -1613,6 +1640,8 @@ msgid "" "include e.g. significant space usage, significant memory usage, long " "runtime, incompatibility with parallel testing." msgstr "" +"更一般地说,为有特殊要求的测试添加标记。例如,这类测试可能会占用大量磁盘空" +"间、消耗大量内存、运行耗时较长,或是与并行测试不兼容。" #: ../source/discussions/downstream-packaging.rst:372 msgid "" @@ -1621,6 +1650,9 @@ msgid "" "dependency versions. Assert for warnings using ``pytest.warns()`` rather " "than ``pytest.raises()``!" msgstr "" +"不要假定测试套件会使用 ``-Werror`` 运行。下游项目往往需要禁用该选项,因为它会" +"产生误报,例如依赖库版本更新就可能导致该问题。请使用 ``pytest.warns()`` 对警" +"告进行断言,而不要使用 ``pytest.raises()`` !" #: ../source/discussions/downstream-packaging.rst:377 msgid "" @@ -1630,6 +1662,9 @@ msgid "" "its advantages, but you want to have static test cases for completeness as " "well." msgstr "" +"请力求让你的测试套件可靠且可复现。避免不稳定测试。不要依赖特定平台细节,不要" +"依赖浮点计算的精确结果、操作执行时序等内容。模糊测试固然有其优势,但为保证完" +"备性,你同样应当编写静态测试用例。" #: ../source/discussions/downstream-packaging.rst:383 msgid "" @@ -1641,6 +1676,10 @@ msgid "" "upgraded or the system is under load, without actually affecting the package " "itself." msgstr "" +"请按照用途拆分测试,并让无关或存在问题的测试类别可以方便地跳过。下游测试的主" +"要目的是确保软件包本身能够正常工作,因此下游项目通常并不关心代码覆盖率检查、" +"代码格式化、类型检查或是运行基准测试这类任务。当依赖升级或者系统处于高负载" +"时,这类测试可能会失败,但并不会真正影响软件包本身的功能。" #: ../source/discussions/downstream-packaging.rst:390 msgid "" @@ -1649,6 +1688,8 @@ msgid "" "them all takes a lot of time. Using pytest-xdist_ can help them avoid " "bottlenecks." msgstr "" +"如果你的测试套件运行耗时较长,请支持并行测试。下游项目通常要维护大量软件包," +"全部测试会消耗大量时间。使用 pytest‑xdist_ 可以帮助他们消除测试瓶颈。" #: ../source/discussions/downstream-packaging.rst:395 msgid "" @@ -1661,6 +1702,13 @@ msgid "" "``pytest``: ``pytest`` is able to find and execute almost all test cases " "that are compatible with the standard library's ``unittest`` test discovery." msgstr "" +"在理想情况下,请支持通过 ``pytest`` 运行你的测试套件。``pytest``_ 拥有大量对" +"下游项目十分实用的命令行参数,例如可以便捷地剔除指定测试、重跑不稳定测试(借" +"助 ``pytest‑rerunfailures``_)、设置超时防止测试挂起(借助 " +"``pytest‑timeout``_),或是并行执行测试(借助 ``pytest‑xdist``_)。请注意:测" +"试套件无需用 ``pytest`` *written*,也能够用 ``pytest`` *executed*;" +"``pytest`` 几乎能够发现并运行所有兼容标准库 ``unittest`` 测试发现机制的测试用" +"例。" #: ../source/discussions/downstream-packaging.rst:409 msgid "Aim for stable releases" @@ -1673,6 +1721,9 @@ msgid "" "upgrades to users with higher stability needs. These users often prefer to " "trade having the newest features available for lower risk of issues." msgstr "" +"许多下游项目除主软件包源之外还提供稳定发布渠道。设置这些渠道的目的,是为对稳" +"定性要求较高的用户提供更保守的版本升级。这类用户往往宁愿放弃最新功能,换取更" +"低的故障风险。" #: ../source/discussions/downstream-packaging.rst:419 msgid "" @@ -1683,6 +1734,10 @@ msgid "" "available in testing for a month, and being tested against the versions of " "its dependencies that are marked stable at the time." msgstr "" +"尽管具体策略各有差异,但将软件包新版本纳入稳定发布渠道的一项重要标准是:该版" +"本已经在测试渠道中发布一段时间,且不存在已知的严重功能退化问题。例如,在 " +"Gentoo Linux 中,软件包通常需要在测试渠道中发布满一个月,并且针对当时标记为稳" +"定版本的依赖项完成测试后,才会被标记为稳定。" #: ../source/discussions/downstream-packaging.rst:426 msgid "" @@ -1692,24 +1747,29 @@ msgid "" "a need to resolve it. In this case, they need to consider various options, " "such as:" msgstr "" +"但也存在需要更快速处理的情形。例如,如果稳定渠道当前提供的版本中发现安全漏洞" +"或重大缺陷,下游项目就需要着手解决该问题。此时他们需要权衡多种可选方案,例" +"如:" #: ../source/discussions/downstream-packaging.rst:431 msgid "putting a new version in the stable channel early," -msgstr "" +msgstr "提前将新版本纳入稳定渠道," #: ../source/discussions/downstream-packaging.rst:433 msgid "adding patches to the version currently published," -msgstr "" +msgstr "为当前已发布的版本应用补丁," #: ../source/discussions/downstream-packaging.rst:435 msgid "or even downgrading the stable channel to an earlier release." -msgstr "" +msgstr "甚至将稳定渠道降级至更早的发行版本。" #: ../source/discussions/downstream-packaging.rst:437 msgid "" "Each of these options involves certain risks and a certain amount of work, " "and packagers needs to weigh them to determine the course of action." msgstr "" +"上述每一种方案都伴随着相应的风险与工作量,打包维护者需要权衡利弊来确定处理方" +"案。" #: ../source/discussions/downstream-packaging.rst:443 msgid "" @@ -1717,6 +1777,8 @@ msgid "" "stable release channels. These actions often are beneficial to the package's " "users as well. Some specific suggestions are:" msgstr "" +"上游项目可以采取一些措施,让自身工作流适配稳定发布渠道。这些做法通常也会对软" +"件包的用户带来益处。部分具体建议如下:" #: ../source/discussions/downstream-packaging.rst:447 msgid "" @@ -1724,6 +1786,8 @@ msgid "" "released rarely often bring significant changes with every release, and a " "higher risk of accidental regressions." msgstr "" +"根据代码变更的幅度调整版本发布频率。低频发布的软件包往往每次更新都会引入大量" +"改动,出现意外功能退化的风险也会更高。" #: ../source/discussions/downstream-packaging.rst:451 msgid "" @@ -1731,6 +1795,8 @@ msgid "" "there are known bug fixes merged already, consider making a new release " "before merging feature branches." msgstr "" +"如果可能,请避免将错误修复与新功能混在一起提交。特别地,如果已有已知的错误修" +"复被合并,请考虑在合并功能分支之前先发布一个新版本。" #: ../source/discussions/downstream-packaging.rst:455 msgid "" @@ -5209,10 +5275,15 @@ msgstr "" "阅读整个关于 :doc:`entry points ` 的章节。" #: ../source/guides/creating-and-discovering-plugins.rst:167 +#, fuzzy +#| msgid "" +#| "Since this specification is part of the :doc:`standard library " +#| "`, most packaging tools other than " +#| "setuptools provide support for defining entry points." msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" "由于此规范是 :doc:`standard library ` 的一" "部分,因此除了 setuptools 之外,大多数打包工具都提供了定义 entry points 的支" @@ -9440,13 +9511,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -9454,24 +9532,24 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" "这将把您的版本库下载到 CI 运行程序中,然后安装并激活最新的 Python 3 版本。" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "定义一个工作流程的工作环境" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -9482,21 +9560,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "将发行版发布到 PyPI" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "最后,在结尾添加以下步骤:" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -9504,7 +9582,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -9512,37 +9590,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "就这些了,伙计们!" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -9550,7 +9628,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -9559,7 +9637,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently." @@ -16461,7 +16539,7 @@ msgstr "" #: ../source/specifications/core-metadata.rst:1093 msgid "reStructuredText markup: https://docutils.sourceforge.io/" -msgstr "reStructuredText 标记:https://docutils.sourceforge.io/" +msgstr "`reStructuredText 标记 `_" #: ../source/specifications/core-metadata.rst:1098 msgid "RFC 822 Long Header Fields: :rfc:`822#section-3.1.1`" diff --git a/locales/zh_Hant/LC_MESSAGES/messages.po b/locales/zh_Hant/LC_MESSAGES/messages.po index 30d776a18..8d074ce22 100644 --- a/locales/zh_Hant/LC_MESSAGES/messages.po +++ b/locales/zh_Hant/LC_MESSAGES/messages.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-11 10:39+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2025-02-24 15:37+0000\n" "Last-Translator: toto6038 \n" "Language-Team: Chinese (Traditional Han script) `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 @@ -8662,13 +8662,20 @@ msgid "" "respectively, and an additional job to build the distribution packages." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:107 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 +msgid "" +"Keep the build job separate from the publishing jobs. Building distributions " +"in a publishing job is unsupported; publishing jobs should only download the " +"already-built artifacts and upload them." +msgstr "" + +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:113 msgid "" "First, we'll define the job for building the dist packages of your project " "and storing them for later use:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:112 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" "If you adapt this workflow to build multiple platform-specific wheels, use " "uniquely named artifacts for each build job and adjust the download step " @@ -8676,23 +8683,23 @@ msgid "" "matrix layout." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:122 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:128 msgid "" "This will download your repository into the CI runner and then install and " "activate the newest available Python 3 release." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:125 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:131 msgid "" "And now we can build the dists from source and store them. In this example, " "we'll use the ``build`` package. So add this to the steps list:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:135 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:137 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:143 msgid "" "Now, let's add initial setup for our job that will publish to PyPI. It's a " "process that will execute commands that we'll define later. In this guide, " @@ -8703,21 +8710,21 @@ msgid "" "implement secretless Trusted Publishing to PyPI." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:151 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 msgid "" "This will also ensure that the PyPI publishing workflow is only triggered if " "the current commit is tagged." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:155 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:157 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:163 msgid "Finally, add the following steps at the end:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:164 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:170 msgid "" "This step uses the `pypa/gh-action-pypi-publish`_ GitHub Action: after the " "stored distribution package has been downloaded by the `download-artifact`_ " @@ -8725,7 +8732,7 @@ msgid "" "unconditionally." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:171 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" "Starting with version `v1.11.0 `_, `pypa/gh-action-pypi-publish`_ generates " @@ -8733,37 +8740,37 @@ msgid "" "default. No additional manual signing steps are required." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:179 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:181 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:187 msgid "" "Now, repeat these steps and create another job for publishing to the " "TestPyPI package index under the ``jobs`` section:" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:191 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" "Requiring manual approvals in the ``testpypi`` GitHub Environment is " "typically unnecessary as it's designed to run on each commit to the main " "branch and is often used to indicate a healthy release publishing pipeline." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:195 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:203 msgid "" "This paragraph showcases the whole workflow after following the above guide." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:205 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:207 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:213 msgid "" "Now, whenever you push a tagged commit to your Git repository remote on " "GitHub, this workflow will publish it to PyPI. And it'll publish any push to " @@ -8771,7 +8778,7 @@ msgid "" "well as making sure that your release pipeline remains healthy!" msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:215 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" "If your repository has frequent commit activity and every push is uploaded " "to TestPyPI as described, the project might exceed the `PyPI project size " @@ -8780,7 +8787,7 @@ msgid "" "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" -#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:223 +#: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:229 msgid "" "It is recommended to keep the integrated GitHub Actions at their latest " "versions, updating them frequently."