diff --git a/locales/ar/LC_MESSAGES/messages.po b/locales/ar/LC_MESSAGES/messages.po index c45a4a294..e7ba7249c 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-08-19 11:32+0000\n" "PO-Revision-Date: 2025-12-15 04:00+0000\n" "Last-Translator: HAMDI KHALID \n" "Language-Team: Arabic `_, `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..b2d5aa8d9 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-08-19 11:32+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -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..0a7ad1d0c 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-08-19 11:32+0000\n" "PO-Revision-Date: 2025-10-16 23:52+0000\n" "Last-Translator: Karolína Wallenfelsová \n" "Language-Team: Czech `_, `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..94366a582 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-08-19 11:32+0000\n" "PO-Revision-Date: 2025-10-09 04:07+0000\n" "Last-Translator: Philip Mallegol-Hansen \n" "Language-Team: Danish `_, `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..8cf0bb963 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-08-19 11:32+0000\n" "PO-Revision-Date: 2026-07-22 20:54+0000\n" "Last-Translator: VfBFan \n" "Language-Team: German `_, `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..f9660e56d 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-08-19 11:32+0000\n" "PO-Revision-Date: 2025-06-29 12:03+0000\n" "Last-Translator: phlostically \n" "Language-Team: Esperanto `_, `pypa/gh-action-pypi-publish`_ generates " @@ -11170,11 +11177,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 +11189,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 +11199,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 +11220,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 +11229,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..cf841aa25 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-08-19 11:32+0000\n" "PO-Revision-Date: 2025-12-12 01:00+0000\n" "Last-Translator: Joseph Hale \n" "Language-Team: Spanish `_, `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..5cf7b149a 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-08-19 11:32+0000\n" "PO-Revision-Date: 2026-07-30 20:47+0000\n" "Last-Translator: Kamrani \n" "Language-Team: Persian `_, `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..0a025df91 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-08-19 11:32+0000\n" "PO-Revision-Date: 2022-11-19 08:28+0000\n" "Last-Translator: RedFurrFox \n" "Language-Team: Filipino `_, `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..416943ffc 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-08-19 11:32+0000\n" "PO-Revision-Date: 2026-01-20 00:01+0000\n" "Last-Translator: Nathan \n" "Language-Team: French `_, `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..06a3c5983 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-08-19 11:32+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -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..3e34bfb3e 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-08-19 11:32+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -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..17ca0aa04 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-08-19 11:32+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -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..7fac139f5 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-08-19 11:32+0000\n" "PO-Revision-Date: 2024-09-16 10:09+0000\n" "Last-Translator: kumar Shivam \n" "Language-Team: Hindi `_, `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..8a0259b9d 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-08-19 11:32+0000\n" "PO-Revision-Date: 2024-10-17 21:16+0000\n" "Last-Translator: oon arfiandwi \n" "Language-Team: Indonesian `_, `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..d491653ed 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-08-19 11:32+0000\n" +"PO-Revision-Date: 2026-08-23 23:51+0000\n" "Last-Translator: moto kawasaki \n" "Language-Team: Japanese \n" @@ -11632,7 +11632,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 +11651,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 +11664,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 +11672,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 +11681,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 +11704,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 +11712,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 +11732,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 +11744,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 +11756,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 +11767,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 +11795,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 +11810,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 +13371,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 +13382,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 +13392,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 +28966,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 +29181,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 +29231,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 +29324,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..4cf42a764 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-08-19 11:32+0000\n" "PO-Revision-Date: 2026-06-24 22:01+0000\n" "Last-Translator: ButterflyOfFire \n" "Language-Team: Kabyle `_, `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..1b9dca84d 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-08-19 11:32+0000\n" "PO-Revision-Date: 2026-02-05 03:01+0000\n" "Last-Translator: 스이미 \n" "Language-Team: Korean `_, `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..32b777069 --- /dev/null +++ b/locales/lo/LC_MESSAGES/messages.po @@ -0,0 +1,24133 @@ +# 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-08-19 11:32+0000\n" +"PO-Revision-Date: 2026-08-29 23:24+0000\n" +"Last-Translator: Bone NI \n" +"Language-Team: Lao \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: lo\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 +msgid "Since this specification is part of the :doc:`standard library `, most packaging tools other than 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..f800da947 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 "" @@ -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..bcaa89a37 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-08-19 11:32+0000\n" "PO-Revision-Date: 2023-10-21 04:04+0000\n" "Last-Translator: \"Kristijan \\\"Fremen\\\" Velkovski\" \n" "Language-Team: Macedonian `_, `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..a44a7290e 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-08-19 11:32+0000\n" "PO-Revision-Date: 2025-01-25 14:18+0000\n" "Last-Translator: Prachi Joshi \n" "Language-Team: Marathi `_, `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..9d6000a48 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-08-19 11:32+0000\n" "PO-Revision-Date: 2026-05-05 16:17+0000\n" "Last-Translator: Laitei \n" "Language-Team: Mara `_, `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..3ccca5959 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-08-19 11:32+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -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..089c05baf 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-08-19 11:32+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" @@ -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..485f83af7 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-08-19 11:32+0000\n" "PO-Revision-Date: 2026-06-14 08:02+0000\n" "Last-Translator: ssantos \n" "Language-Team: Portuguese `_, `pypa/gh-action-pypi-publish`_ generates " @@ -10871,11 +10878,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 +10890,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 +10901,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 +10928,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 +10943,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..f7757faf9 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-08-19 11:32+0000\n" "PO-Revision-Date: 2025-08-07 00:01+0000\n" "Last-Translator: Rafael Fontenelle \n" "Language-Team: Portuguese (Brazil) `_, `pypa/gh-action-pypi-publish`_ generates " @@ -11489,11 +11496,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 +11508,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 +11519,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 +11546,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 +11561,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..dca6d6a1c 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-08-19 11:32+0000\n" "PO-Revision-Date: 2021-08-20 01:32+0000\n" "Last-Translator: GUILHERME FERNANDES NETO \n" "Language-Team: Romanian `_, `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..92a9021e9 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-08-19 11:32+0000\n" "PO-Revision-Date: 2025-06-07 08:01+0000\n" "Last-Translator: da070116 \n" "Language-Team: Russian `_, `pypa/gh-action-pypi-publish`_ generates " @@ -11611,11 +11618,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 +11630,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 +11641,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 +11669,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 +11683,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..82e440e7d 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-08-19 11:32+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -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..c18a1bcb3 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-08-19 11:32+0000\n" "PO-Revision-Date: 2022-06-11 08:19+0000\n" "Last-Translator: Kushan Gunasekera \n" "Language-Team: Sinhala `_, `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..136566d78 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-08-19 11:32+0000\n" "PO-Revision-Date: 2024-11-02 00:54+0000\n" "Last-Translator: Milan Šalka \n" "Language-Team: Slovak `_, `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..462a25165 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-08-19 11:32+0000\n" "PO-Revision-Date: 2025-07-19 06:36+0000\n" "Last-Translator: தமிழ்நேரம் \n" "Language-Team: Tamil `_, `pypa/gh-action-pypi-publish`_ generates " @@ -11210,11 +11217,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 +11229,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 +11240,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 +11266,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 +11280,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..78ef3650a 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-08-19 11:32+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -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..d8eec28b6 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-08-19 11:32+0000\n" "PO-Revision-Date: 2025-09-29 04:02+0000\n" "Last-Translator: Rüzgar Hünerel \n" "Language-Team: Turkish `_, `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..88f50ed66 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-08-19 11:32+0000\n" "PO-Revision-Date: 2024-03-01 20:00+0000\n" "Last-Translator: Sviatoslav Sydorenko \n" "Language-Team: Ukrainian `_, `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..e48ac5102 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-08-19 11:32+0000\n" "PO-Revision-Date: 2025-09-23 05:02+0000\n" "Last-Translator: Lenny Tran \n" "Language-Team: Vietnamese `_, `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..c059f96c0 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-08-19 11:32+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 "" @@ -9440,13 +9506,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 +9527,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 +9555,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 +9577,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 +9585,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 +9623,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 +9632,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 +16534,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..057e2c199 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-08-19 11:32+0000\n" "PO-Revision-Date: 2025-02-24 15:37+0000\n" "Last-Translator: toto6038 \n" "Language-Team: Chinese (Traditional Han script) `_, `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."