From b68663f326e590f68f821d345934d38141014a5c Mon Sep 17 00:00:00 2001 From: Haozhe Xu Date: Mon, 28 Sep 2026 06:51:28 +0200 Subject: [PATCH 01/24] Translated using Weblate (Literary Chinese) Currently translated at 1.5% (71 of 4540 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 26.9% (1222 of 4540 strings) Co-authored-by: Haozhe Xu Translate-URL: https://hosted.weblate.org/projects/pypa/packaging-python-org/lzh/ Translate-URL: https://hosted.weblate.org/projects/pypa/packaging-python-org/zh_Hans/ Translation: pypa/packaging.python.org --- locales/lzh/LC_MESSAGES/messages.po | 41 ++++++++++++++----------- locales/zh_Hans/LC_MESSAGES/messages.po | 10 +++--- 2 files changed, 28 insertions(+), 23 deletions(-) diff --git a/locales/lzh/LC_MESSAGES/messages.po b/locales/lzh/LC_MESSAGES/messages.po index fb6fe1af9..9245c7362 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 "" diff --git a/locales/zh_Hans/LC_MESSAGES/messages.po b/locales/zh_Hans/LC_MESSAGES/messages.po index 68ee244d3..729f9107a 100644 --- a/locales/zh_Hans/LC_MESSAGES/messages.po +++ b/locales/zh_Hans/LC_MESSAGES/messages.po @@ -38,14 +38,14 @@ # rand777 , 2025. # monios , 2025. # reducedradius <137701630+flytothehighest@users.noreply.github.com>, 2026. +# 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: 2026-06-28 07:02+0000\n" -"Last-Translator: reducedradius " -"<137701630+flytothehighest@users.noreply.github.com>\n" +"PO-Revision-Date: 2026-08-14 01:51+0000\n" +"Last-Translator: Haozhe Xu \n" "Language-Team: Chinese (Simplified Han script) \n" "Language: zh_Hans\n" @@ -53,7 +53,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" @@ -1520,7 +1520,7 @@ 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 "" From 03bf777b59a9f62c0911badd0653e586355d21ec Mon Sep 17 00:00:00 2001 From: moto kawasaki Date: Mon, 28 Sep 2026 06:51:30 +0200 Subject: [PATCH 02/24] Translated using Weblate (Japanese) Currently translated at 100.0% (4540 of 4540 strings) Co-authored-by: moto kawasaki Translate-URL: https://hosted.weblate.org/projects/pypa/packaging-python-org/ja/ Translation: pypa/packaging.python.org --- locales/ja/LC_MESSAGES/messages.po | 38 ++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/locales/ja/LC_MESSAGES/messages.po b/locales/ja/LC_MESSAGES/messages.po index 4e636dcfd..aa389f053 100644 --- a/locales/ja/LC_MESSAGES/messages.po +++ b/locales/ja/LC_MESSAGES/messages.po @@ -13,7 +13,7 @@ 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" +"PO-Revision-Date: 2026-08-14 01:51+0000\n" "Last-Translator: moto kawasaki \n" "Language-Team: Japanese \n" @@ -13360,6 +13360,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 +13371,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 +13381,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 +28955,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 +29170,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 +29220,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 +29313,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" From a84916790d46d16f692b9c90ad145db9cbd4e3f5 Mon Sep 17 00:00:00 2001 From: B10112 Date: Mon, 28 Sep 2026 06:51:32 +0200 Subject: [PATCH 03/24] Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 27.1% (1233 of 4540 strings) Co-authored-by: B10112 Translate-URL: https://hosted.weblate.org/projects/pypa/packaging-python-org/zh_Hans/ Translation: pypa/packaging.python.org --- locales/zh_Hans/LC_MESSAGES/messages.po | 33 ++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/locales/zh_Hans/LC_MESSAGES/messages.po b/locales/zh_Hans/LC_MESSAGES/messages.po index 729f9107a..2994e767d 100644 --- a/locales/zh_Hans/LC_MESSAGES/messages.po +++ b/locales/zh_Hans/LC_MESSAGES/messages.po @@ -39,13 +39,14 @@ # monios , 2025. # reducedradius <137701630+flytothehighest@users.noreply.github.com>, 2026. # Haozhe Xu , 2026. +# B10112 , 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-08-14 01:51+0000\n" -"Last-Translator: Haozhe Xu \n" +"PO-Revision-Date: 2026-08-17 03:52+0000\n" +"Last-Translator: B10112 \n" "Language-Team: Chinese (Simplified Han script) \n" "Language: zh_Hans\n" @@ -1526,13 +1527,15 @@ msgstr "在未被上游测试所覆盖的第三方平台上进行的测试。" 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 +1544,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 +1565,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 +1579,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 +1596,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 +1608,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 +1620,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 +1629,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 "" From 7b1a06b28b53018a97db9573b97f65ade454b891 Mon Sep 17 00:00:00 2001 From: Hosted Weblate user 162400 Date: Mon, 28 Sep 2026 06:51:33 +0200 Subject: [PATCH 04/24] Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 27.4% (1248 of 4540 strings) Co-authored-by: Hosted Weblate user 162400 Translate-URL: https://hosted.weblate.org/projects/pypa/packaging-python-org/zh_Hans/ Translation: pypa/packaging.python.org --- locales/zh_Hans/LC_MESSAGES/messages.po | 56 +++++++++++++++++++++---- 1 file changed, 47 insertions(+), 9 deletions(-) diff --git a/locales/zh_Hans/LC_MESSAGES/messages.po b/locales/zh_Hans/LC_MESSAGES/messages.po index 2994e767d..89850fa75 100644 --- a/locales/zh_Hans/LC_MESSAGES/messages.po +++ b/locales/zh_Hans/LC_MESSAGES/messages.po @@ -40,13 +40,15 @@ # reducedradius <137701630+flytothehighest@users.noreply.github.com>, 2026. # Haozhe Xu , 2026. # B10112 , 2026. +# Hosted Weblate user 162400 , 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-08-17 03:52+0000\n" -"Last-Translator: B10112 \n" +"PO-Revision-Date: 2026-08-18 21:41+0000\n" +"Last-Translator: Hosted Weblate user 162400 \n" "Language-Team: Chinese (Simplified Han script) \n" "Language: zh_Hans\n" @@ -1096,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 "" @@ -1638,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 "" @@ -1646,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 "" @@ -1655,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 "" @@ -1666,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 "" @@ -1674,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 "" @@ -1686,6 +1702,12 @@ 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" @@ -1698,6 +1720,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 "" @@ -1708,6 +1733,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 "" @@ -1717,24 +1746,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 "" @@ -1742,6 +1776,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 "" @@ -1749,6 +1785,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 "" @@ -16486,7 +16524,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`" From 0a883ad7e2d235884a733ed9b171df7c6b3e8389 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 28 Sep 2026 06:51:42 +0200 Subject: [PATCH 05/24] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/pypa/packaging-python-org/ Translation: pypa/packaging.python.org --- locales/ar/LC_MESSAGES/messages.po | 49 ++++++++------- locales/ars/LC_MESSAGES/messages.po | 49 ++++++++------- locales/cs/LC_MESSAGES/messages.po | 49 ++++++++------- locales/da/LC_MESSAGES/messages.po | 49 ++++++++------- locales/de/LC_MESSAGES/messages.po | 49 ++++++++------- locales/eo/LC_MESSAGES/messages.po | 49 ++++++++------- locales/es/LC_MESSAGES/messages.po | 49 ++++++++------- locales/fa/LC_MESSAGES/messages.po | 49 ++++++++------- locales/fil/LC_MESSAGES/messages.po | 49 ++++++++------- locales/fr/LC_MESSAGES/messages.po | 49 ++++++++------- locales/frc/LC_MESSAGES/messages.po | 49 ++++++++------- locales/gl/LC_MESSAGES/messages.po | 49 ++++++++------- locales/gmh/LC_MESSAGES/messages.po | 49 ++++++++------- locales/hi/LC_MESSAGES/messages.po | 49 ++++++++------- locales/id/LC_MESSAGES/messages.po | 49 ++++++++------- locales/ja/LC_MESSAGES/messages.po | 83 ++++++++++++++----------- locales/kab/LC_MESSAGES/messages.po | 49 ++++++++------- locales/ko/LC_MESSAGES/messages.po | 49 ++++++++------- locales/lzh/LC_MESSAGES/messages.po | 53 +++++++++------- locales/mk/LC_MESSAGES/messages.po | 49 ++++++++------- locales/mr/LC_MESSAGES/messages.po | 49 ++++++++------- locales/mrh/LC_MESSAGES/messages.po | 49 ++++++++------- locales/my/LC_MESSAGES/messages.po | 49 ++++++++------- locales/pl/LC_MESSAGES/messages.po | 49 ++++++++------- locales/pt/LC_MESSAGES/messages.po | 49 ++++++++------- locales/pt_BR/LC_MESSAGES/messages.po | 49 ++++++++------- locales/ro/LC_MESSAGES/messages.po | 49 ++++++++------- locales/ru/LC_MESSAGES/messages.po | 49 ++++++++------- locales/sai/LC_MESSAGES/messages.po | 49 ++++++++------- locales/si/LC_MESSAGES/messages.po | 49 ++++++++------- locales/sk/LC_MESSAGES/messages.po | 49 ++++++++------- locales/ta/LC_MESSAGES/messages.po | 49 ++++++++------- locales/th/LC_MESSAGES/messages.po | 49 ++++++++------- locales/tr/LC_MESSAGES/messages.po | 49 ++++++++------- locales/uk/LC_MESSAGES/messages.po | 49 ++++++++------- locales/vi/LC_MESSAGES/messages.po | 49 ++++++++------- locales/zh_Hans/LC_MESSAGES/messages.po | 78 ++++++++++++----------- locales/zh_Hant/LC_MESSAGES/messages.po | 49 ++++++++------- 38 files changed, 1098 insertions(+), 831 deletions(-) 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 aa389f053..b5551ad95 100644 --- a/locales/ja/LC_MESSAGES/messages.po +++ b/locales/ja/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-08-14 01:51+0000\n" "Last-Translator: moto kawasaki \n" "Language-Team: Japanese ワークフ" "ローが起動されることをも保証するものです。" -#: ../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 +11728,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 +11740,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 +11752,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 +11763,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 +11791,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 +11806,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." @@ -13381,9 +13388,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` を含む、ほとんどのパッケージ管理機構は、今や、このような種類の" -"追加物をサポートしています。" +":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 @@ -28958,9 +28965,9 @@ msgstr "" "追加物の中の依存関係指定子は、 (例えば、 ``all = [\"your-project-name[gui, " "cli]\"]`` のような) 現在のプロジェクトから他の追加物へ自己参照をしても構いま" "せん。例を見たければ、 :ref:`自己参照用追加物 ` を見" -"て下さい。 :ref:`pip` ・ :ref:`uv` ・ :ref:`poetry` ・ :ref:`hatch` ・ " -":ref:`pdm` や :ref:`pipenv` を含む、ほとんどのパッケージ管理機構は、今や、こ" -"の種の追加物をサポートしています。" +"て下さい。 :ref:`pip` ・ :ref:`uv` ・ :ref:`poetry` ・ :ref:`hatch` " +"・ :ref:`pdm` や :ref:`pipenv` を含む、ほとんどのパッケージ管理機構は、今や、" +"この種の追加物をサポートしています。" #: ../source/specifications/pyproject-toml.rst:520 msgid "" @@ -29172,8 +29179,8 @@ msgid "" msgstr "" "以下に列挙するように、そのキーが展開可能な知るとないし任意のテーブル *でない" "限り* 、メタデータ内のあるキーが静的に指定されていて、かつ、 ``dynamic`` にも" -"挙げてある場合には、ビルド用バックエンドはエラーを発生させなければなりません" -"。" +"挙げてある場合には、ビルド用バックエンドはエラーを発生させなければなりませ" +"ん。" #: ../source/specifications/pyproject-toml.rst:637 msgid "" @@ -29222,18 +29229,18 @@ msgid "" msgstr "" "ビルド用バックエンドは、その値に *追加* だけを行うことができます; 静的に指定" "されたエントリについて削除・順序変更や修正を行ってはなりません。 (``optional-" -"dependencies`` や ``entry-points`` のような) テーブルについては、これは、" -"バックエンドは新しいキーを追加することや (リストの場合は) 既存のキーにその値" -"を追加することは許されるが、静的に与えられたエントリを修正したり削除したりす" -"ることは許されないということです。" +"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`` に列挙されていて、しかも、そのキーを拡張することを" -"サポートしていないなら、ビルド用バックエンドはエラーを発生させるべきです。" +"あるキーが ``dynamic`` に列挙されていて、しかも、そのキーを拡張することをサ" +"ポートしていないなら、ビルド用バックエンドはエラーを発生させるべきです。" #: ../source/specifications/pyproject-toml.rst:680 msgid "Arbitrary tool configuration: the ``[tool]`` table" @@ -29313,9 +29320,9 @@ msgid "" "listed in ``dynamic``, with build back-ends only able to append entries, " "through :pep:`808`." msgstr "" -"2026年5月: ビルド用バックエンドがエントリを追加することしかできないという形で" -"、リストやテーブルのキーが静的に与えられると同時に ``dynamic`` に列挙されるこ" -"とを :pep:`808` を通じて許可した。" +"2026年5月: ビルド用バックエンドがエントリを追加することしかできないという形" +"で、リストやテーブルのキーが静的に与えられると同時に ``dynamic`` に列挙される" +"ことを :pep:`808` を通じて許可した。" #: ../source/specifications/pyproject-toml.rst:722 msgid "" 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/lzh/LC_MESSAGES/messages.po b/locales/lzh/LC_MESSAGES/messages.po index 9245c7362..f800da947 100644 --- a/locales/lzh/LC_MESSAGES/messages.po +++ b/locales/lzh/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-08-14 01:51+0000\n" "Last-Translator: Haozhe Xu \n" "Language-Team: Literary Chinese `_, `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/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..e5f34d33c 100644 --- a/locales/pl/LC_MESSAGES/messages.po +++ b/locales/pl/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-02-11 07:09+0000\n" "Last-Translator: Maciej Olko \n" "Language-Team: Polish `_, `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." 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 89850fa75..b2710473c 100644 --- a/locales/zh_Hans/LC_MESSAGES/messages.po +++ b/locales/zh_Hans/LC_MESSAGES/messages.po @@ -45,7 +45,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-08-18 21:41+0000\n" "Last-Translator: Hosted Weblate user 162400 \n" @@ -1536,8 +1536,8 @@ 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 "" @@ -1599,8 +1599,8 @@ msgid "" "being part of the installed package!" msgstr "" "测试期间不要向包目录中写入任何内容。下游测试环境有时会在已安装的包之上直接运" -"行测试,而测试过程中所做的修改以及临时测试文件最终可能会被误纳入已安装的包中" -"!" +"行测试,而测试过程中所做的修改以及临时测试文件最终可能会被误纳入已安装的包" +"中!" #: ../source/discussions/downstream-packaging.rst:353 msgid "" @@ -1640,8 +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 "" @@ -1678,8 +1678,8 @@ msgid "" msgstr "" "请按照用途拆分测试,并让无关或存在问题的测试类别可以方便地跳过。下游测试的主" "要目的是确保软件包本身能够正常工作,因此下游项目通常并不关心代码覆盖率检查、" -"代码格式化、类型检查或是运行基准测试这类任务。当依赖升级或者系统处于高负载时" -",这类测试可能会失败,但并不会真正影响软件包本身的功能。" +"代码格式化、类型检查或是运行基准测试这类任务。当依赖升级或者系统处于高负载" +"时,这类测试可能会失败,但并不会真正影响软件包本身的功能。" #: ../source/discussions/downstream-packaging.rst:390 msgid "" @@ -1704,10 +1704,11 @@ msgid "" msgstr "" "在理想情况下,请支持通过 ``pytest`` 运行你的测试套件。``pytest``_ 拥有大量对" "下游项目十分实用的命令行参数,例如可以便捷地剔除指定测试、重跑不稳定测试(借" -"助 ``pytest‑rerunfailures``_)、设置超时防止测试挂起(借助 ``pytest‑" -"timeout``_),或是并行执行测试(借助 ``pytest‑xdist``_)。请注意:测试套件无" -"需用 ``pytest`` *written*,也能够用 ``pytest`` *executed*;``pytest`` 几乎能" -"够发现并运行所有兼容标准库 ``unittest`` 测试发现机制的测试用例。" +"助 ``pytest‑rerunfailures``_)、设置超时防止测试挂起(借助 " +"``pytest‑timeout``_),或是并行执行测试(借助 ``pytest‑xdist``_)。请注意:测" +"试套件无需用 ``pytest`` *written*,也能够用 ``pytest`` *executed*;" +"``pytest`` 几乎能够发现并运行所有兼容标准库 ``unittest`` 测试发现机制的测试用" +"例。" #: ../source/discussions/downstream-packaging.rst:409 msgid "Aim for stable releases" @@ -1747,8 +1748,8 @@ msgid "" "such as:" msgstr "" "但也存在需要更快速处理的情形。例如,如果稳定渠道当前提供的版本中发现安全漏洞" -"或重大缺陷,下游项目就需要着手解决该问题。此时他们需要权衡多种可选方案,例如" -":" +"或重大缺陷,下游项目就需要着手解决该问题。此时他们需要权衡多种可选方案,例" +"如:" #: ../source/discussions/downstream-packaging.rst:431 msgid "putting a new version in the stable channel early," @@ -9503,13 +9504,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 " @@ -9517,24 +9525,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, " @@ -9545,21 +9553,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`_ " @@ -9567,7 +9575,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 " @@ -9575,37 +9583,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 " @@ -9613,7 +9621,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 " @@ -9622,7 +9630,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_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." From ad872449e38e7164fd68bb1e22e9434b8eff0df7 Mon Sep 17 00:00:00 2001 From: moto kawasaki Date: Mon, 28 Sep 2026 06:51:44 +0200 Subject: [PATCH 06/24] Translated using Weblate (Japanese) Currently translated at 100.0% (4541 of 4541 strings) Co-authored-by: moto kawasaki Translate-URL: https://hosted.weblate.org/projects/pypa/packaging-python-org/ja/ Translation: pypa/packaging.python.org --- locales/ja/LC_MESSAGES/messages.po | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/locales/ja/LC_MESSAGES/messages.po b/locales/ja/LC_MESSAGES/messages.po index b5551ad95..d491653ed 100644 --- a/locales/ja/LC_MESSAGES/messages.po +++ b/locales/ja/LC_MESSAGES/messages.po @@ -13,7 +13,7 @@ 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-14 01:51+0000\n" +"PO-Revision-Date: 2026-08-23 23:51+0000\n" "Last-Translator: moto kawasaki \n" "Language-Team: Japanese \n" @@ -11638,6 +11638,10 @@ msgid "" "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 "" From 9091f1b328966265c93c4110416b2f9a5c1b17f2 Mon Sep 17 00:00:00 2001 From: Maciej Olko Date: Mon, 28 Sep 2026 06:51:46 +0200 Subject: [PATCH 07/24] Translated using Weblate (Polish) Currently translated at 1.6% (77 of 4541 strings) Co-authored-by: Maciej Olko Translate-URL: https://hosted.weblate.org/projects/pypa/packaging-python-org/pl/ Translation: pypa/packaging.python.org --- locales/pl/LC_MESSAGES/messages.po | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/locales/pl/LC_MESSAGES/messages.po b/locales/pl/LC_MESSAGES/messages.po index e5f34d33c..089c05baf 100644 --- a/locales/pl/LC_MESSAGES/messages.po +++ b/locales/pl/LC_MESSAGES/messages.po @@ -9,7 +9,7 @@ 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-02-11 07:09+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" @@ -10297,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 "" @@ -10305,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 "" @@ -10312,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 "" @@ -10323,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 "" From a4d864acc7a0603f30a5004d82b54262e8d92d83 Mon Sep 17 00:00:00 2001 From: JaxonMa Date: Mon, 28 Sep 2026 06:51:47 +0200 Subject: [PATCH 08/24] Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 27.5% (1249 of 4541 strings) Co-authored-by: JaxonMa Translate-URL: https://hosted.weblate.org/projects/pypa/packaging-python-org/zh_Hans/ Translation: pypa/packaging.python.org --- locales/zh_Hans/LC_MESSAGES/messages.po | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/locales/zh_Hans/LC_MESSAGES/messages.po b/locales/zh_Hans/LC_MESSAGES/messages.po index b2710473c..c059f96c0 100644 --- a/locales/zh_Hans/LC_MESSAGES/messages.po +++ b/locales/zh_Hans/LC_MESSAGES/messages.po @@ -41,14 +41,14 @@ # 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-19 11:32+0000\n" -"PO-Revision-Date: 2026-08-18 21:41+0000\n" -"Last-Translator: Hosted Weblate user 162400 \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" @@ -1795,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 "" From e7b89f7fad733292f758215865589c2c2ba0a105 Mon Sep 17 00:00:00 2001 From: Bone NI Date: Mon, 28 Sep 2026 06:51:49 +0200 Subject: [PATCH 09/24] Translated using Weblate (Lao) Currently translated at 100.0% (4541 of 4541 strings) Added translation using Weblate (Lao) Co-authored-by: Bone NI Translate-URL: https://hosted.weblate.org/projects/pypa/packaging-python-org/lo/ Translation: pypa/packaging.python.org --- locales/lo/LC_MESSAGES/messages.po | 24133 +++++++++++++++++++++++++++ 1 file changed, 24133 insertions(+) create mode 100644 locales/lo/LC_MESSAGES/messages.po 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`` ຈະດີກວ່າ." From e305d32a212816a704611327de66788c5af3cd10 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 28 Sep 2026 06:51:58 +0200 Subject: [PATCH 10/24] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/pypa/packaging-python-org/ Translation: pypa/packaging.python.org --- locales/ar/LC_MESSAGES/messages.po | 6 +- locales/ars/LC_MESSAGES/messages.po | 6 +- locales/cs/LC_MESSAGES/messages.po | 6 +- locales/da/LC_MESSAGES/messages.po | 6 +- locales/de/LC_MESSAGES/messages.po | 6 +- locales/eo/LC_MESSAGES/messages.po | 11 +- locales/es/LC_MESSAGES/messages.po | 6 +- locales/fa/LC_MESSAGES/messages.po | 6 +- locales/fil/LC_MESSAGES/messages.po | 6 +- locales/fr/LC_MESSAGES/messages.po | 6 +- locales/frc/LC_MESSAGES/messages.po | 6 +- locales/gl/LC_MESSAGES/messages.po | 6 +- locales/gmh/LC_MESSAGES/messages.po | 6 +- locales/hi/LC_MESSAGES/messages.po | 6 +- locales/id/LC_MESSAGES/messages.po | 6 +- locales/ja/LC_MESSAGES/messages.po | 11 +- locales/kab/LC_MESSAGES/messages.po | 6 +- locales/ko/LC_MESSAGES/messages.po | 6 +- locales/lo/LC_MESSAGES/messages.po | 23045 +++++++++++++++------- locales/lzh/LC_MESSAGES/messages.po | 6 +- locales/mk/LC_MESSAGES/messages.po | 6 +- locales/mr/LC_MESSAGES/messages.po | 6 +- locales/mrh/LC_MESSAGES/messages.po | 6 +- locales/my/LC_MESSAGES/messages.po | 6 +- locales/pl/LC_MESSAGES/messages.po | 6 +- locales/pt/LC_MESSAGES/messages.po | 11 +- locales/pt_BR/LC_MESSAGES/messages.po | 11 +- locales/ro/LC_MESSAGES/messages.po | 6 +- locales/ru/LC_MESSAGES/messages.po | 11 +- locales/sai/LC_MESSAGES/messages.po | 6 +- locales/si/LC_MESSAGES/messages.po | 6 +- locales/sk/LC_MESSAGES/messages.po | 6 +- locales/ta/LC_MESSAGES/messages.po | 11 +- locales/th/LC_MESSAGES/messages.po | 6 +- locales/tr/LC_MESSAGES/messages.po | 6 +- locales/uk/LC_MESSAGES/messages.po | 6 +- locales/vi/LC_MESSAGES/messages.po | 6 +- locales/zh_Hans/LC_MESSAGES/messages.po | 11 +- locales/zh_Hant/LC_MESSAGES/messages.po | 6 +- 39 files changed, 16053 insertions(+), 7255 deletions(-) diff --git a/locales/ar/LC_MESSAGES/messages.po b/locales/ar/LC_MESSAGES/messages.po index e7ba7249c..df9deeb12 100644 --- a/locales/ar/LC_MESSAGES/messages.po +++ b/locales/ar/LC_MESSAGES/messages.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2025-12-15 04:00+0000\n" "Last-Translator: HAMDI KHALID \n" "Language-Team: Arabic `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/ars/LC_MESSAGES/messages.po b/locales/ars/LC_MESSAGES/messages.po index b2d5aa8d9..d4eb49cc4 100644 --- a/locales/ars/LC_MESSAGES/messages.po +++ b/locales/ars/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -4485,8 +4485,8 @@ msgstr "" #: ../source/guides/creating-and-discovering-plugins.rst:167 msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/cs/LC_MESSAGES/messages.po b/locales/cs/LC_MESSAGES/messages.po index 0a7ad1d0c..c63a3788a 100644 --- a/locales/cs/LC_MESSAGES/messages.po +++ b/locales/cs/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2025-10-16 23:52+0000\n" "Last-Translator: Karolína Wallenfelsová \n" "Language-Team: Czech `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/da/LC_MESSAGES/messages.po b/locales/da/LC_MESSAGES/messages.po index 94366a582..71b693166 100644 --- a/locales/da/LC_MESSAGES/messages.po +++ b/locales/da/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2025-10-09 04:07+0000\n" "Last-Translator: Philip Mallegol-Hansen \n" "Language-Team: Danish `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/de/LC_MESSAGES/messages.po b/locales/de/LC_MESSAGES/messages.po index 8cf0bb963..7beb0bf9f 100644 --- a/locales/de/LC_MESSAGES/messages.po +++ b/locales/de/LC_MESSAGES/messages.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2026-07-22 20:54+0000\n" "Last-Translator: VfBFan \n" "Language-Team: German `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/eo/LC_MESSAGES/messages.po b/locales/eo/LC_MESSAGES/messages.po index f9660e56d..fa963d3f0 100644 --- a/locales/eo/LC_MESSAGES/messages.po +++ b/locales/eo/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2025-06-29 12:03+0000\n" "Last-Translator: phlostically \n" "Language-Team: Esperanto ` ." #: ../source/guides/creating-and-discovering-plugins.rst:167 +#, fuzzy +#| msgid "" +#| "Since this specification is part of the :doc:`standard library " +#| "`, most packaging tools other than " +#| "setuptools provide support for defining entry points." msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" "Ĉar ĉi tiu specifo estas parto de la :doc:`norma biblioteko `, multaj iloj krom setuptools subtenas difinadon de " diff --git a/locales/es/LC_MESSAGES/messages.po b/locales/es/LC_MESSAGES/messages.po index cf841aa25..7cf7dced2 100644 --- a/locales/es/LC_MESSAGES/messages.po +++ b/locales/es/LC_MESSAGES/messages.po @@ -17,7 +17,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2025-12-12 01:00+0000\n" "Last-Translator: Joseph Hale \n" "Language-Team: Spanish `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/fa/LC_MESSAGES/messages.po b/locales/fa/LC_MESSAGES/messages.po index 5cf7b149a..64cc3956f 100644 --- a/locales/fa/LC_MESSAGES/messages.po +++ b/locales/fa/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2026-07-30 20:47+0000\n" "Last-Translator: Kamrani \n" "Language-Team: Persian `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/fil/LC_MESSAGES/messages.po b/locales/fil/LC_MESSAGES/messages.po index 0a025df91..c082f0149 100644 --- a/locales/fil/LC_MESSAGES/messages.po +++ b/locales/fil/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2022-11-19 08:28+0000\n" "Last-Translator: RedFurrFox \n" "Language-Team: Filipino `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/fr/LC_MESSAGES/messages.po b/locales/fr/LC_MESSAGES/messages.po index 416943ffc..f77f58de6 100644 --- a/locales/fr/LC_MESSAGES/messages.po +++ b/locales/fr/LC_MESSAGES/messages.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2026-01-20 00:01+0000\n" "Last-Translator: Nathan \n" "Language-Team: French `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/frc/LC_MESSAGES/messages.po b/locales/frc/LC_MESSAGES/messages.po index 06a3c5983..0c92fb2e6 100644 --- a/locales/frc/LC_MESSAGES/messages.po +++ b/locales/frc/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -4485,8 +4485,8 @@ msgstr "" #: ../source/guides/creating-and-discovering-plugins.rst:167 msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/gl/LC_MESSAGES/messages.po b/locales/gl/LC_MESSAGES/messages.po index 3e34bfb3e..fb96e38c3 100644 --- a/locales/gl/LC_MESSAGES/messages.po +++ b/locales/gl/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -4485,8 +4485,8 @@ msgstr "" #: ../source/guides/creating-and-discovering-plugins.rst:167 msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/gmh/LC_MESSAGES/messages.po b/locales/gmh/LC_MESSAGES/messages.po index 17ca0aa04..d5f0d0992 100644 --- a/locales/gmh/LC_MESSAGES/messages.po +++ b/locales/gmh/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -4485,8 +4485,8 @@ msgstr "" #: ../source/guides/creating-and-discovering-plugins.rst:167 msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/hi/LC_MESSAGES/messages.po b/locales/hi/LC_MESSAGES/messages.po index 7fac139f5..aaa2eaf93 100644 --- a/locales/hi/LC_MESSAGES/messages.po +++ b/locales/hi/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2024-09-16 10:09+0000\n" "Last-Translator: kumar Shivam \n" "Language-Team: Hindi `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/id/LC_MESSAGES/messages.po b/locales/id/LC_MESSAGES/messages.po index 8a0259b9d..3e222a9df 100644 --- a/locales/id/LC_MESSAGES/messages.po +++ b/locales/id/LC_MESSAGES/messages.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2024-10-17 21:16+0000\n" "Last-Translator: oon arfiandwi \n" "Language-Team: Indonesian `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/ja/LC_MESSAGES/messages.po b/locales/ja/LC_MESSAGES/messages.po index d491653ed..0421fdad5 100644 --- a/locales/ja/LC_MESSAGES/messages.po +++ b/locales/ja/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-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2026-08-23 23:51+0000\n" "Last-Translator: moto kawasaki \n" "Language-Team: Japanese ` の全部のセクションに目を通すことをお勧めします。" #: ../source/guides/creating-and-discovering-plugins.rst:167 +#, fuzzy +#| msgid "" +#| "Since this specification is part of the :doc:`standard library " +#| "`, most packaging tools other than " +#| "setuptools provide support for defining entry points." msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" "この仕様は :doc:`標準ライブラリ ` の一部な" "ので、setuptools以外のほとんどのパッケージングツールでもエントリポイントを定" diff --git a/locales/kab/LC_MESSAGES/messages.po b/locales/kab/LC_MESSAGES/messages.po index 4cf42a764..2d75be5b3 100644 --- a/locales/kab/LC_MESSAGES/messages.po +++ b/locales/kab/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2026-06-24 22:01+0000\n" "Last-Translator: ButterflyOfFire \n" "Language-Team: Kabyle `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/ko/LC_MESSAGES/messages.po b/locales/ko/LC_MESSAGES/messages.po index 1b9dca84d..0c8afc379 100644 --- a/locales/ko/LC_MESSAGES/messages.po +++ b/locales/ko/LC_MESSAGES/messages.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2026-02-05 03:01+0000\n" "Last-Translator: 스이미 \n" "Language-Team: Korean `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/lo/LC_MESSAGES/messages.po b/locales/lo/LC_MESSAGES/messages.po index 32b777069..6b37b47d8 100644 --- a/locales/lo/LC_MESSAGES/messages.po +++ b/locales/lo/LC_MESSAGES/messages.po @@ -6,15 +6,15 @@ 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" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2026-08-29 23:24+0000\n" "Last-Translator: Bone NI \n" "Language-Team: Lao \n" +"Language: lo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: lo\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 2026.9.dev0\n" @@ -23,7 +23,9 @@ msgid "Contribute to this guide" msgstr "ປະກອບສ່ວນໃນຄູ່ມືນີ້" #: ../source/contribute.rst:7 -msgid "The |PyPUG| welcomes contributors! There are lots of ways to help out, including:" +msgid "" +"The |PyPUG| welcomes contributors! There are lots of ways to help out, " +"including:" msgstr "|PyPUG| ຍິນດີຕ້ອນຮັບຜູ້ປະກອບສ່ວນ! ມີຫຼາຍວິທີທີ່ຈະຊ່ວຍເຫຼືອໄດ້, ລວມທັງ:" #: ../source/contribute.rst:10 @@ -47,14 +49,21 @@ 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 `." +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 `." +"ວຽກງານສ່ວນໃຫຍ່ຂອງ |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`__." +msgid "" +"By contributing to the |PyPUG|, you're expected to follow the PSF's `Code of " +"Conduct`__." msgstr "" "ໃນການປະກອບສ່ວນໃຫ້ກັບ |PyPUG|, ທ່ານຖືກຄາດຫວັງໃຫ້ປະຕິບັດຕາມ `Code of Conduct`__ ຂອງ PSF." @@ -63,79 +72,104 @@ 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." +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`_ ເພື່ອສ້າງເອກະສານທີ່ມີຄຸນນະພາບ. ເມື່ອສະເໜີການເພີ່ມເຕີມໃໝ່ເຂົ້າໃນໂຄງ" -"ການ, ກະລຸນາເລືອກປະເພດເອກະສານທີ່ເໝາະສົມ." +"ໂຄງການນີ້ປະກອບດ້ວຍເອກະສານສີ່ປະເພດທີ່ແຕກຕ່າງກັນ ໂດຍມີຈຸດປະສົງສະເພາະ. " +"ໂຄງການນີ້ມີຄວາມຕັ້ງໃຈທີ່ຈະປະຕິບັດຕາມ `Diátaxis process`_ ເພື່ອສ້າງເອກະສານທີ່ມີຄຸນນະພາບ. " +"ເມື່ອສະເໜີການເພີ່ມເຕີມໃໝ່ເຂົ້າໃນໂຄງການ, ກະລຸນາເລືອກປະເພດເອກະສານທີ່ເໝາະສົມ." -#: ../source/contribute.rst:42 -#: ../source/index.rst:55 +#: ../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`_." +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) ແມ່ນເນັ້ນໃສ່ການສອນແນວຄວາມຄິດໃໝ່ໃຫ້ກັບຜູ້ອ່ານໂດຍການບັນລຸເປົ້າໝາຍໃດໜຶ່" -"ງ. ພວກມັນແມ່ນຄູ່ມືແບບເປັນຂັ້ນເປັນຕອນ. ພວກມັນຈະບໍ່ລວມເອົາຄຳເຕືອນ ຫຼື ຂໍ້ມູນທີ່ບໍ່ກ່ຽວຂ້ອງເກີນຄວາມຈຳເປັນ. " +"ບົດຮຽນການນຳໃຊ້ (Tutorials) " +"ແມ່ນເນັ້ນໃສ່ການສອນແນວຄວາມຄິດໃໝ່ໃຫ້ກັບຜູ້ອ່ານໂດຍການບັນລຸເປົ້າໝາຍໃດໜຶ່ງ. " +"ພວກມັນແມ່ນຄູ່ມືແບບເປັນຂັ້ນເປັນຕອນ. ພວກມັນຈະບໍ່ລວມເອົາຄຳເຕືອນ ຫຼື ຂໍ້ມູນທີ່ບໍ່ກ່ຽວຂ້ອງເກີນຄວາມຈຳເປັນ. " "`example tutorial-style document`_." -#: ../source/contribute.rst:51 -#: ../source/guides/index.rst:2 +#: ../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 `." +msgstr "" +"ຄູ່ມືແນະນຳ (Guides) ແມ່ນເນັ້ນໃສ່ການເຮັດວຽກສະເພາະໃດໜຶ່ງໃຫ້ສຳເລັດ ແລະ " +"ອາດຈະຄາດການວ່າຜູ້ອ່ານມີຄວາມຮູ້ພື້ນຖານມາແລ້ວບາງສ່ວນ. ເຫຼົ່ານີ້ແມ່ນຄ້າຍຄືກັບບົດຮຽນການນຳໃຊ້, " +"ແຕ່ມີຈຸດເນັ້ນທີ່ແຄບ ແລະ ຊັດເຈນກວ່າ, ແລະ ສາມາດໃຫ້ຄຳເຕືອນ ຫຼື ຂໍ້ມູນເພີ່ມເຕີມໄດ້ຕາມຄວາມຈຳເປັນ. " +"ພວກມັນອາດຈະມີການປຶກສາຫາລືກ່ຽວກັບຫຼາຍວິທີໃນການເຮັດວຽກນັ້ນໃຫ້ສຳເລັດ. :doc:`example guide-" +"style document `." -#: ../source/contribute.rst:60 -#: ../source/discussions/index.rst:2 +#: ../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-" +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 `." +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 `." +"ຂໍ້ກຳນົດທາງເຕັກນິກ (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." +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`_." +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`_." +msgid "" +"Any translations of this project should follow `reStructuredText syntax`_." msgstr "ການແປພາສາໃດໆ ຂອງໂຄງການນີ້ຄວນປະຕິບັດຕາມ `reStructuredText syntax`_." #: ../source/contribute.rst:93 @@ -143,7 +177,10 @@ 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." +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` ຢູ່ທາງລຸ່ມຂອງລາຍຊື່ພາສາ ແລະ ເພີ່ມພາສາທີ່ທ່ານຕ້ອງການແປ." @@ -153,17 +190,21 @@ 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." +msgid "" +"If you are not familiar with reStructuredText (RST) syntax, please read " +"`this guide`_ before translating on Weblate." msgstr "" -"ຖ້າທ່ານບໍ່ຄຸ້ນເຄີຍກັບ syntax ຂອງ reStructuredText (RST), ກະລຸນາອ່ານ `ຄູ່ມືນີ້`_ ກ່ອນທີ່ຈະເລີ່ມແປໃ" -"ນ Weblate." +"ຖ້າທ່ານບໍ່ຄຸ້ນເຄີຍກັບ 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." +msgid "" +"When translating the text in reference, please do not translate them " +"directly." msgstr "ເມື່ອແປຂໍ້ຄວາມທີ່ມີການອ້າງອີງ, ກະລຸນາຢ່າແປພວກມັນໂດຍກົງ." #: ../source/contribute.rst:0 @@ -171,7 +212,9 @@ 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:" +msgid "" +"Right: Translate the following text with your own language and add the " +"original reference:" msgstr "ຖືກ: ແປຂໍ້ຄວາມຕໍ່ໄປນີ້ເປັນພາສາຂອງທ່ານເອງ ແລະ ໃສ່ບ່ອນອ້າງອີງເດີມໄວ້:" #: ../source/contribute.rst:123 @@ -179,40 +222,52 @@ 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:" +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 ຄູ່ມືນີ້, ທ່ານຈະຕ້ອງມີ:" +"ເຖິງວ່າຈະບໍ່ຈຳເປັນໃນການປະກອບສ່ວນ, ແຕ່ມັນອາດຈະມີປະໂຫຍດໃນການ build " +"ຄູ່ມືນີ້ຢູ່ໃນເຄື່ອງຂອງທ່ານເອງເພື່ອທົດສອບການປ່ຽນແປງ. ເພື່ອ build ຄູ່ມືນີ້, ທ່ານຈະຕ້ອງມີ:" #: ../source/contribute.rst:129 msgid ":doc:`Nox `. You can install or upgrade nox using ``pip``:" -msgstr "" -":doc:`Nox `. ທ່ານສາມາດຕິດຕັ້ງ ຫຼື ອັບເກຣດ nox ໄດ້ໂດຍໃຊ້ ``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." +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 ໃນລະບົບປະຕິບັດການຂອງທ່າ" -"ນ." +"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) ຂອງໂຄງການ:" +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." +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 " +"ຫຼັງຈາກຂະບວນການສຳເລັດແລ້ວ, ທ່ານສາມາດຊອກຫາໄຟລ໌ 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 ໄດ້ໂດຍໃຊ້ຄຳສັ່ງຕໍ່ໄປນີ້:" +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." @@ -223,7 +278,10 @@ 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." +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/. ມັນຖືກເປີດໃຊ້ຜ່ານໂດເມນທີ່ກຳນົດເອງ ແລະ ມີ " @@ -234,38 +292,51 @@ 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." +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|. ກ່ອນທີ່ທ່ານຈະເລີ່ມຂຽນ, ກະລຸນາກວດສອບເບິ່" -"ງກ່ອນ. ໂດຍການປະຕິບັດຕາມຄູ່ມືຮູບແບບນີ້, ການປະກອບສ່ວນຂອງທ່ານຈະຊ່ວຍໃຫ້ເນື້ອຫາເປັນອັນໜຶ່ງອັນດຽວກັນ ແລ" -"ະ ເຮັດໃຫ້ການປະກອບສ່ວນຂອງທ່ານຖືກຍອມຮັບເຂົ້າໃນໂຄງການໄດ້ງ່າຍຂຶ້ນ." +"ຄູ່ມືຮູບແບບນີ້ມີຄຳແນະນຳກ່ຽວກັບວິທີທີ່ທ່ານຄວນຂຽນໃຫ້ກັບ |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." +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 ໂດຍໃຊ້ເຄື່ອງມືໃນປັດຈຸບັນ." +"ຈຸດປະສົງຂອງ |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 "" -"ຄູ່ມືນີ້ມີໄວ້ເພື່ອຕອບຄຳຖາມ ແລະ ແກ້ໄຂບັນຫາດ້ວຍຄຳແນະນຳທີ່ຖືກຕ້ອງ ແລະ ກົງປະເດັນ." +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." +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 ທີ່ຈຳເປັນໃນການເຮັດວຽກສະເພາະທີ່ລະບຸໄວ້ໃນຄູ່ມືນີ້ເທົ່" -"ານັ້ນ." +"pip ມີຄຳສັ່ງ, ຕົວເລືອກ, ແລະ ການຕັ້ງຄ່າຫຼາຍສິບຢ່າງ. ເອກະສານຂອງ pip " +"ຈະອະທິບາຍແຕ່ລະຢ່າງໂດຍລະອຽດ, ໃນຂະນະທີ່ຄູ່ມືນີ້ຈະອະທິບາຍສະເພາະພາກສ່ວນຂອງ pip " +"ທີ່ຈຳເປັນໃນການເຮັດວຽກສະເພາະທີ່ລະບຸໄວ້ໃນຄູ່ມືນີ້ເທົ່ານັ້ນ." #: ../source/contribute.rst:199 msgid "Audience" @@ -276,48 +347,71 @@ 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." +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 ນັ້ນໃຫຍ່ ແລະ ຍິນດີຕ້ອນຮັບທຸກຄົນ. ຜູ້ອ່ານອາດຈະມີອາຍຸ, ເພດ, ການສຶກສາ, ວັດທະນະ" -"ທຳ ແລະ ອື່ນໆ ທີ່ແຕກຕ່າງຈາກທ່ານ, ແຕ່ພວກເຂົາສົມຄວນທີ່ຈະໄດ້ຮຽນຮູ້ກ່ຽວກັບການຈັດການແພັກເກດຄືກັນກັບທ່ານ." +"ຢ່າລືມວ່າຊຸມຊົນ 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." +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 ຈະເຫັນວ່າຕົນເອງເປັນນັກຂຽນໂປຣແກຣມ. ຜູ້ອ່ານຄູ່ມືນີ້ລວມມີ" -"ທັງນັກດາລາສາດ ຫຼື ຈິດຕະກອນ ຫຼື ນັກຮຽນ ນັກສຶກສາ ຕະຫຼອດຮອດນັກພັດທະນາຊອບແວມືອາຊີບ." +"ໂດຍສະເພາະ, ໃຫ້ຈື່ໄວ້ວ່າບໍ່ແມ່ນທຸກຄົນທີ່ໃຊ້ 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." +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." +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 ກັບໃຜບາງຄົນທີ່ທ່ານຮູ້ວ່າມີຄວາມສະຫຼາດ ແລະ ເກັ່ງ. ທ່າ" -"ນມັກເຮັດວຽກກັບພວກເຂົາ ແລະ ພວກເຂົາກໍມັກເຮັດວຽກກັບທ່ານ. ຄົນນັ້ນໄດ້ຖາມຄຳຖາມທ່ານ ແລະ ທ່ານຮູ້ຄຳຕອບ. " -"ທ່ານຈະຕອບແນວໃດ? *ນັ້ນ* ຄືວິທີທີ່ທ່ານຄວນຂຽນຄູ່ມືນີ້." +"ລອງນຶກພາບວ່າທ່ານກຳລັງເຮັດວຽກໃນໂຄງການ 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) ໄດ້ ຖ້ານັ້ນຄືສິ່ງທີ່ທ່ານຕ້ອງການ." +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." +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" @@ -328,9 +422,10 @@ 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 "" -"ເມື່ອໃຫ້ຄຳແນະນຳ ຫຼື ຂັ້ນຕອນທີ່ຕ້ອງເຮັດ, ໃຫ້ເອີ້ນຜູ້ອ່ານວ່າ *ທ່ານ* ຫຼື ໃຊ້ຮູບແບບປະໂຫຍກຄຳສັ່ງ." +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…" @@ -349,17 +444,25 @@ 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." +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." +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) ໄປຫາພາກສ່ວນຂອງຄູ່ມືທີ່ກ່ຽວຂ້ອງ, ຫຼື " "ເຊື່ອມຕໍ່ໄປຫາເອກະສານອື່ນໆ ທີ່ກ່ຽວຂ້ອງ. ເພື່ອຊ່ວຍໃຫ້ຜູ້ອ່ານບໍ່ຕ້ອງເສຍເວລາຄົ້ນຫາເອງ." @@ -369,10 +472,12 @@ msgid "**Respect naming practices**" msgstr "**ເຄົາລົບວິທີການຕັ້ງຊື່**" #: ../source/contribute.rst:259 -msgid "When naming tools, sites, people, and other proper nouns, use their preferred capitalization." +msgid "" +"When naming tools, sites, people, and other proper nouns, use their " +"preferred capitalization." msgstr "" -"ເມື່ອຕັ້ງຊື່ເຄື່ອງມື, ເວັບໄຊ, ບຸກຄົນ, ແລະ ຄຳນາມສະເພາະອື່ນໆ, ໃຫ້ໃຊ້ຕົວອັກສອນໃຫຍ່-ນ້ອຍ ຕາມທີ່ພວກເຂົາກຳ" -"ນົດ." +"ເມື່ອຕັ້ງຊື່ເຄື່ອງມື, ເວັບໄຊ, ບຸກຄົນ, ແລະ ຄຳນາມສະເພາະອື່ນໆ, ໃຫ້ໃຊ້ຕົວອັກສອນໃຫຍ່-ນ້ອຍ " +"ຕາມທີ່ພວກເຂົາກຳນົດ." #: ../source/contribute.rst:0 msgid "Wrong: Pip uses…" @@ -395,7 +500,10 @@ 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." +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 "" "ສ່ວນຫຼາຍແລ້ວ, ທ່ານຈະເວົ້າກັບຜູ້ອ່ານໂດຍກົງດ້ວຍຄຳວ່າ *ທ່ານ*. ຖ້າບໍ່ດັ່ງນັ້ນ, ໃຫ້ໃຊ້ຄຳແທນນາມທີ່ບໍ່ລະບຸເພດ ຫຼື " "ຫຼີກເວັ້ນການໃຊ້ຄຳແທນນາມໄປເລີຍ." @@ -417,17 +525,23 @@ 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*." +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." +msgid "" +"In section headings, use sentence case. In other words, write headings as " +"you would write a typical sentence." msgstr "" -"ໃນຫົວຂໍ້ຂອງແຕ່ລະພາກສ່ວນ, ໃຫ້ໃຊ້ຕົວອັກສອນແບບປະໂຫຍກທົ່ວໄປ (sentence case). ເວົ້າອີກຢ່າງໜຶ່ງແມ່ນ ຂ" -"ຽນຫົວຂໍ້ຄືກັບທີ່ທ່ານຂຽນປະໂຫຍກປົກກະຕິ." +"ໃນຫົວຂໍ້ຂອງແຕ່ລະພາກສ່ວນ, ໃຫ້ໃຊ້ຕົວອັກສອນແບບປະໂຫຍກທົ່ວໄປ (sentence case). ເວົ້າອີກຢ່າງໜຶ່ງແມ່ນ " +"ຂຽນຫົວຂໍ້ຄືກັບທີ່ທ່ານຂຽນປະໂຫຍກປົກກະຕິ." #: ../source/contribute.rst:0 msgid "Wrong: Things You Should Know About Python" @@ -436,18 +550,20 @@ 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 (ຂຶ້ນຕົ້ນດ້ວຍຕົວໃຫຍ່ສະເພາະຄຳທຳອິດ ແລະ ຄຳນາມສະ" -"ເພາະ)" +"ຖືກ: 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." +msgid "" +"In body text, write numbers one through nine as words. For other numbers or " +"numbers in tables, use numerals." msgstr "" -"ໃນເນື້ອຫາ, ໃຫ້ຂຽນຕົວເລກ 1 ຫາ 9 ເປັນຕົວໜັງສື. ສຳລັບຕົວເລກອື່ນໆ ຫຼື ຕົວເລກໃນຕາຕະລາງ, ໃຫ້ໃຊ້ເປັນຕົວ" -"ເລກ." +"ໃນເນື້ອຫາ, ໃຫ້ຂຽນຕົວເລກ 1 ຫາ 9 ເປັນຕົວໜັງສື. ສຳລັບຕົວເລກອື່ນໆ ຫຼື ຕົວເລກໃນຕາຕະລາງ, " +"ໃຫ້ໃຊ້ເປັນຕົວເລກ." #: ../source/discussions/deploying-python-applications.rst:4 msgid "Deploying Python applications" @@ -514,27 +630,41 @@ 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 ອັນດຽວ." +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." +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 ອື່ນໆ ໃນຄອມພິວເຕີ." +"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." +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." +"ຂໍ້ດີທີ່ສຳຄັນຂອງ Pynsist ແມ່ນແພັກເກດ Windows ສາມາດ build ໄດ້ໃນ Linux. " +"ມີຕົວຢ່າງຫຼາຍຢ່າງສຳລັບໂປຣແກຣມປະເພດຕ່າງໆ (console, GUI) ໃນ :any:`documentation " +"`. ເຄື່ອງມືນີ້ຖືກເຜີຍແຜ່ພາຍໃຕ້ໃບອະນຸຍາດ MIT." #: ../source/discussions/deploying-python-applications.rst:77 msgid "Application bundles" @@ -545,15 +675,23 @@ 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." +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." +"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 @@ -565,12 +703,18 @@ 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." +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)" @@ -582,14 +726,21 @@ 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." +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." +"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" @@ -601,29 +752,46 @@ 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\"." +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\"." +"ມີຫຼາຍແນວຄວາມຄິດທີ່ແຕກຕ່າງກັນເຊິ່ງມັກຈະຖືກເອີ້ນລວມໆ ວ່າ \"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\" ຍັງສາມາດໃຊ້ເພື່ອອ້າງເຖິງໄຟລ໌ສະເພາະທີ່ບັນຈຸເວີຊັນໃດໜຶ່ງຂອງໂຄງກາ" -"ນ." +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." +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 " @@ -634,17 +802,27 @@ 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." +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) ເປັນໄດເຣັກທໍຣີຍ່ອຍ." +"``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." +msgid "" +"You can use an import package as soon as you have installed a distribution " +"package that provides it." msgstr "" "ທ່ານສາມາດໃຊ້ import package ໄດ້ທັນທີທີ່ທ່ານໄດ້ຕິດຕັ້ງ distribution package ທີ່ສະໜອງມັນໃຫ້." @@ -653,67 +831,111 @@ 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``." +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`` ໄດ້." +"ສ່ວນຫຼາຍແລ້ວ, 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``; ເພາະມັນອາດຈະຕິດຕັ້ງແພັກເກດທີ່ທ່ານບໍ່ໄດ້ຕັ້ງໃຈ ຫຼື ອາດຈະເປັນແພັກເກດທີ່ເປັນອັນຕະລາຍກໍໄດ້.)" +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." +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 ແຕກຕ່າງກັນ." +"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." +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 ກໍເປັນເຫດຜົນທົ່ວໄປຂອງກໍລະນີນີ້ນຳ." +"ໃນດັດຊະນີແພັກເກດໃດໜຶ່ງ (ເຊັ່ນ 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." +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 ລຸ້ນເ" -"ກົ່າແຕ່ຍັງຮອງຮັບຢູ່." +"ເຖິງວ່າມັນຈະບໍ່ຄ່ອຍພົບເຫັນຫຼາຍປານໃດ. ຕົວຢ່າງຄື 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." +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)." +"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 `)." +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``." +"``_``. ພວກມັນຍັງສາມາດມີຈຸດ ``.`` " +"ເຊິ່ງບາງຄັ້ງຖືກໃຊ້ສຳລັບການເຮັດແພັກເກດຍ່ອຍຂອງ :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." +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 `, ແຕ່ມັນເປັນເລື່ອງທີ່ພົບໄດ້ໜ້ອຍທີ່ສຸດ " @@ -732,40 +954,78 @@ 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." +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 ດຽວກັນຊ້ຳ" -"ໆ." +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 ໃຫ້ເມື່ອເປັນໄປໄດ້." +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)." +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 ເປັນຕົ້ນ)." +"ກະລຸນາໝາຍເຫດວ່າ ການ build ຂອງປາຍນ້ຳບໍ່ໄດ້ລວມເອົາພຽງແຕ່ການແຈກຢາຍແບບ binary ເທົ່ານັ້ນ, " +"ແຕ່ຍັງລວມເຖິງການ build ຈາກ source ໃນລະບົບຂອງຜູ້ໃຊ້ (ເຊັ່ນໃນ Gentoo Linux ເປັນຕົ້ນ)." #: ../source/discussions/downstream-packaging.rst:51 msgid "Provide complete source distributions" @@ -780,11 +1040,16 @@ 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:" +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 ແມ່ນຂໍ້ກຳນົດເພື່ອໃຫ້ແພັກເກດຖືກລວມເຂົ້າໃນ distro ນັ້ນໆ. " +"ເຫດຜົນໃນການໃຊ້ source distribution ອາດຈະລວມມີ:" #: ../source/discussions/downstream-packaging.rst:62 msgid "Being able to audit the source code of all packages." @@ -795,13 +1060,17 @@ 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." +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 ກັບຄືນໄປຫາໂຄງການ." +"ສາມາດໃຊ້ 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." +msgid "" +"Being able to build on a specific platform that is not covered by upstream " +"builds." msgstr "ສາມາດ build ໃນແພລັດຟອມສະເພາະທີ່ຕົ້ນນ້ຳບໍ່ໄດ້ຮອງຮັບ." #: ../source/discussions/downstream-packaging.rst:72 @@ -813,36 +1082,54 @@ 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:" +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 ແທນ:" +"ເຖິງວ່າປົກກະຕິແລ້ວຈະສາມາດ 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." +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. ນີ້" -"ສາມາດຊ່ວຍຜູ້ໃຊ້ທີ່ມີການເຊື່ອມຕໍ່ອິນເຕີເນັດບໍ່ດີໄດ້." +"ການດຶງໄຟລ໌ດຽວມັກຈະມີປະສິດທິພາບກວ່າ, ເຊື່ອຖືໄດ້ກວ່າ ແລະ ໄດ້ຮັບການຮອງຮັບດີກວ່າການໃຊ້ 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." +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 ຖືກອັບເກຣດ." +"(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." +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 ເທົ່ານັ້ນ." +"ຈາກນັ້ນການ 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." +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) ຂອງລະບົບຄວບຄຸມເວີຊັນຖືກ" -"ຈັດການຢ່າງຖືກຕ້ອງ." +"ການເຜີຍແຜ່ໄຟລ໌ archive ຢ່າງຊັດເຈນຊ່ວຍໃຫ້ແນ່ໃຈວ່າ ຂໍ້ມູນກຳກັບ (metadata) " +"ຂອງລະບົບຄວບຄຸມເວີຊັນຖືກຈັດການຢ່າງຖືກຕ້ອງ." #: ../source/discussions/downstream-packaging.rst:99 #: ../source/discussions/downstream-packaging.rst:179 @@ -853,69 +1140,118 @@ 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." +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." +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." +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_) ຕັດສິນໃຈລວມເອົາການທົດສອບເຂົ້າໃນແພັກເກດທີ່ຕິດຕັ້ງແລ້ວເ" -"ລີຍ. ນີ້ມີຂໍ້ດີຄືຊ່ວຍໃຫ້ຜູ້ໃຊ້ສາມາດລັນການທົດສອບຫຼັງຈາກຕິດຕັ້ງໄດ້." +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." +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 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." +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 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." +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) ເຊິ່ງບໍ່ສາມາດເຂົ້າເຖິງອິນ" -"ເຕີເນັດໄດ້." +"ການ 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:" +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." +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." +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 ແພັກເກດເວີຊັນເກົ່າ." +"ຊັບພະຍາກອນຈາກໄລຍະໄກອາດຈະບໍ່ພ້ອມໃຊ້ງານຊົ່ວຄາວ ຫຼື ຖາວອນ, ເຮັດໃຫ້ບໍ່ສາມາດ build ໄດ້ອີກຕໍ່ໄປ. " +"ນີ້ຈະເປັນບັນຫາຫຼາຍເມື່ອຕ້ອງການ build ແພັກເກດເວີຊັນເກົ່າ." #: ../source/discussions/downstream-packaging.rst:168 msgid "The remote resources may change, making the build not reproducible." @@ -923,235 +1259,394 @@ 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 ຈາກໄລຍະໄກອາດຈະມີບັນຫາເລື່ອງຄວາມເປັນສ່ວນຕົວ ແລະ ຄວາມປອດໄພ." +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." +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." +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 ຄວນລວມເອົາໄຟລ໌ເ" -"ຫຼົ່ານັ້ນໄວ້ນຳເລີຍ ຫຼື ອະນຸຍາດໃຫ້ຈັດຫາຈາກພາຍນອກໄດ້." +"ຖ້າແພັກເກດມີການ 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." +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." +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) ເພື່ອປິດການເຂົ້າເຖິງອິນເຕີເນັດທັງໝົດ." +"ຕາມທີ່ຄວນຈະເປັນ, 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." +msgid "" +"Since downstreams frequently also run tests and build documentation, the " +"above should ideally extend to these processes as well." msgstr "" -"ເນື່ອງຈາກປາຍນ້ຳມັກຈະລັນການທົດສອບ ແລະ build ເອກະສານນຳ, ສິ່ງທີ່ກ່າວມາຂ້າງເທິງນັ້ນກໍຄວນໃຊ້ກັບຂະບວນ" -"ການເຫຼົ່ານີ້ຄືກັນ." +"ເນື່ອງຈາກປາຍນ້ຳມັກຈະລັນການທົດສອບ ແລະ 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." +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) ເພື່ອປ້ອງກັນການຖືກປ່ຽນແທນດ້ວຍໄຟລ໌ທີ່ເປັນອັນຕະລາຍ." +"ກະລຸນາຈື່ໄວ້ວ່າ ຖ້າທ່ານມີການດຶງຊັບພະຍາກອນຈາກໄລຍະໄກ, ທ່ານຕ້ອງ *ກວດສອບຄວາມຖືກຕ້ອງ* " +"(ປົກກະຕິແລ້ວແມ່ນໃຊ້ 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:" +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++. ກ" -"ານພະຍາຍາມໃຊ້ເວີຊັນຂອງລະບົບໃນຕົ້ນນ້ຳອາດຈະເຮັດໃຫ້ເກີດບັນຫາຫຼາຍຢ່າງສຳລັບຜູ້ໃຊ້:" +"ບາງໂຄງການ 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." +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." +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 ໃຫ້ເຂົ້າກັນໄດ້ກໍອາດຈະຍາກຫຼາຍ." +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." +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 ບໍ່ໄດ້ຖືກບັນທຶກໄວ້ໂດຍລະບົບການຈັດການ" -"ແພັກເກດ." +"ຄວາມກ່ຽວພັນລະຫວ່າງແພັກເກດ 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." +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)." +"ດ້ວຍເຫດຜົນເຫຼົ່ານີ້, ທ່ານອາດຈະຕັດສິນໃຈໃຊ້ການ 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:" +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 ຂອງລະບົບ:" +"ແນວໃດກໍຕາມ, ບັນຫາເຫຼົ່ານີ້ບໍ່ໄດ້ເກີດຂຶ້ນກັບການເຮັດແພັກເກດປາຍນ້ຳ, ແລະ " +"ປາຍນ້ຳມີເຫດຜົນທີ່ດີກວ່າໃນການເລືອກ 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." +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 ແມ່ນສ່ວນໜຶ່ງຂອງ *ຈຸດປະສົງ* ຂອງລະບົບນິເວດ" -"ປາຍນ້ຳ." +"ໃນຫຼາຍກໍລະນີ, ການແບ່ງປັນ dependencies ແບບ dynamic ແມ່ນສ່ວນໜຶ່ງຂອງ *ຈຸດປະສົງ* " +"ຂອງລະບົບນິເວດປາຍນ້ຳ." #: ../source/discussions/downstream-packaging.rst:253 -msgid "Static linking and vendoring obscures the use of external dependencies, making source auditing harder." +msgid "" +"Static linking and vendoring obscures the use of external dependencies, " +"making source auditing harder." msgstr "" -"ການ link ແບບ static ແລະ ການເຮັດ vendor ເຮັດໃຫ້ການກວດສອບ (audit) source code ຍາກຂຶ້" -"ນ." +"ການ 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." +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 ໄດ້ຢ່າງໄວວາໃນທົ່ວລະບົບ ເມື່ອພົບຊ່ອງໂຫວ່ດ້າ" -"ນຄວາມປອດໄພ." +"ການ 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 ຂອງລະບົບຊ່ວຍໃຫ້ແພັກເກດໄດ້ຮັບຜົນປະໂຫຍດຈາກການປັບແຕ່ງຂອງປາຍນ້ຳ." +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)." +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 ໄດ້." +"ການ 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." +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." +"ສຸດທ້າຍ, ການ 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." +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." +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 ຄວນຈະຫຼົ້ມເຫຼວພ້ອມແ" -"ຈ້ງຂໍ້ຄວາມອະທິບາຍ." +"ຖ້າຜູ້ໃຊ້ຮ້ອງຂໍການໃຊ້ 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." +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 ຂອງລະບົບ ເປັນໜ້າທີ່ຂ" -"ອງປາຍນ້ຳ." +"ມັນເປັນເລື່ອງສົມຄວນທີ່ຕົ້ນນ້ຳຈະໃຫ້ການ *ທົດສອບ* ການ 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. ເຫດຜົນໃນການເຮັດແບບນີ້ລວມມີ:" +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." +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." +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 ເວີຊັນໃໝ່ (ຫຼື ເກົ່າ) ກວ່າທີ່ໃຊ້ໃນຕອນທົດສອບຕົ້ນນ້ຳ." +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." +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." +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." +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:" +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." +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!" +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." +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!" +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, ໃຫ້ການທົດສອບຂອງພວກມັນເປັນທາງເລືອກຄືກັນ." +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 ຫຼາຍ ຫຼື ໃຊ້ເວລາດົນ." +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()``!" +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." +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." +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." +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." +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 @@ -1159,16 +1654,31 @@ 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." +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." +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:" +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 "" "ຢ່າງໃດກໍຕາມ, ບາງກໍລະນີອາດຈະຕ້ອງການການແກ້ໄຂຢ່າງຮີບດ່ວນ ເຊັ່ນ ເມື່ອພົບຊ່ອງໂຫວ່ດ້ານຄວາມປອດໄພ." @@ -1185,43 +1695,68 @@ 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." +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:" +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." +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." +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." +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." +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." +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." +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`." +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`." +"**ການສົນທະນາ ແລະ ອະທິບາຍ (Discussions)** ແມ່ນເນັ້ນໃສ່ການໃຫ້ຂໍ້ມູນທີ່ຄົບຖ້ວນກ່ຽວກັບຫົວຂໍ້ໃດໜຶ່ງ. " +"ຖ້າທ່ານຕ້ອງການພຽງແຕ່ເຮັດວຽກໃຫ້ສຳເລັດ, ໃຫ້ເບິ່ງ :doc:`/guides/index`." #: ../source/discussions/install-requires-vs-requirements.rst:5 msgid "install_requires vs requirements files" @@ -1232,42 +1767,61 @@ 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." +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 ຂອງມັນ." +"``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`` ຂອງທ່ານຈະເປັນແບບນີ້:" +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 "" -"ນອກຈາກນັ້ນ, ວິທີການທີ່ດີທີ່ສຸດຄືການລະບຸຂອບເຂດຕ່ຳສຸດ ຫຼື ສູງສຸດທີ່ຮູ້ຈັກ." +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, ມັນຈະເປັນແບບນີ້:" +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:" +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." +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]_" +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)\" ເຊິ່ງລະບຸພຽງແຕ່ຊື່ ແລະ ຂໍ້ຈຳກັດຂອງເວີຊັນເທົ່ານັ້ນ." +"ສຸດທ້າຍ, ສິ່ງສຳຄັນທີ່ຕ້ອງເຂົ້າໃຈຄື ``install_requires`` ແມ່ນການລະບຸຄວາມຕ້ອງການແບບ " +"\"ນາມມະທຳ (Abstract)\" ເຊິ່ງລະບຸພຽງແຕ່ຊື່ ແລະ ຂໍ້ຈຳກັດຂອງເວີຊັນເທົ່ານັ້ນ." #: ../source/discussions/install-requires-vs-requirements.rst:62 #: ../source/tutorials/installing-packages.rst:463 @@ -1275,38 +1829,57 @@ 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." +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` ທີ່ຖືກຈັດໃສ່ໃນໄຟລ໌." +":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." +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 ທັງໝົດ." +"ໃນຂະນະທີ່ ``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." +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)." +"ໃນຂະນະທີ່ ``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]_" +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)\"." +"ໃນຂະນະທີ່ ``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``." +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/." +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/." @@ -1316,13 +1889,23 @@ 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." +msgid "" +"This page discusses the file formats that are used to distribute Python " +"packages and the differences between them." msgstr "" -"ໜ້ານີ້ຈະປຶກສາຫາລືກ່ຽວກັບຮູບແບບໄຟລ໌ທີ່ໃຊ້ໃນການແຈກຢາຍແພັກເກດ Python ແລະ ຄວາມແຕກຕ່າງລະຫວ່າງພວກມັ" -"ນ." +"ໜ້ານີ້ຈະປຶກສາຫາລືກ່ຽວກັບຮູບແບບໄຟລ໌ທີ່ໃຊ້ໃນການແຈກຢາຍແພັກເກດ 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." +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 " @@ -1333,30 +1916,52 @@ 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-" +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." +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." +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``." +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 `." +msgid "" +"If you want technical details on the sdist format, read the :ref:`sdist " +"specification `." msgstr "" "ຖ້າຕ້ອງການລາຍລະອຽດທາງເຕັກນິກຂອງຮູບແບບ sdist, ໃຫ້ອ່ານ :ref:`sdist specification " "`." @@ -1366,61 +1971,118 @@ 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 ເຂົ້າໄປໃນລະບົບໃນຕອນຕິດຕັ້ງແພັກເກດ." +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)." +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 ໄດ້ຫຼາຍອັນ." +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." +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 ຈະ" -"ມີໜ້ອຍລົງ." +"ສຳລັບແພັກເກດທີ່ເປັນ 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." +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." +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 ສະເໝີ ເພື່ອໃຫ້ການຕິດຕັ້ງໄວຂຶ້ນ." +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)." +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 ຂອງທ່ານ." +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:" +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_;" +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 @@ -1432,11 +2094,15 @@ 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." +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 `." +msgid "" +"All technical details on the wheel format can be found in the :ref:`wheel " +"specification `." msgstr "" "ລາຍລະອຽດທາງເຕັກນິກທັງໝົດຂອງ wheel ສາມາດເບິ່ງໄດ້ທີ່ :ref:`wheel specification `." @@ -1446,76 +2112,122 @@ 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 ແລ້ວ. ມັນບໍ່ຄວນຖືກໃຊ້ອີກຕໍ່ໄປ." +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." +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." +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." +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 `." +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``." +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." +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." +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 ເຮັດໃຫ້ປ່ຽນໄປເປັນຮູບແບບອື່ນໄດ້ງ່າຍ." +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``." +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 `." +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 ໄດ້, ແຕ່ຍັງບໍ່ໄດ້ຮັບການສະໜັບສະໜູ" -"ນຢ່າງເປັນທາງການ." +"ໃນບາງກໍລະນີ, 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." +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." +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 " -"`." +":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 ທີ່ຖືກຍົກເລີກໄປແລ້ວ:" +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**" @@ -1628,7 +2340,9 @@ 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" +msgid "" +"https://setuptools.readthedocs.io/en/latest/deprecated/" +"easy_install.html#natural-script-launcher" msgstr "" #: ../source/discussions/setup-py-deprecated.rst:6 @@ -1637,21 +2351,29 @@ 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` ຍັງບໍ່ໄດ້ຖືກຍົກເລີກການນຳໃຊ້." +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`)." +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." +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) ແມ່ນຖືກຍົກ" -"ເລີກແລ້ວ." +"ຢ່າງໃດກໍຕາມ, ການໃຊ້ ``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:" +msgid "" +"This means that commands such as the following **MUST NOT** be run anymore:" msgstr "ນີ້ໝາຍຄວາມວ່າຄຳສັ່ງຕໍ່ໄປນີ້ **ຫ້າມ** ໃຊ້ງານອີກຕໍ່ໄປ:" #: ../source/discussions/setup-py-deprecated.rst:23 @@ -1707,24 +2429,49 @@ 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." +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``." +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 .``." +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." +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*." +msgid "" +"The command ``python setup.py install`` was deprecated in setuptools version " +"*58.3.0*." msgstr "" "ຄຳສັ່ງ ``python setup.py install`` ຖືກຍົກເລີກການນຳໃຊ້ໃນ setuptools ເວີຊັນ *58.3.0*." @@ -1745,7 +2492,9 @@ 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``" +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``" @@ -1767,7 +2516,10 @@ 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`)." +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 @@ -1775,7 +2527,8 @@ 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_:" +msgid "" +"A possible replacement solution (among others) is to rely on setuptools-scm_:" msgstr "ທາງເລືອກໃນການແທນທີ່ແມ່ນການໃຊ້ setuptools-scm_:" #: ../source/discussions/setup-py-deprecated.rst:116 @@ -1787,7 +2540,9 @@ msgid "Remaining commands" msgstr "ຄຳສັ່ງທີ່ເຫຼືອ" #: ../source/discussions/setup-py-deprecated.rst:124 -msgid "This guide does not make suggestions of replacement solutions for those commands:" +msgid "" +"This guide does not make suggestions of replacement solutions for those " +"commands:" msgstr "ຄູ່ມືນີ້ບໍ່ມີຂໍ້ສະເໜີແນະສຳລັບການແທນທີ່ຄຳສັ່ງເຫຼົ່ານີ້:" #: ../source/discussions/setup-py-deprecated.rst:129 @@ -1891,7 +2646,11 @@ 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." +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 @@ -1899,7 +2658,10 @@ 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." +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`` ແມ່ນຍັງບໍ່ໄດ້ຖືກຍົກເລີກການນຳໃຊ້." @@ -1909,7 +2671,10 @@ 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`." +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 ແມ່ນຍັງໃຊ້ໄດ້ປົກກະຕິ." @@ -1919,18 +2684,25 @@ 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:" +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`." +"ເຖິງວ່າໃນທາງເຕັກນິກຈະຍັງບໍ່ຈຳເປັນ, ແຕ່ **ແນະນຳຢ່າງຍິ່ງ** " +"ໃຫ້ແຕ່ລະໂຄງການມີໄຟລ໌ :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` ມີລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບເລື່ອງນີ້." +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." +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." @@ -1940,10 +2712,12 @@ 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." +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 ເ" -"ທົ່ານັ້ນ." +"ໃຫ້ເບິ່ງວ່າ ຂອບເຂດຂອງ setuptools ໃນຕອນນີ້ໄດ້ຖືກຫຼຸດລົງມາໃຫ້ເຮັດໜ້າທີ່ພຽງແຕ່ເປັນ build backend " +"ເທົ່ານັ້ນ." #: ../source/discussions/setup-py-deprecated.rst:211 #: ../source/guides/modernize-setup-py-project.rst:244 @@ -1951,7 +2725,9 @@ 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" +msgid "" +"`Why you shouldn't invoke setup.py directly `__ by Paul Ganssle" msgstr "" "`Why you shouldn't invoke setup.py directly `__ ໂດຍ Paul Ganssle" @@ -1973,25 +2749,37 @@ 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`)." +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." +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." +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." +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) ສຳລັບເລກເວີຊັນ." @@ -2001,16 +2789,24 @@ 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 ໄດ້." +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." +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." +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 @@ -2018,7 +2814,12 @@ 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)." +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 "" "ເມື່ອຕ້ອງການໃຫ້ແພັກເກດທັງສອງປະເພດໃຊ້ເວີຊັນດຽວກັນ, ແນະນຳໃຫ້ມີການທົດສອບອັດຕະໂນມັດເພື່ອຢືນຢັນເລື່ອງນີ້." @@ -2027,7 +2828,9 @@ 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." +msgid "" +"The following are links to some build system's documentation for handling " +"version strings." msgstr "ຕໍ່ໄປນີ້ແມ່ນລິ້ງໄປຫາເອກະສານຂອງລະບົບ build ບາງຢ່າງສຳລັບການຈັດການເວີຊັນ." #: ../source/discussions/single-source-version.rst:54 @@ -2039,12 +2842,15 @@ msgid "`Hatchling `_" msgstr "`Hatchling `_" #: ../source/discussions/single-source-version.rst:58 -msgid "`PDM `_" +msgid "" +"`PDM `_" msgstr "" "`PDM `_" #: ../source/discussions/single-source-version.rst:60 -msgid "`Setuptools `_" +msgid "" +"`Setuptools `_" msgstr "" "`Setuptools `_" @@ -2058,91 +2864,136 @@ 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." +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:`ແພັກເກດນຳເຂົ້າ ` ທັງໝົດ" -"ຈະຢູ່ໃນໄດເຣັກທໍຣີລະດັບສູງສຸດ." +"(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\"." +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\"." +"\"ໂຄງຮ່າງແບບ 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 ແລະ ໂຄງຮ່າງແບບແປ:" +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." +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)." +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:`ການຕິດຕັ້ງແບບແກ້ໄຂໄດ້ ` ຈະຖືກໃຊ້ສຳລັບການ" -"ພັດທະນາ ແລະ ການຕິດຕັ້ງແບບປົກກະຕິຈະຖືກໃຊ້ສຳລັບການທົດສອບ)." +"ນີ້ໝາຍຄວາມວ່າ ໂຄງຮ່າງແບບ 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 ຊ່ວຍປ້ອງກັນການນຳໃຊ້ໂຄ້ດສະບັບທີ່ກຳລັງພັດທະນາຢູ່ໂດຍບໍ່ໄດ້ຕັ້ງໃຈ." +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." +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)." +"(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." +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) ຂອງໂຄງການ, ເພື່ອຮັບປະກັນວ່າຕົວທີ່ຕິດຕັ້ງແລ້ວຈະຖືກນຳມາໃຊ້." +"ໂຄງຮ່າງແບບ 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." +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." +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) `_ ທີ່" -"ເພີ່ມໄດເຣັກທໍຣີເຂົ້າໃນເສັ້ນທາງການນຳເຂົ້າ." +"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." +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``) ເຂົ້າໃນເສັ້ນທາງການນຳເຂົ້" -"າ. ສິ່ງນີ້ຈະເຮັດໃຫ້ການນຳເຂົ້າບາງຢ່າງໃຊ້ງານໄດ້ໃນການຕິດຕັ້ງແບບແກ້ໄຂໄດ້ ແຕ່ຈະໃຊ້ງານບໍ່ໄດ້ໃນການຕິດຕັ້ງແບບ" -"ປົກກະຕິ." +"ໂຄງຮ່າງແບບແປຈະເພີ່ມໄຟລ໌ອື່ນໆຂອງໂຄງການ (ເຊັ່ນ: ``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`:" +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 @@ -2158,12 +3009,19 @@ 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]_:" +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``" @@ -2190,9 +3048,10 @@ 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``" +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``" @@ -2207,64 +3066,104 @@ 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``)." +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." +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." +"ຈຸດປະສົງຂອງ 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); ການແກ້ໄຂບັກຄວນເຮັດໃນເວີຊັນປ່ອຍຕົວຈິງໃໝ່ (ເຊັ່ນ: ການເພີ່ມຕົວເລກສ່ວນທີສາມເມື່ອໃຊ້ການກ" -"ຳນົດເວີຊັນຕາມຄວາມໝາຍ)." +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`` ຈະດີກວ່າ." +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)" +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." +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 ຄື: ການກຳນົດເວີຊັນຕາມຄວາມໝາຍ ແລະ ການກຳນົດເວີຊັນຕາມປະຕິທິນ." +"ຮູບແບບການກຳນົດເວີຊັນແມ່ນວິທີການທີ່ເປັນທາງການໃນການຕີຄວາມໝາຍສ່ວນຕ່າງໆຂອງໝາຍເລກເວີຊັນ, ແລະ " +"ເພື່ອຕັດສິນໃຈວ່າໝາຍເລກເວີຊັນຖັດໄປສຳລັບການປ່ອຍແພັກເກດໃໝ່ຄວນເປັນແນວໃດ. " +"ມີສອງຮູບແບບທີ່ນິຍົມໃຊ້ສຳລັບແພັກເກດ 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." +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 ແຕ່ອາ" -"ດມີການປ່ຽນແປງທີ່ຫຼີກເວັ້ນບໍ່ໄດ້ເຊິ່ງເຮັດໃຫ້ລະບົບເກົ່າໃຊ້ງານບໍ່ໄດ້." +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 @@ -2272,7 +3171,9 @@ 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:" +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*, ໂດຍທີ່ຜູ້ຂຽນໂຄງການຈະເພີ່ມຕົວເລກ:" @@ -2282,96 +3183,143 @@ 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* ເມື່ອມີການເພີ່ມຟັງຊັນໃໝ່ທີ່ຍັງສາມາດໃຊ້ງານຮ່ວມກັບເວີຊັນເກົ່າໄດ້, ແລະ" +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 ກໍຖືກໃຊ້ເພື່ອບອກເຖິງຟີເຈີໃໝ່ທີ່ສຳຄັນແຕ່ຍັງຄົງໃຊ້ງານຮ່ວມກັບເວີຊັນເກົ່າໄດ້." +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." +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 ຍັງຄືເກົ່າ." +"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 `_." +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 `)." +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 `)." +"process>`). ສ່ວນແພັກເກດ :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." +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) ທີ່ຈະມີການແຈ້ງເຕືອນລ່ວງໜ້າຫຼາຍເວີຊັນກ່ອນຈະເອົາຟີເຈີນັ້ນອອ" -"ກ." +"ແລະ ມີຂະບວນການຍົກເລີກຟີເຈີ (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." +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) ແມ່ນສາມາດ" -"ຮູ້ໄດ້ທັນທີວ່າຟີເຈີຂອງເວີຊັນນັ້ນເກົ່າ ຫຼື ໃໝ່ປານໃດ ພຽງແຕ່ເບິ່ງຈາກໝາຍເລກເວີຊັນ." +"ຂໍ້ດີຫຼັກຂອງການກຳນົດເວີຊັນຕາມວັນທີ ຫຼື `ການກຳນົດເວີຊັນຕາມປະຕິທິນ `_ (CalVer) " +"ແມ່ນສາມາດຮູ້ໄດ້ທັນທີວ່າຟີເຈີຂອງເວີຊັນນັ້ນເກົ່າ ຫຼື ໃໝ່ປານໃດ ພຽງແຕ່ເບິ່ງຈາກໝາຍເລກເວີຊັນ." #: ../source/discussions/versioning.rst:135 -msgid "Calendar version numbers typically take the form *year.month* (for example, 23.12 for December 2023)." +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." +msgid "" +":doc:`Pip `, the standard Python package installer, uses calendar " +"versioning." msgstr "" -":doc:`Pip `, ເຄື່ອງມືຕິດຕັ້ງແພັກເກດ Python ມາດຕະຖານ, ໃຊ້ການກຳນົດເວີຊັນຕາມປະຕິທິ" -"ນ." +":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 ເວີຊັນເກົ່າເລີຍ." +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." +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 @@ -2379,162 +3327,255 @@ 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." +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:`ຕົວລະບຸເວີຊັນທ້ອງ" -"ຖິ່ນ `, ເຊິ່ງສາມາດໃຊ້ເພື່ອລະບຸເວີຊັນທີ່ສ້າງຂຶ້ນໃນເຄື່ອງເພື່ອພັດທະນາໂດຍ" -"ບໍ່ໄດ້ຕັ້ງໃຈຈະເຜີຍແຜ່, ຫຼື ເວີຊັນທີ່ຖືກດັດແປງໂດຍຜູ້ແຈກຢາຍຕໍ່." +"Index (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 ອາດຈະມີເວີຊັນເປັນ " +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\"." +"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::" +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` ຂອງໄລບຣາຣີມາດຕະຖານ::" +"ຂໍ້ມູນເວີຊັນສຳລັບທຸກໆ :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::" +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__`` ໃນລ" -"ະດັບແພັກເກດ::" +"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." +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``) ເຮັດວຽກໄດ້ໄວທີ່ສຸດເທົ່າທີ່ຈະໄວໄດ້." +"ເຕັກນິກນີ້ມີປະໂຫຍດເປັນພິເສດສຳລັບແອັບພລິເຄຊັນ 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." +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` ເພື່ອເບິ່ງວິທີການຕ່າງໆ." +"ຜູ້ເຜີຍແຜ່ແພັກເກດທີ່ຕ້ອງການໃຫ້ແນ່ໃຈວ່າເວີຊັນຂອງຊຸດແຈກຢາຍ ແລະ ເວີຊັນຂອງແພັກເກດນຳເຂົ້າກົງກັນ " +"ສາມາດສຶກສາການສົນທະນາເລື່ອງ :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]_." +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::" +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 ທີ່ຢູ່ເບື້ອງຫຼັງ::" +"ບາງໂຄງການອາດຈໍາເປັນຕ້ອງເຜີຍແຜ່ຂໍ້ມູນເວີຊັນສໍາລັບ 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." +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_." +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 `_, `ໂດຍ 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 ເທົ່ານັ້ນ ທີ່ຈະບໍ່ມີຂໍ້ມູນເວີຊັນລາຍງານ." +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." +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)`_. ມັນຖືກຂຽນຂຶ້ນສຳລັບຜູ້ເຜີຍແຜ່ແພັກເກດ, ເຊິ່ງສົມມຸດວ່າເປັນຜູ້ຂຽນແພັ" -"ກເກດເອງ." +"`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." +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) ` ຈະແນະນຳຂັ້ນຕອນກ" -"ານກຽມແພັກເກດແບບງ່າຍໆເພື່ອປ່ອຍ, ແຕ່ມັນບໍ່ໄດ້ລະບຸຂັ້ນຕອນ ແລະ ໄຟລ໌ທີ່ຈຳເປັນທັງໝົດ ລວມເຖິງຈຸດປະສົງຂອງແຕ່" -"ລະຢ່າງໄວ້ຢ່າງຄົບຖ້ວນ." +"ເຖິງແມ່ນວ່າ :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:" +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 ຂອງຜູ້ໃຊ້ປ" -"າຍທາງ. ຂັ້ນຕອນຕ່າງໆມີດັ່ງນີ້:" +"ການເຜີຍແຜ່ແພັກເກດຕ້ອງມີຂັ້ນຕອນເລີ່ມຕັ້ງແຕ່ຊອດໂຄ້ດຂອງຜູ້ຂຽນ ໄປຈົນເຖິງສະພາບແວດລ້ອມ Python " +"ຂອງຜູ້ໃຊ້ປາຍທາງ. ຂັ້ນຕອນຕ່າງໆມີດັ່ງນີ້:" #: ../source/flow.rst:19 -msgid "Have a source tree containing the package. This is typically a checkout from a version control system (VCS)." +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." +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`, ເຊິ່ງຖືກດູແລດ້ວຍຕົ" -"ວເອງໃນຊອດໂຄ້ດຕົ້ນສະບັບ." +"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)." +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:" +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." +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." +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 ເຊິ່ງຖ້າຈຳເປັນ, ຈະຕ້ອງຖືກລະບຸໄວ້ໃນເມຕາດາຕາຂອງແພັກເກດ." +"ຕິດຕັ້ງມັນລົງໃນສະພາບແວດລ້ອມ 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``." +msgid "" +"These last 2 steps are typically performed by :ref:`pip` when an end user " +"runs ``pip install``." msgstr "" "ສອງຂັ້ນຕອນສຸດທ້າຍນີ້ ປົກກະຕິແລ້ວຈະຖືກເຮັດໂດຍ :ref:`pip` ເມື່ອຜູ້ໃຊ້ລັນຄຳສັ່ງ ``pip install``." @@ -2547,51 +3588,75 @@ 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." +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 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`_." +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`_." +"ໄຟລ໌ກຳນົດຄ່າແມ່ນຂຶ້ນກັບເຄື່ອງມືທີ່ໃຊ້ໃນການສ້າງ 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]``." +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." +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 ເພື່ອຕິດຕັ້ງຈາກຊຸດແຈກຢາຍແບບຊອດໂຄ້ດ." +"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:" +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`. ຕົວຢ່າງ, ທ່ານອາດຈະລະບຸ:" +"ເຄື່ອງມື build " +"ແຕ່ລະຢ່າງທີ່ທ່ານເລືອກຈະກຳນົດຂໍ້ມູນເພີ່ມເຕີມທີ່ຈຳເປັນໃນໄຟລ໌ :file:`pyproject.toml`. ຕົວຢ່າງ, " +"ທ່ານອາດຈະລະບຸ:" #: ../source/flow.rst:97 -msgid "a ``[project]`` table containing project :doc:`Core Metadata ` (name, version, author and so forth)," +msgid "" +"a ``[project]`` table containing project :doc:`Core Metadata ` (name, version, author and so forth)," msgstr "" "ຕາຕະລາງ ``[project]`` ທີ່ບັນຈຸ :doc:`ເມຕາດາຕາຫຼັກ (Core Metadata) ` ຂອງໂຄງການ (ຊື່, ເວີຊັນ, ຜູ້ຂຽນ ແລະ ອື່ນໆ)," @@ -2601,10 +3666,12 @@ 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." +msgid "" +"Refer to the :ref:`pyproject.toml guide ` for a " +"complete guide to ``pyproject.toml`` configuration." msgstr "" -"ອ້າງອີງເຖິງ :ref:`ຄູ່ມື pyproject.toml ` ສຳລັບຄຳແນະນຳການກຳນົດ" -"ຄ່າ ``pyproject.toml`` ທີ່ຄົບຖ້ວນ." +"ອ້າງອີງເຖິງ :ref:`ຄູ່ມື pyproject.toml ` " +"ສຳລັບຄຳແນະນຳການກຳນົດຄ່າ ``pyproject.toml`` ທີ່ຄົບຖ້ວນ." #: ../source/flow.rst:108 msgid "Build artifacts" @@ -2615,64 +3682,83 @@ 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 ຂອງທ່ານເພື່ອສ້າງສິ່ງເຫຼົ່ານີ້:" +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." +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." +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`` ໄດ້ເລີຍ. ສິ່ງນີ້ເຮັດໃຫ້ການຕິດຕັ້ງໄວຂຶ້ນ ແລະ ສະດວກກວ່າສຳລັບຜູ້ໃຊ້." +"ຂອງຜູ້ໃຊ້ເທົ່ານັ້ນ. ບໍ່ມີຂັ້ນຕອນການ 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." +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` ຈະປ່ຽນໄປຕິດຕັ້ງຈາກຊຸດແຈກຢ" -"າຍແບບຊອດໂຄ້ດແທນ." +"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." +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." +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 ຈາກຊອດໂຄ້ດໃນໄດເຣັກທໍຣີປະຈຸບັ" -"ນ; ຕົວຢ່າງຂ້າງເທິງນັ້ນແມ່ນການລະບຸໃຫ້ເຫັນຢ່າງຊັດເຈນ." +"ພຶດຕິກຳເລີ່ມຕົ້ນຂອງ :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:" +msgid "" +"The :ref:`twine` tool can upload build artifacts to PyPI for distribution, " +"using a command like:" msgstr "" -"ເຄື່ອງມື :ref:`twine` ສາມາດອັບໂຫຼດ build artifacts ໄປຍັງ PyPI ເພື່ອແຈກຢາຍ, ໂດຍໃຊ້ຄຳສັ່ງເ" -"ຊັ່ນ:" +"ເຄື່ອງມື :ref:`twine` ສາມາດອັບໂຫຼດ build artifacts ໄປຍັງ PyPI ເພື່ອແຈກຢາຍ, " +"ໂດຍໃຊ້ຄຳສັ່ງເຊັ່ນ:" #: ../source/flow.rst:168 msgid "Or, your build tool may provide its own interface for uploading." @@ -2683,15 +3769,19 @@ 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:" +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`, ໂດຍໃຊ້ຄຳສັ່ງເຊັ່ນ:" +"ເມື່ອແພັກເກດຖືກເຜີຍແຜ່ແລ້ວ, ຜູ້ໃຊ້ສາມາດດາວໂຫຼດ ແລະ ຕິດຕັ້ງແພັກເກດລົງໃນສະພາບແວດລ້ອມ 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`." +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" @@ -2702,7 +3792,9 @@ msgid "Binary Distribution" msgstr "ການແຈກຈ່າຍແບບໄບນາຣີ" #: ../source/glossary.rst:11 -msgid "A specific kind of :term:`Built Distribution` that contains compiled extensions." +msgid "" +"A specific kind of :term:`Built Distribution` that contains compiled " +"extensions." msgstr "" ":term:`ຊຸດແຈກຢາຍທີ່ສ້າງແລ້ວ (Built Distribution)` ປະເພດສະເພາະທີ່ປະກອບດ້ວຍ extensions " "ທີ່ຖືກ compile ແລ້ວ." @@ -2712,31 +3804,45 @@ 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 ທີ່ເປັນມາດຕະຖານ." +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`." +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`." +"ຕົວຢ່າງຂອງ 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 `." +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 ` ຂອງແຕ່ລະ" -"ຊອດໂຄ້ດ." +"Distribution (or \"sdist\")>` ໃຫ້ເປັນຊຸດແຈກຢາຍແບບຊອດໂຄ້ດ ຫຼື :term:`wheels " +"`. ການ build ຕົວຈິງຈະຖືກມອບໝາຍໃຫ້ກັບ :term:`build backend ` " +"ຂອງແຕ່ລະຊອດໂຄ້ດ." #: ../source/glossary.rst:42 msgid "Examples of build frontends are :ref:`pip` and :ref:`build`." @@ -2747,134 +3853,190 @@ 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` ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ." +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`)." +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`)." +"ທີ່ຕິດຕັ້ງແລ້ວ (ໄຟລ໌ ``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`." +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)`." +"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`." +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)`." +"ຄູ່ຄ່າ 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)`." +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." +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)" -"`. ໄຟລ໌ຈັດເກັບນີ້ຄືສິ່ງທີ່ຜູ້ໃຊ້ຈະດາວໂຫຼດຈາກອິນເຕີເນັດ ແລະ ຕິດຕັ້ງ." +"ໄຟລ໌ຈັດເກັບທີ່ມີການລະບຸເວີຊັນ ເຊິ່ງປະກອບດ້ວຍ 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." +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` ສຳລັບລາຍລະອຽດຂອງຄວາມແຕກຕ່າງ." +"(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`." +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`." +"ຮູບແບບ :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." +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." +":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 ທີ່ສາມາດບັນຈຸໂມດູນອື່ນໆ ຫຼື ແພັກເກດອື່ນໆຊ້ອນກັນຢູ່ພາຍໃນໄດ້." +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." +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` ສຳ" -"ລັບລາຍລະອຽດຂອງຄວາມແຕກຕ່າງ." +"ແພັກເກດນຳເຂົ້າ (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`." +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`." +":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." +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) ໃຫ້ຜ່ານທັງໝົດກ່ອນທີ່ຈະປະກາດວ່າຊຸດແພັກເກດນັ້ນເປັນຊຸດທີ່ຮູ້ວ່າດີ. ຄຳສັບນີ້ມັກໃຊ້ກັບ " @@ -2885,13 +4047,14 @@ 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 ::``." +msgid "" +"A PyPI Trove classifier (as :ref:`described ` in " +"the :term:`Core Metadata` specification) which begins with ``License ::``." msgstr "" -"ຕົວຈຳແນກ PyPI Trove (ຕາມທີ່ :ref:`ອະທິບາຍ ` ໃນຂໍ້ກຳນົດ " -":term:`ເມຕາດາຕາຫຼັກ`) ເຊິ່ງເລີ່ມຕົ້ນດ້ວຍ ``License ::``." +"ຕົວຈຳແນກ PyPI Trove (ຕາມທີ່ :ref:`ອະທິບາຍ ` " +"ໃນຂໍ້ກຳນົດ :term:`ເມຕາດາຕາຫຼັກ`) ເຊິ່ງເລີ່ມຕົ້ນດ້ວຍ ``License ::``." -#: ../source/glossary.rst:157 -#: ../source/specifications/license-expression.rst:3 +#: ../source/glossary.rst:157 ../source/specifications/license-expression.rst:3 msgid "License Expression" msgstr "ນິພົດໃບອະນຸຍາດ (License Expression)" @@ -2900,12 +4063,16 @@ 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)``" +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)``" +"Identifier)` ຂອງ SPDX ໜຶ່ງຢ່າງ ຫຼື ຫຼາຍກວ່າ, " +"ເຊິ່ງອະທິບາຍໃບອະນຸຍາດຂອງ :term:`ໄຟລ໌ຈັດເກັບຊຸດແຈກຢາຍ` ແລະ ຄວາມສຳພັນລະຫວ່າງພວກມັນ. " +"ຕົວຢ່າງ: ``GPL-3.0-or-later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" #: ../source/glossary.rst:169 msgid "License Identifier" @@ -2916,7 +4083,11 @@ 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``" +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]`` ທີ່ສ້າງຂຶ້ນເອງຕາມຂໍ້ກຳນົດຂອງ " @@ -2927,7 +4098,9 @@ 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`." +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)`." @@ -2937,7 +4110,9 @@ msgid "Package Index" msgstr "ດັດຊະນີແພັກເກດ" #: ../source/glossary.rst:192 -msgid "A repository of distributions with a web interface to automate :term:`package ` discovery and consumption." +msgid "" +"A repository of distributions with a web interface to " +"automate :term:`package ` discovery and consumption." msgstr "" "ຄັງເກັບຊຸດແຈກຢາຍທີ່ມີ interface ແບບເວັບ ເພື່ອຊ່ວຍໃນການຄົ້ນຫາ ແລະ ການນຳໃຊ້ :term:`ແພັກເກດ " "` ແບບອັດຕະໂນມັດ." @@ -2947,86 +4122,119 @@ 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." +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 ຂອງໂຄງການນັ້ນ." +":term:`ດັດຊະນີແພັກເກດ` ສ່ວນຕົວ ຫຼື ແບບອື່ນໆທີ່ບໍ່ແມ່ນມາດຕະຖານ ເຊິ່ງຖືກລະບຸໂດຍ :term:`ໂຄງການ` " +"ໃດໜຶ່ງວ່າເປັນດັດຊະນີທີ່ຕ້ອງການ ຫຼື ຈຳເປັນສຳລັບການແກ້ໄຂ dependencies ຂອງໂຄງການນັ້ນ." -#: ../source/glossary.rst:202 -#: ../source/guides/hosting-your-own-index.rst:62 +#: ../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 `." +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:`ຊຸດແຈກຢາຍ " +"ໄລບຣາຣີ, ເຟຣມເວີກ (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." +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) ຂອງໄດເຣັກທໍຣີຊອດໂຄ້ດຂອງໂຄງການ." +"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 `." +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:`ຊຸດແຈກຢາຍ ` ໜຶ່ງ ຫຼື ຫຼາຍຊຸດ." +"Index (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'." +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' ເທົ່ານັ້ນ." +"ສິ່ງນີ້ບໍ່ຈຳເປັນຕ້ອງເປັນຈິງສະເໝີໄປ. ມັນເປັນໄປໄດ້ທີ່ຈະຕິດຕັ້ງຊຸດແຈກຢາຍຈາກໂຄງການ '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." +msgid "" +"The filesystem directory in which a :term:`Project`'s :term:`source tree " +"` is located." msgstr "" -"ໄດເຣັກທໍຣີໃນລະບົບໄຟລ໌ທີ່ :term:`ຊອດໂຄ້ດຕົ້ນສະບັບ ` ຂອງ :term:`ໂຄງກາ" -"ນ` ຕັ້ງຢູ່." +"ໄດເຣັກທໍຣີໃນລະບົບໄຟລ໌ທີ່ :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`." +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:`ຊຸດແຈກຢາຍທີ່ສ້າງແລ້ວ `." +"ຮູບແບບໃນດິສກ໌ຂອງ :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``, ຫຼື ໃນໄຟລ໌ກຳນົດຄ່າຂອງເຄື່ອງມືນັ້ນເອງ)." +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)." +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`` ທີ່ກ່ຽວຂ້ອງ)." @@ -3036,44 +4244,58 @@ 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``." +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]``." +"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`." +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)`." +"ຄີ 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` ທີ່ມີຄ່າເປັນຕາຕະລາງ." +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 `, 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 `__." @@ -3082,80 +4304,104 @@ 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." +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 ທຸກຄົນສາມາດນຳໃຊ້ ແລະ ແຈກຢາຍຊຸດແຈກຢາຍຂອງພວກເຂົາໄດ້." +"`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`." +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`." +"(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`." +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." +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." +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." +"Package>`. ຕົວຢ່າງ: ຖ້າເວີຊັນ 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." +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`." +"ຂໍ້ກຳນົດສຳລັບ :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`" +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)`." +"ຮູບແບບທີ່ :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`." +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`." +"ໄຟລ໌ທີ່ບັນຈຸລາຍຊື່ຂອງ :term:`ຄວາມຕ້ອງການ ` " +"ທີ່ສາມາດຕິດຕັ້ງໄດ້ໂດຍໃຊ້ :ref:`pip`. ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ, ເບິ່ງເອກະສານ :ref:`pip` " +"ກ່ຽວກັບ :ref:`pip:Requirements Files`." #: ../source/glossary.rst:348 msgid "Root License Directory" @@ -3166,15 +4412,24 @@ 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` ອ້າງອີງໃສ່." +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 @@ -3187,64 +4442,84 @@ 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`." +msgid "" +"The project specification files for :ref:`distutils` and :ref:`setuptools`. " +"See also :term:`pyproject.toml`." msgstr "" -"ໄໄຟລ໌ຂໍ້ກຳນົດໂຄງການສຳລັບ :ref:`distutils` ແລະ :ref:`setuptools`. ເບິ່ງ " -":term:`pyproject.toml` ປະກອບນຳ." +"ໄໄຟລ໌ຂໍ້ກຳນົດໂຄງການສຳລັບ :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`." +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:`ຊຸດແຈກຢາຍທີ່ສ້າງແລ້ວ`." +"ໄໄຟລ໌ຈັດເກັບທີ່ປະກອບດ້ວຍຊອດໂຄ້ດດິບສຳລັບ :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." +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` " -"ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ." +"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." +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." +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." +"ສ່ວນປະກອບຂອງເວີຊັນໃນ :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`." +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:`ການສ້າງ ແລະ ກາ" -"ນໃຊ້ສະພາບແວດລ້ອມສະເໝືອນ`." +"ສະພາບແວດລ້ອມ Python ທີ່ຖືກແຍກອອກມາຕ່າງຫາກ " +"ເພື່ອໃຫ້ສາມາດຕິດຕັ້ງແພັກເກດສຳລັບໃຊ້ໃນແອັບພລິເຄຊັນໃດໜຶ່ງໂດຍສະເພາະ, ແທນທີ່ຈະຕິດຕັ້ງລົງໃນລະບົບທັງໝົດ. " +"ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ, ເບິ່ງພາກ :ref:`ການສ້າງ ແລະ ການໃຊ້ສະພາບແວດລ້ອມສະເໝືອນ`." #: ../source/glossary.rst:410 msgid "Wheel Format" @@ -3255,42 +4530,56 @@ 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`." +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`." +"ຮູບແບບ :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`." +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." +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:`ຊຸດແຈກຢາຍ ` ຂອງໂຄງການໃດໜຶ່ງໄດ້ພຽງຊຸດດຽວເທົ່ານັ້ນ." +"ກຸ່ມຂອງ :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." +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 ທີ່ຖືກໃຊ້ໃນການດາວ" -"ໂຫຼດແພັກເກດ." +"ພາກນີ້ອະທິບາຍວິທີການໃຊ້ຂໍ້ມູນສະຖິຕິການດາວໂຫຼດ PyPI ແບບສາທາລະນະ " +"ເພື່ອຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບການດາວໂຫຼດແພັກເກດທີ່ຢູ່ເທິງ PyPI. ຕົວຢ່າງ: " +"ທ່ານສາມາດໃຊ້ມັນເພື່ອເບິ່ງສັດສ່ວນຂອງເວີຊັນ Python ທີ່ຖືກໃຊ້ໃນການດາວໂຫຼດແພັກເກດ." #: ../source/guides/analyzing-pypi-package-downloads.rst:14 #: ../source/guides/supporting-windows-using-appveyor.rst:17 @@ -3302,59 +4591,74 @@ 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." +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 ລົງ." +"**ຂາດປະສິດທິພາບໃນການເຮັດວຽກຮ່ວມກັບ 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 "" -"**ຂາດຄວາມແມ່ັນຢຳຢ່າງສູງ:** ມີຫຼາຍປັດໄຈທີ່ເຮັດໃຫ້ການນັບຈຳນວນການດາວໂຫຼດບໍ່ແມ່ັນຢຳ, ເຊັ່ນ:" +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 ທີ່ບໍ່ເປັນທາງການ (ອາດເຮັດໃຫ້ຈຳນວນການດາວໂຫຼດສູງຂຶ້ນ ຫຼື ຫຼຸດລົງ)" +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)" +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 "" -"ບັນຫາດ້ານຄຸນນະພາບຂໍ້ມູນໃນອະດີດ (ເຮັດໃຫ້ຈຳນວນການດາວໂຫຼດຕໍ່າກວ່າຄວາມເປັນຈິງ)" +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!" +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." +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." +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`_ " @@ -3365,12 +4669,18 @@ 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 ໂດຍບໍ່ຕ້" -"ອງມີບັດເຄຣດິດ `__" +msgstr "" +"ໃນການໃຊ້ `Google BigQuery`_ ເພື່ອສອບຖາມ (query) `ຊຸດຂໍ້ມູນສະຖິຕິການດາວໂຫຼດ PyPI " +"ສາທາລະນະ`_, ທ່ານຕ້ອງມີບັນຊີ Google ແລະ ເປີດໃຊ້ BigQuery API ໃນໂຄງການ Google Cloud " +"Platform. ທ່ານສາມາດສອບຖາມຂໍ້ມູນໄດ້ຟຣີສູງສຸດ 1TB ຕໍ່ເດືອນ `ໂດຍໃຊ້ BigQuery free tier " +"ໂດຍບໍ່ຕ້ອງມີບັດເຄຣດິດ `__" #: ../source/guides/analyzing-pypi-package-downloads.rst:57 @@ -3382,13 +4692,18 @@ msgid "Create a new project." msgstr "ສ້າງໂຄງການໃໝ່." #: ../source/guides/analyzing-pypi-package-downloads.rst:59 -msgid "Enable the `BigQuery API `__." +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 `__." +msgid "" +"For more detailed instructions on how to get started with BigQuery, check " +"out the `BigQuery quickstart guide `__." msgstr "" "ສຳລັບຄຳແນະນຳລະອຽດກ່ຽວກັບການເລີ່ມຕົ້ນໃຊ້ BigQuery, ສາມາດເບິ່ງໄດ້ທີ່ `ຄູ່ມືເລີ່ມຕົ້ນ BigQuery " "`__." @@ -3398,13 +4713,18 @@ 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) ທີ່ເປັນປະໂຫຍດຈາກ `ໂຄງສ້າງຕາຕະລາງ `__ " -"ມີດັ່ງນີ້:" +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" @@ -3489,14 +4809,20 @@ 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." +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." +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) ຈາກຄໍລຳ " +"ໃຫ້ສັງເກດວ່າແຖວຂໍ້ມູນຖືກເກັບໄວ້ໃນຕາຕະລາງແບບ partitioned, " +"ເຊິ່ງຊ່ວຍຈຳກັດຄ່າໃຊ້ຈ່າຍໃນການສອບຖາມ. " +"ຕົວຢ່າງຄຳສັ່ງເຫຼົ່ານີ້ຈະວິເຄາະການດາວໂຫຼດຈາກປະຫວັດຫຼ້າສຸດໂດຍການກັ່ນຕອງ (filter) ຈາກຄໍລຳ " "``timestamp``." #: ../source/guides/analyzing-pypi-package-downloads.rst:101 @@ -3504,7 +4830,9 @@ 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\"." +msgid "" +"The following query counts the total number of downloads for the project " +"\"pytest\"." msgstr "ຄຳສັ່ງຕໍ່ໄປນີ້ຈະນັບຈຳນວນການດາວໂຫຼດທັງໝົດຂອງໂຄງການ \"pytest\"." #: ../source/guides/analyzing-pypi-package-downloads.rst:118 @@ -3519,7 +4847,9 @@ 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." +msgid "" +"To count downloads from pip only, filter on the ``details.installer.name`` " +"column." msgstr "" "ໃນການນັບຈຳນວນການດາວໂຫຼດຈາກ pip ເທົ່ານັ້ນ, ໃຫ້ກັ່ນຕອງຈາກຄໍລຳ ``details.installer.name``." @@ -3532,10 +4862,12 @@ 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." +msgid "" +"To group by monthly downloads, use the ``TIMESTAMP_TRUNC`` function. Also " +"filtering by this column reduces corresponding costs." msgstr "" -"ໃນການຈັດກຸ່ມການດາວໂຫຼດຕາມເດືອນ, ໃຫ້ໃຊ້ຟັງຊັນ ``TIMESTAMP_TRUNC``. ນອກຈາກນີ້ ການກັ່ນຕອງດ້ວຍຄໍ" -"ລຳນີ້ຍັງຊ່ວຍຫຼຸດຄ່າໃຊ້ຈ່າຍທີ່ກ່ຽວຂ້ອງນຳ." +"ໃນການຈັດກຸ່ມການດາວໂຫຼດຕາມເດືອນ, ໃຫ້ໃຊ້ຟັງຊັນ ``TIMESTAMP_TRUNC``. ນອກຈາກນີ້ " +"ການກັ່ນຕອງດ້ວຍຄໍລຳນີ້ຍັງຊ່ວຍຫຼຸດຄ່າໃຊ້ຈ່າຍທີ່ກ່ຽວຂ້ອງນຳ." #: ../source/guides/analyzing-pypi-package-downloads.rst:167 msgid "month" @@ -3594,10 +4926,12 @@ 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." +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." +"ການດຶງຂໍ້ມູນເວີຊັນ Python ຈາກຄໍລຳ ``details.python``. ຄຳເຕືອນ: " +"ຄຳສັ່ງສອບຖາມນີ້ຈະປະມວນຜົນຂໍ້ມູນຫຼາຍກວ່າ 500 GB." #: ../source/guides/analyzing-pypi-package-downloads.rst:204 msgid "python" @@ -3656,14 +4990,20 @@ 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." +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. ຕາຕະລາງເມຕາດາຕາຈະລວມເອົາຄໍລຳ " +"ບາງຄັ້ງມັນມີປະໂຫຍດທີ່ຈະສາມາດເອົາລິ້ງຖາວອນເພື່ອດາວໂຫຼດ 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." +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 " "ຖືກເກັບໄວ້." @@ -3673,83 +5013,111 @@ 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" +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" +"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" +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" +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/" +"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" +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/" +"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" +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" +"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." +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) ແຕ່ຈຳນວນ" -"ທັງໝົດແມ່ນຕໍ່າກວ່າຄວາມເປັນຈິງຫຼາຍເທົ່າ." +"ນອກຈາກຂໍ້ຄວນລະວັງທີ່ລະບຸໄວ້ໃນສ່ວນຄວາມເປັນມາຂ້າງເທິງແລ້ວ, 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." +msgid "" +"Besides using the BigQuery console, there are some additional tools which " +"may be useful when analyzing download statistics." msgstr "" -"ນອກຈາກການໃຊ້ BigQuery console ແລ້ວ, ຍັງມີເຄື່ອງມືເພີ່ມເຕີມບາງຢ່າງທີ່ອາດຈະເປັນປະໂຫຍດໃນການວິເຄ" -"າະສະຖິຕິການດາວໂຫຼດ." +"ນອກຈາກການໃຊ້ 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." +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." +"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``." +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``." +"`pypinfo`_ ແມ່ນເຄື່ອງມືແບບບັນທັດຄຳສັ່ງທີ່ໃຫ້ການເຂົ້າເຖິງຊຸດຂໍ້ມູນ ແລະ " +"ສາມາດສ້າງຄຳສັ່ງສອບຖາມທີ່ເປັນປະໂຫຍດໄດ້ຫຼາຍຢ່າງ. ຕົວຢ່າງ: " +"ທ່ານສາມາດສອບຖາມຈຳນວນການດາວໂຫຼດທັງໝົດຂອງແພັກເກດໄດ້ດ້ວຍຄຳສັ່ງ ``pypinfo package_name``." #: ../source/guides/analyzing-pypi-package-downloads.rst:309 msgid "Install `pypinfo`_ using pip." @@ -3764,19 +5132,23 @@ 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`_ ໄດ້." +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." +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 ແລະ ມີການອັບເດດທຸກໆມື້." +"ໂຄງການ `ClickPy`_ ໃຫ້ບໍລິການແອັບພລິເຄຊັນສາທາລະນະເພື່ອສະແດງພາບສະຖິຕິການດາວໂຫຼດ, " +"ໂດຍມີການເຂົ້າເຖິງ SQL ໂດຍກົງຟຣີໄປຍັງຖານຂໍ້ມູນ `ClickHouse`_ ທີ່ເປັນ open-source ແລະ " +"ມີການອັບເດດທຸກໆມື້." #: ../source/guides/analyzing-pypi-package-downloads.rst:345 #: ../source/specifications/dependency-specifiers.rst:713 @@ -3784,13 +5156,17 @@ msgid "References" msgstr "ເອກະສານອ້າງອີງ" #: ../source/guides/analyzing-pypi-package-downloads.rst:347 -msgid "`PyPI Download Counts deprecation email `__" +msgid "" +"`PyPI Download Counts deprecation email `__" msgstr "" "`ອີເມວແຈ້ງການຍົກເລີກການນັບຈຳນວນການດາວໂຫຼດຂອງ PyPI `__" #: ../source/guides/analyzing-pypi-package-downloads.rst:348 -msgid "`PyPI BigQuery dataset announcement email `__" +msgid "" +"`PyPI BigQuery dataset announcement email `__" msgstr "" "`ອີເມວປະກາດຊຸດຂໍ້ມູນ PyPI BigQuery `__" @@ -3800,11 +5176,16 @@ 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." +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)** ປລັກອິນທັງໝົດທີ່ມີຢູ່ໂດຍອັດຕະໂນມັດ." +"ເລື້ອຍໆໃນເວລາສ້າງແອັບພລິເຄຊັນ ຫຼື ໄລບຣາຣີດ້ວຍ Python, " +"ທ່ານອາດຈະຕ້ອງການໃຫ້ມີຄວາມສາມາດໃນການປັບແຕ່ງ ຫຼື ເພີ່ມຟີເຈີພິເສດຜ່ານ **ປລັກອິນ**. " +"ເນື່ອງຈາກແພັກເກດ Python ສາມາດແຈກຢາຍແຍກກັນໄດ້, ແອັບພລິເຄຊັນ ຫຼື ໄລບຣາຣີຂອງທ່ານອາດຈະຕ້ອງການ " +"**ຄົ້ນຫາ (discover)** ປລັກອິນທັງໝົດທີ່ມີຢູ່ໂດຍອັດຕະໂນມັດ." #: ../source/guides/creating-and-discovering-plugins.rst:10 msgid "There are three major approaches to doing automatic plugin discovery:" @@ -3827,21 +5208,31 @@ 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:" +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 ທັງໝົດທີ່ຕິດຕັ້ງໄວ້ໂດຍອັດຕະໂນມັດ:" +"ຖ້າປລັກອິນທັງໝົດສຳລັບແອັບພລິເຄຊັນຂອງທ່ານປະຕິບັດຕາມທຳນຽມການຕັ້ງຊື່ດຽວກັນ, " +"ທ່ານສາມາດໃຊ້ :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:" +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." +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 ສຳລັບທຸກແພັກເກດທີ່ປະຕິບັດຕາມທຳນຽມການຕັ້ງຊື່ຂອງທ່ານໄດ້." @@ -3851,116 +5242,180 @@ 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 ນັ້ນ:" +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:" +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`` ໃນກໍລະ" -"ນີນັ້ນຈະເປັນ:" +"ການລະບຸ ``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` ໂດຍກົງ " +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." +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` ແລະ ຂຽນເອກະສານໃຫ້ຊັດເຈນວ່າວິທີໃດທີ່ເໝາະສົມສຳລັບປລັກ" -"ອິນໃນໂຄງການຂອງທ່ານ." +"ແພັກເກດແບບ 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." +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`. ໂດຍການລະບຸພວກມັ" -"ນ, ແພັກເກດຈະບອກໃຫ້ຮູ້ວ່າມັນປະກອບດ້ວຍປລັກອິນປະເພດໃດໜຶ່ງ. ແພັກເກດອື່ນທີ່ຮອງຮັບປລັກອິນປະເພດນັ້ນກໍຈະສາມ" -"າດໃຊ້ເມຕາດາຕານີ້ເພື່ອຄົ້ນຫາປລັກອິນດັ່ງກ່າວໄດ້." +"ແພັກເກດສາມາດມີເມຕາດາຕາສຳລັບປລັກອິນທີ່ຖືກອະທິບາຍໄວ້ໃນ :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``:" +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):" +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):" +"ຈາກນັ້ນທ່ານສາມາດຄົ້ນຫາ ແລະ ໂຫຼດທຸກ 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`:" +msgid "" +"In this example, ``discovered_plugins`` would be a collection of " +"type :class:`importlib.metadata.EntryPoint`:" msgstr "" -"ໃນຕົວຢ່າງນີ້, ``discovered_plugins`` ຈະເປັນກຸ່ມຂອງຂໍ້ມູນປະເພດ " -":class:`importlib.metadata.EntryPoint`:" +"ໃນຕົວຢ່າງນີ້, ``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()``." +msgid "" +"Now the module of your choice can be imported by executing " +"``discovered_plugins['a'].load()``." msgstr "" -"ຕອນນີ້ໂມດູນທີ່ທ່ານເລືອກສາມາດຖືກນຳເຂົ້າໄດ້ໂດຍການລັນຄຳສັ່ງ ``discovered_plugins['a'].load()" -"``." +"ຕອນນີ້ໂມດູນທີ່ທ່ານເລືອກສາມາດຖືກນຳເຂົ້າໄດ້ໂດຍການລັນຄຳສັ່ງ " +"``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 ` ." +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 `." +"ຂໍ້ກຳນົດ ``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." +#, fuzzy +#| msgid "" +#| "Since this specification is part of the :doc:`standard library " +#| "`, most packaging tools other than " +#| "setuptools provide support for defining entry points." +msgid "" +"Since this specification is part of the :doc:`standard library " +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" "ເນື່ອງຈາກຂໍ້ກຳນົດນີ້ເປັນສ່ວນໜຶ່ງຂອງ :doc:`ໄລບຣາຣີມາດຕະຖານ `, ເຄື່ອງມືການຈັດເຮັດແພັກເກດສ່ວນໃຫຍ່ນອກຈາກ setuptools ກໍໃຫ້ການຮອງຮັບກ" -"ານກຳນົດ entry points ຄືກັນ." +"importlib.metadata>`, ເຄື່ອງມືການຈັດເຮັດແພັກເກດສ່ວນໃຫຍ່ນອກຈາກ 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." +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 ທີ່ມີຢູ່) ເພື່ອໃຊ້ງານໃນບັນທັດຄຳສັ່ງ." +"(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." +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 tree) ສຳລັບ :term:`ໂຄງການ `. " +"ເພື່ອເປັນຕົວຢ່າງ, ພວກເຮົາຈະສ້າງເຄື່ອງມືງ່າຍໆທີ່ຈະສະແດງຄຳທັກທາຍ (ຂໍ້ຄວາມ) " +"ໃຫ້ກັບບຸກຄົນໂດຍອີງຕາມອາກິວເມນທີ່ລະບຸໃນບັນທັດຄຳສັ່ງ." #: ../source/guides/creating-command-line-tools.rst:17 #: ../source/guides/tool-recommendations.rst:45 @@ -3968,81 +5423,124 @@ 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 ໃນຄູ່ມື ຫຼື ການສົນທະນາອື່ນ ແລະ ເພີ່ມລິ້ງທີ່ນີ້." +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``:" +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``:" +"ໂຄງການນີ້ຈະປະຕິບັດຕາມ :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:" +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`, ເຊິ່ງຕັ້ງຊື່ຕາມໂມ" -"ດູນຫຼັກ:" +"ໂຄ້ດຕົວຈິງທີ່ເຮັດໜ້າທີ່ໃນການເຮັດວຽກຂອງເຄື່ອງມືຈະຖືກເກັບໄວ້ໃນໄຟລ໌ :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`:" +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)." +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``)." +"ທີ່ໃຊ້ງ່າຍໂດຍອີງໃສ່ 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 `." +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) ` ປົກກະຕິ." +"ຕອນນີ້, ໃຫ້ເພີ່ມໄຟລ໌ :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:" +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 ແບບບັນທັດຄຳສັ່ງຢູ່ບ່ອນນີ້:" +"``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`." +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 Tree>`, ເຊັ່ນ ``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*)." +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 `:" +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) `:" +"points>` ແບບ ``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." +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) `, ເຊິ່ງຈະເຮັດໃຫ້ມັນສາມາດຕິດຕັ້ງໄດ້." @@ -4052,43 +5550,63 @@ 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:" +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:" +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`` ໃຫ້" -"ໃຊ້ງານ. ລອງທົດສອບເບິ່ງ:" +"ສິ່ງນີ້ຈະເຮັດໃຫ້ສະຄຣິບທີ່ເຮົາກຳນົດໄວ້ໃນ 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." +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``." +"ເນື່ອງຈາກຕົວຢ່າງນີ້ໃຊ້ ``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:" +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 ໄວ້) ໃຫ້ກັບໂປຣແກຣມ:" +"ຖ້າຕ້ອງການພຽງແຕ່ລັນໂປຣແກຣມໂດຍບໍ່ຕ້ອງຕິດຕັ້ງແບບຖາວອນ, ໃຫ້ໃຊ້ ``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)." +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 ທີ່ເຮົາກຳນົດໄວ້ຂ້າງເທິງບໍ່ກົງກັບ" -"ຊື່ແພັກເກດ, ເຮົາຈຶ່ງຕ້ອງລະບຸໃຫ້ຊັດເຈນວ່າຈະລັນສະຄຣິບໃດ (ເຖິງແມ່ນວ່າມັນຈະມີພຽງອັນດຽວກໍຕາມ)." +"ແນວໃດກໍຕາມ, ວິທີນີ້ອາດຈະບໍ່ສະດວກປານໃດ; ເນື່ອງຈາກຊື່ຂອງ 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`:" +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`:" +"ແຕ່ຍັງມີວິທີແກ້ໄຂທີ່ສະດວກກວ່າ, ຄືການໃຊ້ 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:" +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`` ຈະເລືອກສະຄຣິບນັ້ນເປັນຄ່າເລີ່ມຕົ້ນ " "ແລະ ລັນມັນທັນທີ, ເຊິ່ງເຮັດໃຫ້ສາມາດໃຊ້ຄຳສັ່ງນີ້ໄດ້:" @@ -4098,14 +5616,22 @@ 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:`ວິໄຈ ` ເບິ່ງວ່າແພັກເກດຂອງທ່ານ" -"ໄດ້ຮັບການຕອບຮັບແນວໃດ!" +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" @@ -4120,7 +5646,12 @@ 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." +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/" @@ -4128,26 +5659,35 @@ msgstr "" "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." +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 ໂດຍລວມ. ຕົວຢ່າງເຊັ່ນ ມັນບໍ່ໄດ້ໃຫ້ຄຳແນະນຳ ຫຼື ເຄື່ອງມືແນະນຳສຳລັບການຄວບຄຸມເວີຊັນ, ການເຮັດ" -"ເອກະສານ, ຫຼື ການທົດສອບ." +"ພາກນີ້ *ບໍ່ໄດ້* ມີຈຸດປະສົງເພື່ອໃຫ້ຂໍ້ມູນກ່ຽວກັບວິທີການທີ່ດີທີ່ສຸດ (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." +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 ເປັນຫຼັກ." +"` ໃນເອກະສານຂອງ :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 `." +msgid "" +"First, make sure you have already fulfilled the :ref:`requirements for " +"installing packages `." msgstr "" "ທຳອິດ, ໃຫ້ແນ່ໃຈວ່າທ່ານໄດ້ປະຕິບັດຕາມ :ref:`ຄວາມຕ້ອງການສຳລັບການຕິດຕັ້ງແພັກເກດ " "` ຮຽບຮ້ອຍແລ້ວ." @@ -4157,11 +5697,14 @@ 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 `)." +msgid "" +"You'll need this to upload your project :term:`distributions ` to :term:`PyPI ` (see :ref:`below " +"`)." msgstr "" -"ທ່ານຈະຕ້ອງໃຊ້ສິ່ງນີ້ເພື່ອອັບໂຫຼດ :term:`ຊຸດແຈກຢາຍ (distributions) " -"` ຂອງໂຄງການຂອງທ່ານໄປຍັງ :term:`PyPI ` (ເບິ່ງ :ref:`ດ້" -"ານລຸ່ມ `)." +"ທ່ານຈະຕ້ອງໃຊ້ສິ່ງນີ້ເພື່ອອັບໂຫຼດ :term:`ຊຸດແຈກຢາຍ (distributions) ` ຂອງໂຄງການຂອງທ່ານໄປຍັງ :term:`PyPI ` " +"(ເບິ່ງ :ref:`ດ້ານລຸ່ມ `)." #: ../source/guides/distributing-packages-using-setuptools.rst:52 msgid "Configuring your project" @@ -4172,10 +5715,14 @@ 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 `_." +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 " "`_." @@ -4184,23 +5731,37 @@ 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 `." +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:`ພາກສ່ວນດ້ານລຸ່ມ `." +"ມັນແມ່ນໄຟລ໌ທີ່ໃຊ້ກຳນົດຄ່າຕ່າງໆຂອງໂຄງການ. ຄຸນລັກສະນະຫຼັກຂອງ :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``." +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``." +"ມັນເປັນ 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 `_." +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 `_." @@ -4209,51 +5770,79 @@ 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)." +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()``)." +"daringfireball.net/projects/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 `_." +msgid "" +"For an example, see `README.md `_ from the `PyPA sample project `_." msgstr "" "ສຳລັບຕົວຢ່າງ, ເບິ່ງ `README.md `_ ຈາກ `ໂຄງການຕົວຢ່າງຂອງ PyPA " -"`_." +"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." +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`. ຖ້າບໍ່ດັ່ງນັ້ນ, ໃຫ້ລະບຸໄວ້ເພື່ອຄວາມຊັດເຈນ." +"(: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`\"." +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`\"." +"ໄຟລ໌ :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." +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 ແລະ ເວີຊັນໃໝ່ກວ່າ." +"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." +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 @@ -4261,15 +5850,25 @@ 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 `_ ຫຼື ປຶກສານັກກົດໝາຍ." +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 `_." +msgid "" +"For an example, see the `LICENSE.txt `_ from the `PyPA sample project `_." msgstr "" "ສຳລັບຕົວຢ່າງ, ເບິ່ງ `LICENSE.txt `_ ຈາກ `ໂໂຄງການຕົວຢ່າງຂອງ PyPA " 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." +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:`ຊື່ ` ດຽວກັນກັບໂຄງການຂອງທ່ານ, ຫຼື " -"ຊື່ທີ່ໃກ້ຄຽງທີ່ສຸດ." +"ເຖິງແມ່ນວ່າຈະບໍ່ແມ່ນຂໍ້ບັງຄັບ, ແຕ່ວິທີການທົ່ວໄປທີ່ສຸດຄືການລວມເອົາໂມດູນ ແລະ ແພັກເກດ 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 `_." +msgid "" +"For an example, see the `sample `_ package that's included in the `PyPA sample project " +"`_." msgstr "" "ສຳລັບຕົວຢ່າງ, ເບິ່ງແພັກເກດ `sample `_ ທີ່ລວມຢູ່ໃນ `ໂໂຄງການຕົວຢ່າງຂອງ PyPA `." +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 `." +"ບາງສ່ວນຈະຖືກອະທິບາຍຊົ່ວຄາວຢູ່ດ້ານລຸ່ມນີ້ ຈົນກວ່າຂໍ້ມູນຈະຖືກຍ້າຍໄປບ່ອນອື່ນ. " +"ລາຍຊື່ທັງໝົດສາມາດເບິ່ງໄດ້ :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 `_." +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." +msgid "" +"See :ref:`Choosing a versioning scheme` for more information on ways to use " +"versions to convey compatibility information to your users." msgstr "" -"ເບິ່ງ :ref:`ການເລືອກຮູບແບບການກຳນົດເວີຊັນ` ສຳລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບວິທີການນຳໃຊ້ ເວີຊັນເພື່ອສື່ສານຂໍ້ມູນ" -"ຄວາມເຂົ້າກັນໄດ້ໃຫ້ກັບຜູ້ໃຊ້ຂອງທ່ານ." +"ເບິ່ງ :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`` ເພື່ອຍົກເວັ້ນແພັກເກດທີ່ບໍ່ຕ້" -"ອງການຈະເຜີຍແຜ່ ຫຼື ຕິດຕັ້ງ." +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." +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` ຮັບຮູ້ພວກມັນ." +"``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." +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`, ຂໍ້ມູນສ່ວນນີ້ ຈະຖືກໃຊ້ເພື່ອຕິດຕັ້ງສິ່ງທີ່ໂຄງການຕ້ອງການເ" -"ພີ່ມເຕີມ." +"\"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`." +msgid "" +"For more on using \"install_requires\" see :ref:`install_requires vs " +"Requirements files`." msgstr "" "ສຳລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບການນຳໃຊ້ \"install_requires\" ເບິ່ງໄດ້ທີ່ :ref:`install_requires " "vs Requirements files`." @@ -4368,20 +6000,33 @@ 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\"." +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\" (ຂໍ້ມູນແພັກເກດ)." +"ເລື້ອຍໆທີ່ໄຟລ໌ເພີ່ມເຕີມຈຳເປັນຕ້ອງໄດ້ຕິດຕັ້ງເຂົ້າໄປໃນ :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." +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) ທີ່ກ່ຽວຂ້ອງ ເຊິ່ງຄວນຈະຖືກສຳເນົາເຂົ້າໄ" -"ປໃນແພັກເກດ. ເສັ້ນທາງເຫຼົ່ານີ້ຈະຖືກຕີຄວາມໝາຍ ໂດຍອີງຕາມໂຟນເດີທີ່ບັນຈຸແພັກເກດນັ້ນຢູ່." +"ຄ່າຕ້ອງເປັນການຈັບຄູ່ລະຫວ່າງຊື່ແພັກເກດກັບລາຍຊື່ຂອງເສັ້ນທາງ (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 `." +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 `." @@ -4391,35 +6036,55 @@ 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." +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." +"ເຖິງແມ່ນວ່າການຕັ້ງຄ່າ :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." +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` ທີ່ຢູ່ສ່ວນເທິງສຸດ ຂອງໄຟລ໌ແຫຼ່ງກຳເນີດໂຄງການ." +"`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 `." +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." +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`` ນຳ." +"ເມື່ອຕິດຕັ້ງແພັກເກດແບບ 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 @@ -4428,19 +6093,25 @@ 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)." +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 (ເບິ່ງລຸ່ມນີ້)." +"installing-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." +msgid "" +"See :ref:`versioning` for information on common version schemes and how to " +"choose between them." msgstr "" "ເບິ່ງ :ref:`versioning` ສຳລັບຂໍ້ມູນກ່ຽວກັບຮູບແບບເວີຊັນທີ່ນິຍົມໃຊ້ ແລະ ວິທີ ການເລືອກລະຫວ່າງພວກມັນ." @@ -4449,49 +6120,77 @@ 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." +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 ເລີ່ມເຮັດວຽກ." +"ການປ່ຽນແປງໃນໄຟລ໌ແຫຼ່ງກຳເນີດ 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:" +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)." +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::" +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 ໄດ້ດັ່ງນີ້::" +"ທ່ານອາດຈະຕ້ອງການຕິດຕັ້ງບາງ 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." +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::" +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." +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 " @@ -4499,12 +6198,14 @@ msgstr "" "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 ໃດໆເລີຍ, ທ່ານສາມາດຣັນຄຳສັ່ງ:" +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." +msgid "" +"For more information, see the :doc:`Development Mode ` section of the :ref:`setuptools` docs." msgstr "" "ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ, ເບິ່ງພາກ :doc:`Development Mode ` ໃນເອກະສານຂອງ :ref:`setuptools`." @@ -4514,68 +6215,94 @@ 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." +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 `\") ສຳລັບໂຄ" -"ງການຂອງທ່ານ." +"` (ຫຼື \":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:" +msgid "" +"Before you can build wheels and sdists for your project, you'll need to " +"install the ``build`` package:" msgstr "" -"ກ່ອນທີ່ທ່ານຈະສາມາດສ້າງໄຟລ໌ wheel ແລະ sdist ສຳລັບໂຄງການຂອງທ່ານ, ທ່ານຈຳເປັນຕ້ອງ ຕິດຕັ້ງແພັກເກ" -"ດ ``build`` ກ່ອນ:" +"ກ່ອນທີ່ທ່ານຈະສາມາດສ້າງໄຟລ໌ 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 `:" +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`." +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`." +"ແລະ ຕ້ອງການຂັ້ນຕອນການບິວເມື່ອຕິດຕັ້ງໂດຍ 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." +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 ສໍາລັບຜູ້ໃຊ້ທົ່ວໄປ." +"Distribution>` ທີ່ສາມາດຕິດຕັ້ງໄດ້ໂດຍບໍ່ຈໍາເປັນຕ້ອງຜ່ານຂັ້ນຕອນການ \"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) `." +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\" (ເບິ່ງພາກ" -"ລຸ່ມນີ້) `." +"ຖ້າໂຄງການຂອງທ່ານເປັນ 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) `." +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* (ເບິ່ງພາກລຸ່ມນີ້) `." +"ຖ້າໂຄງການຂອງທ່ານມີສ່ວນຂະຫຍາຍທີ່ຕ້ອງໄດ້ຄອມໄພລ໌ (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:" +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." +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." @@ -4584,10 +6311,12 @@ 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." +msgid "" +"*Pure Python Wheels* contain no compiled extensions, and therefore only " +"require a single Python wheel." msgstr "" -"*Pure Python Wheels* ບໍ່ມີສ່ວນຂະຫຍາຍທີ່ຖືກຄອມໄພລ໌, ດັ່ງນັ້ນຈຶ່ງ ຕ້ອງການພຽງແຕ່ Python wheel ໄຟ" -"ລ໌ດຽວ." +"*Pure Python Wheels* ບໍ່ມີສ່ວນຂະຫຍາຍທີ່ຖືກຄອມໄພລ໌, ດັ່ງນັ້ນຈຶ່ງ ຕ້ອງການພຽງແຕ່ Python wheel " +"ໄຟລ໌ດຽວ." #: ../source/guides/distributing-packages-using-setuptools.rst:440 #: ../source/guides/distributing-packages-using-setuptools.rst:469 @@ -4595,125 +6324,174 @@ 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`." +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`." +"ແພັກເກດ ``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." +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 ຫຼາຍໆຮູບແບບ." +"ຫາກທ່ານຣັນ ``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." +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`." +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`." +"ແພັກເກດ ``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`." +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`." +"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." +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 ທີ່ຈະໃຊ້ອັບໂຫຼດ." +"ເມື່ອທ່ານຣັນຄຳສັ່ງເພື່ອສ້າງ 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." +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." +"ໄຟລ໌ເຫຼົ່ານີ້ຈະຖືກສ້າງຂຶ້ນເມື່ອທ່ານຣັນຄຳສັ່ງສ້າງ 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." +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` ກ່ຽວກັບວິທີກາ" -"ນ ຕັ້ງຄ່າເພື່ອໃຊ້ມັນ." +"test.pypi.org/>`_ ເຊິ່ງຈະຖືກລ້າງຂໍ້ມູນເປັນໄລຍະ. ເບິ່ງ :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." +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, ເຮັດໃຫ້ຊື່ຜູ້ໃຊ້ ແລະ ລະຫັດຜ່ານ ຂອງທ່ານຖືກດັກຈັບໄດ້ໃນລະຫວ່າງການສົ່ງຂໍ້ມູນ." +"``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 " -"` ກັບໄຟລ໌ແພັກເກດຂອງທ່ານ:" +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 `_." +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 `_." +"ກ່ອນອື່ນ, ທ່ານຕ້ອງມີບັນຊີຜູ້ໃຊ້ :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." +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." +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`_ ໃໝ່; ຢ່າຈຳ" -"ກັດຂອບເຂດຂອງມັນໄວ້ກັບໂຄງການໃດໜຶ່ງໂດຍສະເພາະ, ເພາະວ່າທ່ານກຳລັງສ້າງໂຄງການໃໝ່." +"ໄປທີ່ 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.**" +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:" +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` ໄດ້:" +"ເພື່ອຫຼີກເວັ້ນການຕ້ອງສຳເນົາ ແລະ ວາງ 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).**" +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`." +msgid "" +"For more details, see the :ref:`specification ` for :file:`.pypirc`." msgstr "" "ສຳລັບລາຍລະອຽດເພີ່ມເຕີມ, ເບິ່ງ :ref:`specification ` ສຳລັບ :file:`.pypirc`." @@ -4722,58 +6500,81 @@ 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`." +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." +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 ທຳອິດ." +"ຂັ້ນຕອນການອັບໂຫຼດການເຜີຍແຜ່ (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." +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 ໃໝ່ຕ້ອງແຕກຕ່າງຈ" -"າກເວີຊັນກ່ອນໜ້ານີ້ທັງໝົດ." +"ສຳລັບ 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." +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`` ແມ່ນ ຊື່ໂຄງການຂອງທ່ານທີ່ໄດ້" -"ອັບໂຫຼດໄປ. ອາດຈະໃຊ້ເວລາໜຶ່ງ ຫຼື ສອງນາທີເພື່ອໃຫ້ໂຄງການ ປະກົດຂຶ້ນໃນເວັບໄຊ." +"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 `_." +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` ກຳລັ" -"ງພິຈາລະນາປ່ຽນແປງສິ່ງນີ້ໂດຍ `ການເຮັດໃຫ້ການຕິດຕັ້ງໂດຍຜູ້ໃຊ້ ເປັນຄ່າເລີ່ມຕົ້ນ `_." +"ຂຶ້ນກັບແພລັດຟອມຂອງທ່ານ, ສິ່ງນີ້ອາດຈະຕ້ອງໃຊ້ສິດ 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." +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\" `." +"ຄວາມສາມາດໃນການຍົກເລີກການຮອງຮັບ 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." +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 ນັ້ນຢູ່." +"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." +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 ຂອງແພັກເກດ." @@ -4783,7 +6584,9 @@ 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." +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." @@ -4793,24 +6596,36 @@ 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``." +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]`` ໂດຍການກຳນົດ " +"ເມື່ອຍົກເລີກການຮອງຮັບ 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``:" +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." +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) ອາດຈະໄປຂຽນທັບການຕັ້ງຄ່ານີ້." +"ກ່ຽວກັບການໃຊ້ຄຳສັ່ງ ``setup.py`` ໂດຍກົງທີ່ :ref:`ບໍ່ແນະນຳໃຫ້ໃຊ້ແລ້ວ `, ການສົ່ງແຟລັກ ``--universal`` ໃນຄຳສັ່ງ (command line) " +"ອາດຈະໄປຂຽນທັບການຕັ້ງຄ່ານີ້." #: ../source/guides/dropping-older-python-versions.rst:45 msgid "Defining the Python version required" @@ -4829,47 +6644,65 @@ 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:" +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 `:" +"ກຳນົດຊ່ວງເວີຊັນເພື່ອປະກາດວ່າ 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:" +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:" +"ທ່ານສາມາດລະບຸຊ່ວງເວີຊັນ ແລະ ກົດການຍົກເວັ້ນ (ຕາມຂໍ້ກຳນົດ :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." +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." +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`_ ສຳລັບຂໍ້ມູນເພີ່ມເຕີ" -"ມ." +"ຫຼີກເວັ້ນການເພີ່ມຂີດຈຳກັດສູງສຸດໃຫ້ກັບຊ່ວງເວີຊັນ, ເຊັ່ນ ``\">= 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." +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." +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." +"ໄຟລ໌ນີ້ຖືກສ້າງຂຶ້ນໂດຍ :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:" @@ -4880,14 +6713,16 @@ 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 ຫຼື ສູງກວ່າ." +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`` ຖືກກຳນົດໄວ້ ແລະ ກົງກັບທີ່ທ່ານລະບຸໃນ ໄຟລ໌ການຕັ້ງຄ່າ." +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" @@ -4902,25 +6737,36 @@ 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`` ກໍ່ຄວນຈະຖືກແກ້ໄຂ. ແນ່ນອນວ່າສິ່ງນີ້ຍັງ ຂຶ້ນກັບວ່າໂຄງການຕ້ອງການຄວາມສະຖຽນ ແລ" -"ະ ຄອບຄຸມຜູ້ໃຊ້ໃນວົງກວ້າງຫຼືບໍ່." +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) ແຍກຕ່າງຫາກ." +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." +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 @@ -4932,42 +6778,63 @@ 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." +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)." +"ຫາກທ່ານຕ້ອງການໂຮສຄັງເກັບແບບງ່າຍໆຂອງທ່ານເອງ [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:" +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:" +"ບໍ່ວ່າຈະໃຊ້ວິທີໃດ, ເນື່ອງຈາກທ່ານຈະໂຮສຄັງເກັບທີ່ອາດຈະບໍ່ໄດ້ຢູ່ໃນລາຍຊື່ ຄັງເກັບເລີ່ມຕົ້ນຂອງຜູ້ໃຊ້, " +"ທ່ານຄວນແນະນຳພວກເຂົາໃນຄຳອະທິບາຍໂຄງການ ໃຫ້ຕັ້ງຄ່າເຄື່ອງມືຕິດຕັ້ງໃຫ້ເໝາະສົມ. ຕົວຢ່າງສຳລັບ 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." +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 ທີ່ຖືກຕ້ອງ." +"ນອກຈາກນັ້ນ, ຂໍແນະນຳ **ຢ່າງຍິ່ງ** ໃຫ້ທ່ານໃຫ້ບໍລິການຄັງເກັບຂອງທ່ານ ຜ່ານ 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) ທ່ານຈະໄດ້ໂຄງສ້າງທີ່ເປັນແບບນີ້::" +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." +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 ເຂົ້າໄປໃນການຕັ້ງຄ່າເຄື່ອງມືຕິດຕັ້ງຂອງພວກເຂົາ." +"ເມື່ອທ່ານມີຮູບແບບນີ້ແລ້ວ, ພຽງແຕ່ຕັ້ງຄ່າເວັບເຊີເວີຂອງທ່ານໃຫ້ບໍລິການໂຟນເດີຫຼັກ ໂດຍເປີດໃຊ້ autoindex. " +"ຕົວຢ່າງຫາກໃຊ້ເວັບເຊີເວີທີ່ມາພ້ອມກັບ `Twisted`_, ທ່ານພຽງແຕ່ຣັນ ``twistd -n web --path .`` " +"ແລະ ຈາກນັ້ນແນະນຳໃຫ້ຜູ້ໃຊ້ ເພີ່ມ URL ເຂົ້າໄປໃນການຕັ້ງຄ່າເຄື່ອງມືຕິດຕັ້ງຂອງພວກເຂົາ." #: ../source/guides/hosting-your-own-index.rst:57 #: ../source/guides/index-mirrors-and-caches.rst:47 @@ -5020,7 +6887,9 @@ msgid "✔" msgstr "✔" #: ../source/guides/hosting-your-own-index.rst:70 -msgid "multiple indexes with inheritance, with syncing, replication, fail-over; mirroring" +msgid "" +"multiple indexes with inheritance, with syncing, replication, fail-over; " +"mirroring" msgstr "" "ຮອງຮັບຫຼາຍ index ແບບສືບທອດ, ມີການຊິງຄ໌ຂໍ້ມູນ, ການເຮັດສຳເນົາ, ລະບົບສຳຮອງ; ການເຮັດ mirror" @@ -5044,8 +6913,7 @@ msgstr ":ref:`pypicloud`" #: ../source/guides/hosting-your-own-index.rst:91 msgid "unmaintained; also cached proxying; authentication, authorisation" -msgstr "" -"ບໍ່ໄດ້ຮັບການເບິ່ງແຍງແລ້ວ; ຮອງຮັບການເຮັດແຄຊ໌ພຣັອກຊີ; ການຢືນຢັນຕົວຕົນ, ການກຳນົດສິດ" +msgstr "ບໍ່ໄດ້ຮັບການເບິ່ງແຍງແລ້ວ; ຮອງຮັບການເຮັດແຄຊ໌ພຣັອກຊີ; ການຢືນຢັນຕົວຕົນ, ການກຳນົດສິດ" #: ../source/guides/hosting-your-own-index.rst:93 msgid ":ref:`pywharf`" @@ -5095,7 +6963,11 @@ 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" +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 `." +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 ອື່ນ) ຫາກບໍ່ພົບແພັກເກດທີ່ຕ້ອງການ." +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`." +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`." +"**ຄຳແນະນຳ (Guides)** ແມ່ນເນັ້ນໃສ່ການເຮັດວຽກໃດໜຶ່ງໃຫ້ສຳເລັດ ແລະ ສົມມຸດວ່າທ່ານ " +"ຄຸ້ນເຄີຍກັບພື້ນຖານຂອງການເຮັດແພັກເກດ Python ຢູ່ແລ້ວ. ຫາກທ່ານກຳລັງຊອກຫາ ບົດຮຽນພື້ນຖານ, " +"ເບິ່ງໄດ້ທີ່ :doc:`/tutorials/index`." #: ../source/guides/index-mirrors-and-caches.rst:5 msgid "Package index mirrors and caches" @@ -5129,11 +7007,14 @@ 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." +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 ` ອື່ນໆ) ສາມາດໃຊ້ເພື່ອເລັ່ງຄວາມໄວໃນການຕິດຕັ້ງແພັກເກດພາຍໃນ, ຊ່ວຍໃຫ້ເຮັດວຽກແບບອອຟລາຍໄ" -"ດ້, ຈັດການກັບໄຟວໍຂອງອົງກອນ ຫຼື ບັນຫາອິນເຕີເນັດທີ່ບໍ່ສະຖຽນ." +"Index>` ອື່ນໆ) ສາມາດໃຊ້ເພື່ອເລັ່ງຄວາມໄວໃນການຕິດຕັ້ງແພັກເກດພາຍໃນ, " +"ຊ່ວຍໃຫ້ເຮັດວຽກແບບອອຟລາຍໄດ້, ຈັດການກັບໄຟວໍຂອງອົງກອນ ຫຼື ບັນຫາອິນເຕີເນັດທີ່ບໍ່ສະຖຽນ." #: ../source/guides/index-mirrors-and-caches.rst:15 msgid "There are multiple classes of options in this area:" @@ -5144,35 +7025,46 @@ 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." +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." +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)." +"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 `:" +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." +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." +":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 `:" +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 `:" @@ -5190,7 +7082,9 @@ msgid "Proxy" msgstr "Proxy" #: ../source/guides/index-mirrors-and-caches.rst:62 -msgid "multiple indexes with inheritance; syncing, replication, fail-over; package upload" +msgid "" +"multiple indexes with inheritance; syncing, replication, fail-over; package " +"upload" msgstr "" "ຮອງຮັບຫຼາຍ index ແບບສືບທອດ; ການຊິງຄ໌ຂໍ້ມູນ, ການເຮັດສຳເນົາ, ລະບົບສຳຮອງ; ການອັບໂຫຼດແພັກເກດ" @@ -5200,8 +7094,7 @@ 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 ອື່ນ" +msgstr "ປລັກອິນທີ່ປັບແຕ່ງເອງຊ່ວຍໃຫ້ໃຊ້ແຄຊ໌ໄດ້; ການປ່ຽນເສັ້ນທາງໄປຫາ package indexes ອື່ນ" #: ../source/guides/index-mirrors-and-caches.rst:81 msgid "unmaintained; authentication, authorisation" @@ -5237,89 +7130,138 @@ 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." +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 ທີ່ຊັບຊ້ອນກວ່າທົ່ວໄປ, ແລະ ມັນມັກຈະມີຕົວເລືອກການບິວຫຼາຍຮູບ" -"ແບບເພື່ອດຶງປະສິດທິພາບຂອງຮາດແວແຕ່ລະປະເພດ, ຫຼື ເພື່ອເຮັດວຽກຮ່ວມກັບຊອບແວພາຍນອກອື່ນໆ." +"ຊອບແວດ້ານວິທະຍາສາດມັກຈະມີ 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." +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 ສະໄໝໃໝ່." +"`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." +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)." +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)." +"ມີທາງເລືອກອື່ນໆໃນການຕິດຕັ້ງໄລບຣາຣີ 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." +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 ກໍ່ເປັນທາງເລືອກສະເໝີ." +"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." +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." +"ສຳລັບຜູ້ໃຊ້ 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 " +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." +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 ພາຍໃນເຄື່ອງ." +"ຫຼາຍໂຄງການ 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." +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." +"ສ່ວນເສີມ (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." +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 ແມ່ນວິທີທົ່ວໄປໃນການແກ້ໄຂຂໍ້ຈຳກັດນີ້." +"ເຊັ່ນດຽວກັນກັບແພັກເກດລະບົບ 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." +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 ໄດ້." @@ -5329,13 +7271,19 @@ 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." +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 `_." +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 `_ that provide the full SciPy stack to end users in an easy to use and update format." +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." +msgid "" +"Some of these distributions may not be compatible with the standard ``pip`` " +"and ``virtualenv`` based toolchain." msgstr "" "ບາງການແຈກຢາຍເຫຼົ່ານີ້ອາດຈະບໍ່ເຂົ້າກັນໄດ້ກັບເຄື່ອງມືມາດຕະຖານທີ່ອີງຕາມ ``pip`` ແລະ " "``virtualenv``." @@ -5363,89 +7316,140 @@ 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``, ແລະ ພາສາອື່ນໆ. ມັນເປັນລະບົບທີ່ບໍ່ທຳລາຍຂໍ້ມູນເກົ່າ; ການຕິດຕັ້ງເວີຊັນໃໝ່ຂອງແພັກເ" -"ກດໜຶ່ງ ຈະບໍ່ໄປເຮັດໃຫ້ການຕິດຕັ້ງທີ່ມີຢູ່ກ່ອນແລ້ວເພພັງ, ດັ່ງນັ້ນຫຼາຍການຕັ້ງຄ່າຈຶ່ງສາມາດຢູ່ຮ່ວມກັນໃນລະບົບດຽວກັນໄ" -"ດ້." +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* ເພື່ອໃຫ້ແພັກເກດ ສາມາດຖືກໂຫຼດເຂົ້າ ຫຼື ຖອນອອກຈາກສະພາບ" -"ແວດລ້ອມຂອງຜູ້ໃຊ້ໄດ້." +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." +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." +"ທີ່ຊ່ວຍໃຫ້ຜູ້ໃຊ້ຕິດຕັ້ງຊອບແວ 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." +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." +"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 `_." +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 `_." +"ນອກເໜືອຈາກການແຈກຢາຍແບບເຕັມຮູບແບບຂອງ 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." +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 ທີ່ ສະໜັບສະໜູນໂດຍຊຸມຊົນ, ເຊິ່ງມີແພັກເກດທີ່ບິວ" -"ໄວ້ແລ້ວຫຼາກຫຼາຍຊະນິດ, ແລະ ການລວບລວມແພັກເກດສະເພາະທາງບາງຢ່າງ." +"ແພັກເກດ 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`." +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`." +"`_, `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." +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 ທີ່ລະບົບປະຕິບັດການໃຊ້ງານຢູ່ເພພັງໄດ້." +"ໂດຍປົກກະຕິແລ້ວ ທ່ານຕ້ອງການເຂົ້າເຖິງແອັບພລິເຄຊັນເຫຼົ່ານີ້ໄດ້ຈາກທຸກບ່ອນໃນລະບົບ ຂອງທ່ານ, " +"ແຕ່ການຕິດຕັ້ງແພັກເກດ ແລະ 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." +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`` ຂອງທ່ານ. ສິ່ງນີ້ຊ່ວຍໃຫ້ແຕ່ລະແພັກເ" -"ກດສາມາດອັບເກຣດ ຫຼື ຖອນການຕິດຕັ້ງ ໄດ້ໂດຍບໍ່ເຮັດໃຫ້ເກີດການຂັດແຍ້ງກັບແພັກເກດອື່ນ, ແລະ ຊ່ວຍໃຫ້ທ່ານ ຣັນແ" -"ອັບພລິເຄຊັນໄດ້ຢ່າງປອດໄພຈາກທຸກບ່ອນ." +":ref:`pipx` ແກ້ໄຂບັນຫານີ້ໂດຍການສ້າງ virtual environment ໃຫ້ກັບແຕ່ລະແພັກເກດ, " +"ພ້ອມທັງຮັບປະກັນວ່າແອັບພລິເຄຊັນຂອງມັນສາມາດເຂົ້າເຖິງໄດ້ຜ່ານໂຟນເດີທີ່ຢູ່ໃນ ``$PATH`` ຂອງທ່ານ. " +"ສິ່ງນີ້ຊ່ວຍໃຫ້ແຕ່ລະແພັກເກດສາມາດອັບເກຣດ ຫຼື ຖອນການຕິດຕັ້ງ ໄດ້ໂດຍບໍ່ເຮັດໃຫ້ເກີດການຂັດແຍ້ງກັບແພັກເກດອື່ນ, " +"ແລະ ຊ່ວຍໃຫ້ທ່ານ ຣັນແອັບພລິເຄຊັນໄດ້ຢ່າງປອດໄພຈາກທຸກບ່ອນ." #: ../source/guides/installing-stand-alone-command-line-tools.rst:23 msgid "pipx only works with Python 3.6+." @@ -5456,16 +7460,20 @@ 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." +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) ໃໝ່ເພື່ອໃຫ້ການປ່ຽນແປງນີ້ມີຜົນ." +"``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." +msgid "" +"Now you can install packages with ``pipx install`` and run the package's " +"applications(s) from anywhere." msgstr "" -"ຕອນນີ້ທ່ານສາມາດຕິດຕັ້ງແພັກເກດດ້ວຍ ``pipx install`` ແລະ ຣັນ ແອັບພລິເຄຊັນຂອງແພັກເກດໄດ້ຈາກທຸກບ່ອ" -"ນ." +"ຕອນນີ້ທ່ານສາມາດຕິດຕັ້ງແພັກເກດດ້ວຍ ``pipx install`` ແລະ ຣັນ " +"ແອັບພລິເຄຊັນຂອງແພັກເກດໄດ້ຈາກທຸກບ່ອນ." #: ../source/guides/installing-stand-alone-command-line-tools.rst:54 #: ../source/specifications/entry-points.rst:113 @@ -5473,7 +7481,9 @@ 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``:" +msgid "" +"To see a list of packages installed with pipx and which applications are " +"available, use ``pipx list``:" msgstr "" "ເພື່ອເບິ່ງລາຍຊື່ແພັກເກດທີ່ຕິດຕັ້ງດ້ວຍ pipx ແລະ ເບິ່ງວ່າແອັບພລິເຄຊັນໃດແດ່ທີ່ ສາມາດໃຊ້ໄດ້, ໃຫ້ໃຊ້ຄຳສັ່ງ " "``pipx list``:" @@ -5487,7 +7497,9 @@ 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:" +msgid "" +"pipx also allows you to install and run the latest version of an application " +"in a temporary, ephemeral environment. For example:" msgstr "" "pipx ຍັງຊ່ວຍໃຫ້ທ່ານຕິດຕັ້ງ ແລະ ຣັນແອັບພລິເຄຊັນເວີຊັນຫຼ້າສຸດ ໃນສະພາບແວດລ້ອມຊົ່ວຄາວໄດ້. ຕົວຢ່າງ:" @@ -5508,39 +7520,57 @@ 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." +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." +"ພາກນີ້ຈະເວົ້າເຖິງວິທີການຕິດຕັ້ງ :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." +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` ແທນ." +"ຫາກທ່ານກຳລັງໃຊ້ 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." +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 ທີ່ພວກເຮົາຮູ້ຈັກໄວ້ດ້ານລຸ່ມນີ້." +"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." +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) ເພື່ອຄວາມປອດໄພ ແລະ ຄວ" -"າມເປັນມາດຕະຖານຂອງພວກເຂົາເອງ. ໃນບາງ ກໍລະນີ, ສິ່ງນີ້ອາດຈະເຮັດໃຫ້ເກີດບັກ ຫຼື ພຶດຕິກຳທີ່ບໍ່ຄາດຄິດ ເຊິ່ງແ" -"ຕກຕ່າງ ຈາກເວີຊັນຕົ້ນສະບັບທີ່ບໍ່ໄດ້ແກ້ໄຂ. ຫາກມີຂໍ້ມູນສ່ວນນີ້, ພວກເຮົາຈະ ໝາຍເຫດໄວ້ໃຫ້." +"ນອກຈາກນັ້ນ, ມັນເປັນເລື່ອງປົກກະຕິທີ່ 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`_." +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`_." @@ -5550,30 +7580,41 @@ 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." +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` ຈະຖືກຕິດຕັ້ງມາໃຫ້ເປັນຄ່າເລີ່ມຕົ້ນກໍ່ຕາມ." +"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:" +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 ໄດ້ດັ່ງນີ້:" +"ເປີດໃຊ້ `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." +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 ຫຼັກຢູ່ແລ້ວ." +"ເນື່ອງຈາກ 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:" +msgid "" +"Enable the `PyPA Copr Repo `_ using `these instructions `__ [1]_. You can install pip and " +"wheel like so:" msgstr "" "ເປີດໃຊ້ `PyPA Copr Repo `_ " "ໂດຍໃຊ້ `ຄຳແນະນຳເຫຼົ່ານີ້ `_ and install one of the `parallel-installable `_ Pythons, along with pip, setuptools, and wheel, which are kept fairly up to date." +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 ເຊິ່ງມີການອັບເດດຢູ່ສະເໝີ." +"ເປີດໃຊ້ `IUS repository `_ ແລະ ຕິດຕັ້ງ Python ທີ່ " +"`ຕິດຕັ້ງແບບຂະໜານໄດ້ `_ ພ້ອມກັບ " +"pip, setuptools, ແລະ wheel ເຊິ່ງມີການອັບເດດຢູ່ສະເໝີ." #: ../source/guides/installing-using-linux-tools.rst:100 msgid "For example, for Python 3.4 on CentOS7/RHEL7:" @@ -5633,18 +7684,23 @@ 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." +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\" `_ ເປັນຄ່າເລີ່ມຕົ້ນ, ເຊິ່ງເປັນການປ່ຽນແປ" -"ງພຶດຕິກຳທີ່ສຳຄັນ ແລະ ອາດຈະເຮັດໃຫ້ຜູ້ໃຊ້ບາງຄົນແປກໃຈ." +"pip.pypa.io/en/stable/user_guide/#user-installs>`_ ເປັນຄ່າເລີ່ມຕົ້ນ, " +"ເຊິ່ງເປັນການປ່ຽນແປງພຶດຕິກຳທີ່ສຳຄັນ ແລະ ອາດຈະເຮັດໃຫ້ຜູ້ໃຊ້ບາງຄົນແປກໃຈ." #: ../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." +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 ດ້ວຍຕົນເອງຕາມທີ່ໄດ້ອະທິບາຍໄວ້." @@ -5654,10 +7710,13 @@ 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:" +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` ແລະ ການຕິດຕັ້ງແພັກເກດ. ຄຳແນະນຳນີ້ຄອບຄຸມ:" +"ຄຳແນະນຳນີ້ຈະເວົ້າເຖິງວິທີການສ້າງ ແລະ ເປີດໃຊ້ virtual environment ໂດຍໃຊ້ " +"ເຄື່ອງມືມາດຕະຖານ :ref:`venv` ແລະ ການຕິດຕັ້ງແພັກເກດ. ຄຳແນະນຳນີ້ຄອບຄຸມ:" #: ../source/guides/installing-using-pip-and-virtual-environments.rst:8 msgid "Create and activate a virtual environment" @@ -5677,19 +7736,27 @@ 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 ຂຶ້ນໄປ." +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." +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 ຂອງທ່ານ." +"ຄຳແນະນຳນີ້ໃຊ້ຄຳວ່າ **ແພັກເກດ (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." +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 ເວີຊັນທາງການຈາກ . ຫາກທ່ານໃຊ້ຕົວຈັດການແພັກເກດຂອງ ລະບົບປະຕິບັດການເພື່ອຕິດຕັ້ງ " @@ -5704,37 +7771,53 @@ 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 ເນື່ອງຈາກສາມາດຕິດຕັ້ງແພັກເກດໄດ້ຢ່າງໝັ້ນໃຈ ແລະ ມັນຈະບໍ່ໄປລົບກວນ ສະພາບແ" -"ວດລ້ອມຂອງໂຄງການອື່ນ." +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." +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``:" +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``." +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``." +"ຄ່າທີສອງແມ່ນສະຖານທີ່ທີ່ຈະສ້າງ 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." +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." +msgid "" +"You should exclude your virtual environment directory from your version " +"control system using ``.gitignore`` or similar." msgstr "" "ທ່ານຄວນຍົກເວັ້ນໂຟນເດີ virtual environment ຂອງທ່ານອອກຈາກລະບົບຄວບຄຸມເວີຊັນ (VCS) ໂດຍໃຊ້ " "``.gitignore`` ຫຼື ສິ່ງທີ່ຄ້າຍຄືກັນ." @@ -5744,42 +7827,58 @@ 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``." +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:" +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:" +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." +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 ຂອງທ່ານໄດ້." +"ໃນຂະນະທີ່ 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:" +msgid "" +"If you want to switch projects or leave your virtual environment, " +"``deactivate`` the environment:" msgstr "" -"ຫາກທ່ານຕ້ອງການສະຫຼັບໂຄງການ ຫຼື ອອກຈາກ virtual environment, ໃຫ້ ``deactivate`` (ປິດການ" -"ໃຊ້) environment ນັ້ນ:" +"ຫາກທ່ານຕ້ອງການສະຫຼັບໂຄງການ ຫຼື ອອກຈາກ 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." +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, ໃຫ້ເປີດໃຊ້ມັນຄືນໃໝ່." @@ -5789,34 +7888,45 @@ 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." +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." +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." +":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:" +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 ເປັນເວີຊັນຫຼ້າສຸດໄດ້ໂດຍຣັນຄຳສັ່" -"ງ:" +"ຕົວຕິດຕັ້ງ 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 ຂອງທ່ານ:" +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:" +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 ເປັ" -"ນເວີຊັນຫຼ້າສຸດໄດ້ໂດຍຣັນຄຳສັ່ງ:" +"ຕົວຕິດຕັ້ງ Python ສຳລັບ Windows ຈະລວມມີ pip ມາໃຫ້ແລ້ວ. ທ່ານສາມາດກວດສອບໃຫ້ແນ່ໃຈ ວ່າ pip " +"ເປັນເວີຊັນຫຼ້າສຸດໄດ້ໂດຍຣັນຄຳສັ່ງ:" #: ../source/guides/installing-using-pip-and-virtual-environments.rst:187 msgid "Afterwards, you should have the latest version of pip:" @@ -5827,7 +7937,9 @@ 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." +msgid "" +"When your virtual environment is activated, you can install packages. Use " +"the ``pip install`` command to install packages." msgstr "" "ເມື່ອ virtual environment ຂອງທ່ານຖືກເປີດໃຊ້ແລ້ວ, ທ່ານສາມາດຕິດຕັ້ງແພັກເກດໄດ້. ໃຫ້ໃຊ້ຄຳສັ່ງ " "``pip install`` ເພື່ອຕິດຕັ້ງແພັກເກດ." @@ -5837,12 +7949,15 @@ 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)`:" +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:" +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 @@ -5850,7 +7965,10 @@ 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``:" +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`` ເວີຊັນທີ່ລະບຸ:" @@ -5868,23 +7986,31 @@ 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:" +msgid "" +"Some packages have optional `extras`_. You can tell pip to install these by " +"specifying the extra in brackets:" msgstr "" -"ບາງແພັກເກດມີ `ສ່ວນເສີມ`_ ໃຫ້ເລືອກ. ທ່ານສາມາດບອກໃຫ້ pip ຕິດຕັ້ງສິ່ງເຫຼົ່ານີ້ໄດ້ ໂດຍການລະບຸສ່ວນເສີມໃນ" -"ວົງຂໍ:" +"ບາງແພັກເກດມີ `ສ່ວນເສີມ`_ ໃຫ້ເລືອກ. ທ່ານສາມາດບອກໃຫ້ 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:" +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``:" +"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:" +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:`ໂໝດນັກພັດທະນາ " "`, ເຊິ່ງໝາຍຄວາມວ່າການປ່ຽນແປງໃດໆໃນ ໂຟນເດີ " @@ -5895,54 +8021,72 @@ 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:" +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 `." +msgid "" +"For more information on supported version control systems and syntax, see " +"pip's documentation on :ref:`VCS Support `." msgstr "" -"ສຳລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບລະບົບຄວບຄຸມເວີຊັນທີ່ຮອງຮັບ ແລະ ໄວຍາກອນ, ເບິ່ງ ເອກະສານຂອງ pip ໃນສ່ວນ " -":ref:`VCS Support `." +"ສຳລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບລະບົບຄວບຄຸມເວີຊັນທີ່ຮອງຮັບ ແລະ ໄວຍາກອນ, ເບິ່ງ ເອກະສານຂອງ 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:" +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:" +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)` ເລີຍ:" +"ຫາກທ່ານມີໂຟນເດີທີ່ບັນຈຸໄຟລ໌ບີບອັດຂອງຫຼາຍໆແພັກເກດ, ທ່ານສາມາດບອກໃຫ້ 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." +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:" +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``:" +"ຫາກທ່ານຕ້ອງການດາວໂຫຼດແພັກເກດຈາກ 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:" +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`` ແທນ:" +"ຫາກທ່ານຕ້ອງການອະນຸຍາດໃຫ້ຕິດຕັ້ງແພັກເກດໄດ້ຈາກທັງ :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 @@ -5950,24 +8094,31 @@ 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:" +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 ທັງໝົດຂອງມັນ:" +"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:" +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` ທີ່ມີເນື້ອໃນດັ່ງນີ້:" +"ແທນທີ່ຈະຕິດຕັ້ງແພັກເກດເທື່ອລະອັນ, 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:" +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 @@ -5975,7 +8126,9 @@ 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:" +msgid "" +"Pip can export a list of all installed packages and their versions using the " +"``freeze`` command:" msgstr "" "Pip ສາມາດສົ່ງອອກລາຍຊື່ຂອງທຸກແພັກເກດທີ່ຕິດຕັ້ງແລ້ວ ພ້ອມກັບເວີຊັນຂອງພວກມັນ ໂດຍໃຊ້ຄຳສັ່ງ ``freeze``:" @@ -5984,45 +8137,63 @@ 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." +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 ນັ້ນ." +"ຄຳສັ່ງ ``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." +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 ແບບແຍກຕ່າງຫາກ." +"ຄຳແນະນຳນີ້ຈະເວົ້າເຖິງວິທີການຕິດຕັ້ງແພັກເກດໂດຍໃຊ້ :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." +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` ສຳລັບ ລາຍລະອຽດກ່ຽວກັບການຕິດຕັ້ງ ແລ" -"ະ ການໃຊ້ງານ." +"ຄຳແນະນຳ \"ວິທີການ\" ນີ້ກ່ຽວກັບການຕິດຕັ້ງແພັກເກດ ແລະ ການໃຊ້ :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." +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 ຂອງທ່ານ." +"ເອກະສານນີ້ໃຊ້ຄຳວ່າ **ແພັກເກດ (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` ກ່ອນທີ່ຈະນຳໃຊ້ຄຳແນະນຳໃໝ່ນີ້." +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" @@ -6033,18 +8204,25 @@ 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." +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` ທີ່ມັນໃຊ້." +"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`:" +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:" @@ -6055,16 +8233,23 @@ 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:" +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." +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}`` ແມ່ນເວີຊັນຂອງ " +"ແລະ ຈະຖືກແຕກອອກຈາກບ່ອນນັ້ນລົງໃນ site directory (ເຊັ່ນ :file:`site-packages/`) " +"ເມື່ອມີການຕິດຕັ້ງ; :file:`/` ແມ່ນ root ຂອງແຕ່ລະ ໄຟລ໌ບີບອັດ ແລະ ``{VERSION}`` ແມ່ນເວີຊັນຂອງ " "Setuptools ທີ່ລະບຸໃນ Core Metadata." #: ../source/guides/licensing-examples-and-user-scenarios.rst:74 @@ -6072,33 +8257,51 @@ 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:" +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/`; ໂດຍສະເພາະແມ່ນ:" +"ສົມມຸດວ່າ 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:" +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 ແລະ `ແຈ້ງການການ" -"ເລືອກລິຂະສິດ `__." +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`):" +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`):" @@ -6108,36 +8311,46 @@ 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):" +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`, ພວກເຮົາສາມາດກຳນົດສິ່ງນີ້ໄດ້ໃນ:" +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:" +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:" +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:" +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}`` ຄືກັບຂ້າງເທິງ, ໄຟລ໌ລິຂະສິ" -"ດຈະຖືກເກັບໄວ້ທີ່:" +"ໃນ 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:" +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}`` ຄືກັບຂ້າງເທິງ, ໄຟລ໌ລິຂະສິດຈະຖືກຕິດຕັ້ງລົງທີ່:" +"ສຸດທ້າຍ, ໃນໂຄງການທີ່ຕິດຕັ້ງແລ້ວ, ໂດຍມີ :file:`site-packages/` ເປັນ site dir ແລະ " +"``{VERSION}`` ຄືກັບຂ້າງເທິງ, ໄຟລ໌ລິຂະສິດຈະຖືກຕິດຕັ້ງລົງທີ່:" #: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" @@ -6152,185 +8365,285 @@ 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." +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." +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." +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 ຂອງ ໂຟນເດີໂຄງການ, ເຊິ່ງຈະຖືກລວມເຂົ້າໄປໂດຍເຄື່ອງມືເຮັດແພັກເກດແ" -"ບບອັດຕະໂນມັດ." +"ຢ່າງໃດກໍ່ຕາມ, ມັນຍັງເປັນການດີທີ່ຈະລະບຸ ``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)." +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 `__ ຈຶ່ງເປັນທາງເລືອກທີ່ດີເລີດ, ເພາະມັ" -"ນງ່າຍດາຍ, ຖືກໃຊ້ຢ່າງແຜ່ຫຼາຍ ແລະ ອະນຸຍາດໃຫ້ໃຜກໍ່ຕາມເຮັດຫຍັງກໍ່ໄດ້ກັບຜົນງານຂອງທ່ານ (ຍົກເວັ້ນການຟ້ອງຮ້ອ" -"ງທ່ານ, ເຊິ່ງທ່ານເອງກໍ່ຄົງບໍ່ຕ້ອງການແບບນັ້ນ)." +"ຫຼື ປັບປຸງຜົນງານຂອງທ່ານ `__, ເຊິ່ງນັ້ນອາດຈະເປັນສິ່ງທີ່ *ກົງກັນຂ້າມ* " +"ກັບສິ່ງທີ່ທ່ານຕ້ອງການແທ້ໆ. ດັ່ງນັ້ນ `ລິຂະສິດ 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` ຂອງທ່ານ (ຫາກເຄື່ອງມືເຮັດແພັກເກດຮອງຮັບ), ຫຼື ໃນສ່ວນການຕັ້ງຄ່າຂອງມັນ. " -"ເທົ່ານີ້ກໍ່ສຳເລັດແລ້ວ!" +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 `__." +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." +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." +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 ໃນໂຄງການຂອງທ່ານຢູ່ແລ້ວ, ທ່ານພຽງແຕ່ ຕ້ອງປັບປ່ຽນເລັກນ້ອຍເພື່ອໃຊ້" -"ປະໂຫຍດຈາກຟັງຊັນໃໝ່ນີ້." +"ຫາກທ່ານມີໄຟລ໌ລິຂະສິດ ແລະ 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 `__ ເພື່ອຫາຊື່ທີ່ກົງກັບລິຂະສິດທີ່ໃຊ້." +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." +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` ຫຼື ໃນໄຟລ໌ຕັ້ງຄ່າເຄື່ອງມືຂອງທ່ານ." +"ກວດສອບໃຫ້ແນ່ໃຈວ່າໄດ້ລະບຸລາຍຊື່ໄຟລ໌ລິຂະສິດພາຍໃຕ້ ``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 ລິຂະສິດແບບເກົ່າ ໂດຍອັດຕະໂນມັດ; ໃຫ້ກວດສອບເອກະສານຂອງເຄື່ອງມືຂອງທ່ານ ສຳລັບຂໍ້ມູນເພີ່" -"ມເຕີມ." +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." +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 ທີ່ຖືກລວມມາໃ" -"ນຕົວ ຫຼື ໄຟລ໌ທີ່ສຳເນົາມາຈາກຊອບແວໂອເພນຊອດ ອື່ນໆ, ທ່ານສາມາດສ້າງຂໍ້ຄວາມລິຂະສິດເພື່ອອະທິບາຍລິຂະສິດທີ່ກ່ຽ" -"ວຂ້ອງ ແລະ ຄວາມສຳພັນລະຫວ່າງພວກມັນໄດ້." +"ຫາກໂຄງການຂອງທ່ານລວມມີໂໂຄ້ດຈາກບ່ອນອື່ນທີ່ຢູ່ພາຍໃຕ້ລິຂະສິດທີ່ຕ່າງກັນ, ເຊັ່ນ 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`` ໝາຍຄວາມວ່" -"າ ສາມາດເລືອກໃຊ້ລິຂະສິດ *ໃດໜຶ່ງ* ກໍ່ໄດ້ (ຕົວຢ່າງ: ທ່ານຕ້ອງການໃຫ້ຜູ້ໃຊ້ເລືອກລະຫວ່າງຫຼາຍລິຂະສິດ). ທ່ານສ" -"າມາດໃຊ້ ວົງເລັບ (``()``) ເພື່ອຈັດກຸ່ມຂໍ້ຄວາມໃຫ້ຄອບຄຸມສະຖານະການທີ່ຊັບຊ້ອນໄດ້." +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." +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`` (ຕາຕະລາງ ``[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." +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` (ຫາກເຄື່ອງມືຂອງທ່ານຮອງຮັບ)." +"ນອກຈາກນັ້ນ, ກວດສອບໃຫ້ແນ່ໃຈວ່າທ່ານໄດ້ເພີ່ມເນື້ອໃນລິຂະສິດສະບັບເຕັມຂອງທຸກໆ " +"ລິຂະສິດເປັນໄຟລ໌ໄວ້ບ່ອນໃດບ່ອນໜຶ່ງໃນຄັງເກັບໂຄງການ. ລະບຸເສັ້ນທາງທີ່ກ່ຽວຂ້ອງ ຫຼື ຮູບແບບ 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." +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-" +"``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." +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." +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." +"ໄຟລ໌ 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``." +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:" +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 @@ -6338,33 +8651,42 @@ msgid "plain text" msgstr "ຂໍ້ຄວາມທຳມະດາ (plain text)" #: ../source/guides/making-a-pypi-friendly-readme.rst:17 -msgid "`reStructuredText `_ (without Sphinx extensions)" +msgid "" +"`reStructuredText `_ (without " +"Sphinx extensions)" msgstr "" -"`reStructuredText `_ (ໂດຍບໍ່ມີສ່ວນຂະຫຍາ" -"ຍຂອງ Sphinx)" +"`reStructuredText `_ " +"(ໂດຍບໍ່ມີສ່ວນຂະຫຍາຍຂອງ Sphinx)" #: ../source/guides/making-a-pypi-friendly-readme.rst:18 -msgid "Markdown (`GitHub Flavored Markdown `_ by default, or `CommonMark `_)" +msgid "" +"Markdown (`GitHub Flavored Markdown `_ by " +"default, or `CommonMark `_)" msgstr "" -"Markdown (ເລີ່ມຕົ້ນແມ່ນ `GitHub Flavored Markdown " -"`_, ຫຼື `CommonMark `_)" +"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." +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` ຂອງທ່ານ." +"ໂດຍທົ່ວໄປແລ້ວ ຄວນບັນທຶກໄຟລ໌ 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." +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`." +"ເພື່ອລວມເອົາເນື້ອໃນຂອງ README ເປັນຄຳອະທິບາຍແພັກເກດ, ໃຫ້ກຳນົດ metadata ``Description`` " +"ແລະ ``Description-Content-Type`` ຂອງໂຄງການ, " +"ເຊິ່ງປົກກະຕິແລ້ວຈະຢູ່ໃນໄຟລ໌ :file:`setup.py`." #: ../source/guides/making-a-pypi-friendly-readme.rst:33 msgid ":ref:`description-optional`" @@ -6375,13 +8697,19 @@ 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``." +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``." +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`` ທີ່ຮອງຮັບສຳລັບພາສາ " @@ -6389,10 +8717,12 @@ msgstr "" "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:" +msgid "" +"If you're using GitHub-flavored Markdown to write a project's description, " +"ensure you upgrade the following tools:" msgstr "" -"ຫາກທ່ານໃຊ້ GitHub-flavored Markdown ໃນການຂຽນຄຳອະທິບາຍໂຄງການ, ກວດສອບໃຫ້ແນ່ໃຈວ່າໄດ້ອັບເ" -"ກຣດເຄື່ອງມືຕໍ່ໄປນີ້:" +"ຫາກທ່ານໃຊ້ GitHub-flavored Markdown ໃນການຂຽນຄຳອະທິບາຍໂຄງການ, " +"ກວດສອບໃຫ້ແນ່ໃຈວ່າໄດ້ອັບເກຣດເຄື່ອງມືຕໍ່ໄປນີ້:" #: ../source/guides/making-a-pypi-friendly-readme.rst:60 msgid "The minimum required versions of the respective tools are:" @@ -6411,12 +8741,16 @@ 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 ຂອງໂຄງການ:" +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:" +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:" @@ -6426,13 +8760,22 @@ 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." +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 ແທນ." +"ຫາກ 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\".``\"." +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 `_; version 1.12.0 or higher is required:" +msgid "" +"Install the latest version of `twine `_; " +"version 1.12.0 or higher is required:" msgstr "" -"ຕິດຕັ້ງ `twine `_ ເວີຊັນຫຼ້າສຸດ; ຕ້ອງການເວີຊັນ 1.12.0 ຫຼື ສູ" -"ງກວ່າ:" +"ຕິດຕັ້ງ `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`." +msgid "" +"Build the sdist and wheel for your project as described " +"under :ref:`Packaging Your Project`." msgstr "" "ບິວ sdist ແລະ wheel ສຳລັບໂຄງການຂອງທ່ານຕາມທີ່ໄດ້ອະທິບາຍໄວ້ໃນ :ref:`Packaging Your " "Project`." @@ -6461,10 +8809,13 @@ 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``." +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``." +"ຄຳສັ່ງນີ້ຈະລາຍງານທຸກບັນຫາໃນການສະແດງຜົນ README ຂອງທ່ານ. ຫາກ markup ສະແດງຜົນໄດ້ປົກກະຕິ, " +"ຄຳສັ່ງຈະສະແດງຂໍ້ຄວາມວ່າ ``Checking distribution FILENAME: Passed``." #: ../source/guides/migrating-to-pypi-org.rst:6 msgid "Migrating to PyPI.org" @@ -6478,11 +8829,15 @@ 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``." +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``." +":term:`pypi.org` ແມ່ນເວີຊັນໃໝ່ຂອງ PyPI ທີ່ຖືກຂຽນຂຶ້ນມາໃໝ່ເພື່ອແທນທີ່ ລະບົບ PyPI ແບບເກົ່າ. " +"ມັນແມ່ນເວີຊັນມາດຕະຖານທີ່ທຸກຄົນຄວນ ຈະໃຊ້ງານ. ນີ້ຄືເຄື່ອງມື ແລະ " +"ຂັ້ນຕອນຕ່າງໆທີ່ຈຳເປັນໃນການເຮັດວຽກຮ່ວມກັບ ``PyPI.org``." #: ../source/guides/migrating-to-pypi-org.rst:16 msgid "Publishing releases" @@ -6493,19 +8848,25 @@ 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." +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." +"ການອັບໂຫຼດຜ່ານ ``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." +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 ສຳລັບການອັບໂຫຼດ ແມ່ນການກວດສອບໃຫ້ແນ່ໃຈ ວ່າທ່ານກຳລັງໃຊ້ເຄື່ອງ" -"ມືອັບໂຫຼດເວີຊັນໃໝ່ພຽງພໍ." +"ວິທີທີ່ແນະນຳໃນການຍ້າຍໄປໃຊ້ PyPI.org ສຳລັບການອັບໂຫຼດ ແມ່ນການກວດສອບໃຫ້ແນ່ໃຈ " +"ວ່າທ່ານກຳລັງໃຊ້ເຄື່ອງມືອັບໂຫຼດເວີຊັນໃໝ່ພຽງພໍ." #: ../source/guides/migrating-to-pypi-org.rst:26 -msgid "The default upload settings switched to ``pypi.org`` in the following versions:" +msgid "" +"The default upload settings switched to ``pypi.org`` in the following " +"versions:" msgstr "ການຕັ້ງຄ່າການອັບໂຫຼດມາດຕະຖານໄດ້ປ່ຽນເປັນ ``pypi.org`` ໃນເວີຊັນຕໍ່ໄປນີ້:" #: ../source/guides/migrating-to-pypi-org.rst:28 @@ -6533,52 +8894,71 @@ 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:" +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`. ຫາກທ່ານເຫັນ ໄຟລ໌ທີ່ມີຂໍ້ຄວາມແບບນີ້:" +"ນອກຈາກການກວດສອບວ່າທ່ານໃຊ້ເຄື່ອງມືເວີຊັນໃໝ່ແລ້ວ, ທ່ານຍັງຕ້ອງກວດສອບ " +"ໃຫ້ແນ່ໃຈວ່າທ່ານບໍ່ໄດ້ຕັ້ງຄ່າເຄື່ອງມືໃຫ້ໄປຂຽນທັບ 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." +msgid "" +"Then simply delete the line starting with ``repository`` and you will use " +"your upload tool's default URL." msgstr "" -"ໃຫ້ລຶບແຖວທີ່ຂຶ້ນຕົ້ນດ້ວຍ ``repository`` ອອກ ແລະ ທ່ານກໍ່ຈະໃຊ້ URL ມາດຕະຖານຂອງເຄື່ອງມືອັບໂຫຼດຂອງທ່" -"ານ." +"ໃຫ້ລຶບແຖວທີ່ຂຶ້ນຕົ້ນດ້ວຍ ``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:" +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/`` ແທນ:" +"ຫາກດ້ວຍເຫດຜົນໃດໜຶ່ງ ທ່ານບໍ່ສາມາດອັບເກຣດເວີຊັນຂອງເຄື່ອງມືໃຫ້ເປັນເວີຊັນ ທີ່ໃຊ້ 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.)" +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 ການອັບໂຫຼດ ຂອງເຊີເວີແບບເກົ່າ ໂ" -"ດຍໃຊ້ລະບົບເຊີເວີໃໝ່.)" +"(``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." +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." +"ການລົງທະບຽນຊື່ແພັກເກດລ່ວງໜ້າຢ່າງຊັດເຈນດ້ວຍຄຳສັ່ງ ``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::" +msgid "" +"As a result, attempting explicit registration after switching to using " +"PyPI.org for uploads will give the following error message::" msgstr "" -"ດັ່ງນັ້ນ, ຫາກພະຍາຍາມລົງທະບຽນຢ່າງຊັດເຈນ ຫຼັງຈາກປ່ຽນໄປໃຊ້ PyPI.org ໃນການອັບໂຫຼດ ຈະໄດ້ຮັບຂໍ້ຄວາມຜິ" -"ດພາດດັ່ງນີ້::" +"ດັ່ງນັ້ນ, ຫາກພະຍາຍາມລົງທະບຽນຢ່າງຊັດເຈນ ຫຼັງຈາກປ່ຽນໄປໃຊ້ 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 "" -"ວິທີແກ້ໄຂແມ່ນໃຫ້ຂ້າມຂັ້ນຕອນການລົງທະບຽນ, ແລະ ດຳເນີນການອັບໂຫຼດ ໄຟລ໌ໂດຍກົງເລີຍ." +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 @@ -6586,34 +8966,48 @@ 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:" +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/``, ຕົວຢ່າງ:" +"`_ ແທນ. ຫາກທ່ານໃຊ້ 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." +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``." +"``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." +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, ແລະ ອາດຈະຖືກປິດການນຳໃຊ້ໃນອະນາຄົດ." +"ເຖິງວ່າ ``pypi.python.org`` ອາດຈະຍັງຖືກນຳໃຊ້ໃນລິ້ງຈາກເອກະສານອື່ນໆຂອງ PyPA ແລະ ອື່ນໆ, " +"ແຕ່ສ່ວນຕິດຕໍ່ຜູ້ໃຊ້ມາດຕະຖານສຳລັບການເລືອກເບິ່ງແພັກເກດແມ່ນ ``pypi.org``. ໂດເມນ " +"pypi.python.org ໃນຕອນນີ້ຈະຖືກປ່ຽນເສັ້ນທາງໄປຫາ pypi.org, ແລະ " +"ອາດຈະຖືກປິດການນຳໃຊ້ໃນອະນາຄົດ." #: ../source/guides/migrating-to-pypi-org.rst:134 msgid "Downloading packages" @@ -6628,10 +9022,12 @@ 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." +msgid "" +"``pypi.org`` provides a fully functional interface for logged in users to " +"manage their published packages and releases." msgstr "" -"``pypi.org`` ມີສ່ວນຕິດຕໍ່ຜູ້ໃຊ້ທີ່ເຮັດວຽກໄດ້ຢ່າງເຕັມຮູບແບບສຳລັບຜູ້ໃຊ້ທີ່ເຂົ້າສູ່ລະບົບ ເພື່ອຈັດການແພັກເກດ ແລ" -"ະ ລຸ້ນທີ່ເຂົາເຈົ້າເຜີຍແຜ່." +"``pypi.org`` ມີສ່ວນຕິດຕໍ່ຜູ້ໃຊ້ທີ່ເຮັດວຽກໄດ້ຢ່າງເຕັມຮູບແບບສຳລັບຜູ້ໃຊ້ທີ່ເຂົ້າສູ່ລະບົບ ເພື່ອຈັດການແພັກເກດ " +"ແລະ ລຸ້ນທີ່ເຂົາເຈົ້າເຜີຍແຜ່." #: ../source/guides/modernize-setup-py-project.rst:6 msgid "How to modernize a ``setup.py`` based project?" @@ -6642,25 +9038,35 @@ 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`." +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`." +"ຂໍແນະນຳຢ່າງຍິ່ງໃຫ້ມີໄຟລ໌ :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." +msgid "" +"Note that it has influence on the build isolation feature of pip, see below." msgstr "" -"ໝາຍເຫດ ມັນມີຜົນຕໍ່ຄຸນສົມບັດການແຍກສ່ວນການສ້າງ (build isolation) ຂອງ pip, ເບິ່ງລາຍລະອຽດດ້ານລຸ່" -"ມ." +"ໝາຍເຫດ ມັນມີຜົນຕໍ່ຄຸນສົມບັດການແຍກສ່ວນການສ້າງ (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:" +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. ເຖິງຢ່າງໃດກໍຕາມ, ຄຳສັ່ງຕໍ່ໄປນີ້ແມ່ນຖືກຍົກເລີກແລ້ວ ແລະ **ຫ້າມ** ນຳໃຊ້ອີກຕໍ່ໄປ, ແລະ ຄວນໃຊ້ຄ" -"ຳສັ່ງທົດແທນທີ່ແນະນຳແທນ:" +"ບໍ່, ໄຟລ໌ :file:`setup.py` ຍັງສາມາດມີຢູ່ໃນໂຄງການທີ່ອີງໃສ່ :ref:`setuptools` " +"ແບບທັນສະໄໝໄດ້. ໄຟລ໌ :term:`setup.py` ແມ່ນໄຟລ໌ການຕັ້ງຄ່າທີ່ຖືກຕ້ອງສຳລັບ setuptools " +"ທີ່ຂຽນດ້ວຍພາສາ Python. ເຖິງຢ່າງໃດກໍຕາມ, ຄຳສັ່ງຕໍ່ໄປນີ້ແມ່ນຖືກຍົກເລີກແລ້ວ ແລະ **ຫ້າມ** " +"ນຳໃຊ້ອີກຕໍ່ໄປ, ແລະ ຄວນໃຊ້ຄຳສັ່ງທົດແທນທີ່ແນະນຳແທນ:" #: ../source/guides/modernize-setup-py-project.rst:36 msgid "``python -m build``" @@ -6683,22 +9089,29 @@ 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:" +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]`` ດັ່ງນີ້:" +"ໃນ :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." +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)` ສຳລັບໂຄງການນີ້." +"ນີ້ແມ່ນວິທີມາດຕະຖານໃນການບອກໃຫ້ :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*." +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*." +"ໝາຍເຫດ ການມີໄຟລ໌ :file:`pyproject.toml` (ເຖິງແມ່ນວ່າຈະເປັນໄຟລ໌ເປົ່າ) " +"ຈະເຮັດໃຫ້ :ref:`pip` ປ່ຽນພຶດຕິກຳມາດຕະຖານໄປໃຊ້ *build isolation*." #: ../source/guides/modernize-setup-py-project.rst:68 msgid ":ref:`distributing-packages`" @@ -6717,16 +9130,20 @@ 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)?" +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 `." +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)`." +"ນອກຈາກ 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 @@ -6735,24 +9152,30 @@ 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` ຍັງຄືເກົ່າ):" +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." +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`` ແລະ ເລີ່ມການສ້າງໃນສະພາບແວດລ້ອມນັ້ນ." +"ໂດຍທົ່ວໄປແລ້ວ ຕົວສ້າງສ່ວນໜ້າຈະສ້າງສະພາບແວດລ້ອມສະເໝືອນຊົ່ວຄາວ " +"ເພື່ອຕິດຕັ້ງສະເພາະສິ່ງທີ່ຈຳເປັນໃນການສ້າງທີ່ລະບຸໄວ້ພາຍໃຕ້ ``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 "" -"ສຳລັບບາງໂຄງການ ການແຍກສ່ວນແບບນີ້ອາດບໍ່ເປັນທີ່ຕ້ອງການ ແລະ ສາມາດປິດການນຳໃຊ້ໄດ້ດັ່ງນີ້:" +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``" @@ -6767,7 +9190,9 @@ 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`." +msgid "" +"All static metadata can optionally be moved to a ``[project]`` table " +"in :file:`pyproject.toml`." msgstr "" "ຂໍ້ມູນເມຕາເດຕາແບບສະແຕຕິກ (static metadata) ທັງໝົດສາມາດຍ້າຍໄປໄວ້ໃນຕາຕະລາງ " "``[project]`` ໃນໄຟລ໌ :file:`pyproject.toml` ໄດ້." @@ -6777,17 +9202,21 @@ 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." +msgid "" +"Read :ref:`pyproject-project-table` for the full specification of the " +"content allowed in the ``[project]`` table." msgstr "" -"ອ່ານ :ref:`pyproject-project-table` ສຳລັບລາຍລະອຽດທັງໝົດຂອງເນື້ອຫາທີ່ອະນຸຍາດໃຫ້ມີໃນຕາຕະລາ" -"ງ ``[project]``." +"ອ່ານ :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." +msgid "" +"If some packaging metadata fields are not static they need to be listed as " +"``dynamic`` in this ``[project]`` table." msgstr "" "ຖ້າບາງຟີວຂອງຂໍ້ມູນເມຕາເດຕາບໍ່ແມ່ນແບບຄົງທີ່, ພວກມັນຈະຕ້ອງຖືກລະບຸເປັນ ``dynamic`` ໃນຕາຕະລາງ " "``[project]`` ນີ້." @@ -6805,16 +9234,22 @@ 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``." +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:" +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` ແລ້ວກໍຕາມ. ໄຟລ໌ນີ້ສາມາດມີເນື້ອຫາໜ້ອຍທີ່ສຸດດັ່ງນີ້:" +"ມັນບໍ່ເປັນຫຍັງເລີຍທີ່ຈະປະໄຟລ໌ :file:`setup.py` ໄວ້ໃນຊອສໂຄ້ດຂອງໂຄງການ " +"ເຖິງແມ່ນວ່າເນື້ອຫາທັງໝົດຈະຖືກຍ້າຍໄປທີ່ :file:`pyproject.toml` ແລ້ວກໍຕາມ. " +"ໄຟລ໌ນີ້ສາມາດມີເນື້ອຫາໜ້ອຍທີ່ສຸດດັ່ງນີ້:" #: ../source/guides/modernize-setup-py-project.rst:246 msgid ":ref:`pyproject-toml-spec`" @@ -6829,37 +9264,67 @@ 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``)." +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`` ລຸ້ນຂອງໂຄງການທີ່ເໝາະສົມໃນເວລາເຮັດວຽກ (ໂດຍໃຊ້ " +"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." +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." +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`` ປົກກະຕິ." +"``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 ''`` ເພື່ອເອີ້ນໃຊ້ຈຸດເລີ່ມຕົ້ນຂອງແອັບພລິເຄຊັນໂດຍກົງ." +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" @@ -6870,11 +9335,17 @@ 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." +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 ບໍລິສຸດ." +"ໜຶ່ງໃນຄຸນສົມບັດຂອງຕົວແປພາສາ CPython ແມ່ນ ນອກຈາກຈະອະນຸຍາດໃຫ້ປະມວນຜົນໂຄ້ດ Python ແລ້ວ, " +"ມັນຍັງມີ C API ທີ່ຫຼາກຫຼາຍສຳລັບໃຫ້ຊອບແວອື່ນນຳໃຊ້. ການນຳໃຊ້ C API " +"ທີ່ພົບເລື້ອຍທີ່ສຸດແມ່ນການສ້າງສ່ວນຂະຫຍາຍ C (C extensions) ທີ່ສາມາດ import ໄດ້ " +"ເພື່ອເຮັດໃນສິ່ງທີ່ເຮັດໄດ້ຍາກໃນໂຄ້ດ Python ບໍລິສຸດ." #: ../source/guides/packaging-binary-extensions.rst:18 msgid "An overview of binary extensions" @@ -6885,43 +9356,82 @@ 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 "" -"ກໍລະນີການນຳໃຊ້ທົ່ວໄປສຳລັບສ່ວນຂະຫຍາຍໄບນາຣີ ສາມາດແບ່ງອອກເປັນສາມປະເພດຫຼັກດັ່ງນີ້:" +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." +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 `_." +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``." +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)." +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 ໄດ້ໃນລະຫວ່າງການເຮັດວຽກທີ່ໃຊ້" -"ເວລາດົນ." +"ຄຸນສົມບັດທີ່ໂດດເດັ່ນຂອງສ່ວນຂະຫຍາຍ 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." +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 " "ແມ່ນລວມເອົາທັງສາມກໍລະນີການນຳໃຊ້." @@ -6931,153 +9441,266 @@ 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." +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) ແຍກກັນສຳລັບແຕ່ລະແພລັດຟອມ." +"ຂໍ້ເສຍຫຼັກຂອງການໃຊ້ສ່ວນຂະຫຍາຍໄບນາຣີແມ່ນ ມັນເຮັດໃຫ້ການແຈກຢາຍຊອບແວໃນພາຍຫຼັງເຮັດໄດ້ຍາກຂຶ້ນ. " +"ຂໍ້ດີຂອງ 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" +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" +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" +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." +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." +"ຖ້າຂຽນດ້ວຍມືເອງ, ຈະເຮັດໃຫ້ການບຳລຸງຮັກສາຍາກຂຶ້ນ ເພາະຜູ້ບຳລຸງຮັກສາຕ້ອງຮູ້ທັງ 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." +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 ບໍລິສຸດໄວ້ສຳຮອງ, ຈະເຮັດໃຫ້ການບຳລຸງຮັກສາຍາກຂຶ້ນ ເພາະຕ້ອງມີການປ່ຽນແປງສອງບ່ອ" -"ນ ແລະ ເຮັດໃຫ້ການທົດສອບມີຄວາມຊັບຊ້ອນຫຼາຍຂຶ້ນ." +"ຖ້າມີການຂຽນ 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)." +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 ໂດຍກົງ) ມັກຈະ" -"ໃຊ້ບໍ່ໄດ້ກັບໂມດູນສ່ວນຂະຫຍາຍ." +"ຂໍ້ເສຍອີກຢ່າງໜຶ່ງແມ່ນ ກົນໄກການ 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 "" -"ເມື່ອໂມດູນສ່ວນຂະຫຍາຍຖືກໃຊ້ພຽງເພື່ອໃຫ້ໂຄ້ດເຮັດວຽກໄວຂຶ້ນ, ຄວນພິຈາລະນາທາງເລືອກອື່ນໆດັ່ງນີ້:" +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." +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 ມີໂຄງສ້າງຂໍ້ມູນ ແລະ ອັນກໍຣິທຶມທີ່ຖືກ" -"ປັບແຕ່ງມາຢ່າງດີແລ້ວ. ບາງຄັ້ງການເລືອກໃຊ້ສິ່ງທີ່ມີຢູ່ແລ້ວອາດຊ່ວຍໃຫ້ບໍ່ຕ້ອງສ້າງໂມດູນເລັ່ງຄວາມໄວເອງ." +"ຊອກຫາທາງເລືອກທີ່ຖືກປັບແຕ່ງມາແລ້ວ. ໄລບຣາຣີມາດຕະຖານຂອງ 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 ມາດຕະຖາ" -"ນ." +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++)." +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." +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) ເພື່ອເພີ່ມຄວາມໄວ." +"`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 ດ້ວຍມືແມ່ນເປັນໜ້າວຽກທີ່ໜ້າເບື່ອ, ດັ່ງນັ້ນຄວນພິຈາລະນາທາງເລືອກອື່ນໆ." +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." +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." +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." +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 ເປັນເລື່ອງງ່າຍ." +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." +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." +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 ເທົ່ານັ້ນ." +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." +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." +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 ໄປໃຊ້ໄດ້." +"ໃນບາງກໍລະນີ, ອາດຈະດີກວ່າທີ່ຈະຂຽນໄລບຣາຣີ 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 `." +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 :)" +msgid "" +"FIXME: Elaborate that all this is one of the reasons why you probably " +"*don't* want to handcode your extension modules :)" msgstr "" "FIXME: ອະທິບາຍວ່າທັງໝົດນີ້ແມ່ນເຫດຜົນທີ່ທ່ານອາດຈະ *ບໍ່* ຢາກຂຽນໂມດູນສ່ວນຂະຫຍາຍດ້ວຍມືເອງ :)" @@ -7112,19 +9735,30 @@ 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." +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." +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." +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" @@ -7139,19 +9773,32 @@ 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`." +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` ສຳລັບທຸກແພລັດຟອມ" -"ທີ່ທ່ານຕ້ອງການຮອງຮັບ." +"ຖ້າທ່ານວາງແຜນທີ່ຈະແຈກຢາຍສ່ວນຂະຫຍາຍຂອງທ່ານ, ທ່ານຄວນຈັດຕຽມ :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::" +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 ທີ່ທ່ານຕ້ອງສ້າງແມ່ນຜົນຄູນຂອງ::" +"ສຳລັບສ່ວນຂະຫຍາຍສ່ວນໃຫຍ່, ທ່ານຈະຕ້ອງສ້າງ 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." +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 ທີ່ທ່ານຕ້ອງຈັດຕຽມໄດ້ຢ່າງຫຼວງຫຼາຍ." @@ -7160,18 +9807,37 @@ 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) ທີ່ເໝາະສົມ." +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." +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``." +"ຂໍ້ຄວນລະວັງ: ຖ້າທ່ານໃຊ້ 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." +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 @@ -7179,25 +9845,39 @@ 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 ເກົ່າໆ." +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 ແມ່ນຂຶ້ນກັບລະບົບເປົ້າໝາຍຕ່ຳສຸດທີ່ກຳນົດໄວ້." +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 `." +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 ບໍລິສຸດ." @@ -7206,7 +9886,12 @@ 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." +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 @@ -7218,16 +9903,27 @@ 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 "" -"ການພັດທະນາ ແລະ ແຈກຢາຍໂມດູນສ່ວນຂະຫຍາຍແບບຂ້າມແພລັດຟອມແມ່ນເລື່ອງທີ່ຊັບຊ້ອນ." +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." +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 @@ -7235,13 +9931,17 @@ 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:" +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, ເບິ່ງບົດຄວ" -"າມຕໍ່ໄປນີ້:" +"ສຳລັບຄຳອະທິບາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບວິທີທີ່ CPython ໃຊ້ໂມດູນສ່ວນຂະຫຍາຍໃນລະບົບ Debian, " +"ເບິ່ງບົດຄວາມຕໍ່ໄປນີ້:" #: ../source/guides/packaging-binary-extensions.rst:403 -msgid "`What are (c)python extension modules? `_" +msgid "" +"`What are (c)python extension modules? `_" msgstr "`ໂມດູນສ່ວນຂະຫຍາຍ (c)python ແມ່ນຫຍັງ?`" #: ../source/guides/packaging-binary-extensions.rst:404 @@ -7249,7 +9949,9 @@ msgid "`Releasing the gil `_" msgstr "`ການປ່ອຍ GIL`" #: ../source/guides/packaging-binary-extensions.rst:405 -msgid "`Writing cpython extension modules using C++ `_" +msgid "" +"`Writing cpython extension modules using C++ `_" msgstr "`ການຂຽນໂມດູນສ່ວນຂະຫຍາຍ cpython ໂດຍໃຊ້ C++`" #: ../source/guides/packaging-binary-extensions.rst:408 @@ -7257,13 +9959,20 @@ 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." +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." +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." @@ -7273,10 +9982,15 @@ 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:" +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 ຊ່ວຍໃຫ້ທ່ານສາມາດແບ່ງແພັກເກດຍ່ອຍ ແລະ ໂມດູນພາຍໃນແພັກເກດດຽວ ອອກເປັນຫຼາຍໆຊຸ" -"ດແຈກຢາຍທີ່ແຍກກັນ." +"ແພັກເກດ Namespace ຊ່ວຍໃຫ້ທ່ານສາມາດແບ່ງແພັກເກດຍ່ອຍ ແລະ ໂມດູນພາຍໃນແພັກເກດດຽວ " +"ອອກເປັນຫຼາຍໆຊຸດແຈກຢາຍທີ່ແຍກກັນ." #: ../source/guides/packaging-namespace-packages.rst:26 msgid "And you use this package in your code like so::" @@ -7291,27 +10005,40 @@ 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 ມີປະໂຫຍດສຳລັບກຸ່ມແພັກເກດຂະໜາດໃຫຍ່ທີ່ມີຄວາມກ່ຽວຂ້ອງກັນແບບຫ່າງໆ." +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 ເຊິ່ງວິທີຫຼັງນັ້ນບໍ່ແນະນຳໃຫ້ໃຊ້:" +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``." +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`_." +msgid "" +"Use `legacy namespace packages`_. This comprises `pkgutil-style namespace " +"packages`_ and `pkg_resources-style namespace packages`_." msgstr "" "ໃຊ້ `legacy namespace packages`. ວິທີນີ້ລວມມີແບບ pkgutil ແລະ ແບບ pkg_resources." @@ -7320,18 +10047,30 @@ 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 `):" +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." +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`` ຊ່ວຍໃຫ້ຕົວສ້າງສ່ວນຫຼັງສ່ວນໃຫຍ່ຄົ້ນຫາແພັກເກດໄດ້ໂດຍອັດຕະໂນມັດ." +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`:" @@ -7342,37 +10081,54 @@ 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." +msgid "" +":ref:`setuptools` will search the directory structure for implicit namespace " +"packages by default." msgstr "" -"ໂດຍມາດຕະຖານແລ້ວ :ref:`setuptools` ຈະຄົ້ນຫາ implicit namespace packages ຈາກໂຄງສ້າງ" -"ໂຟນເດີ." +"ໂດຍມາດຕະຖານແລ້ວ :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`_." +msgid "" +"A complete working example of two native namespace packages can be found in " +"the `native namespace package example project`_." msgstr "" -"ຕົວຢ່າງການເຮັດວຽກທີ່ສົມບູນຂອງ native namespace packages ສອງອັນ ສາມາດເບິ່ງໄດ້ໃນໂຄງການຕົວຢ່າ" -"ງ." +"ຕົວຢ່າງການເຮັດວຽກທີ່ສົມບູນຂອງ 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 ເຂົ້າກັນໄດ້ດີ, ທ່ານສາມາດໃຊ້ທັງສອງແບບຮ່ວມກັນໄດ້." +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." +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." +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." +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 @@ -7380,28 +10136,42 @@ 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." +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:" +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:" +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` ນີ້." +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`_." +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 @@ -7409,72 +10179,121 @@ 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)." +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." +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." +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:" +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`:" +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``." +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`." +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" +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." +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." +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." +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`_ ໃສ່ໂຄງການໃດໜຶ່ງທີ່ມີຢູ່ກ່ອນແລ້ວໄດ້, ຖ້າທ່ານເປັນເຈົ້າຂອງມັນ." +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 ແບບເກົ່າ, ມັນຫຼ້າສະໄໝແລ້ວ ແລະ ຄວນປ່ຽນມາໃຊ້ວິທີໃໝ່ນີ້." +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! 🚀" @@ -7485,26 +10304,42 @@ 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 ໃຫ້ຖືກຕ້ອງ." +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." +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." +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 ປົກກະຕິ)." +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." +msgid "" +"For security reasons, you must require `manual approval `_ on each run for the ``pypi`` environment." msgstr "" "ເພື່ອຄວາມປອດໄພ, ທ່ານຄວນຕັ້ງຄ່າໃຫ້ມີການອະນຸມັດດ້ວຍມື (manual approval) ສຳລັບ environment " "``pypi``." @@ -7514,7 +10349,9 @@ 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." +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/``." @@ -7523,38 +10360,52 @@ 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 ນີ້ເຮັດວຽກ:" +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." +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." +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:" +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 ໃຫ້ແຕກຕ່າງກັນ." +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 ລຸ້ນໃໝ່ສຸດ." +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:" +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 @@ -7562,13 +10413,21 @@ 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." +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 ເທົ່ານັ້ນ." +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" @@ -7579,12 +10438,20 @@ 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." +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." +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) ໃຫ້ໂດຍອັດຕະໂນມັດ." @@ -7593,11 +10460,16 @@ 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:" +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." +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 @@ -7605,7 +10477,8 @@ 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." +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 @@ -7613,17 +10486,26 @@ 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 ໃຫ້ໂດຍອັດຕະໂນມັດ." +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." +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." +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 @@ -7648,9 +10530,9 @@ 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`." +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" @@ -7661,12 +10543,20 @@ 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 ຫຼາຍໆລຸ້ນ." +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." +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 @@ -7674,46 +10564,77 @@ 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." +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." +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:" +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." +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)." +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." +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 ດ້ວຍຊອສໂຄ້ດດຽວ, ມີຫຼາຍທາງເລືອກ." +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_." +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 ຂອງລຸ້ນໃດລຸ້ນໜຶ່ງ." +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." @@ -7724,20 +10645,37 @@ 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." +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 ເພີ່ມຂຶ້ນ." +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." +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 @@ -7749,46 +10687,76 @@ 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." +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 ຈຶ່ງອາດເປັນເລື່ອງຍາກ." +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." +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." +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." +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." +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." +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)." +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 @@ -7796,41 +10764,75 @@ msgid "appveyor.yml" msgstr "appveyor.yml" #: ../source/guides/supporting-windows-using-appveyor.rst:67 -msgid "This file can be downloaded from `here `__." +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." +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)." +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``)." +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 ແບບພາສາອື່ນ." +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``." +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." +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." +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." +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 @@ -7838,15 +10840,29 @@ 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." +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." +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." +msgid "" +"You can simply download the batch file and include it in your project " +"unchanged." msgstr "ທ່ານສາມາດດາວໂຫຼດໄຟລ໌ນີ້ໄປໄວ້ໃນໂຄງການໄດ້ເລີຍໂດຍບໍ່ຕ້ອງປ່ຽນແປງຫຍັງ." #: ../source/guides/supporting-windows-using-appveyor.rst:129 @@ -7854,7 +10870,14 @@ 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." +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." @@ -7863,22 +10886,34 @@ 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." +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)." +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 ພຽງບາງສ່ວນເທົ່ານັ້ນ." +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``." +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``" @@ -7897,26 +10932,48 @@ 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." +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``." +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``." +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." +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." +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 @@ -7924,11 +10981,19 @@ 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." +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)." +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 @@ -7936,12 +11001,19 @@ 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 ໄດ້ສະເພາະໂຄງການທີ່ບໍ່ມີໄລບຣາຣີພາຍນອກທີ່ຊັບຊ້ອນ." +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." +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 @@ -7961,7 +11033,17 @@ 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." +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 ບໍ່ໄດ້ເຈາະຈົງແນະນຳອັນໃດອັນໜຶ່ງເປັນພິເສດ." @@ -7970,25 +11052,40 @@ 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``." +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 `." +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``." +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`." +msgid "" +"For scientific software specifically, consider :ref:`Conda` or :ref:`Spack`." msgstr "ສຳລັບຊອບແວທາງວິທະຍາສາດ, ໃຫ້ພິຈາລະນາໃຊ້ ``Conda`` ຫຼື ``Spack``." #: ../source/guides/tool-recommendations.rst:45 @@ -7996,7 +11093,12 @@ 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)." +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`` ເພາະພວກມັນຫຼ້າສະໄໝແລ້ວ." @@ -8005,66 +11107,101 @@ 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." +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 ເພື່ອກຳນົດລຸ້ນແພັກເກດໃຫ້ແນ່ນອ" -"ນ." +"``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." +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:" +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." +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." +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." +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." +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)." +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]`` ແທນ)" -"." +"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`` ເຄີຍເປັນຕົວສ້າງສ່ວນຫຼັງພຽງອັນດຽວໃນເມື່ອກ່ອນ ແລະ ຮອງຮັບປລັກອິນ." +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." +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`." +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``." +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." +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 @@ -8072,19 +11209,28 @@ 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:" +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)," +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," +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," +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 @@ -8096,30 +11242,44 @@ 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`." +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 `." +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``." +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." +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 ຈາກແພລັດຟອມຕໍ່ໄປນີ້:" +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``)" @@ -8138,11 +11298,15 @@ 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`." +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." +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 @@ -8150,7 +11314,14 @@ 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:" +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 @@ -8186,11 +11357,17 @@ 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." +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 `_" +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 @@ -8198,11 +11375,16 @@ 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." +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." +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 @@ -8210,11 +11392,17 @@ 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:" +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." +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 @@ -8222,85 +11410,125 @@ 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:" +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:" +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 ປົກກະຕິ" -"ໄດ້." +"ທ່ານສາມາດໃຊ້ ``--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`` ເພື່ອບໍ່ຕ້ອງປ້ອນລະຫັດຜ່ານທຸກຄັ້ງ." +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." +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." +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` ໃດທີ່ທ່ານໃຊ້ ແລະ ສ່ວນປະກອບອື່ນໆໃດທີ່ຈຳເປັນໃນການສ້າງໂປຣເຈັກຂອງທ່ານ." +"ຕາຕະລາງ ``[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." +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." +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]``. ພວກເຮົາຈະເວົ້າເຖິງຕາຕະລາງນີ້ພຽງຜ່ານໆ ເນື່ອງຈາກເນື້ອໃນ" -"ຂອງມັນຖືກກຳນົດໂດຍແຕ່ລະເຄື່ອງມືເອງ. ກະລຸນາເບິ່ງເອກະສານຄຳແນະນຳຂອງເຄື່ອງມືນັ້ນໆ ເພື່ອຮູ້ວ່າສິ່ງໃດແດ່ທີ່ສາ" -"ມາດໃສ່ລົງໃນນີ້ໄດ້." +"``[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)." +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." +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``." +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``." +"ຂໍ້ຍົກເວັ້ນທີ່ສຳຄັນແມ່ນ 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`." +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`." +"ສຳລັບໂປຣເຈັກໃໝ່, ໃຫ້ໃຊ້ຕາຕະລາງ ``[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\"]``." +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``, ເຊິ່ງແມ່ນລາຍການຂອງ ສ່ວນປະກອບທີ່ຈຳເປັນ " @@ -8309,11 +11537,14 @@ msgstr "" "[\"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:" +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 ທີ່ນິຍົມໃຊ້:" +"ໂດຍປົກກະຕິແລ້ວ, ທ່ານພຽງແຕ່ກ່າຍເອົາສິ່ງທີ່ເອກະສານຄຳແນະນຳຂອງ build backend ຂອງທ່ານແນະນຳ " +"(ຫຼັງຈາກ :ref:`ເລືອກ build backend ຂອງທ່ານ `). " +"ນີ້ແມ່ນຄ່າຕ່າງໆສຳລັບ build backends ທີ່ນິຍົມໃຊ້:" #: ../source/guides/writing-pyproject-toml.rst:63 msgid "Static vs. dynamic metadata" @@ -8324,24 +11555,33 @@ 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\"``." +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.," +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 ໂດຍໃ" -"ຊ້, ເຊັ່ນ," +"ຢ່າງໃດກໍຕາມ, ໃນບາງກໍລະນີ, ມັນຈະມີປະໂຫຍດຫຼາຍຖ້າປ່ອຍໃຫ້ 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." +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 ຂອງທ່ານ ເພື່ອຮຽນຮູ້ວິທີການເຮັດວຽກຂອງມັນ." +"ເມື່ອຟິລໃດໜຶ່ງເປັນ dynamic, ມັນຈະເປັນໜ້າທີ່ຂອງ build backend ໃນການຕື່ມຂໍ້ມູນໃສ່. " +"ກະລຸນາເບິ່ງເອກະສານຄຳແນະນຳຂອງ build backend ຂອງທ່ານ ເພື່ອຮຽນຮູ້ວິທີການເຮັດວຽກຂອງມັນ." #: ../source/guides/writing-pyproject-toml.rst:88 msgid "Basic information" @@ -8355,24 +11595,34 @@ 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." +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 ໄ" -"ດ້." +"ໃສ່ຊື່ໂປຣເຈັກຂອງທ່ານໃນ 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." +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, ຕົວເລກ, ຂີດກ້ອງ \"``_``\", ຂີດຕໍ່ \"``-``\" ແລະ ຈ້" -"ຳ \"``.``\". ມັນຕ້ອງບໍ່ຂຶ້ນຕົ້ນ ຫຼື ລົງທ້າຍດ້ວຍຂີດກ້ອງ, ຂີດຕໍ່ ຫຼື ຈ້ຳ." +"ຊື່ໂປຣເຈັກຕ້ອງປະກອບດ້ວຍຕົວອັກສອນ 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``." +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``." +"ການປຽບທຽບຊື່ໂປຣເຈັກແມ່ນບໍ່ແຍກຕົວອັກສອນໃຫຍ່-ນ້ອຍ ແລະ ຖືວ່າການໃຊ້ຂີດກ້ອງ, ຂີດຕໍ່, ແລະ/ຫຼື ຈ້ຳ " +"ທີ່ຕໍ່ກັນຍາວເທົ່າໃດກໍຕາມແມ່ນມີຄ່າເທົ່າກັນ. ຕົວຢ່າງ: ຖ້າທ່ານລົງທະບຽນໂປຣເຈັກຊື່ ``cool-stuff``, " +"ຜູ້ໃຊ້ຈະສາມາດດາວໂຫຼດ ຫຼື ປະກາດການນຳໃຊ້ໂດຍໃຊ້ຮູບແບບໃດໜຶ່ງດັ່ງນີ້: ``Cool-Stuff``, " +"``cool.stuff``, ``COOL_STUFF``, ``CoOl__-.-__sTuFF``." #: ../source/guides/writing-pyproject-toml.rst:115 #: ../source/specifications/pyproject-toml.rst:134 @@ -8386,20 +11636,26 @@ 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." +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:`ຂໍ້ກຳນົດ `." +"ທ່ານສາມາດລະບຸເວີຊັນທີ່ຊັບຊ້ອນກວ່ານີ້ໄດ້ ເຊັ່ນ ``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." +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`." +"ສິ່ງນີ້ຊ່ວຍໃຫ້ສາມາດດຶງເວີຊັນມາຈາກຄຸນລັກສະນະ ``__version__`` ຫຼື ຈາກ Git tag ໄດ້. " +"ເບິ່ງລາຍລະອຽດເພີ່ມເຕີມໄດ້ທີ່ຫົວຂໍ້ :ref:`single-source-version`." #: ../source/guides/writing-pyproject-toml.rst:141 msgid "Dependencies and requirements" @@ -8414,43 +11670,63 @@ 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." +msgid "" +"See :ref:`Dependency specifiers ` for the full syntax " +"you can use to constrain versions." msgstr "" -"ເບິ່ງ :ref:`ການລະບຸສ່ວນປະກອບ ` ສຳລັບຮູບແບບໄວຍາກອນທັງໝົດທີ່ທ່ານສາມ" -"າດໃຊ້ເພື່ອຈຳກັດເວີຊັນ." +"ເບິ່ງ :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``." +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``." +"ທ່ານອາດຈະຕ້ອງການເຮັດໃຫ້ບາງສ່ວນປະກອບເປັນແບບທາງເລືອກ (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." +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]`` ເພື່ອຕິດຕັ້ງໂປຣເຈັກຂອງທ່ານພ້ອມກັບການຮອງຮັບ " +"ແຕ່ລະຄີ (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``):" +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``):" +"ທ່ານຍັງສາມາດກຳນົດ 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:" +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) ບໍ່ຈຳເປັນຕ້ອງມີການສຳເນົາໄຟລ໌ທີ່ຕ້ອງເພິ່ງພາຂອງແຕ່ລະສ່ວນເສີມທີ່ອ້າງ" -"ອີງ ເພື່ອມາເບິ່ງແຍງຮັກສາດ້ວຍຕົນເອງ, ເຊິ່ງຖ້າບໍ່ດັ່ງນັ້ນ ອາດຈະເຮັດໃຫ້ຂໍ້ມູນບໍ່ກົງກັນຫຼັງຈາກການບຳລຸງຮັກສາ ແລ" -"ະ ການແກ້ໄຂບັກຜ່ານໄປຫຼາຍປີ:" +"ສ່ວນເສີມແບບລວມ (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`." +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`." +"ເຄື່ອງມືຈັດການແພັກເກດສ່ວນໃຫຍ່ໃນຕອນນີ້ແມ່ນຮອງຮັບ 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 @@ -8460,7 +11736,9 @@ 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]_." +msgid "" +"This lets you declare the minimum version of Python that you support " +"[#requires-python-upper-bounds]_." msgstr "" "ສິ່ງນີ້ຊ່ວຍໃຫ້ທ່ານປະກາດເວີຊັນຕ່ຳສຸດຂອງ Python ທີ່ທ່ານຮອງຮັບ [#requires-python-upper-" "bounds]_." @@ -8470,36 +11748,50 @@ 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." +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())``." +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())``." +"ໃນຕົວຢ່າງນີ້, ຫຼັງຈາກຕິດຕັ້ງໂປຣເຈັກຂອງທ່ານແລ້ວ, ຄຳສັ່ງ ``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]``." +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." +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 ຈະສົ່ງຄືນການຄວບຄຸມໃຫ້ທັນທີ, ໂດຍປ່ອຍໃຫ້ສະຄຣິບ" -"ເຮັດວຽກຢູ່ເບື້ອງຫຼັງ." +"ໃນກໍລະນີນັ້ນ, ການລັນສະຄຣິບຂອງທ່ານຈາກ command line ຈະສົ່ງຄືນການຄວບຄຸມໃຫ້ທັນທີ, " +"ໂດຍປ່ອຍໃຫ້ສະຄຣິບເຮັດວຽກຢູ່ເບື້ອງຫຼັງ." #: ../source/guides/writing-pyproject-toml.rst:251 -msgid "The difference between ``[project.scripts]`` and ``[project.gui-scripts]`` is only relevant on Windows." +msgid "" +"The difference between ``[project.scripts]`` and ``[project.gui-scripts]`` " +"is only relevant on Windows." msgstr "" -"ຄວາມແຕກຕ່າງລະຫວ່າງ ``[project.scripts]`` ແລະ ``[project.gui-scripts]`` ແມ່ນຈະເຫັນ" -"ຜົນສະເພາະໃນ Windows ເທົ່ານັ້ນ." +"ຄວາມແຕກຕ່າງລະຫວ່າງ ``[project.scripts]`` ແລະ ``[project.gui-scripts]`` " +"ແມ່ນຈະເຫັນຜົນສະເພາະໃນ Windows ເທົ່ານັ້ນ." #: ../source/guides/writing-pyproject-toml.rst:257 msgid "About your project" @@ -8511,7 +11803,9 @@ 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." +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 @@ -8521,11 +11815,14 @@ 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 `_)." +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 (`ຕົວຢ່າງ `_), ແລະ ບ່ອນອື່ນໆ ເຊັ່ນ: ລາຍການຜົນການຄົ້ນຫາ (`ຕົວຢ່າງ `_)." +"ນີ້ຄວນເປັນຄຳອະທິບາຍໂປຣເຈັກຂອງທ່ານພຽງແຖວດຽວ, ເພື່ອສະແດງເປັນ \"ຫົວຂໍ້\" " +"ໃນໜ້າໂປຣເຈັກຂອງທ່ານເທິງ PyPI (`ຕົວຢ່າງ `_), ແລະ ບ່ອນອື່ນໆ ເຊັ່ນ: " +"ລາຍການຜົນການຄົ້ນຫາ (`ຕົວຢ່າງ `_)." #: ../source/guides/writing-pyproject-toml.rst:295 #: ../source/specifications/pyproject-toml.rst:156 @@ -8534,10 +11831,13 @@ 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." +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`` ແລະ ທ່ານພຽງແຕ່ໃສ່ຊື່ໄຟລ໌ນັ້ນລົງໃນນີ້." +"ນີ້ແມ່ນຄຳອະທິບາຍແບບລະອຽດຂອງໂປຣເຈັກຂອງທ່ານ ເພື່ອສະແດງໃນໜ້າໂປຣເຈັກເທິງ PyPI. ໂດຍທົ່ວໄປແລ້ວ, " +"ໂປຣເຈັກຂອງທ່ານຈະມີໄຟລ໌ ``README.md`` ຫຼື ``README.rst`` ແລະ ທ່ານພຽງແຕ່ໃສ່ຊື່ໄຟລ໌ນັ້ນລົງໃນນີ້." #: ../source/guides/writing-pyproject-toml.rst:306 msgid "The README's format is auto-detected from the extension:" @@ -8548,7 +11848,8 @@ 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)." +msgid "" +"``README.rst`` → `reStructuredText `_ (without Sphinx extensions)." msgstr "``README.rst`` → `reStructuredText `_ (ໂດຍບໍ່ມີສ່ວນເສີມ Sphinx)." #: ../source/guides/writing-pyproject-toml.rst:311 @@ -8564,21 +11865,27 @@ 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 `." +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 ` ຕົວໜຶ່ງ ຫຼື ຫຼາຍກວ່າ." +"``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." +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` ສ່ວນໃຫຍ່ແມ່ນຮອງຮັບຮູບແບ" -"ບໃໝ່ຕາມທີ່ສະແດງໃນຕາຕະລາງລຸ່ມນີ້." +"PEP ກ່ອນໜ້ານີ້ໄດ້ກຳນົດໃຫ້ ``license`` ເປັນຕາຕະລາງທີ່ມີຄີ ``file`` ຫຼື ``text``, " +"ແຕ່ຮູບແບບນີ້ຖືກຍົກເລີກການນຳໃຊ້ແລ້ວ. ຕອນນີ້ :term:`build backends` " +"ສ່ວນໃຫຍ່ແມ່ນຮອງຮັບຮູບແບບໃໝ່ຕາມທີ່ສະແດງໃນຕາຕະລາງລຸ່ມນີ້." #: ../source/guides/writing-pyproject-toml.rst:336 msgid "build backend versions that introduced :pep:`639` support" @@ -8639,7 +11946,12 @@ 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." +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 `_. ເວີຊັນທີ່ຮອງຮັບແມ່ນ 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 `__." +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 `__." +"ຂອງທ່ານຍັງບໍ່ທັນຮອງຮັບຮູບແບບໃໝ່. ເບິ່ງ `ພາກສ່ວນຂ້າງເທິງ `_ " +"ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ. ສ່ວນຮູບແບບທີ່ຖືກຍົກເລີກນັ້ນ `ມີອະທິບາຍໄວ້ໃນ 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." +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." +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 ຫຼື ເວີຊັນທີ່ໃໝ່ກວ່າທີ່ເຂົ້າກັນໄດ້." +"ຖ້າ :term:`Distribution Archive` ຂອງທ່ານໃຊ້ໃບອະນຸຍາດທີ່ບໍ່ມີໃນລະບົບ SPDX, " +"ທ່ານສາມາດສ້າງຂຶ້ນເອງໄດ້ໃນຮູບແບບ ``LicenseRef-[idstring]``. " +"ລະຫັດທີ່ສ້າງເອງຕ້ອງປະຕິບັດຕາມຂໍ້ກຳນົດຂອງ SPDX, `ຂໍ້ທີ 10.1 `_ ຂອງເວີຊັນ 2.2 " +"ຫຼື ເວີຊັນທີ່ໃໝ່ກວ່າທີ່ເຂົ້າກັນໄດ້." #: ../source/guides/writing-pyproject-toml.rst:395 #: ../source/specifications/pyproject-toml.rst:152 @@ -8675,35 +12001,42 @@ 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." +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." +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 "" -"ຮອງຮັບຕົວອັກສອນພິເສດ: ``*``, ``?``, ``**`` ແລະ ການລະບຸຊ່ວງຕົວອັກສອນ: []." +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." +msgid "" +"Patterns are relative to the directory containing :file:`pyproject.toml`, " +"and thus may not start with a slash character." msgstr "" -"ຮູບແບບແມ່ນອ້າງອີງຕາມໂຟນເດີທີ່ມີໄຟລ໌ :file:`pyproject.toml`, ດັ່ງນັ້ນຈຶ່ງບໍ່ສາມາດເລີ່ມຕົ້ນດ້ວຍເຄື່ອງໝາ" -"ຍທັບໄດ້." +"ຮູບແບບແມ່ນອ້າງອີງຕາມໂຟນເດີທີ່ມີໄຟລ໌ :file:`pyproject.toml`, " +"ດັ່ງນັ້ນຈຶ່ງບໍ່ສາມາດເລີ່ມຕົ້ນດ້ວຍເຄື່ອງໝາຍທັບໄດ້." #: ../source/guides/writing-pyproject-toml.rst:413 msgid "Parent directory indicators (``..``) must not be used." @@ -8714,10 +12047,12 @@ 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." +msgid "" +"Literal paths are valid globs. Any characters or character sequences not " +"covered by this specification are invalid." msgstr "" -"ເສັ້ນທາງໄຟລ໌ແບບລະບຸໂດຍກົງແມ່ນຖືວ່າເປັນ glob ທີ່ຖືກຕ້ອງ. ຕົວອັກສອນ ຫຼື ລຳດັບຕົວອັກສອນໃດໆທີ່ບໍ່ໄດ້ລະບຸໄວ້ໃ" -"ນຂໍ້ກຳນົດນີ້ ແມ່ນຖືວ່າບໍ່ຖືກຕ້ອງ." +"ເສັ້ນທາງໄຟລ໌ແບບລະບຸໂດຍກົງແມ່ນຖືວ່າເປັນ glob ທີ່ຖືກຕ້ອງ. ຕົວອັກສອນ ຫຼື " +"ລຳດັບຕົວອັກສອນໃດໆທີ່ບໍ່ໄດ້ລະບຸໄວ້ໃນຂໍ້ກຳນົດນີ້ ແມ່ນຖືວ່າບໍ່ຖືກຕ້ອງ." #: ../source/guides/writing-pyproject-toml.rst:422 #: ../source/specifications/pyproject-toml.rst:150 @@ -8727,9 +12062,10 @@ 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 ແນະນຳໂປຣເຈັກຂອງທ່ານ ເມື່ອມີຄົນຄົ້ນຫາດ້ວຍຄຳເຫຼົ່ານີ້." +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 @@ -8739,20 +12075,31 @@ 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 `_." +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." +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`." +"ເຖິງແມ່ນວ່າລາຍການ 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 ::``." +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 ::`` ສະເໝີ." @@ -8765,51 +12112,74 @@ 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." +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." +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\"``." +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." +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 (ເຊັ່ນ: ດັດຊະນີແພັກເກດ) ສາມາດສະແດງຜົນໃຫ້ເປັນຮູບແບບພິເສດໄດ້." +"ແນະນຳໃຫ້ຜູ້ໃຊ້ໃຊ້ :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:" +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\"`` ແມ່ນບໍ່ແມ່ນປ້າຍຊື່" -"ທີ່ເປັນມາດຕະຖານ, ດັ່ງນັ້ນພວກມັນຈະຖືກສະແດງຕາມຕົວອັກສອນນັ້ນເລີຍ:" +"ຕົວຢ່າງໃນ 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)." +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``), ແລະ ສາມາດສະແດງຜົນຕາມຄວາມໝາຍນັ້ນໄດ້ (ເຊັ່ນ: ໜ້າຫຼັກຂອງ" -"ໂປຣເຈັກ ແລະ ບ່ອນດາວໂຫຼດພາຍນອກ)." +"(``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:" +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]`` ດັ່ງນີ້:" +"ບາງແພັກເກດສາມາດເສີມຂະຫຍາຍໄດ້ຜ່ານປລັກອິນ. ຕົວຢ່າງລວມມີ Pytest_ ແລະ Pygments_. " +"ເພື່ອສ້າງປລັກອິນດັ່ງກ່າວ, ທ່ານຕ້ອງປະກາດມັນໄວ້ໃນຕາຕະລາງຍ່ອຍຂອງ ``[project.entry-points]`` " +"ດັ່ງນີ້:" #: ../source/guides/writing-pyproject-toml.rst:537 msgid "See the :ref:`Plugin guide ` for more information." @@ -8820,112 +12190,152 @@ 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." +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\"``. `ບົດ" -"ຄວາມນີ້ `_ ມີຂໍ້ມູນກ່ຽວກັບບັນຫາທີ່ອາດຈະເກີດຂຶ້ນ." +"ກະລຸນາຄິດໃຫ້ຮອບຄອບກ່ອນຈະກຳນົດຂີດຈຳກັດສູງສຸດ ເຊັ່ນ ``requires-python = \"<= 3.10\"``. " +"`ບົດຄວາມນີ້ `_ ມີຂໍ້ມູນກ່ຽວກັບບັນຫາທີ່ອາດຈະເກີດຂຶ້ນ." #: ../source/guides/writing-pyproject-toml.rst:610 -msgid "flit-core `does not yet `_ support WITH in SPDX license expressions." +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." +msgid "" +"The Python Packaging User Guide (PyPUG) is a collection of tutorials and " +"guides for packaging Python software." msgstr "" -"ຄຳແນະນຳການສ້າງແພັກເກດ Python (PyPUG) ແມ່ນບ່ອນລວມບົດຮຽນ ແລະ ຄຳແນະນຳສຳລັບການສ້າງແພັກເກດ" -"ຊອຟແວ Python." +"ຄຳແນະນຳການສ້າງແພັກເກດ Python (PyPUG) ແມ່ນບ່ອນລວມບົດຮຽນ ແລະ " +"ຄຳແນະນຳສຳລັບການສ້າງແພັກເກດຊອຟແວ Python." #: ../source/index.rst:-1 msgid "python, packaging, guide, tutorial" msgstr "python, ການສ້າງແພັກເກດ, ຄຳແນະນຳ, ບົດຮຽນ" -#: ../source/index.rst:3 -#: ../source/key_projects.rst:247 +#: ../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." +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 ດ້ວຍເຄື່ອງມືທີ່ທັນສະໄໝ." +"ຍິນດີຕ້ອນຮັບເຂົ້າສູ່ *ຄຳແນະນຳການສ້າງແພັກເກດ 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 `. 😊" +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:`ການມີສ່ວນຮ່ວມ ແລະ ຄຳຄິດເຫັນ `. 😊" +"ຄຳແນະນຳນີ້ຖືກດູແລເທິງ `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." +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." +"ການສ້າງຄວາມເຂົ້າໃຈກ່ຽວກັບການສ້າງແພັກເກດ 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." +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 ແລະ ການນຳໃຊ້ຂອງມັນ ໃນການກະກຽມ ແລ" -"ະ ແຈກຢາຍໂປຣເຈັກ. ພາກສ່ວນນີ້ຊ່ວຍໃຫ້ທ່ານເຂົ້າໃຈກ່ຽວກັບການເລືອກເຄື່ອງມື ແລະ ຂັ້ນຕອນທີ່ເໝາະສົມທີ່ສຸດສຳລັບ" -"ວຽກຂອງທ່ານ. ມັນລວມເຖິງວ່າການສ້າງແພັກເກດແມ່ນຫຍັງ, ບັນຫາທີ່ມັນແກ້ໄຂ, ແລະ ຂໍ້ຄວນຄຳນຶງທີ່ສຳຄັນ." +":doc:`ພາບລວມ` ຈະອະທິບາຍກ່ຽວກັບການສ້າງແພັກເກດ Python ແລະ ການນຳໃຊ້ຂອງມັນ ໃນການກະກຽມ " +"ແລະ ແຈກຢາຍໂປຣເຈັກ. ພາກສ່ວນນີ້ຊ່ວຍໃຫ້ທ່ານເຂົ້າໃຈກ່ຽວກັບການເລືອກເຄື່ອງມື ແລະ " +"ຂັ້ນຕອນທີ່ເໝາະສົມທີ່ສຸດສຳລັບວຽກຂອງທ່ານ. ມັນລວມເຖິງວ່າການສ້າງແພັກເກດແມ່ນຫຍັງ, ບັນຫາທີ່ມັນແກ້ໄຂ, ແລະ " +"ຂໍ້ຄວນຄຳນຶງທີ່ສຳຄັນ." #: ../source/index.rst:51 -msgid "To get an overview of the workflow used to publish your code, see :doc:`packaging flow `." +msgid "" +"To get an overview of the workflow used to publish your code, " +"see :doc:`packaging flow `." msgstr "" -"ເພື່ອເບິ່ງພາບລວມຂອງຂັ້ນຕອນການເຮັດວຽກທີ່ໃຊ້ໃນການເຜີຍແຜ່ໂຄ້ດຂອງທ່ານ, ເບິ່ງ :doc:`ຂັ້ນຕອນການສ້າງແພັກ" -"ເກດ `." +"ເພື່ອເບິ່ງພາບລວມຂອງຂັ້ນຕອນການເຮັດວຽກທີ່ໃຊ້ໃນການເຜີຍແຜ່ໂຄ້ດຂອງທ່ານ, " +"ເບິ່ງ :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:" +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` ລວມມີ:" +"ບົດຮຽນຈະນຳພາທ່ານຜ່ານຂັ້ນຕອນຕ່າງໆທີ່ຈຳເປັນເພື່ອເຮັດໂປຣເຈັກໃຫ້ສຳເລັດເປັນຄັ້ງທຳອິດ. " +"ບົດຮຽນມີເປົ້າໝາຍເພື່ອຊ່ວຍໃຫ້ທ່ານເຮັດສຳເລັດ ແລະ ເປັນຈຸດເລີ່ມຕົ້ນສຳລັບການສຶກສາເພີ່ມເຕີມໃນອະນາຄົດ. " +"ພາກສ່ວນ :doc:`tutorials/index` ລວມມີ:" #: ../source/index.rst:62 -msgid "A :doc:`tutorial on installing packages `" +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" +msgid "" +"A :doc:`tutorial on managing application dependencies ` in a version controlled project" msgstr "" -":doc:`ບົດຮຽນກ່ຽວກັບການຈັດການສ່ວນປະກອບທີ່ຈຳເປັນ ` ໃນໂ" -"ປຣເຈັກທີ່ມີການຄວບຄຸມເວີຊັນ" +":doc:`ບົດຮຽນກ່ຽວກັບການຈັດການສ່ວນປະກອບທີ່ຈຳເປັນ ` " +"ໃນໂປຣເຈັກທີ່ມີການຄວບຄຸມເວີຊັນ" #: ../source/index.rst:65 -msgid "A :doc:`tutorial on packaging and distributing ` your project" +msgid "" +"A :doc:`tutorial on packaging and distributing ` your project" msgstr "" -":doc:`ບົດຮຽນກ່ຽວກັບການສ້າງແພັກເກດ ແລະ ການແຈກຢາຍ ` ໂປ" -"ຣເຈັກຂອງທ່ານ" +":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." +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 ຢູ່ແລ້ວ ແລະ ກຳລັງຊອກຫາຂໍ້ມູນສະເພາະບາງຢ່າງ." +"ຄຳແນະນຳຈະບອກຂັ້ນຕອນການເຮັດວຽກໃດໜຶ່ງໂດຍສະເພາະ. " +"ຄຳແນະນຳຈະເນັ້ນໃສ່ຜູ້ໃຊ້ທີ່ຄຸ້ນເຄີຍກັບການສ້າງແພັກເກດ 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." +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` ຈະໃຫ້ຄຳແນະນຳ \"ວິທີການ\" ໃນສາມດ້ານຫຼັກ: ການຕິດຕັ້ງແພັກເກດ; ກ" -"ານສ້າງ ແລະ ການແຈກຢາຍແພັກເກດ; ແລະ ຫົວຂໍ້ອື່ນໆ." +"ພາກສ່ວນ :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:" +msgid "" +"The :doc:`discussions/index` section provides in-depth explanations and " +"discussion about topics, such as:" msgstr "" -"ພາກສ່ວນ :doc:`discussions/index` ໃຫ້ຄຳອະທິບາຍແບບເຈາະເລິກ ແລະ ການສົນທະນາກ່ຽວກັບຫົວຂໍ້ຕ່າງ" -"ໆ, ເຊັ່ນ:" +"ພາກສ່ວນ :doc:`discussions/index` ໃຫ້ຄຳອະທິບາຍແບບເຈາະເລິກ ແລະ " +"ການສົນທະນາກ່ຽວກັບຫົວຂໍ້ຕ່າງໆ, ເຊັ່ນ:" #: ../source/index.rst:85 msgid ":doc:`discussions/deploying-python-applications`" @@ -8940,12 +12350,16 @@ msgid "Reference" msgstr "ເອກະສານອ້າງອີງ" #: ../source/index.rst:91 -msgid "The :doc:`specifications/index` section for packaging interoperability specifications." +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." +msgid "" +"The list of :doc:`other projects ` maintained by members of " +"the Python Packaging Authority." msgstr "" "ລາຍການ :doc:`ໂປຣເຈັກອື່ນໆ ` ທີ່ດູແລໂດຍສະມາຊິກຂອງ Python Packaging " "Authority." @@ -8959,9 +12373,10 @@ 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." +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" @@ -8972,140 +12387,206 @@ msgid "bandersnatch" msgstr "bandersnatch" #: ../source/key_projects.rst:21 -msgid "`Docs `__ | `Issues `__ | `GitHub `__ | `PyPI `__" +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`_." +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 `__" +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." +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." +"``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 `__" +msgid "" +"`Docs `__ | `Issues `__ | `GitHub `__ | `PyPI `__ | " +"`Discussions `__ | " +"`Discord #cibuildwheel `__" msgstr "" "`ເອກະສານ `__ | `ແຈ້ງບັນຫາ `__ | `GitHub `__ | `PyPI `__ | `ສົນທະນ" -"າ `__ | `Discord " +"cibuildwheel>`__ | `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`." +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` ຕື່ມ." +"``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 `__" +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 " -"`, ຊ່ວຍໃຫ້ເຮັດວຽກຮ່ວມກັນໄດ້, ຈັດການສ່ວນປະກອບທີ່ຈຳເປັນ, ຈັດການຊັບພະຍາ" -"ກອນແພັກເກດ, ແລະ ເຮັດໜ້າທີ່ອື່ນໆທີ່ຄ້າຍຄືກັນ." +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) ທີ່ມາກ່ອນມາດ" -"ຕະຖານໃໝ່ ແລະ ບໍ່ສາມາດເຂົ້າກັນໄດ້ກັບມາດຕະຖານເຫຼົ່ານັ້ນ." +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." +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 ທີ່ຮອງຮັບ." +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." +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." +"ເຖິງຢ່າງໃດກໍຕາມ, 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 `__" +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." +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." +"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." +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 ໄດ້." +"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." +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 `__ | `GitHub `__ | `PyPI `__" +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. ລະບົບປລັກອິນຂອງມັນຊ່ວຍໃຫ້ສາມາດ" -"ເສີມຟີເຈີໃໝ່ໆໄດ້ງ່າຍ." +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 `__" +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`." +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, ກວດຫາ, ແລະ ຈັດການກັບຄຸນລັກສະນະຂອງສ່ວນປະກອບທີ່ຈຳເປັນ." +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` ຈະແຈ້ງເປັນຂໍ້ຜິດພາດ." +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 @@ -9168,48 +12675,70 @@ msgid "pip" msgstr "pip" #: ../source/key_projects.rst:188 -msgid "`Docs `__ | `Issues `__ | `GitHub `__ | `PyPI `__" +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." +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)." +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)." +"ມັນມີຟີເຈີຫຼັກທີ່ຈຳເປັນໃນການຄົ້ນຫາ, ດາວໂຫຼດ, ແລະ ຕິດຕັ້ງແພັກເກດຈາກ 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 `__" +msgid "" +":doc:`Docs ` | `Source `__ | " +"`Issues `__ | `PyPI `__" msgstr "" -":doc:`ເອກະສານ ` | `ໂຄ້ດຕົ້ນສະບັບ " -"`__ | `ແຈ້ງບັນຫາ `__ | `PyPI `__" +":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 `_." +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 `_." +"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." +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 ຂອງໄຟລ໌ ເພື່ອຄວາມ" -"ປອດໄພ, ແລະ ຊ່ວຍໃຫ້ການຖອນການຕິດຕັ້ງແພັກເກດເຮັດໄດ້ງ່າຍຂຶ້ນ." +"command line. ມັນຍັງເຮັດວຽກໄດ້ດີໃນ Windows, ມີການສ້າງ ແລະ ກວດສອບ hash ຂອງໄຟລ໌ " +"ເພື່ອຄວາມປອດໄພ, ແລະ ຊ່ວຍໃຫ້ການຖອນການຕິດຕັ້ງແພັກເກດເຮັດໄດ້ງ່າຍຂຶ້ນ." #: ../source/key_projects.rst:225 msgid "Pipfile" @@ -9220,29 +12749,38 @@ 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." +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`." +":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 `__" +msgid "" +"`Docs `__ | `GitHub `__ " +"| `PyPI `__" msgstr "" -"`ເອກະສານ `__ | `GitHub " -"`__ | `PyPI `__" +"`ເອກະສານ `__ | `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." +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 ໂດຍບໍ່ເຮັດໃຫ້ເກີດຄວາ" -"ມຂັດແຍ້ງຂອງສ່ວນປະກອບທີ່ຈຳເປັນກັບແພັກເກດອື່ນໆໃນລະບົບ." +"pipx ແມ່ນເຄື່ອງມືສຳລັບຕິດຕັ້ງ ແລະ ລັນແອັບພລິເຄຊັນ command-line ຂອງ Python " +"ໂດຍບໍ່ເຮັດໃຫ້ເກີດຄວາມຂັດແຍ້ງຂອງສ່ວນປະກອບທີ່ຈຳເປັນກັບແພັກເກດອື່ນໆໃນລະບົບ." #: ../source/key_projects.rst:249 -msgid ":doc:`Docs ` | `Issues `__ | `GitHub `__" +msgid "" +":doc:`Docs ` | `Issues `__ | `GitHub `__" msgstr "" ":doc:`ເອກະສານ ` | `ແຈ້ງບັນຫາ `__ | `GitHub `__ | `PyPI `__" +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." +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." +"``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 `__" +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." +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 ໄດ້ງ່າຍຂຶ້ນ, ໂດຍສະເພາະຕົວທີ່ມີສ່ວນປະກອບທີ່ຈຳເປັນຈາກແພັກເກດອື່ນ." +"Python ເພື່ອໃຫ້ທ່ານສ້າງ ແລະ ແຈກຢາຍ :term:`distributions ` " +"ຂອງ Python ໄດ້ງ່າຍຂຶ້ນ, ໂດຍສະເພາະຕົວທີ່ມີສ່ວນປະກອບທີ່ຈຳເປັນຈາກແພັກເກດອື່ນ." #: ../source/key_projects.rst:289 msgid "trove-classifiers" msgstr "trove-classifiers" #: ../source/key_projects.rst:291 -msgid "`Issues `__ | `GitHub `__ | `PyPI `__" +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." +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 `_." +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 `__" +msgid "" +"`Docs `__ | `Issues `__ | `GitHub `__ | `PyPI `__" msgstr "" "`ເອກະສານ `__ | `ແຈ້ງບັນຫາ `__ | `GitHub " -"`__ | `PyPI `__" +"github.com/pypa/twine/issues>`__ | `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." +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. ຜູ້ພັດທະນາໃຊ້ມັນຍ້ອນວ່າມັນເປັນເຄື່ອງມືທາງກາ" -"ນ, ໄວ, ປອດໄພ, ແລະ ເຮັດວຽກໄດ້ຢ່າງໝັ້ນໃຈ." +"command-line ທີ່ສົ່ງໄຟລ໌ ແລະ metadata ຜ່ານ web API. " +"ຜູ້ພັດທະນາໃຊ້ມັນຍ້ອນວ່າມັນເປັນເຄື່ອງມືທາງການ, ໄວ, ປອດໄພ, ແລະ ເຮັດວຽກໄດ້ຢ່າງໝັ້ນໃຈ." -#: ../source/key_projects.rst:331 -#: ../source/overview.rst:405 +#: ../source/key_projects.rst:331 ../source/overview.rst:405 msgid "virtualenv" msgstr "virtualenv" #: ../source/key_projects.rst:333 -msgid "`Docs `__ | `Issues `__ | `GitHub `__ | `PyPI `__" +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 ໄດ້ສະດວກ." +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 `__" +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." +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`." @@ -9373,25 +12963,37 @@ msgid "wheel" msgstr "wheel" #: ../source/key_projects.rst:366 -msgid "`Docs `__ | `Issues `__ | `GitHub `__ | `PyPI `__" +msgid "" +"`Docs `__ | `Issues `__ | `GitHub `__ | `PyPI `__" msgstr "" "`ເອກະສານ `__ | `ແຈ້ງບັນຫາ `__ | `GitHub " -"`__ | `PyPI `__" +"github.com/pypa/wheel/issues>`__ | `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." +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." +"ໂດຍຫຼັກແລ້ວ, ໂປຣເຈັກ 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." +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 ໃຫ້ເຊື່ອມຕໍ່ກັບໄລບຣາຣີພາຍນອກໄດ້ຢ່າງຖືກຕ້ອງ." +"ເບິ່ງ `auditwheel `__ ຕື່ມ, " +"ເຊິ່ງແມ່ນເຄື່ອງມືທີ່ຜູ້ພັດທະນາໃຊ້ເພື່ອກວດສອບ ແລະ ແກ້ໄຂແພັກເກດ Python ໃນຮູບແບບ binary wheel. " +"ມັນຊ່ວຍກວດຫາສ່ວນປະກອບທີ່ຈຳເປັນ, ກວດສອບ metadata, ແລະ ແກ້ໄຂ wheel " +"ໃຫ້ເຊື່ອມຕໍ່ກັບໄລບຣາຣີພາຍນອກໄດ້ຢ່າງຖືກຕ້ອງ." #: ../source/key_projects.rst:384 msgid "Non-PyPA Projects" @@ -9402,17 +13004,24 @@ msgid "buildout" msgstr "buildout" #: ../source/key_projects.rst:391 -msgid "`Docs `__ | `Issues `__ | `PyPI `__ | `GitHub `__" +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." +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 ແມ່ນລະບົບການສ້າງທີ່ໃຊ້ Python ເປັນຫຼັກ ສຳລັບການສ້າງ, ປະກອບ ແລະ ຕິດຂັດ (deploy) " +"ແອັບພລິເຄຊັນຈາກຫຼາຍໆສ່ວນ, ເຊິ່ງບາງສ່ວນອາດຈະບໍ່ແມ່ນ Python. ມັນຊ່ວຍໃຫ້ທ່ານສ້າງການກຳນົດຄ່າ " "buildout ແລະ ສ້າງຊອຟແວແບບເກົ່າຄືນໃໝ່ໄດ້." #: ../source/key_projects.rst:403 @@ -9424,28 +13033,55 @@ 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." +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." +"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." +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." +"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-" +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." +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 ຈາກແພັກເກດ " @@ -9456,16 +13092,24 @@ msgid "devpi" msgstr "devpi" #: ../source/key_projects.rst:437 -msgid "`Docs `__ | :gh:`Issues ` | `PyPI `__" +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 ເ" -"ພື່ອຊ່ວຍໃນການສ້າງແພັກເກດ, ທົດສອບ ແລະ ເຜີຍແຜ່. ມັນມີໜ້າເວັບທີ່ສາມາດຄົ້ນຫາໄດ້, ຮອງຮັບການເຮັດ " +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 @@ -9473,13 +13117,19 @@ msgid "dumb-pypi" msgstr "dumb-pypi" #: ../source/key_projects.rst:454 -msgid "`GitHub `__ | `PyPI `__" +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." +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)." @@ -9489,69 +13139,95 @@ msgid "enscons" msgstr "enscons" #: ../source/key_projects.rst:466 -msgid ":gh:`Source ` | :gh:`Issues ` | `PyPI `__" +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)." +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 `__" +msgid "" +"`Docs `__ | :gh:`GitHub ` | `PyPI `__" msgstr "" "`ເອກະສານ `__ | :gh:`GitHub " "` | `PyPI `__" -#: ../source/key_projects.rst:491 -#: ../source/key_projects.rst:685 +#: ../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." +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 `__" +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." +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." +"Hashdist ແມ່ນໄລບຣາຣີສຳລັບສ້າງ software distributions ໂດຍບໍ່ຕ້ອງໃຊ້ສິດ root. " +"ມັນຖືກອອກແບບມາເພື່ອແກ້ບັນຫາການຕິດຕັ້ງຊອຟແວທາງວິທະຍາສາດ, ແຕ່ຂາດການດູແລຕັ້ງແຕ່ປີ 2016." #: ../source/key_projects.rst:516 msgid "Maturin" msgstr "Maturin" #: ../source/key_projects.rst:518 -msgid "`Docs `__ | `GitHub `__" +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." +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 ໄດ້." @@ -9561,13 +13237,19 @@ msgid "meson-python" msgstr "meson-python" #: ../source/key_projects.rst:531 -msgid "`Docs `__ | `GitHub `__" +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." +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." @@ -9581,7 +13263,10 @@ 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`." +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` ນຳ." @@ -9595,7 +13280,9 @@ msgid ":gh:`GitHub `" msgstr ":gh:`GitHub `" #: ../source/key_projects.rst:558 -msgid "nginx_pypi_cache is a :term:`package index ` caching proxy using `nginx `_." +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 @@ -9603,25 +13290,39 @@ msgid "pdm" msgstr "pdm" #: ../source/key_projects.rst:566 -msgid "`Docs `__ | `GitHub `__ | `PyPI `__" +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`." +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 `__" +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." +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)." @@ -9631,29 +13332,42 @@ msgid "pip-tools" msgstr "pip-tools" #: ../source/key_projects.rst:596 -msgid "`Docs `__ | `GitHub `__ | `PyPI `__" +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." +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) ແຕ່ຍັງອັບເດດຢູ່ສະເໝີ." +"pip-tools ແມ່ນຊຸດເຄື່ອງມືສຳລັບຜູ້ດູແລລະບົບ ແລະ ຜູ້ຈັດການການປ່ອຍຊອຟແວ " +"ທີ່ຕ້ອງການໃຫ້ການສ້າງແພັກເກດມີຄວາມຄົງທີ່ (deterministic) ແຕ່ຍັງອັບເດດຢູ່ສະເໝີ." #: ../source/key_projects.rst:612 msgid "pip2pi" msgstr "pip2pi" #: ../source/key_projects.rst:614 -msgid ":gh:`GitHub ` | `PyPI `__" +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." +msgid "" +"pip2pi is a :term:`package index ` server where specific " +"packages are manually synchronised." msgstr "pip2pi ແມ່ນເຊີບເວີດັດຊະນີແພັກເກດ ບ່ອນທີ່ມີການຊິງໂຄຣໄນແພັກເກດແບບລະບຸເອງ." #: ../source/key_projects.rst:623 @@ -9661,13 +13375,19 @@ msgid "piwheels" msgstr "piwheels" #: ../source/key_projects.rst:625 -msgid "`Website `__ | :doc:`Docs ` | `GitHub `__" +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." +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 ໄດ້ຢ່າງມີປະສິດທິພາບ." @@ -9676,13 +13396,21 @@ msgid "poetry" msgstr "poetry" #: ../source/key_projects.rst:640 -msgid "`Docs `__ | `GitHub `__ | `PyPI `__" +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." +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``." @@ -9692,27 +13420,34 @@ msgid "proxpi" msgstr "proxpi" #: ../source/key_projects.rst:656 -msgid ":gh:`GitHub ` | `PyPI `__" +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 ພ້ອມລະບົບແຄສ." +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 `__" +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." +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." @@ -9722,13 +13457,19 @@ msgid "PyPI Cloud" msgstr "PyPI Cloud" #: ../source/key_projects.rst:681 -msgid "`Docs `__ | :gh:`GitHub ` | `PyPI `__" +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." +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 ຫຼື ໃນເຄື່ອງເອງ." @@ -9737,28 +13478,40 @@ msgid "pypiprivate" msgstr "pypiprivate" #: ../source/key_projects.rst:697 -msgid ":gh:`GitHub ` | `PyPI `__" +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) ໃນຮູບແບບດັດຊະນີແພັກເກດ." +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 `__" +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." +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 ພາຍໃນອົງກອນ." @@ -9767,60 +13520,88 @@ msgid "PyScaffold" msgstr "PyScaffold" #: ../source/key_projects.rst:724 -msgid "`Docs `__ | `GitHub `__ | `PyPI `__" +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 ໄດ້ທັນທີ." +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 `__" +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." +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 `__" +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)." +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." +"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 `__" +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." +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 @@ -9828,46 +13609,68 @@ msgid "shiv" msgstr "shiv" #: ../source/key_projects.rst:787 -msgid "`Docs `__ | `GitHub `__ | `PyPI `__" +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`." +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 `__" +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 ໄປຍັງດັດຊະນີຫຼາຍໆແຫຼ່ງ." +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 `__" +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 ແມ່ນເຄື່ອງມືຈັດການແພັກເກດທີ່ຢືດຢຸ່ນ ຖືກອອກແບບມາສຳລັບຊອຟແວວິທະຍາສາດ." +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." +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 @@ -9875,31 +13678,41 @@ msgid "uv" msgstr "uv" #: ../source/key_projects.rst:835 -msgid "`Docs `__ | `GitHub `__ | `PyPI `__" +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 ເພື່ອປະສິດທິພາບສູງ." +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 `__" +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 ແບບອັດຕະໂນມັດ." +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" @@ -9910,13 +13723,19 @@ msgid "ensurepip" msgstr "ensurepip" #: ../source/key_projects.rst:866 -msgid "`Docs `__ | `Issues `__" +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." +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 @@ -9924,28 +13743,38 @@ msgid "http.server" msgstr "http.server" #: ../source/key_projects.rst:879 -msgid ":doc:`Docs ` | :gh:`Issues `" +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 ທີ່ສາມາດເປີດໂຟນເດີໃຫ້ເປັນເວັບໄຊ ເພື່ອໃຊ້ເປັນດັດຊະນີແພັກເກດໄດ້." +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 `__" +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`." +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 `." @@ -9955,7 +13784,9 @@ msgid "News" msgstr "ຂ່າວສານ" #: ../source/news.rst:4 -msgid "This document is not currently updated. Previously, the document highlighted changes in Python packaging." +msgid "" +"This document is not currently updated. Previously, the document highlighted " +"changes in Python packaging." msgstr "ເອກະສານນີ້ບໍ່ໄດ້ຮັບການອັບເດດໃນຕອນນີ້." #: ../source/news.rst:9 @@ -10023,7 +13854,8 @@ msgid "April 2019" msgstr "ເມສາ 2019" #: ../source/news.rst:35 -msgid "Added a mention for :file:`shiv` in the key projects section. (:pr:`608`)" +msgid "" +"Added a mention for :file:`shiv` in the key projects section. (:pr:`608`)" msgstr "ເພີ່ມການກ່າວເຖິງ :file:`shiv` ໃນສ່ວນໂປຣເຈັກສຳຄັນ. (:pr:`608`)" #: ../source/news.rst:36 @@ -10036,8 +13868,7 @@ 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`)" +msgstr "ຍ້າຍຕົວເລືອກເວີຊັນໃນຄຳແນະນຳ single-sourcing ໄປເປັນ Python 3. (:pr:`605`)" #: ../source/news.rst:41 msgid "Covered RTD details for contributing. (:pr:`600`)" @@ -10048,7 +13879,9 @@ msgid "February 2019" msgstr "ກຸມພາ 2019" #: ../source/news.rst:45 -msgid "Elaborate upon the differences between the tutorial and the real packaging process. (:pr:`602`)" +msgid "" +"Elaborate upon the differences between the tutorial and the real packaging " +"process. (:pr:`602`)" msgstr "" "ອະທິບາຍເພີ່ມເຕີມກ່ຽວກັບຄວາມແຕກຕ່າງລະຫວ່າງບົດຮຽນ ແລະ ຂັ້ນຕອນການສ້າງແພັກເກດແທ້. (:pr:`602`)" @@ -10133,7 +13966,8 @@ 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`)" +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 @@ -10145,7 +13979,8 @@ 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`)" +msgid "" +"Moved the Overview to a task based lead in along with the others. (:pr:`540`)" msgstr "ຍ້າຍສ່ວນພາບລວມໄປລວມກັບສ່ວນອື່ນໆຕາມລັກສະນະວຽກ. (:pr:`540`)" #: ../source/news.rst:82 @@ -10189,9 +14024,9 @@ 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`)" +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`)" @@ -10254,7 +14089,8 @@ 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`)" +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 @@ -10271,7 +14107,9 @@ msgid "February 2018" msgstr "ກຸມພາ 2018" #: ../source/news.rst:130 -msgid "Added python3-venv and python3-pip to Debian installation instructions. (:pr:`445`)" +msgid "" +"Added python3-venv and python3-pip to Debian installation instructions. " +"(:pr:`445`)" msgstr "" "ເພີ່ມ python3-venv ແລະ python3-pip ໃນຄຳແນະນຳການຕິດຕັ້ງສຳລັບ Debian. (:pr:`445`)" @@ -10280,7 +14118,8 @@ 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`)" +msgid "" +"Added a warning about managing multiple versions with pipenv. (:pr:`430`)" msgstr "ເພີ່ມຄຳເຕືອນກ່ຽວກັບການຈັດການຫຼາຍເວີຊັນດ້ວຍ pipenv. (:pr:`430`)" #: ../source/news.rst:133 @@ -10308,7 +14147,8 @@ msgid "December 2017" msgstr "ທັນວາ 2017" #: ../source/news.rst:145 -msgid "Replaced :file:`~` with :file:`$HOME` in guides and tutorials. (:pr:`418`)" +msgid "" +"Replaced :file:`~` with :file:`$HOME` in guides and tutorials. (:pr:`418`)" msgstr "ປ່ຽນ :file:`~` ເປັນ :file:`$HOME` ໃນທຸກຄຳແນະນຳ. (:pr:`418`)" #: ../source/news.rst:146 @@ -10328,16 +14168,21 @@ msgid "November 2017" msgstr "ພະຈິກ 2017" #: ../source/news.rst:153 -msgid "Introduced a new dependency management tutorial based on Pipenv. (:pr:`402`)" +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`)" +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`)" +msgid "" +"Added documentation about the ``py_modules`` argument to ``setup``. " +"(:pr:`398`)" msgstr "ເພີ່ມເອກະສານກ່ຽວກັບ ``py_modules`` ໃນ ``setup``. (:pr:`398`)" #: ../source/news.rst:157 @@ -10349,11 +14194,14 @@ msgid "October 2017" msgstr "ຕຸລາ 2017" #: ../source/news.rst:162 -msgid "Added a specification for the :file:`entry_points.txt` file. (:pr:`398`)" +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`)" +msgid "" +"Created a new guide for managing packages using ``pip`` and ``virtualenv``. " +"(:pr:`385`)" msgstr "" "ສ້າງຄຳແນະນຳໃໝ່ສຳລັບການຈັດການແພັກເກດດ້ວຍ ``pip`` ແລະ ``virtualenv``. (:pr:`385`)" @@ -10366,9 +14214,10 @@ 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`)" +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`)" @@ -10379,7 +14228,9 @@ msgid "August 2017" msgstr "ສິງຫາ 2017" #: ../source/news.rst:176 -msgid "Added a new, experimental tutorial on installing packages using ``Pipenv``. (:pr:`369`)" +msgid "" +"Added a new, experimental tutorial on installing packages using ``Pipenv``. " +"(:pr:`369`)" msgstr "ເພີ່ມບົດຮຽນການຕິດຕັ້ງແພັກເກດດ້ວຍ ``Pipenv`` (ແບບທົດລອງ). (:pr:`369`)" #: ../source/news.rst:177 @@ -10403,16 +14254,21 @@ 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`)" +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`)" +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`)" +msgid "" +"Added a note about the removal of the explicit registration API. (:pr:`347`)" msgstr "ເພີ່ມໝາຍເຫດກ່ຽວກັບການຖອນ registration API ອອກ. (:pr:`347`)" #: ../source/news.rst:190 @@ -10428,11 +14284,14 @@ 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`)" +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`)" +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 @@ -10464,7 +14323,8 @@ msgid "May 2017" msgstr "ພຶດສະພາ 2017" #: ../source/news.rst:206 -msgid "Added documentation for the ``Description-Content-Type`` field. (:pr:`258`)" +msgid "" +"Added documentation for the ``Description-Content-Type`` field. (:pr:`258`)" msgstr "ເພີ່ມເອກະສານສຳລັບຟິລ ``Description-Content-Type``. (:pr:`258`)" #: ../source/news.rst:207 @@ -10472,7 +14332,9 @@ 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`)" +msgid "" +"Documented ``pip`` and ``easy_install``'s differences for per-project " +"indexes. (:pr:`233`)" msgstr "" "ບັນທຶກຄວາມແຕກຕ່າງຂອງ ``pip`` ແລະ ``easy_install`` ສຳລັບດັດຊະນີແຍກແຕ່ລະໂປຣເຈັກ. " "(:pr:`233`)" @@ -10486,13 +14348,16 @@ 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`)" +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`)" +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`)" @@ -10503,31 +14368,40 @@ 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`)" +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`)" +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`)" +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`)" +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`)" +"ສະຫຼັບລຳດັບຂອງອາຄິວເມນ (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`)" +msgid "" +"Explained how to install from unsupported sources using a helper " +"application. (:pr:`289`)" +msgstr "ອະທິບາຍວິທີການຕິດຕັ້ງຈາກແຫຼ່ງທີ່ບໍ່ຮອງຮັບ ໂດຍໃຊ້ແອັບພລິເຄຊັນຊ່ວຍເຫຼືອ. (:pr:`289`)" #: ../source/news.rst:227 msgid "March 2017" @@ -10550,20 +14424,33 @@ 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." +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 ຖືກອອກແບບມາເພື່ອໃຊ້ໃນຫຼາຍຮູບແບບ. ທ່ານສາມາດ" -"ສ້າງເວັບໄຊ, ຫຸ່ນຍົນອຸດສາຫະກຳ ຫຼື ເກມໃຫ້ໝູ່ຫຼິ້ນ ແລະ ອື່ນໆອີກຫຼາຍຢ່າງ ໂດຍໃຊ້ເຕັກໂນໂລຊີຫຼັກອັນດຽວກັນ." +"ໃນຖານະທີ່ເປັນພາສາຂຽນໂປຣແກຣມອະເນກປະສົງ, 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." +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 ຕ້ອງແມ່ນການຄິດເຖິງກຸ່ມຜູ້ໃຊ້ ແ" -"ລະ ສະພາບແວດລ້ອມທີ່ຈະໃຊ້ງານໂຄງການນັ້ນ. ມັນອາດຈະເບິ່ງຄືວ່າແປກທີ່ຈະຄິດກ່ຽວກັບການເຮັດແພັກເກດກ່ອນການຂ" -"ຽນໂຄດ, ແຕ່ຂະບວນການນີ້ຊ່ວຍຫຼີກເວັ້ນບັນຫາທີ່ໜ້າປວດຫົວໃນອະນາຄົດໄດ້ຢ່າງດີ." +"ຄວາມຢືດຢຸ່ນຂອງ 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." +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. " "ອ່ານຕໍ່ເພື່ອເລືອກເຕັກໂນໂລຊີທີ່ດີທີ່ສຸດສຳລັບໂຄງການຕໍ່ໄປຂອງທ່ານ." @@ -10573,73 +14460,106 @@ 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:" +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*), ດັ່ງນັ້ນກ່ອນທີ່ທ່ານຈະເຮັດແພັກເກດໃດໜຶ່ງ, ທ່ານຄວນມີຄຳຕອບສຳລັບ" -"ຄຳຖາມກ່ຽວກັບການຕິດຕັ້ງໃຊ້ງານລຸ່ມນີ້:" +"ແພັກເກດມີໄວ້ເພື່ອຕິດຕັ້ງ (ຫຼື *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?" +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?" +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?" +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." +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`." +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`." +"ທ່ານອາດຈະເຄີຍໄດ້ຍິນກ່ຽວກັບ 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`." +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`." +"ວິທີການເຮັດແພັກເກດຕໍ່ໄປນີ້ແມ່ນສຳລັບໄລບຣາຣີ ແລະ ເຄື່ອງມືທີ່ໃຊ້ໂດຍຜູ້ທີ່ມີຄວາມຮູ້ດ້ານເຕັກນິກໃນການພັດທະນາ. " +"ຖ້າທ່ານກຳລັງຊອກຫາວິທີການເຮັດແພັກເກດ 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." +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 ທີ່ຖືກຕ້ອງ ແລະ ຂຶ້ນກັບພຽງແຕ່ໄລບຣາຣີມາດຕະຖານເທົ່" -"ານັ້ນ." +"ໄຟລ໌ 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 `." +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 " +"ຜ່ານອີເມລ, 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." +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 ເວີຊັນສະເພາະ, ດັ່ງນັ້ນຈຶ່ງມີຕົວເລືອກອື່ນໆລຸ່ມນີ້." @@ -10649,91 +14569,143 @@ 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`." +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` ໄດ້." +"ຖ້າໂຄດຂອງທ່ານປະກອບມີຫຼາຍໄຟລ໌ 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." +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." +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." +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` ເພື່ອຮຽນຮູ້ເພີ່ມເຕີມ." +"*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." +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." +"`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!" +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 ຄືກັນ!" +"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``." +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`` ໃນໂຄງການຂອງທ່ານ." +"ຄວາມສາມາດພິເສດນີ້ຂອງການເຮັດແພັກເກດ 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." +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 ແລະ ພາສາອື່ນໆ." +"ພະລັງໃນການໃຊ້ງານຕົວຈິງສ່ວນໃຫຍ່ຂອງ 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." +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 ໄປພ້ອ" -"ມກັນ, *ຍົກເວັ້ນ* ວ່າທ່ານກຳລັງສ້າງສຳລັບກໍລະນີສະເພາະທີ່ທ່ານຮູ້ແນ່ນອນວ່າຜູ້ຮັບຕ້ອງການພຽງຢ່າງໃດຢ່າງໜຶ່ງ." +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." +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`." +"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) `_." +msgid "" +"Python's recommended built-in library and tool packaging technologies. " +"Excerpted from `The Packaging Gradient (2017) `_." msgstr "" "ເຕັກໂນໂລຊີການເຮັດແພັກເກດໄລບຣາຣີ ແລະ ເຄື່ອງມືພາຍໃນທີ່ແນະນຳຂອງ Python. ຄັດມາຈາກ `The " "Packaging Gradient (2017)`." @@ -10743,76 +14715,114 @@ 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." +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." +"ມາຮອດນີ້ ພວກເຮົາໄດ້ສົນທະນາກ່ຽວກັບເຄື່ອງມືແຈກຢາຍພື້ນຖານຂອງ 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." +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 `." +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`." +"ການເຮັດແພັກເກດພື້ນຖານຂອງ 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." +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." +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." +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) ແລະ ແອັບພລິເຄຊັນເທິງມືຖື, ແມ່ນມີຄວາມຊັບຊ້ອນຫຼາ" -"ຍຈົນການໃຊ້ເຟຣມເວີກກາຍເປັນສິ່ງທີ່ຈຳເປັນຫຼາຍກວ່າພຽງແຕ່ຄວາມສະດວກສະບາຍ." +"ແອັບພລິເຄຊັນ 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." +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." +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\", ທ່ານຄວນປະຕິບັດຕາມຄູ່ມືການ" -"ເຮັດແພັກເກດຂອງພວກເຂົາ. ແພລັດຟອມປະເພດນີ້ຈະເບິ່ງແຍງເລື່ອງການເຮັດແພັກເກດ ແລະ ການຕິດຕັ້ງໃຫ້, ຕາບໃ" -"ດທີ່ທ່ານປະຕິບັດຕາມຮູບແບບຂອງພວກເຂົາ. ຊອບແວສ່ວນໃຫຍ່ບໍ່ໄດ້ເໝາະສົມກັບຮູບແບບເຫຼົ່ານີ້ສະເໝີໄປ, ດັ່ງນັ້ນຈຶ່ງມີຕົວ" -"ເລືອກອື່ນໆຢູ່ລຸ່ມນີ້." +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." +msgid "" +"If you're developing software that will be deployed to machines you own, " +"users' personal computers, or any other arrangement, read on." msgstr "" "ຖ້າທ່ານກຳລັງພັດທະນາຊອບແວທີ່ຈະຖືກຕິດຕັ້ງໃນເຄື່ອງຂອງທ່ານເອງ, ຄອມພິວເຕີສ່ວນຕົວຂອງຜູ້ໃຊ້ ຫຼື ຮູບແບບອື່ນໆ, " "ໃຫ້ອ່ານຕໍ່." @@ -10822,17 +14832,22 @@ 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." +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 ໄດ້. ເຖິງແມ່ນວ່າພາສາຈະຄຸ້ນເຄີຍ, ແຕ່ວິທີການເຮັດແພັກເກດ ແລະ ກາ" -"ນຕິດຕັ້ງນັ້ນແມ່ນສິ່ງໃໝ່ທັງໝົດ." +"ຄວາມກ້າວໜ້າຢ່າງຕໍ່ເນື່ອງຂອງ 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:" +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 `_" @@ -10851,21 +14866,30 @@ 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." +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." +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 " -"ມີຢູ່ແລ້ວໃນສູນຂໍ້ມູນ ຫຼື ໃນເຄື່ອງສ່ວນຕົວຂອງນັກພັດທະນາ ແລະ ນັກວິທະຍາສາດຂໍ້ມູນ." +"ຖ້າເລືອກຄອມພິວເຕີໃດໜຶ່ງຂຶ້ນມາ, ມັນມີໂອກາດສູງຫຼາຍທີ່ Python ຈະຖືກຕິດຕັ້ງໄວ້ແລ້ວ. " +"ມັນຖືກລວມມາເປັນພື້ນຖານໃນລະບົບປະຕິບັດການ Linux ແລະ Mac ສ່ວນໃຫຍ່ມາເປັນເວລາຫຼາຍປີແລ້ວ, " +"ທ່ານສາມາດໝັ້ນໃຈໄດ້ວ່າ Python ມີຢູ່ແລ້ວໃນສູນຂໍ້ມູນ ຫຼື ໃນເຄື່ອງສ່ວນຕົວຂອງນັກພັດທະນາ ແລະ " +"ນັກວິທະຍາສາດຂໍ້ມູນ." #: ../source/overview.rst:238 msgid "Technologies which support this model:" @@ -10876,70 +14900,100 @@ 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+)" +msgid "" +":doc:`zipapp ` (does not help manage dependencies, " +"requires Python 3.5+)" msgstr "" -":doc:`zipapp ` (ບໍ່ຊ່ວຍຈັດການສິ່ງທີ່ຕ້ອງໃຊ້ຮ່ວມ (dependencies), ຕ້" -"ອງການ Python 3.5+)" +":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." +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 ທີ່ຕິດຕັ້ງໄວ້ກ່ອນແມ່ນອີງໃສ່ສະພາບແວດລ້ອມເປົ້າໝາຍຫຼາຍທີ່ສຸດ. ແນ່" -"ນອນວ່າມັນເຮັດໃຫ້ແພັກເກດມີຂະໜາດນ້ອຍທີ່ສຸດ, ອາດຈະນ້ອຍພຽງແຕ່ບໍ່ກີ່ເມກາໄບ ຫຼື ແມ່ນແຕ່ກິໂລໄບ." +"ໃນບັນດາວິທີການທັງໝົດນີ້, ການຂຶ້ນກັບ 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." +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." +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\", ແຕ່ພວກມັນກໍເນັ້ນໃສ່ແອັບພລິເ" -"ຄຊັນສຳລັບຜູ້ໃຊ້ທົ່ວໄປ ແລະ ໃຫ້ປະໂຫຍດໜ້ອຍສຳລັບນັກພັດທະນາ." +"ເປັນເວລາດົນນານທີ່ລະບົບປະຕິບັດການຫຼາຍຢ່າງ, ລວມທັງ 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 ແລະ ເປັນທີ່ນິຍົມຫຼາຍຂຶ້ນໃນດ້ານວິຊາການ, ກ" -"ານວິເຄາະ ແລະ ສະພາບແວດລ້ອມທີ່ເນັ້ນຂໍ້ມູນອື່ນໆ." +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 `_" +msgid "" +"`Building libraries and applications with conda `_" msgstr "" "`ການສ້າງໄລບຣາຣີ ແລະ ແອັບພລິເຄຊັນດ້ວຍ conda `_" #: ../source/overview.rst:276 -msgid "`Transitioning a native Python package to Anaconda `_" +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:" +msgid "" +"A similar model involves installing an alternative Python distribution, but " +"does not support arbitrary operating system-level packages:" msgstr "" -"ຮູບແບບທີ່ຄ້າຍຄືກັນແມ່ນການຕິດຕັ້ງການແຈກຢາຍ Python ທາງເລືອກອື່ນ, ແຕ່ບໍ່ຮອງຮັບແພັກເກດໃນລະດັບລະບົບປະຕິ" -"ບັດການທົ່ວໄປ:" +"ຮູບແບບທີ່ຄ້າຍຄືກັນແມ່ນການຕິດຕັ້ງການແຈກຢາຍ Python ທາງເລືອກອື່ນ, " +"ແຕ່ບໍ່ຮອງຮັບແພັກເກດໃນລະດັບລະບົບປະຕິບັດການທົ່ວໄປ:" #: ../source/overview.rst:282 -msgid "`ActiveState ActivePython `_" +msgid "" +"`ActiveState ActivePython `_" msgstr "" "`ActiveState ActivePython `_" @@ -10953,41 +15007,56 @@ 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." +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." +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 ແລະ ສິ່ງທີ່ຕ້ອງໃຊ້ຮ່ວມອື່ນໆລົງໃນໄຟລ໌ລັນດຽວ." +"ມີຫຼາຍເຕັກນິກ ແລະ ເຕັກໂນໂລຊີທີ່ປ່ຽນໂປຣແກຣມ 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." +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*, ໃຫ້ຄວາມເຂົ້າກັນໄດ້ທີ່ກວ້າງຂວາງ ແລະ ປະສົບການຜູ້ໃຊ້ທີ່ຕໍ່ເນື່ອງ, ເຖິງແມ່" -"ນວ່າມັກຈະຕ້ອງໃຊ້ຫຼາຍເຕັກໂນໂລຊີ ແລະ ຄວາມພະຍາຍາມຫຼາຍພໍສົມຄວນ." +"ວິທີການນີ້, ທີ່ເອີ້ນວ່າ *freezing*, ໃຫ້ຄວາມເຂົ້າກັນໄດ້ທີ່ກວ້າງຂວາງ ແລະ ປະສົບການຜູ້ໃຊ້ທີ່ຕໍ່ເນື່ອງ, " +"ເຖິງແມ່ນວ່າມັກຈະຕ້ອງໃຊ້ຫຼາຍເຕັກໂນໂລຊີ ແລະ ຄວາມພະຍາຍາມຫຼາຍພໍສົມຄວນ." #: ../source/overview.rst:303 msgid "A selection of Python freezers:" msgstr "ຕົວເລືອກຂອງເຄື່ອງມື Python freezer:" #: ../source/overview.rst:305 -msgid "`pyInstaller `_ - Cross-platform" +msgid "" +"`pyInstaller `_ - Cross-" +"platform" msgstr "" "`pyInstaller `_ - ຫຼາຍແພລັດຟອມ " "(Cross-platform)" #: ../source/overview.rst:306 -msgid "`cx_Freeze `_ - Cross-platform" +msgid "" +"`cx_Freeze `_ - Cross-platform" msgstr "" "`cx_Freeze `_ - ຫຼາຍແພລັດຟອມ " "(Cross-platform)" #: ../source/overview.rst:307 -msgid "`constructor `_ - For command-line installers" +msgid "" +"`constructor `_ - For command-line " +"installers" msgstr "" "`constructor `_ - ສຳລັບຕົວຕິດຕັ້ງແບບຄຳສັ່ງ " "(command-line)" @@ -11009,33 +15078,46 @@ 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 `." +msgid "" +"Most of the above imply single-user deployments. For multi-component server " +"applications, see :gh:`Chef Omnibus `." msgstr "" -"ສ່ວນໃຫຍ່ຂ້າງເທິງນັ້ນແມ່ນສຳລັບການຕິດຕັ້ງໃຫ້ຜູ້ໃຊ້ຄົນດຽວ. ສຳລັບແອັບພລິເຄຊັນເຊີເວີທີ່ມີຫຼາຍສ່ວນປະກອບ, ໃຫ້ເບິ່" -"ງ :gh:`Chef Omnibus`." +"ສ່ວນໃຫຍ່ຂ້າງເທິງນັ້ນແມ່ນສຳລັບການຕິດຕັ້ງໃຫ້ຜູ້ໃຊ້ຄົນດຽວ. ສຳລັບແອັບພລິເຄຊັນເຊີເວີທີ່ມີຫຼາຍສ່ວນປະກອບ, " +"ໃຫ້ເບິ່ງ :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*." +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*." +"ລະບົບປະຕິບັດການຈຳນວນຫຼາຍຂຶ້ນ ລວມທັງ 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." +msgid "" +"These techniques are mostly Python agnostic, because they package whole OS " +"filesystems, not just Python or Python packages." msgstr "" -"ເຕັກນິກເຫຼົ່ານີ້ສ່ວນໃຫຍ່ບໍ່ຂຶ້ນກັບ Python ໂດຍກົງ, ເພາະວ່າພວກມັນເຮັດແພັກເກດທັງໝົດຂອງລະບົບໄຟລ໌ລະບົບປະຕິບັ" -"ດການ, ບໍ່ແມ່ນພຽງແຕ່ Python ຫຼື ແພັກເກດ Python." +"ເຕັກນິກເຫຼົ່ານີ້ສ່ວນໃຫຍ່ບໍ່ຂຶ້ນກັບ 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:" +msgid "" +"Adoption is most extensive among Linux servers, where the technology " +"originated and where the technologies below work best:" msgstr "" -"ການນຳໃຊ້ແມ່ນມີຄວາມແຜ່ຫຼາຍທີ່ສຸດໃນບັນດາເຊີເວີ Linux, ເຊິ່ງເປັນບ່ອນທີ່ເຕັກໂນໂລຊີນີ້ກຳເນີດຂຶ້ນ ແລະ ເປັນບ່ອ" -"ນທີ່ເຕັກໂນໂລຊີລຸ່ມນີ້ເຮັດວຽກໄດ້ດີທີ່ສຸດ:" +"ການນຳໃຊ້ແມ່ນມີຄວາມແຜ່ຫຼາຍທີ່ສຸດໃນບັນດາເຊີເວີ Linux, ເຊິ່ງເປັນບ່ອນທີ່ເຕັກໂນໂລຊີນີ້ກຳເນີດຂຶ້ນ ແລະ " +"ເປັນບ່ອນທີ່ເຕັກໂນໂລຊີລຸ່ມນີ້ເຮັດວຽກໄດ້ດີທີ່ສຸດ:" #: ../source/overview.rst:334 msgid "`AppImage `_" @@ -11058,18 +15140,25 @@ 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." +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 ແມ່ນວິທີ" -"ການທີ່ໝັ້ນຄົງ ແລະ ແຜ່ຫຼາຍໃນສະພາບແວດລ້ອມສູນຂໍ້ມູນ." +"ລະບົບປະຕິບັດການຄອມພິວເຕີສ່ວນໃຫຍ່ຮອງຮັບການເຮັດ 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:" +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 ໂດຍກົງ ແລະ ລ" -"ວມມີ:" +"ເຕັກນິກເຫຼົ່ານີ້ສ່ວນໃຫຍ່ແມ່ນສະຫງວນໄວ້ສຳລັບການຕິດຕັ້ງຂະໜາດໃຫຍ່ໃນສູນຂໍ້ມູນ, " +"ເຖິງແມ່ນວ່າແອັບພລິເຄຊັນທີ່ຊັບຊ້ອນບາງຢ່າງສາມາດໄດ້ຮັບຜົນປະໂຫຍດຈາກການເຮັດແພັກເກດນີ້. " +"ເຕັກໂນໂລຊີເຫຼົ່ານີ້ບໍ່ຂຶ້ນກັບ Python ໂດຍກົງ ແລະ ລວມມີ:" #: ../source/overview.rst:351 msgid "KVM on Linux" @@ -11080,11 +15169,16 @@ msgid "Hyper-V on Windows" msgstr "Hyper-V ເທິງ Windows" #: ../source/overview.rst:353 -msgid "`VHD `_, `AMI `_, and :doc:`other formats `" +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" +msgid "" +"`OpenStack `_ - A cloud " +"management system written in Python, with extensive VM support" msgstr "" "`OpenStack `_ - ລະບົບຈັດການຄລາວ " "(cloud) ທີ່ຂຽນດ້ວຍ Python, ພ້ອມການຮອງຮັບ VM ທີ່ກວ້າງຂວາງ" @@ -11094,19 +15188,29 @@ 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." +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." +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." +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, ຈາກນັ້ນສົ່ງມອບມັນໃຫ້ກັບສູນຂໍ້ມູນ ຫຼື ບ້ານຂອງຜູ້ໃຊ້. ພວກເຂົາພຽງແຕ່ສຽບປລັກແລ້ວກໍໃຊ້ງານໄດ້ເລີຍ." @@ -11116,46 +15220,68 @@ 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." +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." +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 ຈາກຊອສດຽວກັນ." +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 ເປັນພຽງສ່ວນໜຶ່ງຂອງພາບລວມທັງໝົດ." +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." +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`." +":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." +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 ຄືກັບທີ່ເຮັດໃນສະພາບແວດລ້ອມການພັດທະນາ. ພາບລວມຂ້າງເທິງມີວິທີແກ້ໄຂທີ່ດີກວ່າຫຼາຍ." @@ -11165,46 +15291,70 @@ 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." +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, ທ່ານຈະຕ້" -"ອງສ້າງໃໝ່. ຄວາມແຕກຕ່າງນີ້ເຮັດໃຫ້ທາງເລືອກໃດໜຶ່ງປອດໄພກວ່າຫຼືບໍ່ນັ້ນ ຍັງຄົງເປັນຫົວຂໍ້ທີ່ມີການຖົກຖຽງກັນມາແຕ່ດົນ" -"ນານ." +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 ຕ້ອງຈ່າຍ ເພື່ອແລກກັບການໃຊ້ພາສາທີ່ມີຄວາມສົມດຸນ ແລະ ຢືດ" -"ຢຸ່ນທີ່ສຸດພາສາໜຶ່ງ." +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." +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' ມາດຕະຖານ." +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" @@ -11227,13 +15377,16 @@ 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." +msgid "" +"Check that installer is compatible with Wheel-Version. Warn if minor " +"version is greater, abort if major version is greater." msgstr "" -"ກວດສອບວ່າຕົວຕິດຕັ້ງເຂົ້າກັນໄດ້ກັບ Wheel-Version ຫຼື ບໍ່. ເຕືອນຖ້າເວີຊັນຍ່ອຍສູງກວ່າ, ຍົກເລີກຖ້າເວີຊັນຫຼັກສູ" -"ງກວ່າ." +"ກວດສອບວ່າຕົວຕິດຕັ້ງເຂົ້າກັນໄດ້ກັບ Wheel-Version ຫຼື ບໍ່. ເຕືອນຖ້າເວີຊັນຍ່ອຍສູງກວ່າ, " +"ຍົກເລີກຖ້າເວີຊັນຫຼັກສູງກວ່າ." #: ../source/specifications/binary-distribution-format.rst:34 -msgid "If Root-Is-Purelib == 'true', unpack archive into purelib (site-packages)." +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 @@ -11245,37 +15398,47 @@ 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/``." +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 `." +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) ໄປຫາໄດເຣັກທໍຣີປາຍທາງ." +"ຍ້າຍແຕ່ລະໂຄງສ້າງຍ່ອຍຂອງ ``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." +msgid "" +"If applicable, update scripts starting with ``#!python`` to point to the " +"correct interpreter." msgstr "" -"ຖ້າເປັນໄປໄດ້, ໃຫ້ອັບເດດສະຄຣິບທີ່ຂຶ້ນຕົ້ນດ້ວຍ ``#!python`` ໃຫ້ຊີ້ໄປຫາຕົວແປພາສາ (interpreter) ທີ່ຖື" -"ກຕ້ອງ." +"ຖ້າເປັນໄປໄດ້, ໃຫ້ອັບເດດສະຄຣິບທີ່ຂຶ້ນຕົ້ນດ້ວຍ ``#!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`` ດ້ວຍເສັ້ນທາງທີ່ຕິດຕັ້ງແລ້ວ." +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.)" +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 ກໍຕາມ.)" +"ຄອມພາຍ (Compile) ໄຟລ໌ .py ທີ່ຕິດຕັ້ງແລ້ວໃຫ້ເປັນ .pyc. " +"(ຕົວຖອນການຕິດຕັ້ງຄວນຈະສະຫຼາດພໍທີ່ຈະລົບ .pyc ອອກ ເຖິງແມ່ນວ່າຈະບໍ່ໄດ້ລະບຸໄວ້ໃນ RECORD ກໍຕາມ.)" #: ../source/specifications/binary-distribution-format.rst:57 msgid "Recommended installer features" @@ -11286,28 +15449,37 @@ 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." +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." +"ໃນ 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." +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)." +"ອະນຸຍາດໃຫ້ໃຊ້ຮູບແບບ ``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." +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 ອາດຈະຕ້ອງກາ" -"ນເພີ່ມພວກມັນໃນລະຫວ່າງການຕິດຕັ້ງ." +"ໃນ wheel, ສະຄຣິບທີ່ເຮັດແພັກເກດໃນລະບົບ Unix ຈະບໍ່ມີຕົວຫຸ້ມ .exe. ຕົວຕິດຕັ້ງ Windows " +"ອາດຈະຕ້ອງການເພີ່ມພວກມັນໃນລະຫວ່າງການຕິດຕັ້ງ." #: ../source/specifications/binary-distribution-format.rst:75 msgid "Recommended archiver features" @@ -11318,10 +15490,14 @@ 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." +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 ໄດ້ໂດຍບໍ່ຕ້ອງຂຽນໄຟລ໌ບີບອັດໃໝ່ທັງໝົດ." +"ແນະນຳໃຫ້ຕົວຈັດເກັບໄຟລ໌ວາງໄຟລ໌ ``.dist-info`` ໄວ້ທີ່ສ່ວນທ້າຍຂອງໄຟລ໌ບີບອັດ. " +"ສິ່ງນີ້ຊ່ວຍໃຫ້ສາມາດແກ້ໄຂ metadata ໄດ້ໂດຍບໍ່ຕ້ອງຂຽນໄຟລ໌ບີບອັດໃໝ່ທັງໝົດ." #: ../source/specifications/binary-distribution-format.rst:85 #: ../source/specifications/pylock-toml.rst:51 @@ -11333,7 +15509,9 @@ 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``." +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``." @@ -11359,27 +15537,42 @@ 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``." +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 ອື່ນໆຄືກັນ" -"ໝົດ." +"ເລກລຳດັບການບິວ (ບໍ່ບັງຄັບ). ຕ້ອງຂຶ້ນຕົ້ນດ້ວຍຕົວເລກ. ໃຊ້ເພື່ອແຍກຄວາມແຕກຕ່າງຫາກຊື່ໄຟລ໌ 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." +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 "" -"ເລກການບິວບໍ່ແມ່ນສ່ວນໜຶ່ງຂອງເວີຊັນການແຈກຢາຍ ແລະ ຍາກທີ່ຈະອ້າງອີງຈາກພາຍນອກ." +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." +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" @@ -11408,57 +15601,87 @@ 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." +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 ໃດກໍໄດ້." +"'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." +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\" (ແທັກຄວາມເຂົ້າກັນໄ" -"ດ້)." +"ສາມສ່ວນປະກອບສຸດທ້າຍຂອງຊື່ໄຟລ໌ກ່ອນນາມສະກຸນເອີ້ນວ່າ \"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:" +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." +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 ``-``." +msgid "" +"Version numbers should be normalised according to the :ref:`Version " +"specifier specification `. Normalised version numbers " +"cannot contain ``-``." msgstr "" -"ເລກເວີຊັນຄວນຖືກເຮັດໃຫ້ເປັນມາດຕະຖານ (normalised). ເລກເວີຊັນທີ່ເປັນມາດຕະຖານແລ້ວບໍ່ສາມາດມີເຄື່ອງໝ" -"າຍ ``-``." +"ເລກເວີຊັນຄວນຖືກເຮັດໃຫ້ເປັນມາດຕະຖານ (normalised). " +"ເລກເວີຊັນທີ່ເປັນມາດຕະຖານແລ້ວບໍ່ສາມາດມີເຄື່ອງໝາຍ ``-``." #: ../source/specifications/binary-distribution-format.rst:159 -msgid "The remaining components may not contain ``-`` characters, so no escaping is necessary." -msgstr "" -"ສ່ວນປະກອບທີ່ເຫຼືອອາດຈະບໍ່ມີຕົວອັກສອນ ``-``, ດັ່ງນັ້ນຈຶ່ງບໍ່ຈຳເປັນຕ້ອງໃຊ້ escaping." +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." +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." +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``." +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 @@ -11466,16 +15689,25 @@ 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:" +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``, (ໂດຍການແທນທີ່ຕົວອັກສອນຂີດຕໍ່/``-`` ດ້ວຍຕົວອັກສອນຂີດກ້ອງ/``_`` ໃນທັງສອງຟິວ) ປະ" -"ກອບມີ:" +"` ຂອງແພັກເກດ, ຕົວຢ່າງ: ``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``." +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``." @@ -11485,29 +15717,40 @@ 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." +msgid "" +":file:`{distribution}-{version}.dist-info/licenses/` contains license files." msgstr "" -":file:`{distribution}-{version}.dist-info/licenses/` ບັນຈຸໄຟລ໌ໃບອະນຸຍາດ (license)" -"." +":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/`` ບັນຈຸໄດເຣັກທໍຣີຍ່ອຍສຳລັບແຕ່ລະຮູບແບບການຕິດຕັ້ງ." +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'``." +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." +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::" +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 ກ່ຽວກັບຕົວໄຟລ໌ບີບອັດເອງ." @@ -11516,39 +15759,55 @@ 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." +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." +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``." +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." +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 ສູງກວ່າເວີຊັນທີ່ມັນຮອງຮັບ." +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." +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." +"ເນື່ອງຈາກ 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." +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 @@ -11557,12 +15816,15 @@ 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." +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." +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 @@ -11570,20 +15832,31 @@ 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) ເພື່ອຄວາມປອດໄພ." +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." +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." +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 ທຽບກັບເນື້ອໃນໄຟລ໌." @@ -11592,9 +15865,11 @@ 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/` ຖືກສະຫງວນໄວ້ສຳລັບການໃຊ້ງານໃນອະນາຄົດ." +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" @@ -11638,17 +15913,25 @@ 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." +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/`." +"ຖ້າເວີຊັນ 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." +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)." @@ -11658,14 +15941,18 @@ 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." +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, ເອກະສານ ແລະ ອື່ນໆ." +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 @@ -11677,7 +15964,13 @@ 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." +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 @@ -11685,19 +15978,29 @@ 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\" ເອົາໄວ້." +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." +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\"." +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 @@ -11705,23 +16008,53 @@ 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." +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)." +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, ແຕ່ປົກກະຕິແລ້ວໂຄດມັກຈະຖືກຂ" -"ຽນໂດຍສົມມຸດວ່າມັນຖືກຕິດຕັ້ງຢ່າງສົມບູນແລ້ວ." +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 "" -"ຖ້າທ່ານບໍ່ແນ່ໃຈວ່າທ່ານຕ້ອງໃຊ້ຄຸນສົມບັດນີ້, ທ່ານກໍອາດຈະບໍ່ຈຳເປັນຕ້ອງໃຊ້ມັນ." +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 @@ -11750,22 +16083,31 @@ 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." +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`` ຄວນບັນຈຸພຽງແຕ່ໄຟລ໌ທຳມະດາ." +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`." +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." +msgid "" +"January 2025: Clarified that name and version needs to be normalized for " +"``.dist-info`` and ``.data`` directories." msgstr "" "ມັງກອນ 2025: ເຮັດໃຫ້ແຈ້ງເຈນວ່າຊື່ ແລະ ເວີຊັນຕ້ອງໄດ້ຮັບການເຮັດໃຫ້ເປັນມາດຕະຖານ (normalized)." @@ -11791,18 +16133,27 @@ 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." +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``)." +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`` ຈະຖືກຕິດຕັ້ງໃນໄດເຣັກທໍຣີໄລບຣາຣີມາດຕະ" -"ຖານ." +"ເລີ່ມຕົ້ນຈາກ Python 3.14, ໄຟລ໌ ``build-details.json`` " +"ຈະຖືກຕິດຕັ້ງໃນໄດເຣັກທໍຣີໄລບຣາຣີມາດຕະຖານ." #: ../source/specifications/build-details/index.rst:22 -msgid "Please refer to the :ref:`latest version ` for its specification." +msgid "" +"Please refer to the :ref:`latest version ` for its " +"specification." msgstr "ກະລຸນາອ້າງອີງ :ref:`ເວີຊັນຫຼ້າສຸດ ` ສຳລັບຂໍ້ກຳນົດ." #: ../source/specifications/build-details/index.rst:28 @@ -11840,7 +16191,9 @@ 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" +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" @@ -11854,7 +16207,9 @@ 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*" +msgid "" +"*build-details.json — a static description file with build details of Python " +"installations*" msgstr "" "*build-details.json — ໄຟລ໌ຄຳອະທິບາຍແບບ static ພ້ອມລາຍລະອຽດການບິວຂອງການຕິດຕັ້ງ " "Python*" @@ -11880,15 +16235,29 @@ 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." +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``." +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``)." +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 @@ -11912,9 +16281,10 @@ 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)." +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" @@ -11941,7 +16311,9 @@ 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." +msgid "" +"This field **MUST** be present if the installation provides an interpreter " +"executable." msgstr "ຟິລ (field) ນີ້ **ຕ້ອງ** ມີຢູ່ຫາກການຕິດຕັ້ງມີໄຟລ໌ລັນຂອງຕົວແປພາສາ." #: ../source/specifications/build-details/v1.0.rst:12 @@ -11981,11 +16353,14 @@ 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." +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()``." +msgid "" +"This field **SHOULD** be equivalent to ``sysconfig.get_python_version()``." msgstr "ຟິລນີ້ **ຄວນ** ຈະທຽບເທົ່າກັບ ``sysconfig.get_python_version()``." #: ../source/specifications/build-details/v1.0.rst:12 @@ -12093,7 +16468,11 @@ 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." +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 @@ -12113,9 +16492,10 @@ 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` ທີ່ບັນຈຸເວີຊັນຂອງການເຮັດວຽກ." +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" @@ -12147,7 +16527,9 @@ 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." +msgid "" +"The flags **MUST** be defined in the order they appear on the extension " +"suffix." msgstr "ແຟລັກ **ຕ້ອງ** ຖືກກຳນົດຕາມລຳດັບທີ່ປາກົດໃນນາມສະກຸນສ່ວນເສີມ." #: ../source/specifications/build-details/v1.0.rst:12 @@ -12167,11 +16549,14 @@ 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." +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." +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 @@ -12187,9 +16572,10 @@ 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." +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" @@ -12204,14 +16590,20 @@ 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." +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." +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 ໃຫ້ປະເພດສ່ວນເສີມອື່ນໆ, ພວກເຂົາ **ອາດຈະ** ເພີ່ມສ່ວນຍ່ອຍ" -"ໃຫ້ກັບພວກມັນ." +"ນອກຈາກນັ້ນ, ຫາກການເຮັດວຽກຂອງ Python ໃຫ້ປະເພດສ່ວນເສີມອື່ນໆ, ພວກເຂົາ **ອາດຈະ** " +"ເພີ່ມສ່ວນຍ່ອຍໃຫ້ກັບພວກມັນ." #: ../source/specifications/build-details/v1.0.rst:12 msgid "source" @@ -12258,7 +16650,9 @@ 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." +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 @@ -12270,9 +16664,10 @@ 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`` ແບບໄດນາມິກ." +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" @@ -12291,7 +16686,10 @@ 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." +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." @@ -12317,9 +16715,10 @@ 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`` ແບບສະແຕຕິກ." +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" @@ -12350,7 +16749,9 @@ 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." +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 @@ -12378,7 +16779,9 @@ 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." +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 @@ -12398,9 +16801,11 @@ 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 "" -"ນີ້ແມ່ນໃຊ້ເປັນທາງເລືອກໃນການລວມຂໍ້ມູນທີ່ກ່ຽວຂ້ອງໃດໆ ທີ່ບໍ່ໄດ້ກວມເອົາໃນຂໍ້ກຳນົດນີ້." +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" @@ -12411,9 +16816,10 @@ 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 "" -"ຟິລທີ່ກຳນົດໃນຂໍ້ກຳນົດຕໍ່ໄປນີ້ຄວນຖືວ່າຖືກຕ້ອງ, ສົມບູນ ແລະ ບໍ່ມີການປ່ຽນແປງ. ຟິລທີ່ບັງຄັບແມ່ນ:" +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``" @@ -12432,22 +16838,42 @@ 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." +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." +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." +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." +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`, ຂໍ້ກຳນົດຮູບແບບຟິລລະບຸເວີຊັນໄດ້ຖືກຜ່ອນຜັນ." @@ -12456,17 +16882,27 @@ 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\"." +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)." +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`` ສູງກວ່າເວີຊັນທີ່ພວກມັນຮ" -"ອງຮັບ." +"ເຄື່ອງມືອັດຕະໂນມັດທີ່ໃຊ້ 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." +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 ທີ່ຕໍ່າທີ່ສຸດ." @@ -12503,20 +16939,27 @@ 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 `." +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) ກ່ອນ." +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 `." +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 @@ -12524,64 +16967,99 @@ 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." +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 ນັ້ນ." +"ຟິລທີ່ໃຊ້ໄດ້ຫຼາຍຄັ້ງເຊິ່ງມີຢູ່ໃນ 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." +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:" +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." +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." +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." +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." +"ຫາກຟິລທີ່ໃຊ້ໄດ້ຫຼາຍຄັ້ງມີຢູ່ໃນ 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)." +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`` ແມ່ນເພື່ອເປັນຂໍ້ມູນເທົ່ານັ້ນ." +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``." +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`." +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." +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 @@ -12605,7 +17083,11 @@ 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." +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." @@ -12622,49 +17104,85 @@ 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." +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." +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]_." +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." +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 ຕົວດຽວ." +"ການເຂົ້າລະຫັດນີ້ໝາຍຄວາມວ່າ ທຸກໆການປາກົດຂອງ 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 "" -"ອີກທາງເລືອກໜຶ່ງ, ຄຳອະທິບາຍຂອງການແຈກຢາຍອາດຈະຖືກລະບຸໄວ້ໃນສ່ວນເນື້ອຫາຂອງຂໍ້ຄວາມ." +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." +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 ແລະ ຮູບແບບອື່ນໆໄດ້." +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:" +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) ເພີ່ມເຕີມໄດ້:" +"1341 `_). ໂດຍຫຍໍ້, " +"ນີ້ໝາຍຄວາມວ່າມັນມີສ່ວນ ``type/subtype`` ແລະ ສາມາດມີ ພາລາມິເຕີ (parameters) ເພີ່ມເຕີມໄດ້:" #: ../source/specifications/core-metadata.rst:287 msgid "Format::" @@ -12687,17 +17205,24 @@ 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``." +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`` ໂດຍອັດຕະໂນມັດ." +"ພາລາມິເຕີ ``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:" +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`` ຖ້າບໍ່ໄດ້ລະບຸ). ໃນປັດຈຸບັນ, ມີສອງຮູບແບບທີ່ຮອງຮັບ:" +"``markdown``, ຈະມີພາລາມິເຕີ ``variant`` ທີ່ສາມາດລະບຸຮູບແບບຂອງ Markdown ທີ່ໃຊ້ໄດ້ " +"(ຄ່າເລີ່ມຕົ້ນແມ່ນ ``GFM`` ຖ້າບໍ່ໄດ້ລະບຸ). ໃນປັດຈຸບັນ, ມີສອງຮູບແບບທີ່ຮອງຮັບ:" #: ../source/specifications/core-metadata.rst:306 msgid "``GFM`` for :rfc:`GitHub-flavored Markdown <7764#section-3.2>`" @@ -12708,68 +17233,91 @@ 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." +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)." +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``." +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." +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`` ໂດຍເລີ່ມຕົ້ນ, ເຊິ່ງມັນຈະມີຄ່າເທົ່າກັບຕົວຢ່າງກ່ອນໜ້ານັ້ນ." +"ດັ່ງນັ້ນ, ສຳລັບຕົວຢ່າງສຸດທ້າຍຂ້າງເທິງ, ``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." +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." +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 ໄດ້ນຳໃ" -"ຊ້ເຄື່ອງໝາຍຈຸດແທນ. ເນື່ອງຈາກເຄື່ອງມືເຫຼົ່ານີ້ຖືກນຳໃຊ້ຢ່າງກວ້າງຂວາງ ມາເປັນເວລາຫຼາຍປີ, ມັນຈຶ່ງງ່າຍກວ່າທີ່ຈະ" -"ປັບປຸງຂໍ້ກຳນົດໃຫ້ກົງກັບມາດຕະຖານທີ່ໃຊ້ກັນແທ້." +"ໃນເມື່ອກ່ອນ ຂໍ້ກຳນົດໄດ້ສະແດງຄຳສັບຫຼັກໂດຍແຍກດ້ວຍຍະຫວ່າງ, ແຕ່ 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 "" -"ຂໍ້ຄວາມທີ່ລະບຸຊື່ຂອງຜູ້ຂຽນເປັນຢ່າງໜ້ອຍ; ສາມາດໃຫ້ຂໍ້ມູນການຕິດຕໍ່ເພີ່ມເຕີມໄດ້." +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." +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::" +msgid "" +"Per RFC-822, this field may contain multiple comma-separated e-mail " +"addresses::" msgstr "ຕາມ RFC-822, ຊ່ອງຂໍ້ມູນນີ້ອາດຈະມີຫຼາຍອີເມລ ໂດຍແຍກດ້ວຍເຄື່ອງໝາຍຈຸດ::" #: ../source/specifications/core-metadata.rst:407 @@ -12777,31 +17325,40 @@ 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 "" -"ຂໍ້ຄວາມທີ່ລະບຸຊື່ຂອງຜູ້ດູແລເປັນຢ່າງໜ້ອຍ; ສາມາດໃຫ້ຂໍ້ມູນການຕິດຕໍ່ເພີ່ມເຕີມໄດ້." +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``." +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``." +"ໝາຍເຫດ: ຊ່ອງຂໍ້ມູນນີ້ມີໄວ້ສຳລັບໃຊ້ໃນກໍລະນີທີ່ໂຄງການຖືກດູແລໂດຍບຸກຄົນອື່ນທີ່ບໍ່ແມ່ນ ຜູ້ຂຽນດັ້ງເດີມ: " +"ຄວນລະໄວ້ຖ້າຫາກວ່າມັນຄືກັນກັບ ``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." +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``." +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``." +"ໝາຍເຫດ: ຊ່ອງຂໍ້ມູນນີ້ມີໄວ້ສຳລັບໃຊ້ໃນກໍລະນີທີ່ໂຄງການຖືກດູແລໂດຍບຸກຄົນອື່ນທີ່ບໍ່ແມ່ນ ຜູ້ຂຽນດັ້ງເດີມ: " +"ຄວນລະໄວ້ຖ້າຫາກວ່າມັນຄືກັນກັບ ``Author-email``." #: ../source/specifications/core-metadata.rst:454 msgid "License" @@ -12812,62 +17369,90 @@ 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 `__." +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 `__." +"ຕັ້ງແຕ່ 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." +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``, ຫຼື ເພື່ອລະ" -"ບຸການປ່ຽນແປງ ຫຼື ຂໍ້ຍົກເວັ້ນຂອງໃບອະນຸຍາດດັ່ງກ່າວ." +"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`." +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`." +"ຂໍ້ຄວາມທີ່ເປັນ 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)." +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 ອື່ນໆ)." +"ໝາຍເຫດ: ການລະບຸໃນຊ່ອງຂໍ້ມູນນີ້ມີຜົນສະເພາະກັບ :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`." +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`." +"ແຕ່ລະລາຍການແມ່ນຂໍ້ຄວາມທີ່ລະບຸເສັ້ນທາງ (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 `__." +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/`." +"ແຕ່ລະລາຍການແມ່ນຂໍ້ຄວາມທີ່ລະບຸຄ່າການຈັດປະເພດຢ່າງໃດຢ່າງໜຶ່ງສຳລັບຊຸດໂປຣແກຣມ. " +"ການຈັດປະເພດຖືກອະທິບາຍໄວ້ໃນ :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 `_." +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 ` then it may prevent installation on Python < 3.6 by specifying::" +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 ໂດຍການລະບຸ::" +"ຕົວຢ່າງ, ຖ້າຊຸດໂປຣແກຣມໃຊ້ :ref:`f-strings `, ມັນອາດຈະ " +"ປ້ອງກັນການຕິດຕັ້ງໃນ Python ທີ່ຕ່ຳກວ່າ 3.6 ໂດຍການລະບຸ::" #: ../source/specifications/core-metadata.rst:619 msgid "This field cannot be followed by an environment marker." @@ -12968,24 +17573,34 @@ 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." +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``." +"ແຕ່ລະລາຍການປະກອບມີຂໍ້ຄວາມທີ່ອະທິບາຍເຖິງສິ່ງທີ່ຈຳເປັນບາງຢ່າງໃນລະບົບທີ່ຊຸດໂປຣແກຣມ ຕ້ອງການໃຊ້. " +"ຊ່ອງຂໍ້ມູນນີ້ມີຈຸດປະສົງເພື່ອເປັນຄຳແນະນຳໃຫ້ກັບຜູ້ດູແລໂຄງການປາຍທາງ, ແລະ " +"ບໍ່ມີຄວາມໝາຍທາງໄວຍາກອນສຳລັບຊຸດໂປຣແກຣມ ``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." +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." +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 `: ແຕ່" -"ຄວນກົງກັບຮູບແບບເວີຊັນທີ່ໃຊ້ໂດຍຊອບແວພາຍນອກນັ້ນ." +"ເນື່ອງຈາກມັນອ້າງອີງເຖິງຊອບແວທີ່ບໍ່ແມ່ນ 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." @@ -12996,7 +17611,9 @@ 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." +msgid "" +"A string containing a browsable URL for the project and a label for it, " +"separated by a comma." msgstr "" "ຂໍ້ຄວາມທີ່ປະກອບມີ URL ຂອງໂຄງການທີ່ສາມາດເຂົ້າເບິ່ງໄດ້ ແລະ ປ້າຍຊື່ (label), ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດ." @@ -13005,93 +17622,143 @@ 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`." +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`." +"ເລີ່ມຕັ້ງແຕ່ :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." +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:`` ແລະ ໄດ້ມີການນຳໃຊ້ກົດເກນການ" -"ປັບຄ່າມາດຕະຖານ." +":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)::" +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 ຕໍ່ໄປນີ້ (ເຊິ່ງຮັບປະກັນວ່າຈະບໍ່ມີຄວາມກຳກວມ)::" +"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." +msgid "" +"The specified name may be used to make a dependency conditional on whether " +"the optional feature has been requested." msgstr "" -"ຊື່ທີ່ລະບຸໄວ້ອາດຖືກໃຊ້ເພື່ອເຮັດໃຫ້ສິ່ງທີ່ຈຳເປັນ (dependency) ຂຶ້ນກັບເງື່ອນໄຂ ວ່າໄດ້ມີການຮ້ອງຂໍຟີເຈີເສີມນັ້ນຫຼື" -"ບໍ່." +"ຊື່ທີ່ລະບຸໄວ້ອາດຖືກໃຊ້ເພື່ອເຮັດໃຫ້ສິ່ງທີ່ຈຳເປັນ (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." +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." +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`` ແມ່ນຖືກສະຫງວນໄວ້ເພື່ອໝາຍເຖິງ ສິ່ງທີ່ຈຳເປັນສຳລັບການທົດສອບອັ" -"ດຕະໂນມັດ ແລະ ການສ້າງເອກະສານ ຕາມລຳດັບ." +"ຊື່ຟີເຈີສອງຢ່າງຄື ``test`` ແລະ ``doc`` ແມ່ນຖືກສະຫງວນໄວ້ເພື່ອໝາຍເຖິງ " +"ສິ່ງທີ່ຈຳເປັນສຳລັບການທົດສອບອັດຕະໂນມັດ ແລະ ການສ້າງເອກະສານ ຕາມລຳດັບ." #: ../source/specifications/core-metadata.rst:720 -msgid "It is legal to specify ``Provides-Extra:`` without referencing it in any ``Requires-Dist:``." +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." +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." +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 ເວີຊັນເກົ່າ." +"ເວີຊັນໃໝ່. ຖ້າຄ່າໃດນັ້ນບໍ່ຖືກຕ້ອງຕາມກົດເກນຂອງ ``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 ສຳລັບການປ່ອຍໂຄງການນັ້ນ." +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." +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 ຂອງໂຄງ" -"ການ." +"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``." +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`` " @@ -13099,52 +17766,83 @@ msgstr "" #: ../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." +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``, ເຄື່ອງມືຕ້ອງແຈ້ງຂໍ້ຜິ" -"ດພາດເນື່ອງຈາກມີຄວາມກຳກວມ." +"ຖ້າໂຄງການລະບຸຊື່ດຽວກັນໃນທັງ ``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) ໂຄ້ດຂອງອີກໂຄງການໜຶ່ງ ໂດຍບໍ່" -"ຕັ້ງໃຈ. ເຄື່ອງມືອາດຈະເຕືອນ ຫຼື ແຈ້ງຂໍ້ຜິດພາດເມື່ອຕິດຕັ້ງໂຄງການລົງໃນ ສະພາບແວດລ້ອມທີ່ມີຊື່ການນຳເຂົ້າທັບຊ້ອນ" -"ກັບໂຄງການທີ່ຕິດຕັ້ງໄວ້ກ່ອນແລ້ວ." +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)." +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 ໃດໆ ໃນໄຟລ໌ຊຸດໂປຣແກຣມ)." +"ໂຄງການອາດຈະປະຊ່ອງຂໍ້ມູນ ``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 ເວີຊັນເກົ່າ ຫຼື ບໍ່ໄ" -"ດ້ລະບຸໄວ້), ເຄື່ອງມືຈຶ່ງບໍ່ມີຂໍ້ມູນວ່າໂຄງການນັ້ນສະໜອງຊື່ອັນໃດແດ່. ເຖິງຢ່າງໃດກໍຕາມ, ໃນທາງປະຕິບັດ ໂຄງການສ່" -"ວນໃຫຍ່ມັກຈະມີຊື່ໂຄງການກົງກັບຊື່ການນຳເຂົ້າ. ດັ່ງນັ້ນ, ມັນຈຶ່ງເປັນ ການຄາດເດົາທີ່ສົມເຫດສົມຜົນວ່າ ຊື່ໂຄງການທີ່ຖື" -"ກປັບຮູບແບບໃຫ້ເປັນຊື່ການນຳເຂົ້າ (ເຊັ່ນ: ການປ່ຽນ \"-\" ເປັນ \"_\") ສາມາດນຳມາໃຊ້ໄດ້ ຫາກຕ້ອງການຂໍ້" -"ມູນດັ່ງກ່າວ." +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`` ສາມາດຕິດຕັ້ງ ຮ່ວມກັນໄດ້ໂດຍບໍ່ມີການທັບຊ້ອນກັນ." +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." +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 ສຳລັບການປ່ອຍໂຄງການນັ້ນ." +"ຊື່ການນຳເຂົ້າທີ່ລະບຸໃນຊ່ອງນີ້ຕ້ອງສາມາດນຳເຂົ້າໄດ້ ເມື່ອໂຄງການຖືກຕິດຕັ້ງໃນບາງ " +"ແພລັດຟອມສຳລັບເວີຊັນດຽວກັນ. ນີ້ໝາຍຄວາມວ່າ metadata ຕ້ອງສອດຄ່ອງກັນໃນ ທຸກ sdist ແລະ wheel " +"ສຳລັບການປ່ອຍໂຄງການນັ້ນ." #: ../source/specifications/core-metadata.rst:822 msgid "Note that ``Import-Namespace`` CANNOT be empty like ``Import-Name``." @@ -13155,31 +17853,51 @@ 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 `__." +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 `__." +"ຊ່ອງຂໍ້ມູນໃນສ່ວນນີ້ແມ່ນບໍ່ຄ່ອຍໄດ້ໃຊ້ໃນປັດຈຸບັນ, ເນື່ອງຈາກການອອກແບບຂອງມັນ " +"ໄດ້ຮັບແຮງບັນດານໃຈມາຈາກລະບົບການຈັດການຊຸດໂປຣແກຣມໃນ 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 ເນື່ອງຈາກຍັງອາດມີປະໂຫຍ" -"ດໃນການໃຫ້ຂໍ້ມູນ, ແລະ ສາມາດໃຊ້ເພື່ອຈຸດປະສົງເດີມຂອງມັນຮ່ວມກັບຄັງຊຸດໂປຣແກຣມທີ່ຖືກຄັດສັນເປັນພິເສດ." +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)." +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``, ຕາມດ້ວຍເວີຊັນ: ຊື່ (ເວີຊັນ)." +"ແຕ່ລະລາຍການປະກອບມີຂໍ້ຄວາມທີ່ລະບຸຊື່ໂຄງການ 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``." +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`` ໃນເມື່ອກ່ອນເຄີຍ ລວມເອົາໂຄງການ " @@ -13187,36 +17905,54 @@ msgstr "" "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``, ເຊິ່ງຊ່ວຍໃຫ້ໂຄງການອື່ນໆ ຕ້ອງການພຽງແຕ່ໃຫ້ມີໂຄງການໃດໜຶ່ງ ໃນນັ້ນຕິດຕັ້ງໄວ້ກໍພໍ." +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." +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`. ຖ້າບໍ່ໄດ້ລະບຸ, ຈະ" -"ຖືວ່າເປັນເວີຊັນດຽວກັນກັບຊຸດໂປຣແກຣມນັ້ນ." +"ສາມາດລະບຸເວີຊັນໄດ້ ແລະ ຕ້ອງປະຕິບັດຕາມກົດເກນໃນ :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." +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 ທີ່ຊຸດໂປຣແກຣມນີ້ ເຮັດໃຫ້ລ້າສະໄໝ ຫຼື ເຂົ້" -"າມາແທນທີ່, ໝາຍຄວາມວ່າສອງໂຄງການນີ້ບໍ່ຄວນຕິດຕັ້ງ ພ້ອມກັນໃນເວລາດຽວກັນ." +"ແຕ່ລະລາຍການປະກອບມີຂໍ້ຄວາມທີ່ລະບຸຊື່ຊຸດໂປຣແກຣມຂອງ 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`." +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." +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 ກໍຄວນຈະຖືກຖອນອອກ." @@ -13226,11 +17962,16 @@ 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." +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. ເຄື່ອງມືຄວນຈະເຕືອນຜູ້ໃຊ້ເມື່" -"ອມີການນຳໃຊ້ຊ່ອງຂໍ້ມູນເຫຼົ່ານີ້." +"ຊ່ອງຂໍ້ມູນທີ່ຖືກຍົກເລີກ (deprecated) ຄວນຫຼີກລ່ຽງການນຳໃຊ້, ແຕ່ພວກມັນຍັງເປັນຊ່ອງ metadata " +"ທີ່ໃຊ້ໄດ້ຢູ່. ພວກມັນອາດຈະຖືກຕັດອອກໃນເວີຊັນຕໍ່ໆ ໄປຂອງມາດຕະຖານ core metadata. " +"ເຄື່ອງມືຄວນຈະເຕືອນຜູ້ໃຊ້ເມື່ອມີການນຳໃຊ້ຊ່ອງຂໍ້ມູນເຫຼົ່ານີ້." #: ../source/specifications/core-metadata.rst:930 msgid "Home-page" @@ -13250,11 +17991,15 @@ 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``\".)" +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``\".)" +"\"``.../BeagleVote-latest.tgz``\", ແຕ່ຕ້ອງເປັນແບບ \"``.../" +"BeagleVote-0.45.tgz``\".)" #: ../source/specifications/core-metadata.rst:961 msgid "Requires" @@ -13265,36 +18010,53 @@ 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 ນີ້ຕ້ອງການ." +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." +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``, ແລະ ສ" -"າມາດຕາມດ້ວຍການລະບຸເວີຊັນພາຍໃນວົງເລັບໄດ້." +"ຮູບແບບຂອງຂໍ້ຄວາມຄວາມຕ້ອງການແມ່ນຄືກັນກັບຊື່ 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``." +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." +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\" ແມ່ນການລະບຸ" -"ເວີຊັນທີ່ຖືກຕ້ອງ." +"ສາມາດລະບຸຕົວດຳເນີນການເງື່ອນໄຂຈັກອັນກໍໄດ້, ເຊັ່ນ: ຂໍ້ຄວາມ \">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\"." +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." +msgid "" +"There’s no canonical list of what strings should be used; the Python " +"community is left to choose its own standards." msgstr "" "ບໍ່ມີລາຍຊື່ມາດຕະຖານຕາຍຕົວວ່າຄວນໃຊ້ຂໍ້ຄວາມໃດ; ຊຸມຊົນ Python ສາມາດເລືອກ ມາດຕະຖານຂອງຕົນເອງໄດ້." @@ -13307,11 +18069,16 @@ 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." +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 ນັ້ນ." +"ຂໍ້ຄວາມເຫຼົ່ານີ້ຄວນກົງກັບທີ່ໃຊ້ໃນຊ່ອງຄວາມຕ້ອງການ (Requirements). ສາມາດລະບຸເວີຊັນໄດ້ " +"(ໂດຍບໍ່ຕ້ອງມີຕົວດຳເນີນການປຽບທຽບ); ຖ້າບໍ່ໄດ້ລະບຸ, ຈະຖືວ່າ ເປັນເວີຊັນດຽວກັນກັບ package ນັ້ນ." #: ../source/specifications/core-metadata.rst:1023 msgid "Obsoletes" @@ -13322,13 +18089,19 @@ 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." +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 ນີ້ບໍ່ຄວນຕິດຕັ້ງພ້ອມກັນ. ສາມາດລະບຸເວີຊັນໄດ້." +"ແຕ່ລະລາຍການປະກອບມີຂໍ້ຄວາມທີ່ລະບຸ 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." +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 ກໍຄວນຈະຖືກຖອນອອກ." @@ -13390,7 +18163,9 @@ 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." +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." @@ -13408,24 +18183,31 @@ 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." +msgid "" +"October 2025: Clarified that ``License-Expression`` applies to the " +"containing distribution file and not the project itself." msgstr "" -"ຕຸລາ 2025: ຊີ້ແຈງວ່າ ``License-Expression`` ມີຜົນກັບໄຟລ໌ຊຸດໂປຣແກຣມທີ່ບັນຈຸ ມັນຢູ່ ແລະ ບໍ່ມີຜົນກັບຕົ" -"ວໂຄງການໂດຍກົງ." +"ຕຸລາ 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`." +msgid "" +"January 2026: Replaced outdated direct reference to :pep:`508` with a " +"reference to :ref:`dependency-specifiers`." msgstr "" -"ມັງກອນ 2026: ປ່ຽນການອ້າງອີງໂດຍກົງເຖິງ :pep:`508` ທີ່ລ້າສະໄໝ ໄປເປັນການອ້າງອີງ ເຖິງ " -":ref:`dependency-specifiers` ແທນ." +"ມັງກອນ 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." +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 ໄວ້." @@ -13443,20 +18225,29 @@ 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." +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." +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) ແລ" -"ະ ການທົດສອບ, ລວມເຖິງໂຄງການທີ່ບໍ່ໄດ້ສ້າງຂຶ້ນເພື່ອແຈກຢາຍ ເຊັ່ນຊຸດຂອງສະຄຣິບຕ່າງໆ." +"ກຸ່ມສິ່ງທີ່ຈຳເປັນເໝາະສຳລັບການນຳໃຊ້ພາຍໃນໃນລະຫວ່າງການພັດທະນາ ເຊັ່ນການກວດສອບໂຄ້ດ (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)." +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``)." @@ -13466,36 +18257,52 @@ 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``::" +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." +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)." +"ກຸ່ມສິ່ງທີ່ຈຳເປັນຖືກກຳນົດເປັນຕາຕະລາງໃນ ``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." +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:`ປັບຄ່າມາດຕະຖາ" -"ນ ` ຊື່ເຫຼົ່ານີ້ ກ່ອນທີ່ຈະເຮັດການປຽບທຽບ." +"ຄີໃນ ``[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." +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." +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 " @@ -13507,111 +18314,160 @@ 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 ແມ່ນການລວມເອົາກຸ່ມສິ່ງທີ່ຈຳເປັນອື່ນເຂົ້າມາໄວ້ໃນກຸ່ມປັດຈຸບັນ." +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." +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\"``, ເຊິ່ງມີຄ່າ ເປັນຂໍ້ຄວາມລ" -"ະບຸຊື່ຂອງກຸ່ມສິ່ງທີ່ຈຳເປັນອື່ນ." +"ການລວມ (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\"]``." +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:" +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 ດຽວກັນຫຼາຍຄັ້ງ. ເຄື່ອງມືບໍ່ຄວນ ຕັດລາຍການທີ່ຊ້ຳອ" -"ອກ ຫຼື ປ່ຽນແປງເນື້ອຫາຂອງລາຍຊື່ທີ່ເກີດຈາກການລວມ. ຕົວຢ່າງ ຈາກຕາຕະລາງຕໍ່ໄປນີ້:" +"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." +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\"]``. ເ" -"ຄື່ອງມືຄວນຈັດການກັບລາຍຊື່ດັ່ງກ່າວຄືກັນກັບກໍລະນີອື່ນໆ ທີ່ມີການປະມວນຜົນຄວາມຕ້ອງການ ດຽວກັນຫຼາຍຄັ້ງດ້ວຍຂໍ້ຈຳກັດ" -"ເວີຊັນທີ່ແຕກຕ່າງກັນ." +"ຄ່າທີ່ໄດ້ຂອງ ``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." +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)" -", ແລະ ເຄື່ອງມືຄວນແຈ້ງຂໍ້ຜິດພາດຖ້າພົບວົງຈອນດັ່ງກ່າວ." +"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." +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 ບໍ່ຄວນມີຊ່ອ" -"ງຂໍ້ມູນທີ່ອ້າງອີງເຖິງກຸ່ມສິ່ງທີ່ຈຳເປັນ." +"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." +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 ທີ່ສ້າງແລ້ວ." +"``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." +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." +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 ໃຫ້ກົງກັບຊື່ກຸ່ມສິ່ງທີ່ຈຳເປັນ. ຢ່າງໃດກໍ" -"ຕາມ, ຜູ້ໃຊ້ຄວນຫຼີກລ່ຽງການຕັ້ງຊື່ໃຫ້ ຊ້ຳກັນ, ແລະ ເຄື່ອງມືອາດຈະຖືວ່າການທີ່ຊື່ຊ້ຳກັນນັ້ນເປັນຂໍ້ຜິດພາດ." +"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." +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 "" -"ເຄື່ອງມືຄວນແຈ້ງຂໍ້ຜິດພາດເມື່ອມີການປະເມີນ ຫຼື ປະມວນຜົນຂໍ້ມູນທີ່ບໍ່ຮູ້ຈັກໃນ ກຸ່ມສິ່ງທີ່ຈຳເປັນ." +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 "" -"ເຄື່ອງມືບໍ່ຄວນກວດສອບເນື້ອຫາຂອງ *ທຸກໆ* ກຸ່ມສິ່ງທີ່ຈຳເປັນ ຖ້າຫາກບໍ່ມີຄວາມຈຳເປັນຕ້ອງໃຊ້." +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:" +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`` ເທົ່ານັ້ນ:" +"ນີ້ໝາຍຄວາມວ່າຖ້າມີຂໍ້ມູນຕໍ່ໄປນີ້, ເຄື່ອງມືສ່ວນໃຫຍ່ຄວນອະນຸຍາດໃຫ້ໃຊ້ກຸ່ມ ``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." +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 ແລະ ເຄື່ອງມືກວດສອບຄວາມຖື" -"ກຕ້ອງ, ເພາະຈຸດປະສົງຂອງພວກມັນແມ່ນເພື່ອມວດສອບເນື້ອຫາ ຂອງທຸກໆ ກຸ່ມສິ່ງທີ່ຈຳເປັນ." +"ມີເຄື່ອງມືບາງປະເພດທີ່ມີເຫດຜົນພຽງພໍທີ່ຈະກວດສອບຢ່າງເຂັ້ມງວດ. ເຊັ່ນ Linters ແລະ " +"ເຄື່ອງມືກວດສອບຄວາມຖືກຕ້ອງ, ເພາະຈຸດປະສົງຂອງພວກມັນແມ່ນເພື່ອມວດສອບເນື້ອຫາ ຂອງທຸກໆ ກຸ່ມສິ່ງທີ່ຈຳເປັນ." #: ../source/specifications/dependency-groups.rst:157 #: ../source/specifications/inline-script-metadata.rst:134 @@ -13619,10 +18475,14 @@ 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." +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``." +"ຕົວຢ່າງການນຳໃຊ້ຕໍ່ໄປນີ້ຈະສະແດງເນື້ອຫາຂອງກຸ່ມສິ່ງທີ່ຈຳເປັນອອກທາງ stdout, " +"ໂດຍແຍກແຕ່ລະລາຍການດ້ວຍຂຶ້ນແຖວໃໝ່. ຜົນທີ່ໄດ້ຈຶ່ງເປັນຂໍ້ມູນທີ່ຖືກຕ້ອງຕາມ ຮູບແບບຂອງ " +"``requirements.txt``." #: ../source/specifications/dependency-groups.rst:252 msgid "October 2024: This specification was approved through :pep:`735`." @@ -13633,35 +18493,54 @@ 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." +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``." +"ເອກະສານນີ້ກຳນົດຮູບແບບທີ່ໃຊ້ໃນການລະບຸສິ່ງທີ່ຈຳເປັນ (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." +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 ທີ່ ຖືກຕ້ອງມາຕິດຕັ້ງ. ບາງຄັ້ງມັນອາດຈ" -"ະກຳນົດແບບກວ້າງໆ ພຽງແຕ່ຊື່, ແລະ ບາງຄັ້ງ ກໍລະບຸເຈາະຈົງເຖິງໄຟລ໌ທີ່ຈະຕິດຕັ້ງ. ບາງຄັ້ງສິ່ງທີ່ຈຳເປັນອາດກ່ຽວຂ້" -"ອງກັບພຽງ ແພລັດຟອມດຽວ ຫຼື ຮອງຮັບບາງເວີຊັນເທົ່ານັ້ນ, ພາສານີ້ຈຶ່ງອະນຸຍາດໃຫ້ລະບຸ ກໍລະນີເຫຼົ່ານີ້ໄດ້ທັງໝົດ." +"ໜ້າທີ່ຂອງສິ່ງທີ່ຈຳເປັນແມ່ນເພື່ອຊ່ວຍໃຫ້ເຄື່ອງມືເຊັ່ນ 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:" +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" +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" +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 ເກົ່" -"າໆ ທີ່ອາດມີຕົວລະບຸສິ່ງທີ່ຈຳເປັນທີ່ບໍ່ສົມເຫດສົມຜົນ." +"ເຄື່ອງມືໃນການລັອກເວີຊັນ ແລະ ການຕິດຕັ້ງ ອາດຈະຜ່ອນຜັນໃນການປະມວນຜົນ, ເພື່ອໃຫ້ສາມາດໃຊ້ package " +"ເກົ່າໆ ທີ່ອາດມີຕົວລະບຸສິ່ງທີ່ຈຳເປັນທີ່ບໍ່ສົມເຫດສົມຜົນ." #: ../source/specifications/dependency-specifiers.rst:35 msgid "All features of the language shown with a name based lookup::" @@ -13676,46 +18555,65 @@ 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." +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." +"ການລະບຸສິ່ງທີ່ຈຳເປັນຈະຕ້ອງລະບຸຊື່ຊຸດໂປຣແກຣມສະເໝີ. ມັນອາດຈະລວມເອົາ 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 "" -"ພວກເຮົາຈະເວົ້າເຖິງໄວຍາກອນໂດຍຫຍໍ້ກ່ອນ ແລະ ຈະລົງເລິກເຖິງຄວາມໝາຍຂອງແຕ່ລະ ສ່ວນໃນພາຍຫຼັງ." +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." +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), ກ" -"ານຂຽນຫຼາຍແຖວ ແລະ ອື່ນໆ." +"ການລະບຸຊຸດໂປຣແກຣມແມ່ນຂຽນເປັນຂໍ້ຄວາມ 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 ແມ່ນຢູ່ທ້າຍເອກະສານນີ້." +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>`)::" +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 ຊ່ວຍໃຫ້ການລະບຸມີຜົນສະເພາະໃນບາງສະພາບແວດລ້ອມເທົ່ານັ້ນ::" +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::" +msgid "" +"Optional components of a distribution may be specified using the extras " +"field::" msgstr "ສ່ວນປະກອບເສີມຂອງຊຸດໂປຣແກຣມສາມາດລະບຸໄດ້ໂດຍໃຊ້ຊ່ອງຂໍ້ມູນ extras::" #: ../source/specifications/dependency-specifiers.rst:115 @@ -13735,24 +18633,34 @@ 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." +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." +"ຍະຫວ່າງທີ່ບໍ່ແມ່ນການຂຶ້ນແຖວໃໝ່ສ່ວນໃຫຍ່ແມ່ນບໍ່ບັງຄັບ ແລະ ບໍ່ມີຄວາມໝາຍທາງໄວຍາກອນ. " +"ຂໍ້ຍົກເວັ້ນດຽວແມ່ນການກວດຫາຈຸດສິ້ນສຸດຂອງ 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." +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 `. ຊື່ເຮັດໜ້າທີ່ ເປັນຕົວລະ" -"ບຸຫຼັກສຳລັບຊຸດໂປຣແກຣມ. ພວກມັນມີຢູ່ໃນທຸກການລະບຸສິ່ງທີ່ຈຳເປັນ, ແລະ ພຽງແຕ່ຊື່ຢ່າງດຽວກໍພຽງພໍທີ່ຈະເປັນການລະ" -"ບຸໄດ້." +"ຊື່ຊຸດໂປຣແກຣມຖືກກຳນົດໃນ :ref:`Core metadata `. ຊື່ເຮັດໜ້າທີ່ " +"ເປັນຕົວລະບຸຫຼັກສຳລັບຊຸດໂປຣແກຣມ. ພວກມັນມີຢູ່ໃນທຸກການລະບຸສິ່ງທີ່ຈຳເປັນ, ແລະ " +"ພຽງແຕ່ຊື່ຢ່າງດຽວກໍພຽງພໍທີ່ຈະເປັນການລະບຸໄດ້." #: ../source/specifications/dependency-specifiers.rst:144 -msgid "Valid distribution names are defined in the :ref:`name format specification `." +msgid "" +"Valid distribution names are defined in the :ref:`name format specification " +"`." msgstr "" "ຊື່ຊຸດໂປຣແກຣມທີ່ຖືກຕ້ອງຖືກກຳນົດໃນ :ref:`name format specification `." @@ -13761,40 +18669,61 @@ 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::" +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." +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." +"Extras ຈະລວມເອົາສິ່ງທີ່ຈຳເປັນທີ່ພວກມັນກຳນົດເຂົ້າກັບສິ່ງທີ່ຈຳເປັນຫຼັກຂອງຊຸດໂປຣແກຣມ. " +"ຕົວຢ່າງຂ້າງເທິງຈະເຮັດໃຫ້ມີການຕິດຕັ້ງ requests, ສິ່ງທີ່ຈຳເປັນຂອງ requests ເອງ, ແລະ " +"ສິ່ງທີ່ຈຳເປັນໃດໆ ທີ່ລະບຸໄວ້ໃນ extra \"security\" ຂອງ requests." #: ../source/specifications/dependency-specifiers.rst:165 -msgid "If multiple extras are listed, all the dependencies are unioned together." +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." +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." +"provides-extra>`. ເຄື່ອງມືເຜີຍແຜ່ຄວນບັງຄັບໃຊ້ຂໍ້ຈຳກັດເຫຼົ່ານີ້, ໃນຂະນະທີ່ເຄື່ອງມືຕິດຕັ້ງອາດຈະ " +"ປັບຄ່າມາດຕະຖານຊື່ທີ່ບໍ່ຖືກຕ້ອງ ເພື່ອໃຫ້ຮອງຮັບ 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." +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 " +"ຂອງເລກເວີຊັນ ແລະ ການປຽບທຽບເວີຊັນ. ການລະບຸເວີຊັນຈະຈຳກັດເວີຊັນຂອງຊຸດໂປຣແກຣມ ທີ່ສາມາດໃຊ້ໄດ້. " +"ພວກມັນມີຜົນກັບການຄົ້ນຫາຕາມຊື່ເທົ່ານັ້ນ, ບໍ່ແມ່ນຜ່ານ URL. ການປຽບທຽບເວີຊັນຍັງຖືກໃຊ້ໃນ environment " "markers ອີກດ້ວຍ." #: ../source/specifications/dependency-specifiers.rst:189 @@ -13802,72 +18731,106 @@ 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::" +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 ສາມາດຂຽນໄດ້ວ່າ::" +"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." +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, ສິ່ງທີ່ຈຳເປັ" -"ນນັ້ນຈະຖືກລະເລີຍ." +"ນິພົດຂອງ 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." +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, ເຊິ່ງເລືອກຍ້ອນຄວາມສາມາດ ໃນການປະເມີນຄ່າຢ່າງປ" -"ອດໄພ ໂດຍບໍ່ຕ້ອງລັນໂຄ້ດທີ່ອາດເປັນຊ່ອງໂຫວ່ດ້ານຄວາມປອດໄພ." +"ພາສາຂອງ 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 `)." +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`, ແລະ ຖືກປັບປຸງມາເລື້" -"ອຍໆ." +"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 ແຕ່ລະອັນຖືກກຳນົດເປັນປະເພດໃດໜຶ່ງດັ່ງນີ້:" +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." +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)." +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). ໃນການປຽບທຽບ, ຄ່າຄົງທີ່ທີ່ຜູ້ໃຊ້ໃຫ້" -"ມາຕ້ອງຍັງຄົງເປັນຂໍ້ຄວາມດຽວ." +"``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." +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:`ຕົວລະບຸເວີຊັນ ` ທີ່ຖືກຕ້ອງ. ເຄື່" -"ອງມືເຜີຍແຜ່ຄວນແຈ້ງຂໍ້ຜິດພາດຖ້າບໍ່ຖືກຕ້ອງ, ແຕ່ເຄື່ອງມືຕິດຕັ້ງອາດຈະ ຖືວ່າເປັນຂໍ້ຄວາມທົ່ວໄປແທນ." +"``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." +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``: ເນື້ອຫາອາດຈະເປັນເວີຊັນທີ່ຖືກຕ້ອງໃນບາງແພລັດຟອມ, ແຕ່ ເປັນຂໍ້ຄວາມທົ່ວໄປໃນແ" -"ພລັດຟອມອື່ນ." +"``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)." +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 ແມ່ນການປຽບທຽບຊ່ອງຂໍ້ມູນກັບຄ່າຄົງທີ່ທີ່ຜູ້ໃຊ້ໃຫ້ມາ. ປະເພດຂອງການປຽບທຽບແມ່ນຂຶ້ນກັບຕົ" -"ວດຳເນີນການ ແລະ ປະເພດຂອງຊ່ອງຂໍ້ມູນ." +"ການປຽບທຽບ marker ແມ່ນການປຽບທຽບຊ່ອງຂໍ້ມູນກັບຄ່າຄົງທີ່ທີ່ຜູ້ໃຊ້ໃຫ້ມາ. " +"ປະເພດຂອງການປຽບທຽບແມ່ນຂຶ້ນກັບຕົວດຳເນີນການ ແລະ ປະເພດຂອງຊ່ອງຂໍ້ມູນ." #: ../source/specifications/dependency-specifiers.rst:236 -msgid "The follow comparison operations are defined in the marker expression grammar:" +msgid "" +"The follow comparison operations are defined in the marker expression " +"grammar:" msgstr "ຕົວດຳເນີນການປຽບທຽບຕໍ່ໄປນີ້ຖືກກຳນົດໄວ້ໃນໄວຍາກອນ:" #: ../source/specifications/dependency-specifiers.rst:238 @@ -13899,31 +18862,45 @@ 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\"``)" +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``)" +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) ປະຕິບັດຕາມພຶດຕິກໍາດັ່ງຕໍ່ໄປນີ້:" +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 ``==``" @@ -13934,32 +18911,69 @@ 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." +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`` ເທົ່" -"ານັ້ນ." +"ສຳລັບຊ່ອງຂໍ້ມູນ ``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." +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`` ແທນ." +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)." +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`` ແລະ ສາມາດໃຊ້ວົງ" -"ເລັບເພື່ອຈັດລຳດັບຄວາມສຳຄັນໄດ້." +"ນິພົດ marker ທີ່ຊັບຊ້ອນສາມາດໃຊ້ຕົວດຳເນີນການທາງຕັກກະສາດ ``and`` ແລະ ``or`` ແລະ " +"ສາມາດໃຊ້ວົງເລັບເພື່ອຈັດລຳດັບຄວາມສຳຄັນໄດ້." #: ../source/specifications/dependency-specifiers.rst:307 #: ../source/specifications/version-specifiers.rst:200 @@ -13967,53 +18981,82 @@ 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``)." +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``)." +"ການປຽບທຽບແບບຕໍ່ເນື່ອງຂອງ 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." +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 (\\) ບໍ່ໄດ້ກຳນົດໄວ້ໃນຂໍ້ກຳນົດນີ້ ຍ້ອນມັນເຮັດໃຫ້ເກີດຄວາມຊັບຊ້ອນ." +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." +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 ແມ່ນບໍ່ໄດ້ກຳນົດໄວ້, ແຕ່ເຄື່ອງມື ອາດຈະຍອມຮັບໄດ້ຂຶ້ນກັບກາ" -"ນເຂົ້າລະຫັດໄຟລ໌." +"ເຊັ່ນດຽວກັນ, ການຮອງຮັບຕົວອັກສອນທີ່ບໍ່ແມ່ນ 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." +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)." +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``, ແ" -"ລະ ເປັນຂໍ້ຄວາມວ່າງສຳລັບຊ່ອງອື່ນໆ." +"ຕົວປ່ຽນທີ່ບໍ່ສາມາດຄິດໄລ່ຄ່າໄດ້ໃນ 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:" +msgid "" +"Unless otherwise noted below, marker evaluation environments MUST support " +"all of the following marker fields:" msgstr "" "ນອກຈາກຈະລະບຸໄວ້ເປັນຢ່າງອື່ນ, ສະພາວະການປະເມີນຄ່າ marker ຕ້ອງຮອງຮັບ ຊ່ອງຂໍ້ມູນທັງໝົດຕໍ່ໄປນີ້:" @@ -14063,10 +19106,13 @@ 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)" +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`` (ໝາຍເຫດ: ນີ້ແມ່ນຊ່ອງຂໍ້ມູນ ທີ່ຊັດເຈນ" -"ທີ່ສຸດສຳລັບໃຊ້ລະບຸສິ່ງທີ່ຈຳເປັນສະເພາະແພລັດຟອມ)" +"``linux``, ``win32``, ``darwin``, ``java1.8.0_51`` (ໝາຍເຫດ: ນີ້ແມ່ນຊ່ອງຂໍ້ມູນ " +"ທີ່ຊັດເຈນທີ່ສຸດສຳລັບໃຊ້ລະບຸສິ່ງທີ່ຈຳເປັນສະເພາະແພລັດຟອມ)" #: ../source/specifications/dependency-specifiers.rst:377 msgid "``platform_machine``" @@ -14077,7 +19123,10 @@ 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)" +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 @@ -14106,7 +19155,9 @@ 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)" +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 @@ -14130,7 +19181,11 @@ 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)" +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 @@ -14184,7 +19239,8 @@ 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)" +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 @@ -14192,10 +19248,12 @@ 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." +msgid "" +"Used to indicate optional dependencies in project dependency metadata. An " +"error except when defined by the context interpreting the specifier." msgstr "" -"ໃຊ້ເພື່ອລະບຸສິ່ງທີ່ຈຳເປັນເສີມໃນ metadata. ຈະແຈ້ງຂໍ້ຜິດພາດ ຍົກເວັ້ນແຕ່ຈະຖືກ ກຳນົດໂດຍບໍລິບົດທີ່ກຳລັງອ່ານຕົວ" -"ລະບຸນັ້ນ." +"ໃຊ້ເພື່ອລະບຸສິ່ງທີ່ຈຳເປັນເສີມໃນ metadata. ຈະແຈ້ງຂໍ້ຜິດພາດ ຍົກເວັ້ນແຕ່ຈະຖືກ " +"ກຳນົດໂດຍບໍລິບົດທີ່ກຳລັງອ່ານຕົວລະບຸນັ້ນ." #: ../source/specifications/dependency-specifiers.rst:425 msgid "Special (see below)" @@ -14211,10 +19269,12 @@ 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." +msgid "" +"Used to indicate optional public dependencies in lock files. An error except " +"when defined by the context interpreting the specifier." msgstr "" -"ໃຊ້ເພື່ອລະບຸສິ່ງທີ່ຈຳເປັນເສີມແບບສາທາລະນະໃນໄຟລ໌ lock. ຈະແຈ້ງຂໍ້ຜິດພາດ ຍົກເວັ້ນແຕ່ຈະຖືກກຳນົດໂດຍບໍລິບົດທີ່" -"ອ່ານ." +"ໃຊ້ເພື່ອລະບຸສິ່ງທີ່ຈຳເປັນເສີມແບບສາທາລະນະໃນໄຟລ໌ lock. ຈະແຈ້ງຂໍ້ຜິດພາດ " +"ຍົກເວັ້ນແຕ່ຈະຖືກກຳນົດໂດຍບໍລິບົດທີ່ອ່ານ." #: ../source/specifications/dependency-specifiers.rst:431 #: ../source/specifications/dependency-specifiers.rst:439 @@ -14222,7 +19282,9 @@ 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)" +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 @@ -14230,36 +19292,75 @@ 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." +msgid "" +"Used to indicate optional project internal dependencies in lock files. An " +"error except when defined by the context interpreting the specifier." msgstr "" -"ໃຊ້ເພື່ອລະບຸສິ່ງທີ່ຈຳເປັນເສີມພາຍໃນໂຄງການໃນໄຟລ໌ lock. ຈະແຈ້ງຂໍ້ຜິດພາດ ຍົກເວັ້ນແຕ່ຈະຖືກກຳນົດໂດຍບໍລິບົດທີ່" -"ອ່ານ." +"ໃຊ້ເພື່ອລະບຸສິ່ງທີ່ຈຳເປັນເສີມພາຍໃນໂຄງການໃນໄຟລ໌ 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)" +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 ເທົ່ານັ້ນ." +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``." +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." +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 `:" +msgid "" +"The ``implementation_version`` marker variable is derived " +"from :py:data:`sys.implementation.version `:" msgstr "" -"ຕົວປ່ຽນ marker ``implementation_version`` ແມ່ນໄດ້ມາຈາກ " -":py:data:`sys.implementation.version `:" +"ຕົວປ່ຽນ marker ``implementation_version`` " +"ແມ່ນໄດ້ມາຈາກ :py:data:`sys.implementation.version `:" #: ../source/specifications/dependency-specifiers.rst:499 msgid "Complete Grammar" @@ -14278,51 +19379,82 @@ 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]_" +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)." +"ກໍລະກົດ 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`" +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`` ຖືກປ່ຽນໃຫ້ອະນຸຍາດເຄື່ອງໝາຍຈຸດ ຢູ່ທ້າຍສຸດໄດ້." +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`." +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`." +"ເມສາ 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)" +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." +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]_" +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`" +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/)" +msgid "" +"pip, the recommended installer for Python packages (http://" +"pip.readthedocs.org/en/stable/)" msgstr "" "pip, ເຄື່ອງມືຕິດຕັ້ງທີ່ແນະນຳສຳລັບ Python packages (http://pip.readthedocs.org/en/" "stable/)" @@ -14332,11 +19464,18 @@ 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)" +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)" +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." @@ -14345,37 +19484,57 @@ 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`." +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 ໂດຍກົງ." +"ເອກະສານນີ້ກຳນົດໄຟລ໌ :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)." +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 "" -"ໄຟລ໌ນີ້ຕ້ອງບໍ່ຖືກສ້າງຂຶ້ນເມື່ອຕິດຕັ້ງຈາກຄວາມຕ້ອງການປະເພດອື່ນ (ເຊັ່ນ: ຊື່ ແລະ ເວີຊັນ)." +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`." +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`." +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 ໃດໆ." +"ເມື່ອ 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 ເດີມໃຫ້ໄດ້ຫຼາຍທີ່ສຸດ." +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" @@ -14394,7 +19553,9 @@ 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\"``" +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\"``" @@ -14408,7 +19569,11 @@ 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)" +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\"``" @@ -14438,29 +19603,47 @@ 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." +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 ແລະ ໄຟລ໌ຊຸດໂປຣແກຣມ" -"ຕ່າງໆ." +"ເອກະສານນີ້ກຳນົດໂຄງສ້າງຂໍ້ມູນແບບ 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 `." +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 ດຽ" -"ວ." +"ໃນປັດຈຸບັນ, ຍັງບໍ່ມີການກຳນົດເປັນທາງການກ່ຽວກັບວິທີການລວມສ່ວນຕ່າງໆ ຂອງໂຄງສ້າງ ຂໍ້ມູນນີ້ເຂົ້າເປັນ 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`." +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 `_." +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 ທີ່ຖື" -"ກຕ້ອງ." +"ມັນຕ້ອງມີຢ່າງໜ້ອຍສອງຊ່ອງຂໍ້ມູນ. ອັນທຳອິດແມ່ນ ``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." +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`` ອ້າງອີງເຖິງສິ່ງໃດ." @@ -14470,19 +19653,26 @@ 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." +msgid "" +"When persisted, ``url`` MUST be stripped of any sensitive authentication " +"information, for security reasons." msgstr "" -"ເມື່ອມີການບັນທຶກ, ``url`` ຕ້ອງຖືກຕັດຂໍ້ມູນການຢືນຢັນຕົວຕົນທີ່ມີຄວາມອ່ອນໄຫວອອກ ເພື່ອເຫດຜົນດ້ານຄວາມປອດໄ" -"ພ." +"ເມື່ອມີການບັນທຶກ, ``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:" +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``." +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``." @@ -14492,20 +19682,34 @@ 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:" +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``)." +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." +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." +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 @@ -14513,17 +19717,22 @@ 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``." +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 ຂອງໄຟລ໌." +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)." +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 @@ -14531,50 +19740,74 @@ 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``." +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 ``=``." +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 ດຽວ ຫຼື ຫຼາຍອັນກໍຕາມ." +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`` ຄືກັນ." +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:" +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``." +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``." +"``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." +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`." +"ເມື່ອ ``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." +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`` ຢູ່ໃສ." @@ -14583,7 +19816,14 @@ 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." +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 @@ -14628,7 +19868,9 @@ 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." +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 @@ -14643,7 +19885,11 @@ 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." +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 @@ -14702,22 +19948,27 @@ 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``." +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." +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``:" +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 @@ -14737,11 +19988,15 @@ 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." +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 `_)." +msgid "" +"January 2023: Added the ``archive_info.hashes`` key (`discussion `_)." msgstr "ມັງກອນ 2023: ເພີ່ມຄີ ``archive_info.hashes``." #: ../source/specifications/entry-points.rst:5 @@ -14749,35 +20004,55 @@ 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:" +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* ແມ່ນກົນໄກສຳລັບຊຸດໂປຣແກຣມທີ່ຕິດຕັ້ງແລ້ວ ເພື່ອປະກາດສ່ວນປະກອບ ທີ່ມັນສະໜອງໃຫ້ ເພື່ອໃຫ້" -"ໂຄ້ດອື່ນໆ ສາມາດຄົ້ນຫາ ແລະ ນຳໃຊ້ໄດ້. ຕົວຢ່າງ:" +"*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 ໃຫ້ສຳລັບແຕ່ລະ " +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`." +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`." +"ສາມາດໃຊ້ 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 ແລະ ການແກ້ໄຂຂໍ້ຂັດແຍ່ງທີ່ແຕກຕ່າງກັນ)." +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" @@ -14788,300 +20063,468 @@ 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+)*$``)." +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+)*$``)." +"``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.-]+``)." +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.-]+``)." +"(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::" +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 ທີ່ຖືກຕ້ອງ. ມັນຖືກອອກແບບມາເພື່ອໃຫ້ຄົ້ນຫາແບບນີ້::" +"``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." +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`." +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`." +"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." +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 ໃຊ້ແບບຈຳລ" -"ອງທີ່ແຕກຕ່າງກັນ." +"(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." +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::" +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 ທີ່ຈ" -"ຳແນກຕົວອັກສອນນ້ອຍ-ໃຫຍ່ສາມາດສ້າງໄດ້ແບບນີ້::" +"ເນື້ອໃນຂອງໄຟລ໌ຢູ່ໃນຮູບແບບ 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 ``:``)." +msgid "" +"The entry points file must always use ``=`` to delimit names from values " +"(whereas configparser also allows using ``:``)." msgstr "" -"ໄຟລ໌ entry points ຕ້ອງໃຊ້ ``=`` ສະເໝີເພື່ອແຍກຊື່ອອກຈາກຄ່າ (ໃນຂະນະທີ່ configparser ຍັງອະນຸຍ" -"າດໃຫ້ໃຊ້ ``:`` ໄດ້)." +"ໄຟລ໌ 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." +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, ພວກມັນຈະເປັນລາຍການທີ່ແຍກດ້ວຍຈຸດພາຍໃນວົງເ" -"ລັບຫຼ່ຽມ." +"ສ່ວນ (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`. ສຳລັບເຄື່ອງມືທີ່ຂຽນໄຟລ໌, ແນະນຳໃຫ້ໃສ່ຊ່ອງຫວ່າງສະເພາະລະຫວ່າງກ" -"ານອ້າງອີງວັດຖຸ ແລະ ວົງເລັບຫຼ່ຽມເປີດເທົ່ານັ້ນ." +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``." +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``." +"``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::" +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`` ທີ່ເປີດໃຊ້ສະຄຣິບແບບ" -"ນີ້::" +"ຕົວຢ່າງ, 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." +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) ພວກມັນ. ແພລັດຟອມອື່ນໆບໍ່ມີຄວາມແ" -"ຕກຕ່າງກັນແບບນີ້." +"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." +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." +"ໃນໄດເຣັກທໍຣີສະຄຣິບຂອງຮູບແບບການຕິດຕັ້ງ. ພວກມັນບໍ່ມີໜ້າທີ່ໃນການເພີ່ມໄດເຣັກທໍຣີນີ້ " +"ເຂົ້າໃນຕົວປ່ຽນສະພາບແວດລ້ອມ ``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." +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_)." +msgid "" +"October 2017: This specification was written to formalize the existing entry " +"points feature of setuptools (discussion_)." msgstr "" -"ຕຸລາ 2017: ຂໍ້ກຳນົດນີ້ຖືກຂຽນຂຶ້ນເພື່ອເຮັດໃຫ້ຄຸນສົມບັດ entry points ທີ່ມີຢູ່ຂອງ setuptools ເປັນທາງກາ" -"ນ (discussion_)." +"ຕຸລາ 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`." +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`." +"ມັງກອນ 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)." +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 ທີ່ມາພ້ອມກັບແອັບພລິເຄຊັນ ທີ່ມີຕົວຕິດຕັ້ງສະເພາະ)." +"ໃນຂະນະທີ່ການຕິດຕັ້ງ 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." +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 ທົ່ວໄປເພື່ອຈັດການກັບສະພາບແວດລ້ອມດັ່ງກ່າວ ອາດເຮັດໃຫ້ເ" -"ກີດຄວາມສັບສົນ ຫຼື ຢ່າງຮ້າຍແຮງທີ່ສຸດແມ່ນເຮັດໃຫ້ລະບົບປະຕິບັດການທັງໝົດເພພັງ. ເອກະສານ ແລະ ຄູ່ມືການເຮັດວຽ" -"ກຮ່ວມກັນສາມາດຊ່ວຍແກ້ໄຂບັນຫາດັ່ງກ່າວໄດ້ພຽງແຕ່ບາງສ່ວນເທົ່ານັ້ນ." +"ການພະຍາຍາມໃຊ້ເຄື່ອງມືການເຮັດແພັກເກດ 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`." +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` ແທນ." +"ຂໍ້ກຳນົດນີ້ກຳນົດໄຟລ໌ເຄື່ອງໝາຍ ``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." +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 ທັງໝົດ, ມັນສາມາດເຮັດໄດ້ໃນລັກສະ" -"ນະທີ່ຫຼີກເວັ້ນການຂັດແຍ່ງກັບຕົວຈັດການແພັກເກດພາຍນອກ ແລະ ຫຼຸດຜ່ອນຄວາມສ່ຽງທີ່ຈະເຮັດໃຫ້ຊອບແວທີ່ສົ່ງມາກັບຕົວຈັ" -"ດການແພັກເກດພາຍນອກເພພັງ." +"ມັນຍັງເຮັດໃຫ້ການຕີຄວາມໝາຍຂອງ ``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:" +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.\"" +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." +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 ຫຼື " +"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\" (ເບິ່ງຂ້າ" -"ງລຸ່ມ)." +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**." +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)** ຂອງມັນ." +"ຜູ້ໃຫ້ບໍລິການດິສໂຕຣ - ທີມງານ ຫຼື ບໍລິສັດທີ່ລວບລວມ ແລະ ເຜີຍແຜ່ຊອບແວ ແລະ ເຮັດການດັດແກ້ທີ່ຈຳເປັນ - " +"ແມ່ນ **ຜູ້ແຈກຢາຍ (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." +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." +"ໜ່ວຍຂອງຊອບແວທີ່ສາມາດຕິດຕັ້ງ ແລະ ໃຊ້ງານພາຍໃນ 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." +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.)" +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.)" +"ໂດຍທົ່ວໄປແລ້ວ ເອກະສານນີ້ບໍ່ໃຊ້ຄຳວ່າ \"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." +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`` ໂດຍກົງ." +"ເຄື່ອງມືສຳລັບການຕິດຕັ້ງ, ອັບເກຣດ, ແລະ/ຫຼື ລຶບແພັກເກດ 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.)" +msgid "" +"(Note that the ``easy_install`` command was removed in setuptools version " +"52, released 23 January 2021.)" msgstr "" -"(ໝາຍເຫດ: ຄຳສັ່ງ ``easy_install`` ຖືກຖອນອອກໃນ setuptools ເວີຊັນ 52, ອອກເມື່ອວັນທີ 23 ມັງ" -"ກອນ 2021.)" +"(ໝາຍເຫດ: ຄຳສັ່ງ ``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.)" +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 ຕ້ອງການ ໂດຍທົ່ວໄປ" -"ແລ້ວຈະເຮັດໃຫ້ຕົວຈັດການແພັກເກດຂອງດິສໂຕຣຢູ່ໃນສະຖານະທີ່ບໍ່ສອດຄ່ອງກັນ." +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." +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\" ເພື່ອອ້າງເຖິງຕົວຈັດການແພັກເກດຂອງດິສໂຕຣໃນບາງບໍລິບົດ." @@ -15091,104 +20534,168 @@ 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." +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." +"ໂດຍບໍ່ໄດ້ລຶບໄຟລ໌ໃດໆອອກຈາກແພັກເກດທີ່ຖືກ 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 ເປັນທາງເລືອກ." +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." +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 ຂອງມັນໄວ້ຢ່າງຊັດເຈນ, ຈະຍັງຄົງເຮັດວຽກໄດ້ຕາມປົ" -"ກກະຕິຄືທີ່ຜ່ານມາ." +"ນີ້ແມ່ນກົນໄກແບບເລືອກເຂົ້າ (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." +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 ສາມາດຕັ້ງຄ່າສອງໄດເຣັກທໍຣີ, ອັນໜຶ່ງສຳລັບແພັກເກດທີ່ຖືກຈັດການເອງ, ແລ" -"ະ ອີກອັນໜຶ່ງສຳລັບແພັກເກດທີ່ບໍ່ໄດ້ຖືກຈັດການເຊິ່ງຕິດຕັ້ງໂດຍຜູ້ໃຊ້, ແລະ ຮັບປະກັນວ່າ ການຕິດຕັ້ງແພັກເກດທີ່ບໍ່ໄດ້ຖືກຈັ" -"ດການຈະບໍ່ລຶບ (ຫຼື ຂຽນທັບ) ໄຟລ໌ທີ່ເປັນຂອງ ຕົວຈັດການແພັກເກດພາຍນອກ." +"ຫຼື ລຶບໄຟລ໌ສະເພາະພາຍໃນໄດເຣັກທໍຣີຂອງ 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:" +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 ໃດໜຶ່ງ, ມັນຄວນກວດສອບ ສິ່ງຕໍ່ໄປນີ້ໂດຍຄ່າເລີ່ມຕົ້ນ:" +"ກ່ອນທີ່ຕົວຕິດຕັ້ງແພັກເກດສະເພາະຂອງ 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``." +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())``?" +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())`` ຫຼື ບໍ່?" +"ມີໄຟລ໌ ``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." +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." +"ຖ້າທັງສອງເງື່ອນໄຂນີ້ເປັນຈິງ, ຕົວຕິດຕັ້ງຄວນຢຸດການເຮັດວຽກພ້ອມຂໍ້ຄວາມແຈ້ງເຕືອນຂໍ້ຜິດພາດ " +"ທີ່ບົ່ງບອກວ່າການຕິດຕັ້ງແພັກເກດລົງໃນໄດເຣັກທໍຣີຂອງ 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." +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``. ຕົວເລືອກນີ້ບໍ່ຄວນຖືກເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນ ແລະ ຄວນມີຄວາມໝາຍບົ່ງບອກວ່າການໃຊ້ງາ" -"ນມັນມີຄວາມສ່ຽງ." +"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``." +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`` ລ້າໆ." +"ມັນມີສ່ວນ ``[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." +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 ເພື່ອຕິດຕັ້ງແພັກເກດ." +"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" +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-" @@ -15196,46 +20703,66 @@ msgstr "" "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:" +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." +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 ກົດນີ້ດ້ວຍຕົນເອງ." +"ໃນບາງບໍລິບົດ, ເຊັ່ນ 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." +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 ທີ່ສົ່ງຄືນໂດຍ " +"ໂດຍປົກກະຕິແລ້ວ, ຕົວຕິດຕັ້ງແພັກເກດ 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 ອື່ນ), ມັນຄວນປ່ອຍໃຫ້ໄຟລ໌ທີ່ມີຢູ່" -"ແລ້ວຄືເກົ່າ." +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." +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 ການຕິດຕັ້ງທີ່ມີຢູ່ແລ້ວໃນລະຫວ່າງການອັບເກຣດ, ພວກເຮົາແນະນຳໃຫ້ມັນສະແດງຄຳເ" -"ຕືອນໃນຕອນທ້າຍຂອງການເຮັດວຽກ." +"ຖ້າຕົວຕິດຕັ້ງເຮັດການ 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." +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``), ໝວດຍ່ອຍນີ້ຈະບໍ່ນຳໃຊ້." @@ -15245,154 +20772,246 @@ 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." +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`` ຂອງພວກເຂົາ." +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`` ເຮັດວຽກໄດ້ຢ່າງຖືກຕ້ອງ." +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." +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``)." +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``)." +"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 ໄດ້ຮັບຄວາມສຳຄັນກວ່າແພັ" -"ກເກດຂອງດິສໂຕຣ." +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.)" +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.)" +"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`__." +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`__." +"``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``." +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``." +"ມີສອງວິທີທີ່ທ່ານສາມາດເຮັດໄດ້. ວິທີໜຶ່ງຄື, ຖ້າທ່ານກຳລັງ 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`` ເປັນສ່ວນໜຶ່ງຂອງການເຮັດແພັກເກດດິສໂຕຣຂອງທ່ານ." +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 ໃນການລຶບແພັກເກດອອກຈາກໄດ" -"ເຣັກທໍຣີທີ່ລະບຸຈັດການ." +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." +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." +"ໃນການຕິດຕັ້ງແພັກເກດດ້ວຍ 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." +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`` ສະເໝີ, ເຊິ່ງມັນກໍ" -"ຈະເຮັດວຽກໄດ້ຄືກັນ." +"ຂອງທ່ານ ແລະ ໃຫ້ ``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 "" -"ວິທີການທີ່ດີທີ່ສຸດຢູ່ທີ່ນີ້ແມ່ນຂຶ້ນກັບທຳນຽມ ແລະ ກົນໄກການເຮັດແພັກເກດຂອງດິສໂຕຣຂອງທ່ານຫຼາຍ." +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``." +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``, ``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 ທີ່ເຮັດແພັກເກດໂດຍດິສໂຕຣ ແລະ ວາງທັງສອງໄວ້ໃນ " +"compiler, ແລະ ມັນຈະໃຊ້ ``/usr/local/bin`` ສຳລັບ ``scripts`` ຂອງ scheme ເລີ່ມຕົ້ນ " +"ແລະ ``/usr/bin`` ສຳລັບ entry points ທີ່ເຮັດແພັກເກດໂດຍດິສໂຕຣ ແລະ ວາງທັງສອງໄວ້ໃນ " "``$PATH``." #: ../source/specifications/externally-managed-environments.rst:410 @@ -15400,12 +21019,17 @@ 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." +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:" +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 ເມື່ອຕິດຕັ້ງ:" @@ -15415,10 +21039,13 @@ 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')``." +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')``." +"ເອີ້ນໃຊ້ ``sysconfig.get_default_scheme()``, ເຊິ່ງປົກກະຕິແລ້ວ (ໃນ upstream CPython " +"ແລະ ດິສໂຕຣສ່ວນໃຫຍ່ໃນປະຈຸບັນ) ຈະຄືກັນກັບ ``get_preferred_scheme('prefix')``." #: ../source/specifications/externally-managed-environments.rst:425 msgid "``pip install --prefix=/some/path``" @@ -15437,46 +21064,68 @@ 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." +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 ໃດໆ." +"ສຸດທ້າຍ, ``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\")``." +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 ເລີ່ມຕົ້ນແທ້ໆ, ແລະ ທີ່ສຳຄັນແມ່ນບໍ່ໄດ້ປ່ຽນແປງຜົນລັດຂອງ " +"ປະຈຸບັນ 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`` ແທນທີ່ຈະເປັນການປ່ຽນແປງ " +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." +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`` ຕາມລຳດັບ), ເພື່ອເຮັດໃຫ້ການນຳໃຊ້ ເປັນສູນກາງ, ແຕ່ພວກມັນຍັງບໍ່ຈ" -"ຳເປັນຕ້ອງຖືກເພີ່ມເຂົ້າໃນຕອນນີ້." +"``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." +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, ແລ້ວແຕ່ອັນໃດຈະ" -"ໃຫ້ອິດສະລະຫຼາຍກວ່າ." +"ເອກະສານນີ້ຖືກເຜີຍແຜ່ເປັນສົມບັດສາທາລະນະ ຫຼື ພາຍໃຕ້ໃບອະນຸຍາດ CC0-1.0-Universal, " +"ແລ້ວແຕ່ອັນໃດຈະໃຫ້ອິດສະລະຫຼາຍກວ່າ." #: ../source/specifications/externally-managed-environments.rst:474 msgid "June 2022: This specification was approved through :pep:`668`." @@ -15491,81 +21140,132 @@ 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 `." +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 `." +":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\" (ຖອນອອກ), ແລະ ໂດຍທົ່ວໄປແລ້ວ ບໍ່ຄວນຖືກເລືອກໂດຍຕົວຕິດຕັ້ງ, ຍົກເວັ້ນພ" -"າຍໃຕ້ສະຖານະການທີ່ສະເພາະເຈາະຈົງ." +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." +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)." +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 ອີກຄັ້ງ)." +"ແອດທຣິບິວ 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." +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." +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:" +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\" (ລັ" -"ອກ) ໄວ້ກັບເວີຊັນທີ່ແນ່ນອນໂດຍໃຊ້ ``==`` (ໂດຍບໍ່ມີຕົວແກ້ໄຂທີ່ເຮັດໃຫ້ເປັນຊ່ວງ ເຊັ່ນ ``.*``) ຫຼື " +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." +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 ຈາກໄຟລ໌ນຳເຂົ້າ ຫຼື ຄຳສັ່ງໃດໜຶ່ງ." +"``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." +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." +"ບໍ່ວ່າຕົວຕິດຕັ້ງຈະເລືອກກົນລະຍຸດໃດໃນການຕັດສິນໃຈວ່າຈະຕິດຕັ້ງໄຟລ໌ທີ່ຖືກ yanked ເມື່ອໃດ, ຕົວຕິດຕັ້ງ " +"**ຄວນ** ສະແດງຄຳເຕືອນເມື່ອມັນຕັດສິນໃຈຕິດຕັ້ງໄຟລ໌ທີ່ຖືກ yanked. ຄຳເຕືອນນັ້ນ **ອາດຈະ** " +"ໃຊ້ຄ່າຂອງແອດທຣິບິວ ``data-yanked`` (ຖ້າມີຄ່າ) ເພື່ອໃຫ້ຂໍ້ມູນເພີ່ມເຕີມແກ່ຜູ້ໃຊ້ວ່າເປັນຫຍັງໄຟລ໌ນັ້ນຈຶ່ງຖືກ " +"yanked." #: ../source/specifications/file-yanking.rst:81 msgid "Mirrors" @@ -15576,100 +21276,134 @@ 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." +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 ເທົ່ານັ້ນ." +"ພວກເຂົາອາດຈະເລືອກທີ່ຈະຕັດພວກມັນອອກຈາກ 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." +msgid "" +"They may choose to include yanked files, and additionally mirror the ``data-" +"yanked`` attribute as well." msgstr "" -"ພວກເຂົາອາດຈະເລືອກທີ່ຈະລວມເອົາໄຟລ໌ທີ່ຖືກ yanked, ແລະ mirror ແອດທຣິບິວ ``data-yanked`` ໄປພ້" -"ອມກັນນຳ." +"ພວກເຂົາອາດຈະເລືອກທີ່ຈະລວມເອົາໄຟລ໌ທີ່ຖືກ 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." +msgid "" +"Mirrors **MUST NOT** mirror a yanked file without also mirroring the ``data-" +"yanked`` attribute for it." msgstr "" -"Mirrors **ຕ້ອງບໍ່** mirror ໄຟລ໌ທີ່ຖືກ yanked ໂດຍບໍ່ໄດ້ mirror ແອດທຣິບິວ ``data-yanked`` ຂ" -"ອງມັນໄປນຳ." +"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." +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:" +msgid "" +"For PyPA purposes, a *valid glob pattern* MUST be a string matched against " +"filesystem entries as specified below:" msgstr "" -"ສຳລັບຈຸດປະສົງຂອງ PyPA, *ຮູບແບບ glob ທີ່ຖືກຕ້ອງ* ຕ້ອງເປັນຂໍ້ຄວາມທີ່ຈັບຄູ່ກັບ ລາຍການໃນລະບົບໄຟລ໌ຕາມທີ່" -"ລະບຸໄວ້ຂ້າງລຸ່ມນີ້:" +"ສຳລັບຈຸດປະສົງຂອງ PyPA, *ຮູບແບບ glob ທີ່ຖືກຕ້ອງ* ຕ້ອງເປັນຂໍ້ຄວາມທີ່ຈັບຄູ່ກັບ " +"ລາຍການໃນລະບົບໄຟລ໌ຕາມທີ່ລະບຸໄວ້ຂ້າງລຸ່ມນີ້:" #: ../source/specifications/glob-patterns.rst:18 -msgid "Alphanumeric characters, spaces (`` ``), underscores (``_``), hyphens (``-``), and dots (``.``) MUST be matched verbatim." +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." +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). ຂີດຕໍ່ທີ່ຢູ່ຕົ້ນ ຫຼື ທ້າຍຈະຖືກ" -"ຈັບຄູ່ຕາມຕົວອັກສອນ." +"ຕົວອັກສອນ 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." +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`, ຮູບແບບຄວນຈະສຳພັດກັບໄດເຣັກທໍຣີ ທີ່ບັນຈຸໄຟລ໌ນັ້ນສະເໝີ. ດັ່ງນັ້ນ, ຕ້ອງບໍ່ໃຊ້ເຄື່" -"ອງໝາຍທັບນຳໜ້າ." +"ຮູບແບບຕ່າງໆຈະອ້າງອີງເຖິງ *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." +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 ຄວນປະຕິເສດ ຄ່າທີ່ບໍ່ຖືກຕ້ອງດ້ວຍການແຈ້ງເຕືອນຂໍ້ຜິດພາດ." +"ຕົວອັກສອນ ຫຼື ລຳດັບຕົວອັກສອນໃດໆທີ່ບໍ່ໄດ້ກວມເອົາໃນຂໍ້ກຳນົດນີ້ ແມ່ນຖືວ່າບໍ່ຖືກຕ້ອງ. " +"ໂຄງການຕ່າງໆຕ້ອງບໍ່ໃຊ້ຄ່າດັ່ງກ່າວ. ເຄື່ອງມືທີ່ໃຊ້ຮູບແບບ glob ຄວນປະຕິເສດ " +"ຄ່າທີ່ບໍ່ຖືກຕ້ອງດ້ວຍການແຈ້ງເຕືອນຂໍ້ຜິດພາດ." #: ../source/specifications/glob-patterns.rst:40 -msgid "Literal paths (e.g. :file:`LICENSE`) are valid globs which means they can also be defined." +msgid "" +"Literal paths (e.g. :file:`LICENSE`) are valid globs which means they can " +"also be defined." msgstr "" -"ເສັ້ນທາງແບບຊື່ໆ (ຕົວຢ່າງ :file:`LICENSE`) ແມ່ນ glob ທີ່ຖືກຕ້ອງ ເຊິ່ງໝາຍຄວາມວ່າ ພວກມັນສາມາດຖືກ" -"ກຳນົດໄດ້ຄືກັນ." +"ເສັ້ນທາງແບບຊື່ໆ (ຕົວຢ່າງ :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." +msgid "" +"MUST treat each value as a glob pattern, and MUST raise an error if the " +"pattern contains invalid glob syntax." msgstr "" -"ຕ້ອງຖືວ່າແຕ່ລະຄ່າເປັນຮູບແບບ glob, ແລະ ຕ້ອງແຈ້ງເຕືອນຂໍ້ຜິດພາດຖ້າຮູບແບບນັ້ນ ມີໄວຍາກອນ glob ທີ່ບໍ່ຖືກຕ້ອ" -"ງ." +"ຕ້ອງຖືວ່າແຕ່ລະຄ່າເປັນຮູບແບບ 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 "" -"ຕ້ອງແຈ້ງເຕືອນຂໍ້ຜິດພາດ ຖ້າຮູບແບບໃດໜຶ່ງທີ່ຜູ້ໃຊ້ກຳນົດເອງ ບໍ່ກົງກັບໄຟລ໌ໃດເລີຍຢ່າງໜ້ອຍໜຶ່ງໄຟລ໌." +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:" @@ -15684,10 +21418,13 @@ 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." +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. ແນວໃດກໍຕາມ, ມັນຈຳເປັນຕ້ອງມີການກວດສອບ ເພີ່ມເຕີມ." +"ມັນເປັນໄປໄດ້ທີ່ຈະມອບໝາຍການຈັບຄູ່ຮູບແບບສ່ວນໃຫຍ່ກັບລະບົບໄຟລ໌ໃຫ້ກັບໂມດູນ :mod:`glob` " +"ໃນໄລບຣາຣີມາດຕະຖານຂອງ Python. ແນວໃດກໍຕາມ, ມັນຈຳເປັນຕ້ອງມີການກວດສອບ ເພີ່ມເຕີມ." #: ../source/specifications/glob-patterns.rst:80 msgid "The code below is as a simple reference implementation:" @@ -15706,11 +21443,15 @@ 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 `__." +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 `__." +"Authority. ຂະບວນການສຳລັບການອັບເດດມາດຕະຖານເຫຼົ່ານີ້, ແລະ ສຳລັບການສະເໜີອັນໃໝ່, " +"ແມ່ນມີບັນທຶກໄວ້ໃນ `pypa.io `__." #: ../source/specifications/index-hosted-attestations.rst:6 msgid "Index hosted attestations" @@ -15721,18 +21462,24 @@ 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`." +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`." +":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." +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 `_ ສຳລັບວິທີການອັບໂຫລດການຢັ້ງຢືນ " @@ -15743,66 +21490,92 @@ 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." +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 ຂ້າງລຸ່ມນີ້." +"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 `__ 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:" +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`." +msgid "" +"Certificates are specified as X.509 certificates, and comply with the " +"profile in :rfc:`5280`." msgstr "" -"ໃບຢັ້ງຢືນ (Certificates) ຖືກກຳນົດເປັນໃບຢັ້ງຢືນ X.509, ແລະ ສອດຄ່ອງກັບ profile ໃນ " -":rfc:`5280`." +"ໃບຢັ້ງຢືນ (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." +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." +"ອັນກໍຣິດທຶມການລົງນາມຂໍ້ຄວາມແມ່ນ 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." +msgid "" +"Future PEPs may change this suite (and the overall shape of the attestation " +"object) by selecting a new version number." msgstr "" -"PEPs ໃນອະນາຄົດອາດຈະປ່ຽນແປງ suite ນີ້ (ແລະ ຮູບຮ່າງໂດຍລວມຂອງວັດຖຸການຢັ້ງຢືນ) ໂດຍການເລືອກໝາຍ" -"ເລກເວີຊັນໃໝ່." +"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``)." +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." +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." +"in-toto/attestation/blob/v1.0/spec/v1.0/statement.md>`__, ໃນຮູບແບບ 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:" +msgid "" +"In addition to being a v1 in-toto Statement, the attestation statement is " +"constrained in the following ways:" msgstr "" "ນອກຈາກການເປັນ v1 in-toto Statement ແລ້ວ, ຖະແຫຼງການການຢັ້ງຢືນຍັງຖືກ ຈຳກັດໃນລັກສະນະດັ່ງນີ້:" @@ -15811,14 +21584,20 @@ 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." +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." +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)." @@ -15828,335 +21607,472 @@ msgid "The following ``predicateType`` values are supported:" msgstr "ຄ່າ ``predicateType`` ຕໍ່ໄປນີ້ແມ່ນໄດ້ຮັບການຮອງຮັບ:" #: ../source/specifications/index-hosted-attestations.rst:130 -msgid "`SLSA Provenance `__: ``https://slsa.dev/provenance/v1``" +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``" +msgid "" +"`PyPI Publish Attestation `__: ``https://docs.pypi.org/attestations/publish/v1``" msgstr "" -"`PyPI Publish Attestation " -"`__: ``https://docs.pypi.org/attestations/publish/v1``" +"`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." +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`` ອື່ນໆ." +"``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." +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." +"ດັດຊະນີຈະໃຫ້ບໍລິການການຢັ້ງຢືນທີ່ອັບໂຫລດມາ ພ້ອມກັບຂໍ້ມູນເມຕາທີ່ສາມາດຊ່ວຍໃນການກວດສອບ " +"ພວກມັນໃນຮູບແບບຂອງ 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:" +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 ຕາມທີ່ອະທິບາຍໄ" -"ວ້ຂ້າງເທິງ, ແລະ ຈະມີຮູບແບບດັ່ງນີ້:" +"*ວັດຖຸແຫຼ່ງທີ່ມາ* ເຫຼົ່ານີ້ຈະມີໃຫ້ຜ່ານທັງ 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``." +msgid "" +"``version`` is ``1``. Like attestation objects, provenance objects are " +"versioned, and this PEP only defines version ``1``." msgstr "" -"``version`` ແມ່ນ ``1``. ຄືກັນກັບວັດຖຸການຢັ້ງຢືນ, ວັດຖຸແຫຼ່ງທີ່ມາມີການກຳນົດເວີຊັນ, ແລະ PEP ນີ້ກຳນົດສ" -"ະເພາະເວີຊັນ ``1`` ເທົ່ານັ້ນ." +"``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." +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), ແລະ ປະກອບດ້ວຍວັດຖຸການຢັ້ງຢືນຢ່າງໜ້ອຍໜຶ່ງອັນ." +"``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:" +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 ຂອງມັນ ແຕ່ຕ້ອງລວມມີຢ່າງໜ້ອຍ:" +"ຕາມທີ່ລະບຸໄວ້ໃນແບບຈຳລອງ ``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." +msgid "" +"A ``kind`` key, which **MUST** be a JSON string that uniquely identifies the " +"kind of Trusted Publisher." msgstr "" -"key ``kind``, ເຊິ່ງ **ຕ້ອງ** ເປັນຂໍ້ຄວາມ JSON ທີ່ລະບຸປະເພດຂອງ Trusted Publisher ໂດຍບໍ່ຊໍ້າ" -"ກັນ." +"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." +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." +"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`." +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`." +"ແຕ່ລະອາເຣຂອງວັດຖຸການຢັ້ງຢືນແມ່ນ 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:" +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." +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*." +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)." +"ການເພີ່ມຕົວຕົນການລົງນາມໃໝ່ ແລະ ການຢັ້ງຢືນທີ່ກ່ຽວຂ້ອງ: ດັດຊະນີ **ອາດຈະ** " +"ເລືອກທີ່ຈະຮອງຮັບການຢັ້ງຢືນຈາກແຫຼ່ງອື່ນໆນອກເໜືອຈາກຜູ້ອັບໂຫລດໄຟລ໌, ເຊັ່ນ ຜູ້ກວດສອບພາຍນອກ (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 "" -"ການກວດສອບວັດຖຸການຢັ້ງຢືນກັບໄຟລ໌ການແຈກຢາຍ ຕ້ອງມີການກວດສອບແຕ່ລະຢ່າງຕໍ່ໄປນີ້:" +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)." +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 ທີ່ມີຢູ່ແລ້ວໃນຝັ່ງຜູ້ກວດສອບ)." +"``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." +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 ທີ່ເຜີຍແຜ່ແພັກເກດ." +"``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." +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." +"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 `__." +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 " -"`__." +"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." +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) ສຳລັບແຕ່ລະລາຍການ ຢູ່" -"ໃນໄລຍະເວລາ ການໃຊ້ງານຂອງໃບຢັ້ງຢືນການລົງນາມ." +"``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." +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." +"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." +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`__)." +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, ຕົວເລກ ແລະ ຂີດຕໍ່ເທົ່ານັ້ນ." +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 ``#``)." +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:" +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." +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`` ດຽວກັນຫຼາຍບລັອກ, ເຄື່ອງມື **ຕ້ອງ** ແຈ້ງຂໍ້ຜິດພາດ." +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." +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." +"ເຄື່ອງມືທີ່ອ່ານຂໍ້ມູນເມຕາທີ່ຝັງຢູ່ **ອາດຈະ** ປະຕິບັດຕາມການປະກາດການເຂົ້າລະຫັດ 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 ຂໍ້ມູນເມຕາ:" +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." +msgid "" +"In circumstances where there is a discrepancy between the text specification " +"and the regular expression, the text specification takes precedence." msgstr "" -"ໃນສະຖານະການທີ່ມີຄວາມແຕກຕ່າງລະຫວ່າງຂໍ້ກຳນົດແບບຂໍ້ຄວາມ ແລະ regular expression, ຂໍ້ກຳນົດແບບຂໍ້ຄ" -"ວາມຈະມີຄວາມສຳຄັນກວ່າ." +"ໃນສະຖານະການທີ່ມີຄວາມແຕກຕ່າງລະຫວ່າງຂໍ້ກຳນົດແບບຂໍ້ຄວາມ ແລະ 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." +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:" +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 ແມ່ນບໍ່ແມ່ນເລື່ອງງ່າຍ, ແລະ ດັ່ງນັ້ນ:" +"ໝາຍເຫດວ່າຂໍ້ກຳນົດນີ້ພຽງແຕ່ຕ້ອງການໃຫ້ບລັອກຄຳເຫັນ *ລະດັບສູງສຸດ (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." +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." +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 "" -"ເຣັກກູລາເອັກສ໌ເພຣັດຊັນມາດຕະຖານທີ່ໃຫ້ໄວ້ຂ້າງເທິງນັ້ນແມ່ນຕົວຢ່າງຂອງການເຮັດວຽກທີ່ທຳການສະແກນຂໍ້ຄວາມແບບງ່" -"າຍໆ." +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)." +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." +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 `." +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 `." +"ຕາຕະລາງ ``[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 `." +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 ` ທີ່ຖືກຕ້ອງ." +"``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 `." +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 ` ທີ່ຖືກຕ້ອງ." +"``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." +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`` ທີ່ລະບຸໄວ້." +"ຕົວລັນສະຄຣິບ **ຕ້ອງ** ແຈ້ງຂໍ້ຜິດພາດ ຖ້າບໍ່ສາມາດສະໜອງ ``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." +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__." +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." +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 ໄວ້. ນີ້ບໍ່ແມ່ນຂໍ້ກຳນົດ ໃນການແກ້ໄຂ ແຕ່ເປັນຄຸນສົມບັດ" -"ທີ່ \"ດີທີ່ມີໄວ້\"." +"ໝາຍເຫດວ່າຕົວຢ່າງນີ້ໃຊ້ໄລບຣາຣີທີ່ຮັກສາຮູບແບບຂອງ TOML ໄວ້. ນີ້ບໍ່ແມ່ນຂໍ້ກຳນົດ ໃນການແກ້ໄຂ " +"ແຕ່ເປັນຄຸນສົມບັດທີ່ \"ດີທີ່ມີໄວ້\"." #: ../source/specifications/inline-script-metadata.rst:197 -msgid "The following is an example of how to read a stream of arbitrary metadata blocks." +msgid "" +"The following is an example of how to read a stream of arbitrary metadata " +"blocks." msgstr "ຕໍ່ໄປນີ້ແມ່ນຕົວຢ່າງວິທີການອ່ານສະຕຣີມຂອງບລັອກຂໍ້ມູນເມຕາໃດໆ." #: ../source/specifications/inline-script-metadata.rst:216 @@ -16165,55 +22081,78 @@ 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." +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`` ຂອງສະຄຣິບ, ຖ້າມີການກຳນົດໄວ້." +"ເຄື່ອງມືທີ່ຮອງຮັບການຈັດການ Python ຫຼາຍເວີຊັນ ຄວນພະຍາຍາມໃຊ້ Python ເວີຊັນສູງສຸດ " +"ທີ່ມີຢູ່ທີ່ເຂົ້າກັນໄດ້ກັບຂໍ້ມູນເມຕາ ``requires-python`` ຂອງສະຄຣິບ, ຖ້າມີການກຳນົດໄວ້." #: ../source/specifications/inline-script-metadata.rst:226 -msgid "October 2023: This specification was conditionally approved through :pep:`723`." +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." +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) ອີກຕໍ່ໄປ." +"ມັງກອນ 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." +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." +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 ຫຼື ເວີຊັນຫຼັງທີ່ເຂົ້າກັນໄດ້." +"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) ຕໍ່ໄປນີ້:" +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." +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 ຫຼື ເວີຊັນຫຼັງທີ່ເຂົ້າກັນໄດ້." +"ຕົວລະບຸແບບຫຍໍ້ຂອງໃບອະນຸຍາດທີ່ຢູ່ໃນລາຍຊື່ 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." +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 `__ ຂ" -"ອງເວີຊັນຂໍ້ກໍານົດທີ່ລະບຸໄວ້." +"ເຊິ່ງປະກອບດ້ວຍຕົວອັກສອນ, ຕົວເລກ, ``.`` ແລະ/ຫຼື ``-``, " +"ເພື່ອລະບຸໃບອະນຸຍາດທີ່ບໍ່ໄດ້ລວມຢູ່ໃນລາຍຊື່ໃບອະນຸຍາດ SPDX. ຕົວລະບຸທີ່ກໍານົດເອງຕ້ອງປະຕິບັດຕາມຂໍ້ກໍານົດຂອງ " +"SPDX, `ຂໍ້ 10.1 `__ ຂອງເວີຊັນຂໍ້ກໍານົດທີ່ລະບຸໄວ້." #: ../source/specifications/license-expression.rst:32 msgid "Examples of valid license expressions:" @@ -16228,31 +22167,42 @@ 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." +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), ເຊິ່ງຄວນເຮັດກ່ອນການຄົ້ນຫາ ແລະ ການປຽບທຽບ." +"ຂໍ້ກຳນົດນີ້ກຳນົດຮູບແບບທີ່ຊື່ແພັກເກດ ແລະ 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`)::" +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`)::" +"ຊື່ທີ່ຖືກຕ້ອງຕ້ອງປະກອບດ້ວຍສະເພາະຕົວອັກສອນ 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:" +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:" +"ຊື່ຄວນຖືກປ່ຽນເປັນຕົວອັກສອນນ້ອຍທັງໝົດ ໂດຍທີ່ຕົວອັກສອນ ``.``, ``-``, ຫຼື ``_`` ທີ່ຕິດຕໍ່ກັນ " +"ຈະຖືກປ່ຽນແທນດ້ວຍເຄື່ອງໝາຍຂີດຕໍ່ ``-`` ພຽງອັນດຽວ. ສິ່ງນີ້ສາມາດນຳໃຊ້ໃນ Python ດ້ວຍໂມດູນ re:" #: ../source/specifications/name-normalization.rst:39 msgid "This means that the following names are all equivalent:" @@ -16283,29 +22233,37 @@ 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)" +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>`." +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>`." +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." +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 ສາມາດໝາຍການແຈກຢາຍວ່າ ເຂົ້າກັນໄດ້ກັບແພລັດຟອມ" -"ສະເພາະໃດໜຶ່ງ, ແລະ ຊ່ວຍໃຫ້ຕົວຕິດຕັ້ງເຂົ້າໃຈວ່າ ການແຈກຢາຍໃດແດ່ທີ່ເຂົ້າກັນໄດ້ກັບລະບົບທີ່ພວກມັນກຳລັງລັນຢູ່." +"ແທັກຄວາມເຂົ້າກັນໄດ້ຂອງແພລັດຟອມຊ່ວຍໃຫ້ເຄື່ອງມື build ສາມາດໝາຍການແຈກຢາຍວ່າ " +"ເຂົ້າກັນໄດ້ກັບແພລັດຟອມສະເພາະໃດໜຶ່ງ, ແລະ ຊ່ວຍໃຫ້ຕົວຕິດຕັ້ງເຂົ້າໃຈວ່າ " +"ການແຈກຢາຍໃດແດ່ທີ່ເຂົ້າກັນໄດ້ກັບລະບົບທີ່ພວກມັນກຳລັງລັນຢູ່." #: ../source/specifications/platform-compatibility-tags.rst:16 msgid "The tag format is ``{python tag}-{abi tag}-{platform tag}``." @@ -16328,17 +22286,22 @@ 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." +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, ໃນແພລັດຟອມໃດກໍໄດ້." +"ຕົວຢ່າງ, ແທັກ ``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." +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``. ຮູບແບບແພັກ" -"ເກດອື່ນໆອາດຈະມີທຳນຽມຂອງພວກເຂົາເອງ." +"{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 ``_``." @@ -16349,10 +22312,12 @@ 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:" +msgid "" +"The Python tag indicates the implementation and version required by a " +"distribution. Major implementations have abbreviated codes, initially:" msgstr "" -"Python tag ບົ່ງບອກເຖິງເວີຊັນ ແລະ ລຸ້ນທີ່ຕ້ອງການໂດຍການແຈກຢາຍ. ລຸ້ນຫຼັກໆ (implementations) ຈະ" -"ມີລະຫັດຫຍໍ້, ໃນເບື້ອງຕົ້ນຄື:" +"Python tag ບົ່ງບອກເຖິງເວີຊັນ ແລະ ລຸ້ນທີ່ຕ້ອງການໂດຍການແຈກຢາຍ. ລຸ້ນຫຼັກໆ (implementations) " +"ຈະມີລະຫັດຫຍໍ້, ໃນເບື້ອງຕົ້ນຄື:" #: ../source/specifications/platform-compatibility-tags.rst:42 msgid "py: Generic Python (does not require implementation-specific features)" @@ -16375,44 +22340,61 @@ msgid "jy: Jython" msgstr "jy: Jython" #: ../source/specifications/platform-compatibility-tags.rst:48 -msgid "Other Python implementations should use :py:data:`sys.implementation.name `." +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``." +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``." +"ເວີຊັນແມ່ນ ``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." +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." +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." +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`_, ຂ້າງລຸ່ມນີ້." +"ການແຈກຢາຍທີ່ເຂົ້າກັນໄດ້ທັງ 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." +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`` ຈະໝາຍເຖິງ " +"ABI tag ບົ່ງບອກວ່າ Python ABI ໃດທີ່ຕ້ອງການໂດຍ extension modules ທີ່ລວມຢູ່ນຳ. ສຳລັບ ABI " +"ທີ່ສະເພາະແຕ່ລະລຸ້ນ, ຊື່ລຸ້ນຈະຖືກຫຍໍ້ໃນແບບດຽວກັນກັບ Python Tag, ຕົວຢ່າງ ``cp33d`` ຈະໝາຍເຖິງ " "CPython 3.3 ABI ທີ່ມີ debugging." #: ../source/specifications/platform-compatibility-tags.rst:73 @@ -16420,34 +22402,46 @@ 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." +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 ໃຫ້ດີທີ່ສຸດແນວໃດ." +"ລຸ້ນ (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." +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 ແມ່ນຂຶ້ນກັບການກຳນົດເວີຊັນຂອງລະບົບປະຕິບັດການ ຫຼື ແພລັດຟອມ ທີ່ພວກມັນຕາງໜ້າໃຫ້ ແລະ ອ" -"າດຈະປ່ຽນແປງຕາມເວລາເມື່ອແພລັດຟອມນັ້ນມີການປ່ຽນແປງເວີຊັນ." +"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:" +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()" -"``. ຕົວຢ່າງ:" +"ໃນຮູບແບບທີ່ງ່າຍທີ່ສຸດ, 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" @@ -16466,65 +22460,93 @@ 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." +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 ແລະ ຄວາມແຕກຕ່າງ ເລັກໆນ້ອຍໆລະຫວ່າງພວກມັນ." +"ຮູບແບບທີ່ງ່າຍດາຍຂ້າງເທິງນັ້ນບໍ່ພຽງພໍສຳລັບການເຜີຍແຜ່ໄຟລ໌ 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." +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 ສ່ວນໃຫຍ່." +"ແທນທີ່ຈະເປັນແນວນັ້ນ, ສຳລັບແພລັດຟອມເຫຼົ່ານັ້ນ, ມາດຕະຖານ ``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()` ໃນລະບົບຄືກັບຮູບແບບ \"ງ່າຍໆ\" ຂ້າງເທິງ." +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 "" -"ແທັກເກົ່າໆຕໍ່ໄປນີ້ຍັງຄົງໄດ້ຮັບການຮອງຮັບເພື່ອຄວາມເຂົ້າກັນໄດ້ກັບເວີຊັນກ່ອນໜ້າ:" +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``." +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``." +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)." +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)." +"ໂດຍທົ່ວໄປແລ້ວ, ການແຈກຢາຍທີ່ 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." +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 ເຫຼົ່ານີ້ຈະບໍ່ໄດ້ຮັບການອັບເດດດ້ານຄວາມປອດໄພອີກຕໍ່" -"ໄປ." +"ຜູ້ດູແລແພັກເກດຄວນພະຍາຍາມຕັ້ງເປົ້າໝາຍໃສ່ຂໍ້ກຳນົດທີ່ເຂົ້າກັນໄດ້ຫຼາຍທີ່ສຸດເທົ່າທີ່ຈະເປັນໄປໄດ້, " +"ແຕ່ຕ້ອງລະວັງວ່າສະພາບແວດລ້ອມການ 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:" +msgid "" +"The following table shows the minimum versions of relevant projects to " +"support the various ``manylinux`` standards:" msgstr "" "ຕາຕະລາງຕໍ່ໄປນີ້ສະແດງເວີຊັນຂັ້ນຕ່ຳຂອງໂຄງການທີ່ກ່ຽວຂ້ອງ ເພື່ອຮອງຮັບມາດຕະຖານ ``manylinux`` ຕ່າງໆ:" @@ -16586,58 +22608,87 @@ 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" +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``." +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``." +"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:" +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." +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_ " +"ປະຈຸບັນມີສອງວິທີທີ່ເປັນໄປໄດ້ໃນການຊອກຫາສະຖານທີ່ຂອງໄລບຣາຣີ 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``." +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``." +"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. ຕົວຢ່າງ, " +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`` ຄວນເປັນຕົວລະບຸ ຈາກລາຍຊື່ຕໍ່ໄ" -"ປນີ້ທີ່ອະທິບາຍຊຸດຂອງສະຖາປັດຕະຍະກຳທີ່ຮອງຮັບ:" +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``" @@ -16696,7 +22747,12 @@ 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." +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 " @@ -16707,7 +22763,12 @@ 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." +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 ທີ່ກຳນົດ. ຕົວຢ່າງ, " @@ -16716,18 +22777,26 @@ msgstr "" "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 `__." +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 ທີ່ກ່ຽວຂ້ອງ " -"`__." +"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:" +msgid "" +"There are 4 `supported ABIs `__. Normalized according to the rules above, they are:" msgstr "" -"ມີ 4 `ABIs ທີ່ໄດ້ຮັບການຮອງຮັບ `__. ເ" -"ມື່ອເຮັດໃຫ້ເປັນມາດຕະຖານຕາມກົດຂ້າງເທິງແລ້ວ, ພວກມັນຄື:" +"ມີ 4 `ABIs ທີ່ໄດ້ຮັບການຮອງຮັບ `__. " +"ເມື່ອເຮັດໃຫ້ເປັນມາດຕະຖານຕາມກົດຂ້າງເທິງແລ້ວ, ພວກມັນຄື:" #: ../source/specifications/platform-compatibility-tags.rst:259 msgid "``armeabi_v7a``" @@ -16746,59 +22815,85 @@ 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." +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 ໃໝ່ໆຖືກເຜີຍແຜ່ຕັ້ງແຕ່ນັ້ນມາ." +"ເກືອບທັງໝົດຂອງອຸປະກອນຈິງໃນປະຈຸບັນໃຊ້ສະຖາປັດຕະຍະກຳ 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." +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 ຈະອ້າງເຖິງພຽງແຕ່ເວີຊັນຫຼັກກໍຕາມ. ຕົວຢ່າງ, " +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." +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." +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 ຈິງໄດ້." +"ຄ່າຂອງ ``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:" +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;" +msgid "" +"``arm64_iphoneos``, for physical iPhone/iPad devices. This includes every " +"iOS device manufactured since ~2015;" msgstr "" -"``arm64_iphoneos``, ສຳລັບອຸປະກອນ iPhone/iPad ຈິງ. ນີ້ລວມເຖິງທຸກອຸປະກອນ iOS ທີ່ຜະລິດປະມານ" -"ຕັ້ງແຕ່ປີ 2015;" +"``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" +msgid "" +"``arm64_iphonesimulator``, for simulators running on Apple Silicon macOS " +"hardware; and" msgstr "" -"``arm64_iphonesimulator``, ສຳລັບຕົວຈຳລອງທີ່ລັນເທິງ Apple Silicon macOS hardware; ແລ" -"ະ" +"``arm64_iphonesimulator``, ສຳລັບຕົວຈຳລອງທີ່ລັນເທິງ Apple Silicon macOS hardware; " +"ແລະ" #: ../source/specifications/platform-compatibility-tags.rst:299 msgid "``x86_64_iphonesimulator``, for simulators running on x86_64 hardware." @@ -16809,34 +22904,53 @@ 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." +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 ແລ້ວ ``ຢູ່ໃນ`` ລາຍຊື່, ມັນກໍສາມາດຕິດຕັ້ງໄດ້." +"ແທັກເຫຼົ່ານີ້ຖືກໃຊ້ໂດຍຕົວຕິດຕັ້ງເພື່ອຕັດສິນໃຈວ່າຈະດາວໂຫລດການແຈກຢາຍທີ່ 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 ເທົ່ານັ້ນ." +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." +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 ທີ່ເຂົ້າກັນໄດ້ແຕ່ເປັນຂອງເກົ່າ." +"ຄຸນສົມບັດຂອງຕົວຕິດຕັ້ງທີ່ດີອີກຢ່າງໜຶ່ງອາດຈະເປັນການລວມເອົາ \"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):" +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 ເວີຊັນເ" -"ກົ່າ):" +"ລາຍຊື່ຕົວຢ່າງນີ້ແມ່ນສຳລັບຕົວຕິດຕັ້ງທີ່ລັນພາຍໃຕ້ 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" @@ -16895,37 +23009,56 @@ 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." +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." +"ການແຈກຢາຍທີ່ 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 ຈະຖືກຕິດຕັ້ງກ່ອນແພັກເກ" -"ດທີ່ບໍ່ມີ ເພາະວ່າແທັກນັ້ນ ປະກົດຂຶ້ນກ່ອນໃນລາຍຊື່." +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``. ລາຍຊື່ເຕັມຂອງແທັກແບບງ່າຍໆຄື::" +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." +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 " +"ຮູບແບບ bdist ທີ່ນຳໃຊ້ຮູບແບບນີ້ຄວນລວມເອົາແທັກທີ່ຂະຫຍາຍແລ້ວໄວ້ໃນຂໍ້ມູນເມຕາ ສະເພາະຂອງ bdist. " +"ຮູບແບບການຫຍໍ້ນີ້ສາມາດສ້າງແທັກທີ່ບໍ່ໄດ້ຮັບການຮອງຮັບ ແລະ ແທັກທີ່ \"ເປັນໄປບໍ່ໄດ້\" ເຊິ່ງບໍ່ມີ Python " "implementation ໃດຮອງຮັບ ຕົວຢ່າງ \"cp33-cp31u-win64\", ດັ່ງນັ້ນຄວນໃຊ້ດ້ວຍຄວາມລະມັດລະວັງ." #: ../source/specifications/platform-compatibility-tags.rst:383 @@ -16933,111 +23066,156 @@ 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." +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 ຫຼາຍເວີຊັນ." +"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?" +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`` ທີ່ບໍ່ໄດ້ໃຊ້ຄຸນສົມບັດໃໝ່ ເພື່ອໃຫ້ໄດ້ບິວດ໌ທີ່ເຂົ້າກັນໄດ້." +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." +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) ອື່ນໆ ອາດຈະໃຊ້ _ ເປັນຕົວແຍກ, ເນື່ອງຈາກທັງ - ແລະ . ຖືກໃຊ້ເປັນຕົວແຍກ" -"ໃນຊື່ໄຟລ໌ແລ້ວ." +"CPython ຢູ່ມາໄດ້ 20 ກວ່າປີໂດຍບໍ່ມີການອອກເວີຊັນຫຼັກ 3 ຫຼັກ. ສິ່ງນີ້ຄວນຈະດຳເນີນຕໍ່ໄປ ອີກໄລຍະໜຶ່ງ. " +"ການເຮັດວຽກ (implementations) ອື່ນໆ ອາດຈະໃຊ້ _ ເປັນຕົວແຍກ, ເນື່ອງຈາກທັງ - ແລະ . " +"ຖືກໃຊ້ເປັນຕົວແຍກໃນຊື່ໄຟລ໌ແລ້ວ." #: ../source/specifications/platform-compatibility-tags.rst:404 -msgid "Why normalise hyphens and other non-alphanumeric characters to underscores?" +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)." +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 ໄດ້ໂດຍບໍ່ຕ້ອງໃຊ້ເຄື່ອງ" -"ໝາຍອ້າງອີງ)." +"ເພື່ອຫຼີກເວັ້ນການຂັດແຍ່ງກັບຕົວອັກສອນ ``.`` ແລະ ``-`` ທີ່ໃຊ້ແຍກສ່ວນປະກອບຂອງຊື່ໄຟລ໌, ແລະ " +"ເພື່ອຄວາມເຂົ້າກັນໄດ້ທີ່ດີຂຶ້ນກັບຂໍ້ຈຳກັດຂອງລະບົບໄຟລ໌ທີ່ຫຼາກຫຼາຍ (ລວມເຖິງການ ນຳໃຊ້ໃນ 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`." +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)?" +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." +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 ທີ່ໂດດເດັ່ນທີ່ສຸດໃນປັດຈຸບັນ." +"ສາມາດຂໍຕົວຫຍໍ້ສອງຕົວອັກສອນໃໝ່ໄດ້ໃນ 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." +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 ຄວນມີຜົນໃຊ້ໄດ້ກັບການແຈກຢາຍທັງໝົດ, ບໍ່ແມ່ນພຽງແຕ່ບິວດ໌ດຽວ ຂອງການແຈກຢາຍນັ້" -"ນ." +"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``." +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``." +"ແທັກຕົວຫຍໍ້ຊ່ວຍໃຫ້ການແບ່ງປັນລະຫັດ 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?" +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\"." +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\" ກໍເປັນວິທີທີ່ດີພໍທີ່ຈະ" -"ບອກວ່າ \"ບໍ່ຮູ້\"." +"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`." +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`." @@ -17052,7 +23230,9 @@ 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`." +msgid "" +"November 2019: The ``manylinux_x_y`` perennial tag was approved " +"through :pep:`600`." msgstr "" "ພະຈິກ 2019: ແທັກ ``manylinux_x_y`` ແບບຕະຫຼອດການ ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`600`." @@ -17077,36 +23257,47 @@ 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 `." +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 `." +":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." +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 **ອາດຈະ** ນຳໃຊ້ສ່ວນໃດສ່ວນໜຶ່ງຂອງເຄື່ອງໝາຍສະຖານະທີ່ກຳນົດໄວ້ ຕາມຄວາມຈຳເປັນ." +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." +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, ແລະ ອື່ນໆ) ທີ່ມີສິດ" -"ໃນການຕັ້ງຄ່າ ຫຼື ຍົກເລີກສະຖານະໃດໆ." +"ມາດຕະຖານນີ້ບໍ່ໄດ້ກຳນົດວ່າ *ບຸກຄົນໃດ* (ເຊັ່ນ: ຜູ້ເບິ່ງແຍງໂຄງການ, ຜູ້ເບິ່ງແຍງ 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." +msgid "" +"Description: The project is active. This is the default status for a project." msgstr "ລາຍລະອຽດ: ໂຄງການກຳລັງດຳເນີນງານຢູ່. ນີ້ແມ່ນສະຖານະເລີ່ມຕົ້ນຂອງໂຄງການ." #: ../source/specifications/project-status-markers.rst:36 @@ -17117,13 +23308,15 @@ 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 ທີ່ໂຮສໂຄງການ **ຕ້ອງ** ອະນຸຍາດໃຫ້ອັບໂຫຼດການແຈກຢາຍໃໝ່ໆເຂົ້າໃນໂຄງການ." +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." +msgid "" +"The index **MUST** offer existing distributions of the project for download." msgstr "Index **ຕ້ອງ** ມີການແຈກຢາຍທີ່ມີຢູ່ຂອງໂຄງການໃຫ້ດາວໂຫຼດ." #: ../source/specifications/project-status-markers.rst:42 @@ -17140,9 +23333,10 @@ 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 ທີ່ໂຮສໂຄງການ **ຕ້ອງບໍ່** ອະນຸຍາດໃຫ້ອັບໂຫຼດການແຈກຢາຍໃໝ່ໆເຂົ້າໃນໂຄງການ." +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 @@ -17159,26 +23353,34 @@ 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." +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." +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)." +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 ຈະບໍ່ມີການແຈກຢາຍໃຫ້ຕິດຕັ້ງຢູ່ແລ້ວ)." +"ຜູ້ຕິດຕັ້ງ **ອາດຈະ** ແຈ້ງເຕືອນກ່ຽວກັບການກັກບໍລິເວນຂອງໂຄງການ, ເຖິງແມ່ນວ່າການເຮັດ " +"ແບບນັ້ນອາດຈະບໍ່ມີຜົນຫຍັງຫຼາຍ (ເນື່ອງຈາກ 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." +msgid "" +"Description: The project is considered obsolete, and may have been " +"superseded by another project." msgstr "ລາຍລະອຽດ: ໂຄງການຖືກພິຈາລະນາວ່າລ້າສະໄໝ ແລະ ອາດຖືກປ່ຽນແທນໂດຍໂຄງການອື່ນ." #: ../source/specifications/project-status-markers.rst:85 @@ -17194,7 +23396,9 @@ 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." +msgid "" +"The ``pylock.toml`` file format is for specifying dependencies to enable " +"reproducible installation in a Python environment." msgstr "" "ຮູບແບບໄຟລ໌ ``pylock.toml`` ແມ່ນສຳລັບກຳນົດ dependency ເພື່ອໃຫ້ສາມາດ ຕິດຕັ້ງຊ້ຳໄດ້ " "(reproducible) ໃນສະພາບແວດລ້ອມ Python." @@ -17208,14 +23412,22 @@ 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.:" +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$\"`` ຫາກຕ້ອງການຕັ້ງຊື່ ຫຼື ຫາກມີຫຼາຍໄຟລ໌... ສ່ວນໜ້າ ແລະ ສ່ວນ" -"ທ້າຍຂອງຊື່ໄຟລ໌ **ຕ້ອງ** ເປັນຕົວພິມນ້ອຍຫາກເປັນໄປໄດ້ ເພື່ອໃຫ້ກວດຫາ ແລະ ລຶບອອກໄດ້ງ່າຍ, ເຊັ່ນ:" +"``r\"^pylock\\.([^.]+)\\.toml$\"`` ຫາກຕ້ອງການຕັ້ງຊື່ ຫຼື ຫາກມີຫຼາຍໄຟລ໌... ສ່ວນໜ້າ ແລະ " +"ສ່ວນທ້າຍຂອງຊື່ໄຟລ໌ **ຕ້ອງ** ເປັນຕົວພິມນ້ອຍຫາກເປັນໄປໄດ້ ເພື່ອໃຫ້ກວດຫາ ແລະ ລຶບອອກໄດ້ງ່າຍ, ເຊັ່ນ:" #: ../source/specifications/pylock-toml.rst:30 -msgid "The expectation is that services that automatically install from lock files will search for:" +msgid "" +"The expectation is that services that automatically install from lock files " +"will search for:" msgstr "ສິ່ງທີ່ຄາດຫວັງຄື ບໍລິການທີ່ຕິດຕັ້ງອັດຕະໂນມັດຈາກໄຟລ໌ lock ຈະຄົ້ນຫາ:" #: ../source/specifications/pylock-toml.rst:33 @@ -17223,37 +23435,55 @@ 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 ຕາມຊື່ຂອງບໍລິການ" +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." +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\" ແທນ." +"ເຊັ່ນ: ບໍລິການຄລາວທີ່ຊື່ວ່າ \"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, ມັນກໍຄວນ ຈະຢູ່ໃນໄດເຣັກທໍຣີທີ່ລວມທຸກໂຄງການເຫຼົ່ານັ້" -"ນໄວ້." +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 ໃນຕາຕ" -"ະລາງ **ຄວນ** ຖືກບັນທຶກຕາມລໍາດັບທີ່ແນ່ນອນ. ເຊັ່ນດຽວກັນ, ເຄື່ອງມື **ຄວນ** ລຽງລຳດັບອາເຣ " +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 @@ -17285,16 +23515,20 @@ 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\"``." +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." +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 ທີ່ບໍ່ຮູ້ຈັກ." +"ຖ້າເຄື່ອງມືຮອງຮັບເວີຊັນຫຼັກ (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." @@ -17336,15 +23570,18 @@ 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." +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 ນີ້ເຂົ້າກັນໄ" -"ດ້." +"ລາຍການຂອງ :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 ແບບບໍ່ຊ້ຳກັນເພື່ອໃຫ້ເຂົ້າໃຈງ່າຍ." +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 @@ -17377,10 +23614,13 @@ 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)." +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 ຮອງຮັບ." +"ກຳນົດ :ref:`core-metadata-requires-python` ສຳລັບເວີຊັນ Python ຕໍ່າສຸດທີ່ " +"ເຂົ້າກັນໄດ້ກັບທຸກສະພາບແວດລ້ອມທີ່ໄຟລ໌ lock ຮອງຮັບ." #: ../source/specifications/pylock-toml.rst:111 #: ../source/specifications/pylock-toml.rst:133 @@ -17393,13 +23633,18 @@ 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." +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)." +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." @@ -17409,7 +23654,13 @@ 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." +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..." @@ -17425,17 +23676,25 @@ 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)." +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 ຂອງເຄື່ອງມືໄດ້)." +"ລາຍການຂອງ :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." +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..." @@ -17449,20 +23708,26 @@ 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 ສັງເຄາະ ເພື່ອແທນສິ່ງທີ່ຄວນຕິດຕັ້ງເປັນຄ່າເລີ່ມຕົ້ນ." +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` ຈຳເປັນຕ້ອງມີກຸ່ມດັ່ງກ່າວ." +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." +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` ເນື່ອງຈາກກຸ່ມເຫຼົ່ານີ້" -"ບໍ່ໄດ້ມີໄວ້ໃຫ້ຜູ້ໃຊ້ເລືອກໂດຍກົງຜ່ານຊື່." +"ກຸ່ມທີ່ລະບຸໃນ key ນີ້ **ບໍ່ຄວນ** ຖືກລະບຸໃນ :ref:`pylock-dependency-groups` " +"ເນື່ອງຈາກກຸ່ມເຫຼົ່ານີ້ບໍ່ໄດ້ມີໄວ້ໃຫ້ຜູ້ໃຊ້ເລືອກໂດຍກົງຜ່ານຊື່." #: ../source/specifications/pylock-toml.rst:171 msgid "``created-by``" @@ -17477,16 +23742,20 @@ 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." +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." +"ເຄື່ອງມື **ອາດຈະ** ໃຊ້ຕາຕະລາງ :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." +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." +"ເຄື່ອງມື **ຄວນ** ບັນທຶກຊື່ເຄື່ອງມືທີ່ປັບປ່ຽນໃຫ້ເປັນມາດຕະຖານ (normalized) ຖ້າ " +"ມັນມີໃຫ້ໃຊ້ໃນຮູບແບບແພັກເກັດ Python." #: ../source/specifications/pylock-toml.rst:186 msgid "``[[packages]]``" @@ -17504,10 +23773,12 @@ 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." +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``" @@ -17534,13 +23805,19 @@ 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)." +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`)." +"**ຄວນ** ລະບຸເວີຊັນ ເມື່ອຮູ້ວ່າເວີຊັນນັ້ນຄົງທີ່ (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)." +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`)." @@ -17554,10 +23831,12 @@ msgid "**Inspiration**: PDM_" msgstr "**ແຮງບັນດານໃຈ**: PDM_" #: ../source/specifications/pylock-toml.rst:232 -msgid "The :ref:`environment marker ` which specify when the package should be installed." +msgid "" +"The :ref:`environment marker ` " +"which specify when the package should be installed." msgstr "" -":ref:`environment marker ` ທີ່ກຳນົດວ່າ" -"ຄວນຕິດຕັ້ງແພັກເກັດເມື່ອໃດ." +":ref:`environment marker ` " +"ທີ່ກຳນົດວ່າຄວນຕິດຕັ້ງແພັກເກັດເມື່ອໃດ." #: ../source/specifications/pylock-toml.rst:240 msgid "``packages.requires-python``" @@ -17568,7 +23847,9 @@ 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." +msgid "" +"Holds the :ref:`version-specifiers` for Python version compatibility for the " +"package." msgstr "ເກັບກຳ :ref:`version-specifiers` ສຳລັບຄວາມເຂົ້າກັນໄດ້ຂອງເວີຊັນ Python." #: ../source/specifications/pylock-toml.rst:252 @@ -17576,18 +23857,28 @@ 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." +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 = \"...\"}``)." +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." +msgid "" +"Tools MUST NOT use this information when doing installation; it is purely " +"informational for auditing purposes." msgstr "" "ເຄື່ອງມື **ຕ້ອງບໍ່** ໃຊ້ຂໍ້ມູນນີ້ໃນເວລາຕິດຕັ້ງ; ມັນມີໄວ້ເພື່ອເປັນຂໍ້ມູນສຳລັບ ການກວດສອບ (auditing) ເທົັ້ນ." @@ -17605,23 +23896,29 @@ 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`" +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`" +"**ຈຳເປັນຫຼືບໍ່?**: ບໍ່; ບໍ່ສາມາດໃຊ້ຮ່ວມກັບ :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` ທີ່ມັນບັນຈຸຢູ່." +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." +msgid "" +"Tools MAY choose to not support version control systems, both from a locking " +"and/or installation perspective." msgstr "" "ເຄື່ອງມື **ອາດຈະ** ເລືອກທີ່ຈະບໍ່ຮອງຮັບລະບົບຄວບຄຸມເວີຊັນ ທັງໃນດ້ານການສ້າງ lock ແລະ/ຫຼື ການຕິດຕັ້ງ." @@ -17630,22 +23927,27 @@ 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 "" -"ເຄື່ອງມື **ຄວນ** ມີວິທີໃຫ້ຜູ້ໃຊ້ເລືອກວ່າຈະໃຊ້ ຫຼື ບໍ່ໃຊ້ລະບົບຄວບຄຸມເວີຊັນ." +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 `." +msgid "" +"Installation from a version control system is considered originating from " +"a :ref:`direct URL reference `." msgstr "" -"ການຕິດຕັ້ງຈາກລະບົບຄວບຄຸມເວີຊັນຖືກຖືວ່າແມ່ນມາຈາກ :ref:`direct URL reference " -"`." +"ການຕິດຕັ້ງຈາກລະບົບຄວບຄຸມເວີຊັນຖືກຖືວ່າແມ່ນມາຈາກ :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`" +msgid "" +"**Type**: string; supported values specified in :ref:`direct-url-data-" +"structure-registered-vcs`" msgstr "" "**ປະເພດ**: string; ຄ່າທີ່ຮອງຮັບແມ່ນກຳນົດໄວ້ໃນ :ref:`direct-url-data-structure-" "registered-vcs`" @@ -17688,16 +23990,18 @@ msgstr "ເສັ້ນທາງ (path) ໄປຫາໄດເຣັກທໍຣ #: ../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), ມັນ **ຕ້ອງ** ທຽບກັບທີ່ຕັ້ງຂອງໄຟລ໌ນີ້." +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." +msgid "" +"If the path is relative it MAY use POSIX-style path separators explicitly " +"for portability." msgstr "" -"ຖ້າ path ເປັນແບບທຽບຖານ, ມັນ **ອາດຈະ** ໃຊ້ຕົວແຍກ path ແບບ POSIX ເພື່ອ ຄວາມສະດວກໃນການເ" -"ຄື່ອນຍ້າຍລະບົບ." +"ຖ້າ path ເປັນແບບທຽບຖານ, ມັນ **ອາດຈະ** ໃຊ້ຕົວແຍກ path ແບບ POSIX ເພື່ອ " +"ຄວາມສະດວກໃນການເຄື່ອນຍ້າຍລະບົບ." #: ../source/specifications/pylock-toml.rst:331 msgid "``packages.vcs.requested-revision``" @@ -17708,7 +24012,9 @@ 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." +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." @@ -17722,10 +24028,13 @@ 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." +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 ເພື່ອອ້າງອີງເຖິງລະຫັດເວີຊັນທີ່ບໍ່ສາມາດປ່ຽນແປງໄດ້." +"ຖ້າ VCS ຮອງຮັບການລະບຸ revision ດ້ວຍ commit-hash, ໝາຍເລກ commit-hash ນັ້ນ **ຕ້ອງ** " +"ຖືກໃຊ້ເປັນ commit ID ເພື່ອອ້າງອີງເຖິງລະຫັດເວີຊັນທີ່ບໍ່ສາມາດປ່ຽນແປງໄດ້." #: ../source/specifications/pylock-toml.rst:359 msgid "``packages.vcs.subdirectory``" @@ -17736,9 +24045,11 @@ 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)." +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." @@ -17749,7 +24060,10 @@ 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`" +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-" @@ -17762,23 +24076,29 @@ 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` ທີ່ມັນບັນຈຸຢູ່." +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." +msgid "" +"Tools MAY choose to not support local directories, both from a locking and/" +"or installation perspective." msgstr "" -"ເຄື່ອງມື **ອາດຈະ** ເລືອກທີ່ຈະບໍ່ຮອງຮັບໄດເຣັກທໍຣີພາຍໃນເຄື່ອງ ທັງໃນດ້ານການສ້າງ lock ແລະ/ຫຼື ການຕິດຕັ້" -"ງ." +"ເຄື່ອງມື **ອາດຈະ** ເລືອກທີ່ຈະບໍ່ຮອງຮັບໄດເຣັກທໍຣີພາຍໃນເຄື່ອງ ທັງໃນດ້ານການສ້າງ lock ແລະ/ຫຼື " +"ການຕິດຕັ້ງ." #: ../source/specifications/pylock-toml.rst:386 -msgid "Tools SHOULD provide a way for users to opt in/out of using local directories." -msgstr "" -"ເຄື່ອງມື **ຄວນ** ມີວິທີໃຫ້ຜູ້ໃຊ້ເລືອກວ່າຈະໃຊ້ ຫຼື ບໍ່ໃຊ້ໄດເຣັກທໍຣີພາຍໃນເຄື່ອງ." +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 `." +msgid "" +"Installation from a directory is considered originating from a :ref:`direct " +"URL reference `." msgstr "" "ການຕິດຕັ້ງຈາກໄດເຣັກທໍຣີຖືກຖືວ່າແມ່ນມາຈາກ :ref:`direct URL reference `." @@ -17791,14 +24111,17 @@ 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." +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." +msgid "" +"If the path is relative it MAY use POSIX-style path separators for " +"portability." msgstr "" -"ຖ້າເສັ້ນທາງເປັນແບບທຽບຖານ ມັນ **ອາດຈະ** ໃຊ້ຕົວແຍກ path ແບບ POSIX ເພື່ອ ຄວາມສະດວກໃນການເຄື່" -"ອນຍ້າຍລະບົບ." +"ຖ້າເສັ້ນທາງເປັນແບບທຽບຖານ ມັນ **ອາດຈະ** ໃຊ້ຕົວແຍກ path ແບບ POSIX ເພື່ອ " +"ຄວາມສະດວກໃນການເຄື່ອນຍ້າຍລະບົບ." #: ../source/specifications/pylock-toml.rst:408 msgid "``packages.directory.editable``" @@ -17813,16 +24136,22 @@ 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." +msgid "" +"A flag representing whether the source tree was an editable install at lock " +"time." msgstr "" -"ເຄື່ອງໝາຍທີ່ບົ່ງບອກວ່າ source tree ເປັນການຕິດຕັ້ງແບບແກ້ໄຂໄດ້ (editable install) ໃນເວລາທີ່ສ້າ" -"ງ lock ຫຼື ບໍ່." +"ເຄື່ອງໝາຍທີ່ບົ່ງບອກວ່າ 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)." +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)." +"ຜູ້ຕິດຕັ້ງ **ອາດຈະ** ເລືອກທີ່ຈະບໍ່ສົນໃຈເຄື່ອງໝາຍນີ້ ຖ້າບໍລິບົດເຮັດໃຫ້ການຕິດຕັ້ງ ແບບແກ້ໄຂໄດ້ນັ້ນບໍ່ຈຳເປັນ " +"(ເຊັ່ນ ການໃຊ້ໃນ container ສຳລັບ production)." #: ../source/specifications/pylock-toml.rst:424 msgid "``packages.directory.subdirectory``" @@ -17844,22 +24173,30 @@ 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)." +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 ແລະ ຮູບ" -"ແບບການຈັດເກັບອື່ນໆ)." +"ການອ້າງອີງໂດຍກົງເຖິງໄຟລ໌ຈັດເກັບ (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." +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." +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 `." +msgid "" +"Installation from an archive file is considered originating from " +"a :ref:`direct URL reference `." msgstr "" "ການຕິດຕັ້ງຈາກໄຟລ໌ຈັດເກັບຖືກຖືວ່າແມ່ນມາຈາກ :ref:`direct URL reference `." @@ -17888,10 +24225,12 @@ 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." +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 ນີ້ຈະມີບຸລິມະສິດສູ" -"ງກວ່າ." +"ຖ້າໄດ້ລະບຸ :ref:`pylock-packages-archive-url` ໄວ້ຄືກັນ, ຊື່ໄຟລ໌ທີ່ລະບຸໂດຍ key " +"ນີ້ຈະມີບຸລິມະສິດສູງກວ່າ." #: ../source/specifications/pylock-toml.rst:477 msgid "``packages.archive.size``" @@ -17910,7 +24249,9 @@ 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)." +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 @@ -17946,7 +24287,9 @@ 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." +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." @@ -17960,10 +24303,13 @@ 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." +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)." +"**ຄວນ** ລວມເອົາຢ່າງໜ້ອຍໜຶ່ງ algorithm " +"ທີ່ປອດໄພຈາກ :py:data:`hashlib.algorithms_guaranteed` ໄວ້ສະເໝີ (ແນະນຳ sha256)." #: ../source/specifications/pylock-toml.rst:519 msgid "``packages.archive.subdirectory``" @@ -17974,19 +24320,25 @@ 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/``)." +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." +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 ເດີ" -"ມໃຊ້ບໍ່ໄດ້ແລ້ວ." +"ຫາກເປັນໄປໄດ້, **ຄວນ** ລະບຸສິ່ງນີ້ເພື່ອຊ່ວຍໃນການສ້າງ 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 ທີ່ບັນທຶກໄວ້ ໃຊ້ບໍ່ໄດ້ແລ້ວ." +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]``" @@ -17994,7 +24346,9 @@ 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`" +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`" @@ -18004,12 +24358,15 @@ 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." +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." +msgid "" +"Tools SHOULD provide a way for users to opt in/out of using sdist files." msgstr "ເຄື່ອງມື **ຄວນ** ມີວິທີໃຫ້ຜູ້ໃຊ້ເລືອກວ່າຈະໃຊ້ ຫຼື ບໍ່ໃຊ້ໄຟລ໌ sdist." #: ../source/specifications/pylock-toml.rst:560 @@ -18017,7 +24374,9 @@ 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" +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 @@ -18025,9 +24384,10 @@ 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." +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``" @@ -18079,21 +24439,25 @@ 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`." +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 ແລະ ການຕິດຕັ້ງ." +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" +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 @@ -18101,9 +24465,11 @@ 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." +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``" @@ -18135,16 +24501,18 @@ 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) ສຳລັບໄຟລ໌ໃດໜຶ່ງທີ່ບັນທຶກໄວ້ສຳລັບແພັກເກັດນີ້." +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`." +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 @@ -18153,20 +24521,23 @@ msgstr "``packages.attestation-identities.kind``" #: ../source/specifications/pylock-toml.rst:706 msgid "The unique identity of the Trusted Publisher." -msgstr "" -"ຕົວຕົນທີ່ເປັນເອກະລັກຂອງຜູ້ເຜີຍແຜ່ທີ່ໄດ້ຮັບຄວາມເຊື່ອຖື (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` ແຕ່ຢູ່ໃນລະດັບເວີຊັນຂອງແພັກເກັດ..." +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)." +msgid "" +"Data recorded in the table MUST be disposable (i.e. it MUST NOT affect " +"installation)." msgstr "" "ຂໍ້ມູນທີ່ບັນທຶກໃນຕາຕະລາງ **ຕ້ອງ** ສາມາດຖິ້ມໄດ້ (ໝາຍຄວາມວ່າ ມັນ **ຕ້ອງບໍ່** ສົ່ງຜົນກະທົບຕໍ່ການຕິດຕັ້ງ)." @@ -18179,41 +24550,54 @@ 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 (ຂັ້ນຕອນ ແລະ ລຳດັບ ເຫຼົ່ານີ້ແມ່ນຂໍ້ແນະນຳ):" +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." +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) ເປັນຄ່າເລີ່ມຕົ້ນ." +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." +msgid "" +"``dependency_groups`` SHOULD be the set created from :ref:`pylock-default-" +"groups` by default." msgstr "" -"``dependency_groups`` **ຄວນ** ເປັນເຊັດທີ່ສ້າງຂຶ້ນຈາກ :ref:`pylock-default-groups` ເປັ" -"ນຄ່າເລີ່ມຕົ້ນ." +"``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." +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` ໄດ້ຮັບການ ຮອງຮັບຫຼືບໍ່; **ຕ້" -"ອງ** ສະແດງຂໍ້ຜິດພາດ ຫຼື ຄຳເຕືອນຕາມຄວາມເໝາະສົມ." +"ກວດສອບວ່າເວີຊັນ 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." +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`, ໃຫ້ກວດສອບວ່າສະພາບແວດລ້ອມທີ່ກຳລັງ ຕິດຕັ້ງນັ້ນກົງຕາມຄ" -"ວາມຕ້ອງການຫຼືບໍ່; **ຕ້ອງ** ສະແດງຂໍ້ຜິດພາດຫາກບໍ່ກົງຕາມເງື່ອນໄຂ." +"ຫາກລະບຸ :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." +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 ນັ້ນກົງຕາມເງື່ອນໄຂຫຼືບໍ່; **ຕ້ອງ** ສະແດງຂໍ້ຜິດພາດຫາກ ບໍ່ມີນິພົດໃດກົງຕາມເງື່ອນໄຂ." @@ -18223,25 +24607,34 @@ 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." +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`, ໃຫ້ກວດສອບວ່ານັ້ນກົງຕາມເງື່ອນໄຂຫຼືບໍ່; ຫາກບໍ່ກົງ, ໃຫ້ຂ້າ" -"ມໄປແພັກເກັດຖັດໄປ." +"ຫາກລະບຸ :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." +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`, ໃຫ້ກວດສອບວ່ານັ້ນກົງຕາມເງື່ອນໄຂຫຼືບໍ່; **ຕ້" -"ອງ** ສະແດງຂໍ້ຜິດພາດຫາກບໍ່ກົງຕາມເງື່ອນໄຂ." +"ຫາກລະບຸ :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." +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." +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 "" "ກວດສອບວ່າແຫຼ່ງທີ່ມາຂອງແພັກເກັດຖືກລະບຸຢ່າງເໝາະສົມ; **ຕ້ອງ** ສະແດງຂໍ້ຜິດພາດ ຫາກພົບບັນຫາໃດໆ." @@ -18258,16 +24651,20 @@ 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`." +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`." +msgid "" +":ref:`Build ` the package, " +"respecting :ref:`pylock-packages-vcs-subdirectory`." msgstr "" -":ref:`ບິວດ໌ (Build) ` ແພັກເກັດ, ໂດຍປະຕິບັດຕ" -"າມ :ref:`pylock-packages-vcs-subdirectory`." +":ref:`ບິວດ໌ (Build) ` ແພັກເກັດ, " +"ໂດຍປະຕິບັດຕາມ :ref:`pylock-packages-vcs-subdirectory`." #: ../source/specifications/pylock-toml.rst:786 #: ../source/specifications/pylock-toml.rst:792 @@ -18282,10 +24679,12 @@ 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`." +msgid "" +":ref:`Build ` the package, " +"respecting :ref:`pylock-packages-directory-subdirectory`." msgstr "" -":ref:`ບິວດ໌ (Build) ` ແພັກເກັດ, ໂດຍປະຕິບັດຕ" -"າມ :ref:`pylock-packages-directory-subdirectory`." +":ref:`ບິວດ໌ (Build) ` ແພັກເກັດ, " +"ໂດຍປະຕິບັດຕາມ :ref:`pylock-packages-directory-subdirectory`." #: ../source/specifications/pylock-toml.rst:794 msgid "Else if :ref:`pylock-packages-archive` is set:" @@ -18297,26 +24696,33 @@ 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`." +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`." +msgid "" +":ref:`Build ` the package, " +"respecting :ref:`pylock-packages-archive-subdirectory`." msgstr "" -":ref:`ບິວດ໌ (Build) ` ແພັກເກັດ, ໂດຍປະຕິບັດຕ" -"າມ :ref:`pylock-packages-archive-subdirectory`." +":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." +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` ຫຼື ສະແດງຂໍ້ຜິດພາດ." +"ຄົ້ນຫາໄຟລ໌ wheel ທີ່ເໝາະສົມຕາມ :ref:`pylock-packages-wheels-name`; " +"ຫາກບໍ່ພົບໃຫ້ໄປທີ່ :ref:`pylock-packages-sdist` ຫຼື ສະແດງຂໍ້ຜິດພາດ." #: ../source/specifications/pylock-toml.rst:809 msgid "Get the file:" @@ -18327,19 +24733,28 @@ 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)." +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` ຫຼື ກົນໄກອື່ນ..." +"ຫາກບໍ່ດັ່ງນັ້ນ ຖ້າ :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`." +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:" +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 @@ -18347,12 +24762,16 @@ 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` ຖືກຕັ້ງຄ່າ, ໃຫ້ລອງໃຊ້ມັນ..." +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`." +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`." @@ -18366,7 +24785,8 @@ 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." +msgid "" +"March 2026: Clarify file name precedence for archives, sdists, and wheels." msgstr "" "ມີນາ 2026: ເຮັດໃຫ້ລຳດັບຄວາມສຳຄັນຂອງຊື່ໄຟລ໌ສຳລັບ archives, sdists, ແລະ wheels ຊັດເຈນຂຶ້ນ." @@ -18375,18 +24795,24 @@ 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`." +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`." +"ໄຟລ໌ :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." +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." msgstr "" "ເຄື່ອງມືທີ່ອ່ານ ຫຼື ຂຽນໄຟລ໌ :file:`.pypirc` ອາດຈະເຮັດວຽກບໍ່ຖືກຕ້ອງ ຖ້າໃຊ້ການເຂົ້າລະຫັດຕົວອັກສອນອື່ນ." @@ -18395,10 +24821,12 @@ 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." +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." +"ສ່ວນ ``distutils`` ກຳນົດຟີວ (field) ``index-servers`` ທີ່ລະບຸຊື່ຂອງ " +"ທຸກພາກສ່ວນທີ່ອະທິບາຍກ່ຽວກັບ repository." #: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" @@ -18417,51 +24845,67 @@ 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." +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`_..." +"ຄວນລະວັງວ່າສິ່ງນີ້ຈະເກັບລະຫັດຜ່ານຂອງເຈົ້າເປັນຂໍ້ຄວາມທຳມະດາ. ເພື່ອຄວາມປອດໄພ ທີ່ດີກວ່າ, " +"ໃຫ້ພິຈາລະນາໃຊ້ທາງເລືອກອື່ນ ເຊັ່ນ `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:" +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` ເພື່ອໃຫ້ເຈົ້າພຽງຜູ້ດຽວທີ່ສາ" -"ມາດເບິ່ງ ຫຼື ແກ້ໄຂມັນໄດ້. ເຊັ່ນ:" +"ຫາກບໍ່ດັ່ງນັ້ນ, ໃຫ້ຕັ້ງຄ່າການອະນຸຍາດ (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." +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` ຄື" -"ກັນ ແຕ່ມີຄ່າເລີ່ມຕົ້ນທີ່ຕ່າງກັນ..." +"ຕົວຢ່າງເຫຼົ່ານີ້ໃຊ້ກັບ :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:" +msgid "" +"Twine's default configuration mimics a :file:`.pypirc` with repository " +"sections for PyPI and TestPyPI:" msgstr "" -"ການຕັ້ງຄ່າເລີ່ມຕົ້ນຂອງ Twine ຈະຈຳລອງ :file:`.pypirc` ທີ່ມີພາກສ່ວນ repository ສຳລັບ PyPI ແ" -"ລະ TestPyPI:" +"ການຕັ້ງຄ່າເລີ່ມຕົ້ນຂອງ 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." +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`, ບັນທັດຄຳສັ່ງ, ແລະ ຕົວປ່ຽນສະພາບແວ" -"ດລ້ອມ ເຂົ້າໃນການຕັ້ງຄ່າເລີ່ມຕົ້ນນີ້." +"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:" +msgid "" +"To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " +"similar to:" msgstr "" -"ເພື່ອຕັ້ງຄ່າ `API token`_ ຂອງເຈົ້າສຳລັບ PyPI, ເຈົ້າສາມາດສ້າງ :file:`$HOME/.pypirc` ທີ່ຄ້າຍຄື" -"ກັບ:" +"ເພື່ອຕັ້ງຄ່າ `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." +msgid "" +"For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " +"the API token from your TestPyPI account." msgstr "" "ສຳລັບ :ref:`TestPyPI`, ໃຫ້ເພີ່ມພາກສ່ວນ ``[testpypi]`` ໂດຍໃຊ້ API token ຈາກບັນຊີ " "TestPyPI ຂອງເຈົ້າ." @@ -18471,110 +24915,164 @@ 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:" +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):" +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`_:" +"ແທັນທີ່ຈະໃຊ້ຟີວ ``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`." +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`." +"ນີ້ແມ່ນ **ຂໍ້ກຳນົດທາງດ້ານເຕັກນິກຢ່າງເປັນທາງການ**. ສຳລັບຄຳແນະນຳການໃຊ້ ``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)." +msgid "" +"The ``pyproject.toml`` file acts as a configuration file for packaging-" +"related tools (as well as other tools)." msgstr "" -"ໄຟລ໌ ``pyproject.toml`` ເຮັດໜ້າທີ່ເປັນໄຟລ໌ຕັ້ງຄ່າສຳລັບເຄື່ອງມືທີ່ກ່ຽວຂ້ອງ ກັບການເຮັດແພັກເກັດ (ລວມເຖິ" -"ງເຄື່ອງມືອື່ນໆ)." +"ໄຟລ໌ ``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)." +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]`..." +"ໄຟລ໌ ``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." +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 ໃດໆ ທີ່ ຕ້ອງໄດ້ຕິດຕັ້ງ ເພື່ອ" -"ໃຫ້ສາມາດດຳເນີນການລະບົບບິວດ໌ຂອງໂຄງການໄດ້ຢ່າງສຳເລັດຜົນ." +"ຕາຕະລາງ ``[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 `." +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``..." +"ຕາຕະລາງ ``[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`` ແມ່ນ:" +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." +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." +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]``. ຫາກມີໄຟລ໌ແຕ່ບໍ່ມີ ຕາຕະລາງດັ່ງກ່າວ ໃຫ້ໃຊ້ຄ່" -"າເລີ່ມຕົ້ນຕາມທີ່ລະບຸໄວ້ຂ້າງເທິງ." +"ເຄື່ອງມືບໍ່ຄວນບັງຄັບວ່າຕ້ອງມີຕາຕະລາງ ``[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)." +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]`` ແລະ ບໍ່ມີ ສັນຍານທີ່ຊັດເຈນວ່າໂຄງກ" -"ານນັ້ນຄວນຖືກບິວດ໌..." +"ເຄື່ອງມືອາດຈະສະແດງຂໍ້ຜິດພາດຫາກບໍ່ມີຕາຕະລາງ ``[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:" +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 (ເພື່ອເປັນຕົວຢ່າງເທົ່ານັ້ນ), ຮູບແ" -"ບບຂໍ້ມູນຈະກົງກັບ:" +"ເພື່ອສະແດງໃຫ້ເຫັນຮູບແບບຂໍ້ມູນທີ່ໄດ້ຈາກໄຟລ໌ 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 `." +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." +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`` (ເຊິ່ງກຳນົດໄວ້ພາຍຫຼັງໃນຂໍ້ກຳນົດສະເພານີ້) ແລ" -"ະ ແທນຂໍ້ມູນເມຕາດາຕາທີ່ເຄື່ອງມືຈະໃຫ້ມາໃນພາຍຫຼັງ." +"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." +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 ເດີມ." +"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." +msgid "" +"The lack of a ``[project]`` table implicitly means the :term:`build backend " +"` will dynamically provide all keys." msgstr "" "ການທີ່ບໍ່ມີຕາຕະລາງ ``[project]`` ໝາຍເຖິງ build backend ຈະສະໜອງ keys ທັງໝົດແບບ " "dynamic ເອງ." @@ -18584,15 +25082,18 @@ 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 ຄື:" +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." +msgid "" +"All other keys are considered optional and may be specified statically, " +"listed as dynamic, or left unspecified." msgstr "" -"ຄີອື່ນໆທັງໝົດຖືວ່າເປັນທາງເລືອກ ແລະ ອາດຈະຖືກລະບຸແບບ static, ລະບຸເປັນແບບ dynamic ຫຼື ປະໄວ້ໂດຍບໍ່ຕ້" -"ອງລະບຸ." +"ຄີອື່ນໆທັງໝົດຖືວ່າເປັນທາງເລືອກ ແລະ ອາດຈະຖືກລະບຸແບບ static, ລະບຸເປັນແບບ dynamic ຫຼື " +"ປະໄວ້ໂດຍບໍ່ຕ້ອງລະບຸ." #: ../source/specifications/pyproject-toml.rst:139 msgid "The complete list of keys allowed in the ``[project]`` table are:" @@ -18656,7 +25157,9 @@ msgid "TOML_ type: string" msgstr "ປະເພດ TOML_: string" #: ../source/specifications/pyproject-toml.rst:169 -msgid "Corresponding :ref:`core metadata ` field: :ref:`Name `" +msgid "" +"Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "ຟີວ :ref:`core metadata` ທີ່ກົງກັນ: :ref:`Name`" #: ../source/specifications/pyproject-toml.rst:172 @@ -18664,39 +25167,50 @@ 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." +msgid "" +"Tools SHOULD :ref:`normalize ` this name, as soon as it " +"is read for internal consistency." msgstr "" -"ເຄື່ອງມື **ຄວນ** :ref:`ປັບຊື່ໃຫ້ເປັນມາດຕະຖານ ` ທັນທີທີ່ອ່ານເພື່ອຄວາມສອດຄ່" -"ອງພາຍໃນ." +"ເຄື່ອງມື **ຄວນ** :ref:`ປັບຊື່ໃຫ້ເປັນມາດຕະຖານ ` " +"ທັນທີທີ່ອ່ານເພື່ອຄວາມສອດຄ່ອງພາຍໃນ." #: ../source/specifications/pyproject-toml.rst:184 -msgid "Corresponding :ref:`core metadata ` field: :ref:`Version `" +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`." +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 `" +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 "" -"ຄຳອະທິບາຍຫຍໍ້ຂອງໂຄງການໃນແຖວດຽວ. ເຄື່ອງມື **ອາດຈະ** ສະແດງຂໍ້ຜິດພາດ ຖ້າຫາກມີຫຼາຍແຖວ." +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 `" +msgid "" +"Corresponding :ref:`core metadata ` field: :ref:`Description " +"` and :ref:`Description-Content-Type `" msgstr "" "ຟີວ :ref:`core metadata` ທີ່ກົງກັນ: :ref:`Description` ແລະ :ref:`Description-" "Content-Type`" @@ -18706,32 +25220,58 @@ 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." +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) ສະແດງຂໍ້ຜິດພາດ." +"``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." +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) ລະບຸທັງສອງຄີ." +"ຄີ ``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." +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 `" +msgid "" +"Corresponding :ref:`core metadata ` field: :ref:`Requires-" +"Python `" msgstr "ຟີວ :ref:`core metadata` ທີ່ກົງກັນ: :ref:`Requires-Python`" #: ../source/specifications/pyproject-toml.rst:256 @@ -18739,20 +25279,30 @@ 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 `" +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." +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." +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 ຫຼື ບໍ່ຕ້ອງຕັ້ງຄ່າເລີຍ." +"ຄີນີ້ຄວນຖືກລະບຸ **ພຽງແຕ່** ໃນກໍລະນີທີ່ການສະແດງອອກຂອງໃບອະນຸຍາດ (license expression) " +"ສຳລັບໄຟລ໌ການແຈກຢາຍໃດໆ ແລະ ທັງໝົດທີ່ຖືກສ້າງຂຶ້ນໂດຍ build backend " +"ໂດຍການໃຊ້ :file:`pyproject.toml` ແມ່ນຄືກັນກັບອັນທີ່ໄດ້ລະບຸໄວ້. " +"ຖ້າການສະແດງອອກຂອງໃບອະນຸຍາດແຕກຕ່າງກັນ, ມັນຄວນຈະຖືກລະບຸເປັນ dynamic ຫຼື ບໍ່ຕ້ອງຕັ້ງຄ່າເລີຍ." #: ../source/specifications/pyproject-toml.rst:280 msgid "Legacy specification" @@ -18763,18 +25313,25 @@ msgid "TOML_ type: table" msgstr "ປະເພດ TOML_: ຕາຕະລາງ" #: ../source/specifications/pyproject-toml.rst:283 -msgid "Corresponding :ref:`core metadata ` field: :ref:`License `" +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`` ເຊິ່ງຫ້າມໃຊ້ພ້ອມກັນ..." +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` ເພື່ອປ່ຽນໄປໃຊ້ຄ່າແບບສະຕຣິງແທນ." +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 @@ -18785,45 +25342,63 @@ msgid "TOML_ type: array of strings" msgstr "ປະເພດ TOML_: ອາເຣຂອງ string" #: ../source/specifications/pyproject-toml.rst:301 -msgid "Corresponding :ref:`core metadata ` field: :ref:`License-File `" +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." +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`." +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`," +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..." +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 ຂອງການແຈກຢາຍ." +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." +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." +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 ໃດໆ..." @@ -18833,46 +25408,69 @@ 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 `" +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`" +"ຟີວ :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." +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." +msgid "" +"The \"maintainers\" key is similar to \"authors\" in that its exact meaning " +"is open to interpretation." msgstr "" -"ຄີ \"maintainers\" ແມ່ນຄ້າຍຄືກັບ \"authors\" ໃນແງ່ທີ່ຄວາມໝາຍທີ່ແນ່ນອນຂອງມັນແມ່ນເປີດກວ້າງໃຫ້ຕີຄ" -"ວາມໝາຍໄດ້." +"ຄີ \"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`` ຕ້ອງເປັນທີ່ຢູ່ອີເມລທີ່ຖືກຕ້ອງ. ທັງສອງ" -"ຄີແມ່ນທາງເລືອກ, ແຕ່ຢ່າງໜ້ອຍຕ້ອງມີຄີໃດໜຶ່ງຖືກລະບຸໄວ້ໃນຕາຕະລາງ." +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:" +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`." +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." +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}>``." +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}>``." @@ -18881,7 +25479,9 @@ msgid "Multiple values should be separated by commas." msgstr "ຫາກມີຫຼາຍຄ່າ ຄວນແຍກດ້ວຍເຄື່ອງໝາຍຈຸດ." #: ../source/specifications/pyproject-toml.rst:384 -msgid "Corresponding :ref:`core metadata ` field: :ref:`Keywords `" +msgid "" +"Corresponding :ref:`core metadata ` field: :ref:`Keywords " +"`" msgstr "ຟີວ :ref:`core metadata` ທີ່ກົງກັນ: :ref:`Keywords`" #: ../source/specifications/pyproject-toml.rst:387 @@ -18889,7 +25489,9 @@ msgid "The keywords for the project." msgstr "ຄຳສຳຄັນ (keywords) ສຳລັບໂຄງການ." #: ../source/specifications/pyproject-toml.rst:396 -msgid "Corresponding :ref:`core metadata ` field: :ref:`Classifier `" +msgid "" +"Corresponding :ref:`core metadata ` field: :ref:`Classifier " +"`" msgstr "ຟີວ :ref:`core metadata` ທີ່ກົງກັນ: :ref:`Classifier`" #: ../source/specifications/pyproject-toml.rst:399 @@ -18897,7 +25499,11 @@ 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." +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 @@ -18905,11 +25511,16 @@ 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 `" +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." +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 @@ -18917,7 +25528,9 @@ 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]``)" +msgid "" +"TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " +"``[project.entry-points]``)" msgstr "" "ປະເພດ TOML_: ຕາຕະລາງ (``[project.scripts]``, ``[project.gui-scripts]``, ແລະ " "``[project.entry-points]``)" @@ -18927,132 +25540,209 @@ 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." +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]``." +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." +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." +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``)" +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 `" +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." +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 `." +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` ທີ່ຖືກຕ້ອງ." +"ແຕ່ລະ string ແທນ dependency ຂອງໂຄງການ ແລະ **ຕ້ອງ** " +"ຖືກຈັດຮູບແບບໃຫ້ເປັນ :ref:`dependency specifier` ທີ່ຖືກຕ້ອງ." #: ../source/specifications/pyproject-toml.rst:472 -msgid "Each string maps directly to a :ref:`Requires-Dist ` entry." +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." +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) ທີ່ເຮັດໃຫ້ພວກມັນຖືກຂ້າມໄປໃນບາງສະພາບແວດລ້ອມ." +"ສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ (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``)" +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 `" +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 `)." +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." +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 ` " -"ທີ່ເຂົ້າກັນ." +"ຄີຕ່າງໆ ຕ້ອງເປັນຄ່າທີ່ຖືກຕ້ອງສຳລັບ :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." +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`." +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 `" +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 ທີ່ໂຄງການສະໜອງໃຫ້ໂດຍສະເພາະເມື່ອຕິດຕັ້ງ..." +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`` ຕາມຄວາມເໝາະສົມ." +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." +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``, ເຄື່ອງມື **ຕ້ອ" -"ງ** ສະແດງຂໍ້ຜິດພາດຍ້ອນຄວາມບໍ່ຊັດເຈນ." +"ຫາກໂຄງການລະບຸຊື່ດຽວກັນທັງໃນ ``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)." +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``." +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``." @@ -19062,24 +25752,39 @@ msgid "Examples:" msgstr "ຕົວຢ່າງ:" #: ../source/specifications/pyproject-toml.rst:571 -msgid "Corresponding :ref:`core metadata ` field: :ref:`Import-Namespace `" +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." +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 ທີ່ສັ້ນທີ່ສຸດທັງໝົດທີ່ໂຄງການສະໜອງໃຫ້ໂດຍສະເພາະ..." +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." +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 ດຽວກັນໄ" -"ດ້..." +"ຟີວນີ້ຖືກໃຊ້ສຳລັບ namespace packages ເຊິ່ງຫຼາຍໂຄງການສາມາດມີສ່ວນຮ່ວມໃນ namespace " +"ດຽວກັນໄດ້..." #: ../source/specifications/pyproject-toml.rst:595 msgid "Example:" @@ -19090,54 +25795,85 @@ msgid "TOML_ type: array of string" msgstr "ປະເພດ TOML_: ອາເຣຂອງ string" #: ../source/specifications/pyproject-toml.rst:612 -msgid "Corresponding :ref:`core metadata ` field: :ref:`Dynamic `" +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." +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``)." +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``." +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)." +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``..." +"ຫາກຂໍ້ກຳນົດ :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." +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``..." +"ຫາກຂໍ້ກຳນົດ :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." +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`` ພ້ອມກັນ..." +"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)." +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)." +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:" +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 ເຫຼົ່ານັ້ນມີຄື:" @@ -19147,70 +25883,100 @@ 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." +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." +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 ນັ້ນ." +"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]``." +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 ສາມາດ ໃຫ້ຜູ້ໃຊ້ກຳນົດຂໍ້ມູນກາ" -"ນຕັ້ງຄ່າໄດ້..." +"ຕາຕະລາງ ``[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." +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.*`` ເພື່ອຮັບປະກັນວ່າ ໂຄງການຕ່າງໆຈະບໍ່ໃຊ້" -"ຕາຕະລາງຍ່ອຍດຽວກັນຈົນເກີດການຂັດແຍ່ງກັນ..." +"ຈຳເປັນຕ້ອງມີກົນໄກໃນການຈັດສັນຊື່ພາຍໃນ 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`." +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`." +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`." +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`." +"ທັນວາ 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." +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`." +msgid "" +"October 2025: The ``import-names`` and ``import-namespaces`` keys were added " +"through :pep:`794`." msgstr "" -"ຕຸລາ 2025: ໄດ້ມີການເພີ່ມຄີ ``import-names`` ແລະ ``import-namespaces`` ຜ່ານ " -":pep:`794`." +"ຕຸລາ 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`." +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." +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." @@ -19220,63 +25986,100 @@ 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." +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 ທົ່ວໄປຊ່ວຍໃຫ້ເຄື່ອງມືຕ່າງໆ ສາມາດສອບຖາ" -"ມ, ຈັດການ ຫຼື ຖອນການຕິດຕັ້ງໂຄງການໄດ້, ໂດຍບໍ່ສົນວ່າພວກມັນຖືກຕິດຕັ້ງດ້ວຍວິທີໃດ." +"ເອກະສານນີ້ກຳນົດຮູບແບບທົ່ວໄປຂອງການບັນທຶກຂໍ້ມູນກ່ຽວກັບ 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 ໄດ້ຢ່າງງ່າຍດາຍ, ແຕ່ມັນກໍຍັງຄວນບັນທຶກຊື່ ແລະ ເວີຊັນຂອງໂຄງການທີ່ຕິດຕັ້ງໄວ້." +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)." +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." +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``." +"``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`` ເປັນມາດ" -"ຕະຖານໂດຍໃຊ້ກົດລະບຽບທີ່ອະທິບາຍໄວ້ຂ້າງເທິງ, ແລະ ແນະນຳໃຫ້ເຄື່ອງມືທີ່ມີຢູ່ແລ້ວເລີ່ມເຮັດໃຫ້ຟິລເຫຼົ່ານັ້ນເປັນມາດ" -"ຕະຖານ." +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) ເມື່ອສະແດງຂໍ້ມູນການແຈກຢາ" -"ຍ." +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`` ນີ້ອາດຈະປະກອບມີໄຟລ໌ດັ່ງຕໍ່ໄປນີ້, ເຊິ່ງອະທິບາຍລະອຽດໄວ້ຂ້າງລຸ່ມ:" +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" @@ -19287,7 +26090,8 @@ 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." +msgid "" +"``INSTALLER``: records the name of the tool used to install the project." msgstr "``INSTALLER``: ບັນທຶກຊື່ຂອງເຄື່ອງມືທີ່ໃຊ້ເພື່ອຕິດຕັ້ງໂຄງການ." #: ../source/specifications/recording-installed-packages.rst:62 @@ -19299,13 +26103,19 @@ 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." +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). ໄຟລ໌ອື່ນໆທັງໝົດອາດຈະຖືກລະເວັ້ນໄດ້ຕາມການພິຈາລະນາຂ" -"ອງເຄື່ອງມືຕິດຕັ້ງ. ອາດມີໄຟລ໌ເພີ່ມເຕີມສະເພາະຂອງຕົວຕິດຕັ້ງນຳອີກ." +"ໄຟລ໌ ``METADATA`` ແມ່ນຈຳເປັນ (mandatory). " +"ໄຟລ໌ອື່ນໆທັງໝົດອາດຈະຖືກລະເວັ້ນໄດ້ຕາມການພິຈາລະນາຂອງເຄື່ອງມືຕິດຕັ້ງ. " +"ອາດມີໄຟລ໌ເພີ່ມເຕີມສະເພາະຂອງຕົວຕິດຕັ້ງນຳອີກ." #: ../source/specifications/recording-installed-packages.rst:69 -msgid "This :file:`.dist-info/` directory may contain the following directories, described in detail below:" +msgid "" +"This :file:`.dist-info/` directory may contain the following directories, " +"described in detail below:" msgstr "" "ໄດເລັກທໍຣີ :file:`.dist-info/` ນີ້ອາດຈະປະກອບມີໄດເລັກທໍຣີດັ່ງຕໍ່ໄປນີ້, ເຊິ່ງອະທິບາຍລະອຽດໄວ້ຂ້າງລຸ່ມ:" @@ -19318,31 +26128,45 @@ 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." +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`` ຂອງໂຄງການທີ່ຕິດຕັ້ງແລ້ວ." +"ຂໍ້ກຳນົດ :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." +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 `_ ສຳລັບຄວາມໝາຍດັ້ງເດີມຂອງມັນ." +"ເວີຊັນກ່ອນໜ້າຂອງຂໍ້ກຳນົດນີ້ຍັງໄດ້ລະບຸໄຟລ໌ ``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." +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 ຫຼື ສູງກວ່າ." +"ໄຟລ໌ ``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." +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 ທີ່ຈຳເປັນ, ຕົວຕິດຕັ້ງຈະຕ້ອງລາຍງານຂໍ້ຜິດພາດ ແລະ ຢຸດການຕິດຕັ້ງໂຄງການ." @@ -19352,13 +26176,17 @@ 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." +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 ທີ່ປະກອບມີໜຶ່ງລະບົບ (ແຖວ) ຕໍ່ໜຶ່ງໄຟລ໌ທີ່ຕິດ" -"ຕັ້ງ." +"ໄຟລ໌ ``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:" +msgid "" +"The CSV dialect must be readable with the default ``reader`` of Python's " +"``csv`` module:" msgstr "" "ຮູບແບບ (dialect) ຂອງ CSV ຕ້ອງສາມາດອ່ານໄດ້ດ້ວຍ ``reader`` ເລີ່ມຕົ້ນຂອງໂມດູນ ``csv`` ຂອງ " "Python:" @@ -19376,85 +26204,126 @@ 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**." +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 ``\\``)." +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 (``/`` ຫຼື ``\\``)." +"``.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`, ຕາມດ້ວຍເຄື່ອງໝາຍເທົ່າກັບ ``=`` ແລະ " +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) ` ໂດຍ" -"ຕັດເຄື່ອງໝາຍ ``=`` ທາງທ້າຍອອກ)." +"(: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." +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." +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) ຂອງໂ" -"ຄງການທີ່ຕິດຕັ້ງແລ້ວໄດ້." +"ສຳລັບໄຟລ໌ໃດໜຶ່ງ, ຟິລ *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." +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`` ເອງ) ຈະຕ້ອງຖືກລະບຸໄວ້. ສ່ວນໄດເລັກທໍຣີຕ່າງໆ ແມ່ນບໍ່ຄວນ" -"ລະບຸໄວ້." +"ຫາກມີໄຟລ໌ ``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." +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`` ທີ່ຖືກລຶບອອກ, ແລະ ໄດເລັກທໍຣີ" -"ໃດໆ ທີ່ວ່າງເປົ່າຫຼັງຈາກການຖອນການຕິດຕັ້ງ." +"``.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.)" +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.)" +"ຫາກບໍ່ມີໄຟລ໌ ``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)." +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)." +"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." +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 ທີ່ສາມາດພິມໄດ້." +"ຫາກມີ, ``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." @@ -19465,22 +26334,30 @@ 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." +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`` ອາດຈະສາມາດເຮັດກ" -"ານຖອນການຕິດຕັ້ງໄດ້." +"ຄ່ານີ້ຄວນຖືກໃຊ້ເພື່ອຈຸດປະສົງໃນການໃຫ້ຂໍ້ມູນເທົ່ານັ້ນ. ຕົວຢ່າງ: ຫາກເຄື່ອງມືຖືກຮ້ອງຂໍໃຫ້ຖອນການຕິດຕັ້ງໂຄງການ " +"ແຕ່ບໍ່ພົບໄຟລ໌ ``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." +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 ແລະ ແອັບພລິເຄຊັນອື່ນໆ ທີ່ຕົວຕິດຕັ້ງໄດ້ເຮັດໃຫ້ພ້" -"ອມສຳລັບການປະຕິບັດງານ." +"code ອື່ນຄົ້ນຫາ ແລະ ໃຊ້ງານ, ລວມທັງ console scripts ແລະ ແອັບພລິເຄຊັນອື່ນໆ " +"ທີ່ຕົວຕິດຕັ້ງໄດ້ເຮັດໃຫ້ພ້ອມສຳລັບການປະຕິບັດງານ." #: ../source/specifications/recording-installed-packages.rst:213 msgid "Its detailed specification is at :ref:`entry-points`." @@ -19491,10 +26368,12 @@ 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)." +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)." +"ໄຟລ໌ນີ້ ຈະຕ້ອງ (MUST) ຖືກສ້າງຂຶ້ນໂດຍຕົວຕິດຕັ້ງ ເມື່ອຕິດຕັ້ງການແຈກຢາຍຈາກ requirement ທີ່ລະບຸ URL " +"ອ້າງອີງໂດຍກົງ (ລວມທັງ VCS URL)." #: ../source/specifications/recording-installed-packages.rst:225 msgid "Its detailed specification is at :ref:`direct-url`." @@ -19505,84 +26384,124 @@ 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 ໂດຍເຄື່ອງມືຕິດຕັ້ງ." +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." +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 ໂດຍເຄື່ອງມືຕິດຕັ້ງ." +"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." +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 ເພື່ອໃຫ້ແນ່ໃຈວ່າເຄື່ອງມືອື່ນໆ ຈະບໍ່ຖືກນຳມາໃຊ້ເພື່ອຖອນການຕິດຕັ້ງ ຫຼື ແກ້ໄຂແພັກເກດທີ່ຕິດຕັ້ງນັ້ນ, ເພາະ" -"ການເຮັດແນວນັ້ນອາດເຮັດໃຫ້ເກີດບັນຫາຄວາມເຂົ້າກັນໄດ້ກັບສະພາບແວດລ້ອມໂດຍລວມ." +"ໃນບາງກໍລະນີ (ເຊັ່ນ: ເມື່ອຈຳເປັນຕ້ອງຈັດການ dependencies ພາຍນອກ ເພີ່ມເຕີມຈາກ dependencies " +"ຂອງລະບົບນິເວດ Python), ມັນເປັນສິ່ງທີ່ເພິ່ງປາຖະໜາສຳລັບເຄື່ອງມືທີ່ຕິດຕັ້ງແພັກເກດລົງໃນສະພາບແວດລ້ອມ " +"Python ເພື່ອໃຫ້ແນ່ໃຈວ່າເຄື່ອງມືອື່ນໆ ຈະບໍ່ຖືກນຳມາໃຊ້ເພື່ອຖອນການຕິດຕັ້ງ ຫຼື ແກ້ໄຂແພັກເກດທີ່ຕິດຕັ້ງນັ້ນ, " +"ເພາະການເຮັດແນວນັ້ນອາດເຮັດໃຫ້ເກີດບັນຫາຄວາມເຂົ້າກັນໄດ້ກັບສະພາບແວດລ້ອມໂດຍລວມ." #: ../source/specifications/recording-installed-packages.rst:257 msgid "To achieve this, affected tools should take the following steps:" -msgstr "" -"ເພື່ອບັນລຸສິ່ງນີ້, ເຄື່ອງມືທີ່ກ່ຽວຂ້ອງຄວນດຳເນີນການຕາມຂັ້ນຕອນດັ່ງຕໍ່ໄປນີ້:" +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)" +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`` ທີ່ບໍ່ເປັນມາດຕະຖານ ຫາກຕົວເຄື່ອງມືເອງຕ້ອງການຂໍ້ມູນ, ຫຼື ລະເວັ້ນໄຟລ໌ນັ້ນທັງໝົ" -"ດ ຫາກເນື້ອໃນຂອງແພັກເກດຖືກຕິດຕາມ ແລະ ຈັດການຜ່ານວິທີອື່ນ)" +"ປ່ຽນຊື່ ຫຼື ລຶບໄຟລ໌ ``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)" +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`` ສາມາດແຈ້ງເຕືອນຂໍ້ຜິດພາດໄດ້ດີຂຶ້ນ ເມື່ອຖືກຮ້ອງຂໍໃຫ້ແກ້ໄຂແພັກເກດທີ່ກ່ຽວຂ້ອງ)" +"ຂຽນໄຟລ໌ ``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)." +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)." +"ຜູ້ໃຫ້ບໍລິການ 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`" +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`" +"ໃນບາງສະຖານະການ, " +"ມັນອາດຈະເປັນສິ່ງທີ່ເພິ່ງປາຖະໜາທີ່ຈະບລັອກແມ່ນແຕ່ການຕິດຕັ້ງແພັກເກດເພີ່ມເຕີມຜ່ານເຄື່ອງມືສະເພາະຂອງ " +"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*." +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*." +"ມິຖຸນາ 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." +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` ສຳລັບຄຳນິຍາມເຕັມ." +"ມີນາ 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`." +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" @@ -19629,34 +26548,48 @@ 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`." +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`." +"\"**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 `." +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 `." +"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/``." +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 ນີ້ຖືກຕັ້ງຊື່ວ່າ " +"ຄັງເກັບ (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/``." +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/``)." @@ -19666,26 +26599,40 @@ 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``::" +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 `." +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:`ຂໍ້ກຳນົດຕົວລະບຸເວີຊັນ `." +"(content) ທີ່ເປັນໝາຍເລກເວີຊັນທີ່ເຂົ້າກັນໄດ້ກັບ :ref:`ຂໍ້ກຳນົດຕົວລະບຸເວີຊັນ `, ເຊິ່ງຖືກກຳນົດເພີ່ມເຕີມໃຫ້ເປັນພຽງ Major.Minor ເທົ່ານັ້ນ, ແລະ ບໍ່ມີຟີເຈີເພີ່ມເຕີມອື່ນໆ " +"ທີ່ຮອງຮັບໂດຍ :ref:`ຂໍ້ກຳນົດຕົວລະບຸເວີຊັນ `." #: ../source/specifications/simple-repository-api.rst:60 msgid "This would end up looking like:" @@ -19696,63 +26643,87 @@ 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." +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 ໄດ້ຢ່າງມີຄວາມໝາຍອີກຕໍ່ໄປ." +"ການເພີ່ມໝາຍເລກເວີຊັນຫຼັກ (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." +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 ໄດ້ຢ່າງມີຄວາມໝາຍ." +"ການເພີ່ມໝາຍເລກເວີຊັນຍ່ອຍ (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." +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 ຕໍ່ໄປໄດ້ຢ່າງ \"ມີຄວາມໝ" -"າຍ\", ແລະ ສາມາດລວມເຖິງການເພີ່ມ, ການແກ້ໄຂ ຫຼື ການລຶບຟີເຈີທີ່ມີຢູ່." +"ມັນຂຶ້ນຢູ່ກັບການພິຈາລະນາຂອງຂໍ້ກຳນົດໃນອະນາຄົດວ່າ ສິ່ງໃດຈະຖືວ່າເປັນການປ່ຽນແປງທີ່ບໍ່ເຂົ້າກັນ ຫຼື " +"ເຂົ້າກັນໄດ້ກັບເວີຊັນກ່ອນໜ້າ ນອກເໜືອຈາກຄຳແນະນຳກວ້າງໆ ທີ່ວ່າ 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)." +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 `." +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 `." +"ສ່ວນນີ້ປະກອບມີພຽງແຕ່ປະຫວັດການປ່ຽນແປງແບບຫຍໍ້, ຕາມທີ່ລະບຸໂດຍໝາຍເລກເວີຊັນ 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`." +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`." +"``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`." +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`." +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`." @@ -19763,57 +26734,74 @@ 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." +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." +"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." +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) ພ້ອມກັ" -"ບຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດທີ່ເໝາະສົມສຳລັບຜູ້ໃຊ້." +"ເມື່ອພົບເວີຊັນຫຼັກທີ່ສູງກວ່າທີ່ຄາດໄວ້, 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." +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." +msgid "" +"Clients **MAY** still continue to use feature detection in order to " +"determine what features a repository uses." msgstr "" -"Clients ອາດຈະ (MAY) ຍັງຄົງໃຊ້ການກວດຫາຟີເຈີ (feature detection) ຕໍ່ໄປ ເພື່ອພິຈາລະນາວ່າມີຟີເ" -"ຈີໃດທີ່ຄັງເກັບນັ້ນໃຊ້." +"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 `." +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." +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 ທີ່ອະທິບາຍໄວ້ໃນຂໍ້ກຳນົດນີ້:" +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." +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 ເຫຼົ່ານີ້ແມ່ນຖືກກຳນົດໄວ້ຂ້າງລຸ່ມ." +"ການຕອບສະໜອງແບບ HTML ອາດຈະ (MAY) ປະກອບມີ ``meta`` tags ໜຶ່ງ ຫຼື ຫຼາຍອັນໃນສ່ວນ " +"````. ຄວາມໝາຍຂອງ tags ເຫຼົ່ານີ້ແມ່ນຖືກກຳນົດໄວ້ຂ້າງລຸ່ມ." #: ../source/specifications/simple-repository-api.rst:142 #: ../source/specifications/simple-repository-api.rst:437 @@ -19821,16 +26809,22 @@ 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." +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 ພຽງອັນດຽວຕໍ່ໜຶ່ງໂຄງການໃນຄັງເກັບ." +"ພາຍໃນຄັງເກັບ, 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:" +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 ສຳລັບໂຄງການນັ້ນໆ. ຕົວຢ່າງ:" +"ຂໍ້ຄວາມຂອງແຕ່ລະ anchor tag ຈະຕ້ອງ (MUST) ເປັນຊື່ຂອງໂຄງການ ແລະ attribute ``href`` " +"ຈະຕ້ອງ (MUST) ລິ້ງໄປຫາ URL ສຳລັບໂຄງການນັ້ນໆ. ຕົວຢ່າງ:" #: ../source/specifications/simple-repository-api.rst:165 #: ../source/specifications/simple-repository-api.rst:482 @@ -19838,156 +26832,231 @@ 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." +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/``." +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." +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." +"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." +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." +"ແຕ່ລະ 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:" +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." +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 ກໍໄດ້ ຕາບໃດທີ່ພວກມັນຊີ້ໄປຫາຕຳແໜ່ງທີ່ຖືກຕ້ອງ." +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) ເມື່ອທຽບກັບຄັງເກັບ." +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 ທີ່ຈຳເປັນຢູ່." +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." +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 ທີ່ເປັນມ" -"າດຕະຖານ." +"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``." +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``." +"ຄັງເກັບ ຄວນ (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``." +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``." +"ຫາກມີລາຍເຊັນ 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`` ໃນລິ້ງຂອງໄຟລ໌." +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." +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 ໃຫ້ໃຊ້." +"ແມ່ນຊື່ຕົວພິມນ້ອຍຂອງ 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." +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``." +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``." +"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`." +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." +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) ລວ" -"ມເອົາມັນໄວ້ໃນທຸກລິ້ງ." +"``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:" +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 ທີ່ບໍ່ກົງ" -"ກັບຄວາມຕ້ອງການ. ຕົວຢ່າງ:" +"ຄັງເກັບ ອາດຈະ (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." +msgid "" +"In the attribute value, < and > have to be HTML encoded as ``<`` and " +"``>``, respectively." msgstr "" -"ໃນຄ່າຂອງ attribute, < ແລະ > ຈະຕ້ອງຖືກເຂົ້າລະຫັດເປັນ HTML ເຊັ່ນ ``<`` ແລະ ``>`` ຕ" -"າມລຳດັບ." +"ໃນຄ່າຂອງ attribute, < ແລະ > ຈະຕ້ອງຖືກເຂົ້າລະຫັດເປັນ HTML ເຊັ່ນ ``<`` ແລະ ``>`` " +"ຕາມລຳດັບ." #: ../source/specifications/simple-repository-api.rst:254 -msgid "A repository **MAY** include a ``data-yanked`` attribute on a file link." +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." +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), ແລະ ໂດຍທົ່ວໄປແລ້ວ ບໍ່ຄວນຖືກເລືອກໂດຍເຄື່ອງມືຕິດຕັ້ງ, ຍົກເວັ້ນພາຍໃຕ້ສະຖານະການສະເພາະໃດໜຶ່" -"ງ." +"ແອດທຣິບິວ (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." +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." +"ຄ່າຂອງ 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`." +msgid "" +"The semantics of how tools should handle yanked files is described " +"in :ref:`file-yanking`." msgstr "" -"ຄວາມໝາຍ (semantics) ຂອງການທີ່ເຄື່ອງມືຄວນຈັດການກັບໄຟລ໌ທີ່ຖືກ yanked ແມ່ນຖືກອະທິບາຍໄວ້ໃນ " -":ref:`file-yanking`." +"ຄວາມໝາຍ (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 `_." +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 ແບບເຕັມ, ເຊິ່ງສົ່ງສັນຍານວ່າແຫຼ່ງທີ່ມາຂອງໄຟລ໌ສາມາດພົບໄດ້ຢູ່ທີ່ " @@ -20000,31 +27069,43 @@ 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`." +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." +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." +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 ໃດໜຶ່ງຫາກມີຢູ່." +"ຄ່າຂອງ ``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`." +msgid "" +"The set of valid project status markers and their semantics is described " +"in :ref:`project-status-markers`." msgstr "" -"ຊຸດຂອງຕົວບົ່ງບອກສະຖານະໂຄງການທີ່ຖືກຕ້ອງ ແລະ ຄວາມໝາຍຂອງພວກມັນແມ່ນຖືກອະທິບາຍໄວ້ໃນ " -":ref:`project-status-markers`." +"ຊຸດຂອງຕົວບົ່ງບອກສະຖານະໂຄງການທີ່ຖືກຕ້ອງ ແລະ " +"ຄວາມໝາຍຂອງພວກມັນແມ່ນຖືກອະທິບາຍໄວ້ໃນ :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." +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." @@ -20034,196 +27115,290 @@ 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." +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 ທີ່ຈະບໍ່ຖືກແກ້ໄຂເມື່ອການແ" -"ຈກຢາຍຖືກປະມວນຜົນ ແລະ/ຫຼື ຕິດຕັ້ງ." +"ມີ 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." +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/" +"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." +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 ໃຫ້ໃຊ້." +"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." +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." +"ຫາກ 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." +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-`` ກ່ອນໜ້ານີ້ຄາດໝາຍໃຫ້ເຄື່ອງມືທີ່ມີຢູ່ແລ້ວເຮັດ" -"ວຽກ." +"ເຄື່ອງມືລຸ້ນເກົ່າທີ່ບໍ່ຮອງຮັບ 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 `_." +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 " -"`_." +"ເພື່ອໃຫ້ສາມາດແປ (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." +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." +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." +"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." +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 ທີ່ມີຢູ່ເຂົ້າໃຈຮູບແບບນັ້ນໄດ້ຢ່າງມີຄວາມໝາຍອີກຕໍ່ໄປ." +"ເຊັ່ນດຽວກັນກັບ :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." +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." +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 ທີ່ມີຢູ່ບໍ່ສາມາດເຂົ້າໃຈຮູບແບບນັ້ນໄດ້ຢ່າງມີຄວາມໝາຍ ແລະ ເຊິ່ງບໍ່ໄດ້ສະແດງເ" -"ຖິງການເພີ່ມ ຫຼື ລຶບຟີເຈີ ອາດຈະເກີດຂຶ້ນໄດ້ໂດຍບໍ່ຕ້ອງປ່ຽນແປງໝາຍເລກເວີຊັນ." +"ການປ່ຽນແປງທີ່ບໍ່ສົ່ງຜົນໃຫ້ 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." +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 ເພື່ອສຶກສາ ແລະ ຕັດສິນໃຈວ່າການປ່ຽນແປງນັ້ນຄວນຈະເພີ່" -"ມໝາຍເລກເວີຊັນຫຼັກ ຫຼື ເວີຊັນຍ່ອຍ." +"ສິ່ງນີ້ແມ່ນມີຄວາມກຳກວມໂດຍເຈດຕະນາ, " +"ເນື່ອງຈາກຂໍ້ກຳນົດນີ້ເຊື່ອວ່າມັນຈະເປັນການດີທີ່ສຸດທີ່ຈະປ່ອຍໃຫ້ເປັນໜ້າທີ່ຂອງຂໍ້ກຳນົດໃນອະນາຄົດທີ່ຈະເຮັດການປ່ຽນແປງໃດໆ " +"ກັບ 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." +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 ເຂົ້າໃນແຕ່ລະຮູບ" -"ແບບອາດຈະແຕກຕ່າງກັນ, ລວມທັງວ່າຟີເຈີນັ້ນຈະມີຢູ່ຫຼືບໍ່." +"ເວີຊັນໃນອະນາຄົດຂອງ 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." +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 ເ" -"ປົ້າໝາຍ." +"ເຈດຕະນາຂອງຂໍ້ກຳນົດນີ້ຄື 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." +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 ທີ່ມີຢູ່ແລ້ວເທົ່ານັ້ນ." +"serialization>` ຍັງຄົງໃຊ້ໄດ້, ເນື່ອງຈາກຂໍ້ກຳນົດນີ້ພຽງແຕ່ເພີ່ມຮູບແບບ 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 ທີ່ອະທິບາຍໄວ້ໃນຂໍ້ກຳນົດນີ້:" +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." +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." +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 ກໍໄດ້ ຕາບໃດທີ່ພວກມັນຊີ້ໄປຫາຕຳແໜ່ງທີ່ຖືກຕ້ອງ. ຫາກເປັນແບບ " +"ເຖິງແມ່ນວ່າ 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." +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) ລະເວັ້ນຄີທີ່ພວກເຂົາບໍ່ເຂົ້າໃຈ." +"ອາດມີການເພີ່ມຄີ (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." +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``, ເຊິ່ງປະກອບມີຂໍ້ມູນທີ່ກ່ຽວຂ້ອງກັບການຕອບສະໜອງນັ້ນເອງ, ແ" -"ທນທີ່ຈະເປັນເນື້ອໃນຂອງການຕອບສະໜອງ." +"ທຸກການຕອບສະໜອງແບບ 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 `." +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." +msgid "" +"All requirements of :ref:`the base HTML API specification ` that are not HTML specific still apply." msgstr "" -"ທຸກຂໍ້ກຳນົດຂອງ :ref:`ຂໍ້ກຳນົດ base HTML API ` ທີ່ບໍ່ແມ່ນສະເພາ" -"ະສຳລັບ HTML ແມ່ນຍັງຄົງໃຊ້ໄດ້." +"ທຸກຂໍ້ກຳນົດຂອງ :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." +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. ຈະບໍ່ມີມາດຕະຖານໃດໆ ໃນອະນາຄົດກຳນົດຄວາມໝາຍໃຫ້ກັບຄີດັ່ງກ່າວ." +"ຄີ (ໃນທຸກລະດັບ) ທີ່ເລີ່ມຕົ້ນດ້ວຍເຄື່ອງໝາຍຂີດກ້ອງ (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:" +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." +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 ຂອງຊື່ໂຄງການ." +"``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 `__." +msgid "" +"``meta``: The general response metadata as `described earlier `__." msgstr "" "``meta``: metadata ທົ່ວໄປຂອງການຕອບສະໜອງຕາມທີ່ `ໄດ້ອະທິບາຍໄວ້ກ່ອນໜ້ານີ້ `__." @@ -20234,31 +27409,49 @@ 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." +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) ຂອງ" -"ຄັງເກັບນັ້ນໆ." +"api-base>`, ເຊິ່ງບໍ່ໄດ້ລະບຸວ່າມັນເປັນຊື່ທີ່ສະແດງແບບບໍ່ເປັນມາດຕະຖານ ຫຼື ເປັນຊື່ທີ່ເປັນມາດຕະຖານ. " +"ໃນທາງປະຕິບັດ, ແຕ່ລະລະບົບຂອງຂໍ້ກຳນົດເຫຼົ່ານີ້ແມ່ນເລືອກໃຊ້ແຕກຕ່າງກັນ, " +"ດັ່ງນັ້ນການເພິ່ງພາວ່າມັນຈະເປັນແບບບໍ່ເປັນມາດຕະຖານ ຫຼື ເປັນມາດຕະຖານ " +"ແມ່ນເປັນການເພິ່ງພາລາຍລະອຽດການຈັດເຮັດ (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." +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/``." +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:" +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 @@ -20278,7 +27471,9 @@ 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." +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "``reason``: ຖ້າມີ, ນີ້ **ຕ້ອງ** ເປັນຂໍ້ຄວາມອະທິບາຍສະຖານະຂອງໂຄງການ." #: ../source/specifications/simple-repository-api.rst:510 @@ -20290,30 +27485,45 @@ 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." +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." +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), ດັ່ງນັ້ນຈຶ່ງບໍ່ສາມາດມີຄ່າຊ້ຳກັນໄດ້ ແລະ ລຳດັບຂອງເວີຊັ" -"ນແມ່ນບໍ່ມີຄວາມສຳຄັນ." +"``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)." +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`` ອ" -"າດຈະປະກອບມີເວີຊັນທີ່ບໍ່ມີໄຟລ໌ກ່ຽວຂ້ອງ (ເພື່ອສະແດງເຖິງເວີຊັນທີ່ບໍ່ມີການອັບໂຫຼດໄຟລ໌, ຖ້າເຊີບເວີມີແນວຄວາມຄິດດັ່" -"ງກ່າວ)." +"ທຸກໆໄຟລ໌ທີ່ລະບຸໃນຄີ ``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 ທີ່ປັບເປັນມາດຕະຖານແລ້ວໃນກໍລະນີທີ່ເປັນໄປໄດ້." +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." @@ -20332,165 +27542,250 @@ 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." +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) ທີ່ຈະຕັດສິນໃຈວ່າຈະເຮັດແນວໃດກັບແຮຊເຫຼົ່ານັ້" -"ນ (ອາດຈະກວດສອບທັງໝົດ ຫຼື ບາງສ່ວນ, ຫຼື ບໍ່ກວດເລີຍກໍໄດ້). ຊື່ແຮຊເຫຼົ່ານີ້ **ຄວນ** ປັບໃຫ້ເປັນຕົວພິມນ້ອຍສະ" -"ເໝີ." +"``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." +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`` **ຕ້ອງ** ມີຢູ່, ເຖິງແມ່ນວ່າຈະບໍ່ມີແຮຊສຳລັບໄຟລ໌ນັ້ນກໍຕາມ, ຢ່າງໃດກໍຕາມ ຂໍແນະນ" -"ຳ **ຢ່າງຍິ່ງ** ວ່າຄວນຈະມີຢ່າງໜ້ອຍໜຶ່ງແຮຊທີ່ມີຄວາມປອດໄພ ແລະ ຮັບປະກັນວ່ານຳໃຊ້ໄດ້." +"ດິກຊັນນາຣີ ``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``." +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." +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 ທີ່ບໍ່ຕອບສະໜອງຕາມຂໍ້ກໍານົດ." +"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." +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) ເພື່ອບອກ" -"ວ່າໄຟລ໌ນັ້ນມີໄຟລ໌ເມຕາເດຕາກ່ຽວຂ້ອງຫຼືບໍ່, ຫຼື ເປັນດິກຊັນນາຣີທີ່ຈັບຄູ່ຊື່ແຮຊກັບຄ່າໄດເຈສຂອງແຮຊເມຕາເດຕາ." +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." +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`` ກໍ" -"ໃຫ້ໃຊ້ກັບຄີນີ້ເຊັ່ນກັນ." +"ເມື່ອຄີນີ້ເປັນດິກຊັນນາຣີຂອງແຮຊແທນທີ່ຈະເປັນຄ່າບູລີນ, ຂໍ້ກຳນົດ ແລະ ຄຳແນະນຳທັງໝົດຄືກັນກັບຄີ ``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." +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) ສະແດງວ່າບໍ່ມີ." +"ຖ້າບໍ່ມີຄີນີ້, ໄຟລ໌ເມຕາເດຕາອາດຈະມີ ຫຼື ບໍ່ມີກໍໄດ້. ຖ້າຄ່າຂອງຄີເປັນຈິງ (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." +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``." +msgid "" +"``dist-info-metadata``: An **optional**, deprecated alias for ``core-" +"metadata``." msgstr "" -"``dist-info-metadata``: ຊື່ເອີ້ນແທນ (alias) ຂອງ ``core-metadata`` ເຊິ່ງເປັນ **ທາງເລືອ" -"ກ** ແລະ ຖືກຍົກເລີກການນຳໃຊ້ແລ້ວ." +"``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``." +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`." +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." +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\"." +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`` ໄດ້ຖືກ \"ຖອນອອກ\"." +"ຫຼື ເປັນສະຕຣິງຂໍ້ຄວາມເພື່ອບອກວ່າໄຟລ໌ຖືກຖອນອອກຍ້ອນເຫດຜົນສະເພາະໃດໜຶ່ງ. ຖ້າມີຄີ ``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." +msgid "" +"``size``: A **mandatory** key. It **MUST** contain an integer which is the " +"file size in bytes." msgstr "" -"``size``: ຄີທີ່ **ຈຳເປັນ**. ມັນ **ຕ້ອງ** ປະກອບມີຕົວເລກຈຳນວນຖ້ວນ ເຊິ່ງແມ່ນຂະໜາດຂອງໄຟລ໌ເປັນໄບ" -"ຕ໌ (bytes)." +"``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." +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`` ເຊິ່ງສະແດງເຖິງເວລາທີ່ໄຟລ໌ຖືກອັບໂຫຼດ" -"ເຂົ້າໄປໃນອິນເດັກ." +"``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." +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`` ນີ້." +"(ສ່ວນ ``.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 `." +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 `." +"``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 ຍັງບໍ່ມີຄວາມສາມາດໃນການຮອງຮັບເຊັດ." +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." +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) ໃດ." +"ຂໍ້ກຳນົດນີ້ສະເໜີວ່າ ທຸກໆການຕອບກັບຈາກ 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." +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`` ນຳໜ້າເພື່ອໃຫ້ຊັດເຈນວ່າເປັນເລກເວີຊັນ." +"ເນື່ອງຈາກມີພຽງແຕ່ເວີຊັນຫຼັກ (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:" @@ -20505,14 +27800,23 @@ 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." +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``, ເຊິ່ງມີຈຸດປະສົງເພື່ອໃ" -"ຫ້ໄຄລເອັນສາມາດຮ້ອງຂໍເວີຊັນຫຼ້າສຸດໄດ້ ໂດຍບໍ່ຈຳເປັນຕ້ອງຮູ້ລ່ວງໜ້າວ່າເວີຊັນນັ້ນແມ່ນຫຍັງ. ຢ່າງໃດກໍຕາມ, ຂໍແນະນ" -"ຳໃຫ້ໄຄລເອັນລະບຸເວີຊັນທີ່ພວກເຂົາຮອງຮັບໃຫ້ຊັດເຈນ." +"ນອກຈາກຂ້າງເທິງແລ້ວ, ຍັງມີການຮອງຮັບເວີຊັນ \"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." +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``, ຂໍ້ກຳນົດນີ້ຈຶ່ງກຳນົດໃຫ້ " @@ -20524,92 +27828,140 @@ 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." +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 ເວີຊັນກ່ອນໜ້ານີ້." +"ເນື່ອງຈາກຕອນນີ້ມີຮູບແບບການແປງຂໍ້ມູນຫຼາຍຮູບແບບ, " +"ພວກເຮົາຈຶ່ງຕ້ອງການກົນໄກເພື່ອໃຫ້ໄຄລເອັນສາມາດບົ່ງບອກໄດ້ວ່າຮູບແບບໃດທີ່ພວກເຂົາເຂົ້າໃຈ. ນອກຈາກນັ້ນ, " +"ມັນຈະເປັນປະໂຫຍດຫຼາຍຖ້າຫາກສາມາດເພີ່ມເວີຊັນຫຼັກໃໝ່ຂອງ 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 `_." +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:" +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." +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`` ເຊິ່ງລະບຸລາຍການປະເພດເນື້ອຫາ ເວີຊັນ+ຮູບ" -"ແບບ ທັງໝົດທີ່ພວກເຂົາເຂົ້າໃຈ." +"ໄຄລເອັນສົ່ງຄຳຮ້ອງ 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: */*``)." +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: */*``)." +"ເຊີບເວີກວດສອບເຮດເດີນັ້ນ, ເລືອກປະເພດເນື້ອຫາອັນໃດອັນໜຶ່ງຈາກລາຍການ, " +"ແລ້ວສົ່ງການຕອບກັບໂດຍໃຊ້ປະເພດເນື້ອຫານັ້ນ (ຖ້າບໍ່ມີເຮດເດີ ``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:" +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 ທາງເລື" -"ອກໃນການຕອບກັບ:" +"ຖ້າເຊີບເວີບໍ່ຮອງຮັບປະເພດເນື້ອຫາໃດໆໃນເຮດເດີ ``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 "" -"ເລືອກປະເພດເນື້ອຫາມາດຕະຖານອື່ນນອກຈາກທີ່ໄຄລເອັນຮ້ອງຂໍ ແລະ ສົ່ງການຕອບກັບດ້ວຍຄ່ານັ້ນ." +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." +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`` ເພື່ອບອກວ່າບໍ່ມີປະເພດເນື້ອຫາທີ່ຮ້ອງຂໍ, ແລະ ເຊີບເວີບໍ່ສ" -"າມາດ ຫຼື ບໍ່ຕ້ອງການເລືອກປະເພດເນື້ອຫາມາດຕະຖານເພື່ອຕອບກັບ." +"ສົ່ງການຕອບກັບ 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." +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`` ເຊິ່ງປະກອບມີລາຍການຂອງການຕອບກັບທັງໝົດທີ່ອາດຈະ" -"ເລືອກໄດ້." +"ສົ່ງການຕອບກັບ 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 "" -"ໄຄລເອັນຕີຄວາມໝາຍການຕອບກັບ, ໂດຍຈັດການກັບຮູບແບບຕ່າງໆທີ່ເຊີບເວີອາດຈະສົ່ງມານັ້ນ." +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." +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." +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``." +"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``)." +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``)." +"ຂໍ້ກຳນົດນີ້ **ບັງຄັບ** ວ່າຖ້າໃຊ້ເມຕາເວີຊັນ ``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:" +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 ຮູບແບບທີ່ແຕກຕ່າງກັນສຳລັບແຕ່ລະປະເພດເນື້ອຫາທີ່ຮ້ອງຂໍ:" +"ເຮດເດີ ``Accept`` ແມ່ນລາຍການປະເພດເນື້ອຫາທີ່ແຍກດ້ວຍຈຸດ ເຊິ່ງໄຄລເອັນເຂົ້າໃຈ ແລະ " +"ສາມາດປະມວນຜົນໄດ້. ມັນຮອງຮັບ 3 ຮູບແບບທີ່ແຕກຕ່າງກັນສຳລັບແຕ່ລະປະເພດເນື້ອຫາທີ່ຮ້ອງຂໍ:" #: ../source/specifications/simple-repository-api.rst:777 msgid "``$type/$subtype``" @@ -20624,210 +27976,325 @@ 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." +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``, ເພາະວ່າເປັນວິທີດຽ" -"ວທີ່ຈະລະບຸເວີຊັນ ແລະ ຮູບແບບທີ່ຕ້ອງການໄດ້ແທ້ຈິງ." +"ສຳລັບການເລືອກ ເວີຊັນ+ຮູບແບບ, ຮູບແບບທີ່ມີປະໂຫຍດທີ່ສຸດແມ່ນ ``$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``." +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``." +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`` ໂດຍອັດຕະໂນມັດ." +"``;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." +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 ໄດ້ບັງຄັບໃຊ້ຂໍ້ກຳນົດນີ້ແລ້ວ `_ ດັ່ງນັ້ນຄວາມສ່ຽງທີ່ຈະເກີດບັນຫາຈຶ່ງມີໜ້ອຍ." +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." +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``, ແລະ ກຳນົດໃຫ້ການໄດ້ຮັບປະເພດເນື້ອຫາເຫຼົ່ານັ້ນເປັນຂໍ້ຜິດພາດ." +"ຖ້າໄຄລເອັນຕ້ອງການຮອງຮັບພຽງແຕ່ 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." +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 ຈະຖືວ່າເປັນວິທີມາດຕະຖານໃນການປະສານງານລະຫ" -"ວ່າງໄຄລເອັນ ແລະ ເຊີບເວີ, ແຕ່ກໍມີບາງສະຖານະການທີ່ກົນໄກດັ່ງກ່າວອາດຈະບໍ່ພຽງພໍ. ສຳລັບກໍລະນີເຫຼົ່ານັ້ນ, ຂໍ້ກຳ" -"ນົດນີ້ມີກົນໄກການຕໍ່ຮອງທາງເລືອກອື່ນທີ່ອາດຈະໃຊ້ເປັນ **ທາງເລືອກ** ແທນໄດ້." +"ເຖິງແມ່ນວ່າການໃຊ້ 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." +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 ໄດ້." +"ເຊີບເວີທີ່ນຳໃຊ້ 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." +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, ຄ່າຄຸນນະພາບ ແລະ ອື່ນໆ ແມ່ນ **ບໍ່ຮອງຮັບ**." +"ຄ່າຂອງພາຣາມີເຕີ ``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." +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 ໃນບຣາວເຊີໄດ້ງ່າຍຂຶ້ນ, ຫຼື ເພື່ອໃຫ້ເອກະສານ ຫຼື ໝາຍເ" -"ຫດສາມາດເຊື່ອມຕໍ່ໄປຫາ ເວີຊັນ+ຮູບແບບ ສະເພາະໃດໜຶ່ງໄດ້." +"ການຮອງຮັບພາຣາມີເຕີນີ້ແມ່ນເປັນທາງເລືອກ, ແລະ ໄຄລເອັນ **ບໍ່ຄວນ** ອີງໃສ່ມັນໃນການໂຕ້ຕອບກັບ 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." +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)." +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``, ຫຼື ເລືອກປະເພດມ" -"າດຕະຖານເພື່ອຕອບກັບ)." +"ແລະ ຖ້າເຊີບເວີບໍ່ຮອງຮັບຮູບແບບທີ່ຮ້ອງຂໍ, ມັນອາດຈະເລືອກກັບໄປໃຊ້ເຮດເດີ ``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." +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." +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." +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``, ເຊີບເວີສາມາດລະເວັ້ນມັນ ແລະ ສົ່ງປະເພດເນື້ອຫາທີ່ກົງກັ" -"ບຈຸດເຊື່ອມຕໍ່ນັ້ນຄືນມາ." +"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." +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 ໃດໜຶ່ງ" -"ຖືກກຳນົດຄ່າໄວ້ສຳລັບ ເວີຊັນ+ຮູບແບບ ໃດ, ແລະ ເມື່ອສົ່ງຄຳຮ້ອງໄປຫາເຊີບເວີນັ້ນ, ກໍໃຫ້ສົ່ງເຮດເດີ " +"ສຳລັບໄຄລເອັນທີ່ຕ້ອງການການກຳນົດຄ່າສະເພາະ, ພວກເຂົາສາມາດບັນທຶກໄວ້ວ່າ 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." +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." +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 ມີການປ້ອງກັນເພື່ອພະຍາຍາມຊຸກດັນໃຫ້ໄຄລເອັນເລືອກສິ່ງທີ່ດີທີ່ສຸດ." +"ການຕັດສິນໃຈເຫຼົ່ານີ້ຖືກເລືອກເພື່ອເພີ່ມຈຳນວນຄຳຮ້ອງທີ່ຈະຍ້າຍໄປຫາ 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." +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." +"ຮອງຮັບທັງ 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." +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." +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`` ໃນປະເພດເນື້ອຫາທີ່ຄາດໄວ້ສຳລັບຈຸດເຊື່ອມຕໍ່ນັ້ນ." +"ຢ່າງໃດກໍຕາມ, ຖ້າເລືອກໃຊ້ການກຳນົດຄ່າຈຸດເຊື່ອມຕໍ່ (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." +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`` ເປັນທາງເລືອກສຸດທ້າຍເທົ່ານັ້ນ." +"ເມື່ອເລືອກເວີຊັນທີ່ຍອມຮັບໄດ້, ເຊີບເວີຄວນເລືອກເວີຊັນສູງສຸດທີ່ໄຄລເອັນຮອງຮັບ, " +"ພ້ອມກັບຮູບແບບການແປງຂໍ້ມູນທີ່ມີລັກສະນະຄົບຖ້ວນທີ່ສຸດ, " +"ໂດຍຄຳນຶງເຖິງຄວາມສະເພາະເຈາະຈົງຂອງຄຳຮ້ອງຈາກໄຄລເອັນ ລວມທັງຄ່າບຸລິມະສິດທີ່ພວກເຂົາລະບຸ, ແລະ " +"ຄວນໃຊ້ປະເພດເນື້ອຫາ ``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." +msgid "" +"Support all 3 content types described in this spec, using server-driven " +"content negotiation, for as long as they reasonably can." msgstr "" -"ຮອງຮັບທັງ 3 ປະເພດເນື້ອຫາທີ່ອະທິບາຍໄວ້ໃນຂໍ້ກຳນົດນີ້, ໂດຍໃຊ້ການຕໍ່ຮອງເນື້ອຫາໂດຍເຊີບເວີ, ໃຫ້ດົນທີ່ສຸດເທົ່າທີ່" -"ຈະເຮັດໄດ້." +"ຮອງຮັບທັງ 3 ປະເພດເນື້ອຫາທີ່ອະທິບາຍໄວ້ໃນຂໍ້ກຳນົດນີ້, ໂດຍໃຊ້ການຕໍ່ຮອງເນື້ອຫາໂດຍເຊີບເວີ, " +"ໃຫ້ດົນທີ່ສຸດເທົ່າທີ່ຈະເຮັດໄດ້." #: ../source/specifications/simple-repository-api.rst:961 -msgid "When constructing an ``Accept`` header, include all of the content types that you support." +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) ສຳລັບປະເພດເນື້ອຫາຂອງທ່ານ, ເວັ້ນ" -"ເສຍແຕ່ທ່ານມີເຫດຜົນສະເພາະໃນການນຳໃຊ້ທີ່ຕ້ອງການໃຫ້ເຊີບເວີຄຳນຶງເຖິງ (ຕົວຢ່າງ: ຖ້າທ່ານໃຊ້ຕົວແຍກ " +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." +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``, ເວັ້ນເສຍແຕ່ວ່າມັນເປັນປະເພດເນື້ອຫາດຽວທີ່ທ່ານຮ້ອງຂໍ." +"ຂໍ້ຍົກເວັ້ນອັນໜຶ່ງສຳລັບຄຳແນະນຳນີ້ຄື ຂໍແນະນຳວ່າທ່ານ *ຄວນ* ໃສ່ຄ່າ ``;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." +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`` ຂອງການຕອບກັບ ແລະ ໃຫ້ແນ່ໃຈວ່າມັນກົງກັບສິ່ງທີ່ທ່ານຄາດໄວ້." +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`" @@ -20842,50 +28309,66 @@ 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`" +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`" +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`" +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`" +"ພຶດສະພາ 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`" +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`" +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`" +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`" +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)" +msgid "" +"July 2025: layout changes (dedicated page for file yanking, introduce " +"concepts before API details)" msgstr "" -"ກໍລະກົດ 2025: ການປ່ຽນແປງການຈັດວາງ (ໜ້າສະເພາະສຳລັບການຖອນໄຟລ໌, ແນະນຳແນວຄວາມຄິດກ່ອນລາຍລະອ" -"ຽດຂອງ API)" +"ກໍລະກົດ 2025: ການປ່ຽນແປງການຈັດວາງ (ໜ້າສະເພາະສຳລັບການຖອນໄຟລ໌, " +"ແນະນຳແນວຄວາມຄິດກ່ອນລາຍລະອຽດຂອງ API)" #: ../source/specifications/simple-repository-api.rst:1001 -msgid "June 2026: :pep:`833` formally \"freezes\" the HTML representation of the simple API" +msgid "" +"June 2026: :pep:`833` formally \"freezes\" the HTML representation of the " +"simple API" msgstr "" "ມິຖຸນາ 2026: :pep:`833` ໄດ້ມີການ \"ຢຸດການປ່ຽນແປງ (freezes)\" ຮູບແບບ HTML ຂອງ simple " "API ຢ່າງເປັນທາງການ" @@ -20895,20 +28378,33 @@ 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." +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` ແລະ ໄດ້ຖືກບັນທຶກເປັນເອກະສານຢ່າງເປັນທາງການຢູ່ທີ່ນີ້." +"ຢູ່ໃນບ່ອນເກັບມ້ຽນໄຟລ໌ (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." +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 ຫຼື ສູງກວ່າ, ມັນ \"ຕ້ອງ\" ປະຕິ" -"ບັດຕາມກົດລະບຽບທີ່ໃຊ້ກັບການແຈກຈ່າຍຊອດໂຄ້ດທີ່ກຳນົດໄວ້ໃນຂໍ້ກຳນົດຂອງເມຕາເດຕາ." +"``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." @@ -20919,126 +28415,185 @@ 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` ຕ້ອງມີ ເພື່ອໃຫ້ສິ່ງນັ້ນຖືກຖືວ່າເປັນຊອດທຣີ." +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`)." +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`)." +"{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 "" -"ສ່ວນປະກອບຂອງຊື່ ແລະ ເວີຊັນໃນຊື່ໄຟລ໌ \"ຕ້ອງ\" ກົງກັບຄ່າທີ່ເກັບໄວ້ໃນເມຕາເດຕາທີ່ຢູ່ໃນໄຟລ໌ນັ້ນ." +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 `." +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." +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) ພຽງ \"ອັນດຽວ\" ໃນຊື່ໄຟລ໌. ໂຄ້ດທີ່ເຮັດແບບນີ້ອາ" -"ດຈະໃຊ້ຊື່ ແລະ ເວີຊັນການແຈກຈ່າຍຈາກຊື່ໄຟລ໌ໄດ້ໂດຍບໍ່ຕ້ອງມີການກວດສອບເພີ່ມເຕີມ." +"``.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 ຂອງຂໍ້ກຳນົດເມຕາເດຕາ." +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)." +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`)." +"(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." +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 ເພື່ອສ້າງໂປຣເຈັກ." +"ບໍ່ມີການກຳນົດ ຫຼື ບັງຄັບເນື້ອຫາອື່ນໆຂອງ 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'." +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' ໃນການເປີດ." +"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." +msgid "" +"Because extracting tar files as-is is dangerous, and the results are " +"platform-specific, archive features of source distributions are limited." msgstr "" -"ເນື່ອງຈາກການແຕກໄຟລ໌ tar ໂດຍກົງນັ້ນເປັນອັນຕະລາຍ ແລະ ຜົນທີ່ໄດ້ອາດຈະຂຶ້ນກັບແຕ່ລະແພລັດຟອມ, ຄຸນສົມບັດຂ" -"ອງບ່ອນເກັບໄຟລ໌ການແຈກຈ່າຍຊອດໂຄ້ດຈຶ່ງຖືກຈຳກັດໄວ້." +"ເນື່ອງຈາກການແຕກໄຟລ໌ 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." +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* ດ້າ" -"ນລຸ່ມນີ້." +"ເມື່ອແຕກໄຟລ໌ການແຈກຈ່າຍຊອດໂຄ້ດ, ເຄື່ອງມື \"ຕ້ອງ\" ໃຊ້ :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." +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.)" +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 ກໍປະຕິບັດຕາມພາກສ່ວນນີ້ຄືກັນ, ແຕ່ມັນອາດຈະມີການປ່ຽນແປງໃນອະນາຄົດ.)" +"ເຄື່ອງມືທີ່ບໍ່ໄດ້ໃຊ້ ``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:" +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*. ເມື່ອພົບລາຍການດັ່ງກ່າວ, ເຄື່ອງມື \"ຄວນ\" ແຈ້ງໃຫ້ຜູ້ໃຊ້" -"ຊາບ, \"ຕ້ອງບໍ່\" ແຕກໄຟລ໌ລາຍການນັ້ນ, ແລະ \"ອາດຈະ\" ຍົກເລີກການເຮັດວຽກດ້ວຍຂໍ້ຜິດພາດ:" +"ໄຟລ໌ຕໍ່ໄປນີ້ຖືວ່າບໍ່ຖືກຕ້ອງໃນບ່ອນເກັບໄຟລ໌ *sdist*. ເມື່ອພົບລາຍການດັ່ງກ່າວ, ເຄື່ອງມື \"ຄວນ\" " +"ແຈ້ງໃຫ້ຜູ້ໃຊ້ຊາບ, \"ຕ້ອງບໍ່\" ແຕກໄຟລ໌ລາຍການນັ້ນ, ແລະ \"ອາດຈະ\" ຍົກເລີກການເຮັດວຽກດ້ວຍຂໍ້ຜິດພາດ:" #: ../source/specifications/source-distribution-format.rst:117 msgid "Files that would be placed outside the destination directory." @@ -21053,10 +28608,12 @@ 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:" +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." @@ -21067,20 +28624,24 @@ 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." +msgid "" +"Tools MAY unpack links (symbolic or hard) as regular files, using content " +"from the archive." msgstr "" -"ເຄື່ອງມື \"ອາດຈະ\" ແຕກລິ້ງ (symbolic ຫຼື hard) ໃຫ້ເປັນໄຟລ໌ທຳມະດາ ໂດຍໃຊ້ເນື້ອຫາຈາກບ່ອນເກັບໄຟ" -"ລ໌." +"ເຄື່ອງມື \"ອາດຈະ\" ແຕກລິ້ງ (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.)" +msgid "" +"Leading slashes in file names MUST be dropped. (This is nowadays standard " +"behaviour for ``tar`` unpacking.)" msgstr "" -"ເຄື່ອງໝາຍ slash (/) ທີ່ຢູ່ທາງໜ້າຊື່ໄຟລ໌ \"ຕ້ອງ\" ຖືກຕັດອອກ. (ປະຈຸບັນນີ້ແມ່ນພຶດຕິກຳມາດຕະຖານ ສຳລັບກາ" -"ນແຕກໄຟລ໌ ``tar``.)" +"ເຄື່ອງໝາຍ slash (/) ທີ່ຢູ່ທາງໜ້າຊື່ໄຟລ໌ \"ຕ້ອງ\" ຖືກຕັດອອກ. (ປະຈຸບັນນີ້ແມ່ນພຶດຕິກຳມາດຕະຖານ " +"ສຳລັບການແຕກໄຟລ໌ ``tar``.)" #: ../source/specifications/source-distribution-format.rst:134 msgid "For each ``mode`` (Unix permission) bit, tools MUST either:" @@ -21096,7 +28657,9 @@ 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." +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)." @@ -21114,36 +28677,44 @@ 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." +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`." +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`." +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`." +msgid "" +"August 2023: Source distribution archive features were standardized " +"through :pep:`721`." msgstr "" -"ສິງຫາ 2023: ຄຸນສົມບັດຂອງບ່ອນເກັບໄຟລ໌ການແຈກຈ່າຍຊອດໂຄ້ດໄດ້ຖືກເຮັດໃຫ້ເປັນມາດຕະຖານຜ່ານ " -":pep:`721`." +"ສິງຫາ 2023: " +"ຄຸນສົມບັດຂອງບ່ອນເກັບໄຟລ໌ການແຈກຈ່າຍຊອດໂຄ້ດໄດ້ຖືກເຮັດໃຫ້ເປັນມາດຕະຖານຜ່ານ :pep:`721`." #: ../source/specifications/source-distribution-format.rst:162 -msgid "December 2024: License files inclusion into source distribution was standardized through :pep:`639`." +msgid "" +"December 2024: License files inclusion into source distribution was " +"standardized through :pep:`639`." msgstr "" -"ທັນວາ 2024: ການລວມໄຟລ໌ໃບອະນຸຍາດເຂົ້າໃນການແຈກຈ່າຍຊອດໂຄ້ດໄດ້ຖືກເຮັດໃຫ້ເປັນມາດຕະຖານຜ່ານ " -":pep:`639`." +"ທັນວາ 2024: " +"ການລວມໄຟລ໌ໃບອະນຸຍາດເຂົ້າໃນການແຈກຈ່າຍຊອດໂຄ້ດໄດ້ຖືກເຮັດໃຫ້ເປັນມາດຕະຖານຜ່ານ :pep:`639`." #: ../source/specifications/version-specifiers.rst:7 #: ../source/specifications/version-specifiers.rst:797 @@ -21151,103 +28722,144 @@ 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." +msgid "" +"This specification describes a scheme for identifying versions of Python " +"software distributions, and declaring dependencies on particular versions." msgstr "" -"ຂໍ້ກຳນົດນີ້ອະທິບາຍເຖິງຮູບແບບການລະບຸເວີຊັນຂອງການແຈກຈ່າຍຊອບແວ Python ແລະ ການປະກາດສິ່ງທີ່ຈຳເປັນຕ້ອ" -"ງໃຊ້ (dependencies) ສຳລັບເວີຊັນສະເພາະໃດໜຶ່ງ." +"ຂໍ້ກຳນົດນີ້ອະທິບາຍເຖິງຮູບແບບການລະບຸເວີຊັນຂອງການແຈກຈ່າຍຊອບແວ 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`." +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`." +"\"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." +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 ແທນທີ່ຈະເ" -"ປັນ ໄບນາຣີທີ່ສ້າງໄວ້ລ່ວງໜ້າ." +"\"ເຄື່ອງມືໃນການສ້າງ (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." +msgid "" +"\"Index servers\" are active distribution registries which publish version " +"and dependency metadata and place constraints on the permitted metadata." msgstr "" -"\"ອິນເດັກເຊີເວີ (Index servers)\" ແມ່ນລະບົບລົງທະບຽນການແຈກຈ່າຍທີ່ເຮັດໜ້າທີ່ເຜີຍແຜ່ເມຕາເດຕາຂອງເ" -"ວີຊັນ ແລະ ສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້, ພ້ອມທັງກຳນົດຂໍ້ຈຳກັດຂອງເມຕາເດຕາທີ່ອະນຸຍາດ." +"\"ອິນເດັກເຊີເວີ (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." +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)\" ແມ່ນເຄື່ອງມືອັດຕະໂນມັດທີ່ມີຈຸດປະສົງເພື່ອລັນໃນລະບົບກາ" -"ນພັດທະນາ ແລະ ອັບໂຫຼດບ່ອນເກັບໄຟລ໌ການແຈກຈ່າຍແບບຊອດໂຄ້ດ ແລະ ແບບໄບນາຣີ ໄປຫາອິນເດັກເຊີເວີ." +"\"ເຄື່ອງມືໃນການເຜີຍແຜ່ (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." +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)\" ແມ່ນເຄື່ອງມືການລວມລະບົບທີ່ມີຈຸດປະສົງສະເພາະເພື່ອລັນ" -"ໃນ ລະບົບເປົ້າໝາຍທີ່ຈະຕິດຕັ້ງ, ໂດຍດຶງເອົາບ່ອນເກັບໄຟລ໌ການແຈກຈ່າຍແບບຊອດໂຄ້ດ ແລະ ແບບໄບນາຣີ ຈາກອິນເ" -"ດັກເຊີເວີ ຫຼື ສະຖານທີ່ອື່ນໆທີ່ກຳນົດໄວ້ ແລະ ນຳພວກມັນໄປຕິດຕັ້ງໃນລະບົບເປົ້າໝາຍ." +"\"ເຄື່ອງມືໃນການຕິດຕັ້ງ (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." +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)\" ແມ່ນຄຳສັບລວມທີ່ຄຸມເຖິງ ເຄື່ອງມືໃນການສ້າງ, ອິນເດັກເຊີເ" -"ວີ, ເຄື່ອງມືໃນການເຜີຍແຜ່, ເຄື່ອງມືການລວມລະບົບ ແລະ ຊອບແວອື່ນໆທີ່ສ້າງ ຫຼື ໃຊ້ຂໍ້ມູນເມຕາເດຕາຂອງເວີຊັນກາ" -"ນແຈກຈ່າຍ ແລະ ສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້." +"\"ເຄື່ອງມືອັດຕະໂນມັດ (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" +msgid "" +"Distributions are identified by a public version identifier which supports " +"all defined version comparison operations" msgstr "" -"ການແຈກຈ່າຍຕ່າງໆແມ່ນຖືກລະບຸດ້ວຍ ຕົວລະບຸເວີຊັນສາທາລະນະ (public version identifier) ເຊິ່ງຮອງ" -"ຮັບທຸກການດຳເນີນການປຽບທຽບເວີຊັນທີ່ໄດ້ກຳນົດໄວ້" +"ການແຈກຈ່າຍຕ່າງໆແມ່ນຖືກລະບຸດ້ວຍ ຕົວລະບຸເວີຊັນສາທາລະນະ (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." +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) ທີ່ຕ້ອງການໃນການສ້າງ ຫຼື ການລັນຊອບແວ." +"ຮູບແບບເວີຊັນຖືກໃຊ້ທັງເພື່ອອະທິບາຍເວີຊັນການແຈກຈ່າຍທີ່ມີຢູ່ໃນບ່ອນເກັບໄຟລ໌ນັ້ນໆ, ແລະ " +"ເພື່ອກຳນົດຂໍ້ຈຳກັດຂອງເວີຊັນຂອງສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ (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) \"ຕ້ອງ\" ປະຕິບັດຕາມຮູບແບບຕໍ່ໄປນີ້::" +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) ທາງໜ້າ ຫຼື ທາງຫຼັງ." +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." +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) ທີ່ລະບຸໄວ້ດ້ານລຸ່ມນີ້ດ້ວຍ. ເຄື່ອງມືໃນການຕິດຕັ້ງ \"ອາດຈ" -"ະ\" ແຈ້ງເຕືອນຜູ້ໃຊ້ເມື່ອພົບເວີຊັນທີ່ບໍ່ຖືກຕ້ອງຕາມຂໍ້ກຳນົດ ຫຼື ເວີຊັນທີ່ກຳກວມ." +"ເຄື່ອງມືໃນການຕິດຕັ້ງ \"ຄວນ\" ລະເລີຍເວີຊັນສາທາລະນະໃດໆທີ່ບໍ່ປະຕິບັດຕາມຮູບແບບນີ້ ແຕ່ກໍ \"ຕ້ອງ\" " +"ລວມເອົາການປັບໃຫ້ເປັນມາດຕະຖານ (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." +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 ແບບຜ່ອນຜັນທີ່ຍອມຮັບຄ່າທີ່ອາດຈະ ຕ້" -"ອງມີການປັບໃຫ້ເປັນມາດຕະຖານໃນພາຍຫຼັງ." +"ເບິ່ງ :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:" @@ -21274,76 +28886,113 @@ 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." +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." +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." +msgid "" +"All numeric components MUST be interpreted and ordered according to their " +"numeric value, not as text strings." msgstr "" -"ສ່ວນປະກອບທີ່ເປັນຕົວເລກທັງໝົດ \"ຕ້ອງ\" ຖືກຕີຄວາມໝາຍ ແລະ ຈັດລຳດັບຕາມຄ່າຂອງຕົວເລກ, ບໍ່ແມ່ນຕາມລຳດັບ" -"ຕົວອັກສອນ (text strings)." +"ສ່ວນປະກອບທີ່ເປັນຕົວເລກທັງໝົດ \"ຕ້ອງ\" ຖືກຕີຄວາມໝາຍ ແລະ ຈັດລຳດັບຕາມຄ່າຂອງຕົວເລກ, " +"ບໍ່ແມ່ນຕາມລຳດັບຕົວອັກສອນ (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." +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." +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 ທີ່ມີຢູ່ທັງແບບສາທາລະນະ ແລະ ສ່ວນຕົວ." +"ຕົວລະບຸເວີຊັນບາງຢ່າງທີ່ອ່ານຍາກກໍໄດ້ຮັບການອະນຸຍາດໃນຮູບແບບນີ້ ເພື່ອໃຫ້ຮອງຮັບການຕັ້ງເວີຊັນ " +"ທີ່ຫຼາກຫຼາຍໃນໂປຣເຈັກ 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." +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) \"ຕ້ອງ\" ປະຕິບັດຕາມຮູບແບບຕໍ່ໄປນີ້::" +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." +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)\" ທີ່ກຳນົດເອງ, ເຊິ່ງແຍກຈາກຕົວລະບຸເວີຊັນສາທາລະນະດ້ວຍເຄື່" -"ອງໝາຍບວກ (+). ປ້າຍກຳກັບເວີຊັນທ້ອງຖິ່ນບໍ່ມີຄວາມໝາຍສະເພາະ ແຕ່ມີຂໍ້ຈຳກັດບາງຢ່າງທາງດ້ານໄວຍາກອນ." +"ພວກມັນປະກອບດ້ວຍຕົວລະບຸເວີຊັນສາທາລະນະປົກກະຕິ (ຕາມທີ່ໄດ້ກຳນົດໃນພາກສ່ວນກ່ອນໜ້ານີ້), ພ້ອມກັບ " +"\"ປ້າຍກຳກັບເວີຊັນທ້ອງຖິ່ນ (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) ຫຼາຍເກີນໄປ." +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." +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). ການໃຊ້ຕົວລະບຸເວີຊັນທ້ອງຖິ່ນບໍ່ໄດ້ສົ່ງຜົນກະທົບຕໍ່ປະເພດ ຂອງ" -"ການປ່ອຍ, ແຕ່ເມື່ອນຳໃຊ້ກັບການແຈກຈ່າຍຊອດໂຄ້ດ, ມັນສະແດງໃຫ້ເຫັນວ່າໄຟລ໌ນັ້ນອາດຈະບໍ່ມີໂຄ້ດທີ່ຄືກັນ ກັບເວີຊັນຕົ້" -"ນທາງທຸກປະການ." +"ການລວມເອົາປ້າຍກຳກັບເວີຊັນທ້ອງຖິ່ນເຮັດໃຫ້ສາມາດແຍກແຍະການປ່ອຍເວີຊັນຕົ້ນທາງ ອອກຈາກເວີຊັນທີ່ອາດມີການ " +"ປ່ຽນແປງໂດຍຜູ້ລວມລະບົບປາຍທາງ (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:" +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 ເລກຖານສິບຫົກ, ປ້າຍກຳກັບເວີຊັນທ້ອງຖິ່ນ \"ຕ້ອງ\" ຖື" -"ກຈຳກັດໃຫ້ໃຊ້ພຽງແຕ່ກຸ່ມຕົວອັກສອນຕໍ່ໄປນີ້:" +"ເພື່ອໃຫ້ແນ່ໃຈວ່າຕົວລະບຸເວີຊັນທ້ອງຖິ່ນສາມາດນຳໄປໃຊ້ເປັນສ່ວນໜຶ່ງຂອງຊື່ໄຟລ໌ ແລະ URL ໄດ້ຢ່າງສະດວກ, ແລະ " +"ເພື່ອຫຼີກເວັ້ນຄວາມບໍ່ສອດຄ່ອງໃນການສະແດງຮູບແບບ hash ເລກຖານສິບຫົກ, ປ້າຍກຳກັບເວີຊັນທ້ອງຖິ່ນ \"ຕ້ອງ\" " +"ຖືກຈຳກັດໃຫ້ໃຊ້ພຽງແຕ່ກຸ່ມຕົວອັກສອນຕໍ່ໄປນີ້:" #: ../source/specifications/version-specifiers.rst:143 msgid "ASCII letters (``[a-zA-Z]``)" @@ -21359,133 +29008,195 @@ msgstr "ຈຸດ (``.``)" #: ../source/specifications/version-specifiers.rst:147 msgid "Local version labels MUST start and end with an ASCII letter or digit." -msgstr "" -"ປ້າຍກຳກັບເວີຊັນທ້ອງຖິ່ນ \"ຕ້ອງ\" ເລີ່ມຕົ້ນ ແລະ ຈົບລົງດ້ວຍຕົວອັກສອນ ຫຼື ຕົວເລກ ASCII." +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) ໂດຍບໍ່ແຍກຕົວພິມໃຫຍ່ພິມນ້ອຍ. ເມື່ອປຽບທຽບພາກສ່ວນຕົວເລກກັບພາກສ່ວນຕົວອັກສອ" -"ນ, ພາກສ່ວນຕົວເລກ ຈະຖືກຖືວ່າສູງກວ່າພາກສ່ວນຕົວອັກສອນສະເໝີ. ນອກຈາກນີ້, ເວີຊັນທ້ອງຖິ່ນທີ່ມີຈຳນວນພາກສ່ວນ" -"ຫຼາຍກວ່າ ຈະຖືກຖືວ່າສູງກວ່າເວີຊັນທ້ອງຖິ່ນທີ່ມີພາກສ່ວນໜ້ອຍກວ່າ, ຕາບໃດທີ່ພາກສ່ວນຂອງເວີຊັນທີ່ສັ້ນກວ່າ ນັ້ນກົງກັບພ" -"າກສ່ວນເລີ່ມຕົ້ນຂອງເວີຊັນທີ່ຍາວກວ່າຢ່າງແນ່ນອນ." +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." +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)." +"\"ໂປຣເຈັກຕົ້ນທາງ (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 ມີຈຸດປະສົງເພື່ອໃຊ້ເກັບລາຍຊື່ ແລະ ໂຮສຕິ" -"ງໂປຣເຈັກຕົ້ນທາງເທົ່ານັ້ນ, ມັນ \"ຕ້ອງບໍ່\" ອະນຸຍາດ ໃຫ້ໃຊ້ຕົວລະບຸເວີຊັນທ້ອງຖິ່ນ." +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\"." +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)\"." +"ຕົວລະບຸເວີຊັນທີ່ປະກອບດ້ວຍພາກສ່ວນການປ່ອຍ (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 "" -"ພາກສ່ວນການປ່ອຍປະກອບດ້ວຍຄ່າຈຳນວນຖ້ວນບວກໜຶ່ງຕົວ ຫຼື ຫຼາຍກວ່າ, ແຍກກັນດ້ວຍຈຸດ::" +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." +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." +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\")." +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\")." +"ເຖິງແມ່ນວ່າຈະສາມາດມີສ່ວນປະກອບເພີ່ມເຕີມໄດ້ບໍ່ຈຳກັດຫຼັງຈາກສ່ວນທຳອິດ, ແຕ່ຮູບແບບທີ່ນິຍົມທີ່ສຸດ " +"ແມ່ນການໃຊ້ສອງສ່ວນ (\"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." +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``." +"ຊຸດຂອງການປ່ອຍ (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." +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`` ໂດຍອັດຕະໂນມັດ ເມື່ອປຽບທຽບກັບ ພາກສ່ວນການປ່ອ" -"ຍທີ່ມີສາມສ່ວນ." +"``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::" +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." +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\" ກ່ອນການປ່ອຍເວີຊັນສົມບູນ ເພື່ອໃຫ້ຜູ້ໃ" -"ຊ້ໄດ້ທົດສອບກ່ອນ." +"ບາງໂປຣເຈັກໃຊ້ວົງຈອນ \"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::" +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\"." +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)\"." +"ຕົວລະບຸເວີຊັນທີ່ປະກອບດ້ວຍພາກສ່ວນການປ່ອຍ (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." +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) ແລະ ຕາມດ້ວຍຄ່າຕົວ" -"ເລກພາຍໃນໄລຍະນັ້ນ." +"ເວີຊັນກ່ອນອອກຈິງຈະຖືກຈັດລຳດັບຕາມໄລຍະ (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." +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`` ສຳລັບພາກສ່ວນການປ່ອຍດຽວກັນ ເ" -"ພື່ອຮອງຮັບການແຈກຈ່າຍແບບເກົ່າບາງຢ່າງທີ່ມີຢູ່." +"ເຄື່ອງມືໃນການຕິດຕັ້ງ \"ອາດຈະ\" ຍອມຮັບທັງເວີຊັນ ``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``)." +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." +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`` ສຳລັບພາກສ່ວນການປ່ອຍດຽວກັນ." @@ -21495,34 +29206,51 @@ 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)." +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::" +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\"." +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." +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`` ຕາມດ້ວຍຄ່າຈຳນວນຖ້ວນບວກ. ເວີຊັນຫຼັງອອກຈິງຈ" -"ະຖືກຈັດລຳດັບຕາມຄ່າຕົວເລກ, ໂດຍຕໍ່ຈາກເວີຊັນທີ່ກ່ຽວຂ້ອງທັນທີ ແລະ ຢູ່ກ່ອນການປ່ອຍເວີຊັນຖັດໄປໃດໆ." +"ພາກສ່ວນ 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." +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 ເພື່ອເຜີຍແຜ່ເວີຊັນປັບປຸງທີ່ມີການແກ້ໄຂບັກແທ້ໆນັ້ນແມ່ນ \"ບໍ່ແນະນຳຢ່າງຍິ່ງ\". ໂດຍທົ່" -"ວໄປແລ້ວ, ມັນດີກວ່າທີ່ຈະໃຊ້ເລກເວີຊັນທີ່ຍາວກວ່າ ແລະ ເພີ່ມຄ່າໃນສ່ວນປະກອບສຸດທ້າຍ ສຳລັບແຕ່ລະເວີຊັນປັບປຸງ." +"ການໃຊ້ post-releases ເພື່ອເຜີຍແຜ່ເວີຊັນປັບປຸງທີ່ມີການແກ້ໄຂບັກແທ້ໆນັ້ນແມ່ນ \"ບໍ່ແນະນຳຢ່າງຍິ່ງ\". " +"ໂດຍທົ່ວໄປແລ້ວ, ມັນດີກວ່າທີ່ຈະໃຊ້ເລກເວີຊັນທີ່ຍາວກວ່າ ແລະ ເພີ່ມຄ່າໃນສ່ວນປະກອບສຸດທ້າຍ " +"ສຳລັບແຕ່ລະເວີຊັນປັບປຸງ." #: ../source/specifications/version-specifiers.rst:298 msgid "Post-releases are also permitted for pre-releases::" @@ -21530,147 +29258,214 @@ 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." +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 ໃໝ່ໂດຍກາ" -"ນເພີ່ມຄ່າຕົວເລກ." +"ການສ້າງ 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." +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) ອາດຈະຕ້ອງການສ້າງເວີຊັນເລີ່ມຕົ້ນໂດຍກົງຈາກ ລະບົບຄວບຄຸມຊອດໂຄ້ດ ເຊິ່ງບໍ່ໃ" -"ຫ້ໄປຊ້ຳກັບການປ່ອຍເວີຊັນຂອງໂປຣເຈັກໃນພາຍຫຼັງ." +"ບາງໂປຣເຈັກມີການປ່ອຍເວີຊັນລະຫວ່າງການພັດທະນາເປັນປະຈຳ, ແລະ ຜູ້ຈັດເຮັດແພັກເກດລະບົບ " +"(ໂດຍສະເພາະສຳລັບ 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::" +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 ເຂົ້າໃນຕົວລະບຸເວີຊັນ::" +"ຖ້າຖືກໃຊ້ເປັນສ່ວນໜຶ່ງຂອງວົງຈອນການພັດທະນາ, ເວີຊັນລະຫວ່າງການພັດທະນາເຫຼົ່ານີ້ຈະຖືກລະບຸໂດຍການລວມເອົາ " +"ພາກສ່ວນ developmental release ເຂົ້າໃນຕົວລະບຸເວີຊັນ::" #: ../source/specifications/version-specifiers.rst:326 -msgid "A version identifier that includes a developmental release segment is termed a \"developmental release\"." +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-" +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::" +msgid "" +"Developmental releases are also permitted for pre-releases and post-" +"releases::" msgstr "" -"ເວີຊັນລະຫວ່າງການພັດທະນາ (Developmental releases) ຍັງຖືກອະນຸຍາດໃຫ້ໃຊ້ກັບ pre-releases ແລ" -"ະ post-releases::" +"ເວີຊັນລະຫວ່າງການພັດທະນາ (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 ໃນການຈັດການ." +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." +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 ໃໝ່ໂດຍການເພີ່ມຄ່າຕົວເລກ." +"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." +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 ສຳລັບເວີຊັນການບຳລຸງຮັກ" -"ສາແບບເຕັມຮູບແບບ ເຊິ່ງອາດລວມມີການປ່ຽນແປງລະຫັດ." +"ການອອກເວີຊັນສຳລັບການພັດທະນາ (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::" +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``, ເວີຊັນໃໝ່ຈະ" -"ຖືກລະບຸວ່າ *ເກົ່າກວ່າ* ເວີຊັນແບບອີງຕາມວັນທີ ເມື່ອໃຊ້ວິທີການຈັດລຳດັບແບບປົກກະຕິ::" +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::" +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." +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." +"ການໃຊ້ອີພັອກທີ່ບໍ່ແມ່ນສູນແມ່ນ \"ບໍ່ແນະນຳ\". ພວກມັນມັກຈະບໍ່ໄດ້ຮັບການຮອງຮັບ ຫຼື ບໍ່ໄດ້ຮັບການແນະນຳ " +"ໂດຍການຈັດເຮັດແພັກເກດປາຍທາງ (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." +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 ໄດ້ໂດຍບໍ່ມີຄວາມກຳກວມ." +"ເມື່ອຕ້ອງການປ່ຽນຮູບແບບເວີຊັນ, ແມ່ນດີກວ່າທີ່ຈະໃຊ້ຕົວເລກທີ່ເພີ່ມຂຶ້ນເລື້ອຍໆໃນອີພັອກສູນ (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." +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." msgstr "" "ເບິ່ງ `Discouraging use of epoch segments in versions " -"`__ ສຳລັບການສົນທະນາທີ່ກ່ຽວຂ້ອງ." +"discuss.python.org/t/discouraging-use-of-epoch-segments-in-versions/" +"105811>`__ ສຳລັບການສົນທະນາທີ່ກ່ຽວຂ້ອງ." #: ../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." +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)\" ໃຫ້ເປັນໄວຍາກອນມາດຕະຖານທີ່ກຳນົດໄວ້ຂ້າງເທິງ." +"ເພື່ອຮັກສາຄວາມເຂົ້າກັນໄດ້ດີຂຶ້ນກັບເວີຊັນທີ່ມີຢູ່, ຍັງມີໄວຍາກອນ \"ທາງເລືອກ\" ຫຼາຍຢ່າງທີ່ \"ຕ້ອງ\" " +"ຖືກນຳມາພິຈາລະນາເມື່ອມີການວິເຄາະ (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``." +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``." +"ຕົວອັກສອນ 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``. ສິ່ງນີ້ບໍ່ລວມເຖິງຕົວເລກທີ່ຢູ່ໃນພາກສ່ວນຕົວອັກສອນປົນຕົວເລກຂອງ ເວີຊັນທ້ອງຖິ່ນ ເຊັ່ນ " +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 @@ -21678,35 +29473,51 @@ 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``." +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``." +"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." +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``. ໃນທຸກກໍລະນີ, ການສະກົດຄຳເພີ່ມເຕີມ ຄວນຖືກຖືວ່າເທົ່າກັບ" -"ຮູບແບບປົກກະຕິຂອງພວກມັນ." +"``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``." +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`` ຖືກປັບເປັນ " +"Pre releases ອະນຸຍາດໃຫ້ຕັດຕົວເລກອອກໄດ້ ເຊິ່ງໃນກໍລະນີນັ້ນຈະຖືກຄິດວ່າເປັນ ``0`` ໂດຍນໄນ. " +"ຮູບແບບປົກກະຕິແມ່ນການລວມເອົາ ``0`` ໄວ້ຢ່າງຊັດເຈນ. ສິ່ງນີ້ຊ່ວຍໃຫ້ເວີຊັນເຊັ່ນ ``1.2a`` ຖືກປັບເປັນ " "``1.2a0``." #: ../source/specifications/version-specifiers.rst:470 @@ -21714,103 +29525,148 @@ 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`` ຖືກປັບເປັນ " +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." +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, ການສະກົດຄຳເພີ່ມເຕີມຄວນ" -"ຖືກຖືວ່າເທົ່າກັບຮູບແບບປົກກະຕິ." +"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`` ຖືກປັບເປັນ " +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`` ຖືກປັບເປັນ " +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``." +"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``." +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``." +"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``." +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``." +"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``." +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``." +"ສຳລັບເວີຊັນທ້ອງຖິ່ນ, ນອກຈາກການໃຊ້ ``.`` ເປັນຕົວແຍກພາກສ່ວນແລ້ວ, ການໃຊ້ ``-`` ແລະ ``_`` " +"ກໍເປັນທີ່ຍອມຮັບໄດ້. ຮູບແບບປົກກະຕິແມ່ນການໃຊ້ຕົວອັກສອນ ``.``. ສິ່ງນີ້ຊ່ວຍໃຫ້ເວີຊັນເຊັ່ນ " +"``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." +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`` ແມ່ນຖືວ່າທຽບເທົ່າກັນ." +"ຕົວອັກສອນນີ້ ຕ້ອງ (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``." +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`` ຈະຖືກປັບເປັນ " +"ຍະຫວ່າງ (whitespace) ທາງໜ້າ ແລະ ທາງຫຼັງຕ້ອງຖືກລະເລີຍ ແລະ " +"ຕັດອອກຈາກທຸກຮູບແບບມາດຕະຖານຂອງເວີຊັນ. ເຊິ່ງລວມເຖິງ ``\" \"``, ``\\t``, ``\\n``, " +"``\\r``, ``\\f``, ແລະ ``\\v``. " +"ສິ່ງນີ້ຊ່ວຍໃຫ້ການຈັດການກັບຍະຫວ່າງທີ່ບໍ່ໄດ້ຕັ້ງໃຈເປັນໄປຢ່າງເໝາະສົມ ເຊັ່ນເວີຊັນ ``1.0\\n`` ຈະຖືກປັບເປັນ " "``1.0``." #: ../source/specifications/version-specifiers.rst:554 @@ -21818,19 +29674,30 @@ 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 ທັງແບ" -"ບສາທາລະນະ ແລະ ສ່ວນຕົວ. ໃນທາງປະຕິບັດ, ໂປຣເຈັກໜຶ່ງທີ່ ພະຍາຍາມໃຊ້ຄວາມຍືດຍຸ່ນທັງໝົດທີ່ຮູບແບບນີ້ມີໃຫ້ ອາ" -"ດຈະເຮັດໃຫ້ຜູ້ໃຊ້ທົ່ວໄປມີຄວາມຫຍຸ້ງຍາກ ໃນການຈັດລຳດັບເວີຊັນ, ເຖິງແມ່ນວ່າກົດລະບຽບຂ້າງເທິງຈະຮັບປະກັນວ່າເຄື່" -"ອງມືທັງໝົດ ທີ່ເຮັດຕາມຂໍ້ກຳນົດຈະຈັດລຳດັບພວກມັນໄດ້ຢ່າງສອດຄ່ອງກັນກໍຕາມ." +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." +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::" @@ -21841,86 +29708,117 @@ 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::" +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::" +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 "" -"ການປ່ອຍແບບອີງຕາມວັນທີ ໂດຍໃຊ້ເລກລຳດັບທີ່ເພີ່ມຂຶ້ນໃນແຕ່ລະປີ ແລະ ຂ້າມເລກສູນ::" +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." +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 ທີ່ກຳລັງຕັດສິນໃຈເລືອກຮູບແບບເວີຊັນ." +"ພາກສ່ວນນີ້ມີຈຸດປະສົງຫຼັກສຳລັບຜູ້ພັດທະນາເຄື່ອງມືທີ່ປະມວນຜົນເມຕາເດຕາການແຈກຈ່າຍໂດຍອັດຕະໂນມັດ, " +"ຫຼາຍກວ່າທີ່ຈະເປັນຜູ້ພັດທະນາ 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``." +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``." +"ພາກສ່ວນອີພັອກ (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::" +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 ເມື່ອພາກສ່ວນການປ່ອຍທີ່ປັບເປັນມາດຕະຖານແລ້ວຖືກວິເຄາະດັ່ງນີ້::" +"ພາກສ່ວນການປ່ອຍ (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." +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::" +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``), ນາມສະກຸນຕໍ່ໄປນີ້ແມ່ນໄດ້ຮັບການອະນຸຍາດ ແລະ \"ຕ້" -"ອງ\" ຖືກຈັດລຳດັບຕາມທີ່ສະແດງ::" +"ພາຍໃນການປ່ອຍແບບຕົວເລກ (``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." +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`` ໃນ" -"ພາກສ່ວນການປ່ອຍດຽວກັນ ຍ້ອນຄວາມກຳກວມ ແລະ ຍັງຄົງຖືວ່າຖືກຕ້ອງຕາມຂໍ້ກຳນົດ." +"``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::" +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) ຈັດລຽງຕາມທີ່ສະແດ" -"ງໄວ້::" +"``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::" +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``), ນາມສະກຸນຕໍ່ໄປນີ້ແມ່ນໄດ້ຮັບການອະນຸຍາດ ແລະ \"ຕ້ອງ\" ຖື" -"ກຈັດລຳດັບຕາມທີ່ສະແດງ::" +"ພາຍໃນ 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``)." +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``)." +"ໃຫ້ສັງເກດວ່າ ``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." +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 ທີ່ມີຄຳນຳໜ້າຄືກັນ, ການຈັ" -"ດລຳດັບ \"ຕ້ອງ\" ເປັນໄປຕາມຄ່າຂອງສ່ວນປະກອບຕົວເລກ." +"ພາຍໃນພາກສ່ວນ pre-release, post-release ຫຼື development release ທີ່ມີຄຳນຳໜ້າຄືກັນ, " +"ການຈັດລຳດັບ \"ຕ້ອງ\" ເປັນໄປຕາມຄ່າຂອງສ່ວນປະກອບຕົວເລກ." #: ../source/specifications/version-specifiers.rst:675 msgid "The following example covers many of the possible combinations::" @@ -21931,81 +29829,128 @@ 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`." +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`." +"ເມຕາເດຕາ 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) ອັນດຽວເພື່ອໃຊ້ກັບທຸກເວີຊັນຂອງໂປຣເຈັກ." +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 ກໍຕາມ. ເຄື່ອງມື \"ຄວນ\" ລະເລີຍເວີຊັນໃດໆ ທີ່ບໍ່ສາມາ" -"ດວິເຄາະໄດ້ດ້ວຍກົດລະບຽບໃນຂໍ້ກຳນົດນີ້, ແຕ່ \"ອາດຈະ\" ກັບໄປໃຊ້ຮູບແບບການວິເຄາະ ແລະ ຈັດລຳດັບເວີຊັນທີ່ກ" -"ຳນົດໂດຍການພັດທະນາຂອງຕົນເອງ ຫາກບໍ່ມີເວີຊັນທີ່ຖືກຕ້ອງຕາມຂໍ້ກຳນົດນີ້ໃຫ້ໃຊ້." +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." +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." +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." +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, ແຕ່ຮູບແບບນີ້ກໍຄຸ້ມຄ່າ ທີ່ຈະທຳຄວາມເຂົ້າໃຈ ເພາະວ່າມັນຄຸມເຖິງຫຼາຍ" -"ບັນຫາທີ່ອາດຈະເກີດຂຶ້ນເມື່ອຕ້ອງເພິ່ງພາ ການແຈກຈ່າຍອື່ນໆ, ແລະ ເມື່ອເຜີຍແຜ່ການແຈກຈ່າຍທີ່ຄົນອື່ນນຳໄປໃຊ້ຕໍ່." +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." +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) ແມ່ນສາມາດເຂົ້າກັນໄດ້ຢ່າງສົມບູນກັບ" -"ຮູບແບບເວີຊັນທີ່ກຳນົດໄວ້ໃນຂໍ້ກຳນົດນີ້, ແລະ ແນະນຳໃຫ້ປະຕິບັດຕາມດ້ານເຫຼົ່ານີ້." +"ດ້ານຕ່າງໆຂອງການກຳນົດລຸ້ນແບບເຊມັນຕິກ \"ຫຼັກ.ຍ່ອຍ.ແກ້ໄຂ\" (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." +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) ແ" -"ມ່ນ *ບໍ່* ສາມາດເຂົ້າກັນໄດ້ກັບຂໍ້ກຳນົດນີ້ ແລະ ບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ໃຊ້ໃນຊ່ອງຂໍ້ມູນເວີຊັນສາທາລະນະ." +"ເວີຊັນແບບເຊມັນຕິກທີ່ມີເຄື່ອງໝາຍຂີດຕໍ່ (ລຸ້ນກ່ອນອອກຈິງ - ຂໍ້ທີ 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." +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`` ເພື່ອລະບຸລໍາດັບເວີຊັນທີ່ເໝາະສົມ." +"ກົນໄກໜຶ່ງທີ່ເປັນໄປໄດ້ໃນການແປງປ້າຍກຳກັບຊອດໂຄດທີ່ອີງຕາມການກຳນົດລຸ້ນແບບເຊມັນຕິກດັ່ງກ່າວ " +"ໃຫ້ເປັນເວີຊັນສາທາລະນະທີ່ເຂົ້າກັນໄດ້ ແມ່ນການໃຊ້ຄຳຕໍ່ທ້າຍ ``.devN`` ເພື່ອລະບຸລໍາດັບເວີຊັນທີ່ເໝາະສົມ." #: ../source/specifications/version-specifiers.rst:760 -msgid "Specific build information may also be included in local version labels." +msgid "" +"Specific build information may also be included in local version labels." msgstr "ຂໍ້ມູນການບິວສະເພາະອາດຈະຖືກລວມເຂົ້າໃນປ້າຍກຳກັບເວີຊັນທ້ອງຖິ່ນນຳ." #: ../source/specifications/version-specifiers.rst:766 @@ -22013,21 +29958,29 @@ 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." +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 ເພື່ອເພີ່ມຄ່າ" -"ແຮັດຊ໌ລະບຸຕົວຕົນເຂົ້າໃນຕົວລະບຸເວີຊັນ. ເນື່ອງຈາກຄ່າແຮັດຊ໌ບໍ່ສາມາດຈັດລໍາດັບໄດ້ຢ່າງໜ້າເຊື່ອຖື, ເວີຊັນດັ່ງກ່າວຈຶ່ງບໍ່" -"ໄດ້ຮັບອະນຸຍາດໃຫ້ໃຊ້ໃນຊ່ອງຂໍ້ມູນເວີຊັນສາທາລະນະ." +"ເຄື່ອງມືບິວຫຼາຍຊະນິດມີການເຊື່ອມຕໍ່ກັບລະບົບຄວບຄຸມເວີຊັນແບບກະຈາຍ ເຊັ່ນ 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." +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 ດັ້ງເດີມສາມາດເກັບໄວ້ໃນເມຕາເດຕາຂອ" -"ງໂຄງການໄດ້." +"ເຊັ່ນດຽວກັບການກຳນົດລຸ້ນແບບເຊມັນຕິກ, ຄຳຕໍ່ທ້າຍ ``.devN`` " +"ສາທາລະນະອາດຈະຖືກນຳໃຊ້ເພື່ອລະບຸລຸ້ນດັ່ງກ່າວໃຫ້ເປັນເອກະລັກເພື່ອການເຜີຍແຜ່, ໃນຂະນະທີ່ປ້າຍກຳກັບທີ່ອີງຕາມ " +"DVCS ດັ້ງເດີມສາມາດເກັບໄວ້ໃນເມຕາເດຕາຂອງໂຄງການໄດ້." #: ../source/specifications/version-specifiers.rst:777 -msgid "Identifying hash information may also be included in local version labels." +msgid "" +"Identifying hash information may also be included in local version labels." msgstr "ຂໍ້ມູນຄ່າແຮັດຊ໌ລະບຸຕົວຕົນອາດຈະຖືກລວມເຂົ້າໃນປ້າຍກຳກັບເວີຊັນທ້ອງຖິ່ນນຳ." #: ../source/specifications/version-specifiers.rst:781 @@ -22035,28 +29988,38 @@ 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." +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 ທີ່ກ່ຽ" -"ວຂ້ອງ: ປີ ຕາມດ້ວຍຕົວອັກສອນພິມນ້ອຍທີ່ບົ່ງບອກເຖິງເວີຊັນຂອງຖານຂໍ້ມູນພາຍໃນປີນັ້ນ." +"ໂຄງການ ``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." +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') ແລະ ຈະເພີ່ມຂຶ້ນໃນແຕ່ລະຄັ້ງທີ່ມີການອັບເດດຖານຂໍ້" -"ມູນພາຍໃນປີນັ້ນ." +"ສິ່ງນີ້ສາມາດແປງເປັນຕົວລະບຸເວີຊັນສາທາລະນະທີ່ຖືກຕ້ອງຕາມຂໍ້ກຳນົດເປັນ ``.``, " +"ໂດຍທີ່ລໍາດັບ (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." +msgid "" +"As with other translated version identifiers, the corresponding Olson " +"database version could be recorded in the project metadata." msgstr "" -"ເຊັ່ນດຽວກັບຕົວລະບຸເວີຊັນທີ່ຖືກແປງອື່ນໆ, ເວີຊັນຖານຂໍ້ມູນ Olson ທີ່ກ່ຽວຂ້ອງສາມາດບັນທຶກໄວ້ໃນເມຕາເດຕາຂອງໂ" -"ຄງການໄດ້." +"ເຊັ່ນດຽວກັບຕົວລະບຸເວີຊັນທີ່ຖືກແປງອື່ນໆ, ເວີຊັນຖານຂໍ້ມູນ Olson " +"ທີ່ກ່ຽວຂ້ອງສາມາດບັນທຶກໄວ້ໃນເມຕາເດຕາຂອງໂຄງການໄດ້." #: ../source/specifications/version-specifiers.rst:799 -msgid "A version specifier consists of a series of version clauses, separated by commas. For example::" -msgstr "" -"ຕົວກຳນົດເວີຊັນປະກອບດ້ວຍຊຸດຂອງຂໍ້ກຳນົດເວີຊັນ, ແຍກກັນດ້ວຍເຄື່ອງໝາຍຈຸດ. ຕົວຢ່າງ::" +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:" @@ -22087,26 +30050,40 @@ 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." +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." +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`_." +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) ຫຼື ບໍ່ນັ້ນ ຄວນຈັດກາ" -"ນຕາມທີ່ອະທິບາຍໄວ້ໃນ `ການຈັດການລຸ້ນກ່ອນອອກຈິງ`_." +"ເມື່ອມີຫຼາຍເວີຊັນທີ່ກົງກັບຕົວກຳນົດເວີຊັນ, ເວີຊັນທີ່ຄວນເລືອກ " +"ຄວນຈະເປັນເວີຊັນຫຼ້າສຸດຕາມການຈັດລໍາດັບທີ່ກຳນົດໂດຍມາດຕະຖານ `ຮູບແບບເວີຊັນ`_. " +"ສ່ວນການຈະພິຈາລະນາລຸ້ນກ່ອນອອກຈິງ (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." +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 "" "ຍົກເວັ້ນບ່ອນທີ່ມີການລະບຸໄວ້ເປັນພິເສດຂ້າງລຸ່ມນີ້, ຫ້າມບໍ່ໃຫ້ມີຕົວລະບຸເວີຊັນທ້ອງຖິ່ນໃນຕົວກຳນົດເວີຊັນຢ່າງເດັດຂາດ, " "ແລະ ຕ້ອງບໍ່ສົນໃຈປ້າຍກຳກັບເວີຊັນທ້ອງຖິ່ນທັງໝົດໃນເວລາທີ່ກວດສອບວ່າເວີຊັນນັ້ນກົງກັບຕົວກຳນົດເວີຊັນທີ່ໃຫ້ມາຫຼືບໍ່." @@ -22116,24 +30093,34 @@ 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." +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." +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::" +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``." +msgid "" +"This operator MUST NOT be used with a single segment version number such as " +"``~=1``." msgstr "ຫ້າມໃຊ້ຕົວດຳເນີນການນີ້ກັບໝາຍເລກເວີຊັນທີ່ມີສ່ວນດຽວ ເຊັ່ນ ``~=1``." #: ../source/specifications/version-specifiers.rst:853 @@ -22141,126 +30128,193 @@ 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::" +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::" +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) ສຳລັບການປຽບທຽບສ່ວນຂອງລຸ້ນ ໝາຍຄວາມວ່າລະດັບການເຂົ້າກັນໄດ້ໃນອະນ" -"າຄົດທີ່ຄາດໄວ້ໃນຂໍ້ກຳນົດລຸ້ນທີ່ເຂົ້າກັນໄດ້ ສາມາດຄວບຄຸມໄດ້ໂດຍການເພີ່ມເລກສູນຕໍ່ທ້າຍຕົວກຳນົດເວີຊັນ::" +"ກົດເກັນການຕື່ມຊ່ອງວ່າງ (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 "" -"ຂໍ້ກຳນົດການຈັບຄູ່ເວີຊັນປະກອບດ້ວຍຕົວດຳເນີນການຈັບຄູ່ເວີຊັນ ``==`` ແລະ ຕົວລະບຸເວີຊັນ." +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." +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." +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." +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." +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``, ຂໍ້ກຳນົດຕໍ່ໄປນີ້ຈະຈັບຄູ່ຫຼືບໍ່ ຕາມທີ່ສະແດງ::" +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::" +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``, ຂໍ້ກຳນົດຕໍ່ໄປນີ້ຈະຈັບຄູ່ຫຼືບໍ່ ຕາມທີ່ສະແດງ::" +"ສຳລັບຈຸດປະສົງຂອງການຈັບຄູ່ຄຳນຳໜ້າ, ສ່ວນຂອງລຸ້ນກ່ອນອອກຈິງຈະຖືກພິຈາລະນາວ່າຄືກັບມີ ``.`` ນຳໜ້າ, " +"ດັ່ງນັ້ນສຳລັບເວີຊັນ ``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::" +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``, ຂໍ້ກຳນົດຕໍ່ໄປນີ້ຈະຈັບຄູ່ຫຼືບໍ່ ຕາມທີ່ສະແດງ::" +"ການຈັບຄູ່ທີ່ຄືກັນທຸກປະການກໍຖືວ່າເປັນການຈັບຄູ່ຄຳນຳໜ້າ " +"(ການຕີຄວາມໝາຍນີ້ແມ່ນມາຈາກກົດເກັນການຕື່ມເລກສູນປົກກະຕິສຳລັບສ່ວນຂອງລຸ້ນຂອງຕົວລະບຸເວີຊັນ). ສຳລັບເວີຊັນ " +"``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." +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.*`` ແມ່ນບໍ່ຖືກຕ້ອງ. ຖ້າມີ, ສ່ວນຂອງລຸ້ນລະຫວ່າງການພັດທະນາຈະເປັນສ່ວນສຸດທ້າຍສະເໝີໃນເວີຊັນ" -"ສາທາລະນະ, ແລະ ເວີຊັນທ້ອງຖິ່ນຈະຖືກລະເວັ້ນເພື່ອຈຸດປະສົງໃນການປຽບທຽບ, ດັ່ງນັ້ນການໃຊ້ຢ່າງໃດຢ່າງໜຶ່ງໃນກາ" -"ນຈັບຄູ່ຄຳນຳໜ້າຈຶ່ງບໍ່ມີປະໂຫຍດ." +"``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) ສຳລັບການເຜີຍແຜ່ຊອບແວ ເພາະມັນຈະເຮັດໃຫ້ການອັບເດດຄວາມປອດໄພມີຄວາມຫຍຸ້ງຍາກຫຼ" -"າຍ. ຕົວດຳເນີນການປຽບທຽບເວີຊັນແບບເຄັ່ງຄັດມີຈຸດປະສົງຫຼັກເພື່ອໃຊ້ໃນການກຳນົດຄວາມຂຶ້ນຕໍ່ກັນສຳລັບ *ການຕິດຕັ້ງ" -"ແອັບພລິເຄຊັນ* ທີ່ຕ້ອງການຄວາມແນ່ນອນ ໃນຂະນະທີ່ໃຊ້ດັດຊະນີການແຈກຢາຍຮ່ວມກັນ." +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." +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." +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) ແບບເຄັ່ງຄັດ." +"ຖ້າຕົວລະບຸເວີຊັນທີ່ລະບຸໄວ້ເປັນຕົວລະບຸເວີຊັນທ້ອງຖິ່ນ, ຕ້ອງ " +"ພິຈາລະນາປ້າຍກຳກັບເວີຊັນທ້ອງຖິ່ນຂອງເວີຊັນທີ່ຖືກພິຈາລະນາໃນເວລາທີ່ຈັບຄູ່ເວີຊັນ, " +"ໂດຍທີ່ຕົວລະບຸເວີຊັນສາທາລະນະຈະຖືກຈັບຄູ່ຕາມທີ່ອະທິບາຍໄວ້ຂ້າງເທິງ, ແລະ " +"ປ້າຍກຳກັບເວີຊັນທ້ອງຖິ່ນຈະຖືກກວດສອບຄວາມເທົ່າກັນໂດຍໃຊ້ການປຽບທຽບຂໍ້ຄວາມ (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 "" -"ຂໍ້ກຳນົດການຍົກເວັ້ນເວີຊັນປະກອບດ້ວຍຕົວດຳເນີນການຍົກເວັ້ນເວີຊັນ ``!=`` ແລະ ຕົວລະບຸເວີຊັນ." +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." +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`_." +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 ``>=``." @@ -22268,10 +30322,12 @@ 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." +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 @@ -22283,126 +30339,176 @@ 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 "" -"ການປຽບທຽບລໍາດັບແບບແຍກ ``>`` ແລະ ``<`` ແມ່ນຄ້າຍຄືກັບການປຽບທຽບລໍາດັບແບບລວມ ທີ່ພວກມັນອີງຕາມຕ" -"ຳແໜ່ງທີ່ກ່ຽວຂ້ອງຂອງເວີຊັນທີ່ຖືກພິຈາລະນາ ແລະ ເວີຊັນທີ່ລະບຸໄວ້ ຕາມການຈັດລໍາດັບທີ່ກຳນົດໂດຍມາດຕະຖານ `ຮູບແ" -"ບບເວີຊັນ`_. ເຖິງຢ່າງໃດກໍຕາມ, ພວກມັນຈະຍົກເວັ້ນລຸ້ນກ່ອນອອກຈິງ, ລຸ້ນຫຼັງອອກຈິງ, ແລະ ເວີຊັນທ້ອງຖິ່ນຂອງເວີ" -"ຊັນທີ່ລະບຸໄວ້ໂດຍສະເພາະ." +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``." +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``." +"``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`` **ຕ້ອງບໍ່** ຈັບຄູ່ກັບເວີຊັນທ້ອງຖິ່ນຂອງເວີຊັນທີ່ລະບຸໄວ້." +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." +msgid "" +"For source archive and wheel references, an expected hash value may be " +"specified by including a ``=`` 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." +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) ທີ່ອີງຕາມຄ່" -"າແຮັດຊ໌. ເຄື່ອງມືອັດຕະໂນມັດ ອາດຈະ ລະເວັ້ນຄຳເຕືອນກ່ຽວກັບຄ່າແຮັດຊ໌ທີ່ຫາຍໄປສຳລັບລະບົບຄວບຄຸມເວີຊັນທີ່ບໍ່ມີຕົວ" -"ລະບຸການຄອມມິດແບບຄ່າແຮັດຊ໌." +"ສຳລັບການອ້າງອີງລະບົບຄວບຄຸມເວີຊັນ, ຄວນ ໃຊ້ຮູບແບບ ``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." +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 ໄດ້ໂດຍໃຊ້ຮູບແບບ ``@`` ຫຼື ``@" -"#``." +"ເພື່ອຈັດການກັບລະບົບຄວບຄຸມເວີຊັນທີ່ບໍ່ຮອງຮັບການລວມເອົາການອ້າງອີງຄອມມິດ ຫຼື ແທັກ (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) ທີ່ເປັນອັນຕະລາຍດ້ວຍແທັກໃດໜຶ່ງນັ້ນເຮັດໄດ້ງ່າຍ, ແຕ່ການ" -"ສ້າງດ້ວຍຄ່າແຮັດຊ໌ສະເພາະໃດໜຶ່ງນັ້ນເຮັດໄດ້ຍາກກວ່າ)." +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::" @@ -22531,79 +30689,118 @@ 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." +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." +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 `_." +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." +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 ແລະ ເວີຊັນຕໍ່ໆມາໄດ້ນຳໃຊ້ພຶດຕິກຳຕາມ" -"ທີ່ອະທິບາຍໄວ້ຢູ່ນີ້." +"ໝາຍເຫດ: ການປຽບທຽບນີ້ແມ່ນທຽບກັບ ``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." +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`` ຖືວ່າມັນເປັນເຄື່ອງໝາຍລຸ້ນກ່ອນອອກຈິງ." +"ເວີຊັນທ້ອງຖິ່ນມີການຈັດລໍາດັບທີ່ແຕກຕ່າງກັນ, " +"ຂໍ້ກຳນົດນີ້ກຳນົດໃຫ້ພວກມັນຖືກຈັດລໍາດັບວ່າໃຫຍ່ກວ່າເວີຊັນດຽວກັນທີ່ບໍ່ມີເວີຊັນທ້ອງຖິ່ນ, ໃນຂະນະທີ່ " +"``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." +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." +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``. ເຖິງຢ່າງໃດກໍຕາມ, ຂໍ້ກຳນົດນີ້ອະນຸຍາດໃຫ້ໃຊ້ແຕ່ລະປະເພດໄດ້ພຽງຄັ້ງດຽວ ແລ" -"ະ ຕ້ອງຢູ່ໃນລໍາດັບທີ່ກຳນົດໄວ້." +"``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." +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 ທີ່ສາມາດໃຊ້ເພື່ອທົ" -"ດສອບວ່າເວີຊັນຢູ່ໃນຮູບແບບນັ້ນແລ້ວຫຼືບໍ່, ແລະ ຖ້າບໍ່ແມ່ນ, ໃຫ້ແຍກສ່ວນປະກອບຕ່າງໆອອກມາເພື່ອເຮັດໃຫ້ເປັນມາດຕະ" -"ຖານໃນຂັ້ນຕອນຕໍ່ໄປ." +"ຕາມທີ່ໄດ້ລະບຸໄວ້ກ່ອນໜ້ານີ້ໃນສ່ວນ :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 "" -"ເພື່ອທົດສອບວ່າຕົວລະບຸເວີຊັນຢູ່ໃນຮູບແບບມາດຕະຖານຫຼືບໍ່, ທ່ານສາມາດໃຊ້ຟັງຊັນຕໍ່ໄປນີ້:" +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):" +msgid "" +"To extract the components of a version identifier, use the following regular " +"expression (as defined by the `packaging `_ project):" msgstr "" "ເພື່ອແຍກສ່ວນປະກອບຂອງຕົວລະບຸເວີຊັນ, ໃຫ້ໃຊ້ regular expression ຕໍ່ໄປນີ້ (ຕາມທີ່ກຳນົດໂດຍໂຄງການ " "`packaging `_):" @@ -22613,14 +30810,15 @@ 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." +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: ເຮັດໃຫ້ຄວາມເທົ່າກັນແບບກຳນົດເອງເປັນແບບບໍ່ແຍກຕົວພິມໃຫຍ່-ພິມນ້ອຍຢ່າງຊັດເຈນ." +msgstr "ພະຈິກ 2025: ເຮັດໃຫ້ຄວາມເທົ່າກັນແບບກຳນົດເອງເປັນແບບບໍ່ແຍກຕົວພິມໃຫຍ່-ພິມນ້ອຍຢ່າງຊັດເຈນ." #: ../source/specifications/version-specifiers.rst:1288 msgid "Jan 2026: The use of epochs was discouraged." @@ -22631,64 +30829,101 @@ 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." +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 ຫຼັກທີ່ຕິດຕັ້ງໄວ້. ເ" -"ຖິງວ່າແນວຄວາມຄິດຂອງສະພາບແວດລ້ອມສະເໝືອນຈະມີມາກ່ອນການອັບເດດນີ້, ແຕ່ກ່ອນໜ້ານັ້ນຍັງບໍ່ມີກົນໄກມາດຕະຖານ" -"ໃນການປະກາດ ຫຼື ກວດຫາພວກມັນ." +"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)." +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` (ຕຳແໜ່ງມາດຕະຖານໃນລະບົບໄຟລ໌ຂອງໄດເຣັກທໍຣີໄລບຣາຣີມາດຕະຖານ)." +"(ຕຳແໜ່ງໃນລະບົບໄຟລ໌ຂອງອິນເຕີພຣີເຕີທີ່ກຳລັງເຮັດວຽກ) " +"ເຊິ່ງຈະມີຄ່າແຕກຕ່າງຈາກ :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 ກຳລັງເຮັດວຽກຢູ່ໃນສະພາບ" -"ແວດລ້ອມສະເໝືອນຫຼືບໍ່)." +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." +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." +"ຕາມທີ່ອະທິບາຍໄວ້ໃນ :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 ຮັບຮູ້ວ່າພວກມັນກຳລັງເຮັດວຽກຢູ່ໃນສະພາບແວດລ້ອມສະເໝືອນແ" -"ລ້ວ ແລະ ບໍ່ຈຳເປັນ ຫຼື ບໍ່ຕ້ອງການການຊ້ອນກັນຂອງສະພາບແວດລ້ອມອີກ." +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." +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." +"ເຖິງແມ່ນວ່າຈະບໍ່ມີໄຟລ໌ ``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`." @@ -22699,76 +30934,105 @@ 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." +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." +"ເອກະສານນີ້ແມ່ນເນັ້ນໃສ່ *ຝ່າຍນຳໃຊ້* ເມຕາເດຕາ (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." +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``. ແນວໃດກໍຕາມ, ຖ້າເປັນໄປໄດ້, ຜູ້ໃຊ້ໄດ້ຮັບການ *ສະໜັບສະໜູນ* ໃຫ້ເລືອກປ້າຍຊື່ທີ່ມີຄວາມ" -"ໝາຍ ເຊິ່ງສາມາດປ່ຽນເປັນມາດຕະຖານໃຫ້ກົງກັບປ້າຍຊື່ທີ່ເປັນທີ່ຮູ້ຈັກໄດ້." +"*ຝ່າຍສ້າງ* ເມຕາເດຕາ (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." +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 ຂອງໂຄງການໃນເມຕາເດຕາຂອງແພັກເກດຂອງທ່ານ." +"ເບິ່ງ :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 ອື່ນໆ ທີ່ໃຊ້ກັນທົ່ວໄປ." +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." +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 ຂອງໂຄງການໃນຮູບແບບທີ່ສອດຄ່ອງກັນ." +"ສິ່ງນີ້ຊ່ວຍໃຫ້ລະບົບດັດຊະນີ (ເຊັ່ນ: 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." +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 `." +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:`ລາຍຊື່ປ້າຍຊື່ທີ່ເປັນທີ່ຮູ້ຈັກ `." +"ເພື່ອລະບຸວ່າປ້າຍຊື່ ``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:" +msgid "" +"The normalization procedure for ``Project-URL`` labels is defined by the " +"following Python function:" msgstr "" -"ຂັ້ນຕອນການເຮັດໃຫ້ເປັນມາດຕະຖານສຳລັບປ້າຍຊື່ ``Project-URL`` ແມ່ນຖືກກຳນົດໂດຍຟັງຊັນ Python ຕໍ່ໄປ" -"ນີ້:" +"ຂັ້ນຕອນການເຮັດໃຫ້ເປັນມາດຕະຖານສຳລັບປ້າຍຊື່ ``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." +msgid "" +"In plain language: a label is *normalized* by deleting all ASCII punctuation " +"and whitespace, and then converting the result to lowercase." msgstr "" -"ເວົ້າແບບເຂົ້າໃຈງ່າຍໆ: ປ້າຍຊື່ຈະຖືກ *ເຮັດໃຫ້ເປັນມາດຕະຖານ* ໂດຍການລຶບເຄື່ອງໝາຍວັກຕອນ ASCII ແລະ ຍ" -"ະຫວ່າງທັງໝົດອອກ, ຈາກນັ້ນປ່ຽນຜົນໄດ້ຮັບໃຫ້ເປັນໂຕພິມນ້ອຍ." +"ເວົ້າແບບເຂົ້າໃຈງ່າຍໆ: ປ້າຍຊື່ຈະຖືກ *ເຮັດໃຫ້ເປັນມາດຕະຖານ* ໂດຍການລຶບເຄື່ອງໝາຍວັກຕອນ ASCII ແລະ " +"ຍະຫວ່າງທັງໝົດອອກ, ຈາກນັ້ນປ່ຽນຜົນໄດ້ຮັບໃຫ້ເປັນໂຕພິມນ້ອຍ." #: ../source/specifications/well-known-project-urls.rst:68 -msgid "The following table shows examples of labels before (raw) and after normalization:" -msgstr "" -"ຕາຕະລາງຕໍ່ໄປນີ້ສະແດງຕົວຢ່າງຂອງປ້າຍຊື່ກ່ອນ (ຕົ້ນສະບັບ) ແລະ ຫຼັງການເຮັດໃຫ້ເປັນມາດຕະຖານ:" +msgid "" +"The following table shows examples of labels before (raw) and after " +"normalization:" +msgstr "ຕາຕະລາງຕໍ່ໄປນີ້ສະແດງຕົວຢ່າງຂອງປ້າຍຊື່ກ່ອນ (ຕົ້ນສະບັບ) ແລະ ຫຼັງການເຮັດໃຫ້ເປັນມາດຕະຖານ:" #: ../source/specifications/well-known-project-urls.rst:74 msgid "Raw" @@ -22822,12 +31086,16 @@ 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." +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:" +msgid "" +"The following table lists labels that are well-known for the purpose of " +"specializing the presentation of ``Project-URL`` metadata:" msgstr "" "ຕາຕະລາງຕໍ່ໄປນີ້ສະແດງລາຍຊື່ປ້າຍຊື່ທີ່ເປັນທີ່ຮູ້ຈັກ ເພື່ອຈຸດປະສົງໃນການກຳນົດການສະແດງຜົນຂໍ້ມູນເມຕາເດຕາຂອງ " "``Project-URL``:" @@ -22871,9 +31139,9 @@ 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``" +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)" @@ -22932,20 +31200,24 @@ 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." +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) ໃຫ້ຄືກັບປ້າຍຊື່ຫຼັກທີ່ເປັນ" -"ທີ່ຮູ້ຈັກ ຫຼື ອາດຈະກຳນົດຮູບແບບສະເພາະໃຫ້ພວກມັນກໍໄດ້." +"ຝ່າຍນຳໃຊ້ເມຕາເດຕາຂອງແພັກເກດອາດເລືອກສະແດງຜົນຊື່ເອີ້ນອື່ນ (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:" +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`` ໄປຫາເມຕາເດຕາຫຼັກ ຈົນເຖິງກ" -"ານສະແດງຜົນໃນໜ້າດັດຊະນີ:" +"ຕໍ່ໄປນີ້ແມ່ນການສະແດງຂັ້ນຕອນການສົ່ງຂໍ້ມູນ URL ຈາກ ``pyproject.toml`` ໄປຫາເມຕາເດຕາຫຼັກ " +"ຈົນເຖິງການສະແດງຜົນໃນໜ້າດັດຊະນີ:" #: ../source/specifications/well-known-project-urls.rst:142 msgid "Example project URLs in standard configuration" @@ -22960,44 +31232,58 @@ 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:" +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``" +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``" +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``)" +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``)" +"``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." +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." +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 ໃໝ່ `_ ໃນຄັງເກັບ " @@ -23008,117 +31294,168 @@ 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." +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`." +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`." +"**ບົດຮຽນ (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 `." +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 ເອງ." +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 ອື່ນໆ." +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:" +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 ແລະ ເວີຊັນທີ່ຕ້ອງການສາມາດໃຊ້ງານໄດ້ຈາກບັນທັດຄຳສັ່ງຂອ" -"ງທ່ານ. ທ່ານສາມາດກວດສອບໄດ້ໂດຍການລັນ:" +"ກ່ອນຈະໄປຂັ້ນຕອນຕໍ່ໄປ, ໃຫ້ແນ່ໃຈວ່າທ່ານມີ 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." +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." +"ທ່ານຄວນຈະເຫັນຂໍ້ຄວາມສະແດງຜົນປະມານວ່າ ``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." +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." +"*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:" +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, ທ່ານສາມາດລັ" -"ນຄຳສັ່ງລະບົບຄືກັບໃນບົດຮຽນນີ້ໄດ້ ໂດຍການຕື່ມເຄື່ອງໝາຍ ``!`` ໄວ້ທາງໜ້າ:" +"ຖ້າທ່ານກຳລັງໃຊ້ 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)." +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`` ອ້າງເຖິງ)." +"ແນະນຳໃຫ້ຂຽນ ``{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), ໃຫ້ກັບໄປເບິ່ງພາກສ່ວນການສ້າງສະພາບແວດລ້ອມສະເໝືອ" -"ນ, ຕັ້ງຄ່າມັນໃຫ້ຮຽບຮ້ອຍ, ແລ້ວຈຶ່ງເຮັດຕາມບົດຮຽນຕໍ່." +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:" +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`." +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`." +"`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:" +msgid "" +"If ``pip`` isn't already installed, then first try to bootstrap it from the " +"standard library:" msgstr "" "ຖ້າ ``pip`` ຍັງບໍ່ໄດ້ຕິດຕັ້ງ, ໃຫ້ລອງຕິດຕັ້ງເບື້ອງຕົ້ນ (bootstrap) ຈາກໄລບຣາຣີມາດຕະຖານ " "(standard library):" @@ -23128,30 +31465,41 @@ 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]_" +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." +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` ຖ້າຍັງບໍ່ມີ." +"ລັນ ``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." +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`` ເຊິ່ງອອກ" -"ແບບມາສຳລັບຊອບແວທີ່ຕິດຕັ້ງພາຍໃນເຄື່ອງເອງ." +"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." +msgid "" +"Make sure you have the latest features and fixes, and support for the latest " +"Python packaging specifications." msgstr "" "ເພື່ອໃຫ້ແນ່ໃຈວ່າທ່ານມີຟີເຈີໃໝ່ ແລະ ການແກ້ໄຂບັກລ່າສຸດ ລວມທັງການຮອງຮັບຂໍ້ກຳນົດຂອງ Python " "packaging ລ່າສຸດ." @@ -23161,75 +31509,111 @@ 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:" +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 ທົ່ວໄ" -"ປ:" +"ແຕ່ ນີ້ແມ່ນຄຳສັ່ງພື້ນຖານຂອງ :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." +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`` ຫຼັກ." +"ສິ່ງນີ້ຈະສ້າງສະພາບແວດລ້ອມສະເໝືອນໃໝ່ໃນໂຟນເດີຍ່ອຍ ``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`." +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." +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 (ຫຼື ບ່ອນເກັບ" -"ມາດຕະຖານຂອງລະບົບ), ມັນເປັນໄປໄດ້ສູງທີ່ທ່ານຈະເຜີອັບເກຣດແອັບຯທີ່ບໍ່ຄວນອັບເກຣດໂດຍບໍ່ຕັ້ງໃຈ." +"ລອງນຶກພາບວ່າທ່ານມີແອັບຯໜຶ່ງທີ່ຕ້ອງການ 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." +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." +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." +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:" +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`)." +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` ໃຫ້ອີກດ້ວຍ)." +":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)." +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`` ກໍເຮັດຕາ" -"ມນັ້ນ)." +":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:" @@ -23244,54 +31628,77 @@ 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." +msgid "" +"For more information, see the :doc:`venv ` docs or " +"the :doc:`virtualenv ` docs." msgstr "" -"ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ, ເບິ່ງເອກະສານຂອງ :doc:`venv ` ຫຼື " -":doc:`virtualenv `." +"ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ, ເບິ່ງເອກະສານຂອງ :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)." +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 (ເຊິ່ງຈະຫາຍໄປຫຼັງຈາກລັນຈົບ ແລະ ບໍ່ມີຜົ" -"ນຫຍັງ)." +"ການໃຊ້ຄຳສັ່ງ :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:" +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 ແບບນີ້:" +"ສຳລັບທັງສອງກໍລະນີຂ້າງເທິງ, ຜູ້ໃຊ້ 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." +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`, ເຊິ່ງຈະຈັດການສະພາບແວດລ້ອມສະເໝືອນແຍກໃຫ້ແຕ່ລະໂຄງການໂດຍອັ" -"ດຕະໂນມັດ." +"ການຈັດການຫຼາຍສະພາບແວດລ້ອມສະເໝືອນດ້ວຍຕົນເອງອາດຈະຫຍຸ້ງຍາກ, " +"ດັ່ງນັ້ນໃນ :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 `." +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 `." +":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." +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 `. ຕົວຢ່າງມີດັ່ງລຸ່ມນີ້." +"(version specifier) ` (ຖ້າມີ). " +"ລາຍລະອຽດທັງໝົດສາມາດເບິ່ງໄດ້ທີ່ :ref:`Version specifier specification `. ຕົວຢ່າງມີດັ່ງລຸ່ມນີ້." #: ../source/tutorials/installing-packages.rst:310 msgid "To install the latest version of \"SomeProject\":" @@ -23303,17 +31710,20 @@ msgstr "ເພື່ອຕິດຕັ້ງເວີຊັນທີ່ລະບ #: ../source/tutorials/installing-packages.rst:338 msgid "To install greater than or equal to one version and less than another:" -msgstr "" -"ເພື່ອຕິດຕັ້ງເວີຊັນທີ່ຫຼາຍກວ່າ ຫຼື ເທົ່າກັບ ເວີຊັນໜຶ່ງ ແລະ ໜ້ອຍກວ່າ ອີກເວີຊັນໜຶ່ງ:" +msgstr "ເພື່ອຕິດຕັ້ງເວີຊັນທີ່ຫຼາຍກວ່າ ຫຼື ເທົ່າກັບ ເວີຊັນໜຶ່ງ ແລະ ໜ້ອຍກວ່າ ອີກເວີຊັນໜຶ່ງ:" #: ../source/tutorials/installing-packages.rst:353 -msgid "To install a version that's :ref:`compatible ` with a certain version: [4]_" +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\"." +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\" ນຳ." @@ -23322,22 +31732,34 @@ 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." +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 `." +":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." +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)." +":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." +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 ອີກ." @@ -23351,52 +31773,80 @@ 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:" +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." +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." +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`:" +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` ຂອງທ່າ" -"ນ:" +"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``. ທ່ານສາມາດຕັ້ງຄ່າ " +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." +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`` ເຂົ້າໃນ " +"``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 `." +msgid "" +"Install a list of requirements specified in a :ref:`Requirements File " +"`." msgstr "" "ຕິດຕັ້ງລາຍຊື່ແພັກເກດທີ່ລະບຸໄວ້ໃນ :ref:`ໄຟລ໌ Requirements `." @@ -23405,10 +31855,12 @@ 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 `." +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." +"ຕິດຕັ້ງໂຄງການຈາກ VCS ໃນຮູບແບບ \"ແກ້ໄຂໄດ້ (editable)\". ສຳລັບລາຍລະອຽດຂອງໄວຍາກອນ, " +"ເບິ່ງພາກສ່ວນ :ref:`VCS Support ` ຂອງ pip." #: ../source/tutorials/installing-packages.rst:505 msgid "Installing from other Indexes" @@ -23419,7 +31871,9 @@ 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 `" +msgid "" +"Search an additional index during install, in addition to :term:`PyPI " +"`" msgstr "" "ຄົ້ນຫາໃນດັດຊະນີເພີ່ມເຕີມໃນລະຫວ່າງການຕິດຕັ້ງ ນອກເໜືອຈາກ :term:`PyPI `" @@ -23429,11 +31883,14 @@ 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." +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 ໄດ້." +"`, " +"ເຊິ່ງເປັນການຕິດຕັ້ງທີ່ເຮັດໃຫ້ເບິ່ງຄືວ່າແພັກເກດຖືກຕິດຕັ້ງແລ້ວ ແຕ່ຍັງສາມາດແກ້ໄຂໂຄ້ດຈາກ src tree ໄດ້." #: ../source/tutorials/installing-packages.rst:557 msgid "You can also install normally from src" @@ -23448,7 +31905,9 @@ 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 `)" +msgid "" +"Install from a local directory containing archives (and don't " +"check :term:`PyPI `)" msgstr "" "ຕິດຕັ້ງຈາກໄດເຣັກທໍຣີພາຍໃນເຄື່ອງທີ່ມີໄຟລ໌ບີບອັດ (ໂດຍບໍ່ຕ້ອງກວດສອບ :term:`PyPI `)" @@ -23458,18 +31917,24 @@ 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." +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 ໃຊ້ດັດຊະນີນັ້ນ." +"ເພື່ອຕິດຕັ້ງຈາກແຫຼ່ງຂໍ້ມູນອື່ນໆ (ຕົວຢ່າງ: 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." +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 ຈະຫາສະເພາະເວີຊັນປົກກະຕິເທົ່ານັ້ນ." @@ -23479,86 +31944,125 @@ 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:" +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 ໄດ້:" +"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." +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." +"\"ຢ່າງປອດໄພ (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`." +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`." +"ເລີ່ມຕັ້ງແຕ່ 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" +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" +"ໂຕລະບຸເວີຊັນທີ່ເຂົ້າກັນໄດ້ (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." +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." +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." +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 ຖືກນຳໃຊ້ໃນຫຼາຍຈຸດປະສົງ, ແລະ ວິທີການຈັດການສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ ອາດຈະປ່ຽນແປງໄປຕ" -"າມວິທີທີ່ທ່ານເລືອກໃນການເຜີຍແຜ່ຊອບແວ. ຄຳແນະນຳຢູ່ບ່ອນນີ້ແມ່ນເໝາະສົມທີ່ສຸດ ສຳລັບການພັດທະນາ ແລະ ຕິດຕັ້ງບໍ" -"ລິການເຄືອຂ່າຍ (ລວມທັງເວັບແອັບພລິເຄຊັນ), ແຕ່ກໍຍັງເໝາະສຳລັບການຈັດການ ສະພາບແວດລ້ອມການພັດທະນາ ແລ" -"ະ ການທົດສອບສຳລັບໂຄງການທຸກປະເພດ." +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 "" -"ສຳລັບທາງເລືອກອື່ນ, ເບິ່ງ `ເຄື່ອງມືອື່ນໆ ສຳລັບການຈັດການສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ຂອງແອັບພລິເຄຊັນ`_." +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." +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 ແມ່ນໄດ້ຮັບການແນະນຳສຳລັບໂຄງການທີ່ເຮັດວຽກຮ່ວມກັນ ເພາະ" -"ມັນເປັນເຄື່ອງມືລະດັບສູງທີ່ຊ່ວຍໃຫ້ການຈັດການງ່າຍຂຶ້ນ." +":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." +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 " @@ -23570,27 +32074,38 @@ 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:" +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 ຈັດການສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ແຍກຕາມແຕ່ລະໂຄງການ. ເພື່ອຕິດຕັ້ງແພັກເກດ, ໃຫ້ເຂົ້າໄປໃນໄດເຣັກທໍຣີຂອງ" -"ໂຄງການ (ຫຼື ໄດເຣັກທໍຣີຫວ່າງເປົ່າສຳລັບບົດຮຽນນີ້) ແລ້ວລັນ:" +"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):" +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` ໃຊ້ເພື່ອຕິດຕາມວ່າໂຄງການຂອງທ່ານຕ້ອງການແພັກເກດໃດແດ່ ໃນກໍລະນີທີ່ຕ້ອງຕິດຕັ້ງໃໝ່ ເ" -"ຊັ່ນ ເມື່ອທ່ານແບ່ງປັນໂຄງການໃຫ້ຄົນອື່ນ. ທ່ານຄວນຈະເຫັນຂໍ້ຄວາມສະແດງຜົນປະມານນີ້:" +"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:" +msgid "" +"Now that Requests is installed you can create a simple :file:`main.py` file " +"to use it:" msgstr "" -"ເມື່ອຕິດຕັ້ງ Requests ຮຽບຮ້ອຍແລ້ວ, ທ່ານສາມາດສ້າງໄຟລ໌ :file:`main.py` ແບບງ່າຍໆ ເພື່ອລອງໃຊ້ງາ" -"ນ:" +"ເມື່ອຕິດຕັ້ງ Requests ຮຽບຮ້ອຍແລ້ວ, ທ່ານສາມາດສ້າງໄຟລ໌ :file:`main.py` ແບບງ່າຍໆ " +"ເພື່ອລອງໃຊ້ງານ:" #: ../source/tutorials/managing-dependencies.rst:122 msgid "Then you can run this script using ``pipenv run``:" @@ -23601,11 +32116,14 @@ 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``." +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``." +"ການໃຊ້ ``pipenv run`` ຊ່ວຍໃຫ້ໝັ້ນໃຈວ່າແພັກເກດທີ່ຕິດຕັ້ງແລ້ວພ້ອມໃຊ້ງານສຳລັບສະຄຣິບຂອງທ່ານ. " +"ນອກຈາກນັ້ນ, ທ່ານຍັງສາມາດເປີດ shell ໃໝ່ທີ່ທຸກຄຳສັ່ງສາມາດເຂົ້າເຖິງແພັກເກດທີ່ຕິດຕັ້ງແລ້ວໄດ້ດ້ວຍ " +"``pipenv shell``." #: ../source/tutorials/managing-dependencies.rst:140 #: ../source/tutorials/packaging-projects.rst:484 @@ -23613,141 +32131,205 @@ 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! ✨ 🍰 ✨" +msgid "" +"Congratulations, you now know how to effectively manage dependencies and " +"development environments on a collaborative Python project! ✨ 🍰 ✨" msgstr "" -"ຂໍສະແດງຄວາມຍິນດີ, ຕອນນີ້ທ່ານຮູ້ວິທີການຈັດການສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ ແລະ ສະພາບແວດລ້ອມການພັດທະນາ ໃນໂຄງ" -"ການ Python ທີ່ເຮັດວຽກຮ່ວມກັນຢ່າງມີປະສິດທິພາບແລ້ວ! ✨ 🍰 ✨" +"ຂໍສະແດງຄວາມຍິນດີ, ຕອນນີ້ທ່ານຮູ້ວິທີການຈັດການສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ ແລະ ສະພາບແວດລ້ອມການພັດທະນາ " +"ໃນໂຄງການ 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 `." +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:`ບົດຮຽນການເຮັດແ" -"ພັກເກດ ແລະ ການແຈກຢາຍແພັກເກດ `." +"ຖ້າທ່ານສົນໃຈໃນການສ້າງ ແລະ ແຈກຢາຍແພັກເກດ 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``)." +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 ``." +"ໝາຍເຫດ: ເມື່ອແອັບພລິເຄຊັນຂອງທ່ານມີການກຳນົດຊອດໂຄ້ດແພັກເກດ 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:" +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." +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)." +"`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." +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) ແຕ່ກໍສາມາດໃຊ້ທົ່ວໄປໄດ້." +"`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`." +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`." +"`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." +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 ຂອງທຸກ" -"ສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ ຈາກລາຍຊື່ແພັກເກດທີ່ໃຊ້ໃນໂຄງການໂດຍກົງ ແລະ ເພື່ອໃຫ້ແນ່ໃຈວ່າຈະມີການຕິດຕັ້ງສະເພາະສິ່ງ" -"ທີ່ຈຳເປັນເຫຼົ່ານັ້ນເທົ່ານັ້ນ." +"`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." +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." +msgid "" +"`uv `__ for a single tool that covers the entire " +"project management workflow, including dependency management, packaging, and " +"publishing." msgstr "" -"`uv `__ ແມ່ນເຄື່ອງມືດຽວທີ່ກວມເອົາທຸກຂັ້ນຕອນການຈັດການໂຄງການ ລ" -"ວມທັງການຈັດການສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້, ການເຮັດແພັກເກດ ແລະ ການເຜີຍແຜ່." +"`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 " +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!" +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. ພວກເຮົາຈະພະຍາຍາມຊ່ວຍທ່ານຢ່າ" -"ງເຕັມທີ່!" +"ຖ້າທ່ານພົບຄວາມຫຍຸ້ງຍາກໃນການລັນຄຳສັ່ງໃນບົດຮຽນນີ້, ກະລຸນາກັອບປີ້ຄຳສັ່ງ ແລະ ຂໍ້ຄວາມສະແດງຜົນ ແລ້ວ " +"`ສ້າງ 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 ເວີຊັນໃໝ່, ດັ່ງນັ້ນໃຫ້ເລີ່ມດ້ວຍການກວດສອບວ່າທ່ານໄດ້ຕິດຕັ້ງເວີຊັນລ່າສຸດແລ້ວ:" +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``; ສິ່ງນີ້ຈະຊ່ວຍໃຫ້ຊື່ແພັກເກດຂອງທ່ານບໍ່ຊໍ້າກັ" -"ບຂອງຄົນອື່ນ. ແນະນຳໃຫ້ເຮັດຕາມບົດຮຽນນີ້ໂດຍໃຊ້ໂຄງການນີ້ກ່ອນ ແລ້ວຈຶ່ງຄ່ອຍລອງເຮັດແພັກເກດໂຄງການຂອງທ່ານ" -"ເອງ." +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." +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 ຄວນຈະມີຊື່ກົງກັບຊື່ໂຄງການ. ສິ່ງນີ້ຊ່ວຍໃຫ້ການຕັ້ງຄ່າງ່າຍຂຶ້ນ ແລະ ເຮັດໃຫ້ຜູ້ໃຊ້ທີ່ຕິດຕັ້" -"ງແພັກເກດເຂົ້າໃຈໄດ້ງ່າຍ." +"ໄດເຣັກທໍຣີທີ່ມີໄຟລ໌ 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]_" +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` ຈະຫວ່າງເ" -"ປົ່າກໍຕາມ." +"ການສ້າງໄຟລ໌ :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:" +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` ແມ່ນຕົວຢ່າງຂອງໂມດູນພາຍໃນແພັກເກດ ທີ່ອາດຈະມີສ່ວນຂອງການເຮັດວຽກ (ຟັງຊັນ, ຄ" -"ລາດ, ຄ່າຄົງທີ່ ແລະ ອື່ນໆ). ໃຫ້ເປີດໄຟລ໌ນັ້ນແລ້ວໃສ່ເນື້ອຫາຕໍ່ໄປນີ້:" +":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`_." +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 ກ່" -"ຽວກັບແພັກເກດ ແລະ ໂມດູນ`_." +"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." +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``." @@ -23756,10 +32338,12 @@ 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:" +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" @@ -23767,177 +32351,272 @@ msgstr "ການສ້າງໄດເຣັກທໍຣີສຳລັບທົ #: ../source/tutorials/packaging-projects.rst:105 msgid ":file:`tests/` is a placeholder for test files. Leave it empty for now." -msgstr "" -":file:`tests/` ແມ່ນບ່ອນສຳລັບເກັບໄຟລ໌ທົດສອບ. ໃຫ້ປະມັນຫວ່າງໄວ້ກ່ອນໃນຕອນນີ້." +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 " -"ແຕ່ລະໂຕມີລະດັບການເຮັດວຽກທີ່ຕ່າງກັນ, ທ່ານຄວນເລືອກໂຕທີ່ເໝາະກັບຄວາມຕ້ອງການຂອງທ່ານ." +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:`ເມຕາເດຕາ ` 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." +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) ພ້ອມກັບຄຸນສົມບັດເພີ່ມເຕີມ ເຊັ່ນ: ການເລີ່ມຕົ້ນໂປຣເຈັກ ແລະ ການຈັດການເວີ" -"ຊັນ, ລວມໄປເຖິງການສ້າງ, ການອັບໂຫຼດ, ແລະ ການຕິດຕັ້ງແພັກເກັດ. ຄູ່ມືການສອນນີ້ໃຊ້ເຄື່ອງມືທີ່ມີຈຸດປະສົງດຽວ " -"ເຊິ່ງເຮັດວຽກຢ່າງເປັນເອກະລາດ." +"(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." +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 ໃດສຳລັບໂຄງການຂອງທ່ານ." +"ໄຟລ໌ :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 `." +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 ຈະລັນການ" -"ບິວໃນສະພາບແວດລ້ອມທີ່ແຍກຕ່າງຫາກ, ດັ່ງນັ້ນຖ້າຂາດສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ຢູ່ບ່ອນນີ້ ກໍອາດຈະເຮັດໃຫ້ເກີດຂໍ້ຜິດພາດໃນ" -"ເວລາບິວໄດ້." +"` ຄວນຈະຕິດຕັ້ງພວກມັນໃຫ້ອັດຕະໂນມັດໃນເວລາບິວ. ປົກກະຕິແລ້ວ 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." +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." +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 ຂອງທ່ານ ຫຼື ຖືກສ້າງຂຶ້ນໂດຍບັນທັດຄຳສັ່ງຂອງມັນ. ທ່ານ" -"ບໍ່ຈຳເປັນຕ້ອງປັບແຕ່ງຄ່າເຫຼົ່ານີ້ດ້ວຍຕົນເອງ." +"ຄ່າທັງສອງນີ້ຈະມີໃຫ້ໃນເອກະສານຂອງ 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." +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`` ຫຼື ໃນໄຟລ໌ພິເ" -"ສດທີ່ກຳນົດໂດຍເຄື່ອງມືນັ້ນໆ." +"ການຕັ້ງຄ່າເພີ່ມເຕີມຂອງເຄື່ອງມືບິວ ຈະຢູ່ໃນພາກສ່ວນ ``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." +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`` ໃຫ້ມີຊື່ຜູ້ໃຊ້ຂອງທ່ານນຳ ເພື່" -"ອໃຫ້ແນ່ໃຈວ່າຊື່ແພັກເກດຈະບໍ່ຊໍ້າກັບຂອງຄົນອື່ນ." +"ເປີດໄຟລ໌ :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." +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." +"``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.)" +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)." +"``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." +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`` (ຜູ້ເບິ່ງແຍງ) ໃນຮູບແບບດຽວກັນໄດ້ອີກດ້ວຍ." +"``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 `." +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`." +"``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." +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` ຈະກວດສອບເວີຊັນທີ່ເຂົ້າກັນໄດ້ກ່ອນທຳການຕິດຕັ້ງ." +"``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/." +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 ແລະ ໃຊ້ໄດ້ກັບທຸກລະບົບປະຕິບັດການ." +"``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." +msgid "" +"``license`` is the :term:`SPDX license expression ` of " +"your :term:`Distribution Archive` files." msgstr "" -"``license`` ແມ່ນ :term:`SPDX license expression ` ຂອງ ໄຟລ໌ " -":term:`ແຟ້ມຈັດເກັບການແຈກຢາຍ (Distribution Archive)` ຂອງທ່ານ." +"``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." +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` ຕັ້ງຢູ່." +"``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." +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 ໄດ້. ໂດຍທົ່ວໄປແລ້ວຈະເປັນລິ້ງໄປຫາຊອດໂ" -"ຄ້ດ, ເອກະສານອ້າງອີງ, ລະບົບຕິດຕາມບັນຫາ ແລະ ອື່ນໆ." +"``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." +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]``." +"ເບິ່ງ :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` ແລ້ວໃສ່ເນື້ອຫາຕໍ່ໄປນີ້. ທ່ານສາມາດປັບແຕ່ງໄດ້ຕາມໃຈ." +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:" +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`, ໄຟລ໌ດັ່ງກ່າວຈະຖືກລວມເຂົ້າໃນແພັກເກດໂດຍອັດຕະໂນມັດ." +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." +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)` ໂດຍອັດຕະໂນມັດ." @@ -23946,36 +32625,51 @@ 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`." +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`." +"ຂັ້ນຕອນຕໍ່ໄປແມ່ນການສ້າງ :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`." +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` ຕັ້ງຢູ່:" +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:" +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`:" +"ຄຳສັ່ງນີ້ຈະສະແດງຂໍ້ຄວາມຈຳນວນຫຼາຍ ແລະ ເມື່ອສຳເລັດແລ້ວ ມັນຈະສ້າງໄຟລ໌ 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 ກ່ອນ." +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" @@ -23983,43 +32677,61 @@ 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 ແລ້ວ!" +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`." +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 ເຊິ່ງເປັນບ່ອນທົດສອບແຍກຕ່າງຫາກ. ມັນດີຫຼາຍສຳລັບການທົ" -"ດລອງ ເພາະພວກເຮົາບໍ່ຕ້ອງການອັບໂຫຼດຂຶ້ນດັດຊະນີແທ້." +"ສິ່ງທຳອິດທີ່ຕ້ອງເຮັດແມ່ນລົງທະບຽນບັນຊີໃນ 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.**" +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:" +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 ກ່ອ" -"ນ:" +"ເມື່ອລົງທະບຽນແລ້ວ, ທ່ານສາມາດໃຊ້ :ref:`twine` ເພື່ອອັບໂຫຼດແພັກເກດໄດ້. ທ່ານຕ້ອງຕິດຕັ້ງ Twine " +"ກ່ອນ:" #: ../source/tutorials/packaging-projects.rst:389 -msgid "Once installed, run Twine to upload all of the archives under :file:`dist`:" +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." +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-``). ໝາຍເຫດ: ຂໍ້ຄ" -"ວາມທີ່ປ້ອນຈະຖືກເຊື່ອງໄວ້, ດັ່ງນັ້ນໃຫ້ກວດສອບວ່າວາງຂໍ້ມູນຖືກຕ້ອງ." +"ລະບົບຈະຖາມຫາ 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``." +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 @@ -24027,107 +32739,158 @@ 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:" +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:" +"ທ່ານສາມາດໃຊ້ :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:" +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." +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." +"ຕົວຢ່າງນີ້ໃຊ້ 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:" +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:" +"ທ່ານສາມາດທົດສອບວ່າແພັກເກດຖືກຕິດຕັ້ງຖືກຕ້ອງຫຼືບໍ່ ໂດຍການ 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!** ✨ 🍰 ✨" +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." +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 ເຊິ່ງບໍ່ແມ່ນບ່ອນເກັບຂໍ້ມູນຖາວອນ. ລະບົບທົດສອບຈະມີການລຶ" -"ບແພັກເກດ ແລະ ບັນຊີເປັນໄລຍະ." +"ຄວນຈື່ໄວ້ວ່າບົດຮຽນນີ້ແມ່ນການອັບໂຫຼດຂຶ້ນ 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:" +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, ທ່ານສາມາດເຮັດຕາມຂັ້ນຕອນດຽວກັນນີ້ ແຕ່ມີຂໍ້ແຕກຕ່າງທີ່ສຳຄັນດັ່ງ" -"ນີ້:" +"ເມື່ອທ່ານພ້ອມທີ່ຈະອັບໂຫຼດແພັກເກດແທ້ຂຶ້ນ 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." +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." +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 - ໝາຍເຫດ: ມັນເປັນຄົນລະເຊີເວີກັນ ແລະ ຂໍ້ມູນການເຂົ້າລະບົບກໍບໍ່ໄດ້" -"ໃຊ້ຮ່ວມກັນ." +"ລົງທະບຽນບັນຊີໃນ 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." +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]``." +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:" +msgid "" +"At this point if you want to read more on packaging Python libraries here " +"are some things you can do:" msgstr "" -"ມາຮອດຈຸດນີ້, ຖ້າທ່ານຕ້ອງການອ່ານເພີ່ມເຕີມກ່ຽວກັບການເຮັດແພັກເກັດຄັງສະໝຸດ Python, ນີ້ແມ່ນບາງສິ່ງທີ່ທ່ານສາ" -"ມາດເຮັດໄດ້:" +"ມາຮອດຈຸດນີ້, ຖ້າທ່ານຕ້ອງການອ່ານເພີ່ມເຕີມກ່ຽວກັບການເຮັດແພັກເກັດຄັງສະໝຸດ Python, " +"ນີ້ແມ່ນບາງສິ່ງທີ່ທ່ານສາມາດເຮັດໄດ້:" #: ../source/tutorials/packaging-projects.rst:512 -msgid "Read about advanced configuration for your chosen build backend: `Hatchling `_, :doc:`setuptools `, :doc:`Flit `, `PDM `_." +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." +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`." +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`." +"ລອງພິຈາລະນາໃຊ້ເຄື່ອງມືເຮັດແພັກເກດທີ່ມີບັນທັດຄຳສັ່ງດຽວສຳລັບການຈັດການໂຄງການ " +"ເຊັ່ນ :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`` ຈະດີກວ່າ." +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 f800da947..cc57fd399 100644 --- a/locales/lzh/LC_MESSAGES/messages.po +++ b/locales/lzh/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-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2026-08-14 01:51+0000\n" "Last-Translator: Haozhe Xu \n" "Language-Team: Literary Chinese `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/mk/LC_MESSAGES/messages.po b/locales/mk/LC_MESSAGES/messages.po index bcaa89a37..d6399c8a4 100644 --- a/locales/mk/LC_MESSAGES/messages.po +++ b/locales/mk/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2023-10-21 04:04+0000\n" "Last-Translator: \"Kristijan \\\"Fremen\\\" Velkovski\" \n" "Language-Team: Macedonian `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/mr/LC_MESSAGES/messages.po b/locales/mr/LC_MESSAGES/messages.po index a44a7290e..29f2c961c 100644 --- a/locales/mr/LC_MESSAGES/messages.po +++ b/locales/mr/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2025-01-25 14:18+0000\n" "Last-Translator: Prachi Joshi \n" "Language-Team: Marathi `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/mrh/LC_MESSAGES/messages.po b/locales/mrh/LC_MESSAGES/messages.po index 9d6000a48..864961596 100644 --- a/locales/mrh/LC_MESSAGES/messages.po +++ b/locales/mrh/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2026-05-05 16:17+0000\n" "Last-Translator: Laitei \n" "Language-Team: Mara `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/my/LC_MESSAGES/messages.po b/locales/my/LC_MESSAGES/messages.po index 3ccca5959..95b066099 100644 --- a/locales/my/LC_MESSAGES/messages.po +++ b/locales/my/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -4486,8 +4486,8 @@ msgstr "" #: ../source/guides/creating-and-discovering-plugins.rst:167 msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/pl/LC_MESSAGES/messages.po b/locales/pl/LC_MESSAGES/messages.po index 089c05baf..a3d6d656b 100644 --- a/locales/pl/LC_MESSAGES/messages.po +++ b/locales/pl/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-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2026-08-23 23:51+0000\n" "Last-Translator: Maciej Olko \n" "Language-Team: Polish `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/pt/LC_MESSAGES/messages.po b/locales/pt/LC_MESSAGES/messages.po index 485f83af7..3f966e585 100644 --- a/locales/pt/LC_MESSAGES/messages.po +++ b/locales/pt/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2026-06-14 08:02+0000\n" "Last-Translator: ssantos \n" "Language-Team: Portuguese ` ." #: ../source/guides/creating-and-discovering-plugins.rst:167 +#, fuzzy +#| msgid "" +#| "Since this specification is part of the :doc:`standard library " +#| "`, most packaging tools other than " +#| "setuptools provide support for defining entry points." msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" "Visto que esta especificação é parte da :doc:`biblioteca padrão " "`, a maioria das ferramentas de " diff --git a/locales/pt_BR/LC_MESSAGES/messages.po b/locales/pt_BR/LC_MESSAGES/messages.po index f7757faf9..8a4e24034 100644 --- a/locales/pt_BR/LC_MESSAGES/messages.po +++ b/locales/pt_BR/LC_MESSAGES/messages.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2025-08-07 00:01+0000\n" "Last-Translator: Rafael Fontenelle \n" "Language-Team: Portuguese (Brazil) ` ." #: ../source/guides/creating-and-discovering-plugins.rst:167 +#, fuzzy +#| msgid "" +#| "Since this specification is part of the :doc:`standard library " +#| "`, most packaging tools other than " +#| "setuptools provide support for defining entry points." msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" "Visto que esta especificação é parte da :doc:`biblioteca padrão " "`, a maioria das ferramentas de " diff --git a/locales/ro/LC_MESSAGES/messages.po b/locales/ro/LC_MESSAGES/messages.po index dca6d6a1c..52c80a55d 100644 --- a/locales/ro/LC_MESSAGES/messages.po +++ b/locales/ro/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2021-08-20 01:32+0000\n" "Last-Translator: GUILHERME FERNANDES NETO \n" "Language-Team: Romanian `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/ru/LC_MESSAGES/messages.po b/locales/ru/LC_MESSAGES/messages.po index 92a9021e9..7c9b5cf50 100644 --- a/locales/ru/LC_MESSAGES/messages.po +++ b/locales/ru/LC_MESSAGES/messages.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2025-06-07 08:01+0000\n" "Last-Translator: da070116 \n" "Language-Team: Russian ` ." #: ../source/guides/creating-and-discovering-plugins.rst:167 +#, fuzzy +#| msgid "" +#| "Since this specification is part of the :doc:`standard library " +#| "`, most packaging tools other than " +#| "setuptools provide support for defining entry points." msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" "Поскольку эта спецификация является частью :doc:`стандартной библиотеки " "`, большинство инструментов упаковки, " diff --git a/locales/sai/LC_MESSAGES/messages.po b/locales/sai/LC_MESSAGES/messages.po index 82e440e7d..b41929623 100644 --- a/locales/sai/LC_MESSAGES/messages.po +++ b/locales/sai/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -4485,8 +4485,8 @@ msgstr "" #: ../source/guides/creating-and-discovering-plugins.rst:167 msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/si/LC_MESSAGES/messages.po b/locales/si/LC_MESSAGES/messages.po index c18a1bcb3..af3e63865 100644 --- a/locales/si/LC_MESSAGES/messages.po +++ b/locales/si/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2022-06-11 08:19+0000\n" "Last-Translator: Kushan Gunasekera \n" "Language-Team: Sinhala `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/sk/LC_MESSAGES/messages.po b/locales/sk/LC_MESSAGES/messages.po index 136566d78..b02d19030 100644 --- a/locales/sk/LC_MESSAGES/messages.po +++ b/locales/sk/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2024-11-02 00:54+0000\n" "Last-Translator: Milan Šalka \n" "Language-Team: Slovak `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/ta/LC_MESSAGES/messages.po b/locales/ta/LC_MESSAGES/messages.po index 462a25165..227db005b 100644 --- a/locales/ta/LC_MESSAGES/messages.po +++ b/locales/ta/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2025-07-19 06:36+0000\n" "Last-Translator: தமிழ்நேரம் \n" "Language-Team: Tamil `." #: ../source/guides/creating-and-discovering-plugins.rst:167 +#, fuzzy +#| msgid "" +#| "Since this specification is part of the :doc:`standard library " +#| "`, most packaging tools other than " +#| "setuptools provide support for defining entry points." msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" "இந்த விவரக்குறிப்பு: டாக்: `நிலையான நூலகம் <பைதான்: நூலகம்/இறக்குமதி " "லிப்.மெட்டாடேட்டா>` `, செட்டுப்டூல்கள் தவிர பிற பெரும்பாலான பேக்கேசிங் கருவிகள் நுழைவு " diff --git a/locales/th/LC_MESSAGES/messages.po b/locales/th/LC_MESSAGES/messages.po index 78ef3650a..8c5bc5501 100644 --- a/locales/th/LC_MESSAGES/messages.po +++ b/locales/th/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -4485,8 +4485,8 @@ msgstr "" #: ../source/guides/creating-and-discovering-plugins.rst:167 msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/tr/LC_MESSAGES/messages.po b/locales/tr/LC_MESSAGES/messages.po index d8eec28b6..7a169805d 100644 --- a/locales/tr/LC_MESSAGES/messages.po +++ b/locales/tr/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2025-09-29 04:02+0000\n" "Last-Translator: Rüzgar Hünerel \n" "Language-Team: Turkish `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/uk/LC_MESSAGES/messages.po b/locales/uk/LC_MESSAGES/messages.po index 88f50ed66..80512a6ed 100644 --- a/locales/uk/LC_MESSAGES/messages.po +++ b/locales/uk/LC_MESSAGES/messages.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2024-03-01 20:00+0000\n" "Last-Translator: Sviatoslav Sydorenko \n" "Language-Team: Ukrainian `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/vi/LC_MESSAGES/messages.po b/locales/vi/LC_MESSAGES/messages.po index e48ac5102..d4991325b 100644 --- a/locales/vi/LC_MESSAGES/messages.po +++ b/locales/vi/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2025-09-23 05:02+0000\n" "Last-Translator: Lenny Tran \n" "Language-Team: Vietnamese `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 diff --git a/locales/zh_Hans/LC_MESSAGES/messages.po b/locales/zh_Hans/LC_MESSAGES/messages.po index c059f96c0..10972c148 100644 --- a/locales/zh_Hans/LC_MESSAGES/messages.po +++ b/locales/zh_Hans/LC_MESSAGES/messages.po @@ -46,7 +46,7 @@ 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" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2026-08-25 05:51+0000\n" "Last-Translator: JaxonMa \n" "Language-Team: Chinese (Simplified Han script) ` 的章节。" #: ../source/guides/creating-and-discovering-plugins.rst:167 +#, fuzzy +#| msgid "" +#| "Since this specification is part of the :doc:`standard library " +#| "`, most packaging tools other than " +#| "setuptools provide support for defining entry points." msgid "" "Since this specification is part of the :doc:`standard library " -"`, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" "由于此规范是 :doc:`standard library ` 的一" "部分,因此除了 setuptools 之外,大多数打包工具都提供了定义 entry points 的支" diff --git a/locales/zh_Hant/LC_MESSAGES/messages.po b/locales/zh_Hant/LC_MESSAGES/messages.po index 057e2c199..8d074ce22 100644 --- a/locales/zh_Hant/LC_MESSAGES/messages.po +++ b/locales/zh_Hant/LC_MESSAGES/messages.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 11:32+0000\n" +"POT-Creation-Date: 2026-09-01 09:16+0000\n" "PO-Revision-Date: 2025-02-24 15:37+0000\n" "Last-Translator: toto6038 \n" "Language-Team: Chinese (Traditional Han script) `, most packaging tools other than " -"setuptools provide support for defining entry points." +"`, packaging tools including setuptools " +"provide support for defining entry points." msgstr "" #: ../source/guides/creating-command-line-tools.rst:5 From d73abd3e9a4384d54b0008e8a3776a0940c632d1 Mon Sep 17 00:00:00 2001 From: moto kawasaki Date: Mon, 28 Sep 2026 06:52:00 +0200 Subject: [PATCH 11/24] Translated using Weblate (Japanese) Currently translated at 100.0% (4541 of 4541 strings) Co-authored-by: moto kawasaki Translate-URL: https://hosted.weblate.org/projects/pypa/packaging-python-org/ja/ Translation: pypa/packaging.python.org --- locales/ja/LC_MESSAGES/messages.po | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/locales/ja/LC_MESSAGES/messages.po b/locales/ja/LC_MESSAGES/messages.po index 0421fdad5..547edfa45 100644 --- a/locales/ja/LC_MESSAGES/messages.po +++ b/locales/ja/LC_MESSAGES/messages.po @@ -13,7 +13,7 @@ msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-09-01 09:16+0000\n" -"PO-Revision-Date: 2026-08-23 23:51+0000\n" +"PO-Revision-Date: 2026-09-03 00:51+0000\n" "Last-Translator: moto kawasaki \n" "Language-Team: Japanese \n" @@ -6057,19 +6057,14 @@ msgstr "" "entry_point>` の全部のセクションに目を通すことをお勧めします。" #: ../source/guides/creating-and-discovering-plugins.rst:167 -#, fuzzy -#| msgid "" -#| "Since this specification is part of the :doc:`standard library " -#| "`, most packaging tools other than " -#| "setuptools provide support for defining entry points." msgid "" "Since this specification is part of the :doc:`standard library " "`, packaging tools including setuptools " "provide support for defining entry points." msgstr "" "この仕様は :doc:`標準ライブラリ ` の一部な" -"ので、setuptools以外のほとんどのパッケージングツールでもエントリポイントを定" -"義できる機能を提供しています。" +"ので、setuptools を含むパッケージングツールはエントリポイントを定義できる機能" +"を提供しています。" #: ../source/guides/creating-command-line-tools.rst:5 msgid "Creating and packaging command-line tools" From 76199fc33225a8c65bd3ce38d761e8a667f69450 Mon Sep 17 00:00:00 2001 From: Bone NI Date: Mon, 28 Sep 2026 06:52:01 +0200 Subject: [PATCH 12/24] Translated using Weblate (Lao) Currently translated at 100.0% (4541 of 4541 strings) Co-authored-by: Bone NI Translate-URL: https://hosted.weblate.org/projects/pypa/packaging-python-org/lo/ Translation: pypa/packaging.python.org --- locales/lo/LC_MESSAGES/messages.po | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/locales/lo/LC_MESSAGES/messages.po b/locales/lo/LC_MESSAGES/messages.po index 6b37b47d8..709d70fd6 100644 --- a/locales/lo/LC_MESSAGES/messages.po +++ b/locales/lo/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-09-01 09:16+0000\n" -"PO-Revision-Date: 2026-08-29 23:24+0000\n" +"PO-Revision-Date: 2026-09-03 07:20+0000\n" "Last-Translator: Bone NI \n" "Language-Team: Lao \n" @@ -5371,19 +5371,14 @@ msgstr "" "ແນະນຳໃຫ້ອ່ານທັງໝົດໃນພາກ :doc:`entry points `." #: ../source/guides/creating-and-discovering-plugins.rst:167 -#, fuzzy -#| msgid "" -#| "Since this specification is part of the :doc:`standard library " -#| "`, most packaging tools other than " -#| "setuptools provide support for defining entry points." msgid "" "Since this specification is part of the :doc:`standard library " "`, packaging tools including setuptools " "provide support for defining entry points." msgstr "" -"ເນື່ອງຈາກຂໍ້ກຳນົດນີ້ເປັນສ່ວນໜຶ່ງຂອງ :doc:`ໄລບຣາຣີມາດຕະຖານ `, ເຄື່ອງມືການຈັດເຮັດແພັກເກດສ່ວນໃຫຍ່ນອກຈາກ setuptools " -"ກໍໃຫ້ການຮອງຮັບການກຳນົດ entry points ຄືກັນ." +"ເນື່ອງຈາກຂໍ້ກຳນົດສະເພາະນີ້ເປັນສ່ວນໜຶ່ງຂອງ :doc:`ຫ້ອງສະໝຸດມາດຕະຖານ `, ເຄື່ອງມືການຈັດການແພັກເກດ ລວມທັງ setuptools ໃຫ້ການສະໜັບສະໜູນສຳລັບກ" +"ານກຳນົດຈຸດເຂົ້າ." #: ../source/guides/creating-command-line-tools.rst:5 msgid "Creating and packaging command-line tools" From c40a992fa733b2b42645edb65ca75468c00da721 Mon Sep 17 00:00:00 2001 From: Hosted Weblate user 54392 Date: Mon, 28 Sep 2026 06:52:03 +0200 Subject: [PATCH 13/24] Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 27.5% (1249 of 4541 strings) Co-authored-by: Hosted Weblate user 54392 Translate-URL: https://hosted.weblate.org/projects/pypa/packaging-python-org/zh_Hans/ Translation: pypa/packaging.python.org --- locales/zh_Hans/LC_MESSAGES/messages.po | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/locales/zh_Hans/LC_MESSAGES/messages.po b/locales/zh_Hans/LC_MESSAGES/messages.po index 10972c148..992745490 100644 --- a/locales/zh_Hans/LC_MESSAGES/messages.po +++ b/locales/zh_Hans/LC_MESSAGES/messages.po @@ -42,13 +42,15 @@ # B10112 , 2026. # Hosted Weblate user 162400 , 2026. # JaxonMa , 2026. +# Hosted Weblate user 54392 , 2026. msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-09-01 09:16+0000\n" -"PO-Revision-Date: 2026-08-25 05:51+0000\n" -"Last-Translator: JaxonMa \n" +"PO-Revision-Date: 2026-09-05 01:51+0000\n" +"Last-Translator: Hosted Weblate user 54392 " +"\n" "Language-Team: Chinese (Simplified Han script) \n" "Language: zh_Hans\n" @@ -56,7 +58,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.9.dev0\n" +"X-Generator: Weblate 2026.9.1.dev0\n" #: ../source/contribute.rst:5 msgid "Contribute to this guide" @@ -4678,7 +4680,7 @@ msgid "" "Enable the `BigQuery API `__." msgstr "" -"启用`BigQuery API `__。" #: ../source/guides/analyzing-pypi-package-downloads.rst:62 @@ -5275,19 +5277,13 @@ msgstr "" "阅读整个关于 :doc:`entry points ` 的章节。" #: ../source/guides/creating-and-discovering-plugins.rst:167 -#, fuzzy -#| msgid "" -#| "Since this specification is part of the :doc:`standard library " -#| "`, most packaging tools other than " -#| "setuptools provide support for defining entry points." msgid "" "Since this specification is part of the :doc:`standard library " "`, packaging tools including setuptools " "provide support for defining entry points." msgstr "" "由于此规范是 :doc:`standard library ` 的一" -"部分,因此除了 setuptools 之外,大多数打包工具都提供了定义 entry points 的支" -"持。" +"部分,因此包括 setuptools 在内的打包工具都提供了定义 entry points 的支持。" #: ../source/guides/creating-command-line-tools.rst:5 msgid "Creating and packaging command-line tools" From c632a3b727c2ace6052b540aade870c14892d9bc Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 28 Sep 2026 06:52:12 +0200 Subject: [PATCH 14/24] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/pypa/packaging-python-org/ Translation: pypa/packaging.python.org --- locales/ar/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/ars/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/cs/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/da/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/de/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/eo/LC_MESSAGES/messages.po | 38 +++++++++++++++------- locales/es/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/fa/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/fil/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/fr/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/frc/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/gl/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/gmh/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/hi/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/id/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/ja/LC_MESSAGES/messages.po | 38 +++++++++++++++------- locales/kab/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/ko/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/lo/LC_MESSAGES/messages.po | 42 ++++++++++++++++--------- locales/lzh/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/mk/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/mr/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/mrh/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/my/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/pl/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/pt/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/pt_BR/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/ro/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/ru/LC_MESSAGES/messages.po | 38 +++++++++++++++------- locales/sai/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/si/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/sk/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/ta/LC_MESSAGES/messages.po | 38 +++++++++++++++------- locales/th/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/tr/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/uk/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/vi/LC_MESSAGES/messages.po | 36 ++++++++++++++------- locales/zh_Hans/LC_MESSAGES/messages.po | 38 +++++++++++++++------- locales/zh_Hant/LC_MESSAGES/messages.po | 36 ++++++++++++++------- 39 files changed, 950 insertions(+), 470 deletions(-) diff --git a/locales/ar/LC_MESSAGES/messages.po b/locales/ar/LC_MESSAGES/messages.po index df9deeb12..ed2d07f9f 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2025-12-15 04:00+0000\n" "Last-Translator: HAMDI KHALID \n" "Language-Team: Arabic `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26049,35 +26049,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26085,22 +26097,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/ars/LC_MESSAGES/messages.po b/locales/ars/LC_MESSAGES/messages.po index d4eb49cc4..0fb531934 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -2482,7 +2482,7 @@ msgid "" msgstr "" #: ../source/discussions/single-source-version.rst:62 -msgid "`setuptools_scm `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26042,35 +26042,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26078,22 +26090,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/cs/LC_MESSAGES/messages.po b/locales/cs/LC_MESSAGES/messages.po index c63a3788a..551624022 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2025-10-16 23:52+0000\n" "Last-Translator: Karolína Wallenfelsová \n" "Language-Team: Czech `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26053,35 +26053,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26089,22 +26101,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/da/LC_MESSAGES/messages.po b/locales/da/LC_MESSAGES/messages.po index 71b693166..acc711ead 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2025-10-09 04:07+0000\n" "Last-Translator: Philip Mallegol-Hansen \n" "Language-Team: Danish `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26047,35 +26047,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26083,22 +26095,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/de/LC_MESSAGES/messages.po b/locales/de/LC_MESSAGES/messages.po index 7beb0bf9f..0b1d515ee 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2026-07-22 20:54+0000\n" "Last-Translator: VfBFan \n" "Language-Team: German `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26628,35 +26628,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26664,22 +26676,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/eo/LC_MESSAGES/messages.po b/locales/eo/LC_MESSAGES/messages.po index fa963d3f0..db8b54dc8 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2025-06-29 12:03+0000\n" "Last-Translator: phlostically \n" "Language-Team: Esperanto `_" #: ../source/discussions/single-source-version.rst:62 -msgid "`setuptools_scm `_" +#, fuzzy +#| msgid "`setuptools_scm `_" +msgid "`setuptools_scm `_" msgstr "`setuptools_scm `_" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -32823,7 +32825,19 @@ msgstr "Informoj pri Financado" msgid "``sponsor``, ``donate``, ``donation``" msgstr "``sponsor``, ``donate``, ``donation``" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." @@ -32831,11 +32845,11 @@ msgstr "" "Uzanto de pakaj metadatenoj povas montri sinonimajn etikedojn same kiel la " "«gepatran» bone konatan etikedon aŭ pli speciale." -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "Ekzempla konduto" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" @@ -32843,19 +32857,19 @@ msgstr "" "Jen la fluo de projekta retadresa metadateno el ``pyproject.toml`` al kerna " "metadateno al ebla indeksa prezento:" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "Ekzemplaj projektaj retadresoj por ordinara agordado" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "Prezento de kernaj metadatenoj" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "Ebla montrado" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -32867,11 +32881,11 @@ msgstr "" "metadatenoj normigas kaj identigas taŭgajn home legeblajn ekvivalentaĵojn " "laŭ la normigitaj formoj:" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "``Home page`` fariĝas ``homepage``, kiu montriĝas kiel ``Homepage``" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" @@ -32879,13 +32893,13 @@ msgstr "" "``DOCUMENTATION`` fariĝas ``documentation``, kiu montriĝas kiel " "``Documentation``" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" "``Repository`` fariĝas ``repository``, kiu montriĝas kiel ``Source Code``" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/es/LC_MESSAGES/messages.po b/locales/es/LC_MESSAGES/messages.po index 7cf7dced2..5f9420af1 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2025-12-12 01:00+0000\n" "Last-Translator: Joseph Hale \n" "Language-Team: Spanish `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26621,36 +26621,48 @@ msgstr "Configuraciones habituales" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 #, fuzzy msgid "Example behavior" msgstr "Ejemplos" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26658,22 +26670,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/fa/LC_MESSAGES/messages.po b/locales/fa/LC_MESSAGES/messages.po index 64cc3956f..8f9a086f5 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2026-07-30 20:47+0000\n" "Last-Translator: Kamrani \n" "Language-Team: Persian `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26139,35 +26139,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26175,22 +26187,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/fil/LC_MESSAGES/messages.po b/locales/fil/LC_MESSAGES/messages.po index c082f0149..8e7ca3e69 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2022-11-19 08:28+0000\n" "Last-Translator: RedFurrFox \n" "Language-Team: Filipino `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26048,35 +26048,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26084,22 +26096,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/fr/LC_MESSAGES/messages.po b/locales/fr/LC_MESSAGES/messages.po index f77f58de6..7c8c50c72 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2026-01-20 00:01+0000\n" "Last-Translator: Nathan \n" "Language-Team: French `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26744,36 +26744,48 @@ msgstr "Outils supplémentaires" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 #, fuzzy msgid "Example behavior" msgstr "Exemples" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26781,22 +26793,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/frc/LC_MESSAGES/messages.po b/locales/frc/LC_MESSAGES/messages.po index 0c92fb2e6..e11487222 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -2482,7 +2482,7 @@ msgid "" msgstr "" #: ../source/discussions/single-source-version.rst:62 -msgid "`setuptools_scm `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26042,35 +26042,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26078,22 +26090,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/gl/LC_MESSAGES/messages.po b/locales/gl/LC_MESSAGES/messages.po index fb96e38c3..5b6afe5b6 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -2482,7 +2482,7 @@ msgid "" msgstr "" #: ../source/discussions/single-source-version.rst:62 -msgid "`setuptools_scm `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26042,35 +26042,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26078,22 +26090,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/gmh/LC_MESSAGES/messages.po b/locales/gmh/LC_MESSAGES/messages.po index d5f0d0992..1f817891c 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -2482,7 +2482,7 @@ msgid "" msgstr "" #: ../source/discussions/single-source-version.rst:62 -msgid "`setuptools_scm `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26042,35 +26042,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26078,22 +26090,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/hi/LC_MESSAGES/messages.po b/locales/hi/LC_MESSAGES/messages.po index aaa2eaf93..188a84333 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2024-09-16 10:09+0000\n" "Last-Translator: kumar Shivam \n" "Language-Team: Hindi `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26132,35 +26132,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26168,22 +26180,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/id/LC_MESSAGES/messages.po b/locales/id/LC_MESSAGES/messages.po index 3e222a9df..ebbb21787 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2024-10-17 21:16+0000\n" "Last-Translator: oon arfiandwi \n" "Language-Team: Indonesian `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26146,35 +26146,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26182,22 +26194,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/ja/LC_MESSAGES/messages.po b/locales/ja/LC_MESSAGES/messages.po index 547edfa45..b829e1ce5 100644 --- a/locales/ja/LC_MESSAGES/messages.po +++ b/locales/ja/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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2026-09-03 00:51+0000\n" "Last-Translator: moto kawasaki \n" "Language-Team: Japanese `_" #: ../source/discussions/single-source-version.rst:62 -msgid "`setuptools_scm `_" +#, fuzzy +#| msgid "`setuptools_scm `_" +msgid "`setuptools_scm `_" msgstr "`setuptools_scm `_" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -34941,7 +34943,19 @@ msgstr "財政支援のための情報" msgid "``sponsor``, ``donate``, ``donation``" msgstr "``sponsor``, ``donate``, ``donation``" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." @@ -34950,11 +34964,11 @@ msgstr "" "よく知られたラベルと同様に展開することや、または、それらをさらに詳しく指定す" "ることを選択しても構いません。" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "振る舞いの例" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" @@ -34962,19 +34976,19 @@ msgstr "" "以下では、 ``pyproject.toml`` からのプロジェクト URL メタデータを コアとなる" "メタデータへ、さらに潜在的なインデックスへと表現する流れを示します:" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "標準設定でのプロジェクト URL の例" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "コアとなるメタデータの表現" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "潜在的な展開" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -34986,11 +35000,11 @@ msgstr "" "タの *コンシューマ* が正規化し、正規化すみフォームに基づいて適切な人間の読め" "る形の同等物を特定する:" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "``Home page`` は ``homepage`` となり、それは ``Homepage`` に展開される" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" @@ -34998,13 +35012,13 @@ msgstr "" "``DOCUMENTATION`` は ``documentation`` となり、それは ``Documentation`` に展" "開される" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" "``Repository`` は ``repository`` となり、 ``Source Code`` として展開されます" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/kab/LC_MESSAGES/messages.po b/locales/kab/LC_MESSAGES/messages.po index 2d75be5b3..707a8dd0d 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2026-06-24 22:01+0000\n" "Last-Translator: ButterflyOfFire \n" "Language-Team: Kabyle `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26070,35 +26070,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26106,22 +26118,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/ko/LC_MESSAGES/messages.po b/locales/ko/LC_MESSAGES/messages.po index 0c8afc379..eef9bd9d4 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2026-02-05 03:01+0000\n" "Last-Translator: 스이미 \n" "Language-Team: Korean `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26320,35 +26320,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26356,22 +26368,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/lo/LC_MESSAGES/messages.po b/locales/lo/LC_MESSAGES/messages.po index 709d70fd6..b6ca3845f 100644 --- a/locales/lo/LC_MESSAGES/messages.po +++ b/locales/lo/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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2026-09-03 07:20+0000\n" "Last-Translator: Bone NI \n" "Language-Team: Lao `_" #: ../source/discussions/single-source-version.rst:62 -msgid "`setuptools_scm `_" +#, fuzzy +#| msgid "`setuptools_scm `_" +msgid "`setuptools_scm `_" msgstr "`setuptools_scm `_" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -5377,8 +5379,8 @@ msgid "" "provide support for defining entry points." msgstr "" "ເນື່ອງຈາກຂໍ້ກຳນົດສະເພາະນີ້ເປັນສ່ວນໜຶ່ງຂອງ :doc:`ຫ້ອງສະໝຸດມາດຕະຖານ `, ເຄື່ອງມືການຈັດການແພັກເກດ ລວມທັງ setuptools ໃຫ້ການສະໜັບສະໜູນສຳລັບກ" -"ານກຳນົດຈຸດເຂົ້າ." +"importlib.metadata>`, ເຄື່ອງມືການຈັດການແພັກເກດ ລວມທັງ setuptools " +"ໃຫ້ການສະໜັບສະໜູນສຳລັບການກຳນົດຈຸດເຂົ້າ." #: ../source/guides/creating-command-line-tools.rst:5 msgid "Creating and packaging command-line tools" @@ -31194,7 +31196,19 @@ msgstr "ຂໍ້ມູນການລະດົມທຶນ" msgid "``sponsor``, ``donate``, ``donation``" msgstr "``sponsor``, ``donate``, ``donation``" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." @@ -31202,11 +31216,11 @@ msgstr "" "ຝ່າຍນຳໃຊ້ເມຕາເດຕາຂອງແພັກເກດອາດເລືອກສະແດງຜົນຊື່ເອີ້ນອື່ນ (aliased labels) " "ໃຫ້ຄືກັບປ້າຍຊື່ຫຼັກທີ່ເປັນທີ່ຮູ້ຈັກ ຫຼື ອາດຈະກຳນົດຮູບແບບສະເພາະໃຫ້ພວກມັນກໍໄດ້." -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "ຕົວຢ່າງພຶດຕິກຳການເຮັດງານ" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" @@ -31214,19 +31228,19 @@ msgstr "" "ຕໍ່ໄປນີ້ແມ່ນການສະແດງຂັ້ນຕອນການສົ່ງຂໍ້ມູນ URL ຈາກ ``pyproject.toml`` ໄປຫາເມຕາເດຕາຫຼັກ " "ຈົນເຖິງການສະແດງຜົນໃນໜ້າດັດຊະນີ:" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "ຕົວຢ່າງ URL ຂອງໂຄງການໃນການຕັ້ງຄ່າມາດຕະຖານ" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "ຮູບແບບໃນເມຕາເດຕາຫຼັກ" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "ການສະແດງຜົນທີ່ອາດຈະເປັນໄປໄດ້" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -31237,23 +31251,23 @@ msgstr "" "ເມຕາເດຕາບໍ່ໄດ້ເຮັດໃຫ້ເປັນມາດຕະຖານ), ແຕ່ *ຝ່າຍນຳໃຊ້* ເມຕາເດຕາຈະເຮັດໃຫ້ເປັນມາດຕະຖານ ແລະ " "ລະບຸຄຳອະທິບາຍທີ່ຄົນເຂົ້າໃຈໄດ້ຕາມຮູບແບບທີ່ປ່ຽນແລ້ວ:" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "``Home page`` ກາຍເປັນ ``homepage``, ເຊິ່ງຈະສະແດງຜົນເປັນ ``Homepage``" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" "``DOCUMENTATION`` ກາຍເປັນ ``documentation``, ເຊິ່ງຈະສະແດງຜົນເປັນ ``Documentation``" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "``Repository`` ກາຍເປັນ ``repository``, ເຊິ່ງຈະສະແດງຜົນເປັນ ``Source Code``" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/lzh/LC_MESSAGES/messages.po b/locales/lzh/LC_MESSAGES/messages.po index cc57fd399..41bead670 100644 --- a/locales/lzh/LC_MESSAGES/messages.po +++ b/locales/lzh/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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2026-08-14 01:51+0000\n" "Last-Translator: Haozhe Xu \n" "Language-Team: Literary Chinese `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26057,35 +26057,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26093,22 +26105,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/mk/LC_MESSAGES/messages.po b/locales/mk/LC_MESSAGES/messages.po index d6399c8a4..48abcb655 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2023-10-21 04:04+0000\n" "Last-Translator: \"Kristijan \\\"Fremen\\\" Velkovski\" \n" "Language-Team: Macedonian `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26056,35 +26056,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26092,22 +26104,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/mr/LC_MESSAGES/messages.po b/locales/mr/LC_MESSAGES/messages.po index 29f2c961c..1f25c7723 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2025-01-25 14:18+0000\n" "Last-Translator: Prachi Joshi \n" "Language-Team: Marathi `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26045,35 +26045,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26081,22 +26093,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/mrh/LC_MESSAGES/messages.po b/locales/mrh/LC_MESSAGES/messages.po index 864961596..204efa989 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2026-05-05 16:17+0000\n" "Last-Translator: Laitei \n" "Language-Team: Mara `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26045,35 +26045,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26081,22 +26093,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/my/LC_MESSAGES/messages.po b/locales/my/LC_MESSAGES/messages.po index 95b066099..9d6d8d225 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -2483,7 +2483,7 @@ msgid "" msgstr "" #: ../source/discussions/single-source-version.rst:62 -msgid "`setuptools_scm `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26043,35 +26043,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26079,22 +26091,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/pl/LC_MESSAGES/messages.po b/locales/pl/LC_MESSAGES/messages.po index a3d6d656b..d4094485c 100644 --- a/locales/pl/LC_MESSAGES/messages.po +++ b/locales/pl/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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2026-08-23 23:51+0000\n" "Last-Translator: Maciej Olko \n" "Language-Team: Polish `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26103,35 +26103,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26139,22 +26151,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/pt/LC_MESSAGES/messages.po b/locales/pt/LC_MESSAGES/messages.po index 3f966e585..e616aa29c 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2026-06-14 08:02+0000\n" "Last-Translator: ssantos \n" "Language-Team: Portuguese `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -30321,35 +30321,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -30357,22 +30369,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/pt_BR/LC_MESSAGES/messages.po b/locales/pt_BR/LC_MESSAGES/messages.po index 8a4e24034..e55a5ed8a 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2025-08-07 00:01+0000\n" "Last-Translator: Rafael Fontenelle \n" "Language-Team: Portuguese (Brazil) `_" +msgid "`setuptools_scm `_" msgstr "`Flexx `_" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -32302,39 +32302,51 @@ msgstr "Informações básicas" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 #, fuzzy #| msgid "Example" msgid "Example behavior" msgstr "Exemplo" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 #, fuzzy #| msgid "Core metadata specifications" msgid "Core metadata representation" msgstr "Especificações de metadados principais" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -32342,22 +32354,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/ro/LC_MESSAGES/messages.po b/locales/ro/LC_MESSAGES/messages.po index 52c80a55d..ddb87593f 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2021-08-20 01:32+0000\n" "Last-Translator: GUILHERME FERNANDES NETO \n" "Language-Team: Romanian `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26050,35 +26050,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26086,22 +26098,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/ru/LC_MESSAGES/messages.po b/locales/ru/LC_MESSAGES/messages.po index 7c9b5cf50..aa9059cde 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2025-06-07 08:01+0000\n" "Last-Translator: da070116 \n" "Language-Team: Russian `_" #: ../source/discussions/single-source-version.rst:62 -msgid "`setuptools_scm `_" +#, fuzzy +#| msgid "`setuptools_scm `_" +msgid "`setuptools_scm `_" msgstr "`setuptools_scm `_" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -34854,37 +34856,49 @@ msgstr "Информация о финансировании" msgid "``sponsor``, ``donate``, ``donation``" msgstr "``спонсор``, ``пожертвовать``, ``пожертвование``" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 #, fuzzy msgid "Example behavior" msgstr "Пример" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 #, fuzzy msgid "Core metadata representation" msgstr "Спецификации основных метаданных" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -34892,22 +34906,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/sai/LC_MESSAGES/messages.po b/locales/sai/LC_MESSAGES/messages.po index b41929623..c54bb2327 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -2482,7 +2482,7 @@ msgid "" msgstr "" #: ../source/discussions/single-source-version.rst:62 -msgid "`setuptools_scm `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26042,35 +26042,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26078,22 +26090,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/si/LC_MESSAGES/messages.po b/locales/si/LC_MESSAGES/messages.po index af3e63865..210fafde3 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2022-06-11 08:19+0000\n" "Last-Translator: Kushan Gunasekera \n" "Language-Team: Sinhala `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26046,35 +26046,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26082,22 +26094,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/sk/LC_MESSAGES/messages.po b/locales/sk/LC_MESSAGES/messages.po index b02d19030..2fab05075 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2024-11-02 00:54+0000\n" "Last-Translator: Milan Šalka \n" "Language-Team: Slovak `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26256,35 +26256,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26292,22 +26304,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/ta/LC_MESSAGES/messages.po b/locales/ta/LC_MESSAGES/messages.po index 227db005b..ce9c41737 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2025-07-19 06:36+0000\n" "Last-Translator: தமிழ்நேரம் \n" "Language-Team: Tamil ` _" #: ../source/discussions/single-source-version.rst:62 -msgid "`setuptools_scm `_" +#, fuzzy +#| msgid "`setuptools_scm `_" +msgid "`setuptools_scm `_" msgstr "`setuptools_scm ` _" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -33657,7 +33659,19 @@ msgstr "பொருள் செய்தி" msgid "``sponsor``, ``donate``, ``donation``" msgstr "`` ச்பான்சர்``, `` நன்கொடை``, `` நன்கொடை``" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." @@ -33666,11 +33680,11 @@ msgstr "" "மாற்றியமைக்கப்பட்ட லேபிள்களை வழங்க தேர்வு செய்யலாம் அல்லது அவற்றை மேலும் நிபுணத்துவம் " "பெறலாம்." -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "எடுத்துக்காட்டு நடத்தை" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" @@ -33678,19 +33692,19 @@ msgstr "" "`` Pyproject.toml`` இலிருந்து கோர் மெட்டாடேட்டாவிலிருந்து சாத்தியமான குறியீட்டு " "விளக்கக்காட்சிக்கு திட்ட முகவரி மெட்டாடேட்டாவின் ஓட்டத்தை பின்வருவது காட்டுகிறது:" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "நிலையான உள்ளமைவில் எடுத்துக்காட்டு திட்ட முகவரி கள்" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "கோர் மேனிலை தரவு பிரதிநிதித்துவம்" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "சாத்தியமான வழங்குதல்" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -33702,25 +33716,25 @@ msgstr "" "இயல்பாக்கப்பட்ட வடிவத்தின் அடிப்படையில் பொருத்தமான மனித-படிக்கக்கூடிய சமமானவற்றை " "இயல்பாக்குகிறது மற்றும் அடையாளம் காட்டுகிறது:" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" "`` முகப்பு பக்கம்`` `` முகப்புப்பக்கத்தை`` ஆகிறது, இது `` முகப்புப்பக்கத்தை`` என " "வழங்கப்படுகிறது" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "`` ஆவணங்கள்`` `` ஆவணங்கள்` ஏற்படுகிறது, இது `` ஆவணங்கள்`` என வழங்கப்படுகிறது" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" "`` களஞ்சியம்`` `` களஞ்சியத்தை` `ஆகிறது, இது` `மூலக் குறியீடு`` என வழங்கப்படுகிறது" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/th/LC_MESSAGES/messages.po b/locales/th/LC_MESSAGES/messages.po index 8c5bc5501..87e81f01e 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -2482,7 +2482,7 @@ msgid "" msgstr "" #: ../source/discussions/single-source-version.rst:62 -msgid "`setuptools_scm `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26042,35 +26042,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26078,22 +26090,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/tr/LC_MESSAGES/messages.po b/locales/tr/LC_MESSAGES/messages.po index 7a169805d..b8213d66d 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2025-09-29 04:02+0000\n" "Last-Translator: Rüzgar Hünerel \n" "Language-Team: Turkish `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26069,35 +26069,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26105,22 +26117,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/uk/LC_MESSAGES/messages.po b/locales/uk/LC_MESSAGES/messages.po index 80512a6ed..5d265ca66 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2024-03-01 20:00+0000\n" "Last-Translator: Sviatoslav Sydorenko \n" "Language-Team: Ukrainian `_" -msgid "`setuptools_scm `_" +msgid "`setuptools_scm `_" msgstr "`Flexx `_" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26846,36 +26846,48 @@ msgstr "Додаткові інструменти" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 #, fuzzy msgid "Example behavior" msgstr "Приклади" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26883,22 +26895,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/vi/LC_MESSAGES/messages.po b/locales/vi/LC_MESSAGES/messages.po index d4991325b..98fccbec0 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2025-09-23 05:02+0000\n" "Last-Translator: Lenny Tran \n" "Language-Team: Vietnamese `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26271,35 +26271,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26307,22 +26319,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/zh_Hans/LC_MESSAGES/messages.po b/locales/zh_Hans/LC_MESSAGES/messages.po index 992745490..cc21849d9 100644 --- a/locales/zh_Hans/LC_MESSAGES/messages.po +++ b/locales/zh_Hans/LC_MESSAGES/messages.po @@ -47,7 +47,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2026-09-05 01:51+0000\n" "Last-Translator: Hosted Weblate user 54392 " "\n" @@ -3055,7 +3055,9 @@ msgstr "" "pyproject_config.html#dynamic-metadata>`_" #: ../source/discussions/single-source-version.rst:62 -msgid "`setuptools_scm `_" +#, fuzzy +#| msgid "`setuptools_scm `_" +msgid "`setuptools_scm `_" msgstr "" "`setuptools_scm 提取 Python 包版本 `_" @@ -27146,35 +27148,47 @@ msgstr "资金信息" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "示例行为" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -27182,22 +27196,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" diff --git a/locales/zh_Hant/LC_MESSAGES/messages.po b/locales/zh_Hant/LC_MESSAGES/messages.po index 8d074ce22..030917e83 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-09-01 09:16+0000\n" +"POT-Creation-Date: 2026-09-09 16:20+0000\n" "PO-Revision-Date: 2025-02-24 15:37+0000\n" "Last-Translator: toto6038 \n" "Language-Team: Chinese (Traditional Han script) `_" +msgid "`setuptools_scm `_" msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 @@ -26263,35 +26263,47 @@ msgstr "" msgid "``sponsor``, ``donate``, ``donation``" msgstr "" +#: ../source/specifications/well-known-project-urls.rst:132 +msgid "``security`` (Security Policy)" +msgstr "" + #: ../source/specifications/well-known-project-urls.rst:133 +msgid "The project's security policy or vulnerability reporting page" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:134 +msgid "``securitypolicy``" +msgstr "" + +#: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" -#: ../source/specifications/well-known-project-urls.rst:137 +#: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:139 +#: ../source/specifications/well-known-project-urls.rst:142 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:142 +#: ../source/specifications/well-known-project-urls.rst:145 msgid "Example project URLs in standard configuration" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:151 +#: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:159 +#: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:167 +#: ../source/specifications/well-known-project-urls.rst:170 msgid "" "Observe that the core metadata appears in the form provided by the user " "(since metadata *producers* do not perform normalization), but the metadata " @@ -26299,22 +26311,22 @@ msgid "" "based on the normalized form:" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:172 +#: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:173 +#: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:174 +#: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" -#: ../source/specifications/well-known-project-urls.rst:175 +#: ../source/specifications/well-known-project-urls.rst:178 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" From 98e78925b72d5a770f70043beda89bd84be23eaf Mon Sep 17 00:00:00 2001 From: Hosted Weblate user 54392 Date: Mon, 28 Sep 2026 06:52:15 +0200 Subject: [PATCH 15/24] Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 27.4% (1249 of 4544 strings) Co-authored-by: Hosted Weblate user 54392 Translate-URL: https://hosted.weblate.org/projects/pypa/packaging-python-org/zh_Hans/ Translation: pypa/packaging.python.org --- locales/zh_Hans/LC_MESSAGES/messages.po | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/locales/zh_Hans/LC_MESSAGES/messages.po b/locales/zh_Hans/LC_MESSAGES/messages.po index cc21849d9..38ae3c275 100644 --- a/locales/zh_Hans/LC_MESSAGES/messages.po +++ b/locales/zh_Hans/LC_MESSAGES/messages.po @@ -48,7 +48,7 @@ msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-09-09 16:20+0000\n" -"PO-Revision-Date: 2026-09-05 01:51+0000\n" +"PO-Revision-Date: 2026-09-10 06:04+0000\n" "Last-Translator: Hosted Weblate user 54392 " "\n" "Language-Team: Chinese (Simplified Han script) `_" #: ../source/discussions/single-source-version.rst:62 -#, fuzzy -#| msgid "`setuptools_scm `_" msgid "`setuptools_scm `_" -msgstr "" -"`setuptools_scm 提取 Python 包版本 `_" +msgstr "`setuptools_scm `_" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 msgid "src layout vs flat layout" From 6baa96153583302441f60d31a9a0c3b1d31d847e Mon Sep 17 00:00:00 2001 From: moto kawasaki Date: Mon, 28 Sep 2026 06:52:17 +0200 Subject: [PATCH 16/24] Translated using Weblate (Japanese) Currently translated at 100.0% (4544 of 4544 strings) Co-authored-by: moto kawasaki Translate-URL: https://hosted.weblate.org/projects/pypa/packaging-python-org/ja/ Translation: pypa/packaging.python.org --- locales/ja/LC_MESSAGES/messages.po | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/locales/ja/LC_MESSAGES/messages.po b/locales/ja/LC_MESSAGES/messages.po index b829e1ce5..83ed221fe 100644 --- a/locales/ja/LC_MESSAGES/messages.po +++ b/locales/ja/LC_MESSAGES/messages.po @@ -13,7 +13,7 @@ msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-09-09 16:20+0000\n" -"PO-Revision-Date: 2026-09-03 00:51+0000\n" +"PO-Revision-Date: 2026-09-10 06:04+0000\n" "Last-Translator: moto kawasaki \n" "Language-Team: Japanese \n" @@ -22,7 +22,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.9.dev0\n" +"X-Generator: Weblate 2026.9.1\n" #: ../source/contribute.rst:5 msgid "Contribute to this guide" @@ -3378,10 +3378,8 @@ msgstr "" "pyproject_config.html#dynamic-metadata>`_" #: ../source/discussions/single-source-version.rst:62 -#, fuzzy -#| msgid "`setuptools_scm `_" msgid "`setuptools_scm `_" -msgstr "`setuptools_scm `_" +msgstr "`setuptools_scm `_" #: ../source/discussions/src-layout-vs-flat-layout.rst:5 msgid "src layout vs flat layout" @@ -34945,15 +34943,15 @@ msgstr "``sponsor``, ``donate``, ``donation``" #: ../source/specifications/well-known-project-urls.rst:132 msgid "``security`` (Security Policy)" -msgstr "" +msgstr "``security`` (セキュリティポリシー)" #: ../source/specifications/well-known-project-urls.rst:133 msgid "The project's security policy or vulnerability reporting page" -msgstr "" +msgstr "プロジェクトのセキュリティポリシーまたは脆弱性報告ページ" #: ../source/specifications/well-known-project-urls.rst:134 msgid "``securitypolicy``" -msgstr "" +msgstr "``securitypolicy``" #: ../source/specifications/well-known-project-urls.rst:136 msgid "" From eca6916d923c4b29d9551f7a479f01864a7cd514 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 28 Sep 2026 06:52:21 +0200 Subject: [PATCH 17/24] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/pypa/packaging-python-org/ Translation: pypa/packaging.python.org --- locales/ar/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/ars/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/cs/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/da/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/de/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/eo/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/es/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/fa/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/fil/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/fr/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/frc/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/gl/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/gmh/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/hi/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/id/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/ja/LC_MESSAGES/messages.po | 83 ++++++++++++++++--------- locales/kab/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/ko/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/lo/LC_MESSAGES/messages.po | 83 ++++++++++++++++--------- locales/lzh/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/mk/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/mr/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/mrh/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/my/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/pl/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/pt/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/pt_BR/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/ro/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/ru/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/sai/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/si/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/sk/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/ta/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/th/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/tr/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/uk/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/vi/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/zh_Hans/LC_MESSAGES/messages.po | 69 +++++++++++--------- locales/zh_Hant/LC_MESSAGES/messages.po | 69 +++++++++++--------- 39 files changed, 1510 insertions(+), 1209 deletions(-) diff --git a/locales/ar/LC_MESSAGES/messages.po b/locales/ar/LC_MESSAGES/messages.po index ed2d07f9f..fd763fb16 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2025-12-15 04:00+0000\n" "Last-Translator: HAMDI KHALID \n" "Language-Team: Arabic `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16465,26 +16465,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16492,13 +16492,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16511,30 +16511,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/ars/LC_MESSAGES/messages.po b/locales/ars/LC_MESSAGES/messages.po index 0fb531934..f5c5fbb7e 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -4318,7 +4318,7 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:345 -#: ../source/specifications/dependency-specifiers.rst:713 +#: ../source/specifications/dependency-specifiers.rst:716 msgid "References" msgstr "" @@ -13510,7 +13510,7 @@ 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/dependency-specifiers.rst:681 #: ../source/specifications/direct-url-data-structure.rst:292 #: ../source/specifications/direct-url.rst:67 #: ../source/specifications/entry-points.rst:163 @@ -16403,19 +16403,19 @@ msgstr "" 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." +"It only supports one operation, ``extra == \"name\"``, which is similar to " +"``\"name\" in extras``. ``extra != \"name\"`` SHOULD NOT be used anymore and " +"MAY be rejected or evaluated to false. 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 "" -#: ../source/specifications/dependency-specifiers.rst:470 +#: ../source/specifications/dependency-specifiers.rst:471 msgid "" "Unlike the newer ``extras`` field, environment markers using this field " "SHOULD be accepted by both publishing tools and index servers. Marker " @@ -16427,29 +16427,29 @@ msgid "" "containing such comparisons as invalid." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:479 +#: ../source/specifications/dependency-specifiers.rst:480 msgid "" "The ``implementation_version`` marker variable is derived " "from :py:data:`sys.implementation.version `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16458,26 +16458,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16485,13 +16485,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16504,30 +16504,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/cs/LC_MESSAGES/messages.po b/locales/cs/LC_MESSAGES/messages.po index 551624022..e2ee4f2b5 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2025-10-16 23:52+0000\n" "Last-Translator: Karolína Wallenfelsová \n" "Language-Team: Czech `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16469,26 +16469,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16496,13 +16496,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16515,30 +16515,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/da/LC_MESSAGES/messages.po b/locales/da/LC_MESSAGES/messages.po index acc711ead..96553b039 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2025-10-09 04:07+0000\n" "Last-Translator: Philip Mallegol-Hansen \n" "Language-Team: Danish `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16463,26 +16463,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16490,13 +16490,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16509,30 +16509,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/de/LC_MESSAGES/messages.po b/locales/de/LC_MESSAGES/messages.po index 0b1d515ee..b31726143 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2026-07-22 20:54+0000\n" "Last-Translator: VfBFan \n" "Language-Team: German `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -17043,26 +17043,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -17070,13 +17070,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -17089,30 +17089,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/eo/LC_MESSAGES/messages.po b/locales/eo/LC_MESSAGES/messages.po index db8b54dc8..65f922470 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2025-06-29 12:03+0000\n" "Last-Translator: phlostically \n" "Language-Team: Esperanto `:" @@ -20836,23 +20836,23 @@ msgstr "" "La marka variablo ``implementation_version`` devenas " "de :py:data:`sys.implementation.version `:" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "Kompleta Gramatiko" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "La kompleta gramatiko por parseley::" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "Testa programo – se la gramatiko estas en signoĉeno ``grammar``:" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "Novembro 2015: Ĉi tiu specifo estis aprobita per :pep:`508`." -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -20866,13 +20866,13 @@ msgstr "" "Python kun du-ciferaj maĵoraj kaj minoraj versioj (ekz. 3.10). " "[#future_versions]_" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 msgid "" "June 2024: The definition of ``version_many`` was changed to allow trailing " "commas, matching with the behavior of the Python implementation that has " @@ -20881,13 +20881,13 @@ msgstr "" "Junio 2024: La difino de ``version_many`` estis ŝanĝita por permesi lastan " "komon, konforme al la Python-realigo uzata ekde malfrua 2022." -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -20895,13 +20895,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -20914,13 +20914,20 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" @@ -20928,12 +20935,12 @@ msgstr "" "pip, la rekomendata instalilo por Python-pakoj (http://pip.readthedocs.org/" "en/stable/)" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" "La sintaksanaliza biblioteko parsley. (https://pypi.python.org/pypi/parsley/)" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -20942,7 +20949,7 @@ msgstr "" "Estontaj versioj de Python povas esti problemaj pri la difino de la Media " "Marka Variablo ``python_version`` (https://github.com/python/peps/issues/560)" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/es/LC_MESSAGES/messages.po b/locales/es/LC_MESSAGES/messages.po index 5f9420af1..a285b23ea 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2025-12-12 01:00+0000\n" "Last-Translator: Joseph Hale \n" "Language-Team: Spanish `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16930,26 +16930,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16957,13 +16957,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16976,30 +16976,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/fa/LC_MESSAGES/messages.po b/locales/fa/LC_MESSAGES/messages.po index 8f9a086f5..04536cc45 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2026-07-30 20:47+0000\n" "Last-Translator: Kamrani \n" "Language-Team: Persian `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16528,26 +16528,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16555,13 +16555,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16574,30 +16574,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/fil/LC_MESSAGES/messages.po b/locales/fil/LC_MESSAGES/messages.po index 8e7ca3e69..07363c4d1 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2022-11-19 08:28+0000\n" "Last-Translator: RedFurrFox \n" "Language-Team: Filipino `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16464,26 +16464,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16491,13 +16491,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16510,30 +16510,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/fr/LC_MESSAGES/messages.po b/locales/fr/LC_MESSAGES/messages.po index 7c8c50c72..9fadc3a02 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2026-01-20 00:01+0000\n" "Last-Translator: Nathan \n" "Language-Team: French `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16942,26 +16942,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16969,13 +16969,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16988,30 +16988,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/frc/LC_MESSAGES/messages.po b/locales/frc/LC_MESSAGES/messages.po index e11487222..99668b127 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -4318,7 +4318,7 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:345 -#: ../source/specifications/dependency-specifiers.rst:713 +#: ../source/specifications/dependency-specifiers.rst:716 msgid "References" msgstr "" @@ -13510,7 +13510,7 @@ 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/dependency-specifiers.rst:681 #: ../source/specifications/direct-url-data-structure.rst:292 #: ../source/specifications/direct-url.rst:67 #: ../source/specifications/entry-points.rst:163 @@ -16403,19 +16403,19 @@ msgstr "" 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." +"It only supports one operation, ``extra == \"name\"``, which is similar to " +"``\"name\" in extras``. ``extra != \"name\"`` SHOULD NOT be used anymore and " +"MAY be rejected or evaluated to false. 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 "" -#: ../source/specifications/dependency-specifiers.rst:470 +#: ../source/specifications/dependency-specifiers.rst:471 msgid "" "Unlike the newer ``extras`` field, environment markers using this field " "SHOULD be accepted by both publishing tools and index servers. Marker " @@ -16427,29 +16427,29 @@ msgid "" "containing such comparisons as invalid." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:479 +#: ../source/specifications/dependency-specifiers.rst:480 msgid "" "The ``implementation_version`` marker variable is derived " "from :py:data:`sys.implementation.version `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16458,26 +16458,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16485,13 +16485,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16504,30 +16504,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/gl/LC_MESSAGES/messages.po b/locales/gl/LC_MESSAGES/messages.po index 5b6afe5b6..da783a2fe 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -4318,7 +4318,7 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:345 -#: ../source/specifications/dependency-specifiers.rst:713 +#: ../source/specifications/dependency-specifiers.rst:716 msgid "References" msgstr "" @@ -13510,7 +13510,7 @@ 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/dependency-specifiers.rst:681 #: ../source/specifications/direct-url-data-structure.rst:292 #: ../source/specifications/direct-url.rst:67 #: ../source/specifications/entry-points.rst:163 @@ -16403,19 +16403,19 @@ msgstr "" 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." +"It only supports one operation, ``extra == \"name\"``, which is similar to " +"``\"name\" in extras``. ``extra != \"name\"`` SHOULD NOT be used anymore and " +"MAY be rejected or evaluated to false. 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 "" -#: ../source/specifications/dependency-specifiers.rst:470 +#: ../source/specifications/dependency-specifiers.rst:471 msgid "" "Unlike the newer ``extras`` field, environment markers using this field " "SHOULD be accepted by both publishing tools and index servers. Marker " @@ -16427,29 +16427,29 @@ msgid "" "containing such comparisons as invalid." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:479 +#: ../source/specifications/dependency-specifiers.rst:480 msgid "" "The ``implementation_version`` marker variable is derived " "from :py:data:`sys.implementation.version `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16458,26 +16458,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16485,13 +16485,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16504,30 +16504,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/gmh/LC_MESSAGES/messages.po b/locales/gmh/LC_MESSAGES/messages.po index 1f817891c..ce78a6f75 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -4318,7 +4318,7 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:345 -#: ../source/specifications/dependency-specifiers.rst:713 +#: ../source/specifications/dependency-specifiers.rst:716 msgid "References" msgstr "" @@ -13510,7 +13510,7 @@ 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/dependency-specifiers.rst:681 #: ../source/specifications/direct-url-data-structure.rst:292 #: ../source/specifications/direct-url.rst:67 #: ../source/specifications/entry-points.rst:163 @@ -16403,19 +16403,19 @@ msgstr "" 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." +"It only supports one operation, ``extra == \"name\"``, which is similar to " +"``\"name\" in extras``. ``extra != \"name\"`` SHOULD NOT be used anymore and " +"MAY be rejected or evaluated to false. 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 "" -#: ../source/specifications/dependency-specifiers.rst:470 +#: ../source/specifications/dependency-specifiers.rst:471 msgid "" "Unlike the newer ``extras`` field, environment markers using this field " "SHOULD be accepted by both publishing tools and index servers. Marker " @@ -16427,29 +16427,29 @@ msgid "" "containing such comparisons as invalid." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:479 +#: ../source/specifications/dependency-specifiers.rst:480 msgid "" "The ``implementation_version`` marker variable is derived " "from :py:data:`sys.implementation.version `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16458,26 +16458,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16485,13 +16485,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16504,30 +16504,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/hi/LC_MESSAGES/messages.po b/locales/hi/LC_MESSAGES/messages.po index 188a84333..eda02ba9e 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2024-09-16 10:09+0000\n" "Last-Translator: kumar Shivam \n" "Language-Team: Hindi `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16524,26 +16524,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16551,13 +16551,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16570,30 +16570,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/id/LC_MESSAGES/messages.po b/locales/id/LC_MESSAGES/messages.po index ebbb21787..0664000b0 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2024-10-17 21:16+0000\n" "Last-Translator: oon arfiandwi \n" "Language-Team: Indonesian `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16531,26 +16531,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16558,13 +16558,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16577,30 +16577,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/ja/LC_MESSAGES/messages.po b/locales/ja/LC_MESSAGES/messages.po index 83ed221fe..9d12dfdce 100644 --- a/locales/ja/LC_MESSAGES/messages.po +++ b/locales/ja/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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2026-09-10 06:04+0000\n" "Last-Translator: moto kawasaki \n" "Language-Team: Japanese `:" @@ -21967,23 +21981,23 @@ msgstr "" "は、 :py:data:`sys.implementation.version ` から派生した" "ものです :" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "完全な文法" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "完全な parsley 文法::" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "テストプログラム - もし ``grammar`` 文字列内に文法があれば:" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "2015年11月: :pep:`508` を通じてこの仕様が承認されました。" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -21997,7 +22011,7 @@ msgstr "" "``'.'.join(platform.python_version_tuple()[:2])`` へ `変更されました `_ 。 [#future_versions]_" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" @@ -22005,7 +22019,7 @@ msgstr "" "2022年3月: :pep:`685` を通じて、 (コアとなるメタデータ 2.3 およびそれ以降の) " "公開時点での余分 な名称の標準化を規格化しました。" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 msgid "" "June 2024: The definition of ``version_many`` was changed to allow trailing " "commas, matching with the behavior of the Python implementation that has " @@ -22014,7 +22028,7 @@ msgstr "" "2024年6月: 2022年遅くから使われるようになった Python 実装の動作に合致するよう" "に、末尾のカンマを許容する形に ``version_many`` の定義が変更された。" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." @@ -22022,7 +22036,7 @@ msgstr "" "2025年4月: :ref:`lock-file-spec` に ``extras`` と ``dependency_groups`` の" "マーカフィールドを追加することが :pep:`751` を通じて承認された。" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -22033,7 +22047,7 @@ msgstr "" "規表現が決定された (以前は ``\\Z`` の代わりに ``$`` で終端していたので、誤っ" "て後続する行末コード を許容していた)" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." @@ -22042,7 +22056,7 @@ msgstr "" "ことを許すために、 ``==`` より前に ``===`` を (評価することを) 文法上で確実に" "しました。" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -22063,7 +22077,7 @@ msgstr "" "れによって、名ばかりだった仕様にツール類が実際に動作する方法を伴った行をもた" "らしました。 [#marker_comparison_logic]_" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" @@ -22071,7 +22085,14 @@ msgstr "" "2026年1月: :pep:`508` から不注意に残されていた、他の文書への古くて役に立たな" "くなった参照を修正しました。" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" @@ -22079,11 +22100,11 @@ msgstr "" "Python のパッケージをインストールする際に推奨されるツールである pip (http://" "pip.readthedocs.org/en/stable/)" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "parsley PEG ライブラリ。 (https://pypi.python.org/pypi/parsley/)" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -22092,7 +22113,7 @@ msgstr "" "Python の将来のバージョンでは、環境マーカ変数の ``python_version`` の定義が問" "題をはらむかもしれません。 (https://github.com/python/peps/issues/560)" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/kab/LC_MESSAGES/messages.po b/locales/kab/LC_MESSAGES/messages.po index 707a8dd0d..0303506d5 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2026-06-24 22:01+0000\n" "Last-Translator: ButterflyOfFire \n" "Language-Team: Kabyle `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16476,26 +16476,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16503,13 +16503,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16522,30 +16522,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/ko/LC_MESSAGES/messages.po b/locales/ko/LC_MESSAGES/messages.po index eef9bd9d4..5844a01f6 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2026-02-05 03:01+0000\n" "Last-Translator: 스이미 \n" "Language-Team: Korean `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16695,26 +16695,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16722,13 +16722,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16741,30 +16741,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/lo/LC_MESSAGES/messages.po b/locales/lo/LC_MESSAGES/messages.po index b6ca3845f..17c4cdeed 100644 --- a/locales/lo/LC_MESSAGES/messages.po +++ b/locales/lo/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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2026-09-03 07:20+0000\n" "Last-Translator: Bone NI \n" "Language-Team: Lao `:" @@ -19359,23 +19373,23 @@ msgstr "" "ຕົວປ່ຽນ marker ``implementation_version`` " "ແມ່ນໄດ້ມາຈາກ :py:data:`sys.implementation.version `:" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "ໄວຍາກອນທັງໝົດ" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "ໄວຍາກອນ parsley ທັງໝົດ::" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "ໂປຣແກຣມທົດສອບ - ຖ້າໄວຍາກອນຢູ່ໃນຂໍ້ຄວາມ ``grammar``:" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "ພະຈິກ 2015: ຂໍ້ກຳນົດນີ້ໄດ້ຮັບການອະນຸມັດຜ່ານ :pep:`508`." -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -19386,20 +19400,20 @@ msgstr "" "ກໍລະກົດ 2019: ຄຳນິຍາມຂອງ ``python_version`` ຖືກປ່ຽນເພື່ອຮອງຮັບເວີຊັນ Python " "ໃນອະນາຄົດທີ່ມີເລກສອງຫຼັກ (ເຊັ່ນ 3.10)." -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 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 +#: ../source/specifications/dependency-specifiers.rst:691 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 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." @@ -19407,7 +19421,7 @@ msgstr "" "ເມສາ 2025: ເພີ່ມຊ່ອງ marker ``extras`` ແລະ ``dependency_groups`` " "ສຳລັບ :ref:`lock-file-spec` ຕາມ :pep:`751`." -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -19415,13 +19429,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "ສິງຫາ 2025: ແກ້ໄຂ regex ໃນການກວດສອບຊື່ໃຫ້ຖືກຕ້ອງຕາມຂໍ້ກຳນົດ." -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "ທັນວາ 2025: ຈັດລຳດັບໃຫ້ ``===`` ມາກ່ອນ ``==`` ໃນໄວຍາກອນ." -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -19442,13 +19456,20 @@ msgstr "" "ເຄື່ອງມືການຕິດຕັ້ງ. ສິ່ງນີ້ເຮັດໃຫ້ຂໍ້ກໍານົດທາງການສອດຄ່ອງກັບວິທີທີ່ເຄື່ອງມືເຮັດວຽກຕົວຈິງ. " "[#marker_comparison_logic]_" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "ມັງກອນ 2026: ແກ້ໄຂການອ້າງອີງເຖິງເອກະສານອື່ນທີ່ລ້າສະໄໝ." -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" @@ -19456,18 +19477,18 @@ msgstr "" "pip, ເຄື່ອງມືຕິດຕັ້ງທີ່ແນະນຳສຳລັບ Python packages (http://pip.readthedocs.org/en/" "stable/)" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 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 +#: ../source/specifications/dependency-specifiers.rst:724 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 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/lzh/LC_MESSAGES/messages.po b/locales/lzh/LC_MESSAGES/messages.po index 41bead670..4460831a5 100644 --- a/locales/lzh/LC_MESSAGES/messages.po +++ b/locales/lzh/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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2026-08-14 01:51+0000\n" "Last-Translator: Haozhe Xu \n" "Language-Team: Literary Chinese `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16473,26 +16473,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16500,13 +16500,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16519,30 +16519,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/mk/LC_MESSAGES/messages.po b/locales/mk/LC_MESSAGES/messages.po index 48abcb655..96504616a 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2023-10-21 04:04+0000\n" "Last-Translator: \"Kristijan \\\"Fremen\\\" Velkovski\" \n" "Language-Team: Macedonian `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16472,26 +16472,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16499,13 +16499,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16518,30 +16518,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/mr/LC_MESSAGES/messages.po b/locales/mr/LC_MESSAGES/messages.po index 1f25c7723..49b68d35c 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2025-01-25 14:18+0000\n" "Last-Translator: Prachi Joshi \n" "Language-Team: Marathi `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16461,26 +16461,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16488,13 +16488,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16507,30 +16507,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/mrh/LC_MESSAGES/messages.po b/locales/mrh/LC_MESSAGES/messages.po index 204efa989..00da64de3 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2026-05-05 16:17+0000\n" "Last-Translator: Laitei \n" "Language-Team: Mara `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16461,26 +16461,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16488,13 +16488,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16507,30 +16507,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/my/LC_MESSAGES/messages.po b/locales/my/LC_MESSAGES/messages.po index 9d6d8d225..10ed1c1df 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -4319,7 +4319,7 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:345 -#: ../source/specifications/dependency-specifiers.rst:713 +#: ../source/specifications/dependency-specifiers.rst:716 msgid "References" msgstr "" @@ -13511,7 +13511,7 @@ 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/dependency-specifiers.rst:681 #: ../source/specifications/direct-url-data-structure.rst:292 #: ../source/specifications/direct-url.rst:67 #: ../source/specifications/entry-points.rst:163 @@ -16404,19 +16404,19 @@ msgstr "" 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." +"It only supports one operation, ``extra == \"name\"``, which is similar to " +"``\"name\" in extras``. ``extra != \"name\"`` SHOULD NOT be used anymore and " +"MAY be rejected or evaluated to false. 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 "" -#: ../source/specifications/dependency-specifiers.rst:470 +#: ../source/specifications/dependency-specifiers.rst:471 msgid "" "Unlike the newer ``extras`` field, environment markers using this field " "SHOULD be accepted by both publishing tools and index servers. Marker " @@ -16428,29 +16428,29 @@ msgid "" "containing such comparisons as invalid." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:479 +#: ../source/specifications/dependency-specifiers.rst:480 msgid "" "The ``implementation_version`` marker variable is derived " "from :py:data:`sys.implementation.version `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16459,26 +16459,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16486,13 +16486,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16505,30 +16505,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/pl/LC_MESSAGES/messages.po b/locales/pl/LC_MESSAGES/messages.po index d4094485c..d5fa9953f 100644 --- a/locales/pl/LC_MESSAGES/messages.po +++ b/locales/pl/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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2026-08-23 23:51+0000\n" "Last-Translator: Maciej Olko \n" "Language-Team: Polish `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16519,26 +16519,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16546,13 +16546,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16565,30 +16565,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/pt/LC_MESSAGES/messages.po b/locales/pt/LC_MESSAGES/messages.po index e616aa29c..c4a2f0136 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2026-06-14 08:02+0000\n" "Last-Translator: ssantos \n" "Language-Team: Portuguese `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "Gramática completa" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -20210,26 +20210,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -20237,13 +20237,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -20256,13 +20256,20 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" @@ -20270,12 +20277,12 @@ msgstr "" "pip, o instalador recomendado para pacotes Python (http://" "pip.readthedocs.org/en/stable/)" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" "A biblioteca de PEG do parsley. (https://pypi.python.org/pypi/parsley/)" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -20285,7 +20292,7 @@ msgstr "" "variável do marcador de ambiente ``python_version`` (https://github.com/" "python/peps/issues/560)" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/pt_BR/LC_MESSAGES/messages.po b/locales/pt_BR/LC_MESSAGES/messages.po index e55a5ed8a..bfe560c7f 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2025-08-07 00:01+0000\n" "Last-Translator: Rafael Fontenelle \n" "Language-Team: Portuguese (Brazil) \n" "Language-Team: Romanian `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16466,26 +16466,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16493,13 +16493,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16512,30 +16512,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/ru/LC_MESSAGES/messages.po b/locales/ru/LC_MESSAGES/messages.po index aa9059cde..d2866887a 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2025-06-07 08:01+0000\n" "Last-Translator: da070116 \n" "Language-Team: Russian `:" @@ -21868,23 +21868,23 @@ msgstr "" "Маркерная переменная ``имплементация_версия`` получена из :py: " "данные:`sys.имплементация.версия `:" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "Полная грамматика" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "Полная грамматика петрушки::" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "Тестовая программа - если грамматика находится в строке ``grammar``:" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "Ноябрь 2015 г: Эта спецификация была одобрена через :pep:`508`." -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -21898,13 +21898,13 @@ msgstr "" "потенциальные будущие версии Python с двузначными мажорными и минорными " "версиями (например, 3.10). [#future_versions]_" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 msgid "" "June 2024: The definition of ``version_many`` was changed to allow trailing " "commas, matching with the behavior of the Python implementation that has " @@ -21914,13 +21914,13 @@ msgstr "" "запятые в конце, что соответствует поведению реализации Python, которая " "используется с конца 2022 года." -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -21928,13 +21928,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -21947,13 +21947,20 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" @@ -21961,11 +21968,11 @@ msgstr "" "pip, рекомендуемая программа установки пакетов Python (http://" "pip.readthedocs.org/en/stable/)" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "Библиотека PEG Петрушка. (https://pypi.python.org/pypi/parsley/)" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -21975,7 +21982,7 @@ msgstr "" "переменной среды ``python_version`` (https://github.com/python/peps/issues/" "560)" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/sai/LC_MESSAGES/messages.po b/locales/sai/LC_MESSAGES/messages.po index c54bb2327..85388e03e 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -4318,7 +4318,7 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:345 -#: ../source/specifications/dependency-specifiers.rst:713 +#: ../source/specifications/dependency-specifiers.rst:716 msgid "References" msgstr "" @@ -13510,7 +13510,7 @@ 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/dependency-specifiers.rst:681 #: ../source/specifications/direct-url-data-structure.rst:292 #: ../source/specifications/direct-url.rst:67 #: ../source/specifications/entry-points.rst:163 @@ -16403,19 +16403,19 @@ msgstr "" 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." +"It only supports one operation, ``extra == \"name\"``, which is similar to " +"``\"name\" in extras``. ``extra != \"name\"`` SHOULD NOT be used anymore and " +"MAY be rejected or evaluated to false. 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 "" -#: ../source/specifications/dependency-specifiers.rst:470 +#: ../source/specifications/dependency-specifiers.rst:471 msgid "" "Unlike the newer ``extras`` field, environment markers using this field " "SHOULD be accepted by both publishing tools and index servers. Marker " @@ -16427,29 +16427,29 @@ msgid "" "containing such comparisons as invalid." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:479 +#: ../source/specifications/dependency-specifiers.rst:480 msgid "" "The ``implementation_version`` marker variable is derived " "from :py:data:`sys.implementation.version `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16458,26 +16458,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16485,13 +16485,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16504,30 +16504,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/si/LC_MESSAGES/messages.po b/locales/si/LC_MESSAGES/messages.po index 210fafde3..6cc37a1f9 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2022-06-11 08:19+0000\n" "Last-Translator: Kushan Gunasekera \n" "Language-Team: Sinhala `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16462,26 +16462,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16489,13 +16489,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16508,30 +16508,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/sk/LC_MESSAGES/messages.po b/locales/sk/LC_MESSAGES/messages.po index 2fab05075..a75b0139d 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2024-11-02 00:54+0000\n" "Last-Translator: Milan Šalka \n" "Language-Team: Slovak `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16634,26 +16634,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16661,13 +16661,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16680,30 +16680,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/ta/LC_MESSAGES/messages.po b/locales/ta/LC_MESSAGES/messages.po index ce9c41737..0d9a034b2 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2025-07-19 06:36+0000\n" "Last-Translator: தமிழ்நேரம் \n" "Language-Team: Tamil `:" @@ -21251,23 +21251,23 @@ msgstr "" "`` செயல்படுத்தல்_்வெர்சன்`` மார்க்கர் மாறி இதிலிருந்து பெறப்பட்டது: py: தரவு: " "`sys.implementation.version `:" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "முழுமையான இலக்கணம்" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "முழுமையான வோக்கோசு இலக்கணம் ::" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "ஒரு சோதனை நிரல் - இலக்கணம் ஒரு சரத்தில் இருந்தால் `` இலக்கணம்``:" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "நவம்பர் 2015: இந்த விவரக்குறிப்பு அங்கீகரிக்கப்பட்டது: PEP: `508`." -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -21279,13 +21279,13 @@ msgstr "" "`_` `தளத்திலிருந்து. ) [: 2]) ``, 2 இலக்க பெரிய மற்றும் சிறிய பதிப்புகளுடன் " "பைத்தானின் எதிர்கால பதிப்புகளுக்கு இடமளிக்க (எ.கா. 3.10). [#future_versions] _" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 msgid "" "June 2024: The definition of ``version_many`` was changed to allow trailing " "commas, matching with the behavior of the Python implementation that has " @@ -21294,13 +21294,13 @@ msgstr "" "சூன் 2024: 2022 ஆம் ஆண்டின் பிற்பகுதியிலிருந்து பயன்பாட்டில் உள்ள பைதான் அமலாக்கத்தின் " "நடத்தையுடன் பொருந்தக்கூடிய, `` பதிப்பு_மனி`` இன் வரையறை மாற்றப்பட்டது." -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -21308,13 +21308,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -21327,13 +21327,20 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" @@ -21341,11 +21348,11 @@ msgstr "" "PIP, பைதான் தொகுப்புகளுக்கான பரிந்துரைக்கப்பட்ட நிறுவி (http://pip.readthedocs.org/" "en/stable/)" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "வோக்கோசு பெக் நூலகம். (https://pypi.python.org/pypi/parsly/)" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -21354,7 +21361,7 @@ msgstr "" "சுற்றுச்சூழல் மார்க்கர் மாறியின் வரையறையுடன் எதிர்கால பைதான் பதிப்புகள் சிக்கலாக இருக்கலாம் " "`` பைதான்_்வெர்சன்`` (https://github.com/python/peps/issues/560)" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/th/LC_MESSAGES/messages.po b/locales/th/LC_MESSAGES/messages.po index 87e81f01e..a3ec3b989 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -4318,7 +4318,7 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:345 -#: ../source/specifications/dependency-specifiers.rst:713 +#: ../source/specifications/dependency-specifiers.rst:716 msgid "References" msgstr "" @@ -13510,7 +13510,7 @@ 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/dependency-specifiers.rst:681 #: ../source/specifications/direct-url-data-structure.rst:292 #: ../source/specifications/direct-url.rst:67 #: ../source/specifications/entry-points.rst:163 @@ -16403,19 +16403,19 @@ msgstr "" 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." +"It only supports one operation, ``extra == \"name\"``, which is similar to " +"``\"name\" in extras``. ``extra != \"name\"`` SHOULD NOT be used anymore and " +"MAY be rejected or evaluated to false. 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 "" -#: ../source/specifications/dependency-specifiers.rst:470 +#: ../source/specifications/dependency-specifiers.rst:471 msgid "" "Unlike the newer ``extras`` field, environment markers using this field " "SHOULD be accepted by both publishing tools and index servers. Marker " @@ -16427,29 +16427,29 @@ msgid "" "containing such comparisons as invalid." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:479 +#: ../source/specifications/dependency-specifiers.rst:480 msgid "" "The ``implementation_version`` marker variable is derived " "from :py:data:`sys.implementation.version `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16458,26 +16458,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16485,13 +16485,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16504,30 +16504,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/tr/LC_MESSAGES/messages.po b/locales/tr/LC_MESSAGES/messages.po index b8213d66d..9ed54293e 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2025-09-29 04:02+0000\n" "Last-Translator: Rüzgar Hünerel \n" "Language-Team: Turkish `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16485,26 +16485,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16512,13 +16512,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16531,30 +16531,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/uk/LC_MESSAGES/messages.po b/locales/uk/LC_MESSAGES/messages.po index 5d265ca66..5efcfa310 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2024-03-01 20:00+0000\n" "Last-Translator: Sviatoslav Sydorenko \n" "Language-Team: Ukrainian `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -17094,26 +17094,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -17121,13 +17121,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -17140,30 +17140,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/vi/LC_MESSAGES/messages.po b/locales/vi/LC_MESSAGES/messages.po index 98fccbec0..4221d4af3 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2025-09-23 05:02+0000\n" "Last-Translator: Lenny Tran \n" "Language-Team: Vietnamese `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16677,26 +16677,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16704,13 +16704,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16723,30 +16723,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/zh_Hans/LC_MESSAGES/messages.po b/locales/zh_Hans/LC_MESSAGES/messages.po index 38ae3c275..c503d0b9c 100644 --- a/locales/zh_Hans/LC_MESSAGES/messages.po +++ b/locales/zh_Hans/LC_MESSAGES/messages.po @@ -47,7 +47,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2026-09-10 06:04+0000\n" "Last-Translator: Hosted Weblate user 54392 " "\n" @@ -5096,7 +5096,7 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:345 -#: ../source/specifications/dependency-specifiers.rst:713 +#: ../source/specifications/dependency-specifiers.rst:716 msgid "References" msgstr "参考" @@ -14603,7 +14603,7 @@ 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/dependency-specifiers.rst:681 #: ../source/specifications/direct-url-data-structure.rst:292 #: ../source/specifications/direct-url.rst:67 #: ../source/specifications/entry-points.rst:163 @@ -17500,19 +17500,19 @@ msgstr "" 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." +"It only supports one operation, ``extra == \"name\"``, which is similar to " +"``\"name\" in extras``. ``extra != \"name\"`` SHOULD NOT be used anymore and " +"MAY be rejected or evaluated to false. 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 "" -#: ../source/specifications/dependency-specifiers.rst:470 +#: ../source/specifications/dependency-specifiers.rst:471 msgid "" "Unlike the newer ``extras`` field, environment markers using this field " "SHOULD be accepted by both publishing tools and index servers. Marker " @@ -17524,29 +17524,29 @@ msgid "" "containing such comparisons as invalid." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:479 +#: ../source/specifications/dependency-specifiers.rst:480 msgid "" "The ``implementation_version`` marker variable is derived " "from :py:data:`sys.implementation.version `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -17555,26 +17555,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -17582,13 +17582,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -17601,30 +17601,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" diff --git a/locales/zh_Hant/LC_MESSAGES/messages.po b/locales/zh_Hant/LC_MESSAGES/messages.po index 030917e83..48b77d975 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-09-09 16:20+0000\n" +"POT-Creation-Date: 2026-09-22 14:24+0000\n" "PO-Revision-Date: 2025-02-24 15:37+0000\n" "Last-Translator: toto6038 \n" "Language-Team: Chinese (Traditional Han script) `:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:499 +#: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:501 +#: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:608 +#: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:682 +#: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:683 +#: ../source/specifications/dependency-specifiers.rst:684 msgid "" "July 2019: The definition of ``python_version`` was `changed `_ from ``platform.python_version()[:3]`` to " @@ -16615,26 +16615,26 @@ msgid "" "[#future_versions]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:688 +#: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:690 +#: ../source/specifications/dependency-specifiers.rst:691 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 "" -#: ../source/specifications/dependency-specifiers.rst:693 +#: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:695 +#: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 msgid "" "August 2025: The suggested name validation regex was fixed to match the " @@ -16642,13 +16642,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:698 +#: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" -#: ../source/specifications/dependency-specifiers.rst:700 +#: ../source/specifications/dependency-specifiers.rst:701 msgid "" "January 2026: Amend the definition of environment marker comparison " "operations to restrict version comparison semantics to fields where they " @@ -16661,30 +16661,37 @@ msgid "" "[#marker_comparison_logic]_" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:708 +#: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:715 +#: ../source/specifications/dependency-specifiers.rst:711 +msgid "" +"July 2026: Explain that ``extra != \"name\"`` is not (properly) supported " +"(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:718 +#: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:721 +#: ../source/specifications/dependency-specifiers.rst:724 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:725 +#: ../source/specifications/dependency-specifiers.rst:728 msgid "" "Resolving inconsistencies between actual tool behavior and the nominal " "definitions of environment marker field comparisons (https://" From 30b2508036fdc10d927b0b87d5ef8641bbebccdd Mon Sep 17 00:00:00 2001 From: moto kawasaki Date: Mon, 28 Sep 2026 06:52:24 +0200 Subject: [PATCH 18/24] Translated using Weblate (Japanese) Currently translated at 100.0% (4545 of 4545 strings) Co-authored-by: moto kawasaki Translate-URL: https://hosted.weblate.org/projects/pypa/packaging-python-org/ja/ Translation: pypa/packaging.python.org --- locales/ja/LC_MESSAGES/messages.po | 41 +++++++++++------------------- 1 file changed, 15 insertions(+), 26 deletions(-) diff --git a/locales/ja/LC_MESSAGES/messages.po b/locales/ja/LC_MESSAGES/messages.po index 9d12dfdce..2b9938bb7 100644 --- a/locales/ja/LC_MESSAGES/messages.po +++ b/locales/ja/LC_MESSAGES/messages.po @@ -13,7 +13,7 @@ msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-09-22 14:24+0000\n" -"PO-Revision-Date: 2026-09-10 06:04+0000\n" +"PO-Revision-Date: 2026-09-24 02:51+0000\n" "Last-Translator: moto kawasaki \n" "Language-Team: Japanese \n" @@ -22,7 +22,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.9.1\n" +"X-Generator: Weblate 2026.10.dev0\n" #: ../source/contribute.rst:5 msgid "Contribute to this guide" @@ -21912,20 +21912,6 @@ msgstr "" "マーカ評価環境は、これらのフィールドを定義する必要はありません。" #: ../source/specifications/dependency-specifiers.rst:458 -#, fuzzy -#| 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." 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. " @@ -21942,16 +21928,16 @@ msgid "" msgstr "" "集合のような動作を期待するけれども、定義済みのマーカフィールドタイプとしての " "``Set of strings`` の追加よりも先行しているので、 ``extra`` フィールドもまた" -"特別です。したがって、依存関係の宣言の中の ``extra != \"name\"`` が " -"``\"name\" not in extras`` に似ている一方で、 ``extra == \"name\"`` は、 " -"``\"name\" in extras`` と似ています。依存関係マーカの評価のためには、これらの" -"比較に用いられた extra な名称の集合は、トップレベルの依存関係宣言の中で直接に" -"要求されたものであれ、間接的に依存関係を通過してきたものであれ、 *その特定の" -"パッケージ* のために要求された extras の全ての集合です。 ``extra`` に対する他" -"の比較操作は定義されておらず、公開ツールはエラーを発出するべきであり、イン" -"デックスサーバはそのような環境マーカを含むアップロードを許さなくても構いませ" -"んが、ロッキングとインストールツール類はそれらを False として評価するべきで" -"す。" +"特別です。それは、 ``\"name\" in extras`` と似ているところの ``extra == " +"\"name\"`` という一つの操作だけをサポートします。 ``extra != \"name\"`` は、" +"もはや使用されるべきではなく、拒絶されたり偽であると評価されたりしても構いま" +"せん。依存関係マーカの評価のためには、これらの比較に用いられた extra な名称の" +"集合は、トップレベルの依存関係宣言の中で直接に要求されたものであれ、間接的に" +"依存関係を通過してきたものであれ、 *その特定のパッケージ* のために要求された " +"extras の全ての集合です。 ``extra`` に対する他の比較操作は定義されておらず、" +"公開ツールはエラーを発出するべきであり、インデックスサーバはそのような環境" +"マーカを含むアップロードを許さなくても構いませんが、ロッキングと" +"インストールツール類はそれらを False として評価するべきです。" #: ../source/specifications/dependency-specifiers.rst:471 msgid "" @@ -22091,6 +22077,9 @@ msgid "" "(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" "108022/24)" msgstr "" +"2026年1月: ``extra != \"name\"`` が (適切には) サポートされていないことを説" +"明 (https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" +"108022/24)" #: ../source/specifications/dependency-specifiers.rst:718 msgid "" From e899f0b10992ca7b719ab192f5439dbe3356b4d0 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 28 Sep 2026 06:52:25 +0200 Subject: [PATCH 19/24] Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 29.2% (1331 of 4545 strings) Co-authored-by: Michael Translate-URL: https://hosted.weblate.org/projects/pypa/packaging-python-org/zh_Hans/ Translation: pypa/packaging.python.org --- locales/zh_Hans/LC_MESSAGES/messages.po | 391 ++++++++++++++++-------- 1 file changed, 257 insertions(+), 134 deletions(-) diff --git a/locales/zh_Hans/LC_MESSAGES/messages.po b/locales/zh_Hans/LC_MESSAGES/messages.po index c503d0b9c..d95a42e09 100644 --- a/locales/zh_Hans/LC_MESSAGES/messages.po +++ b/locales/zh_Hans/LC_MESSAGES/messages.po @@ -43,14 +43,14 @@ # Hosted Weblate user 162400 , 2026. # JaxonMa , 2026. # Hosted Weblate user 54392 , 2026. +# Michael , 2026. msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-09-22 14:24+0000\n" -"PO-Revision-Date: 2026-09-10 06:04+0000\n" -"Last-Translator: Hosted Weblate user 54392 " -"\n" +"PO-Revision-Date: 2026-09-24 14:59+0000\n" +"Last-Translator: Michael \n" "Language-Team: Chinese (Simplified Han script) \n" "Language: zh_Hans\n" @@ -58,7 +58,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.9.1\n" +"X-Generator: Weblate 2026.10.dev0\n" #: ../source/contribute.rst:5 msgid "Contribute to this guide" @@ -97,7 +97,7 @@ msgid "" "`pull requests`__. If you're planning to write or edit the guide, please " "read the :ref:`style guide `." msgstr "" -"大部分关于 |PyPUG| 的工作发生于`项目的 GitHub 存储库`__ 。要开始,请查看 " +"大部分关于 |PyPUG| 的工作发生于 `项目的 GitHub 存储库`__。要开始,请查看 " "`open issues`__ 和 `pull requests`__ 的列表。如果你打算编写或编辑指南,请阅" "读 :ref:`style guide `。" @@ -180,7 +180,7 @@ msgid "" "tools. :doc:`example specification-style document `." msgstr "" -"规范 (Specifications) 是参考文档,侧重于全面记录包装工具之间互操作性的一致接" +"规范 (Specifications) 是参考文档,侧重于全面记录打包工具之间互操作性的一致接" "口。 :doc:`example specification-style document `。" @@ -200,7 +200,7 @@ msgstr "" msgid "" "If you are experiencing issues while you are working on translations, please " "open an issue on `GitHub`_." -msgstr "如果你在翻译工作中遇到问题,请在`Github`_ 上开一个 issue 。" +msgstr "如果你在翻译工作中遇到问题,请在 `GitHub`_ 上开一个 issue。" #: ../source/contribute.rst:85 msgid "" @@ -385,7 +385,7 @@ msgid "" "learn about packaging just as much as you do." msgstr "" "不要忘记,Python 社区是很大,而且很受欢迎的。读者可能与你的年龄、性别、教育、" -"文化等不尽相同,但他们和你一样值得学习包装知识。" +"文化等不尽相同,但他们和你一样值得学习打包知识。" #: ../source/contribute.rst:207 msgid "" @@ -640,7 +640,7 @@ msgstr "支持多种硬件平台" #: ../source/discussions/deploying-python-applications.rst:37 msgid "OS packaging & installers" -msgstr "操作系统包装和安装程序" +msgstr "操作系统打包和安装程序" #: ../source/discussions/deploying-python-applications.rst:49 #: ../source/discussions/deploying-python-applications.rst:86 @@ -684,7 +684,7 @@ msgid "" "the MIT-licence." msgstr "" "Pynsist 的一大优势是可以在 Linux 上构建 Windows 软件包。在 :any:`文档 " -"`中,有几个不同类型程序(控制台、GUI)的例子。该工具是在 MIT " +"` 中,有几个不同类型程序(控制台、GUI)的例子。该工具是在 MIT " "许可证下发布的。" #: ../source/discussions/deploying-python-applications.rst:77 @@ -754,11 +754,11 @@ msgid "" "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(PythonEXecutable)" -"文件的库,它是可执行的Python环境,符合virtualenvs精神。pex是对:pep:`441`中概" -"述的思想的扩展,使部署Python应用程序像cp一样简单。pex文件甚至可以包括多个特定" -"平台的Python分布,这意味着一个pex文件可以跨Linux和macOS移植。pex是根据Apache " -"2.0许可证发布的。" +"`pex `__ 是一个用于生成 .pex(Python " +"EXecutable)文件的库,它是可执行的 Python 环境,符合 virtualenvs 精神。pex 是" +"对 :pep:`441` 中概述的思想的扩展,使部署 Python 应用程序像 cp 一样简单。pex " +"文件甚至可以包括多个特定平台的Python 分布,这意味着一个 pex 文件可以跨 Linux " +"和 macOS 移植。pex 是根据 Apache 2.0 许可证发布的。" #: ../source/discussions/deploying-python-applications.rst:129 msgid "Configuration management" @@ -795,12 +795,12 @@ msgid "" "be used to refer to a specific file that contains a certain version of a " "project." msgstr "" -"分发包(distribution package)是可安装的一段软件。通常情况下,它与 \"项目" -"\"(project)同义。当你输入 ``pip install pkg`` ,或在 ``pyproject.toml`` 文" -"件中写入 ``dependencies = [\"pkg\"]`` 时, ``pkg`` 就是一个分发包的名称。当你" -"在PyPI_(目前最广为人知的 Python 库和工具的集中安装源)上搜索或浏览时,所看到" -"的列表就是分发包的列表。另外,\"分发包\" 这个术语也可以用来指代包含项目特定版" -"本的某个文件。" +"分发包(distribution package)是可安装的一段软件。通常情况下,它与 \"项目\"(" +"project)同义。当你输入 ``pip install pkg``,或在 ``pyproject.toml`` 文件中写" +"入 ``dependencies = [\"pkg\"]`` 时,``pkg`` 就是一个分发包的名称。当你在 " +"PyPI_ 上搜索或浏览时(PyPI 是目前最广为人知的 Python 库和工具的集中安装源)," +"所看到的列表就是分发包的列表。另外,\"分发包\" 这个术语也可以用来指代包含项目" +"特定版本的某个文件。" #: ../source/discussions/distribution-package-vs-import-package.rst:24 msgid "" @@ -914,9 +914,9 @@ msgid "" "documentation) [#non-identifier-mod-name]_. In particular, they use " "underscores ``_`` as word separator and they are case-sensitive." msgstr "" -"导入包的名称应为有效的 Python 标识符(具体规则可以在 Python 文档中找" -"到::ref:``)[#non-identifier-mod-name]_ 。特别地,它们" -"使用下划线 ``_`` 作为单词分隔符,并且区分大小写。" +"导入包的名称应为有效的 Python 标识符(:ref:`具体规则 ` 可" +"以在 Python 文档中找到) [#non-identifier-mod-name]_。特别地,它们使用下划线 " +"``_`` 作为单词分隔符,并且区分大小写。" #: ../source/discussions/distribution-package-vs-import-package.rst:88 msgid "" @@ -928,11 +928,11 @@ msgid "" "``pip install awesome-package`` (the precise rules are given in " "the :ref:`name normalization specification `)." msgstr "" -"另一方面,分发包可以使用连字符 ``-`` 或下划线 ``_`` 。它们还可以包含点号 " -"``.`` ,这有时用于打包 :ref:`命名空间包` 的子" -"包。对于大多数用途,它们对大小写和 ``-`` 与 ``_`` 的区别不敏感,例如, ``pip " +"另一方面,分发包可以使用连字符 ``-`` 或下划线 ``_``。它们还可以包含点号 " +"``.``,这有时用于打包 :ref:`命名空间包 ` 的子包" +"。对于大多数用途,它们对大小写和 ``-`` 与 ``_`` 的区别不敏感,例如,``pip " "install Awesome_Package`` 和 ``pip install awesome-package`` 是相同的(具体规" -"则可以在 ```` 名称规范中找到)。" +"则见 :ref:`名称规范化规范 `)。" #: ../source/discussions/distribution-package-vs-import-package.rst:101 msgid "" @@ -1189,10 +1189,10 @@ msgid "" "was taken by the cryptography_ project, with the large test vectors being " "split to cryptography-vectors_ package." msgstr "" -"另一方面,一些项目(例如NumPy_)决定在其已安装的软件包中包含测试。这具有允许" +"另一方面,一些项目(例如 NumPy_)决定在其已安装的软件包中包含测试。这具有允许" "用户在安装后运行测试的额外优势,例如在升级依赖项后检查回归。另一种方法是将测" -"试或测试数据分割成一个单独的 Python 软件包。加密_项目采取了这种方法,将大型测" -"试向量拆分为加密矢量_包。" +"试或测试数据分割成一个单独的 Python 软件包。cryptography_ 项目采取了这种方法" +",将大型测试向量拆分为 cryptography-vectors_ 包。" #: ../source/discussions/downstream-packaging.rst:132 msgid "" @@ -1329,8 +1329,8 @@ msgid "" "absolutely must *verify their authenticity* (usually against a hash), to " "protect against the file being substituted by a malicious party." msgstr "" -"同时请记住,若获取远程资源,您必须 *verify their authenticity*(通常核对哈希" -"值),以防文件被恶意方替换的风险。" +"同时请记住,若获取远程资源,您必须 *验证其真实性*,通常通过核对哈希值,以防文" +"件被恶意方替换。" #: ../source/discussions/downstream-packaging.rst:210 msgid "Support building against system dependencies" @@ -2257,8 +2257,8 @@ msgid "" "The egg format was introduced by :ref:`setuptools` in 2004, whereas the " "wheel format was introduced by :pep:`427` in 2012." msgstr "" -":term:`Egg` 格式是由 :ref:`setuptools` 在2004年引入的,而 :term:`Wheel` 格式" -"是由 :pep:`427` 在2012年引入。" +"``egg`` 格式是由 :ref:`setuptools` 在 2004 年引入的,而 ``wheel`` 格式是由 " +":pep:`427` 在 2012 年引入。" #: ../source/discussions/package-formats.rst:149 msgid "" @@ -2361,10 +2361,10 @@ msgid "" "Package Index (PyPI)>` using requirement specifiers, and automatically " "installing dependencies." msgstr "" -":ref:`easy_install `,现`已弃用`_,作为 :ref:`setuptools` 的一" +":ref:`easy_install `,现 `已弃用`_,作为 :ref:`setuptools` 的一" "部分于 2004 年发布。当时值得注意的是,使用需求说明符从 :term:`PyPI ` 安装 :term:`packages `,并自动安" -"装依赖项。" +"Package Index (PyPI)>` 安装 :term:`分发包 `,并自动安装" +"依赖项。" #: ../source/discussions/pip-vs-easy-install.rst:14 msgid "" @@ -2481,7 +2481,7 @@ msgstr "有 [1]_" #: ../source/discussions/pip-vs-easy-install.rst:54 msgid ":ref:`Multi-version Installs`" -msgstr ":ref:`多版本安装`" +msgstr ":ref:`多版本安装 `" #: ../source/discussions/pip-vs-easy-install.rst:57 msgid "Exclude scripts during install" @@ -2524,11 +2524,11 @@ msgid "" "its :file:`noxfile.py` configuration file, or *pytest* " "and :file:`conftest.py`)." msgstr "" -"Setuptools 完全可以作为打包 Python 项目的 :term:`构建后端` 使用。" -"而 :file:`setup.py` 是一个有效的 :ref:`setuptools` 配置文件,它恰好是用 " -"Python 编写的,而不是使用 *TOML* (例如,其他工具如 *nox* 及" -"其 :file:`noxfile.py` 配置文件,或 *pytest* 及其 :file:`conftest.py` 文件也采" -"用类似做法)。" +"Setuptools 完全可以作为打包 Python 项目的 :term:`构建后端 ` 使" +"用。而 :file:`setup.py` 是一个有效的 :ref:`setuptools` 配置文件,它恰好是用 " +"Python 编写的,而不是使用 *TOML*(例如,其他工具如 *nox* 及其 " +":file:`noxfile.py` 配置文件,或 *pytest* 及其 :file:`conftest.py` 文件也采用" +"类似做法)。" #: ../source/discussions/setup-py-deprecated.rst:18 msgid "" @@ -3101,9 +3101,9 @@ msgid "" "` is used for development and a " "regular installation is used for testing)." msgstr "" -"这意味着 `src` 布局在项目的开发工作流程中涉及一个额外的步骤(通常,在开发中使" -"用 :doc:`editable installation ` ,在" -"测试中使用常规安装)。" +"这意味着 ``src`` 布局在项目的开发工作流程中涉及一个额外的步骤(通常,在开发中" +"使用 :doc:`可编辑安装 `,在测试中使用" +"常规安装)。" #: ../source/discussions/src-layout-vs-flat-layout.rst:56 msgid "" @@ -3140,7 +3140,7 @@ msgid "" "` is only able to import files that " "were meant to be importable." msgstr "" -"`src` 布局有助于确保 :doc:`editable installation ` 仅能导入那些本应可导入的文件。" #: ../source/discussions/src-layout-vs-flat-layout.rst:74 @@ -3165,7 +3165,7 @@ msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:86 msgid "Running a command-line interface from source with src-layout" -msgstr "从源代码使用 `src` 布局中运行命令行界面" +msgstr "使用 ``src`` 布局从源代码运行命令行界面" #: ../source/discussions/src-layout-vs-flat-layout.rst:88 msgid "" @@ -3177,11 +3177,11 @@ msgid "" "the package folder to Python's :py:data:`sys.path` when called via " "its :file:`__main__.py` file:" msgstr "" -"由于前述的 `src` 布局的特点,命令行界面不能直接从 :term:`source tree " -"` 运行,而需要将包安装为 :doc:`Development Mode " -"` 以便进行测试。由于在某些情况下这可能" -"不太实际,一个解决方法是在通过其 :file:`__main__.py` 文件调用时,将包文件夹添" -"加到 Python 的 :py:data:`sys.path` 中:" +"由于前述 ``src`` 布局的特点,命令行界面不能直接从 :term:`源码树 ` 运行,而需要将包以 :doc:`开发模式 ` 安装以便进行测试。由于在某些情况下这可能不太实际,一个解决" +"方法是在通过其 :file:`__main__.py` 文件调用时,将包文件夹添加到 Python 的 " +":py:data:`sys.path` 中:" #: ../source/discussions/versioning.rst:6 #: ../source/specifications/simple-repository-api.rst:358 @@ -3409,7 +3409,7 @@ msgid "" "Python projects adopting semantic versioning should abide by clauses 1-8 of " "the `Semantic Versioning 2.0.0 specification `_." msgstr "" -"采用语义版本控制的 Python 项目应遵守 `语义版本控制 2.0.0 规范 ` 的" +"采用语义版本控制的 Python 项目应遵守 `语义版本控制 2.0.0 规范 `_ 的" "第 1-8 条。" #: ../source/discussions/versioning.rst:116 @@ -3556,8 +3556,8 @@ msgid "" "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -"对于希望确保版本查询调用(例如``pip -V``)尽快运行的 CLI 应用程序来说,此技术" -"特别有价值。" +"对于希望确保版本查询调用(例如 ``pip -V``)尽快运行的 CLI 应用程序来说,此技" +"术特别有价值。" #: ../source/discussions/versioning.rst:199 msgid "" @@ -3734,10 +3734,9 @@ msgid "" "in the ``[build-system]`` table." msgstr "" ":file:`pyproject.toml` 文件至少需要一个指定构建工具的 ``[build-system]`` 表。" -"有许多可用的构建工具,包括但不限" -"于 :ref:`flit`、 :ref:`hatch`、 :ref:`pdm`、 :ref:`poetry`、 :ref:`setuptools`、" -"` trampolim`_ 和 `whey`_ 。每个工具的文档都会显示需要在 ``[build-system]`` 表" -"中放置的内容。" +"有许多可用的构建工具,包括但不限于 " +":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`:" @@ -3932,9 +3931,9 @@ msgid "" "(:term:`Wheel` intentionally does not include compiled Python files). " "See :ref:`package-formats` for more information." msgstr "" -"一种 :term:`分发 ` 格式,包含只需移动到目标系统上正确位" -"置的文件和元数据,即可安装。:term:`Wheel` 是这样一种格式,而 :term:`源分发 " -"`不是,因为它需要一个构建步骤才能安装。 " +"一种 :term:`分发包 ` 格式,包含只需移动到目标系统上正确" +"位置的文件和元数据,即可安装。:term:`Wheel` 是这样一种格式,而 :term:`源分发 " +"` 不是,因为它需要一个构建步骤才能安装。" "这种格式并不意味着必须预编译 Python 文件(:term:`Wheel` 有意不包括编译好的 " "Python 文件)。更多信息见 :ref:`package-formats`。" @@ -3985,7 +3984,7 @@ msgstr "" #: ../source/glossary.rst:89 msgid "Distribution Package" -msgstr "发行版" +msgstr "分发包" #: ../source/glossary.rst:92 msgid "" @@ -4010,8 +4009,8 @@ msgid "" "breakdown of the differences." msgstr "" "分发包更常被简称为“包”或“分发”,但本指南可能会使用“分发包”而非简称,因为需要" -"防止和术语 :term:`Import Package`(通常也被叫做“包‘)或另一种分发类型(如 " -"Linux 发行版或 Python 语言发行版)混淆,这两者常用单个术语“distribution”表" +"避免与通常也被叫做“包”的 :term:`导入包 ` 或另一种分发类型(" +"如 Linux 发行版或 Python 语言发行版)混淆,这两者常用单个术语“distribution”表" "示。有关含义差别的详细解释,见 :ref:`distribution-package-vs-import-" "package`。" @@ -4305,7 +4304,7 @@ msgstr "" #: ../source/glossary.rst:284 msgid "Python Packaging Authority (PyPA)" -msgstr "Python 包装管理局 (PyPA)" +msgstr "Python 打包管理局(PyPA)" #: ../source/glossary.rst:287 msgid "" @@ -4658,12 +4657,11 @@ msgid "" "`__" msgstr "" -"要使用 `Google BigQuery`_ 查询 `公开 PyPI 下载统计数据集 `_ ,你需要一个 Google 账户,并在 Google Cloud " -"Platform 项目上启用 BigQuery API 。无需信用卡,你可以 `使用无需信用卡的 " -"BigQuery 免费套餐 `__ 每月运行高达 " -"1TB 的查询" +"要使用 `Google BigQuery`_ 查询 `公开 PyPI 下载统计数据集`_,你需要一个 " +"Google 账户,并在 Google Cloud Platform 项目上启用 BigQuery API。无需信用卡," +"你可以 `使用无需信用卡的 BigQuery 免费套餐 `__ 每月运行高达 1TB 的查询" #: ../source/guides/analyzing-pypi-package-downloads.rst:57 msgid "Navigate to the `BigQuery web UI`_." @@ -4687,8 +4685,8 @@ msgid "" "out the `BigQuery quickstart guide `__." msgstr "" -"关于如何开始使用 BigQuery 的更多详细说明,请查看`BigQuery 快速入门指南 " -"`__ 。" +"关于如何开始使用 BigQuery 的更多详细说明,请查看 `BigQuery 快速入门指南 " +"`__。" #: ../source/guides/analyzing-pypi-package-downloads.rst:68 msgid "Data schema" @@ -5609,9 +5607,8 @@ msgid "" "main/README.md>`_ from the `PyPA sample project `_." msgstr "" -"有关示例,请参阅来自` PyPA 示例项目 `_ 的 `README.md `_ 。" +"有关示例,请参阅 `PyPA 示例项目 `_ 中" +"的 `README.md `_。" #: ../source/guides/distributing-packages-using-setuptools.rst:102 msgid "" @@ -5643,7 +5640,7 @@ msgid "" "its manifest file, since all the necessary files have been included " "by :ref:`setuptools` 43.0.0 and newer." msgstr "" -"然而,你可能不是必须要使用 :file:`MANIFEST.in`。举个例子,`PyPA 示例项目" +"然而,你可能不是必须要使用 :file:`MANIFEST.in`。举个例子,`PyPA 示例项目 " "`_ 已经删除了它的清单文件,因为所有必" "要的文件已经被 :ref:`setuptools` 43.0.0 和更新的版本所包含。" @@ -6955,9 +6952,9 @@ msgid "" "are `mypy `_, `flake8 `_, `black `_, and :ref:`pipenv`." msgstr "" -"许多软件包提供命令行程序。这样的软件包的例子有`mypy `_, `flake8 `_, `black `_, 和 :ref:`pipenv`。" +"许多软件包提供命令行程序。这样的软件包的例子有 `mypy `_、`flake8 `_、`black `_ 和 :ref:`pipenv`。" #: ../source/guides/installing-stand-alone-command-line-tools.rst:12 msgid "" @@ -6976,7 +6973,7 @@ msgid "" "safely run the applications from anywhere." msgstr "" ":ref:`pipx` 解决这个问题的办法是为每个软件包创建一个虚拟环境,同时也确保其应" -"用程序可以通过你 `$PATH`` 上的目录访问。这允许每个软件包在升级或卸载时不会与" +"用程序可以通过你 ``$PATH`` 上的目录访问。这允许每个软件包在升级或卸载时不会与" "其他软件包产生冲突,并允许你在任何地方安全地运行程序。" #: ../source/guides/installing-stand-alone-command-line-tools.rst:23 @@ -6992,8 +6989,8 @@ 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``上。你可能需要重新启动你的终端以使" -"这个更新生效。" +"``ensurepath`` 确保程序目录在你的 ``$PATH`` 上。你可能需要重新启动你的终端以" +"使这个更新生效。" #: ../source/guides/installing-stand-alone-command-line-tools.rst:46 msgid "" @@ -7288,7 +7285,7 @@ msgstr "" #: ../source/guides/installing-using-pip-and-virtual-environments.rst:67 msgid "" "``venv`` will create a virtual Python installation in the ``.venv`` folder." -msgstr "`venv`` 将在 `.venv`` 文件夹中创建一个虚拟的 Python 安装。" +msgstr "``venv`` 将在 ``.venv`` 文件夹中创建一个虚拟的 Python 安装。" #: ../source/guides/installing-using-pip-and-virtual-environments.rst:69 msgid "" @@ -7988,8 +7985,8 @@ msgid "" "Markdown (`GitHub Flavored Markdown `_ by " "default, or `CommonMark `_)" msgstr "" -"Markdown(默认情况下 `GitHub 风格 Markdown `_ ,或`CommonMark `_ )" +"Markdown(默认情况下为 `GitHub 风格 Markdown " +"`_,或 `CommonMark `_)" #: ../source/guides/making-a-pypi-friendly-readme.rst:21 msgid "" @@ -8270,7 +8267,7 @@ msgid "" "user registrations at ``pypi.org`` are open." msgstr "" "为了帮助减轻针对 PyPI 的垃圾邮件攻击,通过 ``pypi.python.org`` 的新用户注册已" -"于 *2018年2月20日* *关闭* 。在``pypi.org``的新用户注册是开放的。" +"于 *2018年2月20日* *关闭*。在 ``pypi.org`` 上的新用户注册是开放的。" #: ../source/guides/migrating-to-pypi-org.rst:125 msgid "Browsing packages" @@ -11202,11 +11199,11 @@ msgstr "Python 打包用户指南 (PyPUG) 是一个打包 Python 软件的教程 #: ../source/index.rst:-1 msgid "python, packaging, guide, tutorial" -msgstr "python, 包装, 指南, 教程" +msgstr "python, 打包, 指南, 教程" #: ../source/index.rst:3 ../source/key_projects.rst:247 msgid "Python Packaging User Guide" -msgstr "Python 包装用户指南" +msgstr "Python 打包用户指南" #: ../source/index.rst:25 msgid "" @@ -12337,8 +12334,8 @@ msgid "" "Organizations who use pypiserver usually download packages both from " "pypiserver and from PyPI." msgstr "" -"pypiserver 是一个极简的应用程序,充当组织内的私有 Python :term:`package " -"index `(从一个本地目录),实现了一个简单的 API 和浏览器界面。" +"pypiserver 是一个极简的应用程序,充当组织内私有的 Python :term:`包索引 " +"`,从一个本地目录提供服务,实现了一个简单的 API 和浏览器界面。" "你可以使用标准的上传工具上传私有软件包,用户可以使用 :ref:`pip` 下载和安装它" "们,而不用公开发布。使用 pypiserver 的组织通常既从 pypiserver 也从 PyPI 下载" "软件包。" @@ -27262,13 +27259,13 @@ msgstr "" #: ../source/tutorials/installing-packages.rst:5 msgid "Installing Packages" -msgstr "" +msgstr "安装软件包" #: ../source/tutorials/installing-packages.rst:7 msgid "" "This section covers the basics of how to install Python :term:`packages " "`." -msgstr "" +msgstr "本节介绍如何安装 Python :term:`分发包 ` 的基础知识。" #: ../source/tutorials/installing-packages.rst:10 msgid "" @@ -27282,26 +27279,35 @@ msgid "" "preferred, because it can easily be confused with a Linux distribution, or " "another larger software distribution like Python itself." msgstr "" +"需要注意的是,此上下文中的“package”一词用于描述待安装的软件集合(即 :term:`分" +"发包(distribution)` 的同义词)。它并不指你在 Python " +"源代码中导入的那种 :term:`软件包(package)`,即模块的容器。" +"在 Python 社区中,人们通常用“package”一词指代 :term:`分发包(distribution" +")`。“distribution”一词通常不受青睐,因为它很容易与 " +"Linux 发行版(Linux distribution)或像 Python 本身这样更大的软件发行体系混淆" +"。" #: ../source/tutorials/installing-packages.rst:24 msgid "Requirements for Installing Packages" -msgstr "" +msgstr "安装软件包的前提条件" #: ../source/tutorials/installing-packages.rst:26 msgid "" "This section describes the steps to follow before installing other Python " "packages." -msgstr "" +msgstr "本节介绍在安装其他 Python 软件包之前应遵循的步骤。" #: ../source/tutorials/installing-packages.rst:31 msgid "Ensure you can run Python from the command line" -msgstr "" +msgstr "请确保可以在命令行中运行 Python" #: ../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 "" @@ -27310,10 +27316,13 @@ msgid "" "the :ref:`Installing Python ` section of the " "Hitchhiker's Guide to Python." msgstr "" +"你应该会得到类似 ``Python 3.6.3`` 的输出。如果你没有安装 Python,请从 " +"`python.org`_ 安装最新的 3.x 版本,或参阅 Hitchhiker's Guide to Python 的 " +":ref:`安装 Python ` 一节。" #: ../source/tutorials/installing-packages.rst:53 msgid "If you're a newcomer and you get an error like this:" -msgstr "" +msgstr "如果你是新手,并且遇到了类似这样的错误:" #: ../source/tutorials/installing-packages.rst:62 msgid "" @@ -27322,6 +27331,9 @@ msgid "" "the Python for Beginners `getting started tutorial`_ for an introduction to " "using your operating system's shell and interacting with Python." msgstr "" +"这是因为本教程中的这条命令以及其他建议的命令都需要在 *shell* 中运行(也称 *终" +"端* 或 *控制台*)。有关使用操作系统的 shell 以及与 Python 交互的入门介绍,请" +"参阅 Python for Beginners 的 `入门教程`_。" #: ../source/tutorials/installing-packages.rst:68 msgid "" @@ -27329,6 +27341,8 @@ msgid "" "can run system commands like those in this tutorial by prefacing them with a " "``!`` character:" msgstr "" +"如果你使用的是 IPython 或 Jupyter notebook 这类增强型 shell,可以在系统命令前" +"加上 ``!`` 字符来运行本教程中的命令:" #: ../source/tutorials/installing-packages.rst:78 msgid "" @@ -27337,6 +27351,9 @@ msgid "" "the currently running notebook (which may not be the same Python " "installation that the ``python`` command refers to)." msgstr "" +"建议写 ``{sys.executable}`` 而不是简单的 ``python``,以确保命令在与当前正在运" +"行的 notebook 相匹配的 Python 安装环境中执行(``python`` 命令所指向的可能并不" +"是同一个 Python 安装环境)。" #: ../source/tutorials/installing-packages.rst:83 msgid "" @@ -27348,16 +27365,21 @@ msgid "" "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 发行版处理 Python 3 迁移的方式,在未先创建虚拟环境的情况下使" +"用系统 Python 的 Linux 用户,应将本教程中的 ``python`` 命令替换为 " +"``python3``,并将 ``python -m pip`` 命令替换为 ``python3 -m pip --user``。*切" +"勿* 使用 ``sudo`` 运行本教程中的任何命令:如果遇到权限错误,请回到创建虚拟环" +"境一节,先创建虚拟环境,然后按教程原文继续操作。" #: ../source/tutorials/installing-packages.rst:95 msgid "Ensure you can run pip from the command line" -msgstr "" +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 "" +msgstr "此外,你还需要确保 :ref:`pip` 可用。你可以运行以下命令来检查:" #: ../source/tutorials/installing-packages.rst:112 msgid "" @@ -27366,21 +27388,25 @@ msgid "" "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 上使用操作系统的软" +"件包管理器安装,则可能需要单独安装 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 "" +msgstr "如果尚未安装 ``pip``,请先尝试从标准库引导安装:" #: ../source/tutorials/installing-packages.rst:134 msgid "If that still doesn't allow you to run ``python -m pip``:" -msgstr "" +msgstr "如果这样仍然无法运行 ``python -m pip``:" #: ../source/tutorials/installing-packages.rst:136 msgid "" "Securely Download `get-pip.py `_ [1]_" -msgstr "" +msgstr "安全地下载 `get-pip.py `_ [1]_" #: ../source/tutorials/installing-packages.rst:139 msgid "" @@ -27388,6 +27414,8 @@ msgid "" "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 "" @@ -27397,20 +27425,24 @@ msgid "" "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 "" +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 "" +msgstr "确保你获得最新的功能和修复,以及对最新 Python 打包规范的支持。" #: ../source/tutorials/installing-packages.rst:172 msgid "Optionally, create a virtual environment" -msgstr "" +msgstr "(可选)创建虚拟环境" #: ../source/tutorials/installing-packages.rst:174 msgid "" @@ -27418,6 +27450,8 @@ msgid "" "details, but here's the basic :doc:`venv ` [3]_ command " "to use on a typical Linux system:" msgstr "" +"详细信息请参见 :ref:`下文 `,以下是" +"在典型 Linux 系统上使用的基本 :doc:`venv ` [3]_ 命令:" #: ../source/tutorials/installing-packages.rst:191 msgid "" @@ -27425,10 +27459,12 @@ msgid "" "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 "" +msgstr "创建虚拟环境" #: ../source/tutorials/installing-packages.rst:200 msgid "" @@ -27438,6 +27474,10 @@ msgid "" "safely install global command line tools, see :doc:`/guides/installing-stand-" "alone-command-line-tools`." msgstr "" +"Python 的“虚拟环境”(Virtual Environments)允许将 Python :term:`分发包 " +"` 安装在针对特定应用的隔离位置,而不是全局安装。如果你" +"想安全地安装全局命令行工具,请参见 :doc:`/guides/installing-stand-alone-" +"command-line-tools`。" #: ../source/tutorials/installing-packages.rst:206 msgid "" @@ -27447,6 +27487,9 @@ msgid "" "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 "" @@ -27454,12 +27497,16 @@ msgid "" "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 目录中怎么办?例如在共享主机上。" #: ../source/tutorials/installing-packages.rst:219 msgid "" @@ -27467,12 +27514,14 @@ msgid "" "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 "" +msgstr "目前,创建 Python 虚拟环境有两种常用工具:" #: ../source/tutorials/installing-packages.rst:225 msgid "" @@ -27481,6 +27530,9 @@ msgid "" "3.4 and later (Python versions prior to 3.12 also " "installed :ref:`setuptools`)." msgstr "" +":doc:`venv ` 在 Python 3.3 及更高版本中默认可用,并且在 " +"Python 3.4 及更高版本中会将 :ref:`pip` 安装到所创建的虚拟环境中(3.12 之前的 " +"Python 版本还会安装 :ref:`setuptools`)。" #: ../source/tutorials/installing-packages.rst:228 msgid "" @@ -27490,24 +27542,30 @@ msgid "" "``setuptools`` is no longer included by default starting with Python 3.12 " "(and ``virtualenv`` follows this behavior)." msgstr "" +":ref:`virtualenv` 需要单独安装,但支持 Python 2.7+ 和 Python 3.3+,并且默认会" +"将 :ref:`pip`、:ref:`setuptools` 和 :ref:`wheel` 安装到所创建的虚拟环境中。请" +"注意,从 Python 3.12 开始默认不再包含 ``setuptools``,``virtualenv`` 也遵循此" +"行为。" #: ../source/tutorials/installing-packages.rst:233 msgid "The basic usage is like so:" -msgstr "" +msgstr "基本用法如下:" #: ../source/tutorials/installing-packages.rst:235 msgid "Using :doc:`venv `:" -msgstr "" +msgstr "使用 :doc:`venv `:" #: ../source/tutorials/installing-packages.rst:251 msgid "Using :ref:`virtualenv`:" -msgstr "" +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 "" @@ -27515,6 +27573,8 @@ msgid "" "environment's variables are set within the current shell, and not in a " "subprocess (which then disappears, having no useful effect)." msgstr "" +"在 Unix shell 下使用 :command:`source` 可以确保虚拟环境的变量在当前 shell 中" +"设置,而不是在子进程中设置(子进程随后就会消失,不会产生任何实际效果)。" #: ../source/tutorials/installing-packages.rst:275 msgid "" @@ -27522,6 +27582,8 @@ msgid "" "the :command:`source` command, but should rather run the :command:`activate` " "script directly from the command shell like so:" msgstr "" +"在上述两种情况下,Windows 用户 *切勿* 使用 :command:`source` 命令,而应直接在" +"命令 shell 中运行 :command:`activate` 脚本,如下所示:" #: ../source/tutorials/installing-packages.rst:285 msgid "" @@ -27530,10 +27592,13 @@ msgid "" "a higher level tool, :ref:`Pipenv`, that automatically manages a separate " "virtual environment for each project and application that you work on." msgstr "" +"直接管理多个虚拟环境可能会变得繁琐,因此 :ref:`依赖管理教程 ` 引入了一个更高级的工具 :ref:`Pipenv`,它会为你参与的每个项目和" +"应用自动管理独立的虚拟环境。" #: ../source/tutorials/installing-packages.rst:292 msgid "Use pip for Installing" -msgstr "" +msgstr "使用 pip 安装" #: ../source/tutorials/installing-packages.rst:294 msgid "" @@ -27541,10 +27606,13 @@ msgid "" "usage scenarios. For more detail, see the :doc:`pip docs `, which " "includes a complete :doc:`Reference Guide `." msgstr "" +":ref:`pip` 是推荐的安装工具。下面我们将介绍最常见的使用场景。更多详细信息,请" +"参见 :doc:`pip 文档 `,其中包含完整的 :doc:`参考指南 `。" #: ../source/tutorials/installing-packages.rst:300 msgid "Installing from PyPI" -msgstr "" +msgstr "从 PyPI 安装" #: ../source/tutorials/installing-packages.rst:302 msgid "" @@ -27556,34 +27624,41 @@ msgid "" "of the supported specifiers can be found in the :ref:`Version specifier " "specification `. Below are some examples." msgstr "" +":ref:`pip` 最常见的用法是使用 :term:`需求说明符 ` 从 " +":term:`Python Package Index ` 安装。一般来说,需" +"求说明符由项目名称加上可选的 :term:`版本说明符 ` 组成。有" +"关受支持说明符的完整描述,请参见 :ref:`版本说明符规范 `。" +"下面是一些示例。" #: ../source/tutorials/installing-packages.rst:310 msgid "To install the latest version of \"SomeProject\":" -msgstr "" +msgstr "安装“SomeProject”的最新版本:" #: ../source/tutorials/installing-packages.rst:324 msgid "To install a specific version:" -msgstr "" +msgstr "安装特定版本:" #: ../source/tutorials/installing-packages.rst:338 msgid "To install greater than or equal to one version and less than another:" -msgstr "" +msgstr "安装大于等于某一版本且小于另一版本的版本:" #: ../source/tutorials/installing-packages.rst:353 msgid "" "To install a version that's :ref:`compatible ` with a certain version: [4]_" msgstr "" +"安装与某一版本 :ref:`兼容 ` 的版本" +":[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 "" +msgstr "在本例中,这意味着安装任意同时满足“==1.4.*”和“>=1.4.2”的版本。" #: ../source/tutorials/installing-packages.rst:373 msgid "Source Distributions vs Wheels" -msgstr "" +msgstr "源分发与 wheel 包" #: ../source/tutorials/installing-packages.rst:375 msgid "" @@ -27593,6 +27668,10 @@ msgid "" "can override pip`s default behavior by e.g. using its :ref:`--no-binary " "` option." msgstr "" +":ref:`pip` 既可以从 :term:`源分发(sdist)` 安装,也可以从 :term:`wheel 包 ` 安装;但如果 PyPI 上两者" +"同时存在,pip 将优先选择兼容的 :term:`wheel `。你可以通过例如使用 pip " +"的 :ref:`--no-binary ` 选项来覆盖其默认行为。" #: ../source/tutorials/installing-packages.rst:381 msgid "" @@ -27601,6 +27680,9 @@ msgid "" "Distributions (sdist) `, especially when " "a project contains compiled extensions." msgstr "" +":term:`wheel 包 ` 是一种预构建的 :term:`分发包 " +"` 格式,与 :term:`源分发(sdist)` 相比可" +"提供更快的安装速度,尤其是当项目包含已编译的扩展时。" #: ../source/tutorials/installing-packages.rst:386 msgid "" @@ -27608,32 +27690,40 @@ msgid "" "wheel and cache it for future installs, instead of rebuilding the source " "distribution in the future." msgstr "" +"如果 :ref:`pip` 没有找到可安装的 wheel,它会在本地构建一个 wheel 并将其缓存以" +"供将来安装使用,而不是在将来重新构建源分发。" #: ../source/tutorials/installing-packages.rst:394 msgid "Upgrade an already installed ``SomeProject`` to the latest from PyPI." -msgstr "" +msgstr "将已安装的 ``SomeProject`` 升级到 PyPI 上的最新版本。" #: ../source/tutorials/installing-packages.rst:411 msgid "Installing to the User Site" -msgstr "" +msgstr "安装到用户站点" #: ../source/tutorials/installing-packages.rst:413 msgid "" "To install :term:`packages ` that are isolated to the " "current user, use the ``--user`` flag:" msgstr "" +"要安装仅对当前用户生效的 :term:`分发包 `,请使用 ``--" +"user`` 标志:" #: ../source/tutorials/installing-packages.rst:428 msgid "" "For more information see the `User Installs `_ section from the pip docs." msgstr "" +"更多信息,请参见 pip 文档中的 `User Installs `_ 一节。" #: ../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 "" +"请注意,在虚拟环境中时 ``--user`` 标志无效——所有安装命令都将作用于该虚拟环境" +"。" #: ../source/tutorials/installing-packages.rst:435 msgid "" @@ -27645,6 +27735,11 @@ msgid "" "scripts are not available in your shell after installation, you'll need to " "add the directory to your :envvar:`PATH`:" msgstr "" +"如果 ``SomeProject`` 定义了命令行脚本或控制台入口点,``--user`` 会使它们被安" +"装到 `user base`_ 的二进制目录中,而该目录可能已经在你 shell 的 " +":envvar:`PATH` 中,也可能不在。(从版本 10 开始,pip 在将脚本安装到 " +":envvar:`PATH` 之外的目录时会显示警告。)如果安装后这些脚本在你的 shell 中不" +"可用,你需要将该目录添加到 :envvar:`PATH` 中:" #: ../source/tutorials/installing-packages.rst:443 msgid "" @@ -27654,6 +27749,10 @@ msgid "" "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 上,你可以运行 ``python -m site --user-base`` 并在末尾加上 " +"``bin`` 来找到 user base 二进制目录。例如,它通常会输出 ``~/.local``,其中 " +"``~`` 会展开为你的主目录的绝对路径,因此你需要将 ``~/.local/bin`` 添加到 " +"``PATH`` 中。你可以通过 `修改 ~/.profile`_ 来永久设置 ``PATH``。" #: ../source/tutorials/installing-packages.rst:449 msgid "" @@ -27666,40 +27765,48 @@ msgid "" "user ``PATH`` permanently in the `Control Panel`_. You may need to log out " "for the ``PATH`` changes to take effect." msgstr "" +"在 Windows 上,你可以运行 ``py -m site --user-site`` 并将 ``site-packages`` " +"替换为 ``Scripts`` 来找到 user base 二进制目录。例如,它可能返回 ``C:\\U" +"sers\\Username\\AppData\\Roaming\\Python36\\site-packages``,那么你需要将 " +"``C:\\Users\\Username\\AppData\\Roaming\\Python36\\Scripts`` 包含到 ``PATH`` " +"中。你可以在 `控制面板`_ 中永久设置用户 ``PATH``。可能需要注销后 ``PATH`` 的" +"更改才会生效。" #: ../source/tutorials/installing-packages.rst:465 msgid "" "Install a list of requirements specified in a :ref:`Requirements File " "`." -msgstr "" +msgstr "安装 :ref:`需求文件 ` 中指定的需求列表。" #: ../source/tutorials/installing-packages.rst:481 msgid "Installing from VCS" -msgstr "" +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 安装项目。有关语法的完整说明,请参见 pip 文档的 " +":ref:`VCS 支持 ` 一节。" #: ../source/tutorials/installing-packages.rst:505 msgid "Installing from other Indexes" -msgstr "" +msgstr "从其他索引安装" #: ../source/tutorials/installing-packages.rst:507 msgid "Install from an alternate index" -msgstr "" +msgstr "从备用索引安装" #: ../source/tutorials/installing-packages.rst:521 msgid "" "Search an additional index during install, in addition to :term:`PyPI " "`" -msgstr "" +msgstr "安装时除 :term:`PyPI ` 外,还搜索一个额外的索引" #: ../source/tutorials/installing-packages.rst:537 msgid "Installing from a local src tree" -msgstr "" +msgstr "从本地 src 树安装" #: ../source/tutorials/installing-packages.rst:540 msgid "" @@ -27707,24 +27814,28 @@ msgid "" "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 "" +"以 :doc:`开发模式 ` 从本地 src 安装," +"即项目看起来已被安装,但仍可以直接在 src 树中编辑。" #: ../source/tutorials/installing-packages.rst:557 msgid "You can also install normally from src" -msgstr "" +msgstr "你也可以从 src 进行常规安装" #: ../source/tutorials/installing-packages.rst:572 msgid "Installing from local archives" -msgstr "" +msgstr "从本地归档文件安装" #: ../source/tutorials/installing-packages.rst:574 msgid "Install a particular source archive file." -msgstr "" +msgstr "安装特定的源码归档文件。" #: ../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" @@ -27737,16 +27848,19 @@ msgid "" "with the :ref:`simple repository API `:, and use the " "``--extra-index-url`` flag to direct pip to use that index." msgstr "" +"要从其他数据源(例如 Amazon S3 存储)安装,你可以创建一个辅助应用,以符合 " +":ref:`简单仓库 API ` 的格式呈现数据,并使用 ``--extra-" +"index-url`` 标志让 pip 使用该索引:" #: ../source/tutorials/installing-packages.rst:622 msgid "Installing Prereleases" -msgstr "" +msgstr "安装预发布版本" #: ../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 "" +msgstr "除稳定版本外,还查找预发布版本和开发版本。默认情况下,pip 只查找稳定版本。" #: ../source/tutorials/installing-packages.rst:640 msgid "Installing \"Extras\"" @@ -27759,6 +27873,9 @@ msgid "" "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 "" @@ -27766,6 +27883,8 @@ msgid "" "like :command:`curl` that verifies SSL certificates when downloading from " "https URLs." msgstr "" +"此上下文中的“安全”是指使用现代浏览器,或像 :command:`curl` 这样在从 https " +"URL 下载时会验证 SSL 证书的工具。" #: ../source/tutorials/installing-packages.rst:674 msgid "" @@ -27773,12 +27892,16 @@ msgid "" "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` 的替代方案)创" +"建的 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)说明符已在 :pep:`440` 中被采纳,相关支持已随 " +":ref:`setuptools` v8.0 和 :ref:`pip` v6.0 发布" #: ../source/tutorials/managing-dependencies.rst:4 msgid "Managing Application Dependencies" @@ -28364,7 +28487,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:389 msgid "" "Once installed, run Twine to upload all of the archives under :file:`dist`:" -msgstr "安装后,运行 Twine 上传 :file:`dist`下的所有档案:" +msgstr "安装后,运行 Twine 上传 :file:`dist` 下的所有档案:" #: ../source/tutorials/packaging-projects.rst:403 msgid "" From 6687ecfb5518ac4337f56291e3ae43932d0e07fc Mon Sep 17 00:00:00 2001 From: Hosted Weblate user 54392 Date: Mon, 28 Sep 2026 06:52:27 +0200 Subject: [PATCH 20/24] Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (4545 of 4545 strings) Co-authored-by: Hosted Weblate user 54392 Translate-URL: https://hosted.weblate.org/projects/pypa/packaging-python-org/zh_Hans/ Translation: pypa/packaging.python.org --- locales/zh_Hans/LC_MESSAGES/messages.po | 37 +++++++++++++------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/locales/zh_Hans/LC_MESSAGES/messages.po b/locales/zh_Hans/LC_MESSAGES/messages.po index d95a42e09..dccb8ede6 100644 --- a/locales/zh_Hans/LC_MESSAGES/messages.po +++ b/locales/zh_Hans/LC_MESSAGES/messages.po @@ -49,8 +49,9 @@ msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-09-22 14:24+0000\n" -"PO-Revision-Date: 2026-09-24 14:59+0000\n" -"Last-Translator: Michael \n" +"PO-Revision-Date: 2026-09-25 14:53+0000\n" +"Last-Translator: Hosted Weblate user 54392 " +"\n" "Language-Team: Chinese (Simplified Han script) \n" "Language: zh_Hans\n" @@ -3101,9 +3102,9 @@ msgid "" "` is used for development and a " "regular installation is used for testing)." msgstr "" -"这意味着 ``src`` 布局在项目的开发工作流程中涉及一个额外的步骤(通常,在开发中" -"使用 :doc:`可编辑安装 `,在测试中使用" -"常规安装)。" +"这意味着 src 布局在项目的开发工作流程中涉及一个额外的步骤(通常情况下, " +":doc:`可编辑安装 ` 用于开发,常规安装" +"用于测试)。" #: ../source/discussions/src-layout-vs-flat-layout.rst:56 msgid "" @@ -3140,8 +3141,8 @@ msgid "" "` is only able to import files that " "were meant to be importable." msgstr "" -"``src`` 布局有助于确保 :doc:`可编辑安装 ` 仅能导入那些本应可导入的文件。" +"src 布局有助于确保 :doc:`可编辑安装 ` " +"仅能导入那些本应可导入的文件。" #: ../source/discussions/src-layout-vs-flat-layout.rst:74 msgid "" @@ -3165,7 +3166,7 @@ msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:86 msgid "Running a command-line interface from source with src-layout" -msgstr "使用 ``src`` 布局从源代码运行命令行界面" +msgstr "使用 src 布局从源代码运行命令行界面" #: ../source/discussions/src-layout-vs-flat-layout.rst:88 msgid "" @@ -3177,11 +3178,11 @@ msgid "" "the package folder to Python's :py:data:`sys.path` when called via " "its :file:`__main__.py` file:" msgstr "" -"由于前述 ``src`` 布局的特点,命令行界面不能直接从 :term:`源码树 ` 运行,而需要将包以 :doc:`开发模式 ` 安装以便进行测试。由于在某些情况下这可能不太实际,一个解决" -"方法是在通过其 :file:`__main__.py` 文件调用时,将包文件夹添加到 Python 的 " -":py:data:`sys.path` 中:" +"由于前述 src 布局的特点,命令行界面不能直接从 :term:`源码树 ` 运行,而需要以 :doc:`开发模式 " +"` 安装包以便进行测试。由于某些情况下这可能不现实,一个变通方法是在通过其 " +":file:`__main__.py` 文件调用时,将包文件夹添加到 Python 的 " +":py:data:`sys.path` 开头:" #: ../source/discussions/versioning.rst:6 #: ../source/specifications/simple-repository-api.rst:358 @@ -3409,8 +3410,8 @@ msgid "" "Python projects adopting semantic versioning should abide by clauses 1-8 of " "the `Semantic Versioning 2.0.0 specification `_." msgstr "" -"采用语义版本控制的 Python 项目应遵守 `语义版本控制 2.0.0 规范 `_ 的" -"第 1-8 条。" +"采用语义版本控制的 Python 项目应遵守 `Semantic Versioning 2.0.0 " +"specification `_ 的 1-8 条款。" #: ../source/discussions/versioning.rst:116 msgid "" @@ -27848,9 +27849,9 @@ msgid "" "with the :ref:`simple repository API `:, and use the " "``--extra-index-url`` flag to direct pip to use that index." msgstr "" -"要从其他数据源(例如 Amazon S3 存储)安装,你可以创建一个辅助应用,以符合 " -":ref:`简单仓库 API ` 的格式呈现数据,并使用 ``--extra-" -"index-url`` 标志让 pip 使用该索引:" +"要从其他数据源(例如 Amazon S3 存储)安装,你可以创建一个以符合 :ref:`简单仓" +"库 API ` 的格式呈现数据的助手程序,并使用 ``--extra-" +"index-url`` 标记让 pip 使用该索引。" #: ../source/tutorials/installing-packages.rst:622 msgid "Installing Prereleases" From 31a7dd8409ba4fffec01006fa1f628c3d7d4f5a6 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 28 Sep 2026 06:52:28 +0200 Subject: [PATCH 21/24] Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (4545 of 4545 strings) Co-authored-by: Michael Translate-URL: https://hosted.weblate.org/projects/pypa/packaging-python-org/zh_Hans/ Translation: pypa/packaging.python.org --- locales/zh_Hans/LC_MESSAGES/messages.po | 8228 ++++++++++++++++++----- 1 file changed, 6422 insertions(+), 1806 deletions(-) diff --git a/locales/zh_Hans/LC_MESSAGES/messages.po b/locales/zh_Hans/LC_MESSAGES/messages.po index dccb8ede6..5601b9af8 100644 --- a/locales/zh_Hans/LC_MESSAGES/messages.po +++ b/locales/zh_Hans/LC_MESSAGES/messages.po @@ -49,9 +49,8 @@ msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-09-22 14:24+0000\n" -"PO-Revision-Date: 2026-09-25 14:53+0000\n" -"Last-Translator: Hosted Weblate user 54392 " -"\n" +"PO-Revision-Date: 2026-09-25 14:54+0000\n" +"Last-Translator: Michael \n" "Language-Team: Chinese (Simplified Han script) \n" "Language: zh_Hans\n" @@ -151,10 +150,10 @@ msgid "" "accomplishing the task. :doc:`example guide-style document `." msgstr "" -"指南的重点是完成一项具体的任务,并可以假定有一定程度的前提知识。这类似于教" -"程,但有一个狭窄和明确的重点,并可以根据需要提供大量的注意事项和附加信息。他" -"们还可以讨论完成任务的多种方法。 :doc:`example guide-style document `。" +"指南的重点是完成一项具体的任务,并可以假定有一定程度的前提知识。这类似于教程" +",但有一个狭窄和明确的重点,并可以根据需要提供大量的注意事项和附加信息。他们" +"还可以讨论完成任务的多种方法。 :doc:`指南式文档示例 `。" #: ../source/contribute.rst:60 ../source/discussions/index.rst:2 msgid "Discussions" @@ -166,9 +165,8 @@ msgid "" "specific topic without a specific goal in mind. :doc:`example discussion-" "style document `." msgstr "" -"讨论 (Discussions) 的重点是理解和信息。这些探索一个特定的主题,没有具体的目" -"标。 :doc:`example discussion-style document `。" +"讨论 (Discussions) 的重点是理解和信息。这些探索一个特定的主题,没有具体的目标" +"。 :doc:`讨论式文档示例 `。" #: ../source/contribute.rst:67 msgid "Specifications" @@ -182,8 +180,7 @@ msgid "" "metadata>`." msgstr "" "规范 (Specifications) 是参考文档,侧重于全面记录打包工具之间互操作性的一致接" -"口。 :doc:`example specification-style document `。" +"口。 :doc:`规范式文档示例 `。" #: ../source/contribute.rst:75 msgid "Translations" @@ -318,7 +315,7 @@ msgid "" "readthedocs.org/projects/python-packaging-user-guide/. It's served from a " "custom domain and fronted by Fast.ly." msgstr "" -"该指南是通过ReadTheDocs部署的,配置位于 https://readthedocs.org/projects/" +"该指南是通过 ReadTheDocs 部署的,配置位于 https://readthedocs.org/projects/" "python-packaging-user-guide/ 。它由一个自定义域名提供服务,并由 Fast.ly 提供" "支持。" @@ -661,8 +658,8 @@ msgid "" "tool downloads the specified Python-interpreter for Windows and packages it " "with all the dependencies in a single Windows-executable installer." msgstr "" -"`Pynsist `__ 是一个基于NSIS的单一安装程序," -"并将 Python 程序与 Python 解释器捆绑在一起的工具。在大多数情况下,打包 " +"`Pynsist `__ 是一个基于 NSIS 的单一安装程序" +",并将 Python 程序与 Python 解释器捆绑在一起的工具。在大多数情况下,打包 " "(packaging) 只需要用户选择 Python 解释器的版本并声明程序的依赖性 " "(dependencies) 。该工具会下载用于 Windows 的 Python 解释器,并将其与所有依赖" "项打包成一个可在 Windows 执行的安装程序。" @@ -675,7 +672,7 @@ msgid "" "computer." msgstr "" "安装的程序可以从安装程序添加到开始菜单的快捷方式启动。它使用一个安装在其应用" -"程序目录中的Python解释器,与计算机上的任何其他 Python 安装无关。" +"程序目录中的 Python 解释器,与计算机上的任何其他 Python 安装无关。" #: ../source/discussions/deploying-python-applications.rst:71 msgid "" @@ -758,8 +755,8 @@ msgstr "" "`pex `__ 是一个用于生成 .pex(Python " "EXecutable)文件的库,它是可执行的 Python 环境,符合 virtualenvs 精神。pex 是" "对 :pep:`441` 中概述的思想的扩展,使部署 Python 应用程序像 cp 一样简单。pex " -"文件甚至可以包括多个特定平台的Python 分布,这意味着一个 pex 文件可以跨 Linux " -"和 macOS 移植。pex 是根据 Apache 2.0 许可证发布的。" +"文件甚至可以包括多个特定平台的 Python 分布,这意味着一个 pex 文件可以跨 " +"Linux 和 macOS 移植。pex 是根据 Apache 2.0 许可证发布的。" #: ../source/discussions/deploying-python-applications.rst:129 msgid "Configuration management" @@ -810,9 +807,9 @@ msgid "" "by the system package manager of the `Linux distribution `_, which " "is a different meaning." msgstr "" -"请注意,在 Linux 领域中,“分发软件包”通常缩写为 “distro package” 或简单称为 " -"“package”,指的是由 ` Linux 发行版 `_ 的系统包管理器提供的内容,这" -"与 Python 中的含义不同。" +"请注意,在 Linux 领域中,“分发软件包”通常缩写为 “distro package” 或简单称为 “" +"package”,指的是由 `Linux 发行版 `_ 的系统包管理器提供的内容,这与 " +"Python 中的含义不同。" #: ../source/discussions/distribution-package-vs-import-package.rst:31 msgid "What's an import package?" @@ -850,8 +847,8 @@ msgid "" "(or non-package module), with a matching name. For example, ``pip install " "numpy`` lets you ``import numpy``." msgstr "" -"大多数情况下,分发包会提供一个具有匹配名称的导入包(或非包模块)。例如," -"``pip install numpy``允许你``import numpy``。" +"大多数情况下,分发包会提供一个具有匹配名称的导入包(或非包模块)。例如" +",``pip install numpy`` 允许你 ``import numpy``。" #: ../source/discussions/distribution-package-vs-import-package.rst:53 msgid "" @@ -970,7 +967,7 @@ msgid "" "compatibility with specific versions of non-Python software." msgstr "" "虽然 PyPI 和 Python 打包工具(例如::ref:`pip`)是分发 Python 包的主要方式," -"但它们也常常被包含在其他打包生态系统中。这些重新打包的工作统称为*下游*打包" +"但它们也常常被包含在其他打包生态系统中。这些重新打包的工作统称为 *下游* 打包" "(你自己的工作则称为 *上游* 打包),包括 Linux 发行版、Conda、Homebrew 和 " "MacPorts 等项目。它们通常旨在为无法仅通过 Python 打包工具处理的用例提供更好的" "支持,例如与特定操作系统的原生集成,或与特定版本的非 Python 软件确保兼容性。" @@ -1024,7 +1021,7 @@ msgid "" "such as Gentoo Linux, for example)." msgstr "" "请注意,下游构建不仅包括二进制文件的重新分发,还包括在用户系统上进行的源码构" -"建(例如在以源码优先的发行版中,像Gentoo Linux)。" +"建(例如在以源码优先的发行版中,像 Gentoo Linux)。" #: ../source/discussions/downstream-packaging.rst:51 msgid "Provide complete source distributions" @@ -1046,9 +1043,9 @@ msgid "" "the distribution. This is also true of pure Python packages that provide " "universal wheels. The reasons for using source distributions may include:" msgstr "" -"绝大多数下游打包者倾向于从源代码构建软件包,而不是使用上游提供的二进制软件" -"包。在某些情况下,使用源代码实际上是软件包被包含在发行版中的必要条件。这同样" -"适用于提供通用轮的纯 Python 软件包。使用源码分发的原因可能包括:" +"绝大多数下游打包者倾向于从源代码构建软件包,而不是使用上游提供的二进制软件包" +"。在某些情况下,使用源代码实际上是软件包被包含在发行版中的必要条件。这同样适" +"用于提供通用轮的纯 Python 软件包。使用源分发的原因可能包括:" #: ../source/discussions/downstream-packaging.rst:62 msgid "Being able to audit the source code of all packages." @@ -1091,8 +1088,8 @@ msgid "" "supported than e.g. using a Git clone. This can help users with poor " "Internet connectivity." msgstr "" -"获取单个文件通常比Git克隆等方式更高效、更可靠、更被支持。这有助于网络连接不佳" -"的用户。" +"获取单个文件通常比 Git 克隆等方式更高效、更可靠、更被支持。这有助于网络连接不" +"佳的用户。" #: ../source/discussions/downstream-packaging.rst:83 msgid "" @@ -1124,8 +1121,8 @@ msgid "" "in the resulting builds." msgstr "" "明确发布存档文件可以确保在创建源归档时解决对版本控制系统元数据的任何依赖。例" -"如,自动生成的Git存档会省略所有提交标签信息,可能会导致生成的构建中版本详细信" -"息不正确。" +"如,自动生成的 Git 存档会省略所有提交标签信息,可能会导致生成的构建中版本详细" +"信息不正确。" #: ../source/discussions/downstream-packaging.rst:99 #: ../source/discussions/downstream-packaging.rst:179 @@ -1157,10 +1154,10 @@ msgid "" "files) should also be included, to help downstreams determine the needed " "dependencies, and check for changes in them." msgstr "" -"这一点仅适用于属于软件包本身的文件。下游打包过程与Python软件包管理器非常类" -"似,将提供您的软件包及其构建脚本所需的必要的Python依赖项、系统工具和外部库。" -"然而,还应包括列出这些依赖项的文件(例如,``requirements*.txt`` 文件),帮助" -"下游确定所需的依赖项,并检查其中是否有变化。" +"这一点仅适用于属于软件包本身的文件。下游打包过程与 Python 软件包管理器非常类" +"似,将提供你的软件包及其构建脚本所需的必要的 Python 依赖项、系统工具和外部库" +"。然而,还应包括列出这些依赖项的文件(例如,``requirements*.txt`` 文件),帮" +"助下游确定所需的依赖项,并检查其中是否有变化。" #: ../source/discussions/downstream-packaging.rst:115 msgid "" @@ -1174,11 +1171,11 @@ msgid "" "Alternatively, large files, such as test data, can be split into separate " "archives." msgstr "" -"一些项目对使用PyPI源分发的Python软件包管理器有关。他们不想用这些工具不使用的" -"文件来增加它们的大小,或者他们根本不想发布源分发,因为它们允许从源代码构建特" -"定项目的问题或完全无功能的后退。在这些情况下,一个好的折衷方案可能是发布一个" -"单独的源代码归档,以便在其他地方下游使用,例如将其附加到GitHub版本中。或者," -"大型文件,如测试数据,可以拆分成单独的档案。" +"一些项目对使用 PyPI 源分发的 Python 软件包管理器有关。他们不想用这些工具不使" +"用的文件来增加它们的大小,或者他们根本不想发布源分发,因为它们允许从源代码构" +"建特定项目的问题或完全无功能的后退。在这些情况下,一个好的折衷方案可能是发布" +"一个单独的源代码归档,以便在其他地方下游使用,例如将其附加到 GitHub 版本中。" +"或者,大型文件,如测试数据,可以拆分成单独的档案。" #: ../source/discussions/downstream-packaging.rst:124 msgid "" @@ -1214,7 +1211,7 @@ msgid "" "actually included. Understandably, this requires more effort, so it's fine " "not do that — downstream packagers will report any missing files promptly." msgstr "" -"理想情况下,您还可以使用源分发来运行测试、构建文档等,或者添加特定测试以确保" +"理想情况下,你还可以使用源分发来运行测试、构建文档等,或者添加特定测试以确保" "包含所有必要的文件。可以理解的是,这需要付诸更多努力,所以不这样也没啥——下游" "的打包工具会立即报告任何可能的缺失文件。" @@ -1237,7 +1234,7 @@ msgid "" "properly authenticate downloads, using the Internet is discouraged for a " "number of reasons:" msgstr "" -"即便不存在此类情况,且假设您已严格确保下载验证,出于多方面考虑,仍不建议在构" +"即便不存在此类情况,且假设你已严格确保下载验证,出于多方面考虑,仍不建议在构" "建过程中接入互联网:" #: ../source/discussions/downstream-packaging.rst:160 @@ -1286,9 +1283,9 @@ msgid "" "all of these files or allow provisioning them externally, and the Internet " "must not be used if the files are already present." msgstr "" -"若软件包在实施使用互联网的任何自定义 *backend* 构建操作(例如自动下载供应商依" -"赖或获取Git子模块),其源码分发包必须包含所有这些文件,或允许通过外部方式提供" -"这些文件。当这些文件已存在时不准使用互联网。" +"若软件包在实施任何使用互联网的自定义 *构建后端* 操作(例如自动下载内置依赖或" +"获取 Git 子模块),其源分发应当包含所有这些文件,或允许通过外部方式提供这些文" +"件。当这些文件已存在时不得使用互联网。" #: ../source/discussions/downstream-packaging.rst:187 msgid "" @@ -1298,9 +1295,9 @@ msgid "" "Downstreams use frontends that use local provisioning for Python " "dependencies." msgstr "" -"注意,本条要求不适用于在软件包元数据中指定,由*前端*在构建和安装过程中自动获" -"取 的 Python依赖项(如 :ref:`build` 或 :ref:`pip`)。下游环节使用的前端是通过" -"本地方式提供 Python 依赖项的。" +"注意,本条要求不适用于在软件包元数据中指定,由 *前端* 在构建和安装过程中自动" +"获取的 Python 依赖项(如 :ref:`build` 或 :ref:`pip`)。下游环节使用的前端是通" +"过本地方式提供 Python 依赖项的。" #: ../source/discussions/downstream-packaging.rst:192 msgid "" @@ -1330,7 +1327,7 @@ msgid "" "absolutely must *verify their authenticity* (usually against a hash), to " "protect against the file being substituted by a malicious party." msgstr "" -"同时请记住,若获取远程资源,您必须 *验证其真实性*,通常通过核对哈希值,以防文" +"同时请记住,若获取远程资源,你必须 *验证其真实性*,通常通过核对哈希值,以防文" "件被恶意方替换。" #: ../source/discussions/downstream-packaging.rst:210 @@ -1343,8 +1340,8 @@ msgid "" "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项目包含非Python依赖项(例如使用C或C++编写的库)。在上游软件包构建" -"过程中尝试使用系统版本的这些依赖项,可能会给最终用户带来诸多问题:" +"某些 Python 项目包含非 Python 依赖项(例如使用 C 或 C++编写的库)。在上游软件" +"包构建过程中尝试使用系统版本的这些依赖项,可能会给最终用户带来诸多问题:" #: ../source/discussions/downstream-packaging.rst:219 msgid "" @@ -1353,9 +1350,9 @@ msgid "" "incompatible version is installed, the Python package may fail with errors " "that are not clear to inexperienced users, or even misbehave at runtime." msgstr "" -"发布的wheel包要求用户系统必须存在二进制兼容版本的依赖库。若该库缺失或安装了不" -"兼容的版本,Python软件包可能会因报错信息对入门用户不够清晰而运行失败,甚至可" -"能在运行时出现异常行为。" +"发布的 wheel 包要求用户系统必须存在二进制兼容版本的依赖库。若该库缺失或安装了" +"不兼容的版本,Python 软件包可能会因报错信息对入门用户不够清晰而运行失败,甚至" +"可能在运行时出现异常行为。" #: ../source/discussions/downstream-packaging.rst:224 msgid "" @@ -1363,8 +1360,8 @@ msgid "" "the dependency to be present, along with its development headers and other " "auxiliary files that some systems package separately from the library itself." msgstr "" -"从源码分发版进行构建时,不仅要求存在源码兼容版本的依赖项,还需要其开发头文件" -"及其他辅助文件——这些组件在某些操作系统中会与主程序库本身分开打包。" +"从源分发进行构建时,不仅要求存在源码兼容版本的依赖项,还需要其开发头文件及其" +"他辅助文件——这些组件在某些操作系统中会与主程序库本身分开打包。" #: ../source/discussions/downstream-packaging.rst:229 msgid "" @@ -1372,8 +1369,8 @@ msgid "" "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 "" -"即便对于资深用户而言,安装兼容版本的依赖项也可能极为困难。例如,其所用的Linux" -"发行版可能未提供所需版本,亦或是其他软件包要求使用不兼容的版本。" +"即便对于资深用户而言,安装兼容版本的依赖项也可能极为困难。例如,其所用的 " +"Linux 发行版可能未提供所需版本,亦或是其他软件包要求使用不兼容的版本。" #: ../source/discussions/downstream-packaging.rst:234 msgid "" @@ -1382,9 +1379,9 @@ msgid "" "library to a newer version that breaks binary compatibility with the Python " "package, and requires user intervention to fix." msgstr "" -"Python软件包与其系统依赖项之间的链接关系并未被包管理系统记录。后续的系统更新" -"可能会将程序库升级至与Python软件包二进制不兼容的新版本,从而需要用户手动干预" -"修复。" +"Python 软件包与其系统依赖项之间的链接关系并未被包管理系统记录。后续的系统更新" +"可能会将程序库升级至与 Python 软件包二进制不兼容的新版本,从而需要用户手动干" +"预修复。" #: ../source/discussions/downstream-packaging.rst:239 msgid "" @@ -1394,9 +1391,9 @@ msgid "" "dependencies are also repackaged on PyPI, and can be declared as project " "dependencies like any other Python package." msgstr "" -"基于上述原因,您可以合理选择以下方案:静态链接依赖项,或在安装包中提供本地副" -"本。您也可以在源码分发版中内置依赖项。某些情况下,这些依赖项还会被重新打包至" -"PyPI,此时即可像声明普通Python包依赖那样将其列为项目依赖项。" +"基于上述原因,你可以合理选择以下方案:静态链接依赖项,或在安装包中提供本地副" +"本。你也可以在源分发中内置依赖项。某些情况下,这些依赖项还会被重新打包至 PyPI" +",此时即可像声明普通 Python 包依赖那样将其列为项目依赖项。" #: ../source/discussions/downstream-packaging.rst:245 msgid "" @@ -1414,8 +1411,8 @@ msgid "" "support that makes it easier for users of those systems to access upstream " "projects in their preferred format." msgstr "" -"许多情况下,可靠地在各组件间共享动态依赖项是下游打包生态系统的主要 " -"*purpose*。支持这种机制能使这些系统的用户更便捷地以其偏好的格式访问上游项目。" +"许多情况下,可靠地在各组件间共享动态依赖项是下游打包生态系统的主要 *目的*。支" +"持这种机制能使这些系统的用户更便捷地以其偏好的格式访问上游项目。" #: ../source/discussions/downstream-packaging.rst:253 msgid "" @@ -1455,8 +1452,8 @@ msgid "" "catastrophic failures (like suddenly crashing and losing data)." msgstr "" "静态链接与内置依赖可能导致同一进程加载多个不同版本的相同库(例如,尝试导入两" -"个链接至同一库不同版本的Python包)。这种情况有时能正常运行,但也可能引发从库" -"加载错误、微妙的运行时缺陷,到灾难性故障(如突然崩溃并丢失数据)等一系列问" +"个链接至同一库不同版本的 Python 包)。这种情况有时能正常运行,但也可能引发从" +"库加载错误、微妙的运行时缺陷,到灾难性故障(如突然崩溃并丢失数据)等一系列问" "题。" #: ../source/discussions/downstream-packaging.rst:273 @@ -1500,9 +1497,9 @@ msgid "" "projects and downstream repackagers, not to suggest upstream projects take " "on tasks that downstream repackagers are better equipped to handle." msgstr "" -"上游项目将用系统依赖项构建的 *testing* 工作交由下游重打包者处理是合理的,这些" -"指导原则旨在促进上游项目与下游重打包者之间更高效的协作,而非建议上游项目承担" -"本应由更专业的下游重打包者完成的任务。" +"上游项目将用系统依赖项构建的 *测试* 工作交由下游重打包者处理是合理的,这些指" +"导原则旨在促进上游项目与下游重打包者之间更高效的协作,而非建议上游项目承担本" +"应由更专业的下游重打包者完成的任务。" #: ../source/discussions/downstream-packaging.rst:300 msgid "Support downstream testing" @@ -1515,8 +1512,8 @@ msgid "" "minimal smoke testing to comprehensive runs of the complete test suite. " "There can be various reasons for doing this, for example:" msgstr "" -"各类下游项目会对打包后的Python项目进行不同程度的测试。根据具体情况,测试范围" -"可能从最小化的冒烟测试到完整测试套件的全面执行。进行此类测试可能出于多种原" +"各类下游项目会对打包后的 Python 项目进行不同程度的测试。根据具体情况,测试范" +"围可能从最小化的冒烟测试到完整测试套件的全面执行。进行此类测试可能出于多种原" "因,例如:" #: ../source/discussions/downstream-packaging.rst:310 @@ -1592,7 +1589,7 @@ msgstr "" 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 "" @@ -1705,13 +1702,12 @@ 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`` 测试发现机制的测试用" -"例。" +"在理想情况下,请支持通过 ``pytest`` 运行你的测试套件。pytest_ 拥有大量对下游" +"项目十分实用的命令行参数,例如可以便捷地剔除指定测试、重跑不稳定测试(借助 " +"pytest-rerunfailures_)、设置超时防止测试挂起(借助 pytest-timeout_),或是并" +"行执行测试(借助 pytest-xdist_)。请注意:测试套件无需用 ``pytest`` *编写*," +"也能够用 ``pytest`` *执行*;``pytest`` 几乎能够发现并运行所有兼容标准库 " +"``unittest`` 测试发现机制的测试用例。" #: ../source/discussions/downstream-packaging.rst:409 msgid "Aim for stable releases" @@ -1806,6 +1802,8 @@ msgid "" "Consider making prereleases after major changes, to provide more testing " "opportunities for users and downstreams willing to opt-in." msgstr "" +"考虑在重大变更之后发布预发布版本,为愿意选择加入的用户和下游提供更多测试机会" +"。" #: ../source/discussions/downstream-packaging.rst:458 msgid "" @@ -1814,6 +1812,8 @@ msgid "" "are released separately. For example, Django_ currently maintains three " "release branches in addition to main." msgstr "" +"如果你的项目开发节奏非常密集,可以考虑拆分出一个或多个包含更保守提交子集、且" +"单独发布的分支。例如,Django_ 目前除 main 之外还维护着三个发布分支。" #: ../source/discussions/downstream-packaging.rst:463 msgid "" @@ -1821,12 +1821,16 @@ msgid "" "making additional patch releases with minimal changes to the previous " "version, especially when a security vulnerability is discovered." msgstr "" +"即使你不想永久维护额外的分支,也可以考虑为上一版本发布仅包含最小改动的额外补" +"丁版本,尤其是在发现安全漏洞时。" #: ../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 "" +"把你的改动拆分成目标明确、每次只解决一个问题的提交,以便在必要时更轻松地把改" +"动 cherry-pick 到较早的发布版本。" #: ../source/discussions/index.rst:4 msgid "" @@ -1966,8 +1970,8 @@ 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/ 。" +"“抽象 (Abstract)”与“具体 (Concrete)”要求的更多信息,请参阅 https://" +"caremad.io/posts/2013/07/setup-vs-requirement/。" #: ../source/discussions/package-formats.rst:5 msgid "Package Formats" @@ -1990,12 +1994,12 @@ msgid "" "purposes. When publishing a package on PyPI (or elsewhere), you should " "always upload both an sdist and one or more wheel." msgstr "" -"在像 PyPI_ 这样的包索引中,你会找到两种格式的文件:**源代码分发包**(简称 " -"**sdists**)和 **二进制分发包**,通常称为 **wheels**。例如,`PyPI 的 pip " -"23.3.1 页面 `_ 允许你下载两个文件,``pip-23.3.1.tar.gz`` 和 " -"``pip-23.3.1-py3-none-any.whl``。前者是一个 sdist,后者是一个 wheel。如下面所" -"解释的,这两者有不同的用途。当在 PyPI(或其他地方)发布包时,你应该始终上传一" -"个 sdist 和一个或多个 wheel 文件。" +"在像 PyPI_ 这样的包索引中,你会找到两种格式的文件:**源分发**,简称 " +"**sdists**;以及 **二进制分发包**,通常称为 **wheels**。例如,`PyPI 的 pip " +"23.3.1 页面 `_ 允许你下载两个文件,``pip-23.3.1.tar.gz`` 和 ``pip-" +"23.3.1-py3-none-any.whl``。前者是一个 sdist,后者是一个 wheel。如下面所解释的" +",这两者有不同的用途。当在 PyPI(或其他地方)发布包时,你应该始终上传一个 " +"sdist 和一个或多个 wheel 文件。" #: ../source/discussions/package-formats.rst:21 msgid "What is a source distribution?" @@ -2011,11 +2015,11 @@ msgid "" "INFO`` file follows the format specified in :ref:`core-metadata` and is not " "intended to be written by hand [#core-metadata-format]_." msgstr "" -"从概念上讲,源代码分发包是原始形式的源代码归档。具体来说,sdist 是一个 " -"``.tar.gz`` 压缩包,包含源代码以及一个额外的特殊文件 ``PKG-INFO`` ,该文件存" -"储项目的元数据。这个文件的存在帮助打包工具提高效率,因为它不需要自己计算元数" -"据。 ``PKG-INFO`` 文件遵循 :ref:`core-metadata` 中规定的格式,并不打算手动编" -"写 [#core-metadata-format]_ 。" +"从概念上讲,源分发是原始形式的源代码归档。具体来说,sdist 是一个 ``.tar.gz`` " +"压缩包,包含源代码以及一个额外的特殊文件 ``PKG-INFO`` ,该文件存储项目的元数" +"据。这个文件的存在帮助打包工具提高效率,因为它不需要自己计算元数据。 ``PKG-" +"INFO`` 文件遵循 :ref:`core-metadata` 中规定的格式,并不打算手动编写 [#core-" +"metadata-format]_ 。" #: ../source/discussions/package-formats.rst:31 msgid "" @@ -2040,10 +2044,10 @@ msgid "" "them over, e.g., pulling from a Git repository." msgstr "" "Sdists 在打包生态系统中有多个用途。当标准的 Python 包安装工具 :ref:`pip` 无法" -"找到要安装的 wheel 时,它会回退到下载源代码分发包,从中编译一个 wheel 并安装" -"这个 wheel。此外,sdists 经常作为下游打包者(如 Linux 发行版、Conda、macOS 上" -"的 Homebrew 和 MacPorts 等)的包源,因为各种原因,他们可能会更倾向于使用源代" -"码分发包,而不是例如从 Git 仓库中拉取代码。" +"找到要安装的 wheel 时,它会回退到下载源分发,从中编译一个 wheel 并安装这个 " +"wheel。此外,sdists 经常作为下游打包者(如 Linux 发行版、Conda、macOS 上的 " +"Homebrew 和 MacPorts 等)的包源,因为各种原因,他们可能会更倾向于使用源分发," +"而不是例如从 Git 仓库中拉取代码。" #: ../source/discussions/package-formats.rst:44 msgid "" @@ -2058,7 +2062,7 @@ msgid "" "If you want technical details on the sdist format, read the :ref:`sdist " "specification `." msgstr "" -"如果您需要有关 sdist 格式的技术细节,请阅读::ref:`sdist specification " +"如果你需要有关 sdist 格式的技术细节,请阅读::ref:`sdist specification " "`。" #: ../source/discussions/package-formats.rst:55 @@ -2155,11 +2159,11 @@ msgid "" msgstr "" "乍一看,你可能会想,\"纯粹的基础\" Python 项目是否真的需要 wheels。请记住,由" "于 sdists 的灵活性,像 pip 这样的安装工具不能直接从 sdists 安装——它们需要首先" -"通过调用 sdist 指定的 :term:`build backend` 来构建一个 wheel(构建后端在构建 " -"wheel 时可能会执行各种转换,例如编译 C 扩展)。因此,即使是纯 Python 项目,你" -"也应该始终将 *sdist* 和 *wheel* 都上传到 PyPI 或其他包索引。这会使你的用户安" -"装速度更快,因为 wheel 可以直接安装。通过只包含必须安装的文件,wheels 也使得" -"下载文件更小。" +"通过调用 sdist 指定的 :term:`构建后端 ` 来构建一个 wheel(构建" +"后端在构建 wheel 时可能会执行各种转换,例如编译 C 扩展)。因此,即使是纯 " +"Python 项目,你也应该始终将 *sdist* 和 *wheel* 都上传到 PyPI 或其他包索引。这" +"会使你的用户安装速度更快,因为 wheel 可以直接安装。通过只包含必须安装的文件," +"wheels 也使得下载文件更小。" #: ../source/discussions/package-formats.rst:102 msgid "" @@ -2266,8 +2270,8 @@ msgid "" "Wheel has an :doc:`official standard specification `. Egg did not." msgstr "" -"Wheel 有一个 :doc:`official standard specification `,而 Egg 没有。" +"Wheel 有一个 :doc:`官方标准规范 " +"`,而 Egg 没有。" #: ../source/discussions/package-formats.rst:152 msgid "" @@ -2306,9 +2310,8 @@ msgid "" "single wheel archive can indicate its compatibility with a number of Python " "language versions and implementations, ABIs, and system architectures." msgstr "" -"Wheel 有一个 :ref:`richer file naming convention `。一" -"个单一的 wheel 档案可以表明它与许多 Python 语言版本和实现、ABI 以及系统架构的" -"兼容性。" +"Wheel 有一个 :ref:`更丰富的文件命名惯例 `。一个单一的 " +"wheel 档案可以表明它与许多 Python 语言版本和实现、ABI 以及系统架构的兼容性。" #: ../source/discussions/package-formats.rst:168 msgid "" @@ -2346,9 +2349,8 @@ msgid "" "format, although :ref:`this is not officially supported at this time `." msgstr "" -"在某些情况下,wheels 可以作为可导入的运行时格式使用,尽管 :ref:`this is not " -"officially supported at this time `。" +"在某些情况下,wheels 可以作为可导入的运行时格式使用,尽管 :ref:`目前尚未得到" +"官方支持 `。" #: ../source/discussions/pip-vs-easy-install.rst:6 msgid "pip vs easy_install" @@ -2527,7 +2529,7 @@ msgid "" msgstr "" "Setuptools 完全可以作为打包 Python 项目的 :term:`构建后端 ` 使" "用。而 :file:`setup.py` 是一个有效的 :ref:`setuptools` 配置文件,它恰好是用 " -"Python 编写的,而不是使用 *TOML*(例如,其他工具如 *nox* 及其 " +"Python 编写的,而不是使用像 *TOML* 这样的格式(其他工具如 *nox* 及其 " ":file:`noxfile.py` 配置文件,或 *pytest* 及其 :file:`conftest.py` 文件也采用" "类似做法)。" @@ -2602,9 +2604,9 @@ msgid "" "what ``python -m build`` does. If necessary the ``--sdist`` and ``--wheel`` " "options can be used to generate only one or the other." msgstr "" -"这需要 :ref:`build` 依赖项。建议始终构建并发布项目的源代码分发包和 wheel,这" -"正是 ``python -m build`` 所做的。如果需要,可以使用 ``--sdist`` 和 ``--" -"wheel`` 选项仅生成其中之一。" +"这需要 :ref:`build` 依赖项。建议始终构建并发布项目的源分发和 wheel,这正是 " +"``python -m build`` 所做的。如果需要,可以使用 ``--sdist`` 和 ``--wheel`` 选" +"项仅生成其中之一。" #: ../source/discussions/setup-py-deprecated.rst:52 msgid "" @@ -3001,14 +3003,14 @@ msgid "" "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 "" -"版本字符串可以被硬编码到源代码中——可以是在一个特殊用途的文件中,例" -"如 :file:`_version.txt`(该文件必须作为项目源代码分发包的一部分进行发布),或" -"者作为特定模块中的一个属性,例如 :file:`__init__.py` 。构建系统随后可以在构建" -"时从运行时位置提取它。" +"版本字符串可以被硬编码到源代码中——可以是在一个特殊用途的文件中,例如 " +":file:`_version.txt` 文件(该文件必须作为项目源分发的一部分进行发布),或者作" +"为特定模块中的一个属性,例如 :file:`__init__.py` 。构建系统随后可以在构建时从" +"运行时位置提取它。" #: ../source/discussions/single-source-version.rst:38 msgid "Consult your build system's documentation for their recommended method." -msgstr "请查阅您的构建系统文档以了解其推荐的方法。" +msgstr "请查阅你的构建系统文档以了解其推荐的方法。" #: ../source/discussions/single-source-version.rst:40 msgid "" @@ -3093,7 +3095,7 @@ msgstr "以下详解 src 布局和平坦布局之间重要的行为差异:" msgid "" "The src layout requires installation of the project to be able to run its " "code, and the flat layout does not." -msgstr "src布局需要安装项目才能运行其代码,而平面布局则不需要。" +msgstr "src 布局需要安装项目才能运行其代码,而平面布局则不需要。" #: ../source/discussions/src-layout-vs-flat-layout.rst:51 msgid "" @@ -3102,15 +3104,15 @@ msgid "" "` is used for development and a " "regular installation is used for testing)." msgstr "" -"这意味着 src 布局在项目的开发工作流程中涉及一个额外的步骤(通常情况下, " -":doc:`可编辑安装 ` 用于开发,常规安装" -"用于测试)。" +"这意味着 ``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布局可以帮助避免意外地使用开发中的代码副本。" +msgstr "src 布局可以帮助避免意外地使用开发中的代码副本。" #: ../source/discussions/src-layout-vs-flat-layout.rst:59 msgid "" @@ -3122,7 +3124,7 @@ msgid "" "packaging tooling, which could result in files not being included in a " "distribution." msgstr "" -"Python解释器将当前工作目录设为第一导入路径。这意味着如果在当前工作目录中存在" +"Python 解释器将当前工作目录设为第一导入路径。这意味着如果在当前工作目录中存在" "与安装的包同名的包时将会使用当前目录的包。这可能会导致项目打包工具被错误地配" "置,进而导致文件不被包含在发行版本。" @@ -3132,8 +3134,8 @@ msgid "" "separate from the root directory of the project, ensuring that the installed " "copy is used." msgstr "" -"src布局有助于避免这种情况,它将导入包保存在与项目根目录不同的目录中,确保使用" -"已安装的副本。" +"src 布局有助于避免这种情况,它将导入包保存在与项目根目录不同的目录中,确保使" +"用已安装的副本。" #: ../source/discussions/src-layout-vs-flat-layout.rst:70 msgid "" @@ -3141,8 +3143,8 @@ msgid "" "` is only able to import files that " "were meant to be importable." msgstr "" -"src 布局有助于确保 :doc:`可编辑安装 ` " -"仅能导入那些本应可导入的文件。" +"``src`` 布局有助于确保 :doc:`可编辑安装 ` 仅能导入那些本应可导入的文件。" #: ../source/discussions/src-layout-vs-flat-layout.rst:74 msgid "" @@ -3166,7 +3168,7 @@ msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:86 msgid "Running a command-line interface from source with src-layout" -msgstr "使用 src 布局从源代码运行命令行界面" +msgstr "使用 ``src`` 布局从源代码运行命令行界面" #: ../source/discussions/src-layout-vs-flat-layout.rst:88 msgid "" @@ -3178,11 +3180,11 @@ msgid "" "the package folder to Python's :py:data:`sys.path` when called via " "its :file:`__main__.py` file:" msgstr "" -"由于前述 src 布局的特点,命令行界面不能直接从 :term:`源码树 ` 运行,而需要以 :doc:`开发模式 " -"` 安装包以便进行测试。由于某些情况下这可能不现实,一个变通方法是在通过其 " -":file:`__main__.py` 文件调用时,将包文件夹添加到 Python 的 " -":py:data:`sys.path` 开头:" +"由于前述 ``src`` 布局的特点,命令行界面不能直接从 :term:`源码树 ` 运行,而需要将包以 :doc:`开发模式 ` 安装以便进行测试。由于在某些情况下这可能不太实际,一个解决" +"方法是在通过其 :file:`__main__.py` 文件调用时,将包文件夹添加到 Python 的 " +":py:data:`sys.path` 中:" #: ../source/discussions/versioning.rst:6 #: ../source/specifications/simple-repository-api.rst:358 @@ -3206,10 +3208,10 @@ msgid "" "the :ref:`specification of version specifiers `. Here " "are some examples of version numbers [#version-examples]_:" msgstr "" -"不同的 Python 项目可能根据各自的需求使用不同的版本控制方案,但为了与" -"像 :ref:`pip` 这样的工具兼容,所有这些项目都需要遵循一个灵活的版本标识符格" -"式,权威参考是 :ref:`specification of version specifiers ` 。以下是一些版本号的示例 [#version-examples]_ :" +"不同的 Python 项目可能根据各自的需求使用不同的版本控制方案,但为了与像 " +":ref:`pip` 这样的工具兼容,所有这些项目都需要遵循一个灵活的版本标识符格式,权" +"威参考是 :ref:`版本说明符规范 ` 。以下是一些版本号的示例 " +"[#version-examples]_ :" #: ../source/discussions/versioning.rst:21 msgid "A simple version (final release): ``1.2.0``" @@ -3397,21 +3399,20 @@ msgid "" "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 "" -"对于那些确实使用严格语义版本控制的项目,这种方法允许用户使" -"用 :ref:`compatible release version specifiers ` ,并使用 ``~=`` 运算符。例如, ``name ~= X.Y`` 大致等价" -"于 ``name >= X.Y, == X.*`` ,即它要求至少是 X.Y 版本,并允许任何 X 不变且 Y " -"较大的后续版本。同样, ``name ~= X.Y.Z`` 大致等价于 ``name >= X.Y.Z, == " -"X.Y.*`` ,即要求至少是 X.Y.Z 版本,并允许任何 X 和 Y 相同但 Z 较大的后续版" -"本。" +"对于那些确实使用严格语义版本控制的项目,这种方法允许用户使用 :ref:`兼容发布版" +"本说明符 ` ,并使用 ``~=`` 运算符。例" +"如, ``name ~= X.Y`` 大致等价于 ``name >= X.Y, == X.*`` ,即它要求至少是 X.Y " +"版本,并允许任何 X 不变且 Y 较大的后续版本。同样, ``name ~= X.Y.Z`` 大致等价" +"于 ``name >= X.Y.Z, == X.Y.*`` ,即要求至少是 X.Y.Z 版本,并允许任何 X 和 Y " +"相同但 Z 较大的后续版本。" #: ../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 项目应遵守 `Semantic Versioning 2.0.0 " -"specification `_ 的 1-8 条款。" +"采用语义版本控制的 Python 项目应遵守 `语义版本控制 2.0.0 规范 `_ 的" +"第 1-8 条。" #: ../source/discussions/versioning.rst:116 msgid "" @@ -3448,8 +3449,8 @@ msgid "" "`_ (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 "" -"基于日期的版本控制,或称为`calendar versioning `_ (CalVer) ,的一个" -"主要优势是,通过版本号就可以直接判断特定版本的基础功能集已经有多旧。" +"基于日期的版本控制(或称 `calendar versioning `_,CalVer)的一个主要" +"优势是,通过版本号就可以直接判断特定版本的基础功能集已经有多旧。" #: ../source/discussions/versioning.rst:135 msgid "" @@ -3507,9 +3508,9 @@ msgid "" "redistributor." msgstr "" "公共版本标识符旨在支持通过 :term:`PyPI ` 进行分" -"发。Python 打包工具还支持 :ref:`local version identifier ` 的概念,可以用来标识不打算公开发布的本地开发构建,或由重新分发" -"者维护的已修改版本。" +"发。Python 打包工具还支持 :ref:`本地版本标识符 ` " +"的概念,可以用来标识不打算公开发布的本地开发构建,或由重新分发者维护的已修改" +"版本。" #: ../source/discussions/versioning.rst:166 msgid "" @@ -3580,6 +3581,10 @@ msgid "" "querying code should be designed to handle the case where the attribute is " "missing [#fallback-to-dist-version]_." msgstr "" +"由于导入包和模块并不 *必须* 以这种方式发布运行时版本信息(参见 :pep:`PEP 396 " +"<396>` 中已撤销的提案),``__version__`` 属性应当只在已知提供该属性的接口中查" +"询(例如项目查询自身版本,或查询其某个直接依赖项的版本),否则查询代码就应当" +"设计成能处理该属性缺失的情况 [#fallback-to-dist-version]_。" #: ../source/discussions/versioning.rst:211 msgid "" @@ -3589,12 +3594,17 @@ msgid "" "For example, the standard library's :mod:`ssl` module offers multiple ways " "to access the underlying OpenSSL library version::" msgstr "" +"有些项目可能需要为外部 API 发布版本信息,而这些版本并不是模块本身的版本。这类" +"项目应当定义项目专属的方式,以便在运行时获取相关信息。例如,标准库的 " +":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 "" @@ -3603,6 +3613,10 @@ msgid "" "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 "" @@ -3617,6 +3631,12 @@ msgid "" "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" @@ -3639,18 +3659,22 @@ msgid "" "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:`教程 ` 逐步演示了准备发布一个简单软" +"件包的整个过程,但它并没有完整列举需要哪些步骤和文件,以及它们各自的用途。" #: ../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 "" +msgstr "拥有一个包含该软件包的源码树。这通常是从版本控制系统(VCS)中检出的一份代码。" #: ../source/flow.rst:22 msgid "" @@ -3659,6 +3683,9 @@ msgid "" "will be a :file:`pyproject.toml` file, maintained manually in the source " "tree." msgstr "" +"准备一个配置文件,描述软件包的元数据(名称、版本等)以及如何创建构建产物。对" +"大多数软件包而言,这就是一个在源码树中手动维护的 :file:`pyproject.toml` 文件" +"。" #: ../source/flow.rst:27 msgid "" @@ -3669,22 +3696,26 @@ msgid "" "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 "" +"创建要发送到包分发服务(通常是 PyPI)的构建产物;这些产物通常是一个 :term:`源" +"分发(“sdist”) ` 和一个或多个 :term:`构" +"建分发(“wheels”) `。这些产物由构建工具使用上一步中的配" +"置文件来创建。对于纯 Python 软件包,通常只需要一个通用的 wheel。" #: ../source/flow.rst:35 msgid "Upload the build artifacts to the package distribution service." -msgstr "" +msgstr "将构建产物上传到包分发服务。" #: ../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 "" +msgstr "至此,软件包已经存在于包分发服务上。要使用该软件包,最终用户必须:" #: ../source/flow.rst:40 msgid "" "Download one of the package's build artifacts from the package distribution " "service." -msgstr "" +msgstr "从包分发服务下载该软件包的某个构建产物。" #: ../source/flow.rst:43 msgid "" @@ -3692,6 +3723,8 @@ msgid "" "directory. This step may involve a build/compile step which, if needed, must " "be described by the package metadata." msgstr "" +"将它安装到自己的 Python 环境中,通常是安装到该环境的 ``site-packages`` 目录。" +"这一步可能涉及构建/编译步骤;如果需要,软件包元数据必须对此加以描述。" #: ../source/flow.rst:47 msgid "" @@ -3705,7 +3738,7 @@ msgstr "下面将更详细地描述上述步骤。" #: ../source/flow.rst:53 msgid "The source tree" -msgstr "" +msgstr "源码树" #: ../source/flow.rst:55 msgid "" @@ -3713,6 +3746,8 @@ msgid "" "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 "" +"源码树包含软件包的源代码,通常是从 VCS 检出的一份代码。用于创建构建产物的那个" +"特定版本的代码,通常是基于与该版本相关联的标签检出的。" #: ../source/flow.rst:60 msgid "The configuration file" @@ -3724,6 +3759,8 @@ msgid "" "artifacts. The standard practice is to use a :file:`pyproject.toml` file in " "the `TOML format`_." msgstr "" +"配置文件取决于创建构建产物所用的工具。标准做法是使用以 `TOML format`_ 编写的 " +":file:`pyproject.toml` 文件。" #: ../source/flow.rst:68 msgid "" @@ -3741,7 +3778,7 @@ msgstr "" #: ../source/flow.rst:77 msgid "For example, here is a table for using :ref:`hatch`:" -msgstr "" +msgstr "例如,下面是一个使用 :ref:`hatch` 的表:" #: ../source/flow.rst:85 msgid "" @@ -3752,36 +3789,46 @@ msgid "" "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` 文件中写有这样的表之后,诸如 :ref:`build` 这样的" +"“:term:`前端 `”工具就可以运行你所选构建工具的“:term:`后端 " +"`”来创建构建产物。你的构建工具也可能自带前端。像 :ref:`pip` 这" +"样的安装工具在运行构建工具的后端以从源分发安装时,同样会充当前端。" #: ../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 "" +"你所选的具体构建工具决定了 :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:`核心元数据 `,即名称、版本、作者等," #: ../source/flow.rst:101 msgid "a ``[tool]`` table containing tool-specific configuration options." -msgstr "" +msgstr "一个 ``[tool]`` 表,包含特定于工具的配置选项。" #: ../source/flow.rst:103 msgid "" "Refer to the :ref:`pyproject.toml guide ` for a " "complete guide to ``pyproject.toml`` configuration." msgstr "" +"关于 ``pyproject.toml`` 配置的完整指南,请参阅 :ref:`pyproject.toml 指南 " +"`。" #: ../source/flow.rst:108 msgid "Build artifacts" -msgstr "" +msgstr "构建产物" #: ../source/flow.rst:111 msgid "The source distribution (sdist)" -msgstr "源代码分发(sdist)" +msgstr "源分发(sdist)" #: ../source/flow.rst:113 msgid "" @@ -3791,6 +3838,10 @@ msgid "" "wanting to develop your sources, and for end user systems where some local " "compilation step is required (such as a C extension)." msgstr "" +"源分发包含了足以在最终用户的 Python 环境中从源码安装该软件包的内容。因此,它" +"需要包含软件包的源代码,还可以包含测试和文档。这些内容对想要开发你的源代码的" +"最终用户,以及对需要执行某些本地编译步骤(例如 C 扩展)的最终用户系统,都很有" +"用。" #: ../source/flow.rst:119 ../source/flow.rst:143 msgid "" @@ -3801,7 +3852,7 @@ msgstr ":ref:`build` 包知道如何调用你的构建工具来创建其中一 #: ../source/flow.rst:126 msgid "" "Or, your build tool may provide its own interface for creating an sdist." -msgstr "或者,你的构建工具可能提供自己的接口来创建sdist。" +msgstr "或者,你的构建工具可能提供自己的接口来创建 sdist。" #: ../source/flow.rst:130 msgid "The built distributions (wheels)" @@ -3814,6 +3865,9 @@ msgid "" "wheel file can simply be unpacked into the ``site-packages`` directory. This " "makes the install faster and more convenient for end users." msgstr "" +"构建分发只包含最终用户的 Python 环境所需的文件。安装过程中不需要任何编译步骤" +",wheel 文件只需解包到 ``site-packages`` 目录即可。这让安装对最终用户来说更快" +"速、更方便。" #: ../source/flow.rst:137 msgid "" @@ -3823,10 +3877,13 @@ msgid "" "supports. If a suitable wheel file is not available, tools like :ref:`pip` " "will fall back to installing the source distribution." msgstr "" +"纯 Python 软件包通常只需要一个“通用”wheel。带有已编译二进制扩展的软件包,需要" +"为其支持的每种 Python 解释器、操作系统和 CPU 架构的组合各提供一个 wheel。如果" +"没有合适的 wheel 文件,:ref:`pip` 之类的工具就会回退到安装源分发。" #: ../source/flow.rst:150 msgid "Or, your build tool may provide its own interface for creating a wheel." -msgstr "" +msgstr "或者,你的构建工具可能提供自己的接口来创建 wheel。" #: ../source/flow.rst:154 msgid "" @@ -3834,6 +3891,8 @@ msgid "" "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" @@ -3843,11 +3902,11 @@ msgstr "上传到包分发服务" msgid "" "The :ref:`twine` tool can upload build artifacts to PyPI for distribution, " "using a command like:" -msgstr "" +msgstr ":ref:`twine` 工具可以将构建产物上传到 PyPI 进行分发,所用命令类似于:" #: ../source/flow.rst:168 msgid "Or, your build tool may provide its own interface for uploading." -msgstr "" +msgstr "或者,你的构建工具可能提供自己的上传接口。" #: ../source/flow.rst:171 msgid "Download and install" @@ -3859,12 +3918,14 @@ msgid "" "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 "" +msgstr "最终用户也可以使用其他工具,例如 :ref:`pipenv`、:ref:`poetry` 或 :ref:`pdm`。" #: ../source/glossary.rst:3 msgid "Glossary" @@ -3882,7 +3943,7 @@ msgstr "包含已编译扩展的特定种类的 :term:`Built Distribution`。" #: ../source/glossary.rst:14 msgid "Build Backend" -msgstr "" +msgstr "构建后端" #: ../source/glossary.rst:17 msgid "" @@ -3892,6 +3953,10 @@ msgid "" "delegated to the backend by a :term:`frontend `. All " "backends offer a standardized interface." msgstr "" +"一种接收 :term:`源码树 ` 并据其构建 :term:`源分发 " +"` 或 :term:`编译发行版 ` 的库。构建工作由 :term:`前端 ` 委托给后端完成" +"。所有后端都提供标准化的接口。" #: ../source/glossary.rst:24 msgid "" @@ -3899,10 +3964,13 @@ msgid "" "hatchling `, :ref:`maturin`, :ref:`meson-python`, :ref:`scikit-build-" "core`, and :ref:`setuptools`." msgstr "" +"构建后端的例子有 :ref:`flit 的 flit-core `、:ref:`hatch 的 hatchling " +"`、:ref:`maturin`、:ref:`meson-python`、:ref:`scikit-build-core` 和 " +":ref:`setuptools`。" #: ../source/glossary.rst:32 msgid "Build Frontend" -msgstr "" +msgstr "构建前端" #: ../source/glossary.rst:35 msgid "" @@ -3912,10 +3980,13 @@ msgid "" "building is delegated to each source tree's :term:`build backend `." msgstr "" +"用户可能运行的一种工具,它接收任意的源码树或 :term:`源分发 `,并据此构建源分发或 :term:`wheel 包 `。" +"实际的构建工作会委托给每个源码树各自的 :term:`构建后端 `。" #: ../source/glossary.rst:42 msgid "Examples of build frontends are :ref:`pip` and :ref:`build`." -msgstr "" +msgstr "构建前端的例子有 :ref:`pip` 和 :ref:`build`。" #: ../source/glossary.rst:44 msgid "Built Distribution" @@ -3940,7 +4011,7 @@ msgstr "" #: ../source/glossary.rst:56 msgid "Built Metadata" -msgstr "" +msgstr "编译元数据" #: ../source/glossary.rst:59 msgid "" @@ -3949,10 +4020,14 @@ msgid "" "Archive` (``PKG-INFO`` in a :term:`Sdist ` and ``METADATA`` in a :term:`Wheel`)." msgstr "" +":term:`Core Metadata` 在被包含进已安装的 :term:`Project` 或 " +":term:`Distribution Archive` 时所采取的具体形式(前者为 ``METADATA`` 文件;后" +"者在 :term:`源分发 ` 中为 ``PKG-INFO``," +"在 :term:`Wheel` 中为 ``METADATA``)。" #: ../source/glossary.rst:66 msgid "Core Metadata" -msgstr "" +msgstr "核心元数据" #: ../source/glossary.rst:69 msgid "" @@ -3960,10 +4035,13 @@ msgid "" "Field`\\s it defines that describe key static attributes of " "a :term:`Distribution Package` or :term:`Installed Project`." msgstr "" +"该 :ref:`规范 ` 及其定义的一组 :term:`Core Metadata Field`\\s" +",用于描述 :term:`Distribution Package` 或 :term:`Installed Project` 的关键静" +"态属性。" #: ../source/glossary.rst:74 msgid "Core Metadata Field" -msgstr "" +msgstr "核心元数据字段" #: ../source/glossary.rst:77 msgid "" @@ -3972,6 +4050,9 @@ msgid "" "the :term:`Built Metadata`. Notably, distinct from a :term:`Pyproject " "Metadata Key`." msgstr "" +"在 :term:`Core Metadata` 规范中定义并存储在 :term:`Built Metadata` 中的单个键" +"值对(对于可多次使用的字段,则为同名键值对组成的序列)。值得注意的是,它不同" +"于 :term:`Pyproject Metadata Key`。" #: ../source/glossary.rst:83 msgid "Distribution Archive" @@ -3981,7 +4062,7 @@ msgstr "发行版存档" msgid "" "The physical distribution artifact (i.e. a file on disk) for " "a :term:`Distribution Package`." -msgstr "" +msgstr "对应于 :term:`Distribution Package` 的物理分发产物(即磁盘上的一个文件)。" #: ../source/glossary.rst:89 msgid "Distribution Package" @@ -4052,7 +4133,7 @@ msgstr "导入包" msgid "" "A Python module which can contain other modules or recursively, other " "packages." -msgstr "一个Python模块,可以包含其他模块或递归地包含其他包。" +msgstr "一个 Python 模块,可以包含其他模块或递归地包含其他包。" #: ../source/glossary.rst:127 msgid "" @@ -4076,6 +4157,8 @@ msgid "" "or :term:`Virtual Environment`, as described in the " "specification :ref:`recording-installed-packages`." msgstr "" +"已安装并可供 Python 解释器或 :term:`Virtual Environment` 使用的 " +":term:`Project`,如 :ref:`recording-installed-packages` 规范所述。" #: ../source/glossary.rst:140 msgid "Known Good Set (KGS)" @@ -4102,6 +4185,8 @@ msgid "" "A PyPI Trove classifier (as :ref:`described ` in " "the :term:`Core Metadata` specification) which begins with ``License ::``." msgstr "" +"一种以 ``License ::`` 开头的 PyPI Trove 分类器(如 :term:`Core Metadata` 规范" +"中 :ref:`所述 `)。" #: ../source/glossary.rst:157 ../source/specifications/license-expression.rst:3 msgid "License Expression" @@ -4109,7 +4194,7 @@ msgstr "许可证表达式" #: ../source/glossary.rst:158 msgid "SPDX Expression" -msgstr "" +msgstr "SPDX 表达式" #: ../source/glossary.rst:161 msgid "" @@ -4118,6 +4203,10 @@ msgid "" "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 许可证表达式语法的字符串,其中包含一个或多个 SPDX " +":term:`License Identifier`\\(s),用于描述 :term:`Distribution Archive` 的一个" +"或多个许可证及其相互关系。示例: ``GPL-3.0-or-later``、``MIT AND (Apache-2.0 " +"OR BSD-2-Clause)``" #: ../source/glossary.rst:169 msgid "License Identifier" @@ -4125,7 +4214,7 @@ msgstr "许可证标识符" #: ../source/glossary.rst:170 msgid "SPDX Identifier" -msgstr "SPDX标识符" +msgstr "SPDX 标识符" #: ../source/glossary.rst:173 msgid "" @@ -4134,6 +4223,9 @@ msgid "" "``LicenseRef-[idstring]`` strings conforming to the SPDX specification. " "Examples: ``MIT``, ``GPL-3.0-only``, ``LicenseRef-My-Custom-License``" msgstr "" +"一种有效的 SPDX 短格式许可证标识符,最初在 :pep:`639` 中规定。它包括所有有效" +"的 SPDX 标识符,以及符合 SPDX 规范的自定义 ``LicenseRef-[idstring]`` 字符串。" +"示例: ``MIT``、``GPL-3.0-only``、``LicenseRef-My-Custom-License``" #: ../source/glossary.rst:183 msgid "Module" @@ -4231,7 +4323,7 @@ msgstr "项目的根目录" msgid "" "The filesystem directory in which a :term:`Project`'s :term:`source tree " "` is located." -msgstr "" +msgstr ":term:`Project` 的 :term:`源码树 ` 所在的文件系统目录。" #: ../source/glossary.rst:232 msgid "Project Source Tree" @@ -4243,6 +4335,9 @@ msgid "" "raw source code before being packaged into a :term:`Source Distribution " "` or :term:`Built Distribution`." msgstr "" +":term:`Project` 在开发阶段使用的磁盘格式,其中包含该项目在被打包成 :term:`源" +"分发 ` 或 :term:`Built Distribution` 之前" +"的原始源代码。" #: ../source/glossary.rst:241 msgid "Project Source Metadata" @@ -4257,6 +4352,11 @@ msgid "" "in a tool-specific format (under the ``[tool]`` table in ``pyproject.toml``, " "or in a tool's own configuration file)." msgstr "" +"由软件包作者在 :term:`Project` 的 :term:`源码树 ` 中定义" +"的元数据,之后由项目的 :term:`构建后端 ` 将其转换为 " +":term:`Built Metadata` 中的 :term:`Core Metadata field`\\s。它可以写作 " +":term:`Pyproject Metadata`,也可以采用工具专用的格式(写在 " +"``pyproject.toml`` 的 ``[tool]`` 表中,或写在工具自己的配置文件里)。" #: ../source/glossary.rst:254 msgid "Pure Module" @@ -4282,6 +4382,10 @@ msgid "" "a :term:`pyproject.toml` file. Notably, *not* a tool-specific source " "metadata format under the ``[tool]`` table in ``pyproject.toml``." msgstr "" +"由 :ref:`declaring-project-metadata` 规范定义、最初在 :pep:`621` 中引入的 " +":term:`Project Source Metadata` 格式,以 :term:`Pyproject Metadata Key`\\s 的" +"形式存储在 :term:`pyproject.toml` 文件的 ``[project]`` 表之下。值得注意的是," +"它 *不是* ``pyproject.toml`` 中 ``[tool]`` 表下的工具专用源元数据格式。" #: ../source/glossary.rst:271 msgid "Pyproject Metadata Key" @@ -4293,15 +4397,17 @@ msgid "" "of the :term:`Pyproject Metadata`. Notably, distinct from a :term:`Core " "Metadata Field`." msgstr "" +"``pyproject.toml`` 中 ``[project]`` 表内的顶层 TOML 键,是 :term:`Pyproject " +"Metadata` 的一部分。值得注意的是,它不同于 :term:`Core Metadata Field`。" #: ../source/glossary.rst:278 msgid "Pyproject Metadata Subkey" -msgstr "" +msgstr "Pyproject 元数据子键" #: ../source/glossary.rst:281 msgid "" "A second-level TOML key under a table-valued :term:`Pyproject Metadata Key`." -msgstr "" +msgstr "位于取值为表格的 :term:`Pyproject Metadata Key` 之下的二级 TOML 键。" #: ../source/glossary.rst:284 msgid "Python Packaging Authority (PyPA)" @@ -4317,7 +4423,7 @@ msgid "" "discuss.python.org/c/packaging>`__." msgstr "" "PyPA 是一个工作组,维护 Python 打包的许多重要项目。他们维护 :doc:`pypa.io " -"` 站点,在`GitHub `_ 上托管项目,并在 " +"` 站点,在 `GitHub `_ 上托管项目,并在 " "`distutils-sig 邮件列表 `_ 和 `Python Discourse 论坛 `__ 上讨论问题。" @@ -4356,7 +4462,7 @@ msgstr "pyproject.toml" #: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." -msgstr "" +msgstr "与工具无关的 :term:`Project` 规范文件。其定义见 :pep:`518`。" #: ../source/glossary.rst:313 msgid "Release" @@ -4366,7 +4472,7 @@ msgstr "发行版 (Release)" msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." -msgstr "" +msgstr ":term:`Project` 在特定时间点的一个快照,由版本标识符表示。" #: ../source/glossary.rst:319 msgid "" @@ -4375,6 +4481,9 @@ msgid "" "released, it could be available in both a source distribution format and a " "Windows installer distribution format." msgstr "" +"进行一次发布可能需要发布多个 :term:`分发包 `。例如,如" +"果某个项目的 1.0 版本已发布,那么它可能同时以源分发格式和 Windows 安装程序分" +"发格式提供。" #: ../source/glossary.rst:324 msgid "Requirement" @@ -4388,6 +4497,10 @@ msgid "" "considered a \"requirement\". For more information, see the :ref:`pip:pip " "install` reference." msgstr "" +"关于待安装 :term:`软件包 ` 的一种规范说明。 :ref:`pip` " +"是 :term:`PYPA ` 推荐的安装器,它允许各种" +"形式的说明,这些说明都可以视为“要求” (requirement)。更多信息请参阅 " +":ref:`pip:pip install` 参考文档。" #: ../source/glossary.rst:333 msgid "Requirement Specifier" @@ -4400,6 +4513,10 @@ msgid "" "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:`Package Index` 安装软件包的一种格式。有关该格式的 " +"EBNF 图,请参阅 :ref:`dependency-specifiers`。例如,\"foo>=1.3\" 就是一个需求" +"说明符,其中 \"foo\" 是项目名称,\">=1.3\" 部分则是 :term:`Version " +"Specifier`。" #: ../source/glossary.rst:341 msgid "Requirements File" @@ -4421,7 +4538,7 @@ msgstr "根许可证目录" #: ../source/glossary.rst:349 msgid "License Directory" -msgstr "" +msgstr "许可证目录" #: ../source/glossary.rst:352 msgid "" @@ -4434,6 +4551,13 @@ msgid "" "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 (or \"sdist\")`,该目录即 :term:`Project " +"Root Directory`。对于 :term:`Built Distribution` 或 :term:`Installed " +"Project`,该目录分别为 wheel 归档文件或项目文件夹中的 :file:`.dist-info/" +"licenses/` 目录。此外,``License-File`` :term:`Core Metadata Field` 中记录的" +"路径都相对于该目录。" #: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 @@ -4463,10 +4587,12 @@ msgid "" "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" +"包含 :term:`Release` 原始源代码的归档文件,在创建 :term:`源分发 ` 或 :term:`Built Distribution` 之前生成。" #: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" -msgstr "源代码分发(或“sdist”)" +msgstr "源分发(或“sdist”)" #: ../source/glossary.rst:382 msgid "" @@ -4476,6 +4602,10 @@ msgid "" "generating a :term:`Built Distribution`. See :ref:`package-formats` for more " "information." msgstr "" +"一种 :term:`发行版存档 ` 格式(通常使用 ``python -m " +"build --sdist`` 生成),提供元数据和必要的源文件,供 :ref:`pip` 之类的工具安" +"装,或用于生成 :term:`Built Distribution`。更多信息请参阅 :ref:`package-" +"formats`。" #: ../source/glossary.rst:388 msgid "System Package" @@ -4499,6 +4629,10 @@ msgid "" "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` 的版本组成部分。例如,\"foo>=1.3\" 中的 \">" +"=1.3\" 部分。请阅读 :ref:`版本说明符规范 `,了解 Python " +"打包目前支持的全部说明符。对该规范的支持已在 :ref:`setuptools` v8.0 和 " +":ref:`pip` v6.0 中实现。" #: ../source/glossary.rst:402 msgid "Virtual Environment" @@ -4516,7 +4650,7 @@ msgstr "" #: ../source/glossary.rst:410 msgid "Wheel Format" -msgstr "" +msgstr "Wheel 格式" #: ../source/glossary.rst:411 msgid "Wheel" @@ -4529,6 +4663,9 @@ msgid "" "specification. See :ref:`package-formats` for more information. Not to be " "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" +"标准的 :term:`Built Distribution` 格式,最初在 :pep:`427` 中引入,并由 " +":ref:`binary-distribution-format` 规范定义。更多信息请参阅 :ref:`package-" +"formats`。不要将其与它的参考实现 :term:`Wheel Project` 混淆。" #: ../source/glossary.rst:421 msgid "Wheel Project" @@ -4538,7 +4675,7 @@ msgstr "Wheel 项目" msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." -msgstr "" +msgstr ":term:`Wheel Format` 的 PyPA 参考实现;参见 :ref:`wheel`。" #: ../source/glossary.rst:426 msgid "Working Set" @@ -4551,6 +4688,9 @@ msgid "" "At most, one :term:`Distribution ` for a project is " "possible in a working set." msgstr "" +"可供导入的一组 :term:`分发包 `。这些分发包都位于 " +"`sys.path` 变量上。在一个工作集中,一个项目至多只能有一个对应的 " +":term:`Distribution `。" #: ../source/guides/analyzing-pypi-package-downloads.rst:5 msgid "Analyzing PyPI package downloads" @@ -4563,7 +4703,7 @@ msgid "" "example, you can use it to discover the distribution of Python versions used " "to download a package." msgstr "" -"本节介绍了如何使用公共的 PyPI 下载统计数据集来了解PyPI上托管的软件包 " +"本节介绍了如何使用公共的 PyPI 下载统计数据集来了解 PyPI 上托管的软件包 " "(packages) 的下载情况。例如,你可以用它来发现用于下载软件包的 Python 版本的分" "布。" @@ -4583,6 +4723,9 @@ msgid "" "which are heavily cached, would require invalidating the cache more often, " "and reduce the overall effectiveness of the cache." msgstr "" +"**难以与内容分发网络(CDN)高效协作:** 下载统计数据在不断变化。若把它们包含" +"在会被重度缓存的项目页面中,就需要更频繁地使缓存失效,从而降低缓存的整体效果" +"。" #: ../source/guides/analyzing-pypi-package-downloads.rst:23 msgid "" @@ -4701,6 +4844,10 @@ msgid "" "schema `__ include:" msgstr "" +"Linehaul 会为每次下载在 ``bigquery-public-data.pypi.file_downloads`` 表中写入" +"一条记录。该表包含所下载文件以及下载方式的相关信息。来自 `表架构 `__ 的一些有用列包括:" #: ../source/guides/analyzing-pypi-package-downloads.rst:77 msgid "Column" @@ -4896,7 +5043,7 @@ msgstr "2017-08-01" #: ../source/guides/analyzing-pypi-package-downloads.rst:183 msgid "Python versions over time" -msgstr "" +msgstr "一段时间内的 Python 版本" #: ../source/guides/analyzing-pypi-package-downloads.rst:185 msgid "" @@ -4960,7 +5107,7 @@ msgstr "1894153540" #: ../source/guides/analyzing-pypi-package-downloads.rst:221 msgid "Getting absolute links to artifacts" -msgstr "" +msgstr "获取构件的绝对链接" #: ../source/guides/analyzing-pypi-package-downloads.rst:223 msgid "" @@ -4969,12 +5116,15 @@ msgid "" "release has been deleted from PyPI. The metadata table includes the ``path`` " "column, which includes the hash and artifact filename." msgstr "" +"有时,根据哈希值获取从 PyPI 下载构件的绝对链接会很有用,例如当某个特定项目或" +"发布版本已从 PyPI 删除时。元数据表中包含 ``path`` 列,其中含有哈希值和构件文" +"件名。" #: ../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 "" +msgstr "这里生成的 URL 并不保证始终稳定,但目前与托管 PyPI 构件的 URL 一致。" #: ../source/guides/analyzing-pypi-package-downloads.rst:242 msgid "url" @@ -4986,6 +5136,9 @@ msgid "" "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 "" @@ -4993,6 +5146,9 @@ msgid "" "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 "" @@ -5000,6 +5156,9 @@ msgid "" "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 "" @@ -5007,6 +5166,9 @@ msgid "" "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 "" @@ -5014,6 +5176,9 @@ msgid "" "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" @@ -5027,6 +5192,9 @@ msgid "" "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 还曾存在一个 bug,导致其在 2018 年 " +"7 月 26 日之前大幅少报了下载统计数据。该日期之前的下载数据在比例上是准确的(" +"例如 Python 2 与 Python 3 下载量的百分比),但总数字比实际低一个数量级。" #: ../source/guides/analyzing-pypi-package-downloads.rst:267 msgid "Additional tools" @@ -5085,7 +5253,7 @@ msgstr "`pandas-gbq`_ 项目允许通过 `Pandas`_ 来访问查询结果。" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 msgid "``ClickPy``" -msgstr "" +msgstr "``ClickPy``" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" @@ -5093,6 +5261,8 @@ msgid "" "statistics, with free direct SQL access to the underlying open-source " "`ClickHouse`_ database, updated daily." msgstr "" +"`ClickPy`_ 项目提供了一个用于可视化下载统计数据的公共应用程序,并对底层的开" +"源 `ClickHouse`_ 数据库提供免费的直接 SQL 访问,数据每日更新。" #: ../source/guides/analyzing-pypi-package-downloads.rst:345 #: ../source/specifications/dependency-specifiers.rst:716 @@ -5126,6 +5296,9 @@ msgid "" "packages can be separately distributed, your application or library may want " "to automatically **discover** all of the plugins available." msgstr "" +"在创建 Python 应用程序或库时,你常常会希望通过 **插件** 来提供自定义功能或额" +"外特性。由于 Python 软件包可以单独分发,你的应用程序或库可能需要自动 **发" +"现** 所有可用的插件。" #: ../source/guides/creating-and-discovering-plugins.rst:10 msgid "There are three major approaches to doing automatic plugin discovery:" @@ -5137,15 +5310,15 @@ msgstr "`使用命名惯例`_." #: ../source/guides/creating-and-discovering-plugins.rst:13 msgid "`Using namespace packages`_." -msgstr "" +msgstr "`使用命名空间包`_." #: ../source/guides/creating-and-discovering-plugins.rst:14 msgid "`Using package metadata`_." -msgstr "" +msgstr "`使用包元数据`_." #: ../source/guides/creating-and-discovering-plugins.rst:18 msgid "Using naming convention" -msgstr "" +msgstr "使用命名惯例" #: ../source/guides/creating-and-discovering-plugins.rst:20 msgid "" @@ -5155,12 +5328,18 @@ msgid "" "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 "" @@ -5168,10 +5347,12 @@ msgid "" "Package Index's :ref:`simple repository API ` for all " "packages that conform to your naming convention." msgstr "" +"对插件使用命名惯例,还允许你查询 Python 包索引的 :ref:`简单仓库 API ` 来获取所有符合你命名惯例的软件包。" #: ../source/guides/creating-and-discovering-plugins.rst:58 msgid "Using namespace packages" -msgstr "" +msgstr "使用命名空间包" #: ../source/guides/creating-and-discovering-plugins.rst:60 msgid "" @@ -5183,6 +5364,11 @@ msgid "" "Once installed, you can use :func:`pkgutil.iter_modules` to discover all " "modules and packages installed under that namespace:" msgstr "" +":doc:`命名空间包 ` 可用于为插件的放置位置提供一" +"种惯例,同时也提供了一种执行发现的方法。例如,如果你把子包 ``myapp.plugins`` " +"设为命名空间包,其他 :term:`分发包 ` 就可以向该命名空间" +"提供模块和包。安装之后,你可以使用 :func:`pkgutil.iter_modules` 来发现安装在" +"该命名空间下的所有模块和包:" #: ../source/guides/creating-and-discovering-plugins.rst:88 msgid "" @@ -5192,6 +5378,10 @@ msgid "" "``myapp.plugins.a`` and ``myapp.plugins.b`` then ``discovered_plugins`` in " "this case would be:" msgstr "" +"向 :func:`~pkgutil.iter_modules` 指定 ``myapp.plugins.__path__`` 会使它只查找" +"直接位于该命名空间之下的模块。例如,如果你安装的分发包提供了模块 " +"``myapp.plugins.a`` 和 ``myapp.plugins.b``,那么此时的 " +"``discovered_plugins`` 将会是:" #: ../source/guides/creating-and-discovering-plugins.rst:100 msgid "" @@ -5210,6 +5400,14 @@ msgid "" "to :func:`setup`'s ``packages`` argument instead of " "using :func:`setuptools.find_packages`." msgstr "" +"本示例使用子包(即 ``myapp.plugins``)作为命名空间包,不过也可以为此使用顶层" +"包(如 ``myapp_plugins``)。选择哪个命名空间属于个人偏好,但不建议把你项目的" +"主顶层包(本例中为 ``myapp``)用作插件的命名空间包,因为一个糟糕的插件可能导" +"致整个命名空间失效,进而使你的项目无法导入。为了让“命名空间子包”方案生效,插" +"件包必须省略顶层包目录(本例中为 ``myapp``)中的 :file:`__init__.py`,并在命" +"名空间子包目录(即 ``myapp/plugins``)中加入命名空间包风格的 " +":file:`__init__.py`。这也意味着,插件需要把包列表显式传递给 :func:`setup` 的 " +"``packages`` 参数,而不能使用 :func:`setuptools.find_packages`。" #: ../source/guides/creating-and-discovering-plugins.rst:114 msgid "" @@ -5218,10 +5416,13 @@ msgid "" "namespace-packages` documentation and clearly document which approach is " "preferred for plugins to your project." msgstr "" +"命名空间包是一项复杂的特性,创建它们有多种不同的方法。强烈建议阅读 " +":doc:`packaging-namespace-packages` 文档,并明确说明对于你项目的插件应首选哪" +"种方式。" #: ../source/guides/creating-and-discovering-plugins.rst:122 msgid "Using package metadata" -msgstr "" +msgstr "使用包元数据" #: ../source/guides/creating-and-discovering-plugins.rst:124 msgid "" @@ -5239,7 +5440,7 @@ 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`` " +"例如,如果你有一个名为 ``myapp-plugin-a`` 的包,并且它的 ``pyproject.toml`` " "中包含以下内容:" #: ../source/guides/creating-and-discovering-plugins.rst:136 @@ -5248,6 +5449,9 @@ msgid "" "using :func:`importlib.metadata.entry_points` (or the backport_ " "``importlib_metadata >= 3.6`` for Python 3.6-3.9):" msgstr "" +"然后,你可以使用 :func:`importlib.metadata.entry_points` 来发现并加载所有已注" +"册的入口点(对于 Python 3.6-3.9,则使用 backport_ ``importlib_metadata >= " +"3.6``):" #: ../source/guides/creating-and-discovering-plugins.rst:151 msgid "" @@ -5261,8 +5465,7 @@ msgstr "" msgid "" "Now the module of your choice can be imported by executing " "``discovered_plugins['a'].load()``." -msgstr "" -"现在可以通过执行 ``discovered_plugins['a'].load()`` 来导入您选择的模块。" +msgstr "现在可以通过执行 ``discovered_plugins['a'].load()`` 来导入你选择的模块。" #: ../source/guides/creating-and-discovering-plugins.rst:163 msgid "" @@ -5294,10 +5497,10 @@ msgid "" "exposing the executable scripts of packages (and available manual pages) for " "use on the command-line." msgstr "" -"本指南将引导您创建和打包一个独立的命令行应用程序,该应用程序可以通" -"过 :ref:`pipx` 安装,pipx 是一个创建和管理 :term:`Python Virtual " -"Environments ` 的工具,并暴露包的可执行脚本(以及可用的" -"手册页)以供命令行使用。" +"本指南将引导你创建和打包一个独立的命令行应用程序,该应用程序可以通过 " +":ref:`pipx` 安装,pipx 是一个创建和管理 :term:`Python 虚拟环境 ` 的工具,并暴露软件包的可执行脚本(以及可用的手册页)以供命令行" +"使用。" #: ../source/guides/creating-command-line-tools.rst:12 msgid "Creating the package" @@ -5329,12 +5532,16 @@ msgid "" "and in the end be alike this file tree, with the top-level folder and " "package name ``greetings``:" msgstr "" +"本项目将遵循 :ref:`src 布局 `,最终形成与此类似的" +"文件树,其中顶层文件夹和包名均为 ``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 "" @@ -5342,6 +5549,8 @@ msgid "" "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 "" +"上面的函数接收若干个关键字参数,这些参数决定了要输出的问候语如何构造。现在," +"构建命令行接口并为其提供这些相同的参数,这一步是在 :file:`cli.py` 中完成的:" #: ../source/guides/creating-command-line-tools.rst:80 msgid "" @@ -5355,12 +5564,20 @@ msgid "" "advanced users are encouraged to make use of click_ (on which ``typer`` is " "based)." msgstr "" +"命令行接口使用 typer_ 构建,这是一个易于使用、基于 Python 类型提示的 CLI 解析" +"器。它提供了开箱即用的自动补全和样式美观的命令行帮助。另一种选择是 " +":py:mod:`argparse`,它是 Python 标准库中自带的命令行解析器。对大多数需求而言" +"它已经够用,但需要大量代码(通常在 ``cli.py`` 中)才能正常工作。另外," +"docopt_ 让仅凭文档字符串创建 CLI 接口成为可能;我们鼓励高级用户使用 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:`导入包 `。" #: ../source/guides/creating-command-line-tools.rst:88 msgid "" @@ -5369,6 +5586,9 @@ msgid "" "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``,该命令在平坦布局下立即可用,但在 src 布局下需要先" +"安装该包),因此请在此处初始化命令行接口:" #: ../source/guides/creating-command-line-tools.rst:100 msgid "" @@ -5377,6 +5597,9 @@ msgid "" "greetings``, a certain hack could be placed in this file; read more " "at :ref:`running-cli-from-source-src-layout`." msgstr "" +"为了能够直接从 :term:`源代码树 ` 调用命令行接口(即以 " +"``python src/greetings`` 的方式运行),可以在该文件中加入一些变通处理;详情请" +"参阅 :ref:`running-cli-from-source-src-layout`。" #: ../source/guides/creating-command-line-tools.rst:106 msgid "``pyproject.toml``" @@ -5390,6 +5613,10 @@ msgid "" "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 元数据键 ` 和 ``[build-system]`` " +"表可按照 :ref:`writing-pyproject-toml` 中的说明填写,并添加对 ``typer`` 的依" +"赖项(本教程使用版本 *0.12.3*)。" #: ../source/guides/creating-command-line-tools.rst:111 msgid "" @@ -5398,6 +5625,9 @@ msgid "" "(see :ref:`console_scripts`) needs to be added as a :term:`subkey `:" msgstr "" +"为了让本项目被识别为命令行工具,还需要额外添加一个 ``console_scripts`` " +":ref:`入口点 ` 作为 :term:`子键 `," +"参见 :ref:`console_scripts`:" #: ../source/guides/creating-command-line-tools.rst:118 msgid "" @@ -5405,6 +5635,8 @@ msgid "" "a :term:`distribution package `, which makes it " "installable." msgstr "" +"现在,项目的源代码树已经可以转换为 :term:`分发包 `,使" +"其变得可安装。" #: ../source/guides/creating-command-line-tools.rst:123 msgid "Installing the package with ``pipx``" @@ -5415,12 +5647,16 @@ msgid "" "After installing ``pipx`` as described in :ref:`installing-stand-alone-" "command-line-tools`, install your project:" msgstr "" +"按照 :ref:`installing-stand-alone-command-line-tools` 中的说明安装好 " +"``pipx`` 之后,安装你的项目:" #: ../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 "" +"这会暴露我们定义为入口点的可执行脚本,并使 ``greet`` 命令可用。让我们测试一下" +":" #: ../source/guides/creating-command-line-tools.rst:146 msgid "" @@ -5428,12 +5664,16 @@ msgid "" "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``,它会为此创建一个临时" +"(但会被缓存)的虚拟环境:" #: ../source/guides/creating-command-line-tools.rst:156 msgid "" @@ -5441,6 +5681,8 @@ msgid "" "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 "" +"不过,这种写法有点不实用;由于我们上面定义的入口点名称与包名不一致,我们需要" +"明确指定要运行哪个可执行脚本(尽管实际只存在一个)。" #: ../source/guides/creating-command-line-tools.rst:159 msgid "" @@ -5448,6 +5690,8 @@ msgid "" "an entry point specific to ``pipx run``. The same can be defined as follows " "in :file:`pyproject.toml`:" msgstr "" +"不过,对于这个问题有一个更实用的解决方案,即一个专门用于 ``pipx run`` 的入口" +"点。它可以在 :file:`pyproject.toml` 中定义如下:" #: ../source/guides/creating-command-line-tools.rst:168 msgid "" @@ -5455,6 +5699,8 @@ msgid "" "will pick up the executable script as the default one and run it, which " "makes this command possible:" msgstr "" +"这个入口点(其名称 *必须* 与包名一致)使 ``pipx`` 能将该可执行脚本作为默认脚" +"本选取并运行,于是下面的命令得以可用:" #: ../source/guides/creating-command-line-tools.rst:176 msgid "Conclusion" @@ -5470,14 +5716,19 @@ msgid "" "to :ref:`do some research ` on how your " "package is received!" msgstr "" +"现在你已经知道如何打包一个用 Python 编写的命令行应用程序了。下一步可以考虑分" +"发你的软件包,即将其上传到一个 :term:`包索引 `,最常见的是 " +":term:`PyPI `。为此,请遵循 :ref:`Packaging " +"your project` 中的说明。完成之后,别忘了 :ref:`做一些调研 `,看看你的软件包反响如何!" #: ../source/guides/distributing-packages-using-setuptools.rst:5 msgid "Packaging and distributing projects" -msgstr "" +msgstr "打包并分发项目" #: ../source/guides/distributing-packages-using-setuptools.rst:7 msgid "Outdated" -msgstr "" +msgstr "已过时" #: ../source/guides/distributing-packages-using-setuptools.rst:8 msgid "2023-12-14" @@ -5491,6 +5742,9 @@ msgid "" "assumes that you are already familiar with the contents of the :doc:`/" "tutorials/installing-packages` page." msgstr "" +"本节介绍使用 ``setuptools`` 配置、打包和分发 Python 项目的一些额外细节,这些" +"内容未在 :doc:`/tutorials/packaging-projects` 的入门教程中涵盖。本节仍然假定" +"你已经熟悉 :doc:`/tutorials/installing-packages` 页面的内容。" #: ../source/guides/distributing-packages-using-setuptools.rst:16 msgid "" @@ -5498,6 +5752,8 @@ msgid "" "development as a whole. For example, it does not provide guidance or tool " "recommendations for version control, documentation, or testing." msgstr "" +"本节 *并不* 旨在全面涵盖 Python 项目开发的最佳实践。例如,它不为版本控制、文" +"档或测试提供指导或工具建议。" #: ../source/guides/distributing-packages-using-setuptools.rst:20 msgid "" @@ -5506,18 +5762,19 @@ msgid "" "note that some advisory content there may be outdated. In the event of " "conflicts, prefer the advice in the Python Packaging User Guide." msgstr "" +"更多参考资料请参阅 :ref:`setuptools` 文档中的 :std:doc:`构建和分发软件包 " +"`,但请注意其中一些建议性内容可能已经过时。如有冲" +"突,请以 Python Packaging User Guide 中的建议为准。" #: ../source/guides/distributing-packages-using-setuptools.rst:28 msgid "Requirements for packaging and distributing" -msgstr "" +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:`requirements for installing packages " -"`。" +msgstr "首先,确保你已经满足了 :ref:`安装软件包的要求 `。" #: ../source/guides/distributing-packages-using-setuptools.rst:32 msgid "Install \"twine\" [1]_:" @@ -5529,6 +5786,9 @@ msgid "" "Package>` to :term:`PyPI ` (see :ref:`below " "`)." msgstr "" +"你需要用它把项目的 :term:`分发包 ` 上传到 :term:`PyPI " +"`,参见 :ref:`下文 `。" #: ../source/guides/distributing-packages-using-setuptools.rst:52 msgid "Configuring your project" @@ -5546,7 +5806,7 @@ msgid "" "in the `PyPA sample project `_." msgstr "" "最重要的文件是 :file:`setup.py` ,它存在于你项目目录的根部。如果你想有一个例" -"子作为参考,请参阅 `PyPA 样本项目 `_ " +"子作为参考,请参阅 `PyPA 示例项目 `_ " "的 `setup.py `_。" @@ -5562,6 +5822,9 @@ msgid "" "of your project are defined. The most relevant arguments are explained " "in :ref:`the section below `." msgstr "" +"它是配置项目各个方面内容的文件。:file:`setup.py` 的主要特点是它包含一个全局 " +"``setup()`` 函数。项目的具体细节正是通过这个函数的关键字参数来定义的。最相关" +"的参数将在 :ref:`下文 ` 中解释。" #: ../source/guides/distributing-packages-using-setuptools.rst:74 msgid "" @@ -5569,6 +5832,8 @@ msgid "" "packaging tasks. To get a listing of available commands, run ``python3 " "setup.py --help-commands``." msgstr "" +"它是用于运行与打包任务相关的各种命令的命令行界面。要列出可用命令,请运行 " +"``python3 setup.py --help-commands``。" #: ../source/guides/distributing-packages-using-setuptools.rst:82 msgid "" @@ -5578,10 +5843,10 @@ msgid "" "setup.cfg>`_ in the `PyPA sample project `_." msgstr "" -":file:`setup.cfg` 是一个 ini 文件,包含 :file:`setup.py` 命令的默认。 例如," -"参阅 `PyPA 样本项目 `_ 中的 " +":file:`setup.cfg` 是一个 ini 文件,包含 :file:`setup.py` 命令选项的默认值。例" +"如,参阅 `PyPA 示例项目 `_ 中的 " "`setup.cfg `_ ." +"db5806e0a3204034c51b1c00dde7d5eb3fa2532e/setup.cfg>`_。" #: ../source/guides/distributing-packages-using-setuptools.rst:89 msgid "README.rst / README.md" @@ -5621,6 +5886,12 @@ msgid "" "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 3.7 开始采用这一行为。此外,:ref:`setuptools` " +"36.4.0+ 在找到 :file:`README.md` 时也会将其包含进来。如果你在使用 setuptools" +",就无需在 :file:`MANIFEST.in` 中列出你的 readme 文件。否则,为了明确起见,请" +"将其列出。" #: ../source/guides/distributing-packages-using-setuptools.rst:111 msgid "MANIFEST.in" @@ -5633,6 +5904,10 @@ msgid "" "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 "" @@ -5680,7 +5955,7 @@ msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:139 msgid "" -msgstr "" +msgstr "<你的软件包>" #: ../source/guides/distributing-packages-using-setuptools.rst:141 msgid "" @@ -5688,6 +5963,9 @@ msgid "" "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 "" @@ -5718,6 +5996,8 @@ msgid "" "elsewhere. The full list can be found :doc:`in the setuptools documentation " "`." msgstr "" +"其中一些参数暂时在下面解释,之后相关信息会移至别处。完整列表可在 " +":doc:`setuptools 文档 ` 中找到。" #: ../source/guides/distributing-packages-using-setuptools.rst:163 msgid "" @@ -5751,6 +6031,10 @@ msgid "" "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``" @@ -5762,6 +6046,9 @@ msgid "" "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 #, fuzzy @@ -5774,12 +6061,16 @@ msgid "" "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\" 应用于指定项目正常运行所最低限度需要的依赖项。当项目被 " +":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``" @@ -5793,6 +6084,9 @@ msgid "" "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 "" @@ -5800,6 +6094,8 @@ msgid "" "names that should be copied into the package. The paths are interpreted as " "relative to the directory containing the package." msgstr "" +"该值必须是一个映射,从软件包名称映射到应当复制进该软件包的相对路径名列表。这" +"些路径会被解释为相对于包含该软件包的目录。" #: ../source/guides/distributing-packages-using-setuptools.rst:239 msgid "" @@ -5807,6 +6103,8 @@ msgid "" "` from the :std:doc:`setuptools docs " "`." msgstr "" +"更多信息请参见 :std:doc:`setuptools 文档 ` 中的 " +":std:doc:`包含数据文件 `。" #: ../source/guides/distributing-packages-using-setuptools.rst:247 msgid "``data_files``" @@ -5820,6 +6118,10 @@ msgid "" "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 "" @@ -5832,12 +6134,20 @@ msgid "" "``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 `_),它会被解释为相对于安装前缀" +"(默认安装时为 Python 的 ``sys.prefix``;用户安装时为 ``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:`安装额外文件 ` 的章节。" #: ../source/guides/distributing-packages-using-setuptools.rst:274 msgid "" @@ -5846,6 +6156,9 @@ msgid "" "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 @@ -5860,16 +6173,21 @@ msgid "" "the recommended approach to achieve cross-platform compatibility is to " "use :ref:`console_scripts` entry points (see below)." msgstr "" +"虽然 ``setup()`` 支持 :ref:`scripts " +"` 关键字来指向预先做好的待安装脚本,但要实现跨平台兼容,推荐的做法是使用 " +":ref:`console_scripts` 入口点(见下文)。" #: ../source/guides/distributing-packages-using-setuptools.rst:291 msgid "Choosing a versioning scheme" -msgstr "" +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\"" @@ -5883,12 +6201,17 @@ msgid "" "as editable will be reflected the next time an interpreter process is " "started." msgstr "" +"在开发项目期间,你可以用 \"可编辑\"(editable)或 \"开发\"(develop)模式来安" +"装项目。以可编辑模式安装后,项目无需重新安装即可就地编辑:对以可编辑模式安装" +"的项目中 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 软件包,请切换到项目目录的根目录并运" +"行:" #: ../source/guides/distributing-packages-using-setuptools.rst:314 msgid "" @@ -5899,6 +6222,10 @@ msgid "" "declared with ``console_scripts``. Dependencies will be installed in the " "usual, non-editable mode." msgstr "" +"pip 的命令行标志 ``-e`` 是 ``--editable`` 的简写,而 ``.`` 指的是当前工作目录" +",因此合在一起,意思就是以可编辑模式安装当前目录(即你的项目)。这还会安装由 " +"``install_requires`` 声明的所有依赖项以及由 ``console_scripts`` 声明的所有脚" +"本。依赖项将以常规的非可编辑模式安装。" #: ../source/guides/distributing-packages-using-setuptools.rst:321 msgid "" @@ -5907,6 +6234,9 @@ msgid "" "want \"bar\" installed from VCS in editable mode, then you could construct a " "requirements file like so::" msgstr "" +"你可能还想以可编辑模式安装某些依赖项。例如,假设你的项目需要 \"foo\" 和 " +"\"bar\",但你希望 \"bar\" 以可编辑模式从 VCS 安装,那么你可以像这样构造一个 " +"requirements 文件::" #: ../source/guides/distributing-packages-using-setuptools.rst:329 msgid "" @@ -5914,6 +6244,8 @@ msgid "" "line overrides the \"bar\" dependency, such that it's fulfilled from VCS, " "not PyPI." msgstr "" +"第一行表示安装你的项目及所有依赖项。第二行覆盖了 \"bar\" 依赖项,使其改从 " +"VCS 而不是 PyPI 获取。" #: ../source/guides/distributing-packages-using-setuptools.rst:333 msgid "" @@ -5921,6 +6253,8 @@ msgid "" "mode, the requirements file should look like this, with the local paths at " "the top of the file::" msgstr "" +"但是,如果你希望 \"bar\" 以可编辑模式从本地目录安装,那么 requirements 文件应" +"该像下面这样,把本地路径放在文件顶部::" #: ../source/guides/distributing-packages-using-setuptools.rst:338 msgid "" @@ -5930,21 +6264,27 @@ msgid "" "the pip docs. For more on VCS installs, see the :ref:`VCS Support ` section of the pip docs." msgstr "" +"否则,由于 requirements 文件的安装顺序,该依赖项将从 PyPI 获取。有关 " +"requirements 文件的更多信息,请参见 pip 文档中的 :ref:`requirements 文件 " +"` 一节。有关 VCS 安装的更多信息,请参见 pip 文档中的 " +":ref:`VCS 支持 ` 一节。" #: ../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 "" +msgstr "最后,如果你根本不想安装任何依赖项,可以运行:" #: ../source/guides/distributing-packages-using-setuptools.rst:349 msgid "" "For more information, see the :doc:`Development Mode ` section of the :ref:`setuptools` docs." msgstr "" +"更多信息请参见 :ref:`setuptools` 文档中的 :doc:`开发模式 " +"` 一节。" #: ../source/guides/distributing-packages-using-setuptools.rst:356 msgid "Packaging your project" -msgstr "" +msgstr "打包你的项目" #: ../source/guides/distributing-packages-using-setuptools.rst:358 msgid "" @@ -5953,12 +6293,15 @@ msgid "" "a :term:`Distribution ` (aka \":term:`Package " "`\") for your project." msgstr "" +"要让你的项目能够从 :term:`PyPI ` 这样的 " +":term:`Package Index` 安装,你需要为项目创建一个 :term:`分发包 `,也称为 \":term:`软件包 `\"。" #: ../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 "" +msgstr "在为项目构建 wheel 包和 sdist 之前,你需要先安装 ``build`` 软件包:" #: ../source/guides/distributing-packages-using-setuptools.rst:380 msgid "Source distributions" @@ -5968,7 +6311,7 @@ msgstr "资源分布" msgid "" "Minimally, you should create a :term:`Source Distribution `:" -msgstr "" +msgstr "至少,你应当创建一个 :term:`源分发 `:" #: ../source/guides/distributing-packages-using-setuptools.rst:398 msgid "" @@ -5978,6 +6321,10 @@ msgid "" "involves a build step to build out the installation metadata " "from :file:`setup.py` and/or :file:`setup.cfg`." msgstr "" +"\"源分发\" 是未构建的(也就是说,它不是 :term:`Built Distribution`),在由 " +"pip 安装时需要一个构建步骤。即使该分发是纯 Python 的(即不含扩展),它仍然涉" +"及一个构建步骤,用于从 :file:`setup.py` 和/或 :file:`setup.cfg` 构建出安装元" +"数据。" #: ../source/guides/distributing-packages-using-setuptools.rst:406 msgid "Wheels" @@ -5990,18 +6337,25 @@ msgid "" "through the \"build\" process. Installing wheels is substantially faster for " "the end user than installing from a source distribution." msgstr "" +"你还应当为项目创建 wheel 包。wheel 是一种 :term:`已构建的软件包 `,无需经过 \"构建\" 过程即可安装。对最终用户来说,安装 wheel 包" +"比从源分发安装要快得多。" #: ../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:`\"纯 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 "" +"如果你的项目包含已编译的扩展,那么你要创建的就是所谓的 :ref:`平台 wheel (见" +"下文) `。" #: ../source/guides/distributing-packages-using-setuptools.rst:419 msgid "" @@ -6009,27 +6363,29 @@ msgid "" "you should create what's called a *Universal Wheel* by adding the following " "to your :file:`setup.cfg` file:" msgstr "" +"如果你的项目还支持 Python 2 *并且* 不包含任何 C 扩展,那么你应当创建所谓的 " +"*通用 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 "" +msgstr "只有当你的项目没有任何 C 扩展 *并且* 支持 Python 2 和 3 时,才使用此设置。" #: ../source/guides/distributing-packages-using-setuptools.rst:435 msgid "Pure Python Wheels" -msgstr "" +msgstr "纯 Python wheel" #: ../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 "" +msgstr "*纯 Python wheel* 不包含已编译的扩展,因此只需要一个 Python wheel。" #: ../source/guides/distributing-packages-using-setuptools.rst:440 #: ../source/guides/distributing-packages-using-setuptools.rst:469 msgid "To build the wheel:" -msgstr "" +msgstr "要构建 wheel 包:" #: ../source/guides/distributing-packages-using-setuptools.rst:454 msgid "" @@ -6037,22 +6393,29 @@ msgid "" "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 "" +msgstr "平台 wheel" #: ../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 "" +"*平台 wheel* 是特定于某一平台(如 Linux、macOS 或 Windows)的 wheel,通常是因" +"为包含了已编译的扩展。" #: ../source/guides/distributing-packages-using-setuptools.rst:484 msgid "" @@ -6060,6 +6423,8 @@ msgid "" "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 "" @@ -6067,6 +6432,8 @@ msgid "" "platform wheels for Windows, macOS, and the multi-distro ``manylinux*`` ABI. " "Details of the latter are defined in :pep:`513`." msgstr "" +":term:`PyPI ` 目前支持上传面向 Windows、macOS 和" +"多发行版 ``manylinux*`` ABI 的平台 wheel。后者的细节定义在 :pep:`513` 中。" #: ../source/guides/distributing-packages-using-setuptools.rst:498 msgid "Uploading your Project to PyPI" @@ -6078,6 +6445,8 @@ msgid "" "`` was created under your project's root directory. That's where you'll find " "your distribution file(s) to upload." msgstr "" +"当你运行创建分发包的命令时,项目根目录下会创建一个新目录 ``dist/``。你要上传" +"的分发包文件就可以在那里找到。" #: ../source/guides/distributing-packages-using-setuptools.rst:504 msgid "" @@ -6086,6 +6455,9 @@ msgid "" "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 "" +"这些文件只在你运行创建分发包的命令时才会生成。这意味着,每当你更改了项目源码" +"或 :file:`setup.py` 文件中的配置,都需要重新构建这些文件,然后才能将更改分发" +"到 PyPI。" #: ../source/guides/distributing-packages-using-setuptools.rst:509 msgid "" @@ -6094,6 +6466,9 @@ msgid "" "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 "" @@ -6103,6 +6478,10 @@ msgid "" "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`` 的说法。**强烈不建议** 使用这些注册和上传软件包的方法,因为" +"在某些 Python 版本上,它们可能使用明文 HTTP 或未经验证的 HTTPS 连接,从而使你" +"的用户名和密码在传输过程中被截获。" #: ../source/guides/distributing-packages-using-setuptools.rst:520 msgid "" @@ -6113,6 +6492,11 @@ msgid "" "long descriptions provided in :file:`setup.py` are valid. You can do this " "by running :std:doc:`twine check ` on your package files:" msgstr "" +"PyPI 所使用的 reStructuredText 解析器 **并** 不是 Sphinx!此外,为了确保所有" +"用户的安全,某些类型的 URL 和指令会被禁止或剔除(例如 ``.. raw::`` 指令)。在" +"尝试上传分发包 **之前**,你应当检查在 :file:`setup.py` 中提供的简短/详细描述" +"是否有效。你可以对软件包文件运行 :std:doc:`twine check ` 来做到这一点" +":" #: ../source/guides/distributing-packages-using-setuptools.rst:533 msgid "Create an account" @@ -6131,7 +6515,7 @@ msgstr "" msgid "" "Now you'll create a PyPI `API token`_ so you will be able to securely upload " "your project." -msgstr "现在你将创建一个PyPI `API 令牌`_ ,这样你就能安全地上传你的项目。" +msgstr "现在你将创建一个 PyPI `API 令牌`_ ,这样你就能安全地上传你的项目。" #: ../source/guides/distributing-packages-using-setuptools.rst:542 msgid "" @@ -6215,8 +6599,8 @@ msgid "" "access. :ref:`pip` is currently considering changing this by `making user " "installs the default behavior `_." msgstr "" -"根据你的平台,这可能需要 root 或管理员权限。 :ref:`pip` 目前正在考虑通过`使用" -"户安装(user installs)成为默认行为 `_ 来改变这一点。" #: ../source/guides/dropping-older-python-versions.rst:5 @@ -6229,6 +6613,8 @@ msgid "" "standard :ref:`core-metadata` 1.2 specification via the :ref:`\"Requires-" "Python\" ` attribute." msgstr "" +"得益于标准 :ref:`core-metadata` 1.2 规范中的 :ref:`\"Requires-Python\" ` 属性,放弃对旧版 Python 的支持成为可能。" #: ../source/guides/dropping-older-python-versions.rst:9 msgid "" @@ -6237,12 +6623,17 @@ msgid "" "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 "" +"诸如 Pip 之类的 Metadata 1.2+ 安装器会遵循此规范,将当前的 Python 运行时与软" +"件包元数据中所需的版本进行匹配比较。如果两者不匹配,安装器将尝试安装最后一个" +"支持该 Python 运行时的分发包。" #: ../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 "" +"通过修改软件包元数据中的 ``Requires-Python`` 属性,可以利用这一机制来放弃对旧" +"版 Python 的支持。" #: ../source/guides/dropping-older-python-versions.rst:15 msgid "Requirements" @@ -6253,10 +6644,12 @@ 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 "" +msgstr "处理通用 wheel" #: ../source/guides/dropping-older-python-versions.rst:22 msgid "" @@ -6267,12 +6660,19 @@ msgid "" "this tag to just ``py3``. It is often configured within :file:`setup.cfg` " "under the ``[bdist_wheel]`` section by setting ``universal = 1``." msgstr "" +"传统上,提供与 Python 2 和 Python 3 语义兼容的 Python 代码的 " +":ref:`setuptools` 项目,会生成名称中带有 ``py2.py3`` 标签的 :term:`wheel 包 " +"`。在放弃对 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 "" @@ -6280,6 +6680,8 @@ msgid "" "invocations, passing the ``--universal`` flag on the command line could " "override this setting." msgstr "" +"至于 :ref:`已弃用 ` 的 ``setup.py`` 直接调用,在命令行上" +"传递 ``--universal`` 标志可能会覆盖此设置。" #: ../source/guides/dropping-older-python-versions.rst:45 msgid "Defining the Python version required" @@ -6291,7 +6693,7 @@ msgstr "1. 安装 twine" #: ../source/guides/dropping-older-python-versions.rst:50 msgid "Ensure that you have twine available at its latest version. Steps:" -msgstr "" +msgstr "请确保你已安装最新版本的 twine。步骤如下:" #: ../source/guides/dropping-older-python-versions.rst:66 msgid "2. Specify the version ranges for supported Python distributions" @@ -6304,6 +6706,9 @@ msgid "" "configuration field corresponds to the :ref:`Requires-Python ` core metadata field:" msgstr "" +"在项目的 :file:`pyproject.toml` 中设置版本范围,声明支持哪些 Python 发行版。" +"其中的 :ref:`requires-python` 配置字段对应于 :ref:`Requires-Python ` 核心元数据字段:" #: ../source/guides/dropping-older-python-versions.rst:80 msgid "" @@ -6320,6 +6725,8 @@ msgid "" "If using the :ref:`setuptools` build backend, consult the `dependency-" "management`_ documentation for more options." msgstr "" +"如果使用 :ref:`setuptools` 构建后端,请查阅 `dependency-management`_ 文档了解" +"更多选项。" #: ../source/guides/dropping-older-python-versions.rst:92 msgid "" @@ -6327,6 +6734,8 @@ msgid "" "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" @@ -6337,6 +6746,8 @@ 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 "" @@ -6344,6 +6755,8 @@ msgid "" "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:`构建后端 ` 在生成源分发时生成。文件中包含一组" +"键和值,这些键的列表是 PyPA 标准元数据格式的一部分。" #: ../source/guides/dropping-older-python-versions.rst:103 msgid "You can see the contents of the generated file like this:" @@ -6351,23 +6764,23 @@ msgstr "你可以看到生成文件的内容是这样的:" #: ../source/guides/dropping-older-python-versions.rst:109 msgid "Validate that the following is in place, before publishing the package:" -msgstr "" +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 "" +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 "" +msgstr "``Requires-Python`` 字段已设置,并且与你在配置文件中声明的规格一致。" #: ../source/guides/dropping-older-python-versions.rst:115 msgid "4. Publishing the package" -msgstr "" +msgstr "4. 发布软件包" #: ../source/guides/dropping-older-python-versions.rst:117 msgid "Proceed as suggested in :ref:`Uploading your Project to PyPI`." @@ -6387,10 +6800,14 @@ msgid "" "depends on whether the project needs to be stable and well-covered for a " "wider range of users." msgstr "" +"原则上,对 Python 版本的元数据支持应当尽可能长久地保留,因为一旦放弃,仍然依" +"赖某个版本的用户将被迫降级。但如果支持某个特定版本成为新特性的阻碍,或者出现" +"其他问题,就应当修改元数据中的 ``Requires-Python``。当然,这也取决于项目是否" +"需要为更广泛的用户群体保持稳定并覆盖完善。" #: ../source/guides/dropping-older-python-versions.rst:128 msgid "Each version compatibility change should have its own release." -msgstr "" +msgstr "每次版本兼容性变更都应有其独立的发布。" #: ../source/guides/dropping-older-python-versions.rst:132 msgid "" @@ -6399,10 +6816,13 @@ msgid "" "visible places (like the testing environment). Tools like pyupgrade_ or " "`ruff `_ can automate some of this work." msgstr "" +"在放弃某个 Python 版本时,除了更新可见位置(如测试环境)中使用的版本外,全面" +"升级项目的代码语法也可能颇有收益。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 "" +msgstr "Pip 9.0 已加入对 Metadata 1.2 规范的支持。" #: ../source/guides/hosting-your-own-index.rst:5 msgid "Hosting your own simple repository" @@ -6415,6 +6835,9 @@ msgid "" "the proper directory structure and use any web server that can serve static " "files and generate an autoindex." msgstr "" +"如果你想托管自己的简单存储库 [1]_,可以使用 :doc:`devpi ` 之类的" +"软件包,也可以直接创建合适的目录结构,然后使用任何能够提供静态文件服务并生成" +"自动目录索引(autoindex)的 Web 服务器。" #: ../source/guides/hosting-your-own-index.rst:13 msgid "" @@ -6422,6 +6845,8 @@ msgid "" "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 "" @@ -6429,10 +6854,12 @@ msgid "" "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 "" +msgstr "“手动”存储库" #: ../source/guides/hosting-your-own-index.rst:37 msgid "" @@ -6443,6 +6870,10 @@ msgid "" "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:`规范化名称 `。在每个目录中放入各个可下载的文件即" +"可。如果你有 \"Foo\"(版本 1.0 和 2.0)和 \"bar\"(版本 0.1)这两个项目,最终" +"得到的目录结构如下::" #: ../source/guides/hosting-your-own-index.rst:50 msgid "" @@ -6451,11 +6882,14 @@ msgid "" "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 "" +"完成这种布局后,只需配置你的 Web 服务器,使其在启用自动目录索引的情况下提供根" +"目录的服务。以 `Twisted`_ 内置的 Web 服务器为例,你只需运行 ``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 "" +msgstr "现有项目" #: ../source/guides/hosting-your-own-index.rst:63 msgid "Package upload" @@ -6463,13 +6897,13 @@ msgstr "上传软件包" #: ../source/guides/hosting-your-own-index.rst:64 msgid "PyPI fall-through [2]_" -msgstr "" +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 "" +msgstr "补充说明" #: ../source/guides/hosting-your-own-index.rst:67 #: ../source/guides/index-mirrors-and-caches.rst:58 @@ -6506,7 +6940,7 @@ msgstr "✔" msgid "" "multiple indexes with inheritance, with syncing, replication, fail-over; " "mirroring" -msgstr "" +msgstr "支持继承的多个索引,支持同步、复制、故障转移;镜像" #: ../source/guides/hosting-your-own-index.rst:73 #: ../source/guides/index-mirrors-and-caches.rst:71 @@ -6528,7 +6962,7 @@ msgstr ":ref:`pypicloud`" #: ../source/guides/hosting-your-own-index.rst:91 msgid "unmaintained; also cached proxying; authentication, authorisation" -msgstr "" +msgstr "已停止维护;还支持带缓存的代理;支持身份验证和授权" #: ../source/guides/hosting-your-own-index.rst:93 msgid ":ref:`pywharf`" @@ -6536,7 +6970,7 @@ msgstr ":ref:`pywharf`" #: ../source/guides/hosting-your-own-index.rst:96 msgid "unmaintained; serve files in GitHub" -msgstr "" +msgstr "已停止维护;在 GitHub 上提供文件服务" #: ../source/guides/hosting-your-own-index.rst:98 #: ../source/guides/index-mirrors-and-caches.rst:83 @@ -6545,7 +6979,7 @@ msgstr ":ref:`pulppython`" #: ../source/guides/hosting-your-own-index.rst:101 msgid "also mirroring, proxying; plugin for Pulp" -msgstr "" +msgstr "还支持镜像和代理;Pulp 的插件" #: ../source/guides/hosting-your-own-index.rst:103 msgid ":ref:`pip2pi`" @@ -6553,7 +6987,7 @@ msgstr ":ref:`pip2pi`" #: ../source/guides/hosting-your-own-index.rst:106 msgid "also mirroring; manual synchronisation" -msgstr "" +msgstr "还支持镜像;手动同步" #: ../source/guides/hosting-your-own-index.rst:108 msgid ":ref:`dumb-pypi`" @@ -6561,11 +6995,11 @@ msgstr ":ref:`dumb-pypi`" #: ../source/guides/hosting-your-own-index.rst:111 msgid "not a server, but a static file site generator" -msgstr "" +msgstr "不是服务器,而是静态文件站点生成器" #: ../source/guides/hosting-your-own-index.rst:113 msgid ":ref:`httpserver`" -msgstr "" +msgstr ":ref:`httpserver`" #: ../source/guides/hosting-your-own-index.rst:116 msgid "standard-library" @@ -6584,20 +7018,24 @@ msgid "" "current/mod/mod_cache_disk.html>`_, you can cache requests to package " "indexes through an Apache server" msgstr "" +"使用 `mod_rewrite `_ 和 `mod_cache_disk `_,可以通过 Apache 服务器缓存发往包索引的请" +"求" #: ../source/guides/hosting-your-own-index.rst:131 msgid "" "For complete documentation of the simple repository protocol, " "see :ref:`simple repository API `." msgstr "" -"简单存储库协议的完整文档,请查看 :ref:`simple repository API `。" +"简单存储库协议的完整文档,请查看 :ref:`简单存储库 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 "" +msgstr "可以配置为在请求的软件包缺失时回退到 PyPI(或其他包索引)。" #: ../source/guides/index.rst:4 msgid "" @@ -6605,6 +7043,8 @@ msgid "" "are already familiar with the basics of Python packaging. If you're looking " "for an introduction to packaging, see :doc:`/tutorials/index`." msgstr "" +"**指南** 侧重于完成特定任务,并假定你已经熟悉 Python 打包的基础知识。如果你在" +"寻找打包的入门介绍,请参阅 :doc:`/tutorials/index`。" #: ../source/guides/index-mirrors-and-caches.rst:5 msgid "Package index mirrors and caches" @@ -6620,26 +7060,31 @@ msgid "" "Index>`) can be used to speed up local package installation, allow offline " "work, handle corporate firewalls or just plain Internet flakiness." msgstr "" +"对 PyPI(以及其他 :term:`包索引 `)进行镜像或缓存,可用于加快" +"本地软件包安装速度、支持离线工作、应对公司防火墙,或者单纯解决网络不稳定的问" +"题。" #: ../source/guides/index-mirrors-and-caches.rst:15 msgid "There are multiple classes of options in this area:" -msgstr "" +msgstr "这一领域有多种类型的选项:" #: ../source/guides/index-mirrors-and-caches.rst:17 msgid "local/hosted caching of package indexes." -msgstr "" +msgstr "本地/托管的包索引缓存。" #: ../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 "" +msgstr "本地/托管的包索引镜像。镜像是包索引的(完整或部分)副本,可用来替代原始索引。" #: ../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 "" +"可回退到公共包索引的私有包索引(例如,用于缓解依赖混淆攻击),也称为代理(" +"proxy)。" #: ../source/guides/index-mirrors-and-caches.rst:29 msgid "Caching with pip" @@ -6650,6 +7095,8 @@ 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 "" @@ -6657,12 +7104,16 @@ msgid "" "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" @@ -6670,17 +7121,17 @@ msgstr "缓存" #: ../source/guides/index-mirrors-and-caches.rst:54 msgid "Mirror" -msgstr "" +msgstr "镜像" #: ../source/guides/index-mirrors-and-caches.rst:55 msgid "Proxy" -msgstr "" +msgstr "代理" #: ../source/guides/index-mirrors-and-caches.rst:62 msgid "" "multiple indexes with inheritance; syncing, replication, fail-over; package " "upload" -msgstr "" +msgstr "支持继承的多个索引;同步、复制、故障转移;上传软件包" #: ../source/guides/index-mirrors-and-caches.rst:65 msgid ":ref:`bandersnatch`" @@ -6688,15 +7139,15 @@ msgstr ":ref:`bandersnatch`" #: ../source/guides/index-mirrors-and-caches.rst:75 msgid "custom plugin enables caching; re-routing to other package indexes" -msgstr "" +msgstr "自定义插件可实现缓存;重新路由到其他包索引" #: ../source/guides/index-mirrors-and-caches.rst:81 msgid "unmaintained; authentication, authorisation" -msgstr "" +msgstr "已停止维护;支持身份验证、授权" #: ../source/guides/index-mirrors-and-caches.rst:87 msgid "plugin for Pulp; multiple proxied indexes; package upload" -msgstr "" +msgstr "面向 Pulp 的插件;多个代理的索引;上传软件包" #: ../source/guides/index-mirrors-and-caches.rst:89 msgid ":ref:`proxpi`" @@ -6709,7 +7160,7 @@ msgstr "多个代理的索引" #: ../source/guides/index-mirrors-and-caches.rst:95 msgid ":ref:`nginx_pypi_cache`" -msgstr "" +msgstr ":ref:`nginx_pypi_cache`" #: ../source/guides/index-mirrors-and-caches.rst:101 msgid ":ref:`flaskpypiproxy`" @@ -6730,6 +7181,8 @@ msgid "" "kinds of hardware, or to interoperate with different pieces of external " "software." msgstr "" +"科学软件的依赖项往往比大多数软件更复杂,而且它通常提供多种构建选项,以便利用" +"不同类型的硬件,或与不同的外部软件互操作。" #: ../source/guides/installing-scientific-packages.rst:13 msgid "" @@ -6739,6 +7192,9 @@ msgid "" "libraries, and can take advantage of different levels of vectorized " "instructions available in modern CPUs." msgstr "" +"特别是 `NumPy `__ ,它是 `科学 Python 技术栈 `_ 中大多数软件的基础,可以配置为与不同的 FORTRAN 库互" +"操作,并能利用现代 CPU 中可用的不同级别的向量化指令。" #: ../source/guides/installing-scientific-packages.rst:19 msgid "" @@ -6749,6 +7205,11 @@ msgid "" "atlas.sourceforge.net/>`__ 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 版开始,PyPI 上提供了适用于所有主流操作系统" +"(Windows、macOS 和 Linux)的 ``wheel`` 格式预构建 32 位和 64 位二进制文件。" +"但请注意,在 Windows 上,NumPy 二进制文件链接的是 `ATLAS `__ BLAS/LAPACK 库,且仅限于 SSE2 指令,因此可能无法提" +"供最佳的线性代数性能。" #: ../source/guides/installing-scientific-packages.rst:26 msgid "" @@ -6757,6 +7218,8 @@ msgid "" "environment to install from source and don't provide pre-built wheel files " "on PyPI)." msgstr "" +"有多种替代方案可以获取科学 Python 库(或任何其他需要编译环境才能从源代码安装" +"、且未在 PyPI 上提供预构建 wheel 文件的 Python 库)。" #: ../source/guides/installing-scientific-packages.rst:32 msgid "Building from source" @@ -6770,6 +7233,9 @@ msgid "" "to spend the time wrangling compilers and linkers for both C and FORTRAN, " "building from source is always an option." msgstr "" +"正是这种复杂性,使得 NumPy(以及许多依赖它的项目)难以以 wheel 文件的形式分发" +",也同样让你难以自行从源代码构建它们。不过,对于愿意花时间折腾 C 和 FORTRAN " +"编译器与链接器的勇士来说,从源代码构建始终是一种选择。" #: ../source/guides/installing-scientific-packages.rst:42 msgid "Linux distribution packages" @@ -6781,6 +7247,8 @@ msgid "" "versions of various pieces of scientific software, including NumPy and other " "parts of the scientific Python stack." msgstr "" +"对 Linux 用户而言,系统包管理器通常提供各类科学软件的预编译版本,包括 NumPy " +"以及科学 Python 技术栈的其他组成部分。" #: ../source/guides/installing-scientific-packages.rst:48 msgid "" @@ -6789,6 +7257,8 @@ msgid "" "distributions installed into the system Python when using virtual " "environments)." msgstr "" +"如果你能接受使用可能已滞后数月的版本,那么这很可能是个不错的选择(只需确保在" +"使用虚拟环境时允许访问安装到系统 Python 中的分发包)。" #: ../source/guides/installing-scientific-packages.rst:54 msgid "Windows installers" @@ -6801,6 +7271,9 @@ msgid "" "download page. Using these installers allows users to avoid the need to set " "up a suitable environment to build extensions locally." msgstr "" +"许多目前没有(或无法)发布 wheel 文件的 Python 项目,至少会在 PyPI 上或其项目" +"下载页面上发布 Windows 安装程序。使用这些安装程序,用户便无需在本地搭建合适的" +"环境来构建扩展。" #: ../source/guides/installing-scientific-packages.rst:61 msgid "" @@ -6818,6 +7291,9 @@ msgid "" "Python when using virtual environments is a common approach to working " "around this limitation." msgstr "" +"与 Linux 系统软件包一样,这些 Windows 安装程序只会安装到系统 Python 环境中," +"不支持在虚拟环境中安装。要绕过这一限制,常见做法是在使用虚拟环境时允许访问安" +"装到系统 Python 中的分发包。" #: ../source/guides/installing-scientific-packages.rst:70 msgid "" @@ -6825,6 +7301,8 @@ msgid "" "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" @@ -6836,6 +7314,8 @@ msgid "" "macOS installers that are compatible with the macOS CPython binaries " "published on python.org." msgstr "" +"与 Windows 上的情况类似,许多项目(包括 NumPy)发布的 macOS 安装程序与 " +"python.org 上发布的 macOS CPython 二进制文件兼容。" #: ../source/guides/installing-scientific-packages.rst:83 msgid "" @@ -6857,17 +7337,19 @@ msgid "" "that provide the full SciPy stack to end users in an easy to use and update " "format." msgstr "" +"SciPy 网站列出了 `若干发行版 `_ ,它们以易于使用" +"和更新的形式向最终用户提供完整的 SciPy 技术栈。" #: ../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 "" +msgstr "其中一些发行版可能与基于 ``pip`` 和 ``virtualenv`` 的标准工具链不兼容。" #: ../source/guides/installing-scientific-packages.rst:100 #: ../source/key_projects.rst:812 msgid "Spack" -msgstr "" +msgstr "Spack" #: ../source/guides/installing-scientific-packages.rst:101 msgid "" @@ -6896,6 +7378,10 @@ msgid "" "single package file. Spack also generates *module* files so that packages " "can be loaded and unloaded from the user's environment." msgstr "" +"Spack 提供了简洁而强大的语法,让用户能够简明地指定版本和配置选项。软件包文件" +"以纯 Python 编写,并采用模板化设计,因此只需单个软件包文件即可轻松更换编译器" +"、依赖项实现(如 MPI)、版本和构建选项。Spack 还会生成 *module* 文件,以便在" +"用户环境中加载和卸载软件包。" #: ../source/guides/installing-scientific-packages.rst:119 msgid "The conda cross-platform package manager" @@ -6915,6 +7401,13 @@ msgid "" "package, so that :command:`conda update python` is possible, in contrast to " "pip, which only manages Python packages." msgstr "" +"``conda`` 是一个开源(BSD 许可证)的软件包管理系统和环境管理系统,允许用户安" +"装多个版本的二进制软件包及其依赖项,并在它们之间轻松切换。它是一个跨平台工具" +",可在 Windows、MacOS 和 Linux 上运行。Conda 可以用来打包和分发各种软件包,并" +"不局限于 Python 软件包。它完全支持原生虚拟环境。Conda 将环境视为一等公民,即" +"使是 C 库也能轻松创建独立的环境。它用 Python 编写,但并不绑定 Python。Conda " +"将 Python 本身也作为软件包来管理,因此可以运行 :command:`conda update " +"python` ,这与只管理 Python 软件包的 pip 不同。" #: ../source/guides/installing-scientific-packages.rst:133 msgid "" @@ -6934,6 +7427,9 @@ msgid "" "miniconda/>`_, `miniforge `_, and " "`pixi `_." msgstr "" +"除了 Anaconda 提供的完整发行版之外,conda 软件包管理器本身还可通过 " +"`miniconda `_ 、 `miniforge `_ 和 `pixi `_ 获取。" #: ../source/guides/installing-scientific-packages.rst:138 msgid "" @@ -6942,6 +7438,9 @@ msgid "" "conda-forge channel, which provides a wide variety of pre-built packages, " "and some domain-specific package collections." msgstr "" +"Anaconda.org 上有多个频道提供 Conda 软件包,包括由 Anaconda 公司支持的默认频" +"道、由社区支持且提供丰富预构建软件包的 conda-forge 频道,以及一些特定领域的软" +"件包合集。" #: ../source/guides/installing-stand-alone-command-line-tools.rst:4 msgid "Installing stand alone command line tools" @@ -6964,6 +7463,8 @@ msgid "" "global environment can cause version conflicts and break dependencies the " "operating system has on Python packages." msgstr "" +"通常你会希望能从系统上的任何位置访问这些应用程序,但把软件包及其依赖项安装到" +"同一个全局环境中,可能导致版本冲突,并破坏操作系统对 Python 软件包的依赖。" #: ../source/guides/installing-stand-alone-command-line-tools.rst:17 msgid "" @@ -7029,7 +7530,7 @@ msgstr "" #: ../source/guides/installing-stand-alone-command-line-tools.rst:130 msgid "To see the full list of commands pipx offers, run:" -msgstr "要查看 pipx提供的全部命令列表,请运行:" +msgstr "要查看 pipx 提供的全部命令列表,请运行:" #: ../source/guides/installing-stand-alone-command-line-tools.rst:136 msgid "You can learn more about pipx at https://pipx.pypa.io/." @@ -7048,6 +7549,8 @@ msgid "" "This section covers how to install :ref:`pip`, :ref:`setuptools`, " "and :ref:`wheel` using Linux package managers." msgstr "" +"本节介绍如何使用 Linux 包管理器安装 :ref:`pip`、:ref:`setuptools` 和 " +":ref:`wheel`。" #: ../source/guides/installing-using-linux-tools.rst:13 msgid "" @@ -7055,6 +7558,8 @@ msgid "" "www.python.org>`_, then this section does not apply. See " "the :ref:`installing_requirements` section instead." msgstr "" +"如果你使用的是从 `python.org `_ 下载的 Python,那么本" +"节并不适用。请参阅 :ref:`installing_requirements` 一节。" #: ../source/guides/installing-using-linux-tools.rst:17 msgid "" @@ -7065,6 +7570,10 @@ msgid "" "there are additional repositories that can be enabled to provide newer " "versions. The repositories we know about are explained below." msgstr "" +"请注意,特定 Linux 发行版所支持的 :ref:`pip`、:ref:`setuptools` 和 " +":ref:`wheel` 的版本,往往在该发行版公开发布时就已过时,而且更新通常只出于安全" +"原因,而非为了功能更新。对于某些发行版,可以启用额外的软件仓库来提供更新的版" +"本。我们已知的软件仓库将在下文中说明。" #: ../source/guides/installing-using-linux-tools.rst:24 msgid "" @@ -7074,6 +7583,9 @@ msgid "" "original unpatched versions. When this is known, we will make note of it " "below." msgstr "" +"另请注意,发行版出于安全考虑以及使软件包符合自身标准的目的而打补丁的情况也颇" +"为常见。在某些情况下,这可能导致缺陷,或出现与原始未打补丁版本有所差异的意外" +"行为。凡是我们已知的情况,都会在下文中注明。" #: ../source/guides/installing-using-linux-tools.rst:31 msgid "Fedora" @@ -7084,6 +7596,8 @@ msgid "" "To learn more about Python in Fedora, please visit the `official Fedora " "docs`_, `Python Classroom`_ or `Fedora Loves Python`_." msgstr "" +"要进一步了解 Fedora 中的 Python,请访问 `Fedora 官方文档`_、`Python " +"Classroom`_ 或 `Fedora Loves Python`_。" #: ../source/guides/installing-using-linux-tools.rst:45 msgid "CentOS/RHEL" @@ -7094,6 +7608,8 @@ 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`,不过 " +":ref:`setuptools` 是默认安装的。" #: ../source/guides/installing-using-linux-tools.rst:50 msgid "To install pip and wheel for the system Python, there are two options:" @@ -7105,12 +7621,17 @@ msgid "" "`these instructions `__. On EPEL 7, you can install pip and wheel like so:" msgstr "" +"按照 `这些说明 " +"`__ 启用 `EPEL 仓库 `_。在 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 只提供额外的、不与现有软件包冲突的软件包,而 setuptools 已位于核心" +"软件仓库中,因此 EPEL 不提供 setuptools。" #: ../source/guides/installing-using-linux-tools.rst:65 msgid "" @@ -7119,22 +7640,29 @@ msgid "" "Infrastructure/Fedorahosted-retirement>`__ [1]_. You can install pip and " "wheel like so:" msgstr "" +"启用 `PyPA Copr 仓库 `_," +"具体方法请遵循 `这些说明 `__ [1]_。你可以像下面这样安装 pip 和 wheel:" #: ../source/guides/installing-using-linux-tools.rst:74 msgid "To additionally upgrade setuptools, run:" -msgstr "要额外升级setuptools ,请运行:" +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 "" +"如果要在并行的、非系统级的环境中(使用 yum)安装 pip、wheel 和 setuptools,有" +"两种选择:" #: ../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 "" @@ -7150,7 +7678,7 @@ 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 "" +msgstr "请注意,这些软件集合可能并不包含最新的版本。" #: ../source/guides/installing-using-linux-tools.rst:94 msgid "" @@ -7159,6 +7687,9 @@ msgid "" "Pythons, along with pip, setuptools, and wheel, which are kept fairly up to " "date." msgstr "" +"启用 `IUS 仓库 `_ 并安装其中一种 `可并行安装的 " +"`_ Python,同时安装 pip、" +"setuptools 和 wheel,它们都保持着相当新的版本。" #: ../source/guides/installing-using-linux-tools.rst:100 msgid "For example, for Python 3.4 on CentOS7/RHEL7:" @@ -7182,6 +7713,9 @@ msgid "" "`_ by default, " "which is a significant behavior change that can be surprising to some users." msgstr "" +"近期的 Debian/Ubuntu 版本修改了 pip,使其默认使用 `\"用户方案\" `_,这是一个显著的行为变化," +"可能让一些用户感到意外。" #: ../source/guides/installing-using-linux-tools.rst:135 msgid "Arch Linux" @@ -7192,6 +7726,8 @@ 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 "" +"目前,CentOS/RHEL 尚无 \"copr\" yum 插件可用,因此只能按所述方法手动放置仓库" +"文件。" #: ../source/guides/installing-using-pip-and-virtual-environments.rst:2 msgid "Install packages in a virtual environment using pip and venv" @@ -7203,6 +7739,8 @@ msgid "" "the standard library's virtual environment tool :ref:`venv` and install " "packages. The guide covers how to:" msgstr "" +"本指南讨论如何使用标准库的虚拟环境工具 :ref:`venv` 创建并激活虚拟环境,以及如" +"何安装软件包。本指南将介绍以下操作:" #: ../source/guides/installing-using-pip-and-virtual-environments.rst:8 msgid "Create and activate a virtual environment" @@ -7211,7 +7749,7 @@ msgstr "创建并激活一个虚拟环境" #: ../source/guides/installing-using-pip-and-virtual-environments.rst:9 #: ../source/guides/installing-using-pip-and-virtual-environments.rst:153 msgid "Prepare pip" -msgstr "" +msgstr "准备 pip" #: ../source/guides/installing-using-pip-and-virtual-environments.rst:10 msgid "Install packages into a virtual environment using the ``pip`` command" @@ -7224,7 +7762,7 @@ 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 "" +msgstr "本指南适用于受支持的 Python 版本,目前为 3.8 及更高版本。" #: ../source/guides/installing-using-pip-and-virtual-environments.rst:18 msgid "" @@ -7233,6 +7771,9 @@ msgid "" "from the term :term:`Import Package` which refers to import modules in your " "Python source code." msgstr "" +"本指南使用 **package** 一词指代 :term:`Distribution Package`,即分发包,此类" +"包通常从外部主机安装。它与 :term:`Import Package` 一词不同,后者指 Python 源" +"代码中导入的模块。" #: ../source/guides/installing-using-pip-and-virtual-environments.rst:25 msgid "" @@ -7241,6 +7782,9 @@ msgid "" "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" @@ -7259,12 +7803,16 @@ msgid "" "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 安装。当你切换项目时,可以创建一个新的虚" +"拟环境,它与其他虚拟环境相互隔离。虚拟环境的好处在于:你可以放心地安装软件包" +",而不会干扰其他项目的环境。" #: ../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 "" +msgstr "建议在处理第三方软件包时使用虚拟环境。" #: ../source/guides/installing-using-pip-and-virtual-environments.rst:48 msgid "" @@ -7321,6 +7869,8 @@ 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 "" +"在虚拟环境处于激活状态时,上述命令会输出一个包含 ``.venv`` 目录的文件路径,并" +"以如下内容结尾:" #: ../source/guides/installing-using-pip-and-virtual-environments.rst:124 msgid "" @@ -7328,7 +7878,7 @@ msgid "" "that specific environment. This enables you to import and use packages in " "your Python application." msgstr "" -"当虚拟环境被激活时,pip 会将软件包安装到该特定环境中。这样,您就可以在 " +"当虚拟环境被激活时,pip 会将软件包安装到该特定环境中。这样,你就可以在 " "Python 应用程序中导入和使用软件包。" #: ../source/guides/installing-using-pip-and-virtual-environments.rst:130 @@ -7346,6 +7896,8 @@ 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 会停用虚拟环境。如果你打开一个新的 shell 窗口并想使用该虚拟环境," +"请重新激活它。" #: ../source/guides/installing-using-pip-and-virtual-environments.rst:145 msgid "Reactivate a virtual environment" @@ -7357,12 +7909,14 @@ msgid "" "instructions about activating a virtual environment. There's no need to " "create a new virtual environment." msgstr "" +"如果你想重新激活一个现有的虚拟环境,请按照激活虚拟环境的相同说明操作。无需创" +"建新的虚拟环境。" #: ../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 "" +msgstr ":ref:`pip` 是 Python 的标准包管理器,用于在虚拟环境中安装和更新软件包。" #: ../source/guides/installing-using-pip-and-virtual-environments.rst:161 msgid "" @@ -7370,8 +7924,8 @@ msgid "" "install an additional package such as ``python3-pip``. You can make sure " "that pip is up-to-date by running:" msgstr "" -"macOS的 Python 安装程序包括 pip。在 Linux 系统上,你或许必需安装额外的软件" -"包,如 ``python3-pip``。你可以运行下列命令确保 pip 为最新:" +"macOS 的 Python 安装程序包括 pip。在 Linux 系统上,你或许必需安装额外的软件包" +",如 ``python3-pip``。你可以运行下列命令确保 pip 为最新:" #: ../source/guides/installing-using-pip-and-virtual-environments.rst:170 msgid "" @@ -7415,7 +7969,7 @@ msgstr "" #: ../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应该下载 request 及其所有的依赖项并安装它们:" +msgstr "pip 应该下载 request 及其所有的依赖项并安装它们:" #: ../source/guides/installing-using-pip-and-virtual-environments.rst:239 msgid "Install a specific package version" @@ -7501,6 +8055,8 @@ 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 "" @@ -7508,6 +8064,8 @@ msgid "" "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 "" @@ -7537,6 +8095,8 @@ msgid "" "(PyPI)` and a separate index, you can use the ``--extra-index-url`` flag " "instead:" msgstr "" +"如果你想同时允许来自 :term:`Python Package Index (PyPI)` 和另一个独立索引的软" +"件包,可以改用 ``--extra-index-url`` 标志:" #: ../source/guides/installing-using-pip-and-virtual-environments.rst:434 #: ../source/tutorials/installing-packages.rst:392 @@ -7548,6 +8108,8 @@ 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`` 及其所有依赖项:" #: ../source/guides/installing-using-pip-and-virtual-environments.rst:452 msgid "Using a requirements file" @@ -7559,16 +8121,19 @@ msgid "" "dependencies in a :ref:`Requirements File `. For " "example you could create a :file:`requirements.txt` file containing:" msgstr "" +"pip 允许你把所有依赖项声明在一个 :ref:`requirements 文件 ` 中,而不必逐个安装软件包。例如,你可以创建一个 " +":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 "" +msgstr "然后使用 ``-r`` 标志告诉 pip 安装该文件中的所有软件包:" #: ../source/guides/installing-using-pip-and-virtual-environments.rst:478 msgid "Freezing dependencies" -msgstr "" +msgstr "冻结依赖项" #: ../source/guides/installing-using-pip-and-virtual-environments.rst:480 msgid "" @@ -7578,7 +8143,7 @@ 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 "" +msgstr "该命令将输出一个软件包说明符列表,例如:" #: ../source/guides/installing-using-pip-and-virtual-environments.rst:511 msgid "" @@ -7586,6 +8151,8 @@ msgid "" "Files` that can re-create the exact versions of all packages installed in an " "environment." msgstr "" +"``pip freeze`` 命令可用于创建 :ref:`pip:Requirements Files`,此类文件能够精确" +"复现环境中已安装的所有软件包的版本。" #: ../source/guides/installing-using-virtualenv.rst:2 msgid "Installing packages using virtualenv" @@ -7596,6 +8163,8 @@ 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` 安装软件包。virtualenv 是" +"一个用于创建隔离 Python 环境的工具。" #: ../source/guides/installing-using-virtualenv.rst:8 msgid "" @@ -7603,6 +8172,8 @@ msgid "" "under development. Please refer to the :ref:`virtualenv` documentation for " "details on installation and usage." msgstr "" +"这篇关于安装软件包和使用 :ref:`virtualenv` 的 \"how to\" 指南仍在编写中。有关" +"安装和用法的详细信息,请参阅 :ref:`virtualenv` 文档。" #: ../source/guides/installing-using-virtualenv.rst:13 msgid "" @@ -7610,10 +8181,12 @@ msgid "" "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` 不同,后者用于在你的 Python 源代码中导入模块。" #: ../source/guides/licensing-examples-and-user-scenarios.rst:6 msgid "Licensing examples and user scenarios" -msgstr "" +msgstr "许可示例与用户场景" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" @@ -7624,6 +8197,10 @@ msgid "" "build backend supports :pep:`639` before trying to apply the newer " "guidelines." msgstr "" +":pep:`639` 规定了如何声明 :term:`Distribution Archive` 的许可证、许可证文件路" +"径以及其他法律要求信息。本文档旨在提供清晰的指导,说明如何从旧式的许可证声明" +"方式迁移到标准化方式。在尝试应用新指南之前,请确保你偏好的构建后端支持 " +":pep:`639`。" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 msgid "Licensing Examples" @@ -7642,25 +8219,29 @@ msgid "" "automatic inclusion of license-related files matching common patterns, such " "as the :file:`LICENSE` file it uses." msgstr "" +"Setuptools 项目本身自 `版本 75.6.0 `__ 起就不再在自己的项目" +"源码元数据中使用 ``License`` 字段。此外,它也不再像以前那样显式指定 " +"``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 "" +msgstr "它在自己的 :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 "" +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 "" +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 "" +msgstr "这样,为 :term:`Distribution Package` 生成的 Core Metadata 将会是:" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 msgid "" @@ -7671,6 +8252,11 @@ msgid "" "respective archive and ``{VERSION}`` the version of the Setuptools release " "in the Core Metadata." msgstr "" +":file:`LICENSE` 文件将存储在 sdist 中的 :file:`/setuptools-{VERSION}/" +"LICENSE` 和 wheel 中的 :file:`/setuptools-{VERSION}.dist-info/licenses/" +"LICENSE`,并在安装时从那里解包到站点目录(例如 :file:`site-packages/`)中;其" +"中 :file:`/` 是相应归档文件的根目录,``{VERSION}`` 是 Core Metadata 中 " +"Setuptools 发布版本的版本号。" #: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" @@ -7682,10 +8268,12 @@ msgid "" "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" +"假设 Setuptools 要纳入内置(vendored)在 :file:`setuptools/_vendor/` 和 " +":file:`pkg_resources/_vendor/` 目录中的第三方项目的许可证;具体如下:" #: ../source/guides/licensing-examples-and-user-scenarios.rst:87 msgid "The appropriate license expressions are:" -msgstr "" +msgstr "相应的许可证表达式为:" #: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" @@ -7693,6 +8281,8 @@ msgid "" "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" +"一个同时涵盖 Setuptools 本体及其内置依赖项的综合许可证表达式将包含这些元数据" +",即把所有许可证表达式合并为一个。这样的表达式可能是:" #: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" @@ -7705,6 +8295,12 @@ msgid "" "Packaging copyright statement and `license choice notice " "`__." msgstr "" +"此外,根据各许可证的要求,相关的许可证文件必须包含在软件包中。假设 " +":file:`LICENSE` 文件包含 MIT 许可证文本以及 Setuptools" +"、``pyparsing``、``more_itertools`` 和 ``ordered-set`` 所使用的版权信息;而 " +":file:`setuptools/_vendor/packaging/` 目录中的 :file:`LICENSE*` 文件包含 " +"Apache 2.0 与双条款 BSD 许可证文本,以及 Packaging 的版权声明和 `许可证选择声" +"明 `__。" #: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" @@ -7712,25 +8308,27 @@ msgid "" "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" +"具体来说,我们假设这些许可证文件位于项目源码树中的以下路径(相对于项目根目录" +"和 :file:`pyproject.toml`):" #: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" -msgstr "" +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 "" +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 "" +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 "" +msgstr "无论采用哪种方式,分发包中输出的 Core Metadata 都将是:" #: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" @@ -7738,12 +8336,16 @@ msgid "" "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" +"在生成的 sdist 中,以 :file:`/` 为归档文件的根目录、``{VERSION}`` 为 Core " +"Metadata 中指定的 Setuptools 发布版本号,许可证文件将位于以下路径:" #: ../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:`/` 为归档文件的根目录、``{VERSION}`` 同上,许" +"可证文件将存储在:" #: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" @@ -7751,6 +8353,8 @@ msgid "" "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" +"最后,在已安装的项目中,以 :file:`site-packages/` 为站点目录、``{VERSION}`` " +"同上,许可证文件将被安装到:" #: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" @@ -7758,11 +8362,11 @@ msgstr "表达式示例" #: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" -msgstr "" +msgstr "下面再给出一些有效的 ``License-Expression`` 值的示例:" #: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" -msgstr "" +msgstr "用户场景" #: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" @@ -7772,10 +8376,13 @@ msgid "" "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 "" +msgstr "我有一个不会分发的私有软件包" #: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" @@ -7783,6 +8390,8 @@ msgid "" "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 "" @@ -7792,10 +8401,13 @@ msgid "" "your project directory, which will be automatically included by packaging " "tools." msgstr "" +"不过,在软件包配置中加入 ``LicenseRef-Proprietary`` 作为许可证表达式,并在项" +"目目录根部的 :file:`LICENSE.txt` 文件中写入版权声明和任何法律声明,仍然是个好" +"主意;打包工具会自动把这些文件包含进去。" #: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" -msgstr "" +msgstr "我只想不受法律限制地分享自己的作品" #: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" @@ -7806,6 +8418,11 @@ msgid "" "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 "" @@ -7815,10 +8432,14 @@ msgid "" "``[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` 的文件中,并在版权行中加上年份和你的姓名。然后,如果你的" +"打包工具支持,只需在 :file:`pyproject.toml` 的 ``[project]`` 之下添加 " +"``license = \"MIT\"``,或者添加到该工具的配置文件/配置节中。大功告成!" #: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" -msgstr "" +msgstr "我想以特定许可证分发我的项目" #: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" @@ -7831,16 +8452,25 @@ msgid "" "on sites like `ChooseALicense `__ or `SPDX " "`__." msgstr "" +"要使用某个特定的许可证,只需把它的文本粘贴到仓库根目录下的 " +":file:`LICENSE.txt` 文件中(如果你还没有以 :file:`LICENSE` 或 " +":file:`COPYING` 开头的此类文件),并在你的 :file:`pyproject.toml` 的 " +"``[project]`` 之下(如果你的打包工具支持)添加 ``license = \"LICENSE-ID\"``," +"或者添加到该工具的配置文件中。你可以在 `ChooseALicense " +"`__ 或 `SPDX `__ 等站点上找到 ``LICENSE-ID`` 以及可复制的许可证文" +"本。" #: ../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 "" +msgstr "我维护着一个已有许可证的现有软件包" #: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" @@ -7848,6 +8478,8 @@ msgid "" "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" +"如果你的项目中已经有了许可证文件和元数据,那么要利用新功能,你应该只需要做几" +"处小调整。" #: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" @@ -7859,6 +8491,12 @@ msgid "" "otherwise, check the `SPDX license list `__ for the identifier " "that matches the license used." msgstr "" +"在项目配置文件中,把你的许可证表达式填到 ``license`` 之下(即 " +":file:`pyproject.toml` 中的 ``[project]`` 表),或者填到你的打包工具的等价配" +"置项中,并务必删除任何旧式的 ``license`` 表子键或 ``License ::`` 分类器。你现" +"有的 ``license`` 值可能本身已经是有效的许可证表达式(例如 ``MIT``、``Apache-" +"2.0 OR BSD-2-Clause`` 等);否则,请查阅 `SPDX 许可证列表 `__,寻" +"找与所用许可证匹配的标识符。" #: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" @@ -7866,6 +8504,8 @@ msgid "" "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" +"请确保在 :file:`pyproject.toml` 的 ``[project]`` 之下的 ``license-files`` 中" +"列出你的许可证文件,或者在你的工具的配置文件中列出它们。" #: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" @@ -7877,10 +8517,15 @@ msgid "" "converting legacy licensing metadata; check your tool's documentation for " "more information." msgstr "" +"请参阅 :ref:`licensing-example-basic`,这是一个简单但完整的真实示例,展示了这" +"套机制在实践中的运作方式。另请参阅 :pep:`639` 作者提供的关于如何把许可证分类" +"器转换为许可证表达式的尽力而为的指导:`把许可证分类器映射到 SPDX 标识符 " +"`__。打包工具可能支持自动转换旧式的许可证元数据;" +"更多信息请查阅你的工具的文档。" #: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" -msgstr "" +msgstr "我的软件包中包含采用不同许可证的其他代码" #: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" @@ -7889,6 +8534,9 @@ msgid "" "software, you can construct a license expression to describe the licenses " "involved and the relationship between them." msgstr "" +"如果你的项目中包含他人编写、采用不同许可证的代码,例如内置依赖项或从其他开源" +"软件复制的文件,你可以构建一个许可证表达式来描述所涉及的许可证以及它们之间的" +"关系。" #: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" @@ -7899,6 +8547,10 @@ msgid "" "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 "" @@ -7907,6 +8559,9 @@ msgid "" "packaging tool, and make sure to remove any legacy ``license`` table subkeys " "or ``License ::`` classifiers." msgstr "" +"在项目配置文件中,把你的许可证表达式填到 ``license`` 之下(即 " +":file:`pyproject.toml` 的 ``[project]`` 表),或者填到你的打包工具的等价配置" +"项中,并务必删除任何旧式的 ``license`` 表子键或 ``License ::`` 分类器。" #: ../source/guides/licensing-examples-and-user-scenarios.rst:328 msgid "" @@ -7916,6 +8571,10 @@ msgid "" "in :file:`pyproject.toml` (if your tool supports it), or else in your tool's " "configuration file." msgstr "" +"另外,请务必把所有许可证的完整文本以文件的形式添加到项目仓库中的某个位置。在 " +":file:`pyproject.toml` 的 ``[project]`` 之下的 ``license-files`` 中列出各个文" +"件的相对路径或 glob 模式(如果你的工具支持),或者在你的工具的配置文件中列出" +"。" #: ../source/guides/licensing-examples-and-user-scenarios.rst:334 msgid "" @@ -7929,6 +8588,14 @@ msgid "" "``[\"LICENSE.txt\", \"_vendor/LICENSE-APACHE.txt\", \"_vendor/LICENSE-" "BSD.txt\"]`` as literal file paths." msgstr "" +"举个例子:假如你的项目采用 MIT 许可证,但引入了一个采用 Apache 2.0 或双条款 " +"BSD 许可证的内置依赖项(比如 ``packaging``),那么你的许可证表达式将是 ``MIT " +"AND (Apache-2.0 OR BSD-2-Clause)``。你的仓库根目录下可能有一个 " +":file:`LICENSE.txt`,而 :file:`_vendor/` 子目录下有 :file:`LICENSE-" +"APACHE.txt` 和 :file:`LICENSE-BSD.txt`;要把它们全部包含进来,你可以把 " +"``[\"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 "" @@ -7937,10 +8604,13 @@ msgid "" "details, and consult a `tutorial `__ for more help and " "examples using SPDX identifiers and expressions." msgstr "" +"请参阅完整推演的 :ref:`licensing-example-advanced`,了解如何把这套做法端到端" +"地应用到一个真实的复杂项目,其中包含许多技术细节;并请参阅这份 `教程 " +"`__,获取更多使用 SPDX 标识符和表达式的帮助与示例。" #: ../source/guides/making-a-pypi-friendly-readme.rst:2 msgid "Making a PyPI-friendly README" -msgstr "" +msgstr "制作对 PyPI 友好的 README" #: ../source/guides/making-a-pypi-friendly-readme.rst:4 msgid "" @@ -7949,6 +8619,9 @@ msgid "" "in a PyPI-friendly format and include your README in your package so it " "appears on PyPI." msgstr "" +"README 文件可以帮助用户了解你的项目,还可以用来设置项目在 PyPI 上的描述。本指" +"南会帮助你以对 PyPI 友好的格式创建 README,并将其包含到软件包中,使其显示在 " +"PyPI 上。" #: ../source/guides/making-a-pypi-friendly-readme.rst:9 msgid "Creating a README file" @@ -7968,10 +8641,12 @@ msgid "" "supported by PyPI. Formats supported by `PyPI's README renderer `_ are:" msgstr "" +"为了让 README 在 PyPI 上正常显示,请选择 PyPI 支持的标记语言。`PyPI 的 " +"README 渲染器 `_ 支持的格式有:" #: ../source/guides/making-a-pypi-friendly-readme.rst:16 msgid "plain text" -msgstr "" +msgstr "纯文本" #: ../source/guides/making-a-pypi-friendly-readme.rst:17 msgid "" @@ -8007,20 +8682,25 @@ msgid "" "project's ``Description`` and ``Description-Content-Type`` metadata, " "typically in your project's :file:`setup.py` file." msgstr "" +"要将 README 的内容用作软件包描述,请设置项目的 ``Description`` 和 " +"``Description-Content-Type`` 元数据,通常是在项目的 :file:`setup.py` 文件中设" +"置。" #: ../source/guides/making-a-pypi-friendly-readme.rst:33 msgid ":ref:`description-optional`" -msgstr "" +msgstr ":ref:`description-optional`" #: ../source/guides/making-a-pypi-friendly-readme.rst:34 msgid ":ref:`description-content-type-optional`" -msgstr "" +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` 文件中设置这些值,可以使用 ``setup()`` " +"的 ``long_description`` 和 ``long_description_content_type``。" #: ../source/guides/making-a-pypi-friendly-readme.rst:39 msgid "" @@ -8029,6 +8709,10 @@ msgid "" "``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`` 风格的值" +",以匹配 README 文件的标记格式,例如 ``text/plain``、``text/x-rst`` (用于 " +"reStructuredText)或 ``text/markdown``。" #: ../source/guides/making-a-pypi-friendly-readme.rst:45 msgid "" @@ -8039,7 +8723,7 @@ msgstr "" #: ../source/guides/making-a-pypi-friendly-readme.rst:60 msgid "The minimum required versions of the respective tools are:" -msgstr "" +msgstr "各工具所需的最低版本为:" #: ../source/guides/making-a-pypi-friendly-readme.rst:62 msgid "``setuptools >= 38.6.0``" @@ -8057,7 +8741,7 @@ msgstr "" msgid "" "It's recommended that you use ``twine`` to upload the project's distribution " "packages:" -msgstr "" +msgstr "建议你使用 ``twine`` 来上传项目的分发包:" #: ../source/guides/making-a-pypi-friendly-readme.rst:72 msgid "" @@ -8065,10 +8749,12 @@ msgid "" "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 风格 Markdown:" #: ../source/guides/making-a-pypi-friendly-readme.rst:94 msgid "Validating reStructuredText markup" -msgstr "" +msgstr "校验 reStructuredText 标记" #: ../source/guides/making-a-pypi-friendly-readme.rst:96 msgid "" @@ -8076,6 +8762,8 @@ msgid "" "prevent it from rendering, causing PyPI to instead just show the README's " "raw source." msgstr "" +"如果你的 README 使用 reStructuredText 编写,那么任何无效的标记都会使其无法渲" +"染,导致 PyPI 只显示 README 的原始源文本。" #: ../source/guides/making-a-pypi-friendly-readme.rst:99 msgid "" @@ -8085,11 +8773,16 @@ msgid "" "reference-label```\"), are not allowed here and will result in error " "messages like \"``Error: Unknown interpreted text role \"py:func\".``\"." msgstr "" +"请注意,文档字符串中所用的 Sphinx 扩展(例如 :doc:`指令 ` 和 :doc:`角色 `,比如 \"``: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 "" +msgstr "你可以在上传之前按以下步骤检查 README 中的标记错误:" #: ../source/guides/making-a-pypi-friendly-readme.rst:106 msgid "" @@ -8104,10 +8797,12 @@ msgid "" "Build the sdist and wheel for your project as described " "under :ref:`Packaging Your Project`." msgstr "" +"请按照 :ref:`Packaging Your Project` 中的说明,为你的项目构建 sdist 和 wheel " +"包。" #: ../source/guides/making-a-pypi-friendly-readme.rst:124 msgid "Run ``twine check`` on the sdist and wheel:" -msgstr "" +msgstr "对 sdist 和 wheel 包运行 ``twine check``:" #: ../source/guides/making-a-pypi-friendly-readme.rst:130 msgid "" @@ -8115,6 +8810,8 @@ msgid "" "renders fine, the command will output ``Checking distribution FILENAME: " "Passed``." msgstr "" +"此命令会报告 README 在渲染方面的任何问题。如果你的标记渲染正常,该命令会输出 " +"``Checking distribution FILENAME: Passed``。" #: ../source/guides/migrating-to-pypi-org.rst:6 msgid "Migrating to PyPI.org" @@ -8125,7 +8822,7 @@ msgstr "迁移到 PyPI.org" #: ../source/guides/supporting-multiple-python-versions.rst:9 #: ../source/guides/supporting-windows-using-appveyor.rst:7 msgid "Obsolete" -msgstr "" +msgstr "已过时" #: ../source/guides/migrating-to-pypi-org.rst:10 msgid "" @@ -8139,7 +8836,7 @@ msgstr "" #: ../source/guides/migrating-to-pypi-org.rst:16 msgid "Publishing releases" -msgstr "" +msgstr "发布版本" #: ../source/guides/migrating-to-pypi-org.rst:18 msgid "``pypi.org`` is the default upload platform as of September 2016." @@ -8150,18 +8847,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`` 进行的上传已于 **2017 年 7 月 3 日** *关闭*。自 " +"2018 年 4 月 13 日起,``pypi.org`` 就是 PyPI 的 URL。" #: ../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 "" +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 "" +msgstr "在以下版本中,默认上传设置已切换为 ``pypi.org``:" #: ../source/guides/migrating-to-pypi-org.rst:28 msgid "``twine`` 1.8.0" @@ -8173,19 +8872,19 @@ msgstr "``setuptools`` 27.0.0" #: ../source/guides/migrating-to-pypi-org.rst:30 msgid "Python 2.7.13 (``distutils`` update)" -msgstr "" +msgstr "Python 2.7.13(``distutils`` 更新)" #: ../source/guides/migrating-to-pypi-org.rst:31 msgid "Python 3.4.6 (``distutils`` update)" -msgstr "" +msgstr "Python 3.4.6(``distutils`` 更新)" #: ../source/guides/migrating-to-pypi-org.rst:32 msgid "Python 3.5.3 (``distutils`` update)" -msgstr "" +msgstr "Python 3.5.3(``distutils`` 更新)" #: ../source/guides/migrating-to-pypi-org.rst:33 msgid "Python 3.6.0 (``distutils`` update)" -msgstr "" +msgstr "Python 3.6.0(``distutils`` 更新)" #: ../source/guides/migrating-to-pypi-org.rst:35 msgid "" @@ -8195,12 +8894,15 @@ msgid "" "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 "" +msgstr "那么只需删除以 ``repository`` 开头的那一行,你就会使用上传工具的默认 URL。" #: ../source/guides/migrating-to-pypi-org.rst:55 msgid "" @@ -8209,16 +8911,21 @@ msgid "" "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 "" +"(该 URL 中的 ``legacy`` 一词是指,这是新服务器实现对旧服务器实现的上传 API " +"的模拟。)" #: ../source/guides/migrating-to-pypi-org.rst:77 msgid "Registering package names & metadata" -msgstr "" +msgstr "注册软件包名称与元数据" #: ../source/guides/migrating-to-pypi-org.rst:79 msgid "" @@ -8226,18 +8933,20 @@ msgid "" "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`` 命令显式预注册软件包名称已不再需要," +"而且 PyPI.org 上的旧版上传 API 模拟目前也不支持这一操作。" #: ../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 "" +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 "" +msgstr "解决办法是跳过注册步骤,直接上传构建产物。" #: ../source/guides/migrating-to-pypi-org.rst:93 #: ../source/guides/using-testpypi.rst:5 @@ -8268,7 +8977,7 @@ msgid "" "user registrations at ``pypi.org`` are open." msgstr "" "为了帮助减轻针对 PyPI 的垃圾邮件攻击,通过 ``pypi.python.org`` 的新用户注册已" -"于 *2018年2月20日* *关闭*。在 ``pypi.org`` 上的新用户注册是开放的。" +"于 **2018年2月20日** *关闭*。在 ``pypi.org`` 上的新用户注册是开放的。" #: ../source/guides/migrating-to-pypi-org.rst:125 msgid "Browsing packages" @@ -8306,7 +9015,7 @@ msgstr "" #: ../source/guides/modernize-setup-py-project.rst:6 msgid "How to modernize a ``setup.py`` based project?" -msgstr "" +msgstr "如何将基于 ``setup.py`` 的项目现代化?" #: ../source/guides/modernize-setup-py-project.rst:10 msgid "Should ``pyproject.toml`` be added?" @@ -8319,11 +9028,14 @@ msgid "" "actually strongly recommended is the ``[build-system]`` table " "in :file:`pyproject.toml`." msgstr "" +"强烈建议添加 :term:`pyproject.toml` 文件。:file:`pyproject.toml` 文件本身的存" +"在并不会带来多少改变。[#]_ 实际上,真正强烈建议的是 :file:`pyproject.toml` 中" +"的 ``[build-system]`` 表。" #: ../source/guides/modernize-setup-py-project.rst:16 msgid "" "Note that it has influence on the build isolation feature of pip, see below." -msgstr "" +msgstr "注意,它会影响 pip 的构建隔离特性,参见下文。" #: ../source/guides/modernize-setup-py-project.rst:23 msgid "" @@ -8333,6 +9045,9 @@ msgid "" "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``" @@ -8344,11 +9059,11 @@ msgstr "``python -m build``" #: ../source/guides/modernize-setup-py-project.rst:129 #: ../source/guides/modernize-setup-py-project.rst:221 msgid "For more details:" -msgstr "" +msgstr "了解更多详情:" #: ../source/guides/modernize-setup-py-project.rst:44 msgid ":ref:`setup-py-deprecated`" -msgstr "" +msgstr ":ref:`setup-py-deprecated`" #: ../source/guides/modernize-setup-py-project.rst:48 msgid "Where to start?" @@ -8359,6 +9074,8 @@ 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 "" @@ -8366,12 +9083,16 @@ msgid "" "Frontend>` know that :ref:`setuptools` is the :term:`build backend ` for this project." msgstr "" +"这是让 :term:`构建前端 ` 知道 :ref:`setuptools` 是本项目的 " +":term:`构建后端 ` 的标准化方法。" #: ../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` " +"改变其默认行为,转而使用 *构建隔离* 机制。" #: ../source/guides/modernize-setup-py-project.rst:68 msgid ":ref:`distributing-packages`" @@ -8380,17 +9101,17 @@ 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 "" +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 "" +msgstr ":doc:`pip:reference/build-system`" #: ../source/guides/modernize-setup-py-project.rst:74 msgid "How to handle additional build-time dependencies?" -msgstr "" +msgstr "如何处理额外的构建时依赖项?" #: ../source/guides/modernize-setup-py-project.rst:76 msgid "" @@ -8400,22 +9121,26 @@ msgid "" "frontend knows to install them when building the :term:`distributions " "`." msgstr "" +"除了 setuptools 本身之外,如果 :file:`setup.py` 还依赖其他第三方库(Python 标" +"准库之外的库),就必须把这些库列在 ``[build-system]`` 表的 ``requires`` 列表" +"中,以便构建前端在构建 :term:`分发包 ` 时知道要安装它们" +"。" #: ../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 "" +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 "" +msgstr "需要像这样的 :file:`pyproject.toml` 文件(:file:`setup.py` 保持不变):" #: ../source/guides/modernize-setup-py-project.rst:117 msgid "What is the build isolation feature?" -msgstr "" +msgstr "什么是构建隔离特性?" #: ../source/guides/modernize-setup-py-project.rst:119 msgid "" @@ -8423,12 +9148,14 @@ msgid "" "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 "" +msgstr "对某些项目而言,并不需要这种隔离,可以按如下方式停用:" #: ../source/guides/modernize-setup-py-project.rst:126 msgid "``python -m build --no-isolation``" @@ -8440,51 +9167,59 @@ msgstr "``python -m pip install --no-build-isolation``" #: ../source/guides/modernize-setup-py-project.rst:135 msgid "How to handle packaging metadata?" -msgstr "" +msgstr "如何处理打包元数据?" #: ../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 "" +"所有静态元数据都可以选择性地移到 :file:`pyproject.toml` 中的 ``[project]`` 表" +"中。" #: ../source/guides/modernize-setup-py-project.rst:151 msgid "can be entirely replaced by a :file:`pyproject.toml` file like this:" -msgstr "" +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 "" +msgstr "如何处理动态元数据?" #: ../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 "" +"如果某些打包元数据字段不是静态的,就需要在这个 ``[project]`` 表中将它们列为 " +"``dynamic``。" #: ../source/guides/modernize-setup-py-project.rst:191 msgid "can be modernized as follows:" -msgstr "" +msgstr "可以按如下方式进行现代化:" #: ../source/guides/modernize-setup-py-project.rst:223 msgid ":ref:`declaring-project-metadata-dynamic`" -msgstr "" +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 "" +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 "" @@ -8492,6 +9227,8 @@ msgid "" "tree even after all its content has been moved to :file:`pyproject.toml`. " "This file can be as minimalistic as this:" msgstr "" +"即使所有内容都已移到 :file:`pyproject.toml`,在项目源码树中保留一个 " +":file:`setup.py` 文件也完全没问题。这个文件可以像下面这样保持最简:" #: ../source/guides/modernize-setup-py-project.rst:246 msgid ":ref:`pyproject-toml-spec`" @@ -8499,7 +9236,7 @@ msgstr ":ref:`pyproject-toml-spec`" #: ../source/guides/modernize-setup-py-project.rst:248 msgid ":doc:`setuptools:build_meta`" -msgstr "" +msgstr ":doc:`setuptools:build_meta`" #: ../source/guides/multi-version-installs.rst:6 msgid "Multi-version installs" @@ -8512,6 +9249,8 @@ msgid "" "must ``require`` the appropriate version of the project at run time (using " "``pkg_resources``)." msgstr "" +"easy_install 允许将同一项目的不同版本同时安装到一个由多个程序共享的环境中,这" +"些程序必须在运行时使用 ``pkg_resources`` 来 ``require`` 该项目的适当版本。" #: ../source/guides/multi-version-installs.rst:16 msgid "" @@ -8521,6 +9260,9 @@ msgid "" "environment shared by multiple applications, such as the system Python in a " "Linux distribution." msgstr "" +"在许多使用场景下,虚拟环境就能满足这一需求,避免了 ``require`` 指令带来的复杂" +"性。不过,在同一环境内并行安装的优势在于,它适用于由多个应用程序共享的环境," +"例如 Linux 发行版中的系统 Python。" #: ../source/guides/multi-version-installs.rst:22 msgid "" @@ -8536,6 +9278,14 @@ msgid "" "available by default, so the subsequent ``require`` call in your own code " "fails with a spurious version conflict." msgstr "" +"基于 ``pkg_resources`` 的并行安装的主要局限在于:一旦你导入了 " +"``pkg_resources``,它就会锁定 sys.path 上已经存在的所有内容的 *默认* 版本。这" +"可能引发问题,因为 ``setuptools`` 创建的命令行脚本会使用 ``pkg_resources`` 来" +"查找要执行的入口点。这意味着,举例来说,如果你的应用程序需要标准 " +"``sys.path`` 上已有内容的非默认版本,你就无法使用通过 ``nose`` 调用的 " +"``require`` 测试,也无法使用通过 ``gunicorn`` 调用的 WSGI 应用程序:主应用程" +"序的脚本包装器会锁定默认可用的版本,因此你自己代码中后续的 ``require`` 调用会" +"因虚假的版本冲突而失败。" #: ../source/guides/multi-version-installs.rst:34 msgid "" @@ -8546,10 +9296,14 @@ msgid "" "script or use ``python3 -c ''`` to invoke the application's main " "entry point directly." msgstr "" +"变通办法是在首次导入 ``pkg_resources`` 之前,将所有依赖项设置到 " +"``__main__.__requires__`` 中;但这种做法意味着受影响的工具无法再通过标准命令" +"行方式调用,而是需要编写自定义的包装脚本,或使用 ``python3 -c ''`` " +"来直接调用应用程序的主入口点。" #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" -msgstr "" +msgstr "打包二进制扩展" #: ../source/guides/packaging-binary-extensions.rst:8 msgid "2013-12-08" @@ -8563,20 +9317,23 @@ msgid "" "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 扩展,用来实现那些在纯 Python 代码中并不总是容易做到的事情。" #: ../source/guides/packaging-binary-extensions.rst:18 msgid "An overview of binary extensions" -msgstr "" +msgstr "二进制扩展概述" #: ../source/guides/packaging-binary-extensions.rst:21 msgid "Use cases" -msgstr "" +msgstr "使用场景" #: ../source/guides/packaging-binary-extensions.rst:23 msgid "" "The typical use cases for binary extensions break down into just three " "conventional categories:" -msgstr "" +msgstr "二进制扩展的典型使用场景不外乎三个传统类别:" #: ../source/guides/packaging-binary-extensions.rst:26 msgid "" @@ -8591,6 +9348,13 @@ msgid "" "github.com/python/cpython/blob/main/Modules/_datetimemodule.c>`_) is not " "available." msgstr "" +"**加速模块**:这类模块完全自包含,创建它们的唯一目的就是比相应的纯 Python 代" +"码在 CPython 中运行得更快。理想情况下,加速模块应当始终带有纯 Python 的等价实" +"现作为回退,以便在特定系统上没有加速版本时使用。CPython 标准库大量使用了加速" +"模块。*示例*:导入 ``datetime`` 时,如果 C 实现( `_datetimemodule.c " +"`_ )" +"不可用,Python 就会回退到 `datetime.py `_ 模块。" #: ../source/guides/packaging-binary-extensions.rst:37 msgid "" @@ -8603,6 +9367,12 @@ msgid "" "module wrapper for `_functoolsmodule.c `_." msgstr "" +"**包装模块**:这类模块用于把现有的 C 接口暴露给 Python 代码。它们既可以直接暴" +"露底层 C 接口,也可以暴露一个更“Pythonic”的 API,借助 Python 语言特性让该 " +"API 更易于使用。CPython 标准库大量使用了包装模块。*示例*:`functools.py " +"`_ 是 " +"`_functoolsmodule.c `_ 的 Python 模块包装。" #: ../source/guides/packaging-binary-extensions.rst:45 msgid "" @@ -8615,6 +9385,11 @@ msgid "" "which comes from `sysmodule.c `_." msgstr "" +"**底层系统访问**:这类模块用于访问 CPython 运行时、操作系统或底层硬件中更低层" +"的特性。借助平台特定的代码,扩展模块可以做到纯 Python 代码无法做到的事情。为" +"了访问语言层面未暴露的解释器内部机制,CPython 标准库中有不少模块是用 C 编写的" +"。*示例*:``sys`` 模块来自 `sysmodule.c `_。" #: ../source/guides/packaging-binary-extensions.rst:54 msgid "" @@ -8623,6 +9398,9 @@ msgid "" "global interpreter lock around long-running operations (regardless of " "whether those operations are CPU or IO bound)." msgstr "" +"C 扩展有一个特别值得注意的特性:当无需回调解释器运行时,它们可以在长时间运行" +"的操作期间释放 CPython 的全局解释器锁(无论这些操作是 CPU 密集型还是 IO 密集" +"型)。" #: ../source/guides/packaging-binary-extensions.rst:59 msgid "" @@ -8634,6 +9412,10 @@ msgid "" "concurrent execution of vectorised operations and to tightly control the " "exact memory layout of created objects." msgstr "" +"并非所有扩展模块都能整齐地归入上述类别。例如,NumPy 附带的扩展模块就横跨全部" +"三种使用场景:出于速度原因把内层循环移入 C;包装用 C、FORTRAN 和其他语言编写" +"的外部库;并且对 CPython 和底层操作系统使用底层系统接口,以支持向量化操作的并" +"发执行,并严格控制所创建对象的确切内存布局。" #: ../source/guides/packaging-binary-extensions.rst:69 msgid "Disadvantages" @@ -8648,28 +9430,32 @@ msgid "" "any language that can bind to the CPython C API) typically require that " "custom binaries be created for different platforms." msgstr "" +"使用二进制扩展的主要缺点在于,它会让软件的后续分发变得更加困难。使用 Python " +"的优势之一是它基本上是跨平台的,而编写扩展模块所用的语言(通常是 C 或 C++,实" +"际上也可以是任何能够绑定到 CPython C API 的语言)通常要求为不同的平台创建定制" +"的二进制文件。" #: ../source/guides/packaging-binary-extensions.rst:78 msgid "This means that binary extensions:" -msgstr "" +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 "" +msgstr "要求最终用户能够从源码构建它们,或者有人为常见平台发布预构建的二进制文件" #: ../source/guides/packaging-binary-extensions.rst:83 msgid "" "may not be compatible with different builds of the CPython reference " "interpreter" -msgstr "" +msgstr "可能与 CPython 参考解释器的不同构建版本不兼容" #: ../source/guides/packaging-binary-extensions.rst:86 msgid "" "often will not work correctly with alternative interpreters such as PyPy, " "IronPython or Jython" -msgstr "" +msgstr "在 PyPy、IronPython 或 Jython 等替代解释器上往往无法正常工作" #: ../source/guides/packaging-binary-extensions.rst:89 msgid "" @@ -8677,6 +9463,8 @@ msgid "" "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 "" @@ -8685,6 +9473,8 @@ msgid "" "introducing additional complexity in the test suite to ensure both versions " "are always executed." msgstr "" +"如果提供了纯 Python 回退实现,就会要求在两处实现更改,并为测试套件引入额外的" +"复杂度以确保两个版本都会得到执行,从而使维护更加困难" #: ../source/guides/packaging-binary-extensions.rst:99 msgid "" @@ -8693,10 +9483,12 @@ msgid "" "zipfiles) often won't work for extension modules (as the dynamic loading " "mechanisms on most platforms can only load libraries from disk)." msgstr "" +"依赖二进制扩展的另一个缺点是,其他导入机制(比如直接从 zip 文件导入模块的能力" +")对扩展模块往往不起作用(因为大多数平台上的动态加载机制只能从磁盘加载库)。" #: ../source/guides/packaging-binary-extensions.rst:106 msgid "Alternatives to handcoded accelerator modules" -msgstr "" +msgstr "手写加速模块的替代方案" #: ../source/guides/packaging-binary-extensions.rst:108 msgid "" @@ -8705,6 +9497,8 @@ msgid "" "additional maintenance effort), a number of other alternatives should also " "be considered:" msgstr "" +"当扩展模块只是被用来让代码运行得更快时(在性能分析已经识别出提速值得付出额外" +"维护代价的代码之后),还应该考虑若干其他替代方案:" #: ../source/guides/packaging-binary-extensions.rst:113 msgid "" @@ -8715,6 +9509,10 @@ msgid "" "appropriate choice of standard library or third party module can avoid the " "need to create your own accelerator module." msgstr "" +"寻找现成的优化替代方案。CPython 标准库包含大量经过优化的数据结构和算法(尤其" +"是在内置类型以及 ``collections`` 和 ``itertools`` 模块中)。Python 包索引也提" +"供了更多的选择。有时,恰当地选用标准库或第三方模块就可以免去自行创建加速模块" +"的需要。" #: ../source/guides/packaging-binary-extensions.rst:120 msgid "" @@ -8728,6 +9526,12 @@ msgid "" "having one live reference instead of two often won't break anything, but no " "references instead of one is a major problem)." msgstr "" +"对于长时间运行的应用,JIT 编译的 `PyPy 解释器 `__ 或许" +"可以替代标准的 CPython 运行时。采用 PyPy 的主要障碍通常是对其他二进制扩展模块" +"的依赖:虽然 PyPy 确实模拟了 CPython C API,但依赖它的模块会给 PyPy 的 JIT 带" +"来问题,而且模拟层常常会暴露出扩展模块中 CPython 目前尚能容忍的潜在缺陷(多与" +"引用计数错误有关:一个对象有一个存活引用而不是两个,往往不会出问题;但没有引" +"用而不是只有一个,就是严重问题)。" #: ../source/guides/packaging-binary-extensions.rst:130 msgid "" @@ -8740,6 +9544,11 @@ msgid "" "benefit of having a reduced barrier to entry for Python programmers " "(relative to other languages like C or C++)." msgstr "" +"`Cython `__ 是一个成熟的静态编译器,可以把大多数 Python " +"代码编译为 C 扩展模块。初步的编译就能带来一定的速度提升(因为绕过了 CPython " +"解释器层),而 Cython 可选的静态类型特性还能提供更多的提速机会。使用 Cython " +"仍然带有使用二进制扩展的那些 `disadvantages`_,不过它的好处是降低了 Python 程" +"序员的入门门槛(相对于 C 或 C++ 等其他语言)。" #: ../source/guides/packaging-binary-extensions.rst:139 msgid "" @@ -8750,10 +9559,14 @@ msgid "" "code is running, but can provide significant speed increases, especially for " "operations that are amenable to vectorisation." msgstr "" +"`Numba `__ 是一个较新的工具,由科学计算 Python 社区" +"的成员创建,旨在利用 LLVM,在运行时把 Python 应用中选定的部分编译为原生机器码" +"。它要求运行代码的系统上安装有 LLVM,但能够带来显著的提速,尤其是对适合向量化" +"的操作而言。" #: ../source/guides/packaging-binary-extensions.rst:148 msgid "Alternatives to handcoded wrapper modules" -msgstr "" +msgstr "手写包装模块的替代方案" #: ../source/guides/packaging-binary-extensions.rst:150 msgid "" @@ -8763,6 +9576,10 @@ msgid "" "to tap into that functionality. However, wrapping modules by hand is quite " "tedious, so a number of other alternative approaches should be considered." msgstr "" +"C ABI(Application Binary Interface,应用二进制接口)是在多个应用程序之间共享" +"功能的通用标准。CPython C API(Application Programming Interface,应用程序编" +"程接口)的优势之一,就是让 Python 用户能够接入这些功能。然而,手工包装模块相" +"当繁琐,因此应该考虑若干其他替代方案。" #: ../source/guides/packaging-binary-extensions.rst:156 msgid "" @@ -8770,6 +9587,8 @@ msgid "" "but they *can* significantly reduce the maintenance burden of keeping " "wrapper modules up to date." msgstr "" +"下面介绍的方法丝毫不能简化分发这一环节,但它们 *可以* 显著减轻让包装模块保持" +"最新状态的维护负担。" #: ../source/guides/packaging-binary-extensions.rst:160 msgid "" @@ -8782,6 +9601,12 @@ msgid "" "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 `__ 也被广泛用于为 " +"C 或 C++ API 创建包装模块。它需要手工包装接口,这在设计和优化包装代码方面给予" +"了很大的自由度,但如果要快速包装非常庞大的 API,它可能就不是好的选择了。请参" +"见可用于 Cython 自动包装的 `第三方工具列表 `_。它还支持提供类似 CPython C API 的性能导向型 Python 实现,例" +"如 PyPy 和 Pyston。" #: ../source/guides/packaging-binary-extensions.rst:171 msgid "" @@ -8792,6 +9617,11 @@ msgid "" "`__, " "but doesn't require the Boost libraries or BJam." msgstr "" +":doc:`pybind11 ` 是一个纯 C++11 库,为 CPython(以及 PyPy)" +"的 C API 提供了整洁的 C++ 接口。它不需要预处理步骤,完全使用模板化的 C++ 编写" +"。它附带了用于 Setuptools 或 CMake 构建的辅助工具。它基于 `Boost.Python " +"`__," +"但不需要 Boost 库或 BJam。" #: ../source/guides/packaging-binary-extensions.rst:178 msgid "" @@ -8801,6 +9631,9 @@ msgid "" "relatively straightforward to wrap a C module based on its header files, " "even if you don't know C yourself." msgstr "" +":doc:`cffi ` 是由一些 PyPy 开发者创建的项目,让已经同时掌握 " +"Python 和 C 的开发者可以轻松地把他们的 C 模块暴露给 Python 应用。它还可以让你" +"根据头文件相对轻松地包装一个 C 模块,即使你自己并不懂 C。" #: ../source/guides/packaging-binary-extensions.rst:184 msgid "" @@ -8808,6 +9641,8 @@ msgid "" "JIT, allowing CFFI wrapper modules to participate fully in PyPy's tracing " "JIT optimisations." msgstr "" +"``cffi`` 的一个关键优势是与 PyPy JIT 兼容,这让 CFFI 包装模块能够充分参与 " +"PyPy 跟踪式 JIT 的优化。" #: ../source/guides/packaging-binary-extensions.rst:188 msgid "" @@ -8815,6 +9650,8 @@ msgid "" "a variety of programming languages, including Python, to interface with C " "and C++ code." msgstr "" +"`SWIG `__ 是一个包装接口生成器,允许包括 Python 在内的" +"多种编程语言与 C 和 C++ 代码交互。" #: ../source/guides/packaging-binary-extensions.rst:192 msgid "" @@ -8829,10 +9666,16 @@ msgid "" "``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`` 模块虽然在无法获得头文件信息时对访问 C 级接口很有用,但它" +"只在 C ABI 层面上运作,因此在库实际导出的接口与 Python 代码中声明的接口之间没" +"有自动的一致性检查。相比之下,上述替代方案都能够在 C *API* 层面运作,使用 C " +"头文件来确保被包装的库所导出的接口与 Python 包装模块所期望的接口一致。虽然 " +"``cffi`` *可以* 直接在 C ABI 层面运作,但这样使用时,它会遇到与 ``ctypes`` 相" +"同的接口不一致问题。" #: ../source/guides/packaging-binary-extensions.rst:206 msgid "Alternatives for low level system access" -msgstr "" +msgstr "底层系统访问的替代方案" #: ../source/guides/packaging-binary-extensions.rst:208 msgid "" @@ -8844,6 +9687,10 @@ msgid "" "like ``ctypes`` or ``cffi`` is used to obtain access to the relevant C API " "interfaces." msgstr "" +"对于需要底层系统访问的应用(无论出于什么原因),二进制扩展模块往往 *就是* 最" +"佳的实现途径。在需要底层访问 CPython 运行时本身时尤其如此,因为某些操作(比如" +"释放全局解释器锁)在解释器正在运行代码时根本就是无效的,即使使用 ``ctypes`` " +"或 ``cffi`` 这样的模块来获得相关 C API 接口的访问权也不例外。" #: ../source/guides/packaging-binary-extensions.rst:216 msgid "" @@ -8854,10 +9701,14 @@ msgid "" "compatible ABI), and then use one of the wrapping techniques described above " "to make the interface available as an importable Python module." msgstr "" +"如果扩展模块操作的是底层操作系统或硬件(而不是 CPython 运行时),有时更好的做" +"法是直接编写一个普通的 C 库(或者用 C++ 或 Rust 等其他能导出 C 兼容 ABI 的系" +"统编程语言编写的库),然后使用上文介绍的某种包装技术,让该接口可以作为一个可" +"导入的 Python 模块使用。" #: ../source/guides/packaging-binary-extensions.rst:225 msgid "Implementing binary extensions" -msgstr "" +msgstr "实现二进制扩展" #: ../source/guides/packaging-binary-extensions.rst:227 msgid "" @@ -8865,12 +9716,16 @@ msgid "" "includes an introduction to writing a :doc:`custom extension module in C " "`." msgstr "" +"CPython 的 :doc:`扩展和嵌入 ` 指南介绍了如何编写 " +":doc:`自定义 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" @@ -8882,23 +9737,23 @@ msgstr "扩展模块生命周期" #: ../source/guides/packaging-binary-extensions.rst:256 #: ../source/guides/packaging-binary-extensions.rst:376 msgid "FIXME: This section needs to be fleshed out." -msgstr "" +msgstr "FIXME:本节内容有待充实。" #: ../source/guides/packaging-binary-extensions.rst:242 msgid "Implications of shared static state and subinterpreters" -msgstr "" +msgstr "共享静态状态与子解释器的影响" #: ../source/guides/packaging-binary-extensions.rst:248 msgid "Implications of the GIL" -msgstr "" +msgstr "GIL 的影响" #: ../source/guides/packaging-binary-extensions.rst:254 msgid "Memory allocation APIs" -msgstr "" +msgstr "内存分配 API" #: ../source/guides/packaging-binary-extensions.rst:262 msgid "ABI Compatibility" -msgstr "" +msgstr "ABI 兼容性" #: ../source/guides/packaging-binary-extensions.rst:264 msgid "" @@ -8907,6 +9762,9 @@ msgid "" "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 并不保证次要版本(3.2、3.3、3.4 等)之间 ABI 的稳定性。这意味着" +",通常情况下,如果你基于某个 Python 版本构建扩展模块,只能保证它在相同的 " +"Python 次要版本上正常工作,而无法保证在其他任何次要版本上可用。" #: ../source/guides/packaging-binary-extensions.rst:270 msgid "" @@ -8916,6 +9774,10 @@ msgid "" "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 引入了受限 API(Limited API),它是 Python C API 的一个定义明确的" +"子集。受限 API 所需的符号构成了“稳定 ABI”,它保证在所有 Python 3.x 版本之间兼" +"容。基于稳定 ABI 构建扩展后,包含这些扩展的 wheels 会使用 ``abi3`` ABI 标签," +"以表明它们与所有 Python 3.x 版本兼容。" #: ../source/guides/packaging-binary-extensions.rst:277 msgid "" @@ -8923,18 +9785,20 @@ msgid "" "information about the API / ABI stability guarantees, how to use the Limited " "API and the exact contents of the \"Limited API\"." msgstr "" +"CPython 的 :doc:`C API 稳定性 ` 页面详细介绍了 API / " +"ABI 稳定性保证、如何使用受限 API 以及“受限 API”的确切内容。" #: ../source/guides/packaging-binary-extensions.rst:283 msgid "Building binary extensions" -msgstr "" +msgstr "构建二进制扩展" #: ../source/guides/packaging-binary-extensions.rst:285 msgid "FIXME: Cover the build-backends available for building extensions." -msgstr "" +msgstr "FIXME:介绍可用于构建扩展的构建后端。" #: ../source/guides/packaging-binary-extensions.rst:288 msgid "Building extensions for multiple platforms" -msgstr "" +msgstr "为多个平台构建扩展" #: ../source/guides/packaging-binary-extensions.rst:290 msgid "" @@ -8944,6 +9808,10 @@ msgid "" "build highly redistributable binaries from CI; these " "include :ref:`cibuildwheel` and :ref:`multibuild`." msgstr "" +"如果你打算分发你的扩展,就应当为你打算支持的所有平台提供 :term:`wheels " +"`。这些 wheels 通常在持续集成(CI)系统上构建。有一些工具可以帮助你从 " +"CI 构建高度可再分发的二进制文件,其中包括 :ref:`cibuildwheel` 和 " +":ref:`multibuild`。" #: ../source/guides/packaging-binary-extensions.rst:296 msgid "" @@ -8951,6 +9819,8 @@ msgid "" "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 "" @@ -8960,10 +9830,14 @@ msgid "" "eliminating one dimension of the matrix. It also removes the need to " "generate new wheels for each new minor version of Python." msgstr "" +"使用 CPython 的 :ref:`稳定 ABI ` 可以显著减少你需要提供" +"的 wheels 数量,因为在某个平台上,单个 wheel 即可用于所有 Python 次要版本,从" +"而消除矩阵中的一个维度。它还免去了为每个新的 Python 次要版本生成新 wheels 的" +"需要。" #: ../source/guides/packaging-binary-extensions.rst:309 msgid "Binary extensions for Windows" -msgstr "" +msgstr "Windows 的二进制扩展" #: ../source/guides/packaging-binary-extensions.rst:311 msgid "" @@ -8974,6 +9848,11 @@ msgid "" "extensions, install `Visual Studio Community Edition `__ - any recent version is fine." msgstr "" +"在能够构建二进制扩展之前,必须先确保你有一个合适的可用编译器。在 Windows 上," +"官方 CPython 解释器是使用 Visual C 构建的,构建兼容的二进制扩展时也应当使用 " +"Visual C。要搭建二进制扩展的构建环境,请安装 `Visual Studio Community " +"Edition `__,任何较新的版本都" +"可以。" #: ../source/guides/packaging-binary-extensions.rst:318 msgid "" @@ -8984,6 +9863,11 @@ msgid "" "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``,此外还有自 2015 年起的所有先前版本都依" +"赖的 ``VCRUNTIME140.dll``。这会给在不包含这个额外文件的 CPython 版本上使用你" +"的扩展增加一项额外要求。为避免这一点,你可以添加编译期参数 ``/d2FH4-``。较新" +"的 Python 版本可能会包含这个文件。" #: ../source/guides/packaging-binary-extensions.rst:326 msgid "" @@ -8996,6 +9880,11 @@ msgid "" "structures, and so on. Tools for generating extension modules usually avoid " "these things for you." msgstr "" +"不建议为 3.5 之前的 Python 版本构建,因为 Microsoft 已不再提供旧版本的 " +"Visual Studio。如果你确实需要为旧版本构建,可以设置 ``DISTUTILS_USE_SDK=1`` " +"和 ``MSSdk=1`` 来强制找到当前已激活的 MSVC 版本;而且在设计扩展时应当小心,不" +"要在不同的库之间 malloc/free 内存,避免依赖已更改的数据结构等。扩展模块生成工" +"具通常会替你规避这些问题。" #: ../source/guides/packaging-binary-extensions.rst:337 msgid "Binary extensions for Linux" @@ -9008,6 +9897,9 @@ msgid "" "images provide a build environment with a glibc old enough to support most " "current Linux distributions on common architectures." msgstr "" +"Linux 二进制文件必须使用足够旧的 glibc,才能与较旧的发行版兼容。`manylinux " +"`_ Docker 镜像提供了一个构建环境,其中的 " +"glibc 足够旧,能够在常见架构上支持大多数当前的 Linux 发行版。" #: ../source/guides/packaging-binary-extensions.rst:345 msgid "Binary extensions for macOS" @@ -9024,6 +9916,12 @@ msgid "" "Spinning Wheels wiki `_." msgstr "" +"macOS 上的二进制兼容性由目标最低部署系统决定,例如 *10.9*;在 macOS 上构建二" +"进制文件时,通常用 ``MACOSX_DEPLOYMENT_TARGET`` 环境变量来指定它。使用 " +"setuptools / distutils 构建时,部署目标通过 ``--plat-name`` 标志指定,例如 " +"``macosx-10.9-x86_64``。关于 macOS Python 发行版的常见部署目标,请参见 " +"`MacPython Spinning Wheels wiki `_。" #: ../source/guides/packaging-binary-extensions.rst:357 msgid "Publishing binary extensions" @@ -9036,10 +9934,13 @@ msgid "" "using the build-backend and upload it to PyPI using :doc:`twine " "`." msgstr "" +"通过 PyPI 发布二进制扩展使用的上传机制与发布纯 Python 软件包相同。你使用构建" +"后端为你的扩展构建一个 wheel 文件,然后用 :doc:`twine ` 把它上传" +"到 PyPI。" #: ../source/guides/packaging-binary-extensions.rst:365 msgid "Avoid binary-only releases" -msgstr "" +msgstr "避免仅发布二进制文件" #: ../source/guides/packaging-binary-extensions.rst:367 msgid "" @@ -9049,14 +9950,17 @@ msgid "" "certain Linux distributions that build from source within their own build " "systems for the distro package repositories." msgstr "" +"强烈建议你在发布二进制扩展的同时,也发布用于构建它们的源代码。这样,用户在需" +"要时就可以从源码构建扩展。值得注意的是,某些 Linux 发行版为了其发行版软件包仓" +"库,会在自己的构建系统中从源码构建,这时源代码是必需的。" #: ../source/guides/packaging-binary-extensions.rst:374 msgid "Weak linking" -msgstr "" +msgstr "弱链接" #: ../source/guides/packaging-binary-extensions.rst:379 msgid "Additional resources" -msgstr "" +msgstr "其他资源" #: ../source/guides/packaging-binary-extensions.rst:381 msgid "" @@ -9067,10 +9971,13 @@ msgid "" "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 "" +msgstr "使用 scikit-build 生成跨平台 wheel" #: ../source/guides/packaging-binary-extensions.rst:390 msgid "" @@ -9081,36 +9988,44 @@ msgid "" "system generator `_ for Python binary extension modules." msgstr "" +"`scikit-build `_ 软件包有助于" +"抽象化跨平台构建操作,并在创建二进制扩展软件包时提供额外的能力。关于 Python " +"二进制扩展模块的 `C 运行时、编译器和构建系统生成器 `_,还有更多文档可供参考。" #: ../source/guides/packaging-binary-extensions.rst:398 msgid "Introduction to C/C++ extension modules" -msgstr "" +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 "" +msgstr "想要更深入地了解扩展模块在 Debian 系统上如何被 CPython 使用,请参见以下文章:" #: ../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 "" +msgstr "`释放 GIL `_" #: ../source/guides/packaging-binary-extensions.rst:405 msgid "" "`Writing cpython extension modules using C++ `_" msgstr "" +"`用 C++ 编写 cpython 扩展模块 `_" #: ../source/guides/packaging-binary-extensions.rst:408 msgid "Additional considerations for binary wheels" -msgstr "" +msgstr "二进制 wheel 的其他注意事项" #: ../source/guides/packaging-binary-extensions.rst:410 msgid "" @@ -9119,6 +10034,9 @@ msgid "" "aims to provide an overview of the most important packaging issues for such " "projects, with in-depth explanations and references." msgstr "" +"`pypackaging-native `_ 网站对包含原生" +"代码的 Python 软件包的打包有更多的介绍。它旨在概述此类项目最重要的打包问题," +"并提供深入的解释和参考资料。" #: ../source/guides/packaging-binary-extensions.rst:415 msgid "" @@ -9126,10 +10044,13 @@ msgid "" "dependencies\"), the importance of the ABI (Application Binary Interface) of " "native code, dependency on SIMD code and cross compilation." msgstr "" +"所涵盖主题的示例包括:非 Python 的编译型依赖项(“原生依赖项”)、原生代码的 " +"ABI(Application Binary Interface,应用二进制接口)的重要性、对 SIMD 代码的依" +"赖以及交叉编译。" #: ../source/guides/packaging-namespace-packages.rst:5 msgid "Packaging namespace packages" -msgstr "" +msgstr "打包命名空间包" #: ../source/guides/packaging-namespace-packages.rst:7 msgid "" @@ -9139,18 +10060,21 @@ msgid "" "as **distributions** in this document to avoid ambiguity). For example, if " "you have the following package structure:" msgstr "" +"命名空间包允许你把单个 :term:`导入包 ` 中的子包和模块拆分到多" +"个相互独立的 :term:`分发包 ` 中(为避免歧义,本文档中将" +"其统称为 **分发包**)。例如,如果你有如下软件包结构:" #: ../source/guides/packaging-namespace-packages.rst:26 msgid "And you use this package in your code like so::" -msgstr "" +msgstr "然后你在代码中像这样使用该软件包::" #: ../source/guides/packaging-namespace-packages.rst:31 msgid "Then you can break these sub-packages into two separate distributions:" -msgstr "" +msgstr "然后你可以把这些子包拆分为两个独立的分发包:" #: ../source/guides/packaging-namespace-packages.rst:50 msgid "Each sub-package can now be separately installed, used, and versioned." -msgstr "" +msgstr "现在,每个子包都可以单独安装、使用和设定版本。" #: ../source/guides/packaging-namespace-packages.rst:52 msgid "" @@ -9162,16 +10086,21 @@ msgid "" "mynamespace_subpackage_a`` (you could even use ``import " "mynamespace_subpackage_a as subpackage_a`` to keep the import object short)." msgstr "" +"命名空间包对于大量关联松散的软件包集合(例如同一家公司为多个产品提供的大量客" +"户端库)可能很有用。不过,命名空间包存在若干注意事项,并非在所有情况下都适用" +"。一种简单的替代方案是给你的所有分发包都加上统一前缀,例如 ``import " +"mynamespace_subpackage_a``;你甚至可以使用 ``import mynamespace_subpackage_a " +"as subpackage_a`` 来保持导入对象简短。" #: ../source/guides/packaging-namespace-packages.rst:62 msgid "Creating a namespace package" -msgstr "" +msgstr "创建命名空间包" #: ../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 "" +msgstr "目前有两种创建命名空间包的不同方法,其中后者已不推荐使用:" #: ../source/guides/packaging-namespace-packages.rst:67 msgid "" @@ -9180,16 +10109,21 @@ msgid "" "if packages in your namespace only ever need to support Python 3 and " "installation via ``pip``." msgstr "" +"使用 `原生命名空间包`_。这类命名空间包在 :pep:`420` 中定义,可在 Python 3.3 " +"及更高版本中使用。如果你命名空间中的软件包只需要支持 Python 3 并且通过 " +"``pip`` 安装,就推荐使用这种方式。" #: ../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 "" +"使用 `传统命名空间包`_。它包括 `pkgutil 风格命名空间包`_ 和 `pkg_resources 风" +"格命名空间包`_。" #: ../source/guides/packaging-namespace-packages.rst:75 msgid "Native namespace packages" -msgstr "" +msgstr "原生命名空间包" #: ../source/guides/packaging-namespace-packages.rst:77 msgid "" @@ -9198,6 +10132,9 @@ msgid "" "omit :file:`__init__.py` from the namespace package directory. An example " "file structure (following :ref:`src-layout `):" msgstr "" +"Python 3.3 通过 :pep:`420` 引入了 **隐式** 命名空间包。要创建原生命名空间包," +"只需在命名空间包目录中省略 :file:`__init__.py` 即可。下面是一个文件结构示例(" +"遵循 :ref:`src 布局 `):" #: ../source/guides/packaging-namespace-packages.rst:94 msgid "" @@ -9206,6 +10143,9 @@ msgid "" "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 "" +"极为重要的是,每个使用该命名空间包的分发包都必须省略 :file:`__init__.py`,或" +"者使用 pkgutil 风格的 :file:`__init__.py`。只要有任何分发包没有这样做,就会导" +"致命名空间逻辑失效,其他子包将无法导入。" #: ../source/guides/packaging-namespace-packages.rst:99 msgid "" @@ -9215,26 +10155,29 @@ msgid "" "exclusions or inclusions of packages yourself, this is possible to be " "configured in the top-level :file:`pyproject.toml`:" msgstr "" +"``src-layout`` 目录结构允许大多数 :term:`构建后端 ` 自动发现软" +"件包。更多信息请参见 :ref:`src-layout-vs-flat-layout`。如果你想自行管理软件包" +"的排除或包含,也可以在顶层 :file:`pyproject.toml` 中进行配置:" #: ../source/guides/packaging-namespace-packages.rst:117 msgid "The same can be accomplished with a :file:`setup.cfg`:" -msgstr "" +msgstr "使用 :file:`setup.cfg` 也能实现同样的效果:" #: ../source/guides/packaging-namespace-packages.rst:129 msgid "Or :file:`setup.py`:" -msgstr "" +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 "" +msgstr ":ref:`setuptools` 默认会在目录结构中搜索隐式命名空间包。" #: ../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 "" +msgstr "两个原生命名空间包的完整可运行示例可以在 `原生命名空间包示例项目`_ 中找到。" #: ../source/guides/packaging-namespace-packages.rst:151 msgid "" @@ -9243,10 +10186,13 @@ msgid "" "Python 3 and pkgutil-style namespace packages in the distributions that need " "to support Python 2 and 3." msgstr "" +"由于原生命名空间包与 pkgutil 风格命名空间包在很大程度上兼容,你可以在仅支持 " +"Python 3 的分发包中使用原生命名空间包,并在需要同时支持 Python 2 和 3 的分发" +"包中使用 pkgutil 风格命名空间包。" #: ../source/guides/packaging-namespace-packages.rst:158 msgid "Legacy namespace packages" -msgstr "" +msgstr "传统命名空间包" #: ../source/guides/packaging-namespace-packages.rst:160 msgid "" @@ -9255,12 +10201,14 @@ msgid "" "unless you need compatibility with packages already using one of these " "methods." msgstr "" +"这两种在 :pep:`420` 之前用于创建命名空间包的方法如今已被视为过时,除非你需要" +"与已经在使用其中某种方法的软件包保持兼容,否则不应再使用。" #: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." -msgstr "" +msgstr "如果想要迁移某个现有软件包,所有共享该命名空间的软件包都必须同时迁移。" #: ../source/guides/packaging-namespace-packages.rst:166 msgid "" @@ -9269,10 +10217,13 @@ msgid "" "compatible with the other methods. It's inadvisable to use different methods " "in different distributions that provide packages to the same namespace." msgstr "" +"虽然原生命名空间包与 pkgutil 风格命名空间包在很大程度上兼容,但 " +"pkg_resources 风格命名空间包与其他方法并不兼容。不建议在向同一命名空间提供软" +"件包的不同分发包中使用不同的方法。" #: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" -msgstr "" +msgstr "pkgutil 风格命名空间包" #: ../source/guides/packaging-namespace-packages.rst:175 msgid "" @@ -9282,19 +10233,24 @@ msgid "" "and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" +"Python 2.3 引入了 :doc:`pkgutil ` 模块和 " +":py:func:`python:pkgutil.extend_path` 函数。它可用于声明需要同时兼容 Python " +"2.3+ 和 Python 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 "" +msgstr "命名空间包的 :file:`__init__.py` 文件需要包含以下内容:" #: ../source/guides/packaging-namespace-packages.rst:201 #: ../source/guides/packaging-namespace-packages.rst:256 @@ -9304,28 +10260,35 @@ msgid "" "namespace logic to fail and the other sub-packages will not be importable. " "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" +"**每个** 使用该命名空间包的分发包都必须包含这样的 :file:`__init__.py`。只要有" +"任何分发包没有这样做,就会导致命名空间逻辑失效,其他子包将无法导入,而且 " +":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 风格命名空间包的完整可运行示例可以在 `pkgutil 命名空间示例项" +"目`_ 中找到。" #: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" -msgstr "" +msgstr "pkg_resources 风格命名空间包" #: ../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 "" +msgstr "``pkg_resources`` 已被弃用,并在 Setuptools 82.0.0 中被彻底移除。" #: ../source/guides/packaging-namespace-packages.rst:225 msgid "" @@ -9339,18 +10302,26 @@ msgid "" "using this as the different methods are not cross-compatible and it's not " "advisable to try to migrate an existing package." msgstr "" +":doc:`Setuptools ` 此前提供了 " +"``pkg_resources.declare_namespace`` 函数,以及 :func:`~setuptools.setup` 的 " +"``namespace_packages`` 参数。两者结合可以用来声明命名空间包。虽然这种方式已不" +"再受支持,但在使用较旧 ``setuptools`` 版本的环境中仍可能遇到它。如果你要在采" +"用这种方法的现有命名空间包中创建新的分发包,建议继续沿用这种方式,因为各种方" +"法之间不能交叉兼容,而且不建议尝试迁移现有的软件包。" #: ../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 "" +msgstr "一些较早的建议推荐在命名空间包的 :file:`__init__.py` 中写入以下内容:" #: ../source/guides/packaging-namespace-packages.rst:271 msgid "" @@ -9360,17 +10331,23 @@ msgid "" "cross-compatible. If the presence of setuptools is a concern then the " "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" +"这样做的用意是,在 setuptools 不可用的罕见情况下,软件包会回退到 pkgutil 风格" +"的软件包。这并不可取,因为 pkgutil 与 pkg_resources 风格命名空间包不能交叉兼" +"容。如果担心 setuptools 是否存在,软件包应当直接通过 ``install_requires`` 显" +"式声明对 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 "" +"最后,每个分发包都必须在 :file:`setup.py` 中为 :func:`~setuptools.setup` 提" +"供 ``namespace_packages`` 参数。例如:" #: ../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 "" +msgstr "使用 GitHub Actions CI/CD 工作流发布分发包版本" #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:7 msgid "" @@ -9382,6 +10359,11 @@ msgid "" "GitHub's `upload-artifact`_ and `download-artifact`_ actions for temporarily " "storing and downloading the source packages." msgstr "" +"`GitHub Actions CI/CD`_ 让你可以在 GitHub 平台上发生事件时运行一系列命令。一" +"种流行的选择是使用由 ``push`` 事件触发的工作流。本指南将向你展示如何在每次推" +"送带标签的提交时发布 Python 分发包。发布时将使用 `pypa/gh-action-pypi-" +"publish GitHub Action`_。它还使用 GitHub 的 `upload-artifact`_ 和 `download-" +"artifact`_ 操作来临时存储和下载源软件包。" #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:19 msgid "" @@ -9390,6 +10372,9 @@ msgid "" "details of building platform specific projects. If you have binary " "components, check out :ref:`cibuildwheel`'s GitHub Action examples." msgstr "" +"本指南 *假定* 你已经拥有一个你知道如何为其构建分发包的项目,并且 *该项目托管" +"在 GitHub 上*。本指南也不涉及构建平台特定项目的细节。如果你的项目包含二进制组" +"件,请查阅 :ref:`cibuildwheel` 的 GitHub Action 示例。" #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:25 msgid "Configuring Trusted Publishing" @@ -9405,6 +10390,11 @@ msgid "" "like :doc:`devpi `, you may need to provide a username/password " "combination." msgstr "" +"本指南依托 PyPI 的 `Trusted Publishing`_ 实现来连接 `GitHub Actions CI/CD`_。" +"出于安全原因,我们推荐这种做法,因为这样生成的令牌会为你的每个项目单独创建," +"并自动过期。否则,你需要为 PyPI 和 TestPyPI 各自生成 `API token`_。如果发布到" +"第三方索引(例如 :doc:`devpi `),则可能需要提供用户名/密码组合" +"。" #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:35 msgid "" @@ -9414,6 +10404,9 @@ msgid "" "`. However it is also possible to add `Trusted Publishing`_ to any " "pre-existing project, if you are its owner." msgstr "" +"由于本指南将演示同时上传到 PyPI 和 TestPyPI,我们需要配置两个可信发布者。以下" +"步骤将引导你为新的 :term:`PyPI project ` 创建“待处理”发布者。不过," +"只要你是项目的所有者,也可以为任何既有项目添加 `Trusted Publishing`_。" #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:44 msgid "" @@ -9423,6 +10416,10 @@ msgid "" "repository and revoke them in your PyPI and TestPyPI account settings in " "case you are replacing your old setup with the new one." msgstr "" +"如果你按照本指南的早期版本操作过,就已经为直接访问 PyPI 和 TestPyPI 创建了密" +"钥 ``PYPI_API_TOKEN`` 和 ``TEST_PYPI_API_TOKEN``。这些密钥如今已废弃;如果你" +"正在以新设置替换旧设置,应当把它们从你的 GitHub 仓库中删除,并在 PyPI 和 " +"TestPyPI 账户设置中予以撤销。" #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:51 msgid "Let's begin! 🚀" @@ -9430,7 +10427,7 @@ 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 "" +msgstr "前往 https://pypi.org/manage/account/publishing/。" #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:54 msgid "" @@ -9442,6 +10439,11 @@ msgid "" "Environment (``pypi``) we're going set up under your repository. Register " "the trusted publisher." msgstr "" +"填写你希望发布新 :term:`PyPI project ` 时所用的名称(即 " +"``setup.cfg`` 或 ``pyproject.toml`` 中的 ``name`` 值)、GitHub 仓库所有者的名" +"称(组织或用户)、仓库名称,以及 ``.github/`` 文件夹下发布工作流文件的名称," +"参见 :ref:`workflow-definition`。最后,添加我们要在你的仓库中设置的 GitHub 环" +"境(``pypi``)的名称。注册该可信发布者。" #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:63 msgid "" @@ -9449,12 +10451,16 @@ msgid "" "second step, but this time, enter ``testpypi`` as the name of the GitHub " "Environment." msgstr "" +"现在,前往 https://test.pypi.org/manage/account/publishing/ 并重复第二步,但" +"这次请输入 ``testpypi`` 作为 GitHub 环境的名称。" #: ../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 "" +"你的“待处理”发布者现在已经准备就绪,可供首次使用,并且会在你第一次使用它们时" +"自动创建你的项目。" #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:72 msgid "" @@ -9470,6 +10476,10 @@ msgid "" "managing-deployments/managing-environments-for-deployment#creating-an-" "environment>`_ on each run for the ``pypi`` environment." msgstr "" +"出于安全原因,你必须要求对 ``pypi`` 环境的每次运行进行 `手动批准 `_。" #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:85 msgid "Creating a workflow definition" @@ -9480,7 +10490,7 @@ msgid "" "GitHub CI/CD workflows are declared in YAML files stored in the ``.github/" "workflows/`` directory of your repository." msgstr "" -"GitHub CI/CD工作流程是在 YAML 文件中声明的,它们存储在你仓库的 ``.github/" +"GitHub CI/CD 工作流程是在 YAML 文件中声明的,它们存储在你仓库的 ``.github/" "workflows/`` 目录下。" #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:90 @@ -9495,13 +10505,15 @@ msgstr "用一个有意义的名字开始,并定义让 GitHub 运行这个工 #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:101 msgid "Checking out the project and building distributions" -msgstr "" +msgstr "检出项目并构建分发包" #: ../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 "" +"我们需要定义两个分别用于发布到 PyPI 和 TestPyPI 的作业,以及一个额外的作业来" +"构建分发包。" #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:109 msgid "" @@ -9509,12 +10521,14 @@ msgid "" "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 "" +msgstr "首先,我们将定义一个作业来构建你项目的分发包并将其存储以备后用:" #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:118 msgid "" @@ -9523,19 +10537,23 @@ msgid "" "accordingly. The `cibuildwheel GitHub Actions examples`_ show a fuller wheel " "matrix layout." msgstr "" +"如果你改编此工作流来构建多个特定于平台的 wheel 包,请为每个构建作业使用命名唯" +"一的工件,并相应地调整下载步骤。更完整的 wheel 矩阵布局可参见 `cibuildwheel " +"GitHub Actions examples`_。" #: ../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 版本。" +msgstr "这将把你的版本库下载到 CI 运行程序中,然后安装并激活最新的 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`` 软件包" +"。因此,请将以下内容添加到 steps 列表中:" #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:141 msgid "Defining a workflow job environment" @@ -9551,12 +10569,17 @@ msgid "" "acquiring an OpenID Connect token that the ``pypi-publish`` actions needs to " "implement secretless Trusted Publishing to PyPI." msgstr "" +"现在,让我们为将要发布到 PyPI 的作业添加初始设置。这是一个会执行我们稍后定义" +"的命令的流程。在本指南中,我们将使用 GitHub Actions 提供的最新稳定版 Ubuntu " +"LTS。这还会为该作业定义一个在其上下文中运行的 GitHub 环境,以及一个可在 " +"GitHub 界面中美观显示的 URL。此外,它还允许获取 ``pypi-publish`` 操作所需的 " +"OpenID Connect 令牌,用以实现对 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 "" +msgstr "这还将确保 PyPI 发布工作流仅在当前提交带有标签时才被触发。" #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:161 msgid "Publishing the distribution to PyPI" @@ -9573,6 +10596,9 @@ msgid "" "action, it uploads the contents of the ``dist/`` folder into PyPI " "unconditionally." msgstr "" +"此步骤使用 `pypa/gh-action-pypi-publish`_ GitHub Action:在已存储的分发包被 " +"`download-artifact`_ 操作下载之后,它会无条件地把 ``dist/`` 文件夹中的内容上" +"传到 PyPI。" #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:177 msgid "" @@ -9581,16 +10607,21 @@ msgid "" "and uploads :pep:`740`-compatible attestations for each distribution by " "default. No additional manual signing steps are required." msgstr "" +"`pypa/gh-action-pypi-publish`_ 自 `v1.11.0 `_ 版本起,默认会为每个分发包生成并" +"上传与 :pep:`740` 兼容的证明(attestation)。无需额外的手动签名步骤。" #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:185 msgid "Separate workflow for publishing to TestPyPI" -msgstr "" +msgstr "发布到 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 "" +"现在,重复这些步骤,在 ``jobs`` 小节下创建另一个用于发布到 TestPyPI 包索引的" +"作业:" #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:197 msgid "" @@ -9598,15 +10629,17 @@ msgid "" "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`` GitHub 环境中要求手动批准通常没有必要,因为该环境被设计为在每" +"次提交到主分支时运行,往往用来表明版本发布流水线运转正常。" #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:201 msgid "The whole CI/CD workflow" -msgstr "" +msgstr "完整的 CI/CD 工作流" #: ../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 "" +msgstr "本段展示了按照上述指南操作后的完整工作流。" #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:211 msgid "That's all, folks!" @@ -9619,6 +10652,9 @@ msgid "" "TestPyPI which is useful for providing test builds to your alpha users as " "well as making sure that your release pipeline remains healthy!" msgstr "" +"现在,每当你向 GitHub 上的 Git 远程仓库推送带标签的提交时,此工作流都会将其发" +"布到 PyPI。而任何推送都会被发布到 TestPyPI,这既便于为你的 alpha 用户提供测试" +"构建,也能确保你的发布流水线保持健康!" #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:221 msgid "" @@ -9628,12 +10664,16 @@ msgid "" "increased, but a better solution may constitute to use a PyPI-compatible " "server like :ref:`pypiserver` in the CI for testing purposes." msgstr "" +"如果你的仓库提交活动频繁,并且每次推送都按上述方式上传到 TestPyPI,该项目可能" +"会超出 `PyPI 项目大小限制 `_。该限" +"制可以提升,但更好的解决方案可能是在 CI 中使用 :ref:`pypiserver` 之类的 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 "" +msgstr "建议让所集成的 GitHub Actions 保持在最新版本,并经常更新。" #: ../source/guides/section-build-and-publish.rst:3 msgid "Building and Publishing" @@ -9641,7 +10681,7 @@ msgstr "构建和发布" #: ../source/guides/section-hosting.rst:3 msgid "Hosting" -msgstr "" +msgstr "托管" #: ../source/guides/section-install.rst:3 #: ../source/specifications/pylock-toml.rst:744 @@ -9650,16 +10690,16 @@ msgstr "安装" #: ../source/guides/single-sourcing-package-version.rst:-1 msgid "0; url=../../discussions/single-source-version/" -msgstr "" +msgstr "0; url=../../discussions/single-source-version/" #: ../source/guides/single-sourcing-package-version.rst:6 msgid "Redirecting stale single-source package version link..." -msgstr "" +msgstr "正在重定向过时的单一来源软件包版本链接……" #: ../source/guides/single-sourcing-package-version.rst:8 msgid "" "If the page doesn't automatically refresh, see :ref:`single-source-version`." -msgstr "" +msgstr "如果页面没有自动刷新,请参见 :ref:`single-source-version`。" #: ../source/guides/supporting-multiple-python-versions.rst:7 msgid "Supporting multiple Python versions" @@ -9677,6 +10717,9 @@ msgid "" "standard library packages, and the changes between Python versions 2.x and " "3.x include changes in the language syntax." msgstr "" +"除了创建 Python 软件包所需的工作之外,通常还需要让软件包能够支持不同的 " +"Python 版本。不同的 Python 版本可能包含不同的(或已重命名的)标准库软件包,而" +"且 Python 2.x 与 3.x 之间的变化还包括语言语法上的变化。" #: ../source/guides/supporting-multiple-python-versions.rst:42 msgid "" @@ -9685,10 +10728,13 @@ msgid "" "time-consuming. Fortunately, several tools are available for dealing with " "this, and these will briefly be discussed here." msgstr "" +"如果手动执行,要确保软件包在所有目标 Python 版本(以及各种操作系统!)上都能" +"正常工作,所需的全部测试可能非常耗时。幸运的是,有若干工具可用于处理这个问题" +",本文将简要介绍这些工具。" #: ../source/guides/supporting-multiple-python-versions.rst:48 msgid "Automated testing and continuous integration" -msgstr "" +msgstr "自动化测试与持续集成" #: ../source/guides/supporting-multiple-python-versions.rst:50 msgid "" @@ -9697,6 +10743,9 @@ msgid "" "github.com>`_ or `Bitbucket `_) and run your " "project's test suite every time a new commit is made." msgstr "" +"目前有多种提供自动化测试的托管服务。这些服务通常会监控你的源代码仓库(例如 " +"`GitHub `_ 或 `Bitbucket `_ 上的仓" +"库),并在每次有新提交时运行你项目的测试套件。" #: ../source/guides/supporting-multiple-python-versions.rst:55 msgid "" @@ -9704,6 +10753,8 @@ msgid "" "*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 "" @@ -9712,12 +10763,17 @@ msgid "" "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 "" @@ -9741,10 +10797,12 @@ 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 和 Python 3 的 Python 项目,有多种" +"可选方案。" #: ../source/guides/supporting-multiple-python-versions.rst:87 msgid "Tools for single-source Python packages" -msgstr "" +msgstr "单一来源 Python 软件包的工具" #: ../source/guides/supporting-multiple-python-versions.rst:89 msgid "" @@ -9757,6 +10815,11 @@ msgid "" "Armin Ronacher, can be used to automatically apply the code modifications " "provided by six_." msgstr "" +"`six `_ 是 Benjamin Peterson 开发的工具,用于" +"封装 Python 2 与 Python 3 之间的差异。six_ 软件包已被广泛使用,可视为编写能同" +"时用于 Python 2 和 3 的单一来源 Python 模块的可靠方式。six_ 模块最早从 " +"Python 2.5 起就能使用。Armin Ronacher 开发了一个名为 `modernize `_ 的工具,可用来自动应用 six_ 提供的代码修改。" #: ../source/guides/supporting-multiple-python-versions.rst:98 msgid "" @@ -9766,14 +10829,18 @@ msgid "" "interoperability between Python 2 and Python 3 with a language syntax that " "matches one of the two Python versions: one may use" msgstr "" +"与 six_ 类似,`python-future `_ 是一" +"个为 Python 2 与 Python 3 源代码提供兼容层的软件包;不过与 six_ 不同,这个软" +"件包旨在让 Python 2 与 Python 3 之间以与二者之一相匹配的语言语法实现互操作:" +"你可以使用" #: ../source/guides/supporting-multiple-python-versions.rst:105 msgid "a Python 2 (by syntax) module in a Python 3 project." -msgstr "" +msgstr "在 Python 3 项目中使用语法为 Python 2 的模块。" #: ../source/guides/supporting-multiple-python-versions.rst:106 msgid "a Python 3 (by syntax) module in a *Python 2* project." -msgstr "" +msgstr "在 *Python 2* 项目中使用语法为 Python 3 的模块。" #: ../source/guides/supporting-multiple-python-versions.rst:108 msgid "" @@ -9784,6 +10851,11 @@ msgid "" "``futurize`` and ``pasteurize`` that can be applied to either a Python 2 " "module or a Python 3 module respectively." msgstr "" +"由于具备这种双向特性,python-future_ 提供了一条将 Python 2 软件包逐个模块转换" +"为 Python 3 语法的途径。不过,与 six_ 相比,python-future_ 只支持 Python 2.6 " +"及以上版本。与 six_ 的 modernize_ 类似,python-future_ 附带两个脚本" +":``futurize`` 和 ``pasteurize``,分别可应用于 Python 2 模块或 Python 3 模块" +"。" #: ../source/guides/supporting-multiple-python-versions.rst:115 msgid "" @@ -9793,10 +10865,14 @@ msgid "" "provides for forward-compatibility to Python 3. Any remaining compatibility " "problems would require manual changes." msgstr "" +"使用 six_ 或 python-future_ 会给你的软件包增加一项额外的运行时依赖项:对于 " +"python-future_,可以在调用 ``futurize`` 脚本时使用 ``--stage1`` 选项,只应用 " +"Python 2.6+ 已为向前兼容 Python 3 提供的那些更改。其余的兼容性问题则需要手动" +"修改。" #: ../source/guides/supporting-multiple-python-versions.rst:122 msgid "What's in which Python?" -msgstr "" +msgstr "各个 Python 版本包含哪些内容?" #: ../source/guides/supporting-multiple-python-versions.rst:124 msgid "" @@ -9808,10 +10884,16 @@ msgid "" "lists may be used to check whether any changes between Python versions may " "affect your package." msgstr "" +"Ned Batchelder 为 `Python 2 `__、`Python 3.0-3.3 `__ 和 `Python 3.4-3.6 `__ 提供了各版" +"本 Python 的变更列表。这些列表可用来检查各 Python 版本之间的变化是否会影响你" +"的软件包。" #: ../source/guides/supporting-windows-using-appveyor.rst:5 msgid "Supporting Windows using Appveyor" -msgstr "" +msgstr "使用 Appveyor 支持 Windows" #: ../source/guides/supporting-windows-using-appveyor.rst:8 msgid "2015-12-03" @@ -9824,6 +10906,9 @@ msgid "" "the code on Windows, and building Windows-targeted binaries for projects " "that use C extensions." msgstr "" +"本节介绍如何使用免费的 `Appveyor`_ 持续集成服务为你的项目提供 Windows 支持。" +"这包括在 Windows 上测试代码,以及为使用 C 扩展的项目构建面向 Windows 的二进制" +"文件。" #: ../source/guides/supporting-windows-using-appveyor.rst:19 msgid "" @@ -9831,6 +10916,8 @@ msgid "" "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 支持可能颇具挑战,因为搭建合适" +"的 Windows 测试环境并非易事,而且可能需要购买软件许可证。" #: ../source/guides/supporting-windows-using-appveyor.rst:23 msgid "" @@ -9841,10 +10928,14 @@ msgid "" "for testing) it is possible for projects without a dedicated Windows " "environment to provide Windows-targeted binaries." msgstr "" +"Windows 用户通常无法使用 C 编译器,因此只能依赖使用 C 扩展的项目将二进制 " +"wheel 包发布到 PyPI,这样分发包才能通过 ``python -m pip install `` 安装" +"。通过把 Appveyor 用作构建服务(即使不用它来测试),没有专用 Windows 环境的项" +"目也可以提供面向 Windows 的二进制文件。" #: ../source/guides/supporting-windows-using-appveyor.rst:31 msgid "Setting up" -msgstr "" +msgstr "设置" #: ../source/guides/supporting-windows-using-appveyor.rst:33 msgid "" @@ -9853,6 +10944,9 @@ msgid "" "given in `the Appveyor documentation `__. " "The free tier of account is perfectly adequate for open source projects." msgstr "" +"要使用 Appveyor 为你的项目构建 Windows wheel 包,你必须在该服务上拥有一个账户" +"。创建账户的说明请见 `Appveyor 文档 `__。免费" +"层级的账户对开源项目来说完全够用。" #: ../source/guides/supporting-windows-using-appveyor.rst:38 msgid "" @@ -9860,16 +10954,20 @@ msgid "" "your project is hosted on one of those two services, setting up Appveyor " "integration is straightforward." msgstr "" +"Appveyor 提供与 `GitHub`_ 和 `Bitbucket`_ 的集成,因此只要你的项目托管在这两" +"个服务之一上,设置 Appveyor 集成就很简单。" #: ../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 账户并添加了项目,每次发生提交时 Appveyor 都会自动构建" +"你的项目。" #: ../source/guides/supporting-windows-using-appveyor.rst:46 msgid "Adding Appveyor support to your project" -msgstr "" +msgstr "为你的项目添加 Appveyor 支持" #: ../source/guides/supporting-windows-using-appveyor.rst:48 msgid "" @@ -9878,6 +10976,9 @@ msgid "" "be included in the file are covered in the Appveyor documentation. This " "guide will provide the details necessary to set up wheel builds." msgstr "" +"为了定义 Appveyor 应如何构建你的项目,你需要在项目中添加一个 " +":file:`appveyor.yml` 文件。文件中可以包含哪些内容的完整细节请参阅 Appveyor 文" +"档。本指南将提供设置 wheel 构建所需的细节。" #: ../source/guides/supporting-windows-using-appveyor.rst:53 msgid "" @@ -9889,10 +10990,15 @@ msgid "" "version of Visual Studio used includes 64-bit compilers with no additional " "setup)." msgstr "" +"Appveyor 默认包含了为 Python 构建扩展所需的所有编译器工具链。对于 Python " +"2.7、3.5+ 以及 3.3 和 3.4 的 32 位版本,这些工具开箱即用。但对于 Python 3.3 " +"和 3.4 的 64 位版本,还需要少量额外配置,让 distutils 知道到哪里查找 64 位编" +"译器。(从 3.5 开始,所使用的 Visual Studio 版本自带 64 位编译器,无需额外设" +"置。)" #: ../source/guides/supporting-windows-using-appveyor.rst:61 msgid "appveyor.yml" -msgstr "" +msgstr "appveyor.yml" #: ../source/guides/supporting-windows-using-appveyor.rst:67 msgid "" @@ -9900,12 +11006,16 @@ msgid "" "pypa/python-packaging-user-guide/master/source/guides/appveyor-sample/" "appveyor.yml>`__." 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` 文件必须位于你项目的根目录中。该文件为 ``YAML`` 格式,由" +"若干小节组成。" #: ../source/guides/supporting-windows-using-appveyor.rst:72 msgid "" @@ -9917,6 +11027,11 @@ msgid "" "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 版本构建 wheel 包的关键。Appveyor " +"预装了 Python 2.6、2.7、3.3、3.4 和 3.5,涵盖 32 位和 64 位两种构建。示例文件" +"会为除 Python 2.6 之外的所有这些环境进行构建。为 Python 2.6 安装更为复杂,因" +"为它不自带 pip。本文档不支持 2.6(因为仍在使用 Python 2 的 Windows 用户一般都" +"能不太困难地迁移到 Python 2.7)。" #: ../source/guides/supporting-windows-using-appveyor.rst:80 msgid "" @@ -9926,18 +11041,23 @@ msgid "" "circumstances (for example, to install additional build packages such as " "``Cython``, or test tools such as ``tox``)." msgstr "" +"``install`` 小节使用 pip 来安装项目可能需要的任何额外软件。构建 wheel 包唯一" +"需要的是 ``wheel`` 项目,但在某些情况下,项目可能希望自定义这段代码(例如,安" +"装 ``Cython`` 之类的额外构建软件包,或 ``tox`` 之类的测试工具)。" #: ../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 不需要构建步骤,这一点与 " +"``C#`` 之类的语言不同。" #: ../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 "" +msgstr "需要根据你的项目定制的主要小节是 ``test_script`` 和 ``after_test``。" #: ../source/guides/supporting-windows-using-appveyor.rst:92 msgid "" @@ -9950,6 +11070,12 @@ msgid "" "however if you are using ``tox`` there are some additional configuration " "changes you will need to consider, which are described below." msgstr "" +"``test_script`` 小节是你运行项目测试的地方。所提供的文件使用 ``setup.py " +"test`` 运行你的测试套件。如果你只想构建 wheel 包,而不想在 Windows 上运行测试" +",可以把这一小节替换为一个占位命令,比如 ``echo Skipped Tests``。你可能想使用" +"其他测试工具,比如 ``nose`` 或 :file:`py.test`。你也可以使用 ``tox`` 之类的测" +"试驱动器,不过如果使用 ``tox``,还需要考虑一些额外的配置变更,下文会予以说明" +"。" #: ../source/guides/supporting-windows-using-appveyor.rst:101 msgid "" @@ -9958,16 +11084,21 @@ msgid "" "(specifically, ``setuptools``) then the ``setup.py bdist_wheel`` command " "will build your wheels." msgstr "" +"``after_test`` 在测试完成后运行,因此 wheel 包应在这里构建。假设你的项目使用" +"了推荐的工具(具体来说是 ``setuptools``),那么 ``setup.py bdist_wheel`` 命令" +"就会构建你的 wheel 包。" #: ../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 "" +"请注意,只有测试成功通过,才会构建 wheel 包。如果你预计测试在 Windows 上会失" +"败,可以按上文所述跳过测试。" #: ../source/guides/supporting-windows-using-appveyor.rst:111 msgid "Support script" -msgstr "" +msgstr "支持脚本" #: ../source/guides/supporting-windows-using-appveyor.rst:113 msgid "" @@ -9976,6 +11107,9 @@ msgid "" "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` 文件依赖于一个支持脚本,该脚本会设置环境,以便在 Python " +"3.3 和 3.4 的 64 位构建中使用 SDK 编译器。对于不需要编译器、或不支持 64 位 " +"Windows 上 3.3 或 3.4 的项目,则只需要 :file:`appveyor.yml` 文件。" #: ../source/guides/supporting-windows-using-appveyor.rst:118 msgid "" @@ -9988,16 +11122,22 @@ msgid "" "Python 3.3 or 3.4, so don't set the environment variable for any other " "builds." msgstr "" +"`build.cmd `__ 是一个 Windows 批处" +"理脚本,会在带有所选 Python 版本对应编译器的环境中运行单条命令。你只需把 " +"``DISTUTILS_USE_SDK`` 这一个环境变量设置为 ``1``,其余工作交由脚本完成。它会" +"为 Python 3.3 或 3.4 的 64 位构建搭建所需的 SDK,因此不要在其他任何构建中设置" +"这个环境变量。" #: ../source/guides/supporting-windows-using-appveyor.rst:125 msgid "" "You can simply download the batch file and include it in your project " "unchanged." -msgstr "" +msgstr "你可以直接下载这个批处理文件,并原封不动地将其包含在你的项目中。" #: ../source/guides/supporting-windows-using-appveyor.rst:129 msgid "Access to the built wheels" -msgstr "" +msgstr "获取构建好的 wheel 包" #: ../source/guides/supporting-windows-using-appveyor.rst:131 msgid "" @@ -10009,10 +11149,14 @@ msgid "" "architecture. You can download those wheels and upload them to PyPI as part " "of your release process." msgstr "" +"构建完成后,构建好的 wheel 包可以在你项目的 Appveyor 控制面板中获取。依次进入" +"每次构建的构建状态页面即可找到它们。构建输出的顶部有一系列链接,其中之一是 " +"\"Artifacts\"。该页面会包含指向对应 Python 版本/架构的 wheel 包的链接列表。你" +"可以下载这些 wheel 包,并在发布流程中把它们上传到 PyPI。" #: ../source/guides/supporting-windows-using-appveyor.rst:142 msgid "Testing with tox" -msgstr "" +msgstr "使用 tox 进行测试" #: ../source/guides/supporting-windows-using-appveyor.rst:144 msgid "" @@ -10020,6 +11164,8 @@ msgid "" "ensures that tests are run in an isolated environment using the exact files " "that will be distributed by the project." msgstr "" +"许多项目使用 :doc:`Tox ` 工具来运行测试。它确保测试在隔离的环境中" +"运行,并且使用的正是项目将要分发的那些文件。" #: ../source/guides/supporting-windows-using-appveyor.rst:148 msgid "" @@ -10027,6 +11173,8 @@ msgid "" "considerations (in actual fact, these issues are not specific to Appveyor, " "and may well affect other CI systems)." msgstr "" +"要在 Appveyor 上使用 ``tox``,还有几点需要额外考虑(实际上,这些问题并非 " +"Appveyor 特有,也很可能影响其他 CI 系统)。" #: ../source/guides/supporting-windows-using-appveyor.rst:152 msgid "" @@ -10035,6 +11183,8 @@ msgid "" "control the compiler, this \"test isolation\" feature will cause the tests " "to use the wrong compiler by default." msgstr "" +"默认情况下,``tox`` 只把选定的部分环境变量传递给测试进程。由于 ``distutils`` " +"使用环境变量来控制编译器,这一“测试隔离”特性会导致测试默认使用错误的编译器。" #: ../source/guides/supporting-windows-using-appveyor.rst:157 msgid "" @@ -10043,6 +11193,8 @@ msgid "" "list the additional environment variables to be passed to the subprocess. " "For the SDK compilers, you need" msgstr "" +"要强制 ``tox`` 把必要的环境变量传递给子进程,你需要设置 ``tox`` 的配置选项 " +"``passenv``,列出要传递给子进程的额外环境变量。对于 SDK 编译器,你需要" #: ../source/guides/supporting-windows-using-appveyor.rst:162 msgid "``DISTUTILS_USE_SDK``" @@ -10068,6 +11220,10 @@ msgid "" "supplied :file:`build.cmd` script does this by default whenever " "``DISTUTILS_USE_SDK`` is set." msgstr "" +"``passenv`` 选项可以在你的 :file:`tox.ini` 中设置;如果你不想在通用项目文件中" +"添加 Windows 特有的设置,也可以通过设置 ``TOX_TESTENV_PASSENV`` 环境变量来完" +"成。只要设置了 ``DISTUTILS_USE_SDK``,所提供的 :file:`build.cmd` 脚本默认就会" +"这样做。" #: ../source/guides/supporting-windows-using-appveyor.rst:173 msgid "" @@ -10079,6 +11235,10 @@ msgid "" "environment to use (there are default environments for most versions of " "Python)." msgstr "" +"在交互式使用时,``tox`` 允许你针对多个环境运行测试(通常这意味着多个 Python " +"版本)。这一特性在 Appveyor 这样的 CI 环境中用处不大,因为在这样的环境里,所" +"有测试都会在每种配置对应的隔离环境中运行。因此,项目通常会向 ``tox`` 传入 ``-" +"e ENVNAME`` 参数来指定使用哪个环境(大多数 Python 版本都有默认环境)。" #: ../source/guides/supporting-windows-using-appveyor.rst:180 msgid "" @@ -10086,6 +11246,9 @@ msgid "" "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 "" +"然而,对于 Appveyor 这样的 Windows CI 系统,这种做法效果 *并不* 理想:例如," +"系统上有两个可用的 Python 3.4 安装(32 位和 64 位),但 ``tox`` 中只有一个 " +"``py34`` 环境。" #: ../source/guides/supporting-windows-using-appveyor.rst:184 msgid "" @@ -10094,6 +11257,9 @@ msgid "" "that was used to run ``tox``. This will ensure that when Appveyor runs the " "tests, they will be run with the configured interpreter." msgstr "" +"因此,为了使用 ``tox`` 运行测试,项目大概应该使用 ``tox`` 中默认的 ``py`` 环" +"境,该环境会使用运行 ``tox`` 时所用的那个 Python 解释器。这样可以确保 " +"Appveyor 运行测试时,使用的是配置好的解释器。" #: ../source/guides/supporting-windows-using-appveyor.rst:189 msgid "" @@ -10102,10 +11268,12 @@ msgid "" "their :file:`tox.ini` file. Doing so is, however, outside the scope of this " "document." msgstr "" +"为了支持在 ``py`` 环境下运行,``tox`` 配置较为复杂的项目可能需要修改自己的 " +":file:`tox.ini` 文件。不过,这超出了本文档的范围。" #: ../source/guides/supporting-windows-using-appveyor.rst:195 msgid "Automatically uploading wheels" -msgstr "" +msgstr "自动上传 wheel 包" #: ../source/guides/supporting-windows-using-appveyor.rst:197 msgid "" @@ -10114,6 +11282,9 @@ msgid "" "(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 自动上传 wheel 包。:file:`appveyor.yml` 中提供了一个 " +"``deployment`` 步骤,可用于(例如)把构建产物复制到 FTP 站点或 Amazon S3 实例" +"。具体做法请参阅 Appveyor 指南中的文档。" #: ../source/guides/supporting-windows-using-appveyor.rst:202 msgid "" @@ -10122,16 +11293,21 @@ msgid "" "clear that uploading new wheels after every commit is desirable (although " "some projects may wish to do this)." msgstr "" +"另一种做法是在构建中添加一个 ``twine upload`` 步骤。所提供的 " +":file:`appveyor.yml` 并没有这样做,因为每次提交后都上传新的 wheel 包是否可取" +"并不明确(尽管有些项目可能希望这样做)。" #: ../source/guides/supporting-windows-using-appveyor.rst:208 msgid "External dependencies" -msgstr "" +msgstr "外部依赖项" #: ../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 "" +"只要分发包的构建不依赖第三方外部库,所提供的脚本就能成功构建任何这样的分发包" +"。" #: ../source/guides/supporting-windows-using-appveyor.rst:213 msgid "" @@ -10142,14 +11318,17 @@ msgid "" "to the compiler. However, this level of configuration is beyond the scope of " "this document." msgstr "" +"可以在 :file:`appveyor.yml` 配置中添加步骤(通常在 \"install\" 小节),用来下" +"载和/或构建分发包所需的外部库。如有需要,还可以为构建添加额外配置,把这些库的" +"位置告知编译器。不过,这一层次的配置超出了本文档的范围。" #: ../source/guides/supporting-windows-using-appveyor.rst:222 msgid "Support scripts" -msgstr "" +msgstr "支持脚本" #: ../source/guides/supporting-windows-using-appveyor.rst:224 msgid "For reference, the SDK setup support script is listed here:" -msgstr "" +msgstr "作为参考,此处列出了 SDK 设置支持脚本:" #: ../source/guides/supporting-windows-using-appveyor.rst:226 msgid "``appveyor-sample/build.cmd``" @@ -10157,7 +11336,7 @@ msgstr "``appveyor-sample/build.cmd``" #: ../source/guides/tool-recommendations.rst:5 msgid "Tool recommendations" -msgstr "" +msgstr "工具推荐" #: ../source/guides/tool-recommendations.rst:7 msgid "" @@ -10172,6 +11351,12 @@ msgid "" "makes some recommendations of tools that you should *not* use because they " "are deprecated or insecure." msgstr "" +"Python 打包领域由许多不同的工具组成。对于许多任务,:term:`Python 打包管理局 " +"` (即 PyPA,这个涵盖众多打包工具并维护本" +"指南的工作组)有意不做一刀切的推荐;例如,之所以存在许多构建后端,是因为这一" +"领域被有意开放,以便开发出能比以往独一无二的后端 setuptools 更好地满足某些用" +"户需求的新后端。本指南确实会指出一些广受认可的工具,同时也会就一些因为已弃用" +"或不安全而你 *不应* 使用的工具提出建议。" #: ../source/guides/tool-recommendations.rst:20 msgid "Virtual environments" @@ -10184,6 +11369,9 @@ msgid "" "(part of the Python standard library, though missing some features of " "virtualenv)." msgstr "" +"手动创建和使用虚拟环境的标准工具是 :ref:`virtualenv` (PyPA 项目)和 " +":doc:`venv ` (Python 标准库的一部分,不过缺少 " +"virtualenv 的一些特性)。" #: ../source/guides/tool-recommendations.rst:28 msgid "Installing packages" @@ -10197,6 +11385,10 @@ msgid "" "default in most Python installations through the standard library " "package :doc:`ensurepip `." msgstr "" +":ref:`Pip` 是从 :term:`PyPI ` 安装软件包的标准工" +"具。你可能想阅读 pip 关于 :doc:`安全安装 ` 的建议" +"。在大多数 Python 安装中,凭借标准库软件包 :doc:`ensurepip `,pip 默认可用。" #: ../source/guides/tool-recommendations.rst:36 msgid "" @@ -10208,15 +11400,19 @@ msgid "" "wide applications making use of the same Python interpreter (especially on " "Linux)." msgstr "" +"另一种选择是 :ref:`pipx`,它专门用于安装通过 PyPI 分发并从命令行运行的 " +"Python 应用程序。Pipx 是 pip 和 venv 的包装器,会把每个应用程序安装到一个专用" +"的虚拟环境中。这样可以避免不同应用程序的依赖项之间的冲突,以及与使用同一 " +"Python 解释器的系统级应用程序之间的冲突(尤其是在 Linux 上)。" #: ../source/guides/tool-recommendations.rst:43 msgid "" "For scientific software specifically, consider :ref:`Conda` or :ref:`Spack`." -msgstr "" +msgstr "专门针对科学软件,可以考虑 :ref:`Conda` 或 :ref:`Spack`。" #: ../source/guides/tool-recommendations.rst:45 msgid "Write a \"pip vs. Conda\" comparison, here or in a new discussion." -msgstr "" +msgstr "在此处或在一个新的讨论页面中撰写 \"pip 与 Conda\" 的对比。" #: ../source/guides/tool-recommendations.rst:47 msgid "" @@ -10226,10 +11422,15 @@ msgid "" "develop``, which are also deprecated (see :ref:`setup-py-deprecated` for " "background and :ref:`modernize-setup-py-project` for migration advice)." msgstr "" +"请 **不要** 使用 ``easy_install`` (它是 :ref:`setuptools` 的一部分),该工具" +"已被弃用,由 pip 取而代之(详见 :ref:`pip vs easy_install`)。同样,请 **不" +"要** 使用 ``python setup.py install`` 或 ``python setup.py develop``,它们也" +"已被弃用(背景参见 :ref:`setup-py-deprecated`,迁移建议参见 :ref:`modernize-" +"setup-py-project`)。" #: ../source/guides/tool-recommendations.rst:55 msgid "Lock files" -msgstr "" +msgstr "锁定文件" #: ../source/guides/tool-recommendations.rst:57 msgid "" @@ -10237,10 +11438,12 @@ msgid "" "files, which contain the exact versions of all packages installed into an " "environment, for reproducibility purposes." msgstr "" +":ref:`pip-tools` 和 :ref:`Pipenv` 是两个公认的用于创建锁定文件的工具。锁定文" +"件中记录了安装到环境里的所有软件包的确切版本,用于保证可重现性。" #: ../source/guides/tool-recommendations.rst:63 msgid "Build backends" -msgstr "" +msgstr "构建后端" #: ../source/guides/tool-recommendations.rst:67 msgid "" @@ -10248,12 +11451,16 @@ msgid "" "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 "" +"纯 Python 软件包常用的 :term:`构建后端 ` 包括(按字母顺序排列" +"):" #: ../source/guides/tool-recommendations.rst:74 msgid "" @@ -10261,24 +11468,26 @@ msgid "" "from :ref:`Flit`. A minimal and opinionated build backend. It does not " "support plugins." msgstr "" +":doc:`Flit-core ` -- 与 :ref:`Flit` 一同开发,但相互独立" +"。这是一个极简而有主见的构建后端,不支持插件。" #: ../source/guides/tool-recommendations.rst:77 msgid "" "Hatchling_ -- developed with but separate from :ref:`Hatch`. Supports " "plugins." -msgstr "" +msgstr "Hatchling_ -- 与 :ref:`Hatch` 一同开发,但相互独立。支持插件。" #: ../source/guides/tool-recommendations.rst:79 msgid "" "PDM-backend_ -- developed with but separate from :ref:`PDM`. Supports " "plugins." -msgstr "" +msgstr "PDM-backend_ -- 与 :ref:`PDM` 一同开发,但相互独立。支持插件。" #: ../source/guides/tool-recommendations.rst:81 msgid "" "Poetry-core_ -- developed with but separate from :ref:`Poetry`. Supports " "plugins." -msgstr "" +msgstr "Poetry-core_ -- 与 :ref:`Poetry` 一同开发,但相互独立。支持插件。" #: ../source/guides/tool-recommendations.rst:84 msgid "" @@ -10286,11 +11495,13 @@ msgid "" "standard :ref:`[project] table ` (it uses a " "different format, in the ``[tool.poetry]`` table)." msgstr "" +"与列表中的其他后端不同,Poetry-core 不支持标准的 :ref:`[project] 表 `,而是采用另一种格式,写在 ``[tool.poetry]`` 表中。" #: ../source/guides/tool-recommendations.rst:88 msgid "" ":ref:`setuptools`, which used to be the only build backend. Supports plugins." -msgstr "" +msgstr ":ref:`setuptools`,它曾是唯一的构建后端。支持插件。" #: ../source/guides/tool-recommendations.rst:92 msgid "" @@ -10298,6 +11509,8 @@ msgid "" "standardisation efforts are now deprecated and only *temporarily kept* for " "compatibility." msgstr "" +"如果你使用 setuptools,请注意,一些早于标准化工作的特性如今已被弃用,仅为兼容" +"性而 *暂时保留*。" #: ../source/guides/tool-recommendations.rst:96 msgid "" @@ -10308,6 +11521,11 @@ msgid "" "(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``。另一方面,通过 " +":file:`setup.py` 文件配置 setuptools 仍然得到完全支持,不过建议尽可能使用现代" +"的 :ref:`pyproject.toml 中的 [project] 表 ` (或 " +":file:`setup.cfg`),只有在需要编程式配置时才保留 :file:`setup.py`。参见 " +":ref:`setup-py-deprecated`。" #: ../source/guides/tool-recommendations.rst:103 msgid "" @@ -10316,6 +11534,10 @@ msgid "" "table ` in :file:`pyproject.toml` " "instead), and the ``easy_install`` command (cf. :ref:`pip vs easy_install`)." msgstr "" +"其他一些你 **不应** 使用的已弃用特性包括:``setup()`` 的 ``setup_requires`` " +"参数(请改用 :file:`pyproject.toml` 中的 :ref:`[build-system] 表 `),以及 ``easy_install`` 命令(参见 :ref:`pip vs " +"easy_install`)。" #: ../source/guides/tool-recommendations.rst:108 msgid "" @@ -10323,10 +11545,12 @@ msgid "" "from the standard library in Python 3.12, although it still remains " "available from setuptools." msgstr "" +"请 **不要** 使用 :ref:`distutils`,它已被弃用,并已在 Python 3.12 中从标准库" +"移除,不过仍然可以从 setuptools 获取。" #: ../source/guides/tool-recommendations.rst:115 msgid "Build backends for extension modules" -msgstr "" +msgstr "扩展模块的构建后端" #: ../source/guides/tool-recommendations.rst:117 msgid "" @@ -10334,28 +11558,34 @@ msgid "" "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" +"对于带有 :term:`扩展模块 ` 的软件包,最好使用对扩展所用的编" +"程语言提供专门支持的构建系统,例如:" #: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," -msgstr "" +msgstr ":ref:`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 "" +":ref:`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 "" +":ref:`scikit-build-core` -- 支持 C、C++、Fortran 以及 CMake 所支持的其他语言" +"," #: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." -msgstr "" +msgstr ":ref:`maturin` -- 支持 Rust,通过 Cargo。" #: ../source/guides/tool-recommendations.rst:128 msgid "Building distributions" @@ -10368,6 +11598,10 @@ msgid "" "is :ref:`build`. It will invoke whichever build backend you :ref:`declared " "` in :file:`pyproject.toml`." msgstr "" +"构建用于上传到 PyPI 的 :term:`源分发 ` " +"和 :term:`wheel 包 ` 的标准工具是 :ref:`build`。它会调用你在 " +":file:`pyproject.toml` 中 :ref:`声明 ` 的" +"那个构建后端。" #: ../source/guides/tool-recommendations.rst:135 msgid "" @@ -10375,6 +11609,9 @@ msgid "" "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" +"请 **不要** 为此任务使用 ``python setup.py sdist`` 和 ``python setup.py " +"bdist_wheel``。所有对 :file:`setup.py` 的直接调用都已被 :ref:`弃用 `。" #: ../source/guides/tool-recommendations.rst:139 msgid "" @@ -10382,6 +11619,8 @@ msgid "" "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" +"如果你的项目带有 :term:`扩展模块 `,并且想为多个平台分发 " +"wheel 包,请在 CI 环境中使用 :ref:`cibuildwheel` 来构建可分发的 wheel 包。" #: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" @@ -10394,44 +11633,51 @@ msgid "" "allows the package to be securely uploaded to PyPI from a CI/CD workflow " "without a manually configured API token." msgstr "" +"对于托管在受支持的 CI/CD 平台上或通过其发布的项目,建议使用 :ref:`可信发布 " +"`,它允许从 CI/CD 工作流中把软件包安全地上传到 PyPI,而无" +"需手动配置 API 令牌。" #: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" +"截至 2024 年 11 月,PyPI 支持以下平台作为可信发布(Trusted Publishing)提供方" +":" #: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" -msgstr "" +msgstr "GitHub Actions(在 ``https://github.com`` 上)" #: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" -msgstr "" +msgstr "GitLab CI/CD(在 ``https://gitlab.com`` 上)" #: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" -msgstr "" +msgstr "ActiveState" #: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" -msgstr "" +msgstr "Google Cloud" #: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." -msgstr "" +msgstr "另一种可用的方法是使用 :ref:`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``。它除了 :ref:`已被弃用 " +"` 之外,也不安全。" #: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" -msgstr "" +msgstr "工作流工具" #: ../source/guides/tool-recommendations.rst:171 msgid "" @@ -10443,6 +11689,10 @@ msgid "" "applications. They often call the tools mentioned above under the hood. In " "alphabetical order:" msgstr "" +"这些工具是环境管理器,可以为项目自动管理虚拟环境。它们还可以充当\"任务运行" +"器\",让你定义并调用诸如运行测试、编译文档、重新生成某些文件等任务。其中一些" +"提供了构建分发包并上传到 PyPI 的快捷方式,一些支持为应用程序生成锁定文件。它" +"们通常会在底层调用上文提到的工具。按字母顺序排列:" #: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," @@ -10454,7 +11704,7 @@ msgstr ":ref:`Hatch`," #: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," -msgstr "" +msgstr ":doc:`nox `," #: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," @@ -10470,17 +11720,19 @@ msgstr ":ref:`Poetry`," #: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." -msgstr "" +msgstr ":doc:`tox `。" #: ../source/guides/using-manifest-in.rst:5 msgid "Including files in source distributions with ``MANIFEST.in``" -msgstr "" +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 文档中的 :doc:`setuptools:userguide/" +"miscellaneous`。" #: ../source/guides/using-testpypi.rst:7 msgid "" @@ -10489,6 +11741,9 @@ msgid "" "without worrying about affecting the real index. TestPyPI is hosted at " "`test.pypi.org `_" msgstr "" +"``TestPyPI`` 是 :term:`Python Package Index (PyPI)` 的一个独立实例,让你可以" +"试用分发工具和流程,而不必担心影响真实的索引。TestPyPI 托管于 `test.pypi.org " +"`_" #: ../source/guides/using-testpypi.rst:13 msgid "Registering your account" @@ -10500,22 +11755,27 @@ msgid "" "separate user account specifically for TestPyPI. Go to https://test.pypi.org/" "account/register/ to register your account." msgstr "" +"由于 TestPyPI 与正式版 PyPI 使用相互独立的数据库,你需要专门为 TestPyPI 注册" +"一个单独的用户账号。请前往 https://test.pypi.org/account/register/ 注册你的账" +"号。" #: ../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 "" +msgstr "TestPyPI 的数据库可能会被定期清理,因此用户账号被删除的情况并不少见。" #: ../source/guides/using-testpypi.rst:24 msgid "Using TestPyPI with Twine" -msgstr "" +msgstr "结合 Twine 使用 TestPyPI" #: ../source/guides/using-testpypi.rst:26 msgid "" "You can upload your distributions to TestPyPI using :ref:`twine` by " "specifying the ``--repository`` flag:" msgstr "" +"你可以通过指定 ``--repository`` 标志,使用 :ref:`twine` 将你的分发包上传到 " +"TestPyPI:" #: ../source/guides/using-testpypi.rst:33 msgid "" @@ -10524,10 +11784,13 @@ msgid "" "``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://test.pypi.org/project/`` 来查看你的软" +"件包是否已成功上传,其中 ``sampleproject`` 是你所上传项目的名称。你的项目可能" +"需要一两分钟才会出现在网站上。" #: ../source/guides/using-testpypi.rst:39 msgid "Using TestPyPI with pip" -msgstr "" +msgstr "结合 pip 使用 TestPyPI" #: ../source/guides/using-testpypi.rst:41 msgid "" @@ -10543,6 +11806,8 @@ msgid "" "specify ``--extra-index-url`` to point to PyPI. This is useful when the " "package you're testing has dependencies:" msgstr "" +"如果你希望 pip 同时也能从 PyPI 下载软件包,可以指定 ``--extra-index-url`` 指" +"向 PyPI。当你测试的软件包带有依赖项时,这会很有用:" #: ../source/guides/using-testpypi.rst:73 msgid "Setting up TestPyPI in :file:`.pypirc`" @@ -10553,6 +11818,8 @@ 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 "" +"如果你想避免每次都被提示输入用户名和密码,可以在你的 :file:`$HOME/.pypirc` 中" +"配置 TestPyPI:" #: ../source/guides/writing-pyproject-toml.rst:5 msgid "Writing your ``pyproject.toml``" @@ -10564,6 +11831,8 @@ msgid "" "as other tools such as linters, type checkers, etc. There are three possible " "TOML tables in this file." msgstr "" +"``pyproject.toml`` 是一个配置文件,供打包工具以及 linter、类型检查器等其他工" +"具使用。该文件中可能出现的 TOML 表有三种。" #: ../source/guides/writing-pyproject-toml.rst:11 msgid "" @@ -10571,6 +11840,8 @@ msgid "" "declare which :term:`build backend` you use and which other dependencies are " "needed to build your project." msgstr "" +"我们 **强烈建议** 使用 ``[build-system]`` 表。它允许你声明自己使用的是哪个 " +":term:`构建后端 `,以及构建项目还需要哪些依赖项。" #: ../source/guides/writing-pyproject-toml.rst:15 msgid "" @@ -10578,6 +11849,8 @@ msgid "" "specify your project's basic metadata, such as the dependencies, your name, " "etc." msgstr "" +"``[project]`` 表是大多数构建后端用来指定项目基本元数据的格式,例如依赖项、你" +"的姓名等。" #: ../source/guides/writing-pyproject-toml.rst:18 msgid "" @@ -10586,18 +11859,26 @@ msgid "" "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-" +"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]`` 表,但也有一些构建后端使用" +"别的格式。" #: ../source/guides/writing-pyproject-toml.rst:32 msgid "" @@ -10607,6 +11888,10 @@ msgid "" "build backend supports both the ``[project]`` table, and the older format in " "``setup.cfg`` or ``setup.py``." msgstr "" +"一个显著的例外是 Poetry_,它在 2.0 版本(2025 年 1 月 5 日发布)之前不使用 " +"``[project]`` 表,而是使用 ``[tool.poetry]`` 表。从 2.0 版本开始,它两者都支" +"持。此外,setuptools_ 构建后端既支持 ``[project]`` 表,也支持 ``setup.cfg`` " +"或 ``setup.py`` 中的旧格式。" #: ../source/guides/writing-pyproject-toml.rst:38 msgid "" @@ -10615,10 +11900,13 @@ msgid "" "but the ``setup.cfg`` and ``setup.py`` formats are still valid. " "See :ref:`setup-py-deprecated`." msgstr "" +"对于新项目,请使用 ``[project]`` 表;只有在需要某些程序化配置(例如构建 C 扩" +"展)时才保留 ``setup.py``,不过 ``setup.cfg`` 和 ``setup.py`` 格式仍然有效。" +"参见 :ref:`setup-py-deprecated`。" #: ../source/guides/writing-pyproject-toml.rst:47 msgid "Declaring the build backend" -msgstr "" +msgstr "声明构建后端" #: ../source/guides/writing-pyproject-toml.rst:49 msgid "" @@ -10629,6 +11917,10 @@ msgid "" "dependencies. You can also constrain the versions, e.g., ``requires = " "[\"setuptools >= 61.0\"]``." msgstr "" +"``[build-system]`` 表包含一个 ``build-backend`` 键,用于指定要使用的构建后端" +"。它还包含一个 ``requires`` 键,这是一个构建项目所需的依赖项列表,通常只包含" +"构建后端软件包本身,但也可能包含额外的依赖项。你还可以约束版本,例如 " +"``requires = [\"setuptools >= 61.0\"]``。" #: ../source/guides/writing-pyproject-toml.rst:55 msgid "" @@ -10636,14 +11928,16 @@ msgid "" "(after :ref:`choosing your build backend `). Here " "are the values for some common build backends:" msgstr "" +"通常,你只需照抄构建后端文档建议的内容(在 :ref:`选择构建后端 ` 之后)。下面是一些常见构建后端的取值:" #: ../source/guides/writing-pyproject-toml.rst:63 msgid "Static vs. dynamic metadata" -msgstr "" +msgstr "静态与动态元数据" #: ../source/guides/writing-pyproject-toml.rst:65 msgid "The rest of this guide is devoted to the ``[project]`` table." -msgstr "" +msgstr "本指南的其余部分都围绕 ``[project]`` 表展开。" #: ../source/guides/writing-pyproject-toml.rst:67 msgid "" @@ -10651,6 +11945,8 @@ msgid "" "field. For example: ``requires-python = \">= 3.8\"``, or ``version = " "\"1.0\"``." msgstr "" +"大多数时候,你会直接编写 ``[project]`` 字段的值。例如 ``requires-python = \">" +"= 3.8\"`` 或 ``version = \"1.0\"``。" #: ../source/guides/writing-pyproject-toml.rst:71 msgid "" @@ -10659,16 +11955,21 @@ msgid "" "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 "" +"不过在某些情况下,让构建后端替你计算元数据会很有用。例如:许多构建后端可以从" +"代码中的 ``__version__`` 属性、Git 标签或类似来源读取版本号。在这种情况下,你" +"应该将相应字段标记为动态,例如使用:" #: ../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 "" +"当某个字段为动态时,填充该字段就是构建后端的职责。请查阅你所用的构建后端的文" +"档,了解它是如何完成填充的。" #: ../source/guides/writing-pyproject-toml.rst:88 msgid "Basic information" -msgstr "" +msgstr "基本信息" #: ../source/guides/writing-pyproject-toml.rst:93 #: ../source/specifications/pyproject-toml.rst:129 @@ -10682,6 +11983,8 @@ 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 上的名称。此字段是必填的,并且是唯一不能标记为动态的字段" +"。" #: ../source/guides/writing-pyproject-toml.rst:103 msgid "" @@ -10722,10 +12025,12 @@ msgid "" "release) are possible; see the :ref:`specification ` for " "full details." msgstr "" +"也可以使用一些更复杂的版本说明符,例如用于 alpha 预发布版本的 " +"``2020.0.0a1``;完整细节请参见 :ref:`规范 `。" #: ../source/guides/writing-pyproject-toml.rst:128 msgid "This field is required, although it is often marked as dynamic using" -msgstr "" +msgstr "此字段是必填的,不过它经常通过以下方式被标记为动态:" #: ../source/guides/writing-pyproject-toml.rst:135 msgid "" @@ -10733,6 +12038,8 @@ msgid "" "attribute or a Git tag. Consult the :ref:`single-source-version` discussion " "for more details." msgstr "" +"这样就能支持诸如从 ``__version__`` 属性或 Git 标签填充版本号之类的用法。更多" +"细节请参见 :ref:`single-source-version` 讨论。" #: ../source/guides/writing-pyproject-toml.rst:141 msgid "Dependencies and requirements" @@ -10740,17 +12047,17 @@ msgstr "依赖项和要求" #: ../source/guides/writing-pyproject-toml.rst:144 msgid "``dependencies``/``optional-dependencies``" -msgstr "" +msgstr "``dependencies``/``optional-dependencies``" #: ../source/guides/writing-pyproject-toml.rst:146 msgid "If your project has dependencies, list them like this:" -msgstr "" +msgstr "如果你的项目有依赖项,可以像这样列出它们:" #: ../source/guides/writing-pyproject-toml.rst:158 msgid "" "See :ref:`Dependency specifiers ` for the full syntax " "you can use to constrain versions." -msgstr "" +msgstr "可用于约束版本的完整语法,请参见 :ref:`依赖说明符 `。" #: ../source/guides/writing-pyproject-toml.rst:161 msgid "" @@ -10758,6 +12065,8 @@ msgid "" "needed for a specific feature of your package. In that case, put them in " "``optional-dependencies``." msgstr "" +"如果某些依赖项只在软件包的特定功能中才会用到,你可能想把它们设为可选依赖。这" +"种情况下,请把它们放到 ``optional-dependencies`` 中。" #: ../source/guides/writing-pyproject-toml.rst:174 msgid "" @@ -10765,6 +12074,9 @@ msgid "" "could use, e.g., ``pip install your-project-name[gui]`` to install your " "project with GUI support, adding the PyQt5 dependency." msgstr "" +"其中每个键都定义了一个“打包附加功能”。在上面的示例中,可以用 ``pip install " +"your-project-name[gui]`` 这样的命令来安装带 GUI 支持的项目,同时添加 PyQt5 依" +"赖项。" #: ../source/guides/writing-pyproject-toml.rst:180 msgid "" @@ -10773,6 +12085,9 @@ 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 "" @@ -10780,6 +12095,8 @@ 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 "" @@ -10787,29 +12104,32 @@ 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 #: ../source/specifications/pyproject-toml.rst:157 #: ../source/specifications/pyproject-toml.rst:250 msgid "``requires-python``" -msgstr "" +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 "" +msgstr "它让你声明你所支持的最低 Python 版本 [#requires-python-upper-bounds]_。" #: ../source/guides/writing-pyproject-toml.rst:224 msgid "Creating executable scripts" -msgstr "" +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 "" +msgstr "要把某个命令作为软件包的一部分来安装,请在 ``[project.scripts]`` 表中声明它。" #: ../source/guides/writing-pyproject-toml.rst:234 msgid "" @@ -10817,6 +12137,8 @@ msgid "" "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 "" @@ -10825,33 +12147,38 @@ msgid "" "prevent this from happening, use the ``[project.gui-scripts]`` table instead " "of ``[project.scripts]``." msgstr "" +"在 Windows 上,以这种方式打包的脚本需要终端,因此如果你从图形应用程序中启动它" +"们,就会弹出一个终端窗口。要避免这种情况,请改用 ``[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 "" +msgstr "在这种情况下,从命令行启动你的脚本会立即交还控制权,让脚本在后台运行。" #: ../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 "关于您的项目" +msgstr "关于你的项目" #: ../source/guides/writing-pyproject-toml.rst:260 #: ../source/specifications/pyproject-toml.rst:337 msgid "``authors``/``maintainers``" -msgstr "" +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 "" +msgstr "这两个字段都包含以姓名和/或电子邮箱地址标识的人员列表。" #: ../source/guides/writing-pyproject-toml.rst:282 #: ../source/specifications/pyproject-toml.rst:144 @@ -10865,12 +12192,15 @@ msgid "" "\"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 "" +msgstr "``readme``" #: ../source/guides/writing-pyproject-toml.rst:297 msgid "" @@ -10878,19 +12208,21 @@ msgid "" "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 "" +msgstr "README 的格式会根据扩展名自动检测:" #: ../source/guides/writing-pyproject-toml.rst:308 msgid "``README.md`` → `GitHub-flavored Markdown `_," -msgstr "" +msgstr "``README.md`` → `GitHub 风格 Markdown `_," #: ../source/guides/writing-pyproject-toml.rst:309 msgid "" "``README.rst`` → `reStructuredText `_ (without Sphinx extensions)." -msgstr "``README.rst`` → `reStructuredText `_ (没有 Sphinx扩展)." +msgstr "``README.rst`` → `reStructuredText `_ (没有 Sphinx 扩展)." #: ../source/guides/writing-pyproject-toml.rst:311 msgid "You can also specify the format explicitly, like this:" @@ -10902,17 +12234,19 @@ msgstr "``许可证`` 和 ``许可证文件``" #: ../source/guides/writing-pyproject-toml.rst:326 msgid "As per :pep:`639`, licenses should be declared with two fields:" -msgstr "" +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 许可证表达式 `,由一个或多" +"个 :term:`许可证标识符 ` 组成。" #: ../source/guides/writing-pyproject-toml.rst:330 msgid "``license-files`` is a list of license file glob patterns." -msgstr "" +msgstr "``license-files`` 是一个许可证文件的 glob 模式列表。" #: ../source/guides/writing-pyproject-toml.rst:332 msgid "" @@ -10921,10 +12255,13 @@ msgid "" "backends` now support the new format as shown in the " "following table." msgstr "" +"先前的某个 PEP 曾规定 ``license`` 是一个带有 ``file`` 或 ``text`` 键的表,这" +"种格式现已弃用。如今大多数 :term:`构建后端 ` 都支持下表所示的" +"新格式。" #: ../source/guides/writing-pyproject-toml.rst:336 msgid "build backend versions that introduced :pep:`639` support" -msgstr "" +msgstr "开始支持 :pep:`639` 的构建后端版本" #: ../source/guides/writing-pyproject-toml.rst:339 msgid "hatchling" @@ -10936,11 +12273,11 @@ msgstr "setuptools" #: ../source/guides/writing-pyproject-toml.rst:341 msgid "flit-core [#flit-core-pep639]_" -msgstr "" +msgstr "flit-core [#flit-core-pep639]_" #: ../source/guides/writing-pyproject-toml.rst:342 msgid "pdm-backend" -msgstr "" +msgstr "pdm-backend" #: ../source/guides/writing-pyproject-toml.rst:343 msgid "poetry-core" @@ -10952,27 +12289,27 @@ msgstr "uv-build" #: ../source/guides/writing-pyproject-toml.rst:345 msgid "1.27.0" -msgstr "" +msgstr "1.27.0" #: ../source/guides/writing-pyproject-toml.rst:346 msgid "77.0.3" -msgstr "" +msgstr "77.0.3" #: ../source/guides/writing-pyproject-toml.rst:347 msgid "3.12" -msgstr "" +msgstr "3.12" #: ../source/guides/writing-pyproject-toml.rst:348 msgid "2.4.0" -msgstr "" +msgstr "2.4.0" #: ../source/guides/writing-pyproject-toml.rst:349 msgid "2.2.0" -msgstr "" +msgstr "2.2.0" #: ../source/guides/writing-pyproject-toml.rst:350 msgid "0.7.19" -msgstr "" +msgstr "0.7.19" #: ../source/guides/writing-pyproject-toml.rst:356 #: ../source/specifications/pyproject-toml.rst:151 @@ -10988,6 +12325,10 @@ msgid "" "license list page `_. The supported list version is 3.17 " "or any later compatible one." msgstr "" +"``license`` 的新格式是一个有效的 :term:`SPDX 许可证表达式 `,由一个或多个 :term:`许可证标识符 ` 组成。完" +"整的许可证列表可在 `SPDX 许可证列表页面 `_ 查阅。支持的列表" +"版本是 3.17 或任何更新的兼容版本。" #: ../source/guides/writing-pyproject-toml.rst:371 msgid "" @@ -10996,6 +12337,9 @@ msgid "" "and-license-files_>`_ for more context. The now deprecated format is " "`described in PEP 621 `__." msgstr "" +"如果你遇到 ``license`` 应为 dict/table 的构建错误,说明你的构建后端还不支持新" +"格式。更多背景请参见 `上一节 `_。现已弃用的格式" +"在 `PEP 621 `__ 中有描述。" #: ../source/guides/writing-pyproject-toml.rst:376 msgid "" @@ -11003,6 +12347,8 @@ msgid "" "both to avoid confusion and because some organizations avoid software whose " "license is unapproved." msgstr "" +"一般而言,使用标准的、广为人知的许可证是明智之举,这既能避免混淆,也是因为一" +"些组织会回避许可证未经批准的软件。" #: ../source/guides/writing-pyproject-toml.rst:380 msgid "" @@ -11012,6 +12358,9 @@ msgid "" "specification, `clause 10.1 `_ of the version 2.2 or any " "later compatible one." msgstr "" +"如果你的 :term:`Distribution Archive` 所用的许可证没有现成的 SPDX 标识符,你" +"可以按 ``LicenseRef-[idstring]`` 格式创建一个自定义标识符。自定义标识符必须遵" +"循 SPDX 规范 2.2 版或任何更新的兼容版本中的 `第 10.1 条 `_。" #: ../source/guides/writing-pyproject-toml.rst:395 #: ../source/specifications/pyproject-toml.rst:152 @@ -11024,47 +12373,47 @@ msgstr "``license-files``" msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." -msgstr "" +msgstr "这是你想随软件包一起分发的许可证文件和包含其他法律信息的文件的列表。" #: ../source/guides/writing-pyproject-toml.rst:405 msgid "The glob patterns must follow the specification:" -msgstr "" +msgstr "glob 模式必须遵循以下规范:" #: ../source/guides/writing-pyproject-toml.rst:407 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." -msgstr "" +msgstr "字母数字字符、下划线(``_``)、连字符(``-``)和句号(``.``)将按字面值匹配。" #: ../source/guides/writing-pyproject-toml.rst:409 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." -msgstr "" +msgstr "支持的特殊字符包括 ``*``、``?``、``**`` 以及字符范围 []。" #: ../source/guides/writing-pyproject-toml.rst:410 msgid "Path delimiters must be the forward slash character (``/``)." -msgstr "" +msgstr "路径分隔符必须是正斜杠字符(``/``)。" #: ../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 "" +msgstr "模式相对于包含 :file:`pyproject.toml` 的目录,因此不能以斜杠字符开头。" #: ../source/guides/writing-pyproject-toml.rst:413 msgid "Parent directory indicators (``..``) must not be used." -msgstr "" +msgstr "不得使用父目录指示符(``..``)。" #: ../source/guides/writing-pyproject-toml.rst:414 msgid "Each glob must match at least one file." -msgstr "" +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 "" +msgstr "字面量路径是有效的 glob。本规范未涵盖的任何字符或字符序列均无效。" #: ../source/guides/writing-pyproject-toml.rst:422 #: ../source/specifications/pyproject-toml.rst:150 @@ -11077,7 +12426,7 @@ msgstr "``keywords``" msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." -msgstr "" +msgstr "这样,当有人搜索这些关键词时,PyPI 的搜索框就会推荐你的项目。" #: ../source/guides/writing-pyproject-toml.rst:436 #: ../source/specifications/pyproject-toml.rst:142 @@ -11102,6 +12451,9 @@ msgid "" "what Python versions a project can be installed on, use the :ref:`requires-" "python` argument." msgstr "" +"虽然分类器列表经常被用来声明项目支持哪些 Python 版本,但这一信息只用于在 " +"PyPI 上搜索和浏览项目,而不用于安装项目。要真正限制项目可以安装到哪些 Python " +"版本上,请使用 :ref:`requires-python` 参数。" #: ../source/guides/writing-pyproject-toml.rst:468 msgid "" @@ -11109,19 +12461,21 @@ msgid "" "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" +"要防止软件包被上传到 PyPI,请使用特殊的 ``Private :: Do Not Upload`` 分类器。" +"PyPI 始终会拒绝那些分类器以 ``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 "" +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 "" +msgstr "与你的项目关联的 URL 列表,会显示在 PyPI 项目页面的左侧边栏中。" #: ../source/guides/writing-pyproject-toml.rst:482 msgid "" @@ -11130,6 +12484,9 @@ msgid "" "`_ for PyPI-specific " "URL processing." msgstr "" +"关于 PyPI 和其他打包工具专门识别的标签列表,请参见 :ref:`well-known-labels`;" +"关于 PyPI 特有的 URL 处理方式,请参阅 `PyPI 的项目元数据文档 `_。" #: ../source/guides/writing-pyproject-toml.rst:496 msgid "" @@ -11137,6 +12494,8 @@ msgid "" "``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 "" @@ -11144,6 +12503,8 @@ msgid "" "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" +"建议用户在合适的情况下为项目 URL 使用 :ref:`well-known-labels`,因为元数据的" +"消费方(如包索引)可以对其呈现方式做专门处理。" #: ../source/guides/writing-pyproject-toml.rst:504 msgid "" @@ -11151,6 +12512,8 @@ msgid "" "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" +"例如,在下面的元数据中,``MyHomepage`` 和 ``\"Download Link\"`` 都不是知名标" +"签,因此它们会被原样渲染:" #: ../source/guides/writing-pyproject-toml.rst:514 msgid "" @@ -11159,10 +12522,13 @@ msgid "" "semantics in mind (the project's home page and its external download " "location, respectively)." msgstr "" +"而在下面的元数据中,``HomePage`` 和 ``DOWNLOAD`` 都有对应的知名等价标签" +"(``homepage`` 和 ``download``),因此可以按这些语义来呈现(分别为项目的主页" +"和外部下载位置)。" #: ../source/guides/writing-pyproject-toml.rst:526 msgid "Advanced plugins" -msgstr "" +msgstr "高级插件" #: ../source/guides/writing-pyproject-toml.rst:528 msgid "" @@ -11170,10 +12536,12 @@ msgid "" "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 "" +msgstr "更多信息请参见 :ref:`插件指南 `。" #: ../source/guides/writing-pyproject-toml.rst:542 msgid "A full example" @@ -11185,12 +12553,14 @@ msgid "" "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 "" +msgstr "flit-core `尚不支持 `_ 在 SPDX 许可证表达式中使用 WITH。" #: ../source/index.rst:-1 msgid "" @@ -11212,6 +12582,8 @@ msgid "" "references to help you distribute and install Python packages with modern " "tools." msgstr "" +"欢迎来到 *Python 打包用户指南*,这是一系列教程和参考资料,帮助你使用现代工具" +"来分发和安装 Python 软件包。" #: ../source/index.rst:29 msgid "" @@ -11220,7 +12592,7 @@ msgid "" "`. 😊" msgstr "" "本指南在 `GitHub`_ 上由 :doc:`Python Packaging Authority ` 维护。" -"我们很乐意接受任何 :doc:`contributions and feedback `。 😊" +"我们很乐意接受任何 :doc:`贡献与反馈 `。 😊" #: ../source/index.rst:36 msgid "Overview and Flow" @@ -11232,6 +12604,8 @@ msgid "" "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 "" @@ -11241,12 +12615,15 @@ msgid "" "It includes what packaging is, the problems that it solves, and key " "considerations." msgstr "" +":doc:`overview` 介绍了 Python 打包及其在准备和分发项目时的用途。这一部分帮助" +"你理解如何选择最适合你的使用场景的工具和流程。内容包括打包是什么、它解决了哪" +"些问题,以及关键的注意事项。" #: ../source/index.rst:51 msgid "" "To get an overview of the workflow used to publish your code, " "see :doc:`packaging flow `." -msgstr "" +msgstr "要概览发布代码的工作流程,请参阅 :doc:`打包流程 `。" #: ../source/index.rst:57 msgid "" @@ -11254,26 +12631,29 @@ msgid "" "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:`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:`tutorial on packaging and " -"distributing `" +"要学习如何打包和分发你的项目,请参阅 :doc:`打包和分发教程 `" #: ../source/index.rst:71 msgid "" @@ -11281,6 +12661,8 @@ msgid "" "users who are already familiar with Python packaging and are looking for " "specific information." msgstr "" +"指南提供了完成特定任务所需的步骤。它们更侧重于已经熟悉 Python 打包、正在寻找" +"特定信息的用户。" #: ../source/index.rst:75 msgid "" @@ -11288,16 +12670,18 @@ msgid "" "major areas: package installation; building and distributing packages; " "miscellaneous topics." msgstr "" +":doc:`guides/index` 部分提供了三大领域的“操作方法”说明:软件包安装;构建和分" +"发软件包;其他主题。" #: ../source/index.rst:80 msgid "Explanations and Discussions" -msgstr "" +msgstr "解释与讨论" #: ../source/index.rst:82 msgid "" "The :doc:`discussions/index` section provides in-depth explanations and " "discussion about topics, such as:" -msgstr "" +msgstr ":doc:`discussions/index` 部分提供了对若干主题的深入解释和讨论,例如:" #: ../source/index.rst:85 msgid ":doc:`discussions/deploying-python-applications`" @@ -11305,7 +12689,7 @@ msgstr ":doc:`discussions/deploying-python-applications`" #: ../source/index.rst:86 msgid ":doc:`discussions/pip-vs-easy-install`" -msgstr "" +msgstr ":doc:`discussions/pip-vs-easy-install`" #: ../source/index.rst:89 msgid "Reference" @@ -11315,7 +12699,7 @@ msgstr "参考" msgid "" "The :doc:`specifications/index` section for packaging interoperability " "specifications." -msgstr "" +msgstr "打包互操作性规范所在的 :doc:`specifications/index` 部分。" #: ../source/index.rst:92 msgid "" @@ -11327,7 +12711,7 @@ msgstr "" #: ../source/index.rst:93 msgid "The :doc:`glossary` for definitions of terms used in Python packaging." -msgstr "" +msgstr "Python 打包中使用的术语定义所在的 :doc:`glossary`。" #: ../source/key_projects.rst:6 msgid "Project Summaries" @@ -11337,7 +12721,7 @@ msgstr "项目摘要" msgid "" "Summaries and links for the most relevant projects in the space of Python " "installation and packaging." -msgstr "" +msgstr "Python 安装与打包领域中最相关的一些项目的简介和链接。" #: ../source/key_projects.rst:14 msgid "PyPA Projects" @@ -11345,7 +12729,7 @@ msgstr "PyPA 项目" #: ../source/key_projects.rst:19 msgid "bandersnatch" -msgstr "" +msgstr "bandersnatch" #: ../source/key_projects.rst:21 msgid "" @@ -11365,6 +12749,10 @@ msgid "" "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`` 是一个 PyPI 镜像客户端,旨在高效地创建 PyPI 内容的完整镜像。" +"这样,组织既能节省软件包下载的带宽和延迟(尤其是在自动化测试场景下),又能避" +"免给 PyPI 的内容分发网络(CDN)带来过重的负载。文件可由本地目录或 `AWS S3`_ " +"提供。" #: ../source/key_projects.rst:37 msgid "build" @@ -11385,6 +12773,8 @@ 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`` 是一个兼容 :pep:`517` 的 Python 软件包构建器。它既提供了构建软件包" +"的 CLI,也提供了 Python API。" #: ../source/key_projects.rst:51 msgid "cibuildwheel" @@ -11410,6 +12800,8 @@ msgid "" "all common platforms and Python versions on most CI systems. Also " "see :ref:`multibuild`." msgstr "" +"``cibuildwheel`` 是一个 Python 软件包,用于在大多数 CI 系统上为所有常见平台" +"和 Python 版本构建 :term:`wheel `。另请参阅 :ref:`multibuild`。" #: ../source/key_projects.rst:66 msgid "distlib" @@ -11435,6 +12827,10 @@ msgid "" "interoperability, resolve dependencies, manage package resources, and do " "other similar functions." msgstr "" +"``distlib`` 是一个实现了与 Python 软件打包和分发相关的底层功能的库。 " +"``distlib`` 实现了若干相关的 PEP(Python 增强提案标准),对第三方打包工具的开" +"发者很有用,可以帮助他们构建并上传二进制和源码 :term:`分发包 `、实现互操作性、解析依赖项、管理软件包资源,以及完成其他类似的功能。" #: ../source/key_projects.rst:82 msgid "" @@ -11445,6 +12841,9 @@ msgid "" "standards and fall into the subset of packages that are incompatible with " "those standards." msgstr "" +"与下文那个更严格、专门实现现代 Python 打包互操作标准的 :ref:`packaging` 项目" +"不同,``distlib`` 在被要求处理早于现代互操作标准、且属于与这些标准不兼容的软" +"件包子集的旧式软件包和元数据时,还会尝试提供合理的回退行为。" #: ../source/key_projects.rst:93 msgid "distutils" @@ -11454,7 +12853,7 @@ msgstr "distutils" msgid "" "The original Python packaging system, added to the standard library in " "Python 2.0 and removed in 3.12." -msgstr "" +msgstr "最初的 Python 打包系统,于 Python 2.0 中加入标准库,并在 3.12 中移除。" #: ../source/key_projects.rst:98 msgid "" @@ -11466,6 +12865,10 @@ msgid "" "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` 不具备的功能(如依赖项声明" +"和入口点声明),还在所有受支持的 Python 版本上提供了一致的构建接口和功能集。" #: ../source/key_projects.rst:107 msgid "" @@ -11474,6 +12877,10 @@ msgid "" "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` 弃用,并在 Python " +"3.12 中从标准库里 :doc:`移除 `。Setuptools 捆绑了 " +"distutils 的独立副本;即使是在 Python 3.12 之前的版本上,只要你先导入 " +"setuptools 或使用 pip,它也会被注入。" #: ../source/key_projects.rst:116 msgid "flit" @@ -11495,6 +12902,9 @@ msgid "" "quickly set up a simple project, build source distributions and wheels, and " "upload them to PyPI." msgstr "" +"Flit 提供了一种简单的方式来创建纯 Python 软件包和模块并将其上传到 PyPI。它在" +"打包方面的核心理念是 `让简单的事情保持简单 `_。Flit 可以生成" +"配置文件来快速搭建一个简单的项目,构建源分发和 wheel,并将其上传到 PyPI。" #: ../source/key_projects.rst:127 msgid "" @@ -11503,6 +12913,10 @@ msgid "" "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` 之类的" +"工具来构建分发包,也不依赖 :ref:`twine` 来把它们上传到 PyPI。Flit 需要 " +"Python 3,但只要模块能在 Python 3 上导入,你也可以用它来分发面向 Python 2 的" +"模块。" #: ../source/key_projects.rst:132 msgid "" @@ -11511,6 +12925,9 @@ msgid "" "tidelift.com/lifter/search/pypi/flit>`__, and funds sent to the PSF and " "earmarked for PyPA usage." msgstr "" +"自 2023 年 10 月起,flit 软件包由 `Matthias Bussonnier `__ 在 `tidelift 平台 " +"`__ 上负责维护,相关资金会拨付给 PSF,并专款用于 PyPA。" #: ../source/key_projects.rst:142 msgid "hatch" @@ -11532,6 +12949,10 @@ msgid "" "to configure, version, specify dependencies for, and publish packages to " "PyPI. Its plugin system allows for easily extending functionality." msgstr "" +"Hatch 是一款统一的命令行工具,旨在帮助 Python 开发者便捷地管理依赖项和环境隔" +"离。Python 软件包开发者使用 Hatch 及其 :term:`构建后端 ` " +"Hatchling 来配置项目、管理版本、指定依赖项,并把软件包发布到 PyPI。它的插件系" +"统让扩展功能变得十分容易。" #: ../source/key_projects.rst:157 msgid "packaging" @@ -11550,7 +12971,7 @@ msgstr "" #: ../source/key_projects.rst:164 msgid "" "Core utilities for Python packaging used by :ref:`pip` and :ref:`setuptools`." -msgstr "" +msgstr "供 :ref:`pip` 和 :ref:`setuptools` 使用的 Python 打包核心工具。" #: ../source/key_projects.rst:166 msgid "" @@ -11561,6 +12982,10 @@ msgid "" "distribution, and installation tools listed here often use its functionality " "to parse, discover, and otherwise handle dependency attributes." msgstr "" +"packaging 库中的核心工具负责为 Python 软件包处理版本处理、说明符、标记、需求" +"、标签以及类似的属性和任务。大多数 Python 用户都在间接依赖这个库,而无需显式" +"调用它;这里列出的其他 Python 打包、分发和安装工具的开发者,则经常使用它的功" +"能来解析、发现并处理依赖项属性。" #: ../source/key_projects.rst:174 msgid "" @@ -11572,11 +12997,15 @@ msgid "" "reading of ambiguous metadata in cases where :ref:`packaging` will instead " "report on error." msgstr "" +"本项目专门致力于实现 :ref:`packaging-specifications` 中定义的现代 Python 打包" +"互操作标准,并对与这些标准不兼容的、足够老旧的旧式软件包报告错误。相比之下" +",:ref:`distlib` 项目是一个更宽容的库:在 :ref:`packaging` 会转而报告错误的场" +"合,它会尝试对有歧义的元数据给出合理的解读。" #: ../source/key_projects.rst:186 #: ../source/specifications/platform-compatibility-tags.rst:147 msgid "pip" -msgstr "" +msgstr "pip" #: ../source/key_projects.rst:188 msgid "" @@ -11626,6 +13055,10 @@ msgid "" "``requirements.txt`` and also check for CVEs in `Pipfile`_ using `safety " "`_." msgstr "" +"Pipenv 是一个致力于把各种语言打包领域的精华带到 Python 世界的项目。它把 " +":ref:`Pipfile`、:ref:`pip` 和 :ref:`virtualenv` 融合为一条工具链。它可以自动" +"导入 ``requirements.txt``,还能使用 `safety `_ 来检" +"查 `Pipfile`_ 中的 CVE(安全漏洞)。" #: ../source/key_projects.rst:216 msgid "" @@ -11635,6 +13068,9 @@ msgid "" "with hash-locked dependency specifiers, and eases uninstallation of packages " "and dependencies." msgstr "" +"Pipenv 旨在帮助用户在命令行上管理环境、依赖项和导入的软件包。它在 Windows 上" +"也运行良好(其他工具往往对 Windows 支持不足),可以生成并校验文件哈希,以确保" +"符合哈希锁定的依赖项说明符,并让卸载软件包和依赖项变得更轻松。" #: ../source/key_projects.rst:225 msgid "Pipfile" @@ -11650,6 +13086,8 @@ msgid "" "application-centric alternative to :ref:`pip`'s lower-" "level :file:`requirements.txt` file." msgstr "" +":file:`Pipfile` 及其配套的 :file:`Pipfile.lock` 是 :ref:`pip` 所用的底层 " +":file:`requirements.txt` 文件的一种更以应用为中心、层次更高的替代方案。" #: ../source/key_projects.rst:236 msgid "pipx" @@ -11703,6 +13141,10 @@ msgid "" "via :ref:`twine`, as part of their release management process, to check that " "their package descriptions will properly display on PyPI." msgstr "" +"``readme_renderer`` 是一个供软件包开发者使用的库,用于把以 Markdown 或 " +"reStructuredText 等标记语言编写的用户文档(README)文件渲染成 HTML。开发者会" +"在发布管理流程中单独调用它,或通过 :ref:`twine` 来调用它,以检查软件包描述能" +"否在 PyPI 上正常显示。" #: ../source/key_projects.rst:274 msgid "Setuptools" @@ -11725,10 +13167,13 @@ msgid "" "Python :term:`distributions `, especially ones that " "have dependencies on other packages." msgstr "" +"Setuptools(包含 ``easy_install``)是一组对 Python distutils 的增强,让你能够" +"更轻松地构建和分发 Python :term:`分发包 `,尤其是那些依" +"赖其他软件包的分发包。" #: ../source/key_projects.rst:289 msgid "trove-classifiers" -msgstr "" +msgstr "trove-classifiers" #: ../source/key_projects.rst:291 msgid "" @@ -11747,6 +13192,9 @@ msgid "" "to :ref:`systematically describe their projects ` " "so that users can better find projects that match their needs on the PyPI." msgstr "" +"trove-classifiers 是 `PyPI 上的分类器 `_ 的权" +"威来源;项目维护者用它来 :ref:`系统地描述自己的项目 `,以便用户能在 PyPI 上更好地找到符合自身需求的项目。" #: ../source/key_projects.rst:300 msgid "" @@ -11760,6 +13208,12 @@ msgid "" "the project hosts discussions on proposed classifiers and requests for new " "classifiers." msgstr "" +"trove-classifiers 软件包包含有效分类器和已弃用分类器(已弃用分类器与其替代分" +"类器成对列出)的列表。请用这个软件包来校验打算上传到 PyPI 的软件包中所使用的" +"分类器。由于分类器列表以代码形式发布,你可以安装并导入它,这比查阅 `PyPI 上发" +"布的列表 `_ 更加方便。该项目的 `问题跟踪器 " +"`_ 承载着关于拟议分类器和新" +"分类器请求的讨论。" #: ../source/key_projects.rst:314 msgid "twine" @@ -11783,6 +13237,9 @@ msgid "" "because it's the official PyPI upload tool, it's fast and secure, it's " "maintained, and it reliably works." msgstr "" +"Twine 是开发者用来把软件包上传到 Python 包索引或其他 Python 包索引的主要工具" +"。它是一个命令行程序,会把程序文件和元数据传递给 web API。开发者选择它,是因" +"为它是 PyPI 的官方上传工具,快速而安全,持续有人维护,并且稳定可靠。" #: ../source/key_projects.rst:331 ../source/overview.rst:405 msgid "virtualenv" @@ -11808,6 +13265,11 @@ msgid "" "troubleshooting virtual environments. For more information, see the section " "on :ref:`Creating and using Virtual Environments`." msgstr "" +"virtualenv 是一个用于创建隔离的 Python :term:`虚拟环境 " +"` 的工具,与 :ref:`venv` 类似。与 :ref:`venv` 不同,virtualenv 可以为其他版本" +"的 Python 创建虚拟环境,并使用 PATH 环境变量来定位它们。它还提供了便于配置、" +"维护、复制和排查虚拟环境问题的功能。更多信息请参阅 :ref:`Creating and using " +"Virtual Environments` 一节。" #: ../source/key_projects.rst:350 msgid "Warehouse" @@ -11827,6 +13289,8 @@ msgid "" "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" @@ -11848,6 +13312,9 @@ msgid "" "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 分发包 `。此外,它还提供了自己的命令行实用程序,用于创建" +"和安装 wheel。" #: ../source/key_projects.rst:375 msgid "" @@ -11857,6 +13324,10 @@ msgid "" "check metadata for compliance, and repair the wheel and metadata to properly " "link and include external shared libraries in a package." msgstr "" +"另请参阅 `auditwheel `__,这是一款供软件" +"包开发者检查和修复其正在以二进制 wheel 格式构建的 Python 软件包的工具。它提供" +"的功能包括:发现依赖项、检查元数据的合规性,以及修复 wheel 和元数据,以便正确" +"地链接外部共享库并将其纳入软件包。" #: ../source/key_projects.rst:384 msgid "Non-PyPA Projects" @@ -11883,6 +13354,9 @@ msgid "" "based. It lets you create a buildout configuration and reproduce the same " "software later." msgstr "" +"Buildout 是一个基于 Python 的构建系统,用于从多个部件(其中一些部件可能并非基" +"于 Python)创建、组装和部署应用。它让你可以创建一份 buildout 配置,并在日后重" +"现同样的软件。" #: ../source/key_projects.rst:403 msgid "conda" @@ -11890,7 +13364,7 @@ msgstr "conda" #: ../source/key_projects.rst:405 msgid ":doc:`Docs `" -msgstr "" +msgstr ":doc:`文档 `" #: ../source/key_projects.rst:407 msgid "" @@ -11905,6 +13379,13 @@ msgid "" "or `pixi `_ systems. It is available for Windows, Mac and " "Linux systems." msgstr "" +"Conda 是一个适用于任何语言的软件包、依赖项和环境管理系统,支持 Python、R、" +"Ruby、C/C++、Fortran 等。它用 Python 编写,由于支持非 Python 的编译库和扩展," +"在 Python 科学计算社区中被广泛使用。它是 Anaconda, Inc. 推出的 `Anaconda " +"`__ Python 发行版的基础。它最初面向科学" +"界,但也可以单独使用,或与 :doc:`miniconda `、`miniforge " +"`_ 或 `pixi `_ 等" +"系统配合使用。它可用于 Windows、Mac 和 Linux 系统。" #: ../source/key_projects.rst:416 msgid "" @@ -11913,6 +13394,9 @@ msgid "" "virtual environment management and deployment of binary extensions and other " "binary code." msgstr "" +"Conda 是一个与 :ref:`pip`、virtualenv 和 wheel 完全独立的工具,但提供了它们多" +"项功能的组合,例如软件包管理、虚拟环境管理,以及二进制扩展和其他二进制代码的" +"部署。" #: ../source/key_projects.rst:420 msgid "" @@ -11924,6 +13408,11 @@ msgid "" "are a wide variety of packages from the community supported `conda-forge " "project `__" msgstr "" +"Conda 不会从 PyPI 安装软件包,它只能管理专门为 conda 构建的软件包,这些软件包" +"可以发布在“conda 频道”上,例如托管在 `anaconda.org `__ " +"上的频道,或本地(例如内网)软件包服务器。除了由 `Anaconda, Inc. `__ 管理的“默认”频道外,还有来自社区支持的 `conda-forge 项" +"目 `__ 的大量软件包" #: ../source/key_projects.rst:426 msgid "" @@ -11934,10 +13423,15 @@ msgid "" "latest/user-guide/tutorials/build-pkgs-skeleton.html>`__: a tool to " "automatically make conda packages from Python packages available on PyPI." msgstr "" +"注意,:ref:`pip` 可以安装到 conda 中并与 conda 并行工作,用于管理来自 PyPI " +"的 :term:`分发包 `。还可以使用 `conda skeleton " +"`__ 之类的工具,从 Python 源码软件包构建 conda 软件" +"包:这个工具可以自动用 PyPI 上可用的 Python 软件包制作 conda 软件包。" #: ../source/key_projects.rst:435 msgid "devpi" -msgstr "" +msgstr "devpi" #: ../source/key_projects.rst:437 msgid "" @@ -11956,10 +13450,14 @@ msgid "" "` with inheritance, syncing between these indexes, index " "replication and fail-over, and package upload." msgstr "" +"devpi 提供了一个强大的 PyPI 兼容服务器和 PyPI 代理缓存,并附带一个命令行工具" +",用来驱动 Python 的打包、测试和发布活动。devpi 还提供了一个可浏览、可搜索的 " +"web 界面。devpi 支持镜像 PyPI、带继承的多个 :term:`包索引 `、" +"这些索引之间的同步、索引复制与故障转移,以及软件包上传。" #: ../source/key_projects.rst:452 msgid "dumb-pypi" -msgstr "" +msgstr "dumb-pypi" #: ../source/key_projects.rst:454 msgid "" @@ -11976,6 +13474,9 @@ msgid "" "the package index. It supports serving the hash, core-metadata, and yank-" "status." msgstr "" +"dumb-pypi 是一个简单的 :term:`包索引 ` 静态文件站点生成器,生" +"成的站点随后必须由静态文件 web 服务器托管,才能成为包索引。它支持提供哈希、核" +"心元数据以及 yank 状态。" #: ../source/key_projects.rst:464 msgid "enscons" @@ -12000,10 +13501,15 @@ msgid "" "sdists that can be automatically built by :ref:`pip`, and wheels that are " "independent of enscons." msgstr "" +"Enscons 是一个基于 `SCons`_ 的 Python 打包工具。它无需使用 distutils 或 " +"setuptools 即可构建与 :ref:`pip` 兼容的源分发和 wheel,包括带有 C 扩展的分发" +"包。Enscons 的架构和理念与 :ref:`distutils` 不同:它不是给 Python 打包系统添" +"加构建功能,而是把 Python 打包加到通用构建系统之上。Enscons 帮助你构建可由 " +":ref:`pip` 自动构建的 sdist,以及不依赖 enscons 的 wheel。" #: ../source/key_projects.rst:485 msgid "Flask-Pypi-Proxy" -msgstr "" +msgstr "Flask-Pypi-Proxy" #: ../source/key_projects.rst:487 msgid "" @@ -12016,13 +13522,13 @@ msgstr "" #: ../source/key_projects.rst:491 ../source/key_projects.rst:685 #: ../source/key_projects.rst:744 msgid "Not maintained, project archived" -msgstr "" +msgstr "不再维护,项目已归档" #: ../source/key_projects.rst:493 msgid "" "Flask-Pypi-Proxy is a :term:`package index ` as a cached " "proxy for PyPI." -msgstr "" +msgstr "Flask-Pypi-Proxy 是一个作为 PyPI 缓存代理的 :term:`包索引 `。" #: ../source/key_projects.rst:499 msgid "Hashdist" @@ -12046,10 +13552,15 @@ msgid "" "distribution stateless, cached, and branchable. It is used by some " "researchers but has been lacking in maintenance since 2016." msgstr "" +"Hashdist 是一个用于构建非 root 软件分发的库。Hashdist 力图成为“Debian 技术无" +"法胜任的场景下首选的 Debian”。对 Python 开发者来说,理解 Hashdist 的最好方式" +",也许是把它看作 :ref:`virtualenv` 和 :ref:`buildout` 的一个更强大的混合体。" +"它旨在解决科学软件的安装问题,并让软件包分发变得无状态、可缓存、可分支。一些" +"研究人员在使用它,但自 2016 年起它就缺乏维护了。" #: ../source/key_projects.rst:516 msgid "Maturin" -msgstr "" +msgstr "Maturin" #: ../source/key_projects.rst:518 msgid "" @@ -12065,6 +13576,9 @@ msgid "" "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 是一个面向 Rust 扩展模块的构建后端,本身也用 Rust 编写。它支持在 " +"Windows、Linux、macOS 和 FreeBSD 上为 Python 3.7+ 构建 wheel,可以把 wheel 上" +"传到 PyPI,并对 PyPy 和 GraalPy 提供基本支持。" #: ../source/key_projects.rst:529 msgid "meson-python" @@ -12085,6 +13599,9 @@ msgid "" "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`` 是一个使用 Meson_ 构建系统的构建后端。它让 Python 软件包作者" +"能够把 Meson_ 用作其软件包的构建系统。它支持包括 C 在内的多种语言,能够满足大" +"多数复杂构建配置的需求。" #: ../source/key_projects.rst:544 msgid "multibuild" @@ -12100,24 +13617,28 @@ msgid "" "Python :term:`wheels ` for Linux, macOS, and (less flexibly) Windows. " "Also see :ref:`cibuildwheel`." msgstr "" +"Multibuild 是一组 CI 脚本,用于为 Linux、macOS 以及(灵活性稍逊的)Windows 构" +"建和测试 Python :term:`wheel `。另请参阅 :ref:`cibuildwheel`。" #: ../source/key_projects.rst:554 msgid "nginx_pypi_cache" -msgstr "" +msgstr "nginx_pypi_cache" #: ../source/key_projects.rst:556 msgid ":gh:`GitHub `" -msgstr "" +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 是一个使用 `nginx `_ 的 :term:`包索" +"引 ` 缓存代理。" #: ../source/key_projects.rst:564 msgid "pdm" -msgstr "" +msgstr "pdm" #: ../source/key_projects.rst:566 msgid "" @@ -12132,6 +13653,8 @@ 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` 来存储 " +":pep:`621` 所定义的项目元数据。" #: ../source/key_projects.rst:578 msgid "" @@ -12152,6 +13675,12 @@ msgid "" "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)的工具,这类文件是类" +"似 :ref:`virtualenv` 的独立 Python 环境。PEX 文件是 :doc:`zipapp " +"`,让部署 Python 应用像 ``cp`` 一样简单。单个 PEX 文件" +"可以支持多个目标平台,并且可以由标准的 :ref:`pip` 可解析需求、用 ``pex3 lock " +"...`` 生成的锁文件甚至另一个 PEX 创建而成。PEX 文件还可以选择内嵌一些工具,支" +"持把 PEX 文件转换成标准的 venv、绘制依赖关系图等。" #: ../source/key_projects.rst:594 msgid "pip-tools" @@ -12177,10 +13706,14 @@ msgid "" "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 是一套面向 Python 系统管理员和发布管理者的工具,他们尤其希望构建保" +"持确定性,同时又能跟上依赖项的新版本。用户可以通过哈希来指定依赖项的特定版本" +",可以根据程序其他部分的信息方便地生成格式正确的需求列表,可以更新所有依赖项" +"(这是 :ref:`pip` 目前尚未提供的功能),还可以为程序创建多层约束。" #: ../source/key_projects.rst:612 msgid "pip2pi" -msgstr "" +msgstr "pip2pi" #: ../source/key_projects.rst:614 msgid "" @@ -12193,6 +13726,8 @@ msgid "" "pip2pi is a :term:`package index ` server where specific " "packages are manually synchronised." msgstr "" +"pip2pi 是一个 :term:`包索引 ` 服务器,其中特定的软件包通过手动" +"方式同步。" #: ../source/key_projects.rst:623 msgid "piwheels" @@ -12213,6 +13748,9 @@ msgid "" "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 是一个网站(以及支撑它的软件),它从 PyPI 获取源分发,并将其编译成针" +"对树莓派(Raspberry Pi)计算机安装而优化的二进制 wheel。Raspberry Pi OS 预先" +"将 pip 配置为在使用 PyPI 的同时把 piwheels.org 用作附加索引。" #: ../source/key_projects.rst:638 msgid "poetry" @@ -12242,7 +13780,7 @@ msgstr "" #: ../source/key_projects.rst:654 msgid "proxpi" -msgstr "" +msgstr "proxpi" #: ../source/key_projects.rst:656 msgid "" @@ -12255,6 +13793,8 @@ msgid "" "proxpi is a simple :term:`package index ` which proxies PyPI " "and other indexes with caching." msgstr "" +"proxpi 是一个简单的 :term:`包索引 `,会代理 PyPI 和其他索引并" +"提供缓存。" #: ../source/key_projects.rst:665 msgid "Pulp-python" @@ -12274,10 +13814,13 @@ msgid "" "`Pulp `_. Pulp-python supports mirrors backed by " "local or `AWS S3`_, package upload, and proxying to multiple package indexes." msgstr "" +"Pulp-python 是 `Pulp `_ 的 Python :term:`包索引 " +"` 插件。Pulp-python 支持由本地存储或 `AWS S3`_ 支撑的镜像、软" +"件包上传,以及向多个包索引的代理。" #: ../source/key_projects.rst:679 msgid "PyPI Cloud" -msgstr "" +msgstr "PyPI Cloud" #: ../source/key_projects.rst:681 msgid "" @@ -12294,6 +13837,9 @@ msgid "" "redirect/cached proxying for PyPI, as well as authentication and " "authorisation." msgstr "" +"PyPI Cloud 是一个 :term:`包索引 ` 服务器,后端可以是 `AWS " +"S3`_ 或其他云存储服务,也可以是本地文件。PyPI Cloud 支持 PyPI 的重定向/缓存代" +"理,还支持身份验证和授权。" #: ../source/key_projects.rst:695 msgid "pypiprivate" @@ -12312,6 +13858,8 @@ msgid "" "pypiprivate serves a local (or `AWS S3`_-hosted) directory of packages as " "a :term:`package index `." msgstr "" +"pypiprivate 把本地(或托管在 `AWS S3`_ 上的)软件包目录作为 :term:`包索引 " +"` 提供服务。" #: ../source/key_projects.rst:706 msgid "pypiserver" @@ -12343,7 +13891,7 @@ msgstr "" #: ../source/key_projects.rst:722 msgid "PyScaffold" -msgstr "" +msgstr "PyScaffold" #: ../source/key_projects.rst:724 msgid "" @@ -12362,10 +13910,15 @@ msgid "" "environment so developers can start coding right away. PyScaffold can also " "be used with existing projects to make packaging easier." msgstr "" +"PyScaffold 是一个用于引导创建 Python 软件包的项目生成器,生成的软件包可以直接" +"分享到 PyPI,并可通过 :ref:`pip` 安装。它依赖一组为成熟工具(如 " +":ref:`setuptools`、pytest_ 和 Sphinx_)设定的合理默认配置,从而提供一个高效的" +"环境,让开发者可以立即开始编码。PyScaffold 也可以用于现有项目,让打包变得更轻" +"松。" #: ../source/key_projects.rst:739 msgid "pywharf" -msgstr "" +msgstr "pywharf" #: ../source/key_projects.rst:741 msgid "" @@ -12378,6 +13931,8 @@ msgid "" "pywharf is a :term:`package index ` server, serving files " "locally or from `GitHub `_." msgstr "" +"pywharf 是一个 :term:`包索引 ` 服务器,可以在本地或从 `GitHub " +"`_ 提供文件服务。" #: ../source/key_projects.rst:752 msgid "scikit-build" @@ -12403,6 +13958,11 @@ msgid "" "large projects, the user can install `ninja `__ (also available on PyPI)." msgstr "" +"Scikit-build 是一个面向 CPython 的 :ref:`setuptools` 包装器,用于构建 C/C++/" +"Fortran/Cython 扩展。它使用可从 PyPI 获取的 `cmake `__,为额外的编译器、构建系统、交叉编译,以及定位依赖项及其相关构建需求" +"提供更好的支持。为了加速和并行构建大型项目,用户可以安装同样可从 PyPI 获取的 " +"`ninja `__。" #: ../source/key_projects.rst:769 msgid "scikit-build-core" @@ -12427,6 +13987,10 @@ msgid "" "dependencies and their associated build requirements. CMake/Ninja are " "automatically downloaded from PyPI if not available on the system." msgstr "" +"Scikit-build-core 是一个面向 CPython C/C++/Fortran/Cython 扩展的构建后端。它" +"让用户能够使用可从 PyPI 获取的 `cmake `__ 来" +"编写扩展,为额外的编译器、构建系统、交叉编译,以及定位依赖项及其相关构建需求" +"提供更好的支持。如果系统上没有 CMake/Ninja,就会自动从 PyPI 下载。" #: ../source/key_projects.rst:785 msgid "shiv" @@ -12447,10 +14011,13 @@ msgid "" "Its primary goal is making distributing Python applications and command line " "tools fast & easy." msgstr "" +"shiv 是一个命令行实用程序,用于按照 :pep:`441` 构建完全自包含的 Python zipapp" +",而且会将其全部依赖项一并包含在内。它的首要目标是让分发 Python 应用和命令行" +"工具变得快速而简单。" #: ../source/key_projects.rst:799 msgid "simpleindex" -msgstr "" +msgstr "simpleindex" #: ../source/key_projects.rst:801 msgid "" @@ -12467,6 +14034,9 @@ msgid "" "for example `AWS S3`_, with a custom plugin) directories of packages, and " "supports custom plugins." msgstr "" +"simpleindex 是一个 :term:`包索引 `,它把 URL 路由到多个包索引" +"(包括 PyPI),提供本地(或云端托管,例如 `AWS S3`_,需配合自定义插件)的软件" +"包目录服务,并支持自定义插件。" #: ../source/key_projects.rst:814 msgid "" @@ -12475,6 +14045,10 @@ msgid "" "2015/2807623/12OmNBf94Xq>`__ | `Slides `__" msgstr "" +":doc:`文档 ` | `GitHub `__ | `论" +"文 `__ | `幻灯片 `__" #: ../source/key_projects.rst:819 msgid "" @@ -12486,6 +14060,10 @@ msgid "" "building high performance scientific applications on clusters and " "supercomputers." msgstr "" +"一个灵活的软件包管理器,旨在支持多种版本、配置、平台和编译器。Spack 类似于 " +"Homebrew,但它的软件包是用 Python 编写并做了参数化的,便于轻松更换编译器、库" +"版本、构建选项等。任意多个版本的软件包可以在同一系统上共存。Spack 为在集群和" +"超级计算机上快速构建高性能科学应用而设计。" #: ../source/key_projects.rst:827 msgid "" @@ -12496,7 +14074,7 @@ msgstr "" #: ../source/key_projects.rst:833 msgid "uv" -msgstr "" +msgstr "uv" #: ../source/key_projects.rst:835 msgid "" @@ -12512,6 +14090,8 @@ msgid "" "It supports creating and managing virtual environments, installing packages, " "locking dependencies, and managing Python versions and projects." msgstr "" +"一个用 Rust 编写、追求高性能的 Python 软件包和项目管理器。它支持创建和管理虚" +"拟环境、安装软件包、锁定依赖项,以及管理 Python 版本和项目。" #: ../source/key_projects.rst:846 msgid "zest.releaser" @@ -12534,10 +14114,13 @@ msgid "" "automate incrementing package version numbers, updating changelogs, tagging " "releases in source control, and uploading new packages to PyPI." msgstr "" +"``zest.releaser`` 是一个 Python 软件包发布工具,在 :ref:`twine` 之上提供了一" +"个抽象层。Python 开发者使用 ``zest.releaser`` 来自动完成递增软件包版本号、更" +"新变更日志、在源码管理系统中为发布打标签,以及把新软件包上传到 PyPI 等工作。" #: ../source/key_projects.rst:859 msgid "Standard Library Projects" -msgstr "" +msgstr "标准库项目" #: ../source/key_projects.rst:864 msgid "ensurepip" @@ -12558,6 +14141,9 @@ msgid "" "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 "" +"Python 标准库中的一个软件包,为把 :ref:`pip` 引导安装到现有的 Python 安装或虚" +"拟环境中提供支持。在大多数情况下,最终用户不会使用这个模块,而是在构建 " +"Python 发行版时使用它。" #: ../source/key_projects.rst:877 msgid "http.server" @@ -12576,6 +14162,8 @@ msgid "" "website, for example as a :term:`package index ` " "(see :ref:`Hosting your Own Simple Repository`)." msgstr "" +"一个软件包和命令行接口,可以把某个目录作为网站来托管,例如作为 :term:`包索引 " +"`,参见 :ref:`Hosting your Own Simple Repository`。" #: ../source/key_projects.rst:889 msgid "venv" @@ -12596,6 +14184,9 @@ msgid "" "information, see the section on :ref:`Creating and using Virtual " "Environments`." msgstr "" +"Python 标准库中的一个软件包(自 Python 3.3 起提供),用于创建 :term:`虚拟环" +"境 `。更多信息请参阅 :ref:`Creating and using Virtual " +"Environments` 一节。" #: ../source/news.rst:2 msgid "News" @@ -12605,7 +14196,7 @@ msgstr "新闻" msgid "" "This document is not currently updated. Previously, the document highlighted " "changes in Python packaging." -msgstr "" +msgstr "本文档目前已不再更新。此前,该文档重点介绍 Python 打包方面的变更。" #: ../source/news.rst:9 msgid "September 2019" @@ -12613,337 +14204,337 @@ msgstr "2019年9月" #: ../source/news.rst:10 msgid "Added a guide about publishing dists via GitHub Actions. (:pr:`647`)" -msgstr "" +msgstr "新增了关于通过 GitHub Actions 发布分发包的指南。(:pr:`647`)" #: ../source/news.rst:13 msgid "August 2019" -msgstr "" +msgstr "2019年8月" #: ../source/news.rst:14 msgid "Updated to use :file:`python3 -m` when installing pipx. (:pr:`631`)" -msgstr "" +msgstr "更新为在安装 pipx 时使用 :file:`python3 -m`。(:pr:`631`)" #: ../source/news.rst:17 msgid "July 2019" -msgstr "" +msgstr "2019年7月" #: ../source/news.rst:18 msgid "Marked all PEP numbers with the :pep: role. (:pr:`629`)" -msgstr "" +msgstr "用 :pep: 角色标记了所有 PEP 编号。(:pr:`629`)" #: ../source/news.rst:19 msgid "Upgraded Sphinx version and removed pypa.io intersphinx. (:pr:`625`)" -msgstr "" +msgstr "升级了 Sphinx 版本,并移除了 pypa.io 的 intersphinx 配置。(:pr:`625`)" #: ../source/news.rst:20 msgid "Mentioned :file:`find_namespace_packages`. (:pr:`622`)" -msgstr "" +msgstr "提到了 :file:`find_namespace_packages`。(:pr:`622`)" #: ../source/news.rst:21 msgid "Updated directory layout examples for consistency. (:pr:`611`)" -msgstr "" +msgstr "为保持一致,更新了目录布局示例。(:pr:`611`)" #: ../source/news.rst:22 msgid "Updated Bandersnatch link to GitHub. (:pr:`623`)" -msgstr "" +msgstr "将 Bandersnatch 链接更新为指向 GitHub。(:pr:`623`)" #: ../source/news.rst:25 msgid "June 2019" -msgstr "" +msgstr "2019年6月" #: ../source/news.rst:26 msgid "Fixed some typos. (:pr:`620`)" -msgstr "" +msgstr "修正了一些拼写错误。(:pr:`620`)" #: ../source/news.rst:29 msgid "May 2019" -msgstr "" +msgstr "2019年5月" #: ../source/news.rst:30 msgid "Added :file:`python_requires` usage to packaging tutorial. (:pr:`613`)" -msgstr "" +msgstr "在打包教程中添加了 :file:`python_requires` 的用法。(:pr:`613`)" #: ../source/news.rst:31 msgid "Added a MANIFEST.in guide page. (:pr:`609`)" -msgstr "" +msgstr "新增了 MANIFEST.in 指南页面。(:pr:`609`)" #: ../source/news.rst:34 msgid "April 2019" -msgstr "" +msgstr "2019年4月" #: ../source/news.rst:35 msgid "" "Added a mention for :file:`shiv` in the key projects section. (:pr:`608`)" -msgstr "" +msgstr "在关键项目部分添加了对 :file:`shiv` 的提及。(:pr:`608`)" #: ../source/news.rst:36 msgid "Reduced emphasis on virtualenv. (:pr:`606`)" -msgstr "" +msgstr "降低了对 virtualenv 的强调程度。(:pr:`606`)" #: ../source/news.rst:39 msgid "March 2019" -msgstr "" +msgstr "2019年3月" #: ../source/news.rst:40 msgid "Moved single-sourcing guide version option to Python 3. (:pr:`605`)" -msgstr "" +msgstr "将单一来源指南中的版本选项改为 Python 3。(:pr:`605`)" #: ../source/news.rst:41 msgid "Covered RTD details for contributing. (:pr:`600`)" -msgstr "" +msgstr "在贡献指南中补充了 RTD 的相关细节。(:pr:`600`)" #: ../source/news.rst:44 msgid "February 2019" -msgstr "" +msgstr "2019年2月" #: ../source/news.rst:45 msgid "" "Elaborate upon the differences between the tutorial and the real packaging " "process. (:pr:`602`)" -msgstr "" +msgstr "详细阐述了教程与真实打包流程之间的差异。(:pr:`602`)" #: ../source/news.rst:46 msgid "Added instructions to install Python CLI applications. (:pr:`594`)" -msgstr "" +msgstr "添加了安装 Python CLI 应用程序的说明。(:pr:`594`)" #: ../source/news.rst:49 msgid "January 2019" -msgstr "" +msgstr "2019年1月" #: ../source/news.rst:50 msgid "Added :file:`--no-deps` to the packaging tutorial. (:pr:`593`)" -msgstr "" +msgstr "在打包教程中添加了 :file:`--no-deps`。(:pr:`593`)" #: ../source/news.rst:51 msgid "Updated Sphinx and Nox. (:pr:`591`)" -msgstr "" +msgstr "更新了 Sphinx 和 Nox。(:pr:`591`)" #: ../source/news.rst:52 msgid "Referenced Twine from Python3. (:pr:`581`)" -msgstr "" +msgstr "从 Python 3 引用了 Twine。(:pr:`581`)" #: ../source/news.rst:55 msgid "December 2018" -msgstr "" +msgstr "2018年12月" #: ../source/news.rst:56 msgid "No programmers in the office!" -msgstr "" +msgstr "办公室里没有程序员!" #: ../source/news.rst:59 msgid "November 2018" -msgstr "" +msgstr "2018年11月" #: ../source/news.rst:60 msgid "Removed landing page link to PyPI migration guide. (:pr:`575`)" -msgstr "" +msgstr "移除了首页上指向 PyPI 迁移指南的链接。(:pr:`575`)" #: ../source/news.rst:61 msgid "Changed bumpversion to bump2version. (:pr:`572`)" -msgstr "" +msgstr "将 bumpversion 改为 bump2version。(:pr:`572`)" #: ../source/news.rst:62 msgid "Added single-sourcing package version example. (:pr:`573`)" -msgstr "" +msgstr "添加了单一来源软件包版本的示例。(:pr:`573`)" #: ../source/news.rst:63 msgid "Added a guide for creating documentation. (:pr:`568`)" -msgstr "" +msgstr "新增了关于创建文档的指南。(:pr:`568`)" #: ../source/news.rst:66 msgid "October 2018" -msgstr "" +msgstr "2018年10月" #: ../source/news.rst:67 msgid "Updated Nox package name. (:pr:`566`)" -msgstr "" +msgstr "更新了 Nox 的软件包名称。(:pr:`566`)" #: ../source/news.rst:68 msgid "Mentioned Sphinx extensions in guides. (:pr:`562`)" -msgstr "" +msgstr "在指南中提到了 Sphinx 扩展。(:pr:`562`)" #: ../source/news.rst:71 msgid "September 2018" -msgstr "" +msgstr "2018年9月" #: ../source/news.rst:72 msgid "Added a section on checking RST markup. (:pr:`554`)" -msgstr "" +msgstr "添加了关于检查 RST 标记的小节。(:pr:`554`)" #: ../source/news.rst:73 msgid "Updated user installs page. (:pr:`558`)" -msgstr "" +msgstr "更新了用户安装页面。(:pr:`558`)" #: ../source/news.rst:74 msgid "Updated Google BigQuery urls. (:pr:`556`)" -msgstr "" +msgstr "更新了 Google BigQuery 的 URL。(:pr:`556`)" #: ../source/news.rst:75 msgid "Replaced tar command with working command. (:pr:`552`)" -msgstr "" +msgstr "将 tar 命令替换为可用的命令。(:pr:`552`)" #: ../source/news.rst:76 msgid "" "Changed to double quotes in the pip install SomeProject==1.4. (:pr:`550`)" -msgstr "" +msgstr "在 pip install SomeProject==1.4 中改用了双引号。(:pr:`550`)" #: ../source/news.rst:79 msgid "August 2018" -msgstr "" +msgstr "2018年8月" #: ../source/news.rst:80 msgid "Removed the recommendation to store passwords in cleartext. (:pr:`546`)" -msgstr "" +msgstr "移除了以明文形式存储密码的建议。(:pr:`546`)" #: ../source/news.rst:81 msgid "" "Moved the Overview to a task based lead in along with the others. (:pr:`540`)" -msgstr "" +msgstr "与其他页面一样,将“总览”改为基于任务的导语。(:pr:`540`)" #: ../source/news.rst:82 msgid "Updated Python version supported by virtualenv. (:pr:`538`)" -msgstr "" +msgstr "更新了 virtualenv 所支持的 Python 版本。(:pr:`538`)" #: ../source/news.rst:83 msgid "Added outline/rough draft of new Overview page. (:pr:`519`)" -msgstr "" +msgstr "添加了新“总览”页面的提纲/草稿。(:pr:`519`)" #: ../source/news.rst:86 msgid "July 2018" -msgstr "" +msgstr "2018年7月" #: ../source/news.rst:88 msgid "Improved binary extension docs. (:pr:`531`)" -msgstr "" +msgstr "改进了二进制扩展相关的文档。(:pr:`531`)" #: ../source/news.rst:89 msgid "Added scikit-build to key projects. (:pr:`530`)" -msgstr "" +msgstr "将 scikit-build 添加到了关键项目中。(:pr:`530`)" #: ../source/news.rst:92 msgid "June 2018" -msgstr "" +msgstr "2018年6月" #: ../source/news.rst:94 msgid "Fixed categories of interop PEP for pypa.io. (:pr:`527`)" -msgstr "" +msgstr "修正了 pypa.io 上互操作性 PEP 的分类。(:pr:`527`)" #: ../source/news.rst:95 msgid "Updated Markdown descriptions explanation. (:pr:`522`)" -msgstr "" +msgstr "更新了关于 Markdown 描述的说明。(:pr:`522`)" #: ../source/news.rst:98 msgid "May 2018" -msgstr "" +msgstr "2018年5月" #: ../source/news.rst:100 msgid "Noted issues with Provides-Dist and Obsoletes-Dist. (:pr:`513`)" -msgstr "" +msgstr "指出了 Provides-Dist 和 Obsoletes-Dist 存在的问题。(:pr:`513`)" #: ../source/news.rst:101 msgid "" "Removed outdated warning about Python version mixing with Pipenv. (:pr:`501`)" -msgstr "" +msgstr "移除了关于在 Pipenv 中混用 Python 版本的过时警告。(:pr:`501`)" #: ../source/news.rst:102 msgid "Simplified packaging tutorial. (:pr:`498`)" -msgstr "" +msgstr "简化了打包教程。(:pr:`498`)" #: ../source/news.rst:103 msgid "Updated Windows users instructions for clarity. (:pr:`493`)" -msgstr "" +msgstr "为使表述更清晰,更新了面向 Windows 用户的说明。(:pr:`493`)" #: ../source/news.rst:104 msgid "Updated the license section description for completeness. (:pr:`492`)" -msgstr "" +msgstr "更新了许可部分的描述,使之更加完整。(:pr:`492`)" #: ../source/news.rst:105 msgid "Added specification-style document to contributing section. (:pr:`489`)" -msgstr "" +msgstr "在贡献章节中添加了规范风格的文档。(:pr:`489`)" #: ../source/news.rst:106 msgid "Added documentation types to contributing guide. (:pr:`485`)" -msgstr "" +msgstr "在贡献指南中添加了文档类型说明。(:pr:`485`)" #: ../source/news.rst:109 msgid "April 2018" -msgstr "" +msgstr "2018年4月" #: ../source/news.rst:111 msgid "Added README guide. (:pr:`461`)" -msgstr "" +msgstr "添加了 README 指南。(:pr:`461`)" #: ../source/news.rst:112 msgid "Updated instructions and status for PyPI launch. (:pr:`475`)" -msgstr "" +msgstr "更新了 PyPI 上线的相关说明与状态。(:pr:`475`)" #: ../source/news.rst:113 msgid "Added instructions for Warehouse. (:pr:`471`)" -msgstr "" +msgstr "添加了关于 Warehouse 的说明。(:pr:`471`)" #: ../source/news.rst:114 msgid "Removed GPG references from publishing tutorial. (:pr:`466`)" -msgstr "" +msgstr "从发布教程中移除了 GPG 的相关引用。(:pr:`466`)" #: ../source/news.rst:115 msgid "Added 'What’s in which Python 3.4–3.6?'. (:pr:`468`)" -msgstr "" +msgstr "添加了《What’s in which Python 3.4–3.6?》一文。(:pr:`468`)" #: ../source/news.rst:116 msgid "Added a guide for phasing out Python versions. (:pr:`459`)" -msgstr "" +msgstr "添加了关于逐步淘汰旧版 Python 的指南。(:pr:`459`)" #: ../source/news.rst:117 msgid "Made default Description-Content-Type variant GFM. (:pr:`462`)" -msgstr "" +msgstr "将 Description-Content-Type 的默认变体改为 GFM。(:pr:`462`)" #: ../source/news.rst:120 msgid "March 2018" -msgstr "" +msgstr "2018年3月" #: ../source/news.rst:122 msgid "Updated \"installing scientific packages\". (:pr:`455`)" -msgstr "" +msgstr "更新了《安装科学计算软件包》的相关内容。(:pr:`455`)" #: ../source/news.rst:123 msgid "" "Added :file:`long_description_content_type` to follow PEP 556. (:pr:`457`)" -msgstr "" +msgstr "为遵循 PEP 556 添加了 :file:`long_description_content_type`。(:pr:`457`)" #: ../source/news.rst:124 msgid "Clarified a long description classifier on pypi.org. (:pr:`456`)" -msgstr "" +msgstr "澄清了 pypi.org 上关于长描述(long description)分类器的表述。(:pr:`456`)" #: ../source/news.rst:125 msgid "Updated Core Metadata spec to follow PEP 556. (:pr:`412`)" -msgstr "" +msgstr "更新了核心元数据规范以遵循 PEP 556。(:pr:`412`)" #: ../source/news.rst:128 msgid "February 2018" -msgstr "" +msgstr "2018年2月" #: ../source/news.rst:130 msgid "" "Added python3-venv and python3-pip to Debian installation instructions. " "(:pr:`445`)" -msgstr "" +msgstr "在 Debian 安装说明中添加了 python3-venv 和 python3-pip。(:pr:`445`)" #: ../source/news.rst:131 msgid "Updated PyPI migration info. (:pr:`439`)" -msgstr "" +msgstr "更新了 PyPI 迁移信息。(:pr:`439`)" #: ../source/news.rst:132 msgid "" "Added a warning about managing multiple versions with pipenv. (:pr:`430`)" -msgstr "" +msgstr "添加了关于使用 pipenv 管理多个版本的警告。(:pr:`430`)" #: ../source/news.rst:133 msgid "Added example of multiple emails to Core Metadata. (:pr:`429`)" -msgstr "" +msgstr "为核心元数据规范添加了多个电子邮箱地址的示例。(:pr:`429`)" #: ../source/news.rst:134 msgid "Added explanation of \"legacy\" in test.pypi.org/legacy. (:pr:`426`)" -msgstr "" +msgstr "添加了对 test.pypi.org/legacy 中“legacy”一词的解释。(:pr:`426`)" #: ../source/news.rst:137 msgid "January 2018" @@ -12964,268 +14555,272 @@ msgstr "2017年12月" #: ../source/news.rst:145 msgid "" "Replaced :file:`~` with :file:`$HOME` in guides and tutorials. (:pr:`418`)" -msgstr "" +msgstr "在指南和教程中将 :file:`~` 替换为 :file:`$HOME`。(:pr:`418`)" #: ../source/news.rst:146 msgid "Noted which fields can be used with environment markers. (:pr:`416`)" -msgstr "" +msgstr "注明了哪些字段可用于环境标记(environment markers)。(:pr:`416`)" #: ../source/news.rst:147 msgid "Updated Requires-Python section. (:pr:`414`)" -msgstr "" +msgstr "更新了 Requires-Python 部分。(:pr:`414`)" #: ../source/news.rst:148 msgid "Added news page. (:pr:`404`)" -msgstr "" +msgstr "添加了新闻页面。(:pr:`404`)" #: ../source/news.rst:151 msgid "November 2017" -msgstr "" +msgstr "2017年11月" #: ../source/news.rst:153 msgid "" "Introduced a new dependency management tutorial based on Pipenv. (:pr:`402`)" -msgstr "" +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 "" +msgstr "更新了 *单一来源软件包版本* 教程,以反映 pip 当前的策略。(:pr:`400`)" #: ../source/news.rst:156 msgid "" "Added documentation about the ``py_modules`` argument to ``setup``. " "(:pr:`398`)" -msgstr "" +msgstr "添加了关于 ``setup`` 的 ``py_modules`` 参数的文档。(:pr:`398`)" #: ../source/news.rst:157 msgid "Simplified the wording for the :file:`manifest.in` section. (:pr:`395`)" -msgstr "" +msgstr "简化了 :file:`manifest.in` 部分的措辞。(:pr:`395`)" #: ../source/news.rst:160 msgid "October 2017" -msgstr "" +msgstr "2017年10月" #: ../source/news.rst:162 msgid "" "Added a specification for the :file:`entry_points.txt` file. (:pr:`398`)" -msgstr "" +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 "" +msgstr "创建了使用 ``pip`` 和 ``virtualenv`` 管理软件包的新指南。(:pr:`385`)" #: ../source/news.rst:164 msgid "Split the specifications page into multiple pages. (:pr:`386`)" -msgstr "" +msgstr "将规范页面拆分为多个页面。(:pr:`386`)" #: ../source/news.rst:167 msgid "September 2017" -msgstr "" +msgstr "2017年9月" #: ../source/news.rst:169 msgid "" "Encouraged using ``readme_renderer`` to validate :file:`README.rst`. " "(:pr:`379`)" -msgstr "" +msgstr "鼓励使用 ``readme_renderer`` 来校验 :file:`README.rst`。(:pr:`379`)" #: ../source/news.rst:171 msgid "Recommended using the ``--user-base`` option. (:pr:`374`)" -msgstr "" +msgstr "推荐使用 ``--user-base`` 选项。(:pr:`374`)" #: ../source/news.rst:174 msgid "August 2017" -msgstr "" +msgstr "2017年8月" #: ../source/news.rst:176 msgid "" "Added a new, experimental tutorial on installing packages using ``Pipenv``. " "(:pr:`369`)" -msgstr "" +msgstr "添加了一篇使用 ``Pipenv`` 安装软件包的实验性新教程。(:pr:`369`)" #: ../source/news.rst:177 msgid "Added a new guide on how to use ``TestPyPI``. (:pr:`366`)" -msgstr "" +msgstr "添加了关于如何使用 ``TestPyPI`` 的新指南。(:pr:`366`)" #: ../source/news.rst:178 msgid "Added :file:`pypi.org` as a term. (:pr:`365`)" -msgstr "" +msgstr "将 :file:`pypi.org` 添加为术语。(:pr:`365`)" #: ../source/news.rst:181 msgid "July 2017" -msgstr "" +msgstr "2017年7月" #: ../source/news.rst:183 msgid "Added ``flit`` to the key projects list. (:pr:`358`)" -msgstr "" +msgstr "将 ``flit`` 添加到关键项目列表中。(:pr:`358`)" #: ../source/news.rst:184 msgid "Added ``enscons`` to the list of key projects. (:pr:`357`)" -msgstr "" +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 "" +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 "" +"使新的 ``TestPyPI`` URL 更加醒目,并在主页上添加了关于 pypi.org 的说明。" +"(:pr:`354`)" #: ../source/news.rst:187 msgid "" "Added a note about the removal of the explicit registration API. (:pr:`347`)" -msgstr "" +msgstr "添加了关于移除显式注册 API 的说明。(:pr:`347`)" #: ../source/news.rst:190 msgid "June 2017" -msgstr "" +msgstr "2017年6月" #: ../source/news.rst:192 msgid "Added a document on migrating uploads to :file:`PyPI.org`. (:pr:`339`)" -msgstr "" +msgstr "添加了关于将上传内容迁移到 :file:`PyPI.org` 的文档。(:pr:`339`)" #: ../source/news.rst:193 msgid "Added documentation for ``python_requires``. (:pr:`338`)" -msgstr "" +msgstr "添加了 ``python_requires`` 的相关文档。(:pr:`338`)" #: ../source/news.rst:194 msgid "" "Added a note about PyPI migration in the *Tool Recommendations* tutorial. " "(:pr:`335`)" -msgstr "" +msgstr "在 *工具推荐* 教程中添加了关于 PyPI 迁移的说明。(:pr:`335`)" #: ../source/news.rst:195 msgid "" "Added a note that :file:`manifest.in` does not affect wheels. (:pr:`332`)" -msgstr "" +msgstr "添加了 :file:`manifest.in` 不影响 wheel 包的说明。(:pr:`332`)" #: ../source/news.rst:196 msgid "Added a license section to the distributing guide. (:pr:`331`)" -msgstr "" +msgstr "在分发指南中添加了许可部分。(:pr:`331`)" #: ../source/news.rst:197 msgid "Expanded the section on the ``name`` argument. (:pr:`329`)" -msgstr "" +msgstr "扩充了有关 ``name`` 参数的部分。(:pr:`329`)" #: ../source/news.rst:198 msgid "Adjusted the landing page. (:pr:`327`, :pr:`326`, :pr:`324`)" -msgstr "" +msgstr "调整了主页。(:pr:`327`、:pr:`326`、:pr:`324`)" #: ../source/news.rst:199 msgid "Updated to Sphinx 1.6.2. (:pr:`323`)" -msgstr "" +msgstr "更新到 Sphinx 1.6.2。(:pr:`323`)" #: ../source/news.rst:200 msgid "Switched to the PyPA theme. (:pr:`305`)" -msgstr "" +msgstr "切换到 PyPA 主题。(:pr:`305`)" #: ../source/news.rst:201 msgid "Re-organized the documentation into the new structure. (:pr:`318`)" -msgstr "" +msgstr "将文档重组为新的结构。(:pr:`318`)" #: ../source/news.rst:204 msgid "May 2017" -msgstr "" +msgstr "2017年5月" #: ../source/news.rst:206 msgid "" "Added documentation for the ``Description-Content-Type`` field. (:pr:`258`)" -msgstr "" +msgstr "为 ``Description-Content-Type`` 字段添加了文档。(:pr:`258`)" #: ../source/news.rst:207 msgid "Added contributor and style guide. (:pr:`307`)" -msgstr "" +msgstr "添加了贡献者指南和风格指南。(:pr:`307`)" #: ../source/news.rst:208 msgid "" "Documented ``pip`` and ``easy_install``'s differences for per-project " "indexes. (:pr:`233`)" -msgstr "" +msgstr "记录了 ``pip`` 和 ``easy_install`` 在项目专属索引方面的差异。(:pr:`233`)" #: ../source/news.rst:211 msgid "April 2017" -msgstr "" +msgstr "2017年4月" #: ../source/news.rst:213 msgid "Added travis configuration for testing pull requests. (:pr:`300`)" -msgstr "" +msgstr "添加了用于测试拉取请求的 travis 配置。(:pr:`300`)" #: ../source/news.rst:214 msgid "" "Mentioned the requirement of the ``wheel`` package for creating wheels " "(:pr:`299`)" -msgstr "" +msgstr "提到了创建 wheel 包需要 ``wheel`` 软件包的要求 (:pr:`299`)" #: ../source/news.rst:215 msgid "" "Removed the ``twine register`` reference in the *Distributing Packages* " "tutorial. (:pr:`271`)" -msgstr "" +msgstr "移除了 *分发软件包* 教程中对 ``twine register`` 的引用。(:pr:`271`)" #: ../source/news.rst:216 msgid "Added a topic on plugin discovery. (:pr:`294`, :pr:`296`)" -msgstr "" +msgstr "添加了关于插件发现的主题。(:pr:`294`, :pr:`296`)" #: ../source/news.rst:217 msgid "Added a topic on namespace packages. (:pr:`290`)" -msgstr "" +msgstr "添加了关于命名空间包的主题。(:pr:`290`)" #: ../source/news.rst:218 msgid "" "Added documentation explaining prominently how to install ``pip`` in ``/usr/" "local``. (:pr:`230`)" -msgstr "" +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 "" +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 "" +msgstr "交换了 upload 命令的 :file:`setup.py` 参数顺序,因为顺序很重要。(:pr:`260`)" #: ../source/news.rst:223 msgid "" "Explained how to install from unsupported sources using a helper " "application. (:pr:`289`)" -msgstr "" +msgstr "解释了如何使用辅助应用程序从不支持的源进行安装。(:pr:`289`)" #: ../source/news.rst:227 msgid "March 2017" -msgstr "" +msgstr "2017年3月" #: ../source/news.rst:229 msgid "Covered ``manylinux1`` in *Platform Wheels*. (:pr:`283`)" -msgstr "" +msgstr "在 *平台 wheel* 中介绍了 ``manylinux1``。(:pr:`283`)" #: ../source/news.rst:232 msgid "February 2017" -msgstr "" +msgstr "2017年2月" #: ../source/news.rst:234 msgid "Added :pep:`518`. (:pr:`281`)" -msgstr "" +msgstr "添加了 :pep:`518`。(:pr:`281`)" #: ../source/overview.rst:3 msgid "Overview of Python Packaging" -msgstr "" +msgstr "Python 打包概述" #: ../source/overview.rst:7 msgid "" @@ -13233,6 +14828,8 @@ msgid "" "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 "" @@ -13242,6 +14839,9 @@ msgid "" "before writing code, but this process does wonders for avoiding future " "headaches." msgstr "" +"Python 的这种灵活性意味着,每个 Python 项目的第一步都必须是思考项目的受众,以" +"及项目将要运行的相应环境。在编写代码之前先考虑打包,这看起来可能有些奇怪,但" +"这一过程对避免日后的麻烦大有奇效。" #: ../source/overview.rst:18 msgid "" @@ -13249,16 +14849,20 @@ msgid "" "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 "" +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 "" +"软件包存在的目的就是被安装(或 *部署*),因此在打包任何东西之前,你需要先想清" +"楚下面这些部署问题:" #: ../source/overview.rst:29 msgid "" @@ -13266,17 +14870,21 @@ msgid "" "developers doing software development, operations people in a datacenter, or " "a less software-savvy group?" msgstr "" +"你的软件用户是谁?你的软件将由正在进行软件开发的开发者、数据中心的运维人员," +"还是不太熟悉软件的群体来安装?" #: ../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 "" +msgstr "你的软件是逐个安装,还是大批量部署?" #: ../source/overview.rst:36 msgid "" @@ -13286,10 +14894,13 @@ msgid "" "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 "" +msgstr "打包 Python 库和工具" #: ../source/overview.rst:45 msgid "" @@ -13298,6 +14909,9 @@ msgid "" "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 "" @@ -13306,10 +14920,13 @@ msgid "" "to package Python for a non-technical audience and/or a production setting, " "skip ahead to :ref:`packaging-applications`." msgstr "" +"以下打包方式适用于在开发环境中供技术受众使用的库和工具。如果你想寻找面向非技" +"术受众和/或生产环境打包 Python 的方法,请直接跳到 :ref:`packaging-" +"applications`。" #: ../source/overview.rst:56 msgid "Python modules" -msgstr "" +msgstr "Python 模块" #: ../source/overview.rst:58 msgid "" @@ -13317,6 +14934,8 @@ msgid "" "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 "" @@ -13326,6 +14945,10 @@ msgid "" "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 "" @@ -13333,10 +14956,12 @@ msgid "" "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 "" +msgstr "Python 源分发" #: ../source/overview.rst:77 msgid "" @@ -13344,6 +14969,8 @@ msgid "" "a directory structure. Any directory containing Python files can comprise " "an :term:`Import Package`." msgstr "" +"如果你的代码由多个 Python 文件组成,通常会组织成目录结构。任何包含 Python 文" +"件的目录都可以构成一个 :term:`导入包 `。" #: ../source/overview.rst:81 msgid "" @@ -13353,6 +14980,9 @@ msgid "" "to get incomplete transfers, and harder to guarantee code integrity at the " "destination." msgstr "" +"由于软件包由多个文件组成,分发起来更难。大多数协议一次只支持传输一个文件(你" +"上一次点击某个链接就下载了多个文件是什么时候?)。传输不完整的情况更容易发生" +",也更难保证代码在到达目的地后完好无损。" #: ../source/overview.rst:87 msgid "" @@ -13361,6 +14991,9 @@ msgid "" "use Python's native packaging tools to create a *source* :term:`Distribution " "Package`, or *sdist* for short." msgstr "" +"只要你的代码中只有纯 Python 代码,并且你确定部署环境支持你所用的 Python 版本" +",就可以使用 Python 原生的打包工具创建 *源* :term:`分发包 `,简称 *sdist*。" #: ../source/overview.rst:92 msgid "" @@ -13369,6 +15002,9 @@ msgid "" "depend on other Python packages, you can go to the :ref:`source-distribution-" "format` specification to learn more." msgstr "" +"Python 的 *sdists* 是压缩归档文件(``.tar.gz`` 文件),其中包含一个或多个软件" +"包或模块。如果你的代码是纯 Python 的,并且只依赖其他 Python 软件包,可以前往 " +":ref:`source-distribution-format` 规范了解更多信息。" #: ../source/overview.rst:97 msgid "" @@ -13378,6 +15014,10 @@ msgid "" "pypi.org/project/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 软件包(例如 `lxml `_ 所用到的 `libxml2 " +"`_,或 `numpy `_ 所用到的 BLAS 库),你就需要" +"使用下一节详述的格式,这种格式对纯 Python 库也大有好处。" #: ../source/overview.rst:104 msgid "" @@ -13387,6 +15027,10 @@ msgid "" "package, and so does `Pillow `_, an " "actively-maintained fork of PIL!" msgstr "" +"Python 和 PyPI 支持由多个分发包提供同一软件包的不同实现。例如 `PIL 分发包 " +"`_ 虽已停止维护却影响深远,它提供了 PIL 软件包" +";而 `Pillow `_ 这个积极维护的 PIL 分支也同" +"样提供。" #: ../source/overview.rst:111 msgid "" @@ -13394,10 +15038,12 @@ msgid "" "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 "" +msgstr "Python 二进制分发" #: ../source/overview.rst:118 msgid "" @@ -13405,6 +15051,8 @@ msgid "" "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 "" @@ -13415,6 +15063,10 @@ msgid "" "wheels because installation is always faster, so even pure-Python packages " "work better with wheels." msgstr "" +"并非所有开发者都有合适的工具或经验来构建这些用编译型语言编写的组件,因此 " +"Python 创造了 :term:`Wheel`,这是一种专门用于分发带有编译产物的库的软件包格式" +"。事实上,Python 的软件包安装器 ``pip`` 总是优先选择 wheel 包,因为安装速度总" +"是更快,所以即使是纯 Python 软件包,使用 wheel 包也效果更好。" #: ../source/overview.rst:129 msgid "" @@ -13425,16 +15077,22 @@ msgid "" "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 "" +"二进制分发在配有与之对应的源分发时效果最好。即使你没有为每种操作系统上传代码" +"的 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 让同时上传 wheel 包和 sdist 变得非常容易。只需遵循 " +":doc:`tutorials/packaging-projects` 教程即可。" #: ../source/overview.rst:145 msgid "A summary of Python's packaging capabilities for tools and libraries." -msgstr "" +msgstr "对 Python 面向工具和库的打包能力的总结。" #: ../source/overview.rst:145 msgid "" @@ -13442,10 +15100,12 @@ msgid "" "Excerpted from `The Packaging Gradient (2017) `_." msgstr "" +"Python 推荐的内置库和工具打包技术。摘自 `The Packaging Gradient (2017) " +"`_。" #: ../source/overview.rst:152 msgid "Packaging Python applications" -msgstr "" +msgstr "打包 Python 应用程序" #: ../source/overview.rst:154 msgid "" @@ -13454,12 +15114,17 @@ msgid "" "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 "" @@ -13469,12 +15134,18 @@ msgid "" "technologies like :doc:`setuptools entry_points `." msgstr "" +"Python 的原生打包主要是为在开发者之间分发可复用代码(即“库”)而构建的。你可以" +"借助 :doc:`setuptools 的 entry_points ` 之" +"类的技术,在 Python 的库打包之上搭载 **工具** ,也就是面向开发者的基础应用程" +"序。" #: ../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 "" @@ -13482,10 +15153,12 @@ msgid "" "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 "" +msgstr "依赖于框架" #: ../source/overview.rst:180 msgid "" @@ -13495,6 +15168,9 @@ msgid "" "frontends and mobile clients, are complex enough to target that a framework " "becomes more than a convenience." msgstr "" +"某些类型的 Python 应用程序,例如网站后端和其他网络服务,已经相当普遍,因此出" +"现了支持其开发和打包的框架。另一些类型的应用程序,例如动态 Web 前端和移动客户" +"端,其目标环境足够复杂,使用框架不再是锦上添花,而是近乎必需。" #: ../source/overview.rst:186 msgid "" @@ -13504,16 +15180,19 @@ msgid "" "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 "" +msgstr "如果你曾好奇这些平台和框架在底层是如何工作的,随时可以继续阅读后面的章节。" #: ../source/overview.rst:196 msgid "Service platforms" -msgstr "" +msgstr "服务平台" #: ../source/overview.rst:198 msgid "" @@ -13524,16 +15203,22 @@ msgid "" "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 "" +msgstr "Web 浏览器和移动应用程序" #: ../source/overview.rst:211 msgid "" @@ -13541,12 +15226,14 @@ msgid "" "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 编写移动应用或 " +"Web 应用前端。这门语言你可能早已熟悉,但相关的打包和部署实践却是全新的。" #: ../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 "" +msgstr "如果你打算向这些新领域发布软件,不妨了解以下框架,并参考它们的打包指南:" #: ../source/overview.rst:220 #, fuzzy @@ -13555,11 +15242,11 @@ msgstr "`Poetry `_" #: ../source/overview.rst:221 msgid "`Beeware `_" -msgstr "" +msgstr "`Beeware `_" #: ../source/overview.rst:222 msgid "`Brython `_" -msgstr "" +msgstr "`Brython `_" #: ../source/overview.rst:223 msgid "`Flexx `_" @@ -13571,10 +15258,12 @@ msgid "" "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 "" +msgstr "依赖于预安装的 Python" #: ../source/overview.rst:232 msgid "" @@ -13584,24 +15273,29 @@ msgid "" "Python preexisting in your data centers or on the personal machines of " "developers and data scientists." msgstr "" +"随便挑选一台电脑,视具体情形而定,它很可能已经安装了 Python。多年来,Python " +"一直默认包含在大多数 Linux 和 Mac 操作系统中,因此你可以合理地认为,你的数据" +"中心里以及开发者和数据科学家的个人机器上早已装有 Python。" #: ../source/overview.rst:238 msgid "Technologies which support this model:" -msgstr "" +msgstr "支持这一模型的技术:" #: ../source/overview.rst:240 msgid ":gh:`PEX ` (Python EXecutable)" msgstr "" +":gh:`PEX ` (Python EXecutable,Python 可执" +"行文件)" #: ../source/overview.rst:241 msgid "" ":doc:`zipapp ` (does not help manage dependencies, " "requires Python 3.5+)" -msgstr "" +msgstr ":doc:`zipapp ` (不帮助管理依赖项,需要 Python 3.5+)" #: ../source/overview.rst:242 msgid ":gh:`shiv ` (requires Python 3)" -msgstr "" +msgstr ":gh:`shiv ` (需要 Python 3)" #: ../source/overview.rst:244 msgid "" @@ -13609,6 +15303,8 @@ msgid "" "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 "" @@ -13616,10 +15312,12 @@ msgid "" "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 "" +msgstr "依赖于独立的软件分发生态系统" #: ../source/overview.rst:258 msgid "" @@ -13628,6 +15326,9 @@ msgid "" "\"app stores\", but even those focus on consumer applications and offer " "little for developers." msgstr "" +"很长一段时间里,包括 Mac 和 Windows 在内的许多操作系统都缺乏内置的软件包管理" +"。直到最近,这些操作系统才出现了所谓的“应用商店”,但即便是这些商店,也以消费" +"级应用为主,为开发者提供的帮助甚少。" #: ../source/overview.rst:263 msgid "" @@ -13641,16 +15342,25 @@ msgid "" "`_." msgstr "" +"开发者们长期寻找解决办法,并在这场摸索中发展出了自己的软件包管理方案,例如 " +"`Homebrew `_。对 Python 开发者而言,最相关的替代方案是一个" +"名为 `Anaconda " +"`_ 的软件包生态系统。Anaconda 围绕 Python 构建,在学术、分析以及其他面向数据" +"的环境中日益普及,甚至已经 `进入了面向服务器的环境 `_。" #: ../source/overview.rst:273 msgid "Instructions on building and publishing for the Anaconda ecosystem:" -msgstr "" +msgstr "在 Anaconda 生态系统中进行构建和发布的指南:" #: ../source/overview.rst:275 msgid "" "`Building libraries and applications with conda `_" msgstr "" +"`使用 conda 构建库和应用程序 `_" #: ../source/overview.rst:276 msgid "" @@ -13658,26 +15368,32 @@ msgid "" "projects/conda-build/en/latest/user-guide/tutorials/build-pkgs-" "skeleton.html>`_" 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 "" +msgstr "`WinPython `_" #: ../source/overview.rst:288 msgid "Bringing your own Python executable" -msgstr "" +msgstr "自带 Python 可执行文件" #: ../source/overview.rst:290 msgid "" @@ -13685,6 +15401,8 @@ msgid "" "operating system natively supports one or more formats of programs they can " "natively execute." msgstr "" +"我们今天所理解的计算,正是由执行程序的能力定义的。每种操作系统都原生支持一种" +"或多种它能够原生执行的程序格式。" #: ../source/overview.rst:294 msgid "" @@ -13692,6 +15410,8 @@ msgid "" "into one of these formats, most of which involve embedding the Python " "interpreter and any other dependencies into a single executable file." msgstr "" +"有许多技术和方法可以把你的 Python 程序转换为这些格式之一,其中大多数都涉及把 " +"Python 解释器及其他所有依赖项嵌入到单个可执行文件中。" #: ../source/overview.rst:299 msgid "" @@ -13699,53 +15419,57 @@ msgid "" "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 "" +msgstr "一些 Python 冻结工具:" #: ../source/overview.rst:305 msgid "" "`pyInstaller `_ - Cross-" "platform" -msgstr "" +msgstr "`pyInstaller `_ - 跨平台" #: ../source/overview.rst:306 msgid "" "`cx_Freeze `_ - Cross-platform" -msgstr "" +msgstr "`cx_Freeze `_ - 跨平台" #: ../source/overview.rst:307 msgid "" "`constructor `_ - For command-line " "installers" -msgstr "" +msgstr "`constructor `_ - 用于命令行安装程序" #: ../source/overview.rst:308 msgid "`py2exe `_ - Windows only" -msgstr "" +msgstr "`py2exe `_ - 仅限 Windows" #: ../source/overview.rst:309 msgid "`py2app `_ - Mac only" -msgstr "" +msgstr "`py2app `_ - 仅限 Mac" #: ../source/overview.rst:310 msgid "`osnap `_ - Windows and Mac" -msgstr "" +msgstr "`osnap `_ - 适用于 Windows 和 Mac" #: ../source/overview.rst:311 msgid "`pynsist `_ - Windows only" -msgstr "" +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 "" +msgstr "自带用户空间" #: ../source/overview.rst:321 msgid "" @@ -13755,38 +15479,46 @@ msgid "" "level virtualization `_, or *containerization*." msgstr "" +"越来越多的操作系统(包括 Linux、Mac OS 和 Windows)都可以配置为以轻量级镜像的" +"形式运行打包好的应用程序,这借助的是一种相对较新的机制,通常称为 `操作系统级" +"虚拟化 " +"`_,即 *容器化*。" #: ../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 服务器上采用得最为广泛;它们正是诞生于此,下列技术也最适合" +"在 Linux 服务器环境中使用:" #: ../source/overview.rst:334 msgid "`AppImage `_" -msgstr "" +msgstr "`AppImage `_" #: ../source/overview.rst:335 msgid "`Docker `_" -msgstr "" +msgstr "`Docker `_" #: ../source/overview.rst:336 msgid "`Flatpak `_" -msgstr "" +msgstr "`Flatpak `_" #: ../source/overview.rst:337 msgid "`Snapcraft `_" -msgstr "" +msgstr "`Snapcraft `_" #: ../source/overview.rst:340 msgid "Bringing your own kernel" -msgstr "" +msgstr "自带内核" #: ../source/overview.rst:342 msgid "" @@ -13795,6 +15527,9 @@ msgid "" "operating system of their own. Running these virtual machines, or VMs, is a " "mature approach, widespread in data center environments." msgstr "" +"大多数桌面操作系统都支持某种形式的传统虚拟化,以镜像的方式运行应用程序,这些" +"镜像自带完整的操作系统。运行这类虚拟机(VM)是一种成熟的做法,在数据中心环境" +"中已十分普遍。" #: ../source/overview.rst:347 msgid "" @@ -13802,14 +15537,16 @@ msgid "" "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 "" +msgstr "Linux 上的 KVM" #: ../source/overview.rst:352 msgid "Hyper-V on Windows" -msgstr "" +msgstr "Windows 上的 Hyper-V" #: ../source/overview.rst:353 msgid "" @@ -13817,16 +15554,21 @@ msgid "" "en.wikipedia.org/wiki/Amazon_Machine_Image>`_, 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 `_ - 一个用 Python 编" +"写的云管理系统,对虚拟机提供广泛支持" #: ../source/overview.rst:360 msgid "Bringing your own hardware" -msgstr "" +msgstr "自带硬件" #: ../source/overview.rst:362 msgid "" @@ -13834,6 +15576,8 @@ msgid "" "already-installed on some hardware. This way, your software's user would " "require only electricity." msgstr "" +"发布软件的最彻底方式,就是把它预装在某些硬件上再交付。这样,你的软件的用户所" +"需要的就只有电力了。" #: ../source/overview.rst:366 msgid "" @@ -13841,6 +15585,8 @@ msgid "" "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 "" @@ -13849,29 +15595,32 @@ msgid "" "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 "" +msgstr "对打包 Python 应用程序所用技术的总结。" #: ../source/overview.rst:379 msgid "" "The simplified gamut of technologies used to package Python applications." -msgstr "" +msgstr "用于打包 Python 应用程序的各项技术的简化全景。" #: ../source/overview.rst:382 msgid "What about..." -msgstr "" +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 "" +msgstr "上面的章节只能概述个大概,你可能还对一些较为明显的空缺心存疑惑。" #: ../source/overview.rst:388 msgid "Operating system packages" -msgstr "" +msgstr "操作系统软件包" #: ../source/overview.rst:390 msgid "" @@ -13885,12 +15634,19 @@ msgid "" "fpm.readthedocs.io/en/latest/cli-reference.html#virtualenv>`_ to generate " "both deb and RPMs from the same source." msgstr "" +"如上文 :ref:`depending-on-a-separate-ecosystem` 所述,某些操作系统有自己的软" +"件包管理器。如果你非常确定自己面向的操作系统,可以直接依赖诸如 `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 "" +msgstr "在大多数部署流水线中,操作系统的软件包管理器只是拼图里的一块。" #: ../source/overview.rst:407 msgid "" @@ -13901,6 +15657,11 @@ msgid "" "virtualenv tool ` and `osnap `_, both of which wrap virtualenvs in a self-contained way." msgstr "" +":doc:`Virtualenvs ` 一直是好几代 Python 开发者" +"不可或缺的工具,但由于逐渐被更高层的工具封装,它们正慢慢淡出人们的视野。尤其" +"是在打包方面,虚拟环境在 :doc:`dh-virtualenv 工具 ` " +"和 `osnap `_ 中被用作基础组件,这两者都以" +"自包含的方式封装了虚拟环境。" #: ../source/overview.rst:416 msgid "" @@ -13908,6 +15669,8 @@ msgid "" "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" @@ -13918,6 +15681,8 @@ 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 "" @@ -13929,10 +15694,15 @@ msgid "" "versus dynamic linking `_." msgstr "" +"例如,如果出现了内核安全问题,而你部署的是容器,那么可以直接更新宿主系统的内" +"核,而无需为应用程序重新构建。如果你部署的是虚拟机镜像,就需要重新构建。这种" +"机制上的差异是否会让其中一种选择更安全,至今仍是一场由来已久的争论,其源头可" +"追溯到尚无定论的 `静态链接与动态链接 `_ 之争。" #: ../source/overview.rst:435 msgid "Wrap up" -msgstr "" +msgstr "总结" #: ../source/overview.rst:437 msgid "" @@ -13942,16 +15712,19 @@ msgid "" "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 "" +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 "" +msgstr "本页面规定了 Python 软件包的二进制分发格式,它也称为 wheel 格式。" #: ../source/specifications/binary-distribution-format.rst:12 msgid "" @@ -13963,6 +15736,11 @@ msgid "" "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 文件也可以直接用标准的 'unzip' 工具解压到 " +"site-packages 中,同时保留足够的信息,以便日后随时将其内容展开到各自的最终路" +"径上。" #: ../source/specifications/binary-distribution-format.rst:22 msgid "Details" @@ -13970,44 +15748,48 @@ msgstr "详情" #: ../source/specifications/binary-distribution-format.rst:25 msgid "Installing a wheel 'distribution-1.0-py32-none-any.whl'" -msgstr "" +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 "" +msgstr "wheel 的安装在概念上分为两个阶段:" #: ../source/specifications/binary-distribution-format.rst:29 msgid "Unpack." -msgstr "" +msgstr "解包。" #: ../source/specifications/binary-distribution-format.rst:31 msgid "Parse ``distribution-1.0.dist-info/WHEEL``." -msgstr "" +msgstr "解析 ``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 "" +msgstr "如果 Root-Is-Purelib == 'true',则将归档解包到 purelib(site-packages)。" #: ../source/specifications/binary-distribution-format.rst:36 msgid "Else unpack archive into platlib (site-packages)." -msgstr "" +msgstr "否则将归档解包到 platlib(site-packages)。" #: ../source/specifications/binary-distribution-format.rst:38 msgid "Spread." -msgstr "" +msgstr "展开。" #: ../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 "" @@ -14017,34 +15799,40 @@ msgid "" "headers|scripts|data)``. These subdirectories are :ref:`installation paths " "defined by sysconfig `." msgstr "" +"将 ``distribution-1.0.data/`` 的每个子树移到其目标路径。``distribution-" +"1.0.data/`` 的每个子目录都是目标目录字典中的一个键,例如 ``distribution-" +"1.0.data/(purelib|platlib|headers|scripts|data)``。这些子目录是 " +":ref:`sysconfig 定义的安装路径 `。" #: ../source/specifications/binary-distribution-format.rst:48 msgid "" "If applicable, update scripts starting with ``#!python`` to point to the " "correct interpreter." -msgstr "" +msgstr "如适用,更新以 ``#!python`` 开头的脚本,使其指向正确的解释器。" #: ../source/specifications/binary-distribution-format.rst:50 msgid "Update ``distribution-1.0.dist-info/RECORD`` with the installed paths." -msgstr "" +msgstr "用已安装的路径更新 ``distribution-1.0.dist-info/RECORD``。" #: ../source/specifications/binary-distribution-format.rst:52 msgid "Remove empty ``distribution-1.0.data`` directory." -msgstr "" +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 "" +"将已安装的所有 .py 编译为 .pyc。(卸载器应该足够智能,即使 RECORD 中没有提及 " +".pyc,也能将其删除。)" #: ../source/specifications/binary-distribution-format.rst:57 msgid "Recommended installer features" -msgstr "" +msgstr "推荐的安装器功能" #: ../source/specifications/binary-distribution-format.rst:67 msgid "Rewrite ``#!python``." -msgstr "" +msgstr "重写 ``#!python``。" #: ../source/specifications/binary-distribution-format.rst:60 msgid "" @@ -14053,16 +15841,22 @@ msgid "" "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'`` 开头,则重写该行,使其" +"指向正确的解释器。如果归档是在 Windows 上创建的,Unix 安装器可能需要为这些文" +"件添加 +x 权限位。" #: ../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 脚本而非控" +"制台脚本。" #: ../source/specifications/binary-distribution-format.rst:72 msgid "Generate script wrappers." -msgstr "" +msgstr "生成脚本包装器。" #: ../source/specifications/binary-distribution-format.rst:70 msgid "" @@ -14070,14 +15864,16 @@ msgid "" "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 "" +msgstr "推荐的归档工具功能" #: ../source/specifications/binary-distribution-format.rst:82 msgid "Place ``.dist-info`` at the end of the archive." -msgstr "" +msgstr "将 ``.dist-info`` 放在归档末尾。" #: ../source/specifications/binary-distribution-format.rst:78 msgid "" @@ -14086,29 +15882,33 @@ msgid "" "including the ability to amend the metadata without rewriting the entire " "archive." msgstr "" +"鼓励归档工具将 ``.dist-info`` 文件在物理上放置于归档末尾。这样可以实现一些可" +"能颇为有趣的 ZIP 技巧,包括在不重写整个归档的情况下修改元数据。" #: ../source/specifications/binary-distribution-format.rst:85 #: ../source/specifications/pylock-toml.rst:51 msgid "File Format" -msgstr "" +msgstr "文件格式" #: ../source/specifications/binary-distribution-format.rst:90 msgid "File name convention" -msgstr "" +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 "" +msgstr "分发包" #: ../source/specifications/binary-distribution-format.rst:96 msgid "Distribution name, e.g. 'django', 'pyramid'." -msgstr "" +msgstr "分发包名称,例如 'django'、'pyramid'。" #: ../source/specifications/binary-distribution-format.rst:99 msgid "version" @@ -14116,11 +15916,11 @@ msgstr "version" #: ../source/specifications/binary-distribution-format.rst:99 msgid "Distribution version, e.g. 1.0." -msgstr "" +msgstr "分发包版本,例如 1.0。" #: ../source/specifications/binary-distribution-format.rst:124 msgid "build tag" -msgstr "" +msgstr "构建标签" #: ../source/specifications/binary-distribution-format.rst:102 msgid "" @@ -14130,6 +15930,10 @@ msgid "" "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 文件名在其余所有方面(即名称、版" +"本和其他标签)都相同时,构建编号用作决胜依据。若未指定,则按空元组排序;否则" +"按二元元组排序,其中第一项为开头的数字(``int``),第二项为标签的剩余部分" +"(``str``)。" #: ../source/specifications/binary-distribution-format.rst:109 msgid "" @@ -14137,6 +15941,8 @@ msgid "" "to a change in the build environment, like when using the manylinux image to " "build distributions using pre-release CPython versions." msgstr "" +"构建编号的一个常见用例是:由于构建环境发生变化而重新构建二进制分发,例如使用 " +"manylinux 镜像、以预发布版本的 CPython 来构建分发包的情形。" #: ../source/specifications/binary-distribution-format.rst:116 msgid "" @@ -14145,6 +15951,8 @@ msgid "" "ecosystem of tools and standards. A common case where a distribution would " "need to referenced externally is when resolving a security vulnerability." msgstr "" +"构建编号不是分发包版本的一部分,因此难以从外部引用,在 Python 工具与标准生态" +"之外尤其如此。分发包需要被外部引用的一种常见情形是解决安全漏洞时。" #: ../source/specifications/binary-distribution-format.rst:121 msgid "" @@ -14153,32 +15961,34 @@ msgid "" "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 "" +msgstr "语言实现及版本标签" #: ../source/specifications/binary-distribution-format.rst:127 msgid "E.g. 'py27', 'py2', 'py3'." -msgstr "" +msgstr "例如 'py27'、'py2'、'py3'。" #: ../source/specifications/binary-distribution-format.rst:130 #: ../source/specifications/platform-compatibility-tags.rst:20 msgid "abi tag" -msgstr "" +msgstr "abi 标签" #: ../source/specifications/binary-distribution-format.rst:130 msgid "E.g. 'cp33m', 'abi3', 'none'." -msgstr "" +msgstr "例如 'cp33m'、'abi3'、'none'。" #: ../source/specifications/binary-distribution-format.rst:133 #: ../source/specifications/platform-compatibility-tags.rst:23 msgid "platform tag" -msgstr "" +msgstr "平台标签" #: ../source/specifications/binary-distribution-format.rst:133 msgid "E.g. 'linux_x86_64', 'any'." -msgstr "" +msgstr "例如 'linux_x86_64'、'any'。" #: ../source/specifications/binary-distribution-format.rst:135 msgid "" @@ -14187,6 +15997,9 @@ msgid "" "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(任意 Python 2.7 实现),无 ABI(纯 Python)" +",适用于任何 CPU 架构。" #: ../source/specifications/binary-distribution-format.rst:140 msgid "" @@ -14194,10 +16007,12 @@ msgid "" "\"compatibility tags.\" The compatibility tags express the package's basic " "interpreter requirements and are detailed in PEP 425." msgstr "" +"文件名中位于扩展名之前的最后三个组成部分称为“兼容性标签”。兼容性标签表达了软" +"件包的基本解释器要求,详见 PEP 425。" #: ../source/specifications/binary-distribution-format.rst:145 msgid "Escaping and Unicode" -msgstr "" +msgstr "转义与 Unicode" #: ../source/specifications/binary-distribution-format.rst:147 msgid "" @@ -14205,6 +16020,8 @@ msgid "" "MINUS), this character cannot appear within any component. This is handled " "as follows:" msgstr "" +"由于文件名的各个组成部分以连字符(``-``,HYPHEN-MINUS)分隔,该字符不能出现在" +"任何组成部分之内。具体处理方式如下:" #: ../source/specifications/binary-distribution-format.rst:150 msgid "" @@ -14216,6 +16033,11 @@ msgid "" "prepared to accept ``.`` (FULL STOP) and uppercase letters, however, as " "these were allowed by an earlier version of this specification." msgstr "" +"在分发包名称中,任何由 ``-_.`` 字符(HYPHEN-MINUS、LOW LINE 和 FULL STOP)组" +"成的连续段都应该替换为 ``_`` (LOW LINE),大写字母也应该替换为对应的小写字母" +"。这等价于先执行常规的 :ref:`名称规范化 `,再将 ``-`` 替" +"换为 ``_``。不过,处理 wheel 的工具必须准备好接受 ``.`` (FULL STOP)和大写字" +"母,因为本规范的早期版本允许这些字符。" #: ../source/specifications/binary-distribution-format.rst:157 msgid "" @@ -14223,12 +16045,14 @@ msgid "" "specifier specification `. Normalised version numbers " "cannot contain ``-``." msgstr "" +"版本号应该按照 :ref:`版本说明符规范 ` 进行规范化。规范化" +"后的版本号不能包含 ``-``。" #: ../source/specifications/binary-distribution-format.rst:159 msgid "" "The remaining components may not contain ``-`` characters, so no escaping is " "necessary." -msgstr "" +msgstr "其余组成部分不能包含 ``-`` 字符,因此无需转义。" #: ../source/specifications/binary-distribution-format.rst:162 msgid "" @@ -14236,6 +16060,8 @@ msgid "" "contain ``-``, as the resulting file may not be processed correctly if they " "do." msgstr "" +"构建 wheel 的工具应该检查文件名的各个组成部分不含 ``-``,因为如果包含,生成的" +"文件可能无法被正确处理。" #: ../source/specifications/binary-distribution-format.rst:165 msgid "" @@ -14243,6 +16069,8 @@ msgid "" "updated to support non-ASCII filenames, but they are supported in this " "specification." msgstr "" +"归档文件名是 Unicode 的。相关工具还需要一段时间才会更新以支持非 ASCII 文件名" +",但本规范支持这类文件名。" #: ../source/specifications/binary-distribution-format.rst:169 msgid "" @@ -14250,10 +16078,12 @@ msgid "" "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 编码。尽管一些常用 ZIP 客户端不能正确显示 " +"UTF-8 文件名,但该编码同时得到 ZIP 规范和 Python 的 ``zipfile`` 的支持。" #: ../source/specifications/binary-distribution-format.rst:175 msgid "File contents" -msgstr "" +msgstr "文件内容" #: ../source/specifications/binary-distribution-format.rst:177 msgid "" @@ -14264,6 +16094,10 @@ msgid "" "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 "" @@ -14271,15 +16105,18 @@ msgid "" "``purelib`` or ``platlib`` as specified in ``WHEEL``. ``purelib`` and " "``platlib`` are usually both ``site-packages``." msgstr "" +"``/`` 是归档的根目录,包含按 ``WHEEL`` 的规定要安装到 ``purelib`` 或 " +"``platlib`` 的所有文件。``purelib`` 和 ``platlib`` 通常都是 ``site-" +"packages``。" #: ../source/specifications/binary-distribution-format.rst:187 msgid "``{distribution}-{version}.dist-info/`` contains metadata." -msgstr "" +msgstr "``{distribution}-{version}.dist-info/`` 包含元数据。" #: ../source/specifications/binary-distribution-format.rst:188 msgid "" ":file:`{distribution}-{version}.dist-info/licenses/` contains license files." -msgstr "" +msgstr ":file:`{distribution}-{version}.dist-info/licenses/` 包含许可证文件。" #: ../source/specifications/binary-distribution-format.rst:189 msgid "" @@ -14288,6 +16125,9 @@ msgid "" "an index into a dictionary of install paths (e.g. ``data``, ``scripts``, " "``headers``, ``purelib``, ``platlib``)." msgstr "" +"``{distribution}-{version}.data/`` 为每个尚未涵盖的非空安装方案键包含一个子目" +"录,子目录名称是安装路径字典中的索引(例如 " +"``data``、``scripts``、``headers``、``purelib``、``platlib``)。" #: ../source/specifications/binary-distribution-format.rst:193 msgid "" @@ -14296,28 +16136,35 @@ msgid "" "rewriting at install time. They may have any or no extension. The " "``scripts`` directory may only contain regular files." msgstr "" +"Python 脚本必须出现在 ``scripts`` 中,并且恰好以 ``b'#!python'`` 开头,才能在" +"安装时获得脚本包装器生成和 ``#!python`` 重写。它们可以带任意扩展名,也可以不" +"带扩展名。``scripts`` 目录只能包含常规文件。" #: ../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`` 是关于归档文件本身的元数据,采用" +"同样的基本“键: 值”格式::" #: ../source/specifications/binary-distribution-format.rst:209 msgid "``Wheel-Version`` is the version number of the Wheel specification." -msgstr "" +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 "" +msgstr "``Generator`` 是生成该归档文件的软件的名称及其可选的版本号。" #: ../source/specifications/binary-distribution-format.rst:212 msgid "" @@ -14325,17 +16172,21 @@ msgid "" "be installed into purelib; otherwise the root should be installed into " "platlib." msgstr "" +"如果归档文件的顶层目录应当安装到 purelib,则 ``Root-Is-Purelib`` 为 true;否" +"则应将根目录安装到 platlib。" #: ../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 包展开后的兼容性标签;在上面的示例中,文件名将包含 " +"``py2.py3-none-any``。" #: ../source/specifications/binary-distribution-format.rst:217 msgid "" "``Build`` is the build number and is omitted if there is no build number." -msgstr "" +msgstr "``Build`` 是构建编号,如果没有构建编号则省略。" #: ../source/specifications/binary-distribution-format.rst:218 msgid "" @@ -14343,12 +16194,14 @@ msgid "" "it supports, and must fail if Wheel-Version has a greater major version than " "the version it supports." msgstr "" +"如果 Wheel-Version 大于所支持的版本,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 "" +msgstr "wheel 作为一种旨在跨多个 Python 版本使用的安装格式,通常不包含 .pyc 文件。" #: ../source/specifications/binary-distribution-format.rst:223 msgid "Wheel does not contain setup.py or setup.cfg." @@ -14361,6 +16214,8 @@ msgid "" "layout offers a superset of the functionality provided by the existing " "wininst and egg binary formats." msgstr "" +"本版本的 wheel 规范基于 distutils 安装方案,并未定义如何将文件安装到其他位置" +"。这种布局提供了现有 wininst 和 egg 二进制格式所提供功能的超集。" #: ../source/specifications/binary-distribution-format.rst:232 #: ../source/specifications/recording-installed-packages.rst:23 @@ -14371,17 +16226,17 @@ msgstr "目录 .dist-info" msgid "" "Wheel .dist-info directories include at a minimum METADATA, WHEEL, and " "RECORD." -msgstr "" +msgstr "wheel 包的 .dist-info 目录至少包含 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 "" +msgstr "METADATA 是软件包元数据,其格式与源分发根目录下的 PKG-INFO 相同。" #: ../source/specifications/binary-distribution-format.rst:238 msgid "WHEEL is the wheel metadata specific to a build of the package." -msgstr "" +msgstr "WHEEL 是特定于软件包某次构建的 wheel 元数据。" #: ../source/specifications/binary-distribution-format.rst:239 msgid "" @@ -14390,10 +16245,13 @@ msgid "" "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 中(几乎)所有文件及其安全哈希的列表。与 PEP 376 不同,除无法" +"包含自身哈希的 RECORD 之外,每个文件都必须包含其哈希。哈希算法必须是 sha256 " +"或更强的算法;具体而言,不得使用 md5 和 sha1。" #: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." -msgstr "" +msgstr "归档文件中不包含 PEP 376 的 INSTALLER 和 REQUESTED。" #: ../source/specifications/binary-distribution-format.rst:245 msgid "" @@ -14402,6 +16260,9 @@ msgid "" "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 已弃用。在仍在使用它们的情况下,RECORD.jws 和 " +"RECORD.p7s 都不会在 RECORD 中列出。构建后端和其他工具不得再将其添加到 wheel " +"包中,安装器应该知悉这些文件可能仍是某些 wheel 包的一部分。" #: ../source/specifications/binary-distribution-format.rst:250 msgid "" @@ -14410,10 +16271,13 @@ msgid "" "installation will fail if any file in the archive is not both mentioned and " "correctly hashed in RECORD." msgstr "" +"在解压过程中,wheel 安装器会对照文件内容校验 RECORD 中的所有哈希。除 RECORD、" +"RECORD.jws 和 RECORD.p7s 之外,如果归档文件中的任何文件没有同时在 RECORD 中列" +"出并记录正确的哈希,安装就会失败。" #: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" -msgstr "" +msgstr ":file:`.dist-info/` 中的子目录" #: ../source/specifications/binary-distribution-format.rst:258 msgid "" @@ -14421,6 +16285,8 @@ msgid "" "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" +":file:`.dist-info/` 下的子目录保留供将来使用。以下 :file:`.dist-info/` 下的子" +"目录名称保留用于特定用途:" #: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" @@ -14428,7 +16294,7 @@ msgstr "子目录名称" #: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" -msgstr "" +msgstr "PEP / 标准" #: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" @@ -14437,7 +16303,7 @@ msgstr "``licenses``" #: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 msgid ":pep:`639`" -msgstr "" +msgstr ":pep:`639`" #: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" @@ -14449,15 +16315,15 @@ msgstr "``LICENSES``" #: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" -msgstr "" +msgstr "`REUSE 许可框架 `__" #: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" -msgstr "" +msgstr "``sboms``" #: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" -msgstr "" +msgstr ":pep:`770`" #: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" @@ -14471,6 +16337,10 @@ msgid "" "``License-File`` fields in the :file:`METADATA` file at their respective " "paths relative to the :file:`licenses/` directory." msgstr "" +"如果元数据版本为 2.4 或更高,并且指定了一个或多个 ``License-File`` 字段,则 " +":file:`.dist-info/` 目录必须包含 :file:`licenses/` 子目录,该子目录必须包含 " +":file:`METADATA` 文件的 ``License-File`` 字段中所列出的文件,这些文件位于相对" +"于 :file:`licenses/` 目录的各自路径处。" #: ../source/specifications/binary-distribution-format.rst:282 msgid "The :file:`.dist-info/sboms/` directory" @@ -14482,6 +16352,8 @@ msgid "" "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" +":file:`.dist-info/sboms/` 目录中包含的所有文件必须是软件物料清单(SBOM)文件" +",用于描述分发包归档中所含的软件。" #: ../source/specifications/binary-distribution-format.rst:289 msgid "The .data directory" @@ -14493,6 +16365,8 @@ msgid "" "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" +"任何通常不安装到 site-packages 内的文件都会放入 .data 目录,该目录按 .dist-" +"info 目录的方式命名,但改用 .data/ 扩展名::" #: ../source/specifications/binary-distribution-format.rst:299 msgid "" @@ -14500,15 +16374,17 @@ msgid "" "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" +".data 目录包含若干子目录,其中存放来自分发包的脚本、头文件、文档等内容。在安" +"装过程中,这些子目录的内容会被移动到各自的目标路径。" #: ../source/specifications/binary-distribution-format.rst:305 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" -msgstr "" +msgstr "常见问题" #: ../source/specifications/binary-distribution-format.rst:309 msgid "Wheel defines a .data directory. Should I put all my data there?" -msgstr "" +msgstr "wheel 定义了 .data 目录。我应该把所有数据都放在那里吗?" #: ../source/specifications/binary-distribution-format.rst:311 msgid "" @@ -14519,10 +16395,14 @@ msgid "" "though *those* files will usually not be distributed in *wheel's* ``.data`` " "directory." msgstr "" +"本规范对你如何组织代码不持立场。.data 目录只是用来存放那些通常不会安装到 " +"``site-packages`` 内部或 PYTHONPATH 上的文件。换句话说,你可以继续使用 " +"``pkgutil.get_data(package, resource)``,尽管 *这些* 文件通常不会分发在 " +"*wheel 的* ``.data`` 目录中。" #: ../source/specifications/binary-distribution-format.rst:320 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" -msgstr "" +msgstr "“purelib”与“platlib”是怎么回事?" #: ../source/specifications/binary-distribution-format.rst:322 msgid "" @@ -14531,6 +16411,9 @@ msgid "" "packages to '/usr/lib/pythonX.Y/site-packages' and platform dependent " "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" +"wheel 保留了“purelib”与“platlib”之分,这种区别在某些平台上很重要。例如," +"Fedora 会把纯 Python 软件包安装到 '/usr/lib/pythonX.Y/site-packages',而把依" +"赖平台的软件包安装到 '/usr/lib64/pythonX.Y/site-packages'。" #: ../source/specifications/binary-distribution-format.rst:327 msgid "" @@ -14539,6 +16422,9 @@ msgid "" "true\" with those same files in the root, and it is legal to have files in " "both the \"purelib\" and \"platlib\" categories." msgstr "" +"一个“Root-Is-Purelib: false”且所有文件都位于 ``{name}-{version}.data/" +"purelib`` 中的 wheel 包,等价于一个“Root-Is-Purelib: true”且这些相同文件位于" +"根目录的 wheel 包;同时在“purelib”和“platlib”两个类别中都放置文件也是合法的。" #: ../source/specifications/binary-distribution-format.rst:332 msgid "" @@ -14546,10 +16432,12 @@ msgid "" "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 包应该根据自身是否为纯 Python 而只包含“purelib”或“platlib”之一" +",并且这些文件应该位于根目录,同时为“Root-is-purelib”给出相应的设置。" #: ../source/specifications/binary-distribution-format.rst:340 msgid "Is it possible to import Python code directly from a wheel file?" -msgstr "" +msgstr "可以直接从 wheel 文件导入 Python 代码吗?" #: ../source/specifications/binary-distribution-format.rst:342 msgid "" @@ -14559,6 +16447,9 @@ msgid "" "``sys.path``. However, while this behaviour is a natural consequence of the " "format design, actually relying on it is generally discouraged." msgstr "" +"从技术上讲,由于 wheel 既支持通过简单解压进行安装,又使用了与 ``zipimport`` " +"兼容的归档格式,一部分 wheel 文件 *确实* 支持被直接放置在 ``sys.path`` 上。然" +"而,尽管这一行为是格式设计的自然结果,通常并不建议实际依赖它。" #: ../source/specifications/binary-distribution-format.rst:348 msgid "" @@ -14570,6 +16461,10 @@ msgid "" "purposes, or integrating fully with the standard build machinery for C " "extensions by publishing header files in the appropriate place)." msgstr "" +"首先,wheel *是* 主要作为一种分发格式来设计的,因此跳过安装步骤也意味着刻意避" +"免依赖任何以完整安装为前提的特性(例如,能够使用 ``pip`` 和 ``virtualenv`` 等" +"标准工具来捕获和管理依赖项,采用可被妥善跟踪以满足审计和安全更新需要的方式;" +"或者通过在适当的位置发布头文件,与 C 扩展的标准构建机制完全集成)。" #: ../source/specifications/binary-distribution-format.rst:357 msgid "" @@ -14588,6 +16483,14 @@ msgid "" "uses the abstract resource APIs internally, interfacing with external " "components may still require the availability of an actual on-disk file." msgstr "" +"其次,虽然某些 Python 软件在编写时就支持直接从 zip 归档运行,但常见的情形仍是" +"代码在编写时假定自己已被完整安装。当试图从 zip 归档运行软件而打破这一假定时," +"出现的故障往往晦涩且难以诊断(尤其是在第三方库中发生时)。这方面最常见的两个" +"问题来源是:从 zip 归档导入 C 扩展 *不* 受 CPython 支持(因为任何平台的动态加" +"载机制都不直接支持这样做);以及从 zip 归档运行时,``__file__`` 属性不再指向" +"普通的文件系统路径,而是指向一个组合路径,其中既包含 zip 归档在文件系统上的位" +"置,也包含模块在归档内部的相对路径。即使软件在内部正确使用了抽象资源 API,与" +"外部组件交互时仍可能需要存在实际的磁盘文件。" #: ../source/specifications/binary-distribution-format.rst:374 msgid "" @@ -14597,6 +16500,10 @@ msgid "" "many projects will require a failure to be reproduced with a fully installed " "package before accepting it as a genuine bug." msgstr "" +"就像元类、猴子补丁(monkeypatching)和元路径导入器一样,如果你还不能确定自己" +"需要利用这一特性,那么几乎可以肯定你并不需要它。如果你 *确实* 决定无论如何都" +"要使用它,请注意,许多项目会要求先在完整安装的软件包上复现故障,然后才会将其" +"认定为真实的缺陷。" #: ../source/specifications/binary-distribution-format.rst:382 #: ../source/specifications/core-metadata.rst:1043 @@ -14618,17 +16525,19 @@ msgstr "" #: ../source/specifications/version-specifiers.rst:1282 #: ../source/specifications/virtual-environments.rst:54 msgid "History" -msgstr "" +msgstr "历史" #: ../source/specifications/binary-distribution-format.rst:384 msgid "February 2013: This specification was approved through :pep:`427`." -msgstr "" +msgstr "2013 年 2 月:本规范通过 :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 年 2 月:修订了 wheel 文件名中转义处理的规则,使其与流行工具的实际做法保" +"持一致。" #: ../source/specifications/binary-distribution-format.rst:387 msgid "" @@ -14637,40 +16546,44 @@ msgid "" "symlinks or subdirectories in this folder is not formally defined, and hence " "may vary between tools)." msgstr "" +"2024 年 12 月:澄清了 ``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 "" +msgstr "2024 年 12 月:通过 :pep:`639` 规定了 :file:`.dist-info/licenses/` 目录。" #: ../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 年 1 月:澄清了 ``.dist-info`` 和 ``.data`` 目录所用的名称和版本号需要经" +"过规范化。" #: ../source/specifications/binary-distribution-format.rst:395 msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." -msgstr "" +msgstr "2026 年 1 月:弃用 RECORD.jws 和 RECORD.p7s,见 :pep:`815`。" #: ../source/specifications/binary-distribution-format.rst:399 msgid "Appendix" -msgstr "" +msgstr "附录" #: ../source/specifications/binary-distribution-format.rst:401 msgid "Example urlsafe-base64-nopad implementation::" -msgstr "" +msgstr "urlsafe-base64-nopad 实现示例::" #: ../source/specifications/build-details/index.rst:7 #: ../source/specifications/build-details/index.rst:41 msgid "v1.0" -msgstr "" +msgstr "v1.0" #: ../source/specifications/build-details/index.rst:5 msgid ":file:`build-details.json`" -msgstr "" +msgstr ":file:`build-details.json`" #: ../source/specifications/build-details/index.rst:13 msgid "" @@ -14679,6 +16592,8 @@ msgid "" "extension ABI details, and other information that is specific to that " "particular build of Python." msgstr "" +"``build-details.json`` 文件是一种标准化的文件格式,提供与 Python 安装构建相关" +"的信息,例如其版本、扩展 ABI 细节,以及其他特定于该次 Python 构建的信息。" #: ../source/specifications/build-details/index.rst:18 msgid "" @@ -14686,12 +16601,14 @@ msgid "" "platform-independent standard library directory (``stdlib``, e.g. ``/usr/lib/" "python3.14/build-details.json``)." msgstr "" +"从 Python 3.14 开始,会在与平台无关的标准库目录(``stdlib``,例如 ``/usr/lib/" +"python3.14/build-details.json``)中安装一个 ``build-details.json`` 文件。" #: ../source/specifications/build-details/index.rst:22 msgid "" "Please refer to the :ref:`latest version ` for its " "specification." -msgstr "" +msgstr "请参阅 :ref:`最新版本 ` 以了解其规范。" #: ../source/specifications/build-details/index.rst:28 #: ../source/specifications/build-details/v1.0.rst:16 @@ -14702,7 +16619,7 @@ msgstr "例子" #: ../source/specifications/build-details/index.rst:35 msgid "Changelog" -msgstr "" +msgstr "变更日志" #: ../source/specifications/build-details/index.rst:45 #: ../source/specifications/build-details/v1.0.rst:9 @@ -14720,11 +16637,11 @@ msgstr "技术参数" #: ../source/specifications/build-details/index.rst:46 msgid ":ref:`build-details-v1.0`" -msgstr "" +msgstr ":ref:`build-details-v1.0`" #: ../source/specifications/build-details/index.rst:48 msgid "Schema" -msgstr "" +msgstr "模式" #: ../source/specifications/build-details/index.rst:49 #: ../source/specifications/build-details/v1.0.rst:12 @@ -14732,24 +16649,26 @@ 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 "" +msgstr "初始版本,由 :pep:`739` 引入。" #: ../source/specifications/build-details/v1.0.rst:5 msgid "``build-details.json`` v1.0" -msgstr "" +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 "" +msgstr "*build-details.json —— 一个包含 Python 安装构建细节的静态描述文件*" #: ../source/specifications/build-details/v1.0.rst:12 msgid "type" -msgstr "" +msgstr "type" #: ../source/specifications/build-details/v1.0.rst:12 msgid "*object*" @@ -14757,11 +16676,11 @@ msgstr "*对象*" #: ../source/specifications/build-details/v1.0.rst:12 msgid "properties" -msgstr "" +msgstr "properties" #: ../source/specifications/build-details/v1.0.rst:12 msgid "**schema\\_version**" -msgstr "" +msgstr "**schema\\_version**" #: ../source/specifications/build-details/v1.0.rst:12 msgid "Schema version." @@ -14774,12 +16693,15 @@ msgid "" "**minor** components of the version. Versions may be arithmetically compared " "by intrepreting the version string as a decimal number." msgstr "" +"这是一个遵循 ``.`` 格式的字符串,其中 ```` 和 ``" +"`` 是不带补零的数字,分别表示版本的 **major** 和 **minor** 组成部分(即主版本" +"号和次版本号)。将版本字符串解释为十进制数后,各版本之间即可进行算术比较。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "" "For this specification version, this value is constant and **MUST** be " "``1.0``." -msgstr "" +msgstr "对本规范版本而言,该值为固定值,且 **必须** 为 ``1.0``。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "" @@ -14792,10 +16714,15 @@ msgid "" "the older specification, with the exception of additional properties (errors " "caused by ``additionalProperties``)." msgstr "" +"该 schema 的未来版本 **必须** 使用更高的版本号。该 schema 的未来版本 **不" +"得** 使用与其他 schema 版本相同的 **major** 版本组成部分,除非其规范被认定为" +"与它们向后兼容,即:不能以任何导致所解释数据语义发生变化的方式更改或扩展当前" +"规范的任何部分,也不能使在新规范下有效的数据在旧规范下变为无效;附加属性(由 " +"``additionalProperties`` 引起的错误)除外。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "*string*" -msgstr "" +msgstr "*string*" #: ../source/specifications/build-details/v1.0.rst:12 msgid "const" @@ -14803,21 +16730,21 @@ msgstr "const" #: ../source/specifications/build-details/v1.0.rst:12 msgid "1.0" -msgstr "" +msgstr "1.0" #: ../source/specifications/build-details/v1.0.rst:12 msgid "**base\\_prefix**" -msgstr "" +msgstr "**base\\_prefix**" #: ../source/specifications/build-details/v1.0.rst:12 msgid "Base prefix of the Python installation." -msgstr "" +msgstr "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 "" +msgstr "可以是绝对路径,也可以是相对于该文件所在目录的相对路径。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "examples" @@ -14825,33 +16752,33 @@ msgstr "例子" #: ../source/specifications/build-details/v1.0.rst:12 msgid "/usr" -msgstr "" +msgstr "/usr" #: ../source/specifications/build-details/v1.0.rst:12 msgid "../.." -msgstr "" +msgstr "../.." #: ../source/specifications/build-details/v1.0.rst:12 msgid "base\\_interpreter" -msgstr "" +msgstr "base\\_interpreter" #: ../source/specifications/build-details/v1.0.rst:12 msgid "The path to the Python interprer of the base installation." -msgstr "" +msgstr "基础安装中 Python 解释器的路径。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "Either an absolute path, or a path relative to ``base_prefix``." -msgstr "" +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 "" +msgstr "如果安装提供了解释器可执行文件,则 **必须** 包含此字段。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "/usr/bin/python" -msgstr "" +msgstr "/usr/bin/python" #: ../source/specifications/build-details/v1.0.rst:12 msgid "bin/python" @@ -14859,27 +16786,27 @@ msgstr "bin/python" #: ../source/specifications/build-details/v1.0.rst:12 msgid "**platform**" -msgstr "" +msgstr "**platform**" #: ../source/specifications/build-details/v1.0.rst:12 msgid "System platform string." -msgstr "" +msgstr "系统平台字符串。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "This field **SHOULD** be equivalent to ``sysconfig.get_platform()``." -msgstr "" +msgstr "此字段 **应该** 等价于 ``sysconfig.get_platform()``。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "linux-x86\\_64" -msgstr "" +msgstr "linux-x86\\_64" #: ../source/specifications/build-details/v1.0.rst:12 msgid "**language**" -msgstr "" +msgstr "**language**" #: ../source/specifications/build-details/v1.0.rst:12 msgid "Object containing details related to the Python language specification." -msgstr "" +msgstr "包含与 Python 语言规范相关细节的对象。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "**version**" @@ -14890,15 +16817,17 @@ msgid "" "String representation the Python language version — a version string " "consisting only of the *major* and *minor* components." msgstr "" +"Python 语言版本的字符串表示形式——仅由 *major* 和 *minor* 组成部分构成的版本字" +"符串。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "" "This field **SHOULD** be equivalent to ``sysconfig.get_python_version()``." -msgstr "" +msgstr "此字段 **应该** 等价于 ``sysconfig.get_python_version()``。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "3.14" -msgstr "" +msgstr "3.14" #: ../source/specifications/build-details/v1.0.rst:12 msgid "version\\_info" @@ -14906,35 +16835,35 @@ msgstr "version\\_info" #: ../source/specifications/build-details/v1.0.rst:12 msgid "Object in the format of :py:data:`sys.version_info`." -msgstr "" +msgstr "格式为 :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 "" +msgstr "此小节 **应该** 等价于 :py:data:`sys.version_info`。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "major" -msgstr "" +msgstr "major" #: ../source/specifications/build-details/v1.0.rst:12 msgid "3" -msgstr "" +msgstr "3" #: ../source/specifications/build-details/v1.0.rst:12 msgid "minor" -msgstr "" +msgstr "minor" #: ../source/specifications/build-details/v1.0.rst:12 msgid "14" -msgstr "" +msgstr "14" #: ../source/specifications/build-details/v1.0.rst:12 msgid "micro" -msgstr "" +msgstr "micro" #: ../source/specifications/build-details/v1.0.rst:12 msgid "1" -msgstr "" +msgstr "1" #: ../source/specifications/build-details/v1.0.rst:12 msgid "releaselevel" @@ -14942,19 +16871,19 @@ msgstr "发行级别" #: ../source/specifications/build-details/v1.0.rst:12 msgid "final" -msgstr "" +msgstr "final" #: ../source/specifications/build-details/v1.0.rst:12 msgid "serial" -msgstr "" +msgstr "serial" #: ../source/specifications/build-details/v1.0.rst:12 msgid "0" -msgstr "" +msgstr "0" #: ../source/specifications/build-details/v1.0.rst:12 msgid "**major**" -msgstr "" +msgstr "**major**" #: ../source/specifications/build-details/v1.0.rst:12 msgid "*number*" @@ -14962,27 +16891,27 @@ msgstr "*编号*" #: ../source/specifications/build-details/v1.0.rst:12 msgid "**minor**" -msgstr "" +msgstr "**minor**" #: ../source/specifications/build-details/v1.0.rst:12 msgid "**micro**" -msgstr "" +msgstr "**micro**" #: ../source/specifications/build-details/v1.0.rst:12 msgid "**releaselevel**" -msgstr "" +msgstr "**releaselevel**" #: ../source/specifications/build-details/v1.0.rst:12 msgid "enum" -msgstr "" +msgstr "enum" #: ../source/specifications/build-details/v1.0.rst:12 msgid "alpha, beta, candidate, final" -msgstr "" +msgstr "alpha, beta, candidate, final" #: ../source/specifications/build-details/v1.0.rst:12 msgid "**serial**" -msgstr "" +msgstr "**serial**" #: ../source/specifications/build-details/v1.0.rst:12 msgid "additionalProperties" @@ -14990,7 +16919,7 @@ msgstr "附加属性" #: ../source/specifications/build-details/v1.0.rst:12 msgid "False" -msgstr "" +msgstr "False" #: ../source/specifications/build-details/v1.0.rst:12 msgid "**implementation**" @@ -14998,7 +16927,7 @@ msgstr "**实现**" #: ../source/specifications/build-details/v1.0.rst:12 msgid "Object containing details related to Python implementation." -msgstr "" +msgstr "包含与 Python 实现相关细节的对象。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "" @@ -15007,14 +16936,17 @@ msgid "" "required keys, implementation-specific keys can also exist, but must be " "prefixed with an underscore." msgstr "" +"此小节 **应该** 等价于 :py:data:`sys.implementation`。它遵循 PEP 421 定义的规" +"范,这意味着除了必需的键之外,还可以存在实现特定的键,但这些键必须以下划线作" +"为前缀。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "**name**" -msgstr "" +msgstr "**name**" #: ../source/specifications/build-details/v1.0.rst:12 msgid "Lower-case name of the Python implementation." -msgstr "" +msgstr "Python 实现的小写名称。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "cpython" @@ -15022,33 +16954,33 @@ msgstr "cpython" #: ../source/specifications/build-details/v1.0.rst:12 msgid "pypy" -msgstr "" +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 "" +msgstr "格式为 :py:data:`sys.version_info` 的对象,包含实现的版本。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "7" -msgstr "" +msgstr "7" #: ../source/specifications/build-details/v1.0.rst:12 msgid "16" -msgstr "" +msgstr "16" #: ../source/specifications/build-details/v1.0.rst:12 msgid "True" -msgstr "" +msgstr "True" #: ../source/specifications/build-details/v1.0.rst:12 msgid "abi" -msgstr "" +msgstr "abi" #: ../source/specifications/build-details/v1.0.rst:12 msgid "Object containing details related to ABI." -msgstr "" +msgstr "包含与 ABI 相关细节的对象。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "**flags**" @@ -15056,70 +16988,72 @@ msgstr "**标记**" #: ../source/specifications/build-details/v1.0.rst:12 msgid "Build configuration flags, used to calculate the extension suffix." -msgstr "" +msgstr "构建配置标志,用于计算扩展后缀。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "" "The flags **MUST** be defined in the order they appear on the extension " "suffix." -msgstr "" +msgstr "这些标志 **必须** 按照它们在扩展后缀中出现的顺序定义。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "*array*" -msgstr "" +msgstr "*array*" #: ../source/specifications/build-details/v1.0.rst:12 msgid "t" -msgstr "" +msgstr "t" #: ../source/specifications/build-details/v1.0.rst:12 msgid "d" -msgstr "" +msgstr "d" #: ../source/specifications/build-details/v1.0.rst:12 msgid "extension\\_suffix" -msgstr "" +msgstr "extension\\_suffix" #: ../source/specifications/build-details/v1.0.rst:12 msgid "" "Suffix used for extensions built against the current implementation version." -msgstr "" +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 "" +msgstr "如果 Python 实现支持扩展,则 **必须** 包含此字段,否则此条目将会缺失。" #: ../source/specifications/build-details/v1.0.rst:12 msgid ".cpython-314-x86\\_64-linux-gnu.so" -msgstr "" +msgstr ".cpython-314-x86\\_64-linux-gnu.so" #: ../source/specifications/build-details/v1.0.rst:12 msgid "stable\\_abi\\_suffix" -msgstr "" +msgstr "stable\\_abi\\_suffix" #: ../source/specifications/build-details/v1.0.rst:12 msgid "Suffix used for extensions built against the stable ABI." -msgstr "" +msgstr "针对稳定 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 实现具有稳定 ABI 扩展后缀,则 **必须** 包含此字段,否则此条目将会" +"缺失。" #: ../source/specifications/build-details/v1.0.rst:12 msgid ".abi3.so" -msgstr "" +msgstr ".abi3.so" #: ../source/specifications/build-details/v1.0.rst:12 msgid "suffixes" -msgstr "" +msgstr "suffixes" #: ../source/specifications/build-details/v1.0.rst:12 msgid "Valid module suffixes grouped by type." -msgstr "" +msgstr "按类型分组的有效模块后缀。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "" @@ -15127,6 +17061,8 @@ msgid "" "importing external files, and it **SHOULD** be equivalent to the " "``importlib.machinery.*_SUFFIXES`` attributes." msgstr "" +"如果 Python 安装支持导入外部文件,则 **必须** 包含此小节,并且它 **应该** 等" +"价于 ``importlib.machinery.*_SUFFIXES`` 属性。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "" @@ -15134,30 +17070,32 @@ msgid "" "the ones listed on ``importlib.machinery`` module, they **MAY** add a sub-" "section for them." msgstr "" +"此外,如果某个 Python 实现提供了 ``importlib.machinery`` 模块中所列种类之外的" +"扩展种类,则 **可以** 为它们添加一个子节。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "source" -msgstr "" +msgstr "source" #: ../source/specifications/build-details/v1.0.rst:12 msgid ".py" -msgstr "" +msgstr ".py" #: ../source/specifications/build-details/v1.0.rst:12 msgid "bytecode" -msgstr "" +msgstr "bytecode" #: ../source/specifications/build-details/v1.0.rst:12 msgid ".pyc" -msgstr "" +msgstr ".pyc" #: ../source/specifications/build-details/v1.0.rst:12 msgid "optimized_bytecode" -msgstr "" +msgstr "optimized_bytecode" #: ../source/specifications/build-details/v1.0.rst:12 msgid "debug_bytecode" -msgstr "" +msgstr "debug_bytecode" #: ../source/specifications/build-details/v1.0.rst:12 msgid "extensions" @@ -15165,11 +17103,11 @@ msgstr "扩展" #: ../source/specifications/build-details/v1.0.rst:12 msgid ".cpython-313-x86\\_64-linux-gnu.so" -msgstr "" +msgstr ".cpython-313-x86\\_64-linux-gnu.so" #: ../source/specifications/build-details/v1.0.rst:12 msgid ".so" -msgstr "" +msgstr ".so" #: ../source/specifications/build-details/v1.0.rst:12 msgid "libpython" @@ -15177,43 +17115,47 @@ msgstr "libpython" #: ../source/specifications/build-details/v1.0.rst:12 msgid "Object containing details related to the ``libpython`` library." -msgstr "" +msgstr "包含与 ``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 "" +msgstr "dynamic" #: ../source/specifications/build-details/v1.0.rst:12 msgid "The path to the dynamic ``libpython`` library." -msgstr "" +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 "" +msgstr "/usr/lib/libpython3.14.so.1.0" #: ../source/specifications/build-details/v1.0.rst:12 msgid "lib/libpython3.14.so.1.0" -msgstr "" +msgstr "lib/libpython3.14.so.1.0" #: ../source/specifications/build-details/v1.0.rst:12 msgid "dynamic\\_stableabi" -msgstr "" +msgstr "dynamic\\_stableabi" #: ../source/specifications/build-details/v1.0.rst:12 msgid "The path to the dynamic ``libpython`` library for the stable ABI." -msgstr "" +msgstr "供稳定 ABI 使用的动态 ``libpython`` 库的路径。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "" @@ -15221,66 +17163,70 @@ msgid "" "``libpython`` library targeting the Stable ABI, otherwise this entry will be " "missing." msgstr "" +"如果 Python 安装提供了面向稳定 ABI 的动态 ``libpython`` 库,则 **必须** 包含" +"此字段,否则此条目将会缺失。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "If this key is present ``dynamic`` **MUST** also be set." -msgstr "" +msgstr "如果存在此键,则还 **必须** 设置 ``dynamic``。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "/usr/lib/libpython3.so" -msgstr "" +msgstr "/usr/lib/libpython3.so" #: ../source/specifications/build-details/v1.0.rst:12 msgid "lib/libpython3.so" -msgstr "" +msgstr "lib/libpython3.so" #: ../source/specifications/build-details/v1.0.rst:12 msgid "static" -msgstr "" +msgstr "static" #: ../source/specifications/build-details/v1.0.rst:12 msgid "The path to the static ``libpython`` library." -msgstr "" +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 "" +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 "" +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 "" +msgstr "link\\_extensions" #: ../source/specifications/build-details/v1.0.rst:12 msgid "Should extensions built against a dynamic ``libpython`` link to it?" -msgstr "" +msgstr "针对动态 ``libpython`` 构建的扩展是否应链接到该库?" #: ../source/specifications/build-details/v1.0.rst:12 msgid "*boolean*" -msgstr "" +msgstr "*布尔值*" #: ../source/specifications/build-details/v1.0.rst:12 msgid "c\\_api" -msgstr "" +msgstr "c\\_api" #: ../source/specifications/build-details/v1.0.rst:12 msgid "Object containing details related to the Python C API." -msgstr "" +msgstr "包含与 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 "" +msgstr "如果 Python 实现提供了 C API,则 **必须** 包含此小节,否则此小节将会缺失。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "**headers**" @@ -15288,45 +17234,47 @@ msgstr "**标头**" #: ../source/specifications/build-details/v1.0.rst:12 msgid "The path to the C API headers." -msgstr "" +msgstr "C API 头文件的路径。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "/usr/include/python3.14" -msgstr "" +msgstr "/usr/include/python3.14" #: ../source/specifications/build-details/v1.0.rst:12 msgid "include/python3.14" -msgstr "" +msgstr "include/python3.14" #: ../source/specifications/build-details/v1.0.rst:12 msgid "pkgconfig\\_path" -msgstr "" +msgstr "pkgconfig\\_path" #: ../source/specifications/build-details/v1.0.rst:12 msgid "The path to the pkg-config definition files." -msgstr "" +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 "" +msgstr "/usr/lib/pkgconfig" #: ../source/specifications/build-details/v1.0.rst:12 msgid "lib/pkgconfig" -msgstr "" +msgstr "lib/pkgconfig" #: ../source/specifications/build-details/v1.0.rst:12 msgid "arbitrary\\_data" -msgstr "" +msgstr "arbitrary\\_data" #: ../source/specifications/build-details/v1.0.rst:12 msgid "Object containing extra arbitrary data." -msgstr "" +msgstr "包含额外任意数据的对象。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "" @@ -15334,20 +17282,22 @@ msgid "" "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 "" +msgstr "核心元数据规范" #: ../source/specifications/core-metadata.rst:9 msgid "This page describes version 2.6, approved in May 2026." -msgstr "" +msgstr "本页面描述 2026 年 5 月批准的版本 2.6。" #: ../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 "" +msgstr "以下规范中定义的字段应被视为有效、完整且不再变更。必需的字段如下:" #: ../source/specifications/core-metadata.rst:14 msgid "``Metadata-Version``" @@ -15355,7 +17305,7 @@ msgstr "" #: ../source/specifications/core-metadata.rst:15 msgid "``Name``" -msgstr "" +msgstr "``Name``" #: ../source/specifications/core-metadata.rst:16 msgid "``Version``" @@ -15363,7 +17313,7 @@ msgstr "" #: ../source/specifications/core-metadata.rst:18 msgid "All the other fields are optional." -msgstr "" +msgstr "所有其他字段均为可选。" #: ../source/specifications/core-metadata.rst:20 msgid "" @@ -15376,12 +17326,20 @@ msgid "" "library :mod:`python:email.parser` module can parse using " "the :data:`~.python:email.policy.compat32` policy." msgstr "" +"元数据的标准文件格式(包括 :doc:`wheel 包 ` 和 " +":doc:`已安装项目 ` 中所用的格式)基于电子邮件头" +"部的格式。然而,电子邮件格式经历过多次修订,究竟哪一份电子邮件 RFC 适用于打包" +"元数据并未指明。在缺乏精确定义的情况下,实际标准由标准库 " +":mod:`python:email.parser` 模块在 :data:`~.python:email.policy.compat32` 策略" +"下所能解析的内容来确定。" #: ../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 "" +"每当将元数据序列化为字节流时(例如保存到文件),字符串都必须使用 UTF-8 编码进" +"行序列化。" #: ../source/specifications/core-metadata.rst:32 msgid "" @@ -15390,6 +17348,9 @@ msgid "" "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` 定义了将元数据转换为 JSON 兼容字典的方法,但这尚未被用作标准" +"交换格式。工具需要处理多年积累下来的海量现有软件包,这使得转向新格式十分困难" +"。" #: ../source/specifications/core-metadata.rst:37 msgid "" @@ -15400,16 +17361,22 @@ msgid "" "more relaxed formatting rules even for metadata files that are nominally " "less than version 2.1." msgstr "" +"*解读旧元数据:* 在 :pep:`566` 中,版本说明符字段的格式规范被放宽,以接受流行" +"发布工具所使用的语法(即取消了版本说明符必须用括号括起来的要求)。即使对于名" +"义上版本低于 2.1 的元数据文件,元数据消费方也可以使用这种更宽松的格式规则。" #: ../source/specifications/core-metadata.rst:48 msgid "Metadata-Version" -msgstr "" +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 "" +"文件格式的版本;合法值为 " +"\"1.0\"、\"1.1\"、\"1.2\"、\"2.1\"、\"2.2\"、\"2.3\"、\"2.4\"、\"2.5\" 和 " +"\"2.6\"。" #: ../source/specifications/core-metadata.rst:55 msgid "" @@ -15419,6 +17386,10 @@ msgid "" "(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" +"如果 ``metadata-version`` 大于消费元数据的自动化工具所支持的版本号上限,该工" +"具应该发出警告;如果 ``metadata-version`` 的主版本号大于其所支持的版本号上限" +",则必须失败(如 :ref:`版本说明符规范 ` 中所述,主版本号" +"是第一个点号之前的数值)。" #: ../source/specifications/core-metadata.rst:62 msgid "" @@ -15426,6 +17397,8 @@ msgid "" "metadata using the lowest metadata version that includes all of the needed " "fields." msgstr "" +"为了获得更广泛的兼容性,构建工具可以选用包含全部所需字段的最低元数据版本来生" +"成分发元数据。" #: ../source/specifications/core-metadata.rst:66 #: ../source/specifications/core-metadata.rst:84 @@ -15448,7 +17421,7 @@ msgstr "" #: ../source/specifications/core-metadata.rst:940 #: ../source/specifications/core-metadata.rst:1037 msgid "Example::" -msgstr "" +msgstr "示例::" #: ../source/specifications/core-metadata.rst:74 msgid "Name" @@ -15456,7 +17429,7 @@ msgstr "名称" #: ../source/specifications/core-metadata.rst:77 msgid "Added restrictions on format from the :ref:`name format `." -msgstr "" +msgstr "添加了来自 :ref:`名称格式 ` 的格式限制。" #: ../source/specifications/core-metadata.rst:80 msgid "" @@ -15464,12 +17437,16 @@ msgid "" "distribution. It must conform to the :ref:`name format specification `." msgstr "" +"分发包的名称。名称字段是分发包的主要标识符。它必须符合 :ref:`名称格式规范 " +"`。" #: ../source/specifications/core-metadata.rst:88 msgid "" "For comparison purposes, the names should be :ref:`normalized ` before comparing." msgstr "" +"为便于比较,名称在比较之前应该先进行 :ref:`规范化 ` 处理" +"。" #: ../source/specifications/core-metadata.rst:93 msgid "Version" @@ -15481,10 +17458,12 @@ msgid "" "in the format specified in the :ref:`Version specifier specification " "`." msgstr "" +"一个包含分发包版本号的字符串。该字段必须采用 :ref:`版本说明符规范 ` 中规定的格式。" #: ../source/specifications/core-metadata.rst:109 msgid "Dynamic (multiple use)" -msgstr "" +msgstr "Dynamic(多次使用)" #: ../source/specifications/core-metadata.rst:112 msgid "" @@ -15492,6 +17471,9 @@ msgid "" "``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 "" +"对于在源分发中存在且同时标记为 ``Dynamic`` 的多次使用字段,在由该源分发构建" +"的 wheel 包中只能向其追加内容。此前,Dynamic 中列出的任何字段在 sdist 中都会" +"被忽略。" #: ../source/specifications/core-metadata.rst:117 msgid "" @@ -15499,12 +17481,14 @@ msgid "" "``Name``, ``Version``, and ``Metadata-Version`` may not be specified in this " "field." msgstr "" +"一个包含另一个核心元数据字段名称的字符串。字段名 ``Name``、``Version`` 和 " +"``Metadata-Version`` 不得在此字段中指定。" #: ../source/specifications/core-metadata.rst:121 msgid "" "When found in the metadata of a source distribution, the following rules " "apply:" -msgstr "" +msgstr "当在源分发的元数据中发现该字段时,适用以下规则:" #: ../source/specifications/core-metadata.rst:124 msgid "" @@ -15513,12 +17497,17 @@ msgid "" "field is not in the sdist, and not marked as ``Dynamic``, then it MUST NOT " "be present in the wheel." msgstr "" +"如果某字段 *未* 标记为 ``Dynamic``,那么在由该 sdist 构建的任何 wheel 包中," +"该字段的值都必须与 sdist 中的值相同。如果该字段不在 sdist 中,也未标记为 " +"``Dynamic``,则它不得出现在 wheel 包中。" #: ../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``,那么在由该 sdist 构建的 wheel 包中,它" +"可以取任何有效的值(包括完全不出现的情况)。" #: ../source/specifications/core-metadata.rst:130 msgid "" @@ -15527,6 +17516,9 @@ msgid "" "sdist. The wheel MAY add further values, but it MUST NOT remove, reorder, or " "modify the values present in the sdist." msgstr "" +"如果某个多次使用字段存在于 sdist 中且同时标记为 ``Dynamic``,那么由该 sdist " +"构建的 wheel 包必须包含 sdist 中已有的值。该 wheel 包可以添加更多值,但不得删" +"除、重排或修改 sdist 中已有的值。" #: ../source/specifications/core-metadata.rst:135 msgid "" @@ -15534,6 +17526,8 @@ msgid "" "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 "" +"如果 sdist 的元数据版本低于 2.2,那么所有字段都应视为已用 ``Dynamic`` 指定(" +"即由该 sdist 构建的 wheel 包的元数据不受特殊限制)。" #: ../source/specifications/core-metadata.rst:139 msgid "" @@ -15542,6 +17536,8 @@ msgid "" "build time, and may not be the same as the value in the sdist or in other " "wheels for the project." msgstr "" +"在源分发以外的任何上下文中,``Dynamic`` 仅用于提供信息,表示该字段的值是在构" +"建 wheel 包时计算得出的,可能与 sdist 或该项目其他 wheel 包中的值不同。" #: ../source/specifications/core-metadata.rst:144 msgid "" @@ -15555,15 +17551,21 @@ msgid "" "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 包中具有相同的值,因为有些 wheel 包并非直接从 sdist 构建,而" +"是由现有的 wheel 包修改而来(例如 ``auditwheel`` 工具就会这样做,在为 PyPI 构" +"建 wheel 包时它很常用)。这类修改 *有可能* 包括更改元数据(甚至非动态元数据)" +"。类似地,如果你有一个 sdist 和一个并非由该 sdist 构建的 wheel 包,那么即使字" +"段未标记为 ``Dynamic``,你也不能认为该 wheel 包的元数据与 sdist 的一致。" #: ../source/specifications/core-metadata.rst:154 msgid "" "Full details of the semantics of ``Dynamic`` are described in :pep:`643`." -msgstr "" +msgstr "``Dynamic`` 语义的完整细节在 :pep:`643` 中描述。" #: ../source/specifications/core-metadata.rst:159 msgid "Platform (multiple use)" -msgstr "" +msgstr "Platform(多次使用)" #: ../source/specifications/core-metadata.rst:163 msgid "" @@ -15571,6 +17573,8 @@ msgid "" "distribution which is not listed in the \"Operating System\" Trove " "classifiers. See \"Classifier\" below." msgstr "" +"一条平台说明,用于描述分发包所支持的、但未列在 \"Operating System\" Trove 分" +"类器中的操作系统。参见下文的 \"Classifier\"。" #: ../source/specifications/core-metadata.rst:167 #: ../source/specifications/core-metadata.rst:473 @@ -15590,7 +17594,7 @@ msgstr "例子::" #: ../source/specifications/core-metadata.rst:175 msgid "Supported-Platform (multiple use)" -msgstr "" +msgstr "Supported-Platform(多次使用)" #: ../source/specifications/core-metadata.rst:179 msgid "" @@ -15599,6 +17603,9 @@ msgid "" "binary distribution was compiled. The semantics of the Supported-Platform " "field are not specified in this PEP." msgstr "" +"包含 PKG-INFO 文件的二进制分发会在其元数据中使用 Supported-Platform 字段,来" +"指定编译该二进制分发时所面向的操作系统和 CPU。本 PEP 未规定 Supported-" +"Platform 字段的语义。" #: ../source/specifications/core-metadata.rst:193 msgid "Summary" @@ -15606,11 +17613,11 @@ msgstr "总结" #: ../source/specifications/core-metadata.rst:197 msgid "A one-line summary of what the distribution does." -msgstr "" +msgstr "对分发包功能的一行式总结。" #: ../source/specifications/core-metadata.rst:217 msgid "This field may be specified in the message body instead." -msgstr "" +msgstr "此字段可以改为在消息主体中指定。" #: ../source/specifications/core-metadata.rst:220 msgid "" @@ -15619,6 +17626,8 @@ msgid "" "size for this field, though people shouldn't include their instruction " "manual as the description." msgstr "" +"对分发包更长的描述,可以长达数段。处理元数据的软件不应假设此字段有任何最大长" +"度限制,不过人们也不应把使用说明手册整个当作描述放进来。" #: ../source/specifications/core-metadata.rst:225 msgid "" @@ -15627,6 +17636,9 @@ msgid "" "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 标记编写 [1]_。对于处理元数据的程序而言" +",支持标记是可选的;程序也可以按原样显示该字段的内容。这意味着作者在使用标记" +"时应该保持保守。" #: ../source/specifications/core-metadata.rst:231 msgid "" @@ -15635,6 +17647,9 @@ msgid "" "pipe (\"|\") char. As a result, the Description field is encoded into a " "folded field that can be interpreted by RFC822 parser [2]_." msgstr "" +"为了在 RFC 822 格式下支持空行和带缩进的行,任何 CRLF 字符后面都必须缀上 7 个" +"空格和一个竖线(\"|\")字符。这样一来,Description 字段就被编码为一个可由 " +"RFC822 解析器解读的折叠字段 [2]_。" #: ../source/specifications/core-metadata.rst:248 msgid "" @@ -15642,6 +17657,8 @@ msgid "" "and a pipe char have to be replaced by a single CRLF when the field is " "unfolded using a RFC822 reader." msgstr "" +"这种编码意味着,当使用 RFC822 读取器展开该字段时,其中每一处“CRLF 后跟 7 个空" +"格和竖线字符”的出现都必须替换为单个 CRLF。" #: ../source/specifications/core-metadata.rst:252 msgid "" @@ -15649,16 +17666,20 @@ msgid "" "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 "" +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 "" +"一个字符串,指明分发包描述中所使用的标记语法(如果有),以便工具能够智能地渲" +"染该描述。" #: ../source/specifications/core-metadata.rst:268 msgid "" @@ -15676,6 +17697,14 @@ msgid "" "possibility for PyPI and other tools to be able to render Markdown and other " "formats." msgstr "" +"历史上,PyPI 支持纯文本和 `reStructuredText (reST) `_ 格式的描述,并" +"能将 reST 渲染为 HTML。然而,分发包作者通常使用 `Markdown `_ 编写描述(:rfc:`7763`),因为许多代" +"码托管站点会渲染 Markdown README,作者便复用该文件作为描述。PyPI 无法识别这种" +"格式,因此不能正确渲染描述。这导致 PyPI 上出现了许多描述渲染不佳的软件包:" +"Markdown 被留作纯文本显示,甚至被尝试当作 reST 来渲染。此字段允许分发包作者指" +"定描述的格式,使 PyPI 和其他工具有可能渲染 Markdown 及其他格式。" #: ../source/specifications/core-metadata.rst:281 msgid "" @@ -15684,26 +17713,29 @@ msgid "" "Type.html>`_). Briefly, this means that it has a ``type/subtype`` part and " "then it can optionally have a number of parameters:" msgstr "" +"此字段的格式与 HTTP 中的 ``Content-Type`` 头部相同(即:`RFC 1341 `_)。简而言之,它包含一个 " +"``type/subtype`` 部分,其后还可以带有若干参数:" #: ../source/specifications/core-metadata.rst:287 msgid "Format::" -msgstr "" +msgstr "格式::" #: ../source/specifications/core-metadata.rst:291 msgid "The ``type/subtype`` part has only a few legal values:" -msgstr "" +msgstr "``type/subtype`` 部分只有少数几个合法值:" #: ../source/specifications/core-metadata.rst:293 msgid "``text/plain``" -msgstr "" +msgstr "``text/plain``" #: ../source/specifications/core-metadata.rst:294 msgid "``text/x-rst``" -msgstr "" +msgstr "``text/x-rst``" #: ../source/specifications/core-metadata.rst:295 msgid "``text/markdown``" -msgstr "" +msgstr "``text/markdown``" #: ../source/specifications/core-metadata.rst:297 msgid "" @@ -15711,6 +17743,8 @@ msgid "" "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 "" @@ -15719,14 +17753,17 @@ msgid "" "allows specifying the variant of Markdown in use (defaults to ``GFM`` if not " "specified). Currently, two variants are recognized:" msgstr "" +"其他参数可能特定于所选择的子类型。例如,对于 ``markdown`` 子类型,有一个可选" +"的 ``variant`` 参数,用于指定所使用的 Markdown 变体(未指定时默认为 ``GFM``)" +"。目前可识别的变体有两种:" #: ../source/specifications/core-metadata.rst:306 msgid "``GFM`` for :rfc:`GitHub-flavored Markdown <7764#section-3.2>`" -msgstr "" +msgstr "``GFM``,对应 :rfc:`GitHub 风格 Markdown <7764#section-3.2>`" #: ../source/specifications/core-metadata.rst:307 msgid "``CommonMark`` for :rfc:`CommonMark <7764#section-3.5>`" -msgstr "" +msgstr "``CommonMark``,对应 :rfc:`CommonMark <7764#section-3.5>`" #: ../source/specifications/core-metadata.rst:325 msgid "" @@ -15734,6 +17771,8 @@ msgid "" "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 "" @@ -15741,6 +17780,8 @@ msgid "" "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 "" @@ -15748,6 +17789,8 @@ msgid "" "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 "" @@ -15755,16 +17798,18 @@ msgid "" "``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 "" +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 "" +msgstr "一个由附加关键字组成的列表,以逗号分隔,用于帮助在更大的目录中搜索该分发包。" #: ../source/specifications/core-metadata.rst:359 msgid "" @@ -15773,33 +17818,38 @@ msgid "" "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 "" +msgstr "Author" #: ../source/specifications/core-metadata.rst:372 msgid "" "A string containing the author's name at a minimum; additional contact " "information may be provided." -msgstr "" +msgstr "一个至少包含作者姓名的字符串;也可以提供额外的联系信息。" #: ../source/specifications/core-metadata.rst:385 msgid "Author-email" -msgstr "" +msgstr "Author-email" #: ../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 "" +"一个包含作者电子邮件地址的字符串。它可以包含符合 RFC-822 ``From:`` 头部合法形" +"式的姓名和电子邮件地址。" #: ../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 "" +msgstr "根据 RFC-822,此字段可以包含多个以逗号分隔的电子邮件地址::" #: ../source/specifications/core-metadata.rst:407 msgid "Maintainer" @@ -15809,7 +17859,7 @@ msgstr "维护者" msgid "" "A string containing the maintainer's name at a minimum; additional contact " "information may be provided." -msgstr "" +msgstr "一个至少包含维护者姓名的字符串;也可以提供额外的联系信息。" #: ../source/specifications/core-metadata.rst:414 msgid "" @@ -15817,16 +17867,20 @@ msgid "" "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 "" +msgstr "Maintainer-email" #: ../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 "" +"一个包含维护者电子邮件地址的字符串。它可以包含符合 RFC-822 ``From:`` 头部合法" +"形式的姓名和电子邮件地址。" #: ../source/specifications/core-metadata.rst:436 msgid "" @@ -15834,14 +17888,16 @@ msgid "" "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 "" +msgstr "License" #: ../source/specifications/core-metadata.rst:457 msgid "in favour of ``License-Expression``." -msgstr "" +msgstr "改用 ``License-Expression``。" #: ../source/specifications/core-metadata.rst:461 msgid "" @@ -15850,6 +17906,9 @@ msgid "" "``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 "" @@ -15860,16 +17919,22 @@ msgid "" "``Classifier`` field, or to indicate a variation or exception to such a " "license." msgstr "" +"一段文本,用于说明分发包适用的许可证,适用于该许可证并非从 \"License\" Trove " +"分类器中选取的情况。参见下文的 :ref:`\"Classifier\" `。" +"此字段还可用于指定经由 ``Classifier`` 字段指明的某个许可证的特定版本,或指出" +"对该许可证的变体或例外情况。" #: ../source/specifications/core-metadata.rst:486 msgid "License-Expression" -msgstr "" +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:`许可证表达式 ` 文本字符串,具体规" +"定见 :doc:`/specifications/license-expression`。" #: ../source/specifications/core-metadata.rst:494 msgid "" @@ -15879,10 +17944,14 @@ msgid "" "or :term:`Wheel`), not the project overall or other files related to the " "project (including other distribution archives)." msgstr "" +"请注意,此字段中的表达式仅适用于包含该字段元数据的 :term:`Distribution " +"Archive`,例如 :term:`源分发 ` 或 " +":term:`Wheel`,而不适用于整个项目或与项目相关的其他文件(包括其他分发归档文件" +")。" #: ../source/specifications/core-metadata.rst:515 msgid "License-File (multiple use)" -msgstr "" +msgstr "License-File(可多次使用)" #: ../source/specifications/core-metadata.rst:519 msgid "" @@ -15890,10 +17959,12 @@ msgid "" "The path is located within the project source tree, relative to the project " "root directory. For details see :pep:`639`." msgstr "" +"每个条目都是一个字符串,表示许可证相关文件的路径。该路径位于项目源码树内,相" +"对于项目根目录。详情参见 :pep:`639`。" #: ../source/specifications/core-metadata.rst:536 msgid "Classifier (multiple use)" -msgstr "" +msgstr "Classifier(可多次使用)" #: ../source/specifications/core-metadata.rst:540 msgid "" @@ -15902,6 +17973,9 @@ msgid "" "Package Index publishes a dynamic list of `currently defined classifiers " "`__." msgstr "" +"每个条目都是一个字符串,为分发包给出一个分类值。分类器在 :pep:`301` 中有所描" +"述,Python 包索引则发布动态维护的 `当前已定义的分类器 `__ 列表。" #: ../source/specifications/core-metadata.rst:546 msgid "" @@ -15909,17 +17983,20 @@ msgid "" "``License-Expression`` instead. See `PEP 639 `_." msgstr "" +"自 Metadata 2.4 起,``License ::`` 分类器已被弃用,请改用 ``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 "" +msgstr "此字段可以在分号后跟一个环境标记。" #: ../source/specifications/core-metadata.rst:561 msgid "Requires-Dist (multiple use)" -msgstr "" +msgstr "Requires-Dist(可多次使用)" #: ../source/specifications/core-metadata.rst:564 #: ../source/specifications/core-metadata.rst:627 @@ -15928,23 +18005,23 @@ msgstr "" msgid "" "The field format specification was relaxed to accept the syntax used by " "popular publishing tools." -msgstr "" +msgstr "该字段的格式规范已放宽,以接受流行的发布工具所使用的语法。" #: ../source/specifications/core-metadata.rst:568 msgid "" "Each entry contains a string naming some other distutils project required by " "this distribution." -msgstr "" +msgstr "每个条目包含一个字符串,给出此分发包所需的某个其他 distutils 项目的名称。" #: ../source/specifications/core-metadata.rst:571 msgid "The format of a requirement string contains from one to four parts:" -msgstr "" +msgstr "需求字符串的格式包含一到四个部分:" #: ../source/specifications/core-metadata.rst:573 msgid "" "A project name, in the same format as the ``Name:`` field. The only " "mandatory part." -msgstr "" +msgstr "项目名称,格式与 ``Name:`` 字段相同。这是唯一必需的部分。" #: ../source/specifications/core-metadata.rst:575 msgid "" @@ -15953,35 +18030,40 @@ msgid "" "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 "" +msgstr "分号后面的环境标记。这表示该需求只在指定条件下才需要。" #: ../source/specifications/core-metadata.rst:585 msgid "" "The project names should correspond to names as found on the `Python Package " "Index`_." -msgstr "" +msgstr "项目名称应该与 `Python Package Index`_ 上的名称相对应。" #: ../source/specifications/core-metadata.rst:588 msgid "" "Version specifiers must follow the rules described in :doc:`version-" "specifiers`." -msgstr "" +msgstr "版本说明符必须遵循 :doc:`version-specifiers` 中描述的规则。" #: ../source/specifications/core-metadata.rst:591 msgid "" "See :ref:`dependency-specifiers` for full details of the allowed format." -msgstr "" +msgstr "关于允许格式的完整细节,请参见 :ref:`dependency-specifiers`。" #: ../source/specifications/core-metadata.rst:604 msgid "Requires-Python" @@ -15993,24 +18075,28 @@ msgid "" "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 "" +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 "" +msgstr "此字段后面不能跟环境标记。" #: ../source/specifications/core-metadata.rst:624 msgid "Requires-External (multiple use)" -msgstr "" +msgstr "Requires-External(可多次使用)" #: ../source/specifications/core-metadata.rst:631 msgid "" @@ -16019,12 +18105,16 @@ msgid "" "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 "" @@ -16033,24 +18123,27 @@ msgid "" "the :ref:`Version specifier specification `: they should " "correspond to the version scheme used by the external dependency." msgstr "" +"由于它们指的是非 Python 软件的发布版本,此字段的版本号 **不** 需要遵循 " +":ref:`版本说明符规范 ` 中规定的格式:它们应该与外部依赖项" +"所使用的版本方案相对应。" #: ../source/specifications/core-metadata.rst:647 msgid "Notice that there is no particular rule on the strings to be used." -msgstr "" +msgstr "请注意,对所使用的字符串没有特定规则。" #: ../source/specifications/core-metadata.rst:659 msgid "Project-URL (multiple-use)" -msgstr "" +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 "" +msgstr "一个字符串,包含项目的一个可浏览 URL 及其标签,二者以逗号分隔。" #: ../source/specifications/core-metadata.rst:670 msgid "The label is free text limited to 32 characters." -msgstr "" +msgstr "标签是自由文本,长度限制为 32 个字符。" #: ../source/specifications/core-metadata.rst:672 msgid "" @@ -16059,10 +18152,13 @@ msgid "" "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 包索引)可以使用标准的规范" +"化过程来发现“知名(well-known)”标签,这些标签在渲染供人阅读时可以被给予特殊" +"的展示效果。参见 :ref:`well-known-project-urls`。" #: ../source/specifications/core-metadata.rst:682 msgid "Provides-Extra (multiple use)" -msgstr "" +msgstr "Provides-Extra(可多次使用)" #: ../source/specifications/core-metadata.rst:685 msgid "" @@ -16070,6 +18166,8 @@ msgid "" "required). For older metadata versions, value restrictions were brought into " "line with ``Name:`` and normalization rules were introduced." msgstr "" +":pep:`685` 将有效值限制为无歧义的(即无需规范化)。对于较旧的元数据版本,值限" +"制已与 ``Name:`` 保持一致,并引入了规范化规则。" #: ../source/specifications/core-metadata.rst:690 msgid "" @@ -16079,12 +18177,15 @@ msgid "" "hyphen. Names are limited to those which match the following regex (which " "guarantees unambiguity)::" msgstr "" +"一个包含可选功能名称的字符串。有效名称只能由小写 ASCII 字母、ASCII 数字和连字" +"符组成。名称必须以字母或数字开头和结尾。连字符后面不能紧跟另一个连字符。名称" +"仅限于匹配以下正则表达式(这保证了无歧义性)的那些名称::" #: ../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 "" +msgstr "指定的名称可用于使某个依赖项以是否请求了该可选功能为条件。" #: ../source/specifications/core-metadata.rst:706 msgid "" @@ -16093,6 +18194,9 @@ msgid "" "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 "" @@ -16100,12 +18204,14 @@ msgid "" "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 "" +msgstr "指定 ``Provides-Extra:`` 而不在任何 ``Requires-Dist:`` 中引用它也是合法的。" #: ../source/specifications/core-metadata.rst:723 msgid "" @@ -16114,6 +18220,9 @@ msgid "" "comparisons. Tools writing metadata MUST raise an error if two ``Provides-" "Extra:`` entries would clash after being normalized." msgstr "" +"在为较旧的元数据版本写入数据时,名称必须按照 ``Name:`` 字段在执行比较时所用的" +"相同规则进行规范化。如果两个 ``Provides-Extra:`` 条目在规范化后会发生冲突,写" +"入元数据的工具必须抛出错误。" #: ../source/specifications/core-metadata.rst:728 msgid "" @@ -16124,10 +18233,14 @@ msgid "" "Tools MAY choose to raise an error when reading an invalid name for older " "metadata versions." msgstr "" +"在读取较旧元数据版本的数据时,如果此字段的值在较新的元数据版本下将是无效的," +"工具应该发出警告。如果某个值在任何核心元数据版本中按照 ``Name:`` 的规则都是无" +"效的,则应该警告用户并忽略该值,以避免歧义。对于较旧元数据版本中的无效名称," +"工具可以选择在读取时抛出错误。" #: ../source/specifications/core-metadata.rst:738 msgid "Import-Name (multiple use)" -msgstr "" +msgstr "Import-Name(可多次使用)" #: ../source/specifications/core-metadata.rst:742 msgid "" @@ -16138,6 +18251,10 @@ msgid "" "project. This implies that the metadata MUST be consistent across all sdists " "and wheels for a project release." msgstr "" +"一个包含导入名称的字符串,该名称由项目在安装后独占提供。指定的导入名称必须是" +"有效的 Python 标识符,或者可以为空。对于项目的同一版本,此字段中列出的导入名" +"称在项目安装到 *某些* 平台上时必须是可以导入的。这意味着,项目元数据在同一次" +"发布的所有 sdist 和 wheel 包中必须保持一致。" #: ../source/specifications/core-metadata.rst:749 #: ../source/specifications/core-metadata.rst:804 @@ -16147,6 +18264,9 @@ msgid "" "signals to tools that the import name is not part of the public API for the " "project." msgstr "" +"导入名称后面可以跟一个分号以及术语 \"private\"(例如 ``; private``),分号两" +"侧可以带有任意数量的空白。这会向工具表明,该导入名称不属于项目公开 API 的一部" +"分。" #: ../source/specifications/core-metadata.rst:754 #: ../source/specifications/core-metadata.rst:809 @@ -16156,6 +18276,9 @@ msgid "" "intervening names from that name to the top-level name SHOULD also be listed " "appropriately in ``Import-Name`` and/or ``Import-Namespace``." msgstr "" +"项目应该列出由该项目独占提供的所有最短导入名称。如果这些最短名称中有点分名称" +",那么从该名称到顶层名称之间的所有中间名称,也应该适当地列入 ``Import-Name`` " +"和/或 ``Import-Namespace``。" #: ../source/specifications/core-metadata.rst:759 #: ../source/specifications/core-metadata.rst:819 @@ -16163,6 +18286,8 @@ 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 "" @@ -16174,6 +18299,10 @@ msgid "" "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`` 条目重叠时" +",工具应该报错。这是为了避免项目意外遮蔽另一个项目的代码。在把项目安装到已有" +"环境、且存在与已安装项目的导入名称重叠的情况时,工具可以发出警告或报错。" #: ../source/specifications/core-metadata.rst:770 msgid "" @@ -16181,6 +18310,8 @@ msgid "" "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 模块)。" #: ../source/specifications/core-metadata.rst:774 msgid "" @@ -16193,10 +18324,16 @@ msgid "" "(e.g. ``packaging.utils.canonicalize_name(name, validate=True).replace(\"-" "\", \"_\")``) can be used if some answer is needed." msgstr "" +"由于项目可以没有 ``Import-Name`` 元数据(要么是因为项目使用了较旧的元数据版本" +",要么是因为它没有指定任何导入名称),工具便无从得知该项目提供了哪些名称。不" +"过在实践中,大多数项目的项目名称都与它们的导入名称相一致。因此,做一个合理的" +"假设是:在需要给出某种答案时,可以使用按某种方式规范化为导入名称的项目名称(" +"例如 ``packaging.utils.canonicalize_name(name, validate=True).replace(\"-\", " +"\"_\")``)。" #: ../source/specifications/core-metadata.rst:794 msgid "Import-Namespace (multiple use)" -msgstr "" +msgstr "Import-Namespace(可多次使用)" #: ../source/specifications/core-metadata.rst:798 msgid "" @@ -16207,6 +18344,10 @@ msgid "" "the same import name in ``Import-Namespace`` can be installed together " "without shadowing each other." msgstr "" +"一个包含导入名称的字符串,该名称由项目在安装后提供,但并非独占提供。指定的导" +"入名称必须是有效的 Python 标识符。此字段用于命名空间包,即多个项目可以为同一" +"个导入命名空间做出贡献的情形。多个项目都在 ``Import-Namespace`` 中列出同一个" +"导入名称时,可以安装在一起而不会相互遮蔽。" #: ../source/specifications/core-metadata.rst:814 msgid "" @@ -16215,14 +18356,17 @@ msgid "" "implies that the metadata MUST be consistent across all sdists and wheels " "for a project release." msgstr "" +"对于项目的同一版本,此字段中列出的导入名称在项目安装到 *某些* 平台上时必须是" +"可以导入的。这意味着,项目元数据在同一次发布的所有 sdist 和 wheel 包中必须保" +"持一致。" #: ../source/specifications/core-metadata.rst:822 msgid "Note that ``Import-Namespace`` CANNOT be empty like ``Import-Name``." -msgstr "" +msgstr "注意,``Import-Namespace`` 不能像 ``Import-Name`` 那样为空。" #: ../source/specifications/core-metadata.rst:831 msgid "Rarely Used Fields" -msgstr "" +msgstr "很少使用的字段" #: ../source/specifications/core-metadata.rst:833 msgid "" @@ -16231,6 +18375,9 @@ msgid "" "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 "" @@ -16241,10 +18388,14 @@ msgid "" "used for their originally intended purpose in combination with a curated " "package repository." msgstr "" +"因此,流行的安装工具会完全忽略这些字段,这反过来又意味着软件包发布者几乎没有" +"什么动力去恰当地设置它们。不过,它们仍保留在元数据规范中,因为它们对于信息展" +"示用途仍有潜在价值,而且与经过人工维护的软件包仓库结合使用时,也可以用于其最" +"初的预期用途。" #: ../source/specifications/core-metadata.rst:848 msgid "Provides-Dist (multiple use)" -msgstr "" +msgstr "Provides-Dist(可多次使用)" #: ../source/specifications/core-metadata.rst:855 msgid "" @@ -16252,6 +18403,8 @@ msgid "" "within this distribution. This field *must* include the project identified " "in the ``Name`` field, followed by the version : Name (Version)." msgstr "" +"每个条目包含一个字符串,给出包含在此分发包中的某个 Distutils 项目的名称。此字" +"段 *必须* 包含 ``Name`` 字段所标识的项目,后面跟版本号,即:Name (Version)。" #: ../source/specifications/core-metadata.rst:860 msgid "" @@ -16261,6 +18414,10 @@ msgid "" "which is now available as a separate distribution. Installing such a source " "distribution satisfies requirements for both ``ZODB`` and ``transaction``." msgstr "" +"分发包还可以提供额外的名称,例如用来表明多个项目被打包在了一起。举例来说" +",``ZODB`` 项目的源分发在历史上曾包含 ``transaction`` 项目,而后者现在已作为" +"单独的分发包提供。安装这样的源分发即可同时满足对 ``ZODB`` 和 ``transaction`` " +"两者的需求。" #: ../source/specifications/core-metadata.rst:867 msgid "" @@ -16272,6 +18429,10 @@ msgid "" "bindings``, allowing other projects to depend only on having at most one of " "them installed." msgstr "" +"分发包还可以提供一个“虚拟”项目名称,它不对应任何单独分发的项目:这样的名称可" +"以用来表示一种抽象能力,而该能力可以由多个项目中的某一个提供。例如,多个项目" +"都可以为某个给定的 ORM 提供 RDBMS 绑定:每个项目都可以声明自己提供 ``ORM-" +"bindings``,从而让其他项目只需依赖于“至多安装其中之一”这一条件。" #: ../source/specifications/core-metadata.rst:875 msgid "" @@ -16279,10 +18440,12 @@ msgid "" "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 "" +msgstr "Obsoletes-Dist(可多次使用)" #: ../source/specifications/core-metadata.rst:897 msgid "" @@ -16290,12 +18453,14 @@ msgid "" "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 "" +msgstr "可以提供版本声明。版本号必须采用 :doc:`version-specifiers` 中规定的格式。" #: ../source/specifications/core-metadata.rst:906 msgid "" @@ -16303,10 +18468,12 @@ msgid "" "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 "" +msgstr "已弃用的字段" #: ../source/specifications/core-metadata.rst:921 msgid "" @@ -16316,23 +18483,26 @@ msgid "" "prior to the removal). Tools SHOULD warn users when deprecated fields are " "used." msgstr "" +"应当避免使用已弃用的字段,但它们仍是有效的元数据字段。它们可能会在核心元数据" +"标准的未来版本中被移除(届时,它们将只在所声明的元数据版本早于移除时所涉版本" +"的文件中仍然有效)。当使用了已弃用的字段时,工具应该警告用户。" #: ../source/specifications/core-metadata.rst:930 msgid "Home-page" -msgstr "" +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 "" +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 "" +msgstr "一个包含分发包主页 URL 的字符串。" #: ../source/specifications/core-metadata.rst:947 msgid "Download-URL" -msgstr "" +msgstr "Download-URL" #: ../source/specifications/core-metadata.rst:955 msgid "" @@ -16341,6 +18511,9 @@ msgid "" "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" @@ -16348,13 +18521,13 @@ msgstr "要求" #: ../source/specifications/core-metadata.rst:964 msgid "in favour of ``Requires-Dist``" -msgstr "" +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 "" +msgstr "每个条目包含一个字符串,描述此软件包所需的某个其他模块或软件包。" #: ../source/specifications/core-metadata.rst:970 msgid "" @@ -16362,6 +18535,8 @@ msgid "" "package name usable with the ``import`` statement, optionally followed by a " "version declaration within parentheses." msgstr "" +"需求字符串的格式与可用于 ``import`` 语句的模块或软件包名称的格式相同,后面可" +"以选择性地在圆括号内跟一个版本声明。" #: ../source/specifications/core-metadata.rst:974 msgid "" @@ -16373,32 +18548,41 @@ msgid "" "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`` 类所接受的格式:两到三个以点分隔的数字部" +"分,末尾可带一个可选的“预发布”标签,该标签由字母 'a' 或 'b' 后跟一个数字组成" +"。版本号的示例有 \"1.0\"、\"2.3a2\"、\"1.3.99\"," #: ../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 "" +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 "" +msgstr "Provides" #: ../source/specifications/core-metadata.rst:1004 msgid "in favour of ``Provides-Dist``" -msgstr "" +msgstr "改用 ``Provides-Dist``" #: ../source/specifications/core-metadata.rst:1007 msgid "" @@ -16408,14 +18592,17 @@ msgid "" "(without a comparison operator); the package’s version number will be " "implied if none is specified." msgstr "" +"每个条目包含一个字符串,描述此软件包安装后将提供的某个软件包或模块。这些字符" +"串应该与 Requirements 字段中使用的字符串相匹配。可以提供版本声明(不带比较运" +"算符);如果未指定,则隐含使用该软件包的版本号。" #: ../source/specifications/core-metadata.rst:1023 msgid "Obsoletes" -msgstr "" +msgstr "Obsoletes" #: ../source/specifications/core-metadata.rst:1026 msgid "in favour of ``Obsoletes-Dist``" -msgstr "" +msgstr "改用 ``Obsoletes-Dist``" #: ../source/specifications/core-metadata.rst:1029 msgid "" @@ -16423,6 +18610,8 @@ msgid "" "package renders obsolete, meaning that the two packages should not be " "installed at the same time. Version declarations can be supplied." msgstr "" +"每个条目包含一个字符串,描述会被此软件包淘汰的某个软件包或模块,也就是说这两" +"个软件包不应该同时安装。可以提供版本声明。" #: ../source/specifications/core-metadata.rst:1033 msgid "" @@ -16430,86 +18619,92 @@ msgid "" "e.g. Gorgon 2.3 gets subsumed into Torqued Python 1.0. When you install " "Torqued Python, the Gorgon package should be removed." msgstr "" +"此字段最常见的用途是软件包名称发生变更的情况,例如 Gorgon 2.3 被并入 Torqued " +"Python 1.0。当你安装 Torqued Python 时,应当移除 Gorgon 软件包。" #: ../source/specifications/core-metadata.rst:1045 msgid "March 2001: Core metadata 1.0 was approved through :pep:`241`." -msgstr "" +msgstr "2001 年 3 月:核心元数据 1.0 通过 :pep:`241` 获得批准。" #: ../source/specifications/core-metadata.rst:1047 msgid "April 2003: Core metadata 1.1 was approved through :pep:`314`." -msgstr "" +msgstr "2003 年 4 月:核心元数据 1.1 通过 :pep:`314` 获得批准。" #: ../source/specifications/core-metadata.rst:1049 msgid "February 2010: Core metadata 1.2 was approved through :pep:`345`." -msgstr "" +msgstr "2010 年 2 月:核心元数据 1.2 通过 :pep:`345` 获得批准。" #: ../source/specifications/core-metadata.rst:1051 msgid "February 2018: Core metadata 2.1 was approved through :pep:`566`." -msgstr "" +msgstr "2018 年 2 月:核心元数据 2.1 通过 :pep:`566` 获得批准。" #: ../source/specifications/core-metadata.rst:1053 msgid "Added ``Description-Content-Type`` and ``Provides-Extra``." -msgstr "" +msgstr "添加了 ``Description-Content-Type`` 和 ``Provides-Extra``。" #: ../source/specifications/core-metadata.rst:1054 msgid "Added canonical method for transforming metadata to JSON." -msgstr "" +msgstr "添加了将元数据转换为 JSON 的规范方法。" #: ../source/specifications/core-metadata.rst:1055 msgid "Restricted the grammar of the ``Name`` field." -msgstr "" +msgstr "限制了 ``Name`` 字段的语法。" #: ../source/specifications/core-metadata.rst:1057 msgid "October 2020: Core metadata 2.2 was approved through :pep:`643`." -msgstr "" +msgstr "2020 年 10 月:核心元数据 2.2 通过 :pep:`643` 获得批准。" #: ../source/specifications/core-metadata.rst:1059 msgid "Added the ``Dynamic`` field." -msgstr "" +msgstr "添加了 ``Dynamic`` 字段。" #: ../source/specifications/core-metadata.rst:1061 msgid "March 2022: Core metadata 2.3 was approved through :pep:`685`." -msgstr "" +msgstr "2022 年 3 月:核心元数据 2.3 通过 :pep:`685` 获得批准。" #: ../source/specifications/core-metadata.rst:1063 msgid "Restricted extra names to be normalized." -msgstr "" +msgstr "限制附加功能(extra)名称必须规范化。" #: ../source/specifications/core-metadata.rst:1065 msgid "August 2024: Core metadata 2.4 was approved through :pep:`639`." -msgstr "" +msgstr "2024 年 8 月:核心元数据 2.4 通过 :pep:`639` 获得批准。" #: ../source/specifications/core-metadata.rst:1067 msgid "Added the ``License-Expression`` field." -msgstr "" +msgstr "添加了 ``License-Expression`` 字段。" #: ../source/specifications/core-metadata.rst:1068 msgid "Added the ``License-File`` field." -msgstr "" +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 年 8 月:澄清了 ``Dynamic`` 只影响从 sdist 构建 wheel 包时各字段必须受到" +"的处理方式,而不影响修改 wheel 包时的处理方式。" #: ../source/specifications/core-metadata.rst:1074 msgid "September 2025: Core metadata 2.5 was approved through :pep:`794`." -msgstr "" +msgstr "2025 年 9 月:核心元数据 2.5 通过 :pep:`794` 获得批准。" #: ../source/specifications/core-metadata.rst:1076 msgid "Added the ``Import-Name`` field." -msgstr "" +msgstr "添加了 ``Import-Name`` 字段。" #: ../source/specifications/core-metadata.rst:1077 msgid "Added the ``Import-Namespace`` field." -msgstr "" +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 年 10 月:澄清了 ``License-Expression`` 适用于所在的分发文件,而非项目本" +"身。" #: ../source/specifications/core-metadata.rst:1082 #: ../source/specifications/pyproject-toml.rst:715 @@ -16517,10 +18712,12 @@ msgid "" "January 2026: Replaced outdated direct reference to :pep:`508` with a " "reference to :ref:`dependency-specifiers`." msgstr "" +"2026 年 1 月:将过时的对 :pep:`508` 的直接引用替换为对 :ref:`dependency-" +"specifiers` 的引用。" #: ../source/specifications/core-metadata.rst:1085 msgid "May 2026: Core metadata 2.6 was approved through :pep:`808`." -msgstr "" +msgstr "2026 年 5 月:核心元数据 2.6 已通过 :pep:`808` 获得批准。" #: ../source/specifications/core-metadata.rst:1087 msgid "" @@ -16528,6 +18725,8 @@ msgid "" "built from a sdist, requiring the wheel to preserve the value(s) present in " "the sdist." msgstr "" +"允许在从源分发构建的 wheel 包中对标记为 ``Dynamic`` 的可多次使用字段进行追加" +",并要求该 wheel 包保留源分发中已有的值。" #: ../source/specifications/core-metadata.rst:1093 msgid "reStructuredText markup: https://docutils.sourceforge.io/" @@ -16535,7 +18734,7 @@ msgstr "`reStructuredText 标记 `_" #: ../source/specifications/core-metadata.rst:1098 msgid "RFC 822 Long Header Fields: :rfc:`822#section-3.1.1`" -msgstr "" +msgstr "RFC 822 长头部字段::rfc:`822#section-3.1.1`" #: ../source/specifications/dependency-groups.rst:5 msgid "Dependency Groups" @@ -16547,6 +18746,8 @@ msgid "" "package requirements in ``pyproject.toml`` files such that they are not " "included in project metadata when it is built." msgstr "" +"本规范定义了依赖群:一种将软件包需求存储在 ``pyproject.toml`` 文件中的机制," +"使这些需求在项目构建时不会被包含进项目元数据。" #: ../source/specifications/dependency-groups.rst:11 msgid "" @@ -16554,6 +18755,8 @@ msgid "" "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 "" @@ -16561,20 +18764,22 @@ msgid "" "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 "" +msgstr "这是一个展示 ``docs`` 和 ``test`` 群组的简单表格::" #: ../source/specifications/dependency-groups.rst:31 msgid "" "and a similar table which defines ``docs``, ``test``, and ``coverage`` " "groups::" -msgstr "" +msgstr "而下面这个类似的表格则定义了 ``docs``、``test`` 和 ``coverage`` 群组::" #: ../source/specifications/dependency-groups.rst:39 msgid "The ``[dependency-groups]`` Table" -msgstr "" +msgstr "``[dependency-groups]`` 表格" #: ../source/specifications/dependency-groups.rst:41 msgid "" @@ -16583,6 +18788,9 @@ msgid "" "number of user-defined keys, each of which has, as its value, a list of " "requirements." msgstr "" +"依赖群被定义为 ``pyproject.toml`` 中一个名为 ``dependency-groups`` 的表格" +"。``dependency-groups`` 表格包含任意数量的用户自定义键,每个键的值都是一个需" +"求列表。" #: ../source/specifications/dependency-groups.rst:46 msgid "" @@ -16591,6 +18799,9 @@ msgid "" "Dependency Groups MUST :ref:`normalize ` these names " "before comparisons." msgstr "" +"``[dependency-groups]`` 的键(有时也称为“群组名”)必须是 :ref:`有效的未规范化" +"名称 `。处理依赖群的工具必须在比较之前 :ref:`规范化 ` 这些名称。" #: ../source/specifications/dependency-groups.rst:51 msgid "" @@ -16598,6 +18809,8 @@ msgid "" "and if duplicate names are detected after normalization, tools SHOULD emit " "an error." msgstr "" +"工具应该优先向用户展示原始的、未规范化的名称;如果在规范化之后检测到重复的名" +"称,则工具应该报错。" #: ../source/specifications/dependency-groups.rst:55 msgid "" @@ -16606,6 +18819,9 @@ msgid "" "Strings must be valid :ref:`dependency specifiers `, " "and tables must be valid Dependency Group Includes." msgstr "" +"需求列表(即 ``[dependency-groups]`` 中的值)可以包含字符串、表格(Python 中" +"的 ``dict``)或者字符串与表格的混合。字符串必须是有效的 :ref:`依赖说明符 " +"`,表格必须是有效的依赖群包括。" #: ../source/specifications/dependency-groups.rst:61 msgid "Dependency Group Include" @@ -16615,13 +18831,15 @@ msgstr "依赖群包括" msgid "" "A Dependency Group Include includes another Dependency Group in the current " "group." -msgstr "" +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-group\"``,其值为一个字符串," +"即另一个依赖群的名称。" #: ../source/specifications/dependency-groups.rst:69 msgid "" @@ -16632,6 +18850,10 @@ msgid "" "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 "" @@ -16639,6 +18861,8 @@ msgid "" "SHOULD NOT deduplicate or otherwise alter the list contents produced by the " "include. For example, given the following table:" msgstr "" +"依赖群包括可以多次指定同一个软件包。工具不应对包括项产生的列表内容进行去重或" +"做出其他改动。例如,给定以下表格:" #: ../source/specifications/dependency-groups.rst:92 msgid "" @@ -16647,6 +18871,9 @@ msgid "" "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 "" @@ -16655,6 +18882,8 @@ msgid "" "Dependency Group Includes MUST NOT include cycles, and tools SHOULD report " "an error if they detect a cycle." msgstr "" +"依赖群包括可以包含自身又含有依赖群包括的群组,此时这些包括项也应该被展开。依" +"赖群包括不得包含循环,工具如果检测到循环,应该报错。" #: ../source/specifications/dependency-groups.rst:102 msgid "Package Building" @@ -16667,6 +18896,9 @@ msgid "" "``METADATA`` files should not include referenceable fields containing " "dependency groups." msgstr "" +"构建后端不得将依赖群数据作为软件包元数据包含到构建出的分发包中。这意味着 " +"sdist 的 ``PKG-INFO`` 文件和 wheel 的 ``METADATA`` 文件不应该包含带有依赖群的" +"可引用字段。" #: ../source/specifications/dependency-groups.rst:108 msgid "" @@ -16675,6 +18907,9 @@ msgid "" "``[dependency-groups]``. However, the table's contents are not part of a " "built package's interfaces." msgstr "" +"不过,在动态元数据的求值过程中使用依赖群是有效的,并且 sdist 中所含的 " +"``pyproject.toml`` 文件仍将包含 ``[dependency-groups]``。但是,该表格的内容并" +"不属于已构建软件包的接口。" #: ../source/specifications/dependency-groups.rst:114 msgid "Installing Dependency Groups & Extras" @@ -16686,6 +18921,8 @@ msgid "" "referring to dependency groups. Tools are expected to provide dedicated " "interfaces for this purpose." msgstr "" +"目前既没有用于安装或引用依赖群的语法,也没有由本规范定义的接口。工具应当为此" +"提供专门的接口。" #: ../source/specifications/dependency-groups.rst:120 msgid "" @@ -16696,10 +18933,13 @@ msgid "" "dependency groups whose names match extras, and tools MAY treat such " "matching as an error." msgstr "" +"工具可以选择为依赖群提供交互接口,使其与管理附加功能(extras)的接口相同或类" +"似。建议工具作者注意,本规范并不禁止让附加功能与某个依赖群同名。另外,建议用" +"户避免创建与附加功能同名的依赖群,并且工具可以将这种匹配视为错误。" #: ../source/specifications/dependency-groups.rst:128 msgid "Validation and Compatibility" -msgstr "" +msgstr "验证与兼容性" #: ../source/specifications/dependency-groups.rst:130 msgid "" @@ -16708,18 +18948,20 @@ msgid "" "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 "" +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 "" +msgstr "除非确有必要,工具不应预先验证 *所有* 依赖群的内容。" #: ../source/specifications/dependency-groups.rst:141 msgid "" @@ -16727,6 +18969,8 @@ msgid "" "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 "" @@ -16734,6 +18978,8 @@ msgid "" "Linters and validators are an example, as their purpose is to validate the " "contents of all dependency groups." msgstr "" +"已知有若干类工具有充分的理由采取更严格的做法。代码检查工具(linter)和验证器" +"便是一例,因为它们的用途就是验证所有依赖群的内容。" #: ../source/specifications/dependency-groups.rst:157 #: ../source/specifications/inline-script-metadata.rst:134 @@ -16746,14 +18992,16 @@ msgid "" "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 "" +msgstr "2024 年 10 月:本规范通过 :pep:`735` 获得批准。" #: ../source/specifications/dependency-specifiers.rst:7 msgid "Dependency specifiers" -msgstr "" +msgstr "依赖说明符" #: ../source/specifications/dependency-specifiers.rst:9 msgid "" @@ -16761,6 +19009,8 @@ msgid "" "projects. The language defined is a compact line based format which was " "adapted from the format originally used in ``pip`` requirements files." msgstr "" +"本文档定义了用于指定对其他项目的依赖关系的格式。所定义的语言是一种紧凑的、基" +"于行的格式,改编自最初用于 ``pip`` 需求文件的格式。" #: ../source/specifications/dependency-specifiers.rst:13 msgid "" @@ -16770,6 +19020,10 @@ msgid "" "Sometimes dependencies are only relevant on one platform, or only some " "versions are acceptable, so the language permits describing all these cases." msgstr "" +"依赖项的作用是让 pip [#pip]_ 之类的工具能够找到合适的软件包来安装。有时这非常" +"宽松,只是指定一个名称;有时又非常具体,指向要安装的特定文件。有时依赖项只在" +"某个平台上才有意义,或者只有部分版本可以接受,因此该语言允许描述所有这些情况" +"。" #: ../source/specifications/dependency-specifiers.rst:19 msgid "" @@ -16777,6 +19031,8 @@ msgid "" "dependency specifiers is largely dependent on the role of the tool in the " "wider ecosystem:" msgstr "" +"工具在处理依赖说明符时应该严格还是宽松,很大程度上取决于该工具在整个生态系统" +"中所扮演的角色:" #: ../source/specifications/dependency-specifiers.rst:22 msgid "" @@ -16784,6 +19040,8 @@ msgid "" "new releases, encouraging the consistency of published specifiers to improve " "over time" msgstr "" +"发布工具和索引服务器在处理新发布时应该保持严格,以促使已发布说明符的一致性随" +"时间推移不断改进" #: ../source/specifications/dependency-specifiers.rst:25 msgid "" @@ -16791,18 +19049,20 @@ msgid "" "allowing consumption of older packages which may contain dependency " "specifiers that are arguably nonsensical" msgstr "" +"锁定工具和安装工具在处理时可以保持宽松,从而允许使用较旧的软件包,即使这些软" +"件包可能包含可以说毫无道理的依赖说明符。" #: ../source/specifications/dependency-specifiers.rst:35 msgid "All features of the language shown with a name based lookup::" -msgstr "" +msgstr "以基于名称的查找展示该语言的所有特性::" #: ../source/specifications/dependency-specifiers.rst:39 msgid "A minimal URL based lookup::" -msgstr "" +msgstr "一个最简的基于 URL 的查找::" #: ../source/specifications/dependency-specifiers.rst:44 msgid "Concepts" -msgstr "" +msgstr "概念" #: ../source/specifications/dependency-specifiers.rst:46 msgid "" @@ -16812,16 +19072,19 @@ msgid "" "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。最后,还可以使用环境标记让依赖项变为有条件的。" #: ../source/specifications/dependency-specifiers.rst:53 msgid "Grammar" -msgstr "" +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 "" +msgstr "我们先简要介绍语法,稍后再深入探讨各部分的语义。" #: ../source/specifications/dependency-specifiers.rst:58 msgid "" @@ -16831,12 +19094,15 @@ msgid "" "such as comments, multiple line support via continuations, or other such " "features." msgstr "" +"分发说明符以 ASCII 文本书写。我们使用 parsley [#parsley]_ 语法来给出精确的语" +"法定义。预计该说明符会被嵌入到更大的系统中,由后者提供注释、通过续行支持多行" +"之类的框架性功能。" #: ../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 "" +msgstr "包含注解、可用于构建实用解析树的完整语法收录在本文档末尾。" #: ../source/specifications/dependency-specifiers.rst:66 msgid "" @@ -16844,34 +19110,36 @@ msgid "" "specifier specification `. (Note: URI is defined " "in :rfc:`std-66 <3986>`)::" msgstr "" +"版本可以根据 :ref:`版本说明符规范 ` 的规则来指定。(注意" +":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 "" +msgstr "环境标记允许让说明符仅在部分环境中生效::" #: ../source/specifications/dependency-specifiers.rst:106 msgid "" "Optional components of a distribution may be specified using the extras " "field::" -msgstr "" +msgstr "分发包的可选组件可以使用 extras 字段来指定::" #: ../source/specifications/dependency-specifiers.rst:115 msgid "Giving us a rule for name based requirements::" -msgstr "" +msgstr "这就为基于名称的需求给出了一条规则::" #: ../source/specifications/dependency-specifiers.rst:119 msgid "And a rule for direct reference specifications::" -msgstr "" +msgstr "以及针对直接引用说明符的规则::" #: ../source/specifications/dependency-specifiers.rst:123 msgid "Leading to the unified rule that can specify a dependency.::" -msgstr "" +msgstr "最终得到可以指定依赖项的统一规则。::" #: ../source/specifications/dependency-specifiers.rst:128 msgid "Whitespace" -msgstr "" +msgstr "空白字符" #: ../source/specifications/dependency-specifiers.rst:130 msgid "" @@ -16879,6 +19147,8 @@ msgid "" "The sole exceptions are detecting the end of a URL requirement and inside " "user supplied constants in environment markers." msgstr "" +"非换行空白字符大多是可选的,且不具语义。唯一的例外是检测 URL 需求的结束位置," +"以及环境标记中用户提供的常量内部。" #: ../source/specifications/dependency-specifiers.rst:137 msgid "Names" @@ -16891,16 +19161,18 @@ msgid "" "present in all dependency specifications, and are sufficient to be a " "specification on their own." msgstr "" +"分发包名称在 :ref:`核心元数据 ` 中定义。名称是分发包的主" +"要标识符。它们存在于所有依赖说明符中,并且仅凭其自身就足以构成一个说明符。" #: ../source/specifications/dependency-specifiers.rst:144 msgid "" "Valid distribution names are defined in the :ref:`name format specification " "`." -msgstr "" +msgstr "有效的分发包名称在 :ref:`名称格式规范 ` 中定义。" #: ../source/specifications/dependency-specifiers.rst:151 msgid "Extras" -msgstr "" +msgstr "附加功能(extras)" #: ../source/specifications/dependency-specifiers.rst:153 msgid "" @@ -16909,6 +19181,9 @@ msgid "" "additional dependencies of the distribution **when** the extra is used in a " "dependency specification. For instance::" msgstr "" +"附加功能(extra)是分发包的可选部分。分发包可以按需指定任意多个附加功能,**当" +"某个附加功能被用于依赖说明符中时**,它就会导致声明该分发包的额外依赖项。例" +"如::" #: ../source/specifications/dependency-specifiers.rst:160 msgid "" @@ -16917,11 +19192,14 @@ msgid "" "requests being installed, and requests own dependencies, and also any " "dependencies that are listed in the \"security\" extra of requests." msgstr "" +"附加功能会把它们定义的依赖项与所属分发包的依赖项合并在一起。上面的例子会安装 " +"requests,以及 requests 自身的依赖项,还有 requests 的 \"security\" 附加功能" +"中列出的所有依赖项。" #: ../source/specifications/dependency-specifiers.rst:165 msgid "" "If multiple extras are listed, all the dependencies are unioned together." -msgstr "" +msgstr "如果列出了多个附加功能,所有这些依赖项都会被合并在一起。" #: ../source/specifications/dependency-specifiers.rst:167 msgid "" @@ -16931,6 +19209,9 @@ msgid "" "installation tools MAY normalize invalid extra names in order to accept " "published metadata using core metadata versions prior to 2.3." msgstr "" +"附加功能名称的限制在 :ref:`核心元数据规范 ` 中" +"定义。发布工具应该在依赖说明符中强制执行这些限制,而锁定工具和安装工具可以规" +"范化无效的附加功能名称,以便接受使用 2.3 之前核心元数据版本的已发布元数据。" #: ../source/specifications/dependency-specifiers.rst:176 msgid "Versions" @@ -16946,10 +19227,14 @@ msgid "" "brackets around a version are present for compatibility with :pep:`345` but " "should not be generated, only accepted." msgstr "" +"关于版本号和版本比较的更多细节,请参见 :ref:`版本说明符规范 `。版本说明符会限制一个分发包可使用的版本。它们只适用于按名称查找" +"的分发包,而不适用于通过 URL 查找的分发包。版本比较同样会用于环境标记。版本两" +"侧的可选括号是为了与 :pep:`345` 兼容而保留的,但不应被生成,只需被接受。" #: ../source/specifications/dependency-specifiers.rst:189 msgid "Environment Markers" -msgstr "" +msgstr "环境标记" #: ../source/specifications/dependency-specifiers.rst:191 msgid "" @@ -16958,12 +19243,16 @@ msgid "" "package that needs ``pywin32`` when running on Windows. This can be " "expressed as::" msgstr "" +"环境标记允许依赖说明符提供一条描述该依赖项何时应被使用的规则。例如,假设有一" +"个软件包在 Windows 上运行时需要 ``pywin32``。这可以表达为::" #: ../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 "" +"对于给定的部署环境,标记表达式的求值结果为 True 或 False。当求值结果为 False " +"时,该依赖项应被忽略。" #: ../source/specifications/dependency-specifiers.rst:200 msgid "" @@ -16971,6 +19260,8 @@ msgid "" "safely evaluate it without running arbitrary code that could become a " "security vulnerability." msgstr "" +"标记语言借鉴了 Python 本身,这样既能安全地对其求值,又不必运行可能构成安全漏" +"洞的任意代码。" #: ../source/specifications/dependency-specifiers.rst:204 msgid "" @@ -16979,20 +19270,23 @@ msgid "" "recorded :ref:`at the end of this specification `)." msgstr "" +"标记最初在 :pep:`345` 中定义,后在 :pep:`508` 中正式规范化,此后又随时间推移" +"陆续修订(:pep:`508` 之后的修订记录在 :ref:`本规范末尾 `)。" #: ../source/specifications/dependency-specifiers.rst:209 msgid "Marker field types" -msgstr "" +msgstr "标记字段类型" #: ../source/specifications/dependency-specifiers.rst:211 msgid "" "Environment marker fields are each defined as one of the following types:" -msgstr "" +msgstr "各个环境标记字段分别定义为以下类型之一:" #: ../source/specifications/dependency-specifiers.rst:213 msgid "" "``String``: the contents of the field are always treated as an opaque string." -msgstr "" +msgstr "``String``:字段内容始终会被视为不透明的字符串。" #: ../source/specifications/dependency-specifiers.rst:214 msgid "" @@ -17000,6 +19294,8 @@ msgid "" "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``:字段内容始终会被视为一个包含不透明字符串的集合。在比较中" +",用户提供的常量仍必须是单个字符串(因为集合字面量并不是标记语法的一部分)。" #: ../source/specifications/dependency-specifiers.rst:217 msgid "" @@ -17008,6 +19304,8 @@ msgid "" "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 "" @@ -17017,10 +19315,13 @@ msgid "" "dependent and whether or not tools actually make the distinction will be " "tool dependent." msgstr "" +"``Version | String``:字段内容在某些平台上应为有效的 :ref:`版本说明符 " +"`,而在其他平台上则是不透明的字符串。这种区分的具体细节取" +"决于具体字段,而工具是否真的做出这种区分则取决于具体工具。" #: ../source/specifications/dependency-specifiers.rst:227 msgid "Marker comparisons" -msgstr "" +msgstr "标记比较" #: ../source/specifications/dependency-specifiers.rst:229 msgid "" @@ -17031,54 +19332,58 @@ msgid "" "emit an error if no marker field is referenced in a comparison (that is, " "both operands are given as constants)." msgstr "" +"所有标记比较表达式都应将某个具名标记字段与用户提供的常量进行比较。比较的类型" +"由所用的比较运算符以及 :ref:`下表 ` 中给出的具名字" +"段类型决定。如果比较中没有引用任何标记字段(即两个操作数都以常量形式给出)," +"工具可以报错。" #: ../source/specifications/dependency-specifiers.rst:236 msgid "" "The follow comparison operations are defined in the marker expression " "grammar:" -msgstr "" +msgstr "标记表达式文法中定义了以下比较运算:" #: ../source/specifications/dependency-specifiers.rst:238 msgid "``==`` (for example, ``sys_platform == \"win32\"``)" -msgstr "" +msgstr "``==`` (例如 ``sys_platform == \"win32\"``)" #: ../source/specifications/dependency-specifiers.rst:239 msgid "``!=`` (for example, ``sys_platform != \"win32\"``)" -msgstr "" +msgstr "``!=`` (例如 ``sys_platform != \"win32\"``)" #: ../source/specifications/dependency-specifiers.rst:240 msgid "``>`` (for example, ``python_version > \"3.10\"``)" -msgstr "" +msgstr "``>`` (例如 ``python_version > \"3.10\"``)" #: ../source/specifications/dependency-specifiers.rst:241 msgid "``>=`` (for example, ``python_version >= \"3.10\"``)" -msgstr "" +msgstr "``>=`` (例如 ``python_version >= \"3.10\"``)" #: ../source/specifications/dependency-specifiers.rst:242 msgid "``<`` (for example, ``python_version < \"3.10\"``)" -msgstr "" +msgstr "``<`` (例如 ``python_version < \"3.10\"``)" #: ../source/specifications/dependency-specifiers.rst:243 msgid "``<=`` (for example, ``python_version <= \"3.10\"``)" -msgstr "" +msgstr "``<=`` (例如 ``python_version <= \"3.10\"``)" #: ../source/specifications/dependency-specifiers.rst:244 msgid "``~=`` (for example, ``python_version ~= \"3\"``)" -msgstr "" +msgstr "``~=`` (例如 ``python_version ~= \"3\"``)" #: ../source/specifications/dependency-specifiers.rst:245 msgid "" "``===`` (for example, ``implementation_version === \"not.a.valid.version\"``)" -msgstr "" +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 "" +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 "" +msgstr "``not in`` (例如 ``\"dev\" not in dependency_groups``)" #: ../source/specifications/dependency-specifiers.rst:249 msgid "" @@ -17094,14 +19399,21 @@ msgid "" "disallow uploads containing such environment markers, while locking and " "installation tools SHOULD implement the following behavior:" msgstr "" +"对于 ``String`` 字段,``==``、``!=``、``in`` 和 ``not in`` 的定义与 Python 字" +"符串中的相应操作一致(区分大小写,且不进行任何形式的值规范化)。明确不建议在" +"字符串字段中使用 ``~=`` 或 ``===``:发布工具应该报错,索引服务器可以拒绝包含" +"此类环境标记的上传,而锁定工具和安装工具则可以将其解释为等价于 ``==``。同样明" +"确不建议在字符串字段中使用有序比较(``<``、``<=``、``>``、``>=``),因为这在" +"打包语境中没有任何语义意义;此时发布工具应该报错,索引服务器可以拒绝包含此类" +"环境标记的上传,而锁定工具和安装工具应该实现以下行为:" #: ../source/specifications/dependency-specifiers.rst:261 msgid "treat ``>=`` and ``<=`` as equivalent to ``==``" -msgstr "" +msgstr "将 ``>=`` 和 ``<=`` 视为等价于 ``==``" #: ../source/specifications/dependency-specifiers.rst:262 msgid "treat ``>`` and ``<`` as always being False" -msgstr "" +msgstr "将 ``>`` 和 ``<`` 视为始终为 False" #: ../source/specifications/dependency-specifiers.rst:264 msgid "" @@ -17113,6 +19425,10 @@ msgid "" "environment markers, while locking and installation tools SHOULD treat such " "operations as always being False." msgstr "" +"对于 ``Set of String`` 字段,由于标记语法中没有集合字面量,唯一有效的操作是以" +"用户提供的字符串字面量作为左操作数的 ``in`` 和 ``not in`` 比较。如果环境标记" +"试图在这些字段上使用任何其他比较运算,发布工具应该报错,索引服务器可以拒绝包" +"含此类环境标记的上传,而锁定工具和安装工具应该将此类操作视为始终为 False。" #: ../source/specifications/dependency-specifiers.rst:272 msgid "" @@ -17132,6 +19448,15 @@ msgid "" "markers, while locking and installation tools MAY treat them as always being " "False." msgstr "" +"对于 ``Version`` 字段,当标记字段值和用户提供的常量都能被解析为有效的版本说明" +"符,或者使用 ``===`` 任意等价比较运算符时,比较运算由 :ref:`版本说明符规范 " +"` 定义。当使用 ``===`` 以外的运算符时,如果用户提供的常量" +"无法被解析为有效的版本说明符,发布工具应该报错,索引服务器可以拒绝包含此类环" +"境标记的上传,而锁定工具和安装工具在标记字段值或用户提供的常量无法被解析为有" +"效的版本说明符时,既可以报错,也可以退而采用 ``String`` 字段的比较逻辑。请注" +"意,``in`` 和 ``not in`` 成员检查对 ``Version`` 字段并非有效,发布工具应该报" +"错,索引服务器可以拒绝包含此类环境标记的上传,而锁定工具和安装工具可以将其视" +"为始终为 False。" #: ../source/specifications/dependency-specifiers.rst:287 msgid "" @@ -17148,10 +19473,17 @@ msgid "" "markers that are appropriately scoped to the relevant platforms before " "performing a version based comparison." msgstr "" +"对于 ``Version | String`` 字段,比较运算的定义与 ``Version`` 字段相同,而 " +"``in`` 和 ``not in`` 成员检查的定义与 ``String`` 字段相同。然而,标记字段值或" +"用户提供的常量能否被解析为有效版本,在跨平台层面没有一致的预期,因此如果将任" +"一值解析为版本失败,工具应该退而将该字段当作 ``String`` 字段处理。如果某字段" +"在给定平台上本应包含有效的版本但实际上并没有,工具可以发出警告。工具不应该无" +"条件地将此类字段当作 ``String`` 字段处理,因为对于已在执行基于版本的比较之前" +"适当限定到相关平台的环境标记,这样做可能给出不正确的答案。" #: ../source/specifications/dependency-specifiers.rst:301 msgid "Composing marker expressions" -msgstr "" +msgstr "组合标记表达式" #: ../source/specifications/dependency-specifiers.rst:303 msgid "" @@ -17159,11 +19491,13 @@ msgid "" "logical operators. Parentheses may be used as necessary to control operand " "precedence (with all comparison operations having a higher precedence)." msgstr "" +"可以使用 ``and`` 和 ``or`` 逻辑运算符来组合出更复杂的标记表达式。必要时可以使" +"用括号来控制操作数优先级(所有比较运算都具有更高的优先级)。" #: ../source/specifications/dependency-specifiers.rst:307 #: ../source/specifications/version-specifiers.rst:200 msgid "For example::" -msgstr "" +msgstr "例如::" #: ../source/specifications/dependency-specifiers.rst:313 msgid "" @@ -17171,16 +19505,20 @@ msgid "" "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``)," +"此类表达式必须改写为由 ``and`` 连接的两个独立比较。" #: ../source/specifications/dependency-specifiers.rst:318 msgid "User supplied constants" -msgstr "" +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 "" @@ -17189,6 +19527,9 @@ msgid "" "is currently no known need for treating user supplied constants as anything " "other than either opaque strings or valid version specifiers." msgstr "" +"规范并未定义反斜杠转义,但工具可以支持它们。之所以没有把它们纳入规范,是因为" +"它们会增加复杂性,而且目前尚无已知的需求需要把用户提供的常量当作不透明的字符" +"串或有效的版本说明符以外的任何东西来处理。" #: ../source/specifications/dependency-specifiers.rst:328 msgid "" @@ -17199,10 +19540,13 @@ msgid "" "environment markers to contain non-ASCII text that users wish to perform " "comparisons against." msgstr "" +"类似地,规范并未定义对非 ASCII 字符的支持,但工具可以接受它们(通常依据包含该" +"依赖说明符的文件或流的文本编码)。如果环境标记中通常引用的运行时变量更常包含" +"用户希望与之比较的非 ASCII 文本,将来可能会重新考虑这一点。" #: ../source/specifications/dependency-specifiers.rst:335 msgid "Unknown marker fields" -msgstr "" +msgstr "未知标记字段" #: ../source/specifications/dependency-specifiers.rst:337 msgid "" @@ -17217,6 +19561,12 @@ msgid "" "dependency that is not valid for the current platform (if the unknown marker " "is treated as True)." msgstr "" +"对未知标记字段的引用应该使相应的软件包版本不符合安装条件,也不符合纳入锁定依" +"赖树的条件,而不是得到一个求值为 True 或 False 的比较结果。这样做的目的是:带" +"有未知标记字段的已发布软件包版本,要么在解析依赖项时被忽略,要么发出描述性的" +"安装失败信息,而不是产生表面上成功、随后却因缺少依赖项而在运行时失败的安装(" +"当未知标记被视为 False 时),也不是导致对当前平台无效的依赖项出现可能令人费解" +"的安装失败(当未知标记被视为 True 时)。" #: ../source/specifications/dependency-specifiers.rst:347 msgid "" @@ -17224,20 +19574,23 @@ msgid "" "should evaluate to ``0`` for ``Version`` fields, and an empty string for all " "other variables (including ``Version | String`` fields)." msgstr "" +"在给定 Python 实现上无法计算取值的变量,对于 ``Version`` 字段应该求值为 " +"``0``,对于所有其他变量(包括 ``Version | String`` 字段)则应该求值为空字符串" +"。" #: ../source/specifications/dependency-specifiers.rst:355 msgid "Defined environment marker fields" -msgstr "" +msgstr "已定义的环境标记字段" #: ../source/specifications/dependency-specifiers.rst:357 msgid "" "Unless otherwise noted below, marker evaluation environments MUST support " "all of the following marker fields:" -msgstr "" +msgstr "除非下文另有说明,标记求值环境必须支持以下所有标记字段:" #: ../source/specifications/dependency-specifiers.rst:363 msgid "Marker" -msgstr "" +msgstr "标记" #: ../source/specifications/dependency-specifiers.rst:364 msgid "Python equivalent" @@ -17249,7 +19602,7 @@ msgstr "类型" #: ../source/specifications/dependency-specifiers.rst:366 msgid "Sample values & notes" -msgstr "" +msgstr "示例值与说明" #: ../source/specifications/dependency-specifiers.rst:367 msgid "``os_name``" @@ -17266,7 +19619,7 @@ msgstr ":py:data:`os.name`" #: ../source/specifications/dependency-specifiers.rst:394 #: ../source/specifications/dependency-specifiers.rst:414 msgid "String" -msgstr "" +msgstr "字符串" #: ../source/specifications/dependency-specifiers.rst:370 msgid "``posix``, ``java``" @@ -17274,11 +19627,11 @@ msgstr "``posix``, ``java``" #: ../source/specifications/dependency-specifiers.rst:371 msgid "``sys_platform``" -msgstr "" +msgstr "``sys_platform``" #: ../source/specifications/dependency-specifiers.rst:372 msgid ":py:data:`sys.platform`" -msgstr "" +msgstr ":py:data:`sys.platform`" #: ../source/specifications/dependency-specifiers.rst:374 msgid "" @@ -17286,14 +19639,16 @@ msgid "" "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 "" +msgstr "``platform_machine``" #: ../source/specifications/dependency-specifiers.rst:378 msgid ":py:func:`platform.machine()`" -msgstr "" +msgstr ":py:func:`platform.machine()`" #: ../source/specifications/dependency-specifiers.rst:380 msgid "" @@ -17301,26 +19656,28 @@ msgid "" "provided by the operating system, so the same CPU architecture may use " "different strings on different platforms)" msgstr "" +"``x86_64``、``aarch64``、``AMD64``、``arm64`` (注意,该值由操作系统提供,因" +"此同一 CPU 架构在不同平台上可能使用不同的字符串)" #: ../source/specifications/dependency-specifiers.rst:383 msgid "``platform_python_implementation``" -msgstr "" +msgstr "``platform_python_implementation``" #: ../source/specifications/dependency-specifiers.rst:384 msgid ":py:func:`platform.python_implementation()`" -msgstr "" +msgstr ":py:func:`platform.python_implementation()`" #: ../source/specifications/dependency-specifiers.rst:386 msgid "``CPython``, ``PyPy``" -msgstr "" +msgstr "``CPython``、``PyPy``" #: ../source/specifications/dependency-specifiers.rst:387 msgid "``platform_release``" -msgstr "" +msgstr "``platform_release``" #: ../source/specifications/dependency-specifiers.rst:388 msgid ":py:func:`platform.release()`" -msgstr "" +msgstr ":py:func:`platform.release()`" #: ../source/specifications/dependency-specifiers.rst:389 #: ../source/specifications/dependency-specifiers.rst:398 @@ -17332,26 +19689,28 @@ 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`` (可能是有效的版本字段," +"例如在 macOS/darwin 上)" #: ../source/specifications/dependency-specifiers.rst:392 msgid "``platform_system``" -msgstr "" +msgstr "``platform_system``" #: ../source/specifications/dependency-specifiers.rst:393 msgid ":py:func:`platform.system()`" -msgstr "" +msgstr ":py:func:`platform.system()`" #: ../source/specifications/dependency-specifiers.rst:395 msgid "``Linux``, ``Windows``, ``Java``" -msgstr "" +msgstr "``Linux``、``Windows``、``Java``" #: ../source/specifications/dependency-specifiers.rst:396 msgid "``platform_version``" -msgstr "" +msgstr "``platform_version``" #: ../source/specifications/dependency-specifiers.rst:397 msgid ":py:func:`platform.version()`" -msgstr "" +msgstr ":py:func:`platform.version()`" #: ../source/specifications/dependency-specifiers.rst:399 msgid "" @@ -17371,7 +19730,7 @@ msgstr "``python_version``" #: ../source/specifications/dependency-specifiers.rst:405 msgid "``'.'.join(platform.python_version_tuple()[:2])``" -msgstr "" +msgstr "``'.'.join(platform.python_version_tuple()[:2])``" #: ../source/specifications/dependency-specifiers.rst:406 #: ../source/specifications/dependency-specifiers.rst:410 @@ -17389,7 +19748,7 @@ msgstr "``python_full_version``" #: ../source/specifications/dependency-specifiers.rst:409 msgid ":py:func:`platform.python_version()`" -msgstr "" +msgstr ":py:func:`platform.python_version()`" #: ../source/specifications/dependency-specifiers.rst:411 msgid "``3.10.12``, ``3.15.0a1``" @@ -17397,11 +19756,11 @@ msgstr "``3.10.12``, ``3.15.0a1``" #: ../source/specifications/dependency-specifiers.rst:412 msgid "``implementation_name``" -msgstr "" +msgstr "``implementation_name``" #: ../source/specifications/dependency-specifiers.rst:413 msgid ":py:data:`sys.implementation.name `" -msgstr "" +msgstr ":py:data:`sys.implementation.name `" #: ../source/specifications/dependency-specifiers.rst:415 msgid "``cpython``, ``pypy``" @@ -17409,34 +19768,36 @@ msgstr "``cpython``, ``pypy``" #: ../source/specifications/dependency-specifiers.rst:416 msgid "``implementation_version``" -msgstr "" +msgstr "``implementation_version``" #: ../source/specifications/dependency-specifiers.rst:417 msgid "see definition below" -msgstr "" +msgstr "见下文定义" #: ../source/specifications/dependency-specifiers.rst:419 msgid "" "``3.10.12``, ``7.3.17`` (examples are for CPython and PyPy respectively)" -msgstr "" +msgstr "``3.10.12``、``7.3.17`` (示例分别对应 CPython 和 PyPy)" #: ../source/specifications/dependency-specifiers.rst:421 msgid "``extra``" -msgstr "" +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 "" +"用于在项目依赖元数据中指示可选依赖项。除非由解释该说明符的上下文定义,否则即" +"为错误。" #: ../source/specifications/dependency-specifiers.rst:425 msgid "Special (see below)" -msgstr "" +msgstr "特殊(见下文)" #: ../source/specifications/dependency-specifiers.rst:426 msgid "``toml`` (publishing tools SHOULD permit use of this field)" -msgstr "" +msgstr "``toml`` (发布工具应该允许使用该字段)" #: ../source/specifications/dependency-specifiers.rst:428 #: ../source/specifications/pylock-toml.rst:108 @@ -17448,17 +19809,21 @@ msgid "" "Used to indicate optional public dependencies in lock files. An error except " "when defined by the context interpreting the specifier." msgstr "" +"用于在锁定文件中指示公开的可选依赖项。除非由解释该说明符的上下文定义,否则即" +"为错误。" #: ../source/specifications/dependency-specifiers.rst:431 #: ../source/specifications/dependency-specifiers.rst:439 msgid "Set of strings" -msgstr "" +msgstr "字符串集合" #: ../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``" @@ -17469,12 +19834,16 @@ msgid "" "Used to indicate optional project internal dependencies in lock files. An " "error except when defined by the context interpreting the specifier." msgstr "" +"用于在锁定文件中指示项目内部的可选依赖项。除非由解释该说明符的上下文定义,否" +"则即为错误。" #: ../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 "" @@ -17493,6 +19862,15 @@ msgid "" "processing, marker evaluation environments DO NOT need to define these " "fields." msgstr "" +"为了与较旧的锁定工具和安装工具保持向后兼容,``extras`` 和 " +"``dependency_groups`` 字段目前仅在 :ref:`锁定文件 ` 的 " +"``packages.marker`` 字段中有效。对于这些比较,标记求值所用的 ``extras`` 和 " +"``dependency_groups`` 集合,指的是从锁定文件安装时 *当前选定的* 附加功能(" +"extras)和依赖群,而不是锁定文件相应顶层字段中列出的全部已定义附加功能(" +"extras)和依赖群。选择安装哪些附加功能(extras)和依赖群的接口因工具而异。如" +"果项目试图在其发布的依赖声明元数据中引用 ``extras`` 或 ``dependency_groups`` " +"字段,发布工具应该报错,索引服务器不应该接受引用这些字段的上传。在锁定文件处" +"理之外,标记求值环境不需要定义这些字段。" #: ../source/specifications/dependency-specifiers.rst:458 msgid "" @@ -17509,6 +19887,14 @@ msgid "" "disallow uploads containing such environment markers, while locking and " "installation tools SHOULD evaluate them as False." msgstr "" +"``extra`` 字段也很特殊:它期望类似集合的行为,但其出现早于 ``Set of " +"strings`` 作为一种已定义的标记字段类型被加入的时间。它只支持一种操作,即 " +"``extra == \"name\"``,类似于 ``\"name\" in extras``。``extra != \"name\"`` " +"不应该再被使用,工具可以拒绝它,也可以将其求值为 false。对于依赖项标记求值," +"这些比较所用的附加功能名称集合,是 *该特定软件包* 所请求的附加功能(extras)" +"的完整集合,无论这些附加功能是在顶层依赖声明中直接请求的,还是在传递依赖声明" +"中间接请求的。对 ``extra`` 的其他比较操作均未定义,发布工具应该报错,索引服务" +"器可以拒绝包含此类环境标记的上传,而锁定工具和安装工具应该将其求值为 False。" #: ../source/specifications/dependency-specifiers.rst:471 msgid "" @@ -17521,28 +19907,35 @@ msgid "" "``packages.marker`` fields, and installation tools SHOULD reject lock files " "containing such comparisons as invalid." msgstr "" +"与较新的 ``extras`` 字段不同,使用该字段的环境标记应该同时被发布工具和索引服" +"务器接受。面向项目依赖声明的标记求值环境通常需要处理 ``extra`` 字段比较的求值" +",而其他环境标记求值一般不需要这样做。旧式的 ``extra`` 比较语法不得用于锁定文" +"件的 ``packages.marker`` 字段,安装工具应该将包含此类比较的锁定文件视为无效并" +"予以拒绝。" #: ../source/specifications/dependency-specifiers.rst:480 msgid "" "The ``implementation_version`` marker variable is derived " "from :py:data:`sys.implementation.version `:" msgstr "" +"``implementation_version`` 标记变量派生自 " +":py:data:`sys.implementation.version `:" #: ../source/specifications/dependency-specifiers.rst:500 msgid "Complete Grammar" -msgstr "" +msgstr "完整语法" #: ../source/specifications/dependency-specifiers.rst:502 msgid "The complete parsley grammar::" -msgstr "" +msgstr "完整的 parsley 语法::" #: ../source/specifications/dependency-specifiers.rst:609 msgid "A test program - if the grammar is in a string ``grammar``:" -msgstr "" +msgstr "一个测试程序,前提是该语法保存在字符串 ``grammar`` 中:" #: ../source/specifications/dependency-specifiers.rst:683 msgid "November 2015: This specification was approved through :pep:`508`." -msgstr "" +msgstr "2015 年 11 月:本规范通过 :pep:`508` 获得批准。" #: ../source/specifications/dependency-specifiers.rst:684 msgid "" @@ -17552,12 +19945,18 @@ msgid "" "future versions of Python with 2-digit major and minor versions (e.g. 3.10). " "[#future_versions]_" msgstr "" +"2019 年 7 月:``python_version`` 的定义已 `更改 `_," +"从 ``platform.python_version()[:3]`` 改为 ``'.'.join" +"(platform.python_version_tuple()[:2])``,以适应将来可能出现的主版本号和次版本" +"号为两位数的 Python 版本(例如 3.10)。 [#future_versions]_" #: ../source/specifications/dependency-specifiers.rst:689 msgid "" "March 2022: Standardised the normalization of extra names at publication " "time (for core metadata 2.3 and later) through :pep:`685`" msgstr "" +"2022 年 3 月:通过 :pep:`685` 标准化了发布时附加功能名称的规范化处理(适用于" +"核心元数据 2.3 及更高版本)" #: ../source/specifications/dependency-specifiers.rst:691 msgid "" @@ -17565,12 +19964,16 @@ msgid "" "commas, matching with the behavior of the Python implementation that has " "been in use since late 2022." msgstr "" +"2024 年 6 月:``version_many`` 的定义已更改为允许末尾逗号,与自 2022 年末以来" +"一直沿用的 Python 实现的行为保持一致。" #: ../source/specifications/dependency-specifiers.rst:694 msgid "" "April 2025: Added ``extras`` and ``dependency_groups`` marker field " "for :ref:`lock-file-spec` as approved through :pep:`751`." msgstr "" +"2025 年 4 月:为 :ref:`lock-file-spec` 添加了 ``extras`` 和 " +"``dependency_groups`` 标记字段,经 :pep:`751` 批准。" #: ../source/specifications/dependency-specifiers.rst:696 #: ../source/specifications/name-normalization.rst:56 @@ -17579,12 +19982,16 @@ msgid "" "field specification (it previously finished with ``$`` instead of ``\\Z``, " "incorrectly permitting trailing newlines)" msgstr "" +"2025 年 8 月:修正了建议的名称验证正则表达式,使其与字段规范相符(此前该表达" +"式以 ``$`` 结尾而非 ``\\Z``,会错误地允许尾部换行符)" #: ../source/specifications/dependency-specifiers.rst:699 msgid "" "December 2025: Ensure ``===`` is before ``==`` in grammar, to allow " "arbitrary equality comparisons to be parsed." msgstr "" +"2025 年 12 月:确保文法中 ``===`` 位于 ``==`` 之前,以允许解析任意相等性比较" +"。" #: ../source/specifications/dependency-specifiers.rst:701 msgid "" @@ -17598,12 +20005,17 @@ msgid "" "specification into line with the way tools actually work. " "[#marker_comparison_logic]_" msgstr "" +"2026 年 1 月:修订了环境标记比较操作的定义,将版本比较语义限制在其有意义的字" +"段上,使 extra 名称限制更加明确,调整了字符串有序比较的定义方式,并将版本解析" +"失败时从版本比较回退到字符串比较的行为改为可选。此外,还针对发布工具与安装工" +"具分别给出了不同的工具行为建议。这使名义规范与工具的实际工作方式保持一致。 " +"[#marker_comparison_logic]_" #: ../source/specifications/dependency-specifiers.rst:709 msgid "" "January 2026: fix outdated references to other documents that were " "inadvertently retained from :pep:`508`" -msgstr "" +msgstr "2026 年 1 月:修复了从 :pep:`508` 中无意遗留的指向其他文档的过时引用" #: ../source/specifications/dependency-specifiers.rst:711 msgid "" @@ -17611,16 +20023,18 @@ msgid "" "(https://discuss.python.org/t/ban-negative-extras-for-extras-marker/" "108022/24)" msgstr "" +"2026 年 7 月:说明了 ``extra != \"name\"`` 未(正式)得到支持(https://" +"discuss.python.org/t/ban-negative-extras-for-extras-marker/108022/24)" #: ../source/specifications/dependency-specifiers.rst:718 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" -msgstr "" +msgstr "pip,推荐的 Python 软件包安装工具(http://pip.readthedocs.org/en/stable/)" #: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" -msgstr "" +msgstr "parsley PEG 库(https://pypi.python.org/pypi/parsley/)。" #: ../source/specifications/dependency-specifiers.rst:724 msgid "" @@ -17628,6 +20042,8 @@ msgid "" "Environment Marker Variable ``python_version`` (https://github.com/python/" "peps/issues/560)" msgstr "" +"未来的 Python 版本可能会与环境标记变量 ``python_version`` 的定义产生问题(" +"https://github.com/python/peps/issues/560)" #: ../source/specifications/dependency-specifiers.rst:728 msgid "" @@ -17636,10 +20052,13 @@ msgid "" "discuss.python.org/t/spec-change-bugfix-dependency-specifiers-simplification-" "pep-508/105203)" msgstr "" +"解决工具实际行为与环境标记字段比较名义定义之间的不一致(https://" +"discuss.python.org/t/spec-change-bugfix-dependency-specifiers-simplification-" +"pep-508/105203)" #: ../source/specifications/direct-url.rst:6 msgid "Recording the Direct URL Origin of installed distributions" -msgstr "" +msgstr "记录已安装分发包的直接 URL 来源" #: ../source/specifications/direct-url.rst:8 msgid "" @@ -17648,6 +20067,10 @@ msgid "" "Origin of the distribution. The general structure and usage of ``*.dist-" "info`` directories is described in :ref:`recording-installed-packages`." msgstr "" +"本文档规定了已安装分发包的 ``*.dist-info`` 目录中的一个 " +":file:`direct_url.json` 文件,用于记录该分发包的直接 URL 来源。 ``*.dist-" +"info`` 目录的一般结构和用法在 :ref:`recording-installed-packages` 中有所描述" +"。" #: ../source/specifications/direct-url.rst:17 msgid "" @@ -17655,19 +20078,23 @@ msgid "" "directory by installers when installing a distribution from a requirement " "specifying a direct URL reference (including a VCS URL)." msgstr "" +"当安装工具根据指定了直接 URL 引用(包括 VCS URL)的需求安装分发包时,必须在 " +":file:`*.dist-info` 目录中创建 :file:`direct_url.json` 文件。" #: ../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 "" +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 文件必须是 :doc:`direct-url-data-structure` 的序列化形式,采用 UTF-8 " +"编码并符合 :rfc:`8259`。" #: ../source/specifications/direct-url.rst:29 msgid "" @@ -17676,6 +20103,9 @@ msgid "" "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 信息,因此也不得在 :file:`direct_url.json` 中" +"输出任何 VCS 相关信息(如 ``vcs_info``)。" #: ../source/specifications/direct-url.rst:36 msgid "" @@ -17687,14 +20117,18 @@ msgid "" "This information is however *enriched* with more precise data, such as " "``commit_id``." msgstr "" +"作为一般规则,安装工具在生成 :file:`direct_url.json` 时,应尽可能保留请求的 " +"URL 中所提供的信息。例如,应保留 user:password 环境变量,并且 " +"``requested_revision`` 应尽可能忠实地反映请求的 URL 中提供的修订版本。不过," +"这些信息会借助更精确的数据(如 ``commit_id``)得到 *增强*。" #: ../source/specifications/direct-url.rst:45 msgid "Example pip commands and their effect on direct_url.json" -msgstr "" +msgstr "pip 命令示例及其对 direct_url.json 的影响" #: ../source/specifications/direct-url.rst:47 msgid "Commands that generate a ``direct_url.json``:" -msgstr "" +msgstr "会生成 ``direct_url.json`` 的命令:" #: ../source/specifications/direct-url.rst:49 msgid "``pip install https://example.com/app-1.0.tgz``" @@ -17709,6 +20143,8 @@ 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 #, fuzzy @@ -17726,6 +20162,10 @@ msgid "" "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\"`` (此时 ``url`` 将是 git 仓库被克隆到的本地目录" +", ``dir_info`` 将存在并带有 ``\"editable\": true``,且不会设置 " +"``vcs_info``)" #: ../source/specifications/direct-url.rst:58 #, fuzzy @@ -17734,7 +20174,7 @@ msgstr "``pipx`` 是用 ``pip`` 安装的:" #: ../source/specifications/direct-url.rst:60 msgid "Commands that *do not* generate a ``direct_url.json``" -msgstr "" +msgstr "*不会* 生成 ``direct_url.json`` 的命令" #: ../source/specifications/direct-url.rst:62 #, fuzzy @@ -17747,11 +20187,11 @@ msgstr "" #: ../source/specifications/direct-url.rst:69 msgid "March 2020: This specification was approved through :pep:`610`." -msgstr "" +msgstr "2020 年 3 月:本规范通过 :pep:`610` 获得批准。" #: ../source/specifications/direct-url-data-structure.rst:7 msgid "Direct URL Data Structure" -msgstr "" +msgstr "直接 URL 数据结构" #: ../source/specifications/direct-url-data-structure.rst:9 msgid "" @@ -17759,6 +20199,8 @@ msgid "" "represent URLs to python projects and distribution artifacts such as VCS " "source trees, local source trees, source distributions and wheels." msgstr "" +"本文档规定了一种可序列化为 JSON 的抽象数据结构,用于表示指向 Python 项目和分" +"发制品的 URL,例如 VCS 源码树、本地源码树、源分发和 wheel 包。" #: ../source/specifications/direct-url-data-structure.rst:13 msgid "" @@ -17768,12 +20210,15 @@ msgid "" "other examples are provided in the :ref:`Version specifier specification " "`." msgstr "" +"截至撰写本文时,尚未正式规定如何将此数据结构的各个部分合并为一个可传递给工具" +"的单一 URL。一种常见的表示形式是 pip 的 URL 格式(参见 `VCS 支持 `_),其他示例见 :ref:`版本说明符规范 `。" #: ../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 "" +msgstr "直接 URL 数据结构必须是一个字典,并且能够按照 :rfc:`8259` 序列化为 JSON。" #: ../source/specifications/direct-url-data-structure.rst:24 msgid "" @@ -17781,6 +20226,8 @@ msgid "" "``string``. Its content must be a valid URL according to the `WHATWG URL " "Standard `_." msgstr "" +"它必须包含至少两个字段。第一个字段是 ``url``,类型为 ``string``。其内容必须是" +"符合 `WHATWG URL 标准 `_ 的有效 URL。" #: ../source/specifications/direct-url-data-structure.rst:28 msgid "" @@ -17790,22 +20237,26 @@ msgid "" "directory). These info fields have a (possibly empty) subdictionary as " "value, with the possible keys defined below." msgstr "" +"根据 ``url`` 所指向的内容,第二个字段必须是 ``vcs_info`` (如果 ``url`` 是 " +"VCS 引用)、``archive_info`` (如果 ``url`` 是源归档文件或 wheel 包)或 " +"``dir_info`` (如果 ``url`` 是本地目录)三者之一。这些信息字段的值为一个子字" +"典(可能为空),其中可以包含的各个键定义如下。" #: ../source/specifications/direct-url-data-structure.rst:35 msgid "Security Considerations" -msgstr "" +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 "" +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 "" +msgstr "不过,URL 的 user:password 部分可以由环境变量组成,并匹配以下正则表达式:" #: ../source/specifications/direct-url-data-structure.rst:48 msgid "" @@ -17813,16 +20264,21 @@ msgid "" "security sensitive string. A typical example is ``git`` in the case of a URL " "such as ``ssh://git@gitlab.com/user/repo``." msgstr "" +"此外,URL 的 user:password 部分也可以是一个广为人知且不含安全敏感信息的字符串" +"。一个典型的例子是,在形如 ``ssh://git@gitlab.com/user/repo`` 的 URL 中,该部" +"分为 ``git``。" #: ../source/specifications/direct-url-data-structure.rst:55 msgid "VCS URLs" -msgstr "" +msgstr "VCS URL" #: ../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 仓库时,``vcs_info`` 键必须存在,并且是一个包含以下键的字" +"典:" #: ../source/specifications/direct-url-data-structure.rst:60 msgid "" @@ -17832,6 +20288,10 @@ msgid "" "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`` 键(类型为 ``string``),其中包含 VCS 的名称(即 " +"``git``、``hg``、``bzr``、``svn`` 之一)。对于其他 VCS,应该通过撰写 PEP 修订" +"本规范的方式来注册。``url`` 的值必须与相应的 VCS 兼容,以便安装器可以将其不经" +"转换地直接移交给该 VCS 的检出/下载命令。" #: ../source/specifications/direct-url-data-structure.rst:66 msgid "" @@ -17840,6 +20300,9 @@ msgid "" "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`` 键(类型为 ``string``),用于指明分支/标签/引" +"用/提交/修订版本等(格式与相应的 VCS 兼容)。此字段必须与用户请求的修订版本一" +"致,并且在用户未选择特定修订版本时不得存在。" #: ../source/specifications/direct-url-data-structure.rst:70 msgid "" @@ -17848,22 +20311,29 @@ msgid "" "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`` 键(类型为 ``string``),其中包含已安装或将要安装的确" +"切提交/修订版本号。如果 VCS 支持基于提交哈希的修订版本标识符,则必须将该提交" +"哈希用作 ``commit_id``,以便引用源代码的一个不可变版本。" #: ../source/specifications/direct-url-data-structure.rst:80 msgid "Archive URLs" -msgstr "" +msgstr "归档文件 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`` 指向源归档文件或 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`` 键,其值为一个字典,将哈希名称映射到该文件的十六进制编码" +"摘要。" #: ../source/specifications/direct-url-data-structure.rst:88 msgid "" @@ -17871,10 +20341,12 @@ msgid "" "to do with multiple hashes (it may validate all of them or a subset of them, " "or nothing at all)." msgstr "" +"可以包含多个哈希值,至于如何处理这些哈希值则由消费者自行决定(可以校验全部或" +"其中一部分,也可以完全不校验)。" #: ../source/specifications/direct-url-data-structure.rst:92 msgid "These hash names SHOULD always be normalized to be lowercase." -msgstr "" +msgstr "这些哈希名称应该始终规范化为小写。" #: ../source/specifications/direct-url-data-structure.rst:94 msgid "" @@ -17884,12 +20356,18 @@ msgid "" "secure algorithm from :py:data:`hashlib.algorithms_guaranteed` SHOULD always " "be included. At time of writing, ``sha256`` specifically is recommended." msgstr "" +"任何可以通过 :py:mod:`hashlib` 获取的哈希算法(具体而言,即任何可以传递给 " +":py:func:`hashlib.new()` 且不需要额外参数的算法)都可以用作哈希字典的键。应该" +"始终包含至少一种来自 :py:data:`hashlib.algorithms_guaranteed` 的安全算法。截" +"至撰写本文时,特别推荐使用 ``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`` 键(类型为 ``string``),其值为 " +"``=``。" #: ../source/specifications/direct-url-data-structure.rst:103 msgid "" @@ -17898,6 +20376,9 @@ msgid "" "``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 "" @@ -17906,16 +20387,21 @@ msgid "" "consumers can consider the ``hashes`` key only if it is present, and fall " "back to ``hash`` otherwise." msgstr "" +"当 ``hash`` 和 ``hashes`` 两个键同时存在时,``hash`` 键所表示的哈希值必须也存" +"在于 ``hashes`` 字典中,这样消费者就可以只在 ``hashes`` 键存在时考虑使用它," +"否则回退到 ``hash``。" #: ../source/specifications/direct-url-data-structure.rst:114 msgid "Local directories" -msgstr "" +msgstr "本地目录" #: ../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 "" @@ -17923,6 +20409,8 @@ msgid "" "installed in editable mode, ``false`` otherwise. If absent, default to " "``false``." msgstr "" +"``editable`` (类型为 ``boolean``):如果分发包已经或将要以可编辑模式安装,则" +"为 ``true``,否则为 ``false``。如果此键缺失,则默认为 ``false``。" #: ../source/specifications/direct-url-data-structure.rst:122 msgid "" @@ -17931,6 +20419,9 @@ msgid "" "absolute. Symbolic links SHOULD be preserved when making relative paths " "absolute." msgstr "" +"当 ``url`` 指向本地目录时,它必须使用 ``file`` 方案(scheme),并符合 " +":rfc:`8089`。特别是,其中的路径部分必须是绝对路径。在将相对路径转换为绝对路径" +"时,应该保留符号链接。" #: ../source/specifications/direct-url-data-structure.rst:130 msgid "Projects in subdirectories" @@ -17942,10 +20433,13 @@ msgid "" "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`` 字段,其值为一个目录路径,相对于 VCS 仓库" +"、源归档文件或本地目录的根目录,用于指明 ``pyproject.toml`` 或 ``setup.py`` " +"所在的位置。" #: ../source/specifications/direct-url-data-structure.rst:139 msgid "Registered VCS" -msgstr "" +msgstr "已注册的 VCS" #: ../source/specifications/direct-url-data-structure.rst:141 msgid "" @@ -17957,64 +20451,71 @@ msgid "" "name (lowercased). Additional fields that would be necessary to support such " "VCS SHOULD be prefixed with the VCS command name." msgstr "" +"本节列出了已注册的 VCS;针对各个 VCS 的具体信息,说明如何使用 " +"``vcs``、``requested_revision`` 以及 ``vcs_info`` 的其他字段;在某些情况下还" +"列出了额外的 VCS 特有字段。工具可以支持其他 VCS,不过建议通过撰写 PEP 修订本" +"规范的方式来注册它们。``vcs`` 字段应该为命令名称(小写形式)。为支持此类 VCS " +"所需的附加字段应该以该 VCS 的命令名称作为前缀。" #: ../source/specifications/direct-url-data-structure.rst:151 msgid "Git" -msgstr "" +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 "" +msgstr "主页" #: ../source/specifications/direct-url-data-structure.rst:154 msgid "https://git-scm.com/" -msgstr "" +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 "" +msgstr "vcs 命令" #: ../source/specifications/direct-url-data-structure.rst:157 #: ../source/specifications/direct-url-data-structure.rst:160 msgid "git" -msgstr "" +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 "" +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 "" +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 "" +"标签名、分支名、Git 引用(ref)、提交哈希、缩短的提交哈希,或其他可解析为提交" +"的标识(commit-ish)。" #: ../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 "" +msgstr "``commit_id`` 字段" #: ../source/specifications/direct-url-data-structure.rst:167 msgid "A commit hash (40 hexadecimal characters sha1)." -msgstr "" +msgstr "提交哈希(40 个十六进制字符的 sha1)。" #: ../source/specifications/direct-url-data-structure.rst:171 msgid "" @@ -18023,48 +20524,51 @@ msgid "" "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 symbolic-ref`` 命令来判断 " +"``requested_revision`` 是否对应某个 Git 引用(ref)。而以 ``refs/tags/`` 开头" +"的引用对应标签,克隆之后以 ``refs/remotes/origin/`` 开头的引用则对应分支。" #: ../source/specifications/direct-url-data-structure.rst:178 msgid "Mercurial" -msgstr "" +msgstr "Mercurial" #: ../source/specifications/direct-url-data-structure.rst:181 msgid "https://www.mercurial-scm.org/" -msgstr "" +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 "" +msgstr "hg" #: ../source/specifications/direct-url-data-structure.rst:190 msgid "A tag name, branch name, changeset ID, shortened changeset ID." -msgstr "" +msgstr "标签名、分支名、变更集 ID、缩短的变更集 ID。" #: ../source/specifications/direct-url-data-structure.rst:193 msgid "A changeset ID (40 hexadecimal characters)." -msgstr "" +msgstr "变更集 ID(40 个十六进制字符)。" #: ../source/specifications/direct-url-data-structure.rst:196 msgid "Bazaar" -msgstr "" +msgstr "Bazaar" #: ../source/specifications/direct-url-data-structure.rst:199 msgid "https://www.breezy-vcs.org/" -msgstr "" +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 "" +msgstr "bzr" #: ../source/specifications/direct-url-data-structure.rst:208 msgid "A tag name, branch name, revision id." -msgstr "" +msgstr "标签名、分支名、修订版本 ID。" #: ../source/specifications/direct-url-data-structure.rst:211 msgid "A revision id." -msgstr "" +msgstr "修订版本 ID。" #: ../source/specifications/direct-url-data-structure.rst:214 msgid "Subversion" @@ -18077,67 +20581,77 @@ msgstr "" #: ../source/specifications/direct-url-data-structure.rst:220 #: ../source/specifications/direct-url-data-structure.rst:223 msgid "svn" -msgstr "" +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`` 必须与 ``svn checkout`` 的 ``--revision`` 选项兼容。" +"在 Subversion 中,分支或标签是 ``url`` 的一部分。" #: ../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 不支持全局唯一标识符,该字段为对应仓库中的 Subversion 修订版" +"本号。" #: ../source/specifications/direct-url-data-structure.rst:235 msgid "JSON Schema" -msgstr "" +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 "" +msgstr "可以使用下面的 JSON Schema 来验证 ``direct_url.json`` 的内容:" #: ../source/specifications/direct-url-data-structure.rst:244 msgid "Source archive:" -msgstr "" +msgstr "源归档文件:" #: ../source/specifications/direct-url-data-structure.rst:257 msgid "Git URL with tag and commit-hash:" -msgstr "" +msgstr "带标签和提交哈希的 Git URL:" #: ../source/specifications/direct-url-data-structure.rst:270 msgid "Local directory:" -msgstr "" +msgstr "本地目录:" #: ../source/specifications/direct-url-data-structure.rst:279 msgid "Local directory in editable mode:" -msgstr "" +msgstr "可编辑模式下的本地目录:" #: ../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 年 3 月:本规范通过 :pep:`610` 获得批准,定义了 ``direct_url.json`` 元数" +"据文件。" #: ../source/specifications/direct-url-data-structure.rst:296 msgid "" "January 2023: Added the ``archive_info.hashes`` key (`discussion `_)." msgstr "" +"2023 年 1 月:新增了 ``archive_info.hashes`` 键(参见 `讨论 `_)。" #: ../source/specifications/entry-points.rst:5 msgid "Entry points specification" -msgstr "" +msgstr "入口点规范" #: ../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 "" +"*入口点* 是一种机制,已安装的分发包可以借助它公布自己提供的组件,供其他代码发" +"现和使用。例如:" #: ../source/specifications/entry-points.rst:11 msgid "" @@ -18146,6 +20660,9 @@ msgid "" "installs the distribution, it will create a command-line wrapper for each " "entry point." msgstr "" +"分发包可以指定 ``console_scripts`` 入口点,其中每个入口点都指向一个函数。当 " +"*pip* (或其他能识别 console_scripts 的安装器)安装该分发包时,会为每个入口点" +"创建一个命令行包装器。" #: ../source/specifications/entry-points.rst:14 msgid "" @@ -18154,6 +20671,9 @@ msgid "" "installed packages. For more about this, see :doc:`/guides/creating-and-" "discovering-plugins`." msgstr "" +"应用程序可以利用入口点来加载插件;例如,Pygments(一个语法高亮工具)可以使用" +"单独安装的软件包所提供的更多词法分析器和样式。更多信息请参阅 :doc:`/guides/" +"creating-and-discovering-plugins`。" #: ../source/specifications/entry-points.rst:19 msgid "" @@ -18167,14 +20687,20 @@ msgid "" "metadata (potentially with different caching and conflict resolution " "strategies)." msgstr "" +"入口点文件格式最初是为了让使用 setuptools 构建的软件包能够提供可在运行时通过 " +":py:mod:`importlib.metadata` 读取的集成点元数据。如今,它已被定义为一项 PyPA " +"互操作性规范,以便让 ``setuptools`` 之外的构建工具能够发布与 " +":py:mod:`importlib.metadata` 兼容的入口点元数据,也让 " +":py:mod:`importlib.metadata` 之外的运行时库能够以可移植的方式读取已发布的入口" +"点元数据(可能采用不同的缓存和冲突解决策略)。" #: ../source/specifications/entry-points.rst:28 msgid "Data model" -msgstr "" +msgstr "数据模型" #: ../source/specifications/entry-points.rst:30 msgid "Conceptually, an entry point is defined by three required properties:" -msgstr "" +msgstr "从概念上讲,入口点由三个必需属性来定义:" #: ../source/specifications/entry-points.rst:32 msgid "" @@ -18188,6 +20714,12 @@ msgid "" "more groups of letters, numbers and underscores, separated by dots (regex " "``^\\w+(\\.\\w+)*$``)." msgstr "" +"入口点所属的 **组** 表明该入口点提供的是什么类型的对象。例如" +",``console_scripts`` 组用于指向可当作命令使用的函数的入口点,而 " +"``pygments.styles`` 则是针对定义 pygments 样式的类的组。消费者通常会定义所期" +"望的接口。为避免冲突,定义新组的消费者应该让组名以该消费者项目所拥有的某个 " +"PyPI 名称开头,后面跟着 ``.``。组名必须是一个或多个由字母、数字和下划线组成的" +"组,组之间以点分隔(正则表达式 ``^\\w+(\\.\\w+)*$``)。" #: ../source/specifications/entry-points.rst:42 msgid "" @@ -18201,6 +20733,12 @@ msgid "" "is recommended to use only letters, numbers, underscores, dots and dashes " "(regex ``[\\w.-]+``)." msgstr "" +"**名称** 在其组内标识该入口点。其确切含义由消费者决定。对于控制台脚本,入口点" +"的名称就是用于启动它的命令。在同一个分发包内,入口点名称应该是唯一的。如果不" +"同的分发包提供了相同的名称,则由消费者决定如何处理此类冲突。名称可以包含除 " +"``=`` 之外的任何字符,但不能以任何空白字符开头或结尾,也不能以 ``[`` 开头。对" +"于新的入口点,建议仅使用字母、数字、下划线、点和连字符(正则表达式 ``[\\w.-" +"]+``)。" #: ../source/specifications/entry-points.rst:51 msgid "" @@ -18209,6 +20747,9 @@ msgid "" "parts delimited by dots and the colon is a valid Python identifier. It is " "intended to be looked up like this::" msgstr "" +"**对象引用** 指向一个 Python 对象。它的形式为 ``importable.module`` 或 " +"``importable.module:object.attr``。以点和冒号分隔的每个部分都是一个有效的 " +"Python 标识符。其预期的查找方式如下:::" #: ../source/specifications/entry-points.rst:64 msgid "" @@ -18216,6 +20757,8 @@ msgid "" "for want of a better term, especially where it points to a function to " "launch a program." msgstr "" +"由于缺乏更合适的术语,一些工具会把这种对象引用本身称为“入口点”,尤其是当它指" +"向一个用于启动程序的函数时。" #: ../source/specifications/entry-points.rst:68 msgid "" @@ -18224,6 +20767,9 @@ msgid "" "If these are specified, the entry point requires the dependencies of those " "'extras'. See the metadata field :ref:`metadata_provides_extra`." msgstr "" +"此外还有一个可选属性,即 **附加功能(extras)**:这是一组字符串,用于标识提供" +"该入口点的分发包的可选特性。如果指定了这些附加功能,该入口点就需要这些附加功" +"能的依赖项。参见元数据字段 :ref:`metadata_provides_extra`。" #: ../source/specifications/entry-points.rst:73 msgid "" @@ -18233,10 +20779,14 @@ msgid "" "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)。消费者应该支持从现有分发包中解析它们" +",但随后可以将其忽略。新的发布工具无需支持指定附加功能。处理附加功能的机制原" +"本与 setuptools 管理“egg”软件包的模型相绑定,但 pip 和 virtualenv 等较新的工" +"具采用了不同的模型。" #: ../source/specifications/entry-points.rst:80 msgid "File format" -msgstr "" +msgstr "文件格式" #: ../source/specifications/entry-points.rst:82 msgid "" @@ -18246,6 +20796,10 @@ msgid "" "distributions, and in :ref:`binary-distribution-format` for wheels. The file " "uses the UTF-8 character encoding." msgstr "" +"入口点在分发包的 :file:`*.dist-info` 目录下一个名为 :file:`entry_points.txt` " +"的文件中定义。对于已安装的分发包,该目录就是在 :ref:`recording-installed-" +"packages` 中描述的目录;对于 wheel 包,就是在 :ref:`binary-distribution-" +"format` 中描述的目录。该文件使用 UTF-8 字符编码。" #: ../source/specifications/entry-points.rst:88 msgid "" @@ -18254,12 +20808,17 @@ msgid "" "whereas entry point names are case sensitive. A case-sensitive config parser " "can be made like this::" msgstr "" +"文件内容为 INI 格式,可由 Python 的 :mod:`configparser` 模块读取。不过," +"configparser 默认将名称视为不区分大小写,而入口点名称是区分大小写的。可以这样" +"构造一个区分大小写的配置解析器:::" #: ../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 "" +"入口点文件必须始终使用 ``=`` 来分隔名称与值(而 configparser 还允许使用 " +"``:``)。" #: ../source/specifications/entry-points.rst:101 msgid "" @@ -18268,6 +20827,8 @@ msgid "" "extras. If extras are used, they are a comma-separated list inside square " "brackets." msgstr "" +"配置文件中的各个节表示入口点组,名称就是名称,值则同时编码了对象引用和可选的" +"附加功能。如果使用了附加功能,它们就是方括号内以逗号分隔的列表。" #: ../source/specifications/entry-points.rst:105 msgid "" @@ -18279,10 +20840,14 @@ msgid "" "writing the file, it is recommended only to insert a space between the " "object reference and the left square bracket." msgstr "" +"在值内部,读取器必须接受并忽略以下位置的空格(包括多个连续的空格):冒号之前" +"或之后、对象引用与左方括号之间、附加功能名称与分隔它们的方括号和冒号之间,以" +"及右方括号之后。附加功能的语法在 :ref:`dependency-specifiers` 中有正式规定。" +"对于写入该文件的工具,建议只在对象引用与左方括号之间插入一个空格。" #: ../source/specifications/entry-points.rst:127 msgid "Use for scripts" -msgstr "" +msgstr "用于脚本" #: ../source/specifications/entry-points.rst:129 msgid "" @@ -18294,12 +20859,18 @@ msgid "" "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 "" +"例如,入口点 ``mycmd = mymod:main`` 将创建一个命令 ``mycmd``,它所启动的脚本" +"如下:::" #: ../source/specifications/entry-points.rst:144 msgid "" @@ -18312,6 +20883,12 @@ msgid "" "unless application code redirects them. Other platforms do not have the same " "distinction." msgstr "" +"``console_scripts`` 与 ``gui_scripts`` 之间的差异仅影响 Windows 系统" +"。``console_scripts`` 会被包装在控制台可执行文件中,因此它们附着在控制台上," +"可以使用 :py:data:`sys.stdin`、:py:data:`sys.stdout` 和 " +":py:data:`sys.stderr` 进行输入和输出。``gui_scripts`` 会被包装在 GUI 可执行文" +"件中,因此可以在没有控制台的情况下启动,但除非应用程序代码重定向了标准流,否" +"则无法使用标准流。其他平台没有这种区别。" #: ../source/specifications/entry-points.rst:152 msgid "" @@ -18320,6 +20897,9 @@ msgid "" "not responsible for putting this directory in the ``PATH`` environment " "variable which defines where command-line tools are found." msgstr "" +"安装工具应当在安装方案的 scripts 目录中为 ``console_scripts`` 和 " +"``gui_scripts`` 都创建包装器。它们不负责将该目录放入定义命令行工具查找位置的 " +"``PATH`` 环境变量。" #: ../source/specifications/entry-points.rst:157 msgid "" @@ -18328,18 +20908,25 @@ msgid "" "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 年 10 月:编写本规范是为了将 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 年 1 月:将对 :pep:`508` 和 :pep:`685` 的过时的直接引用替换为对 " +":ref:`dependency-specifiers` 的引用。" #: ../source/specifications/externally-managed-environments.rst:6 msgid "Externally Managed Environments" @@ -18352,6 +20939,9 @@ msgid "" "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 发行版中的操作系统软件包管理器管理,或是作为某个自" +"带专用安装程序的应用程序中捆绑的 Python 环境)。" #: ../source/specifications/externally-managed-environments.rst:13 msgid "" @@ -18360,6 +20950,8 @@ msgid "" "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 "" @@ -18369,6 +20961,9 @@ msgid "" "installation environment, and should instead guide the end user towards " "using :ref:`virtual-environments`." msgstr "" +"本规范定义了一种 ``EXTERNALLY-MANAGED`` 标记文件,让某个 Python 安装环境可以" +"向 ``pip`` 等 Python 专用工具表明:既不要在解释器的默认安装环境中安装软件包," +"也不要从中移除软件包,而应该引导最终用户去使用 :ref:`virtual-environments`。" #: ../source/specifications/externally-managed-environments.rst:24 msgid "" @@ -18378,10 +20973,13 @@ msgid "" "conflicting with the external package manager and reduces the risk of " "breaking software shipped by the external package manager." msgstr "" +"本规范还标准化了对 ``sysconfig`` 方案的一种解释:当某个 Python 软件包管理器要" +"在解释器全局范围内安装软件包时,它可以按一种避免与外部软件包管理器冲突的方式" +"进行,从而降低破坏外部软件包管理器所发布软件的风险。" #: ../source/specifications/externally-managed-environments.rst:32 msgid "Terminology" -msgstr "" +msgstr "术语" #: ../source/specifications/externally-managed-environments.rst:34 msgid "" @@ -18389,6 +20987,8 @@ msgid "" "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" @@ -18402,6 +21002,10 @@ msgid "" "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 解释器本身、" +"用 Python 编写的软件,以及用其他语言编写的软件。也就是说,这是 “Linux distro" +"” 或 “Berkeley Software Distribution” 等短语中所使用的含义。" #: ../source/specifications/externally-managed-environments.rst:46 msgid "" @@ -18409,6 +21013,9 @@ msgid "" "or FreeBSD. It can also be an overlay distribution that installs on top of " "an existing OS, such as Homebrew or MacPorts." msgstr "" +"发行版可以是一个独立的操作系统(OS),例如 Debian、Fedora 或 FreeBSD;也可以" +"是一种叠加安装在现有操作系统之上的发行版(overlay distribution),例如 " +"Homebrew 或 MacPorts。" #: ../source/specifications/externally-managed-environments.rst:51 msgid "" @@ -18420,12 +21027,19 @@ msgid "" "\"distribution\" at all. In the Python packaging sense, it uses the full " "phrase \"distribution package\" or just \"package\" (see below)." msgstr "" +"本文档使用 “distro” 这一简称,是因为 “distribution” 一词在 Python 打包语境中" +"另有所指:某个 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" @@ -18438,6 +21052,10 @@ msgid "" "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 包索引(Python Package Index)意" +"义上的用法。" #: ../source/specifications/externally-managed-environments.rst:70 msgid "" @@ -18445,6 +21063,8 @@ msgid "" "that contains Python modules, though in many cases, a distribution package " "consists of a single importable package of the same name." msgstr "" +"本文档不在“包含 Python 模块的可导入名称”(即导入包)的意义上使用 “package” 一" +"词,不过在许多情况下,一个分发包恰好由单个同名的可导入包组成。" #: ../source/specifications/externally-managed-environments.rst:75 msgid "" @@ -18454,6 +21074,10 @@ msgid "" "(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`` 文件)。确有需要时,本文档会使用诸如 “发行版的软件包” 的" +"表述。(同样,在许多情况下,Python 软件包是随某个发行版软件包一起提供的,该软" +"件包的名称类似于 ``python-`` 加上 Python 软件包名。)" #: ../source/specifications/externally-managed-environments.rst:102 msgid "Python-specific package manager" @@ -18467,12 +21091,17 @@ msgid "" "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`` 命令已在 2021 年 1 月 23 日发布的 setuptools 52 版" +"本中被移除。)" #: ../source/specifications/externally-managed-environments.rst:96 msgid "" @@ -18482,6 +21111,10 @@ msgid "" "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 创建" +"的环境中操作,当其充当 Python 专用软件包管理器时,本文档中的大部分顾虑并不适" +"用于 ``conda``。)" #: ../source/specifications/externally-managed-environments.rst:118 msgid "distro package manager" @@ -18499,6 +21132,13 @@ msgid "" "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:`已安装分发包的数据库 ` " +"并不相关。例子包括 ``apt``、``dpkg``、``dnf``、``rpm``、``pacman`` 和 " +"``brew``。其显著特征在于:如果某个软件包是由发行版软件包管理器安装的,那么以" +"满足 Python 专用软件包管理器要求的方式移除或升级它,通常会使发行版软件包管理" +"器陷入不一致的状态。" #: ../source/specifications/externally-managed-environments.rst:117 msgid "" @@ -18506,10 +21146,12 @@ msgid "" "\"system's package manager\" to refer to a distro package manager in certain " "contexts." msgstr "" +"在某些语境下,本文档也会使用 “外部软件包管理器” 或 “系统软件包管理器” 等说法" +"来指代发行版软件包管理器。" #: ../source/specifications/externally-managed-environments.rst:127 msgid "shadow" -msgstr "" +msgstr "遮蔽(shadow)" #: ../source/specifications/externally-managed-environments.rst:121 msgid "" @@ -18520,10 +21162,15 @@ msgid "" "``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 软件包,是指让其他某个软件包在导入时被优先" +"选用,而不移除被遮蔽软件包中的任何文件。这要求 ``sys.path`` 上有多个条目:如" +"果软件包 A 2.0 在某个 ``sys.path`` 条目中安装了模块 ``a.py``,而软件包 A 1.0 " +"在更靠后的某个 ``sys.path`` 条目中安装了模块 ``a.py``,那么 ``import a`` 返回" +"的是前者的模块,此时我们就说 A 2.0 遮蔽了 A 1.0。" #: ../source/specifications/externally-managed-environments.rst:132 msgid "This specification is twofold." -msgstr "" +msgstr "本规范包含两部分内容。" #: ../source/specifications/externally-managed-environments.rst:134 msgid "" @@ -18535,6 +21182,10 @@ msgid "" "provides a means for the distributor to indicate how to use a virtual " "environment as an alternative." msgstr "" +"首先,它描述了 **一种供 Python 解释器发行商将解释器标记为“其软件包由 Python " +"之外的手段管理”的方法**,如此一来,除非被明确覆盖,pip 之类的 Python 专用工具" +"就不应该以任何方式(添加、升级/降级或移除)更改解释器全局 ``sys.path`` 中已安" +"装的软件包。它还为发行商提供了一种途径,用以说明如何以虚拟环境作为替代方案。" #: ../source/specifications/externally-managed-environments.rst:142 msgid "" @@ -18543,6 +21194,9 @@ msgid "" "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 解" +"释器不会被如此标记,因此,使用自行编译的解释器,或使用未显式标记其解释器的发" +"行版时,运行 ``pip install`` 会一如既往地正常工作。" #: ../source/specifications/externally-managed-environments.rst:148 msgid "" @@ -18556,10 +21210,16 @@ msgid "" "packages will not delete (or overwrite) files owned by the external package " "manager." msgstr "" +"其次,它确立了这样一条规则:若向解释器的全局环境安装软件包(无论是向未加标记" +"的解释器安装,还是在覆盖该标记的情况下安装),则 **Python 专用软件包管理器应" +"该只在其本来会创建文件的那部分 sysconfig 方案目录之内修改或删除文件**。这允" +"许 Python 解释器的发行商设置两个目录:一个用于其自行管理的软件包,另一个用于" +"最终用户安装的非托管软件包,并确保安装非托管软件包不会删除(或覆盖)外部软件" +"包管理器所拥有的文件。" #: ../source/specifications/externally-managed-environments.rst:160 msgid "Marking an interpreter as using an external package manager" -msgstr "" +msgstr "将解释器标记为使用外部软件包管理器" #: ../source/specifications/externally-managed-environments.rst:162 msgid "" @@ -18567,18 +21227,24 @@ msgid "" "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 "" +"它是否运行在虚拟环境之外?它可以通过 ``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 "" +"在由 ``sysconfig.get_path(\"stdlib\", sysconfig.get_default_scheme())`` 标识" +"的目录中,是否存在 ``EXTERNALLY-MANAGED`` 文件?" #: ../source/specifications/externally-managed-environments.rst:173 msgid "" @@ -18586,6 +21252,8 @@ msgid "" "error message indicating that package installation into this Python " "interpreter's directory are disabled outside of a virtual environment." msgstr "" +"如果这两个条件都成立,安装程序就应该退出并输出一条错误消息,指出在虚拟环境之" +"外已禁止向此 Python 解释器的目录安装软件包。" #: ../source/specifications/externally-managed-environments.rst:177 msgid "" @@ -18594,6 +21262,9 @@ msgid "" "be enabled by default and should carry some connotation that its use is " "risky." msgstr "" +"安装程序应该提供让用户覆盖这些规则的方法,例如一个命令行标志 ``--break-" +"system-packages``。这个选项不应该默认启用,并且应该在一定程度上暗示使用它是有" +"风险的。" #: ../source/specifications/externally-managed-environments.rst:182 msgid "" @@ -18611,6 +21282,16 @@ msgid "" "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 风格的元数据文件,旨在让标准库的 " +"configparser_ 模块能够解析。如果该文件能够以 UTF-8 编码被 " +"``configparser.ConfigParser(interpolation=None)`` 解析,并且包含一个 " +"``[externally-managed]`` 节,那么安装程序就应该在文件中查找其中指定的错误消息" +",并将其作为错误输出的一部分。如果 ``locale.getlocale(locale.LC_MESSAGES)`` " +"返回的元组的第一个元素(即语言代码)不是 ``None``,它就应该查找一个名为 " +"``Error-`` 加语言代码的键,并把该键的值作为错误消息。如果这个键不存在,而且语" +"言代码中包含下划线或连字符,它就应该查找一个名为 ``Error-`` 加语言代码中下划" +"线或连字符之前部分的键。如果这两者都找不到,或者语言代码为 ``None``,它就应该" +"查找一个仅名为 ``Error`` 的键。" #: ../source/specifications/externally-managed-environments.rst:200 msgid "" @@ -18620,6 +21301,9 @@ msgid "" "should suggest that the user create a virtual environment to install " "packages." msgstr "" +"如果安装程序无法在文件中找到错误消息(要么是因为文件无法解析,要么是因为不存" +"在合适的错误键),那么它就应该直接使用自己预定义的错误消息,而这条消息应该建" +"议用户创建虚拟环境来安装软件包。" #: ../source/specifications/externally-managed-environments.rst:206 msgid "" @@ -18629,12 +21313,18 @@ msgid "" "directory. For instance, Debian may ship a file in ``/usr/lib/python3.9/" "EXTERNALLY-MANAGED`` consisting of something like" msgstr "" +"如果软件发行商拥有一个非 Python 专用的软件包管理器,并且该管理器会管理其 " +"Python 软件包 ``sys.path`` 中的库,那么这些发行商通常应该在自己的标准库目录中" +"提供一个 ``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 "" @@ -18643,10 +21333,13 @@ msgid "" "MANAGED`` file, so that users can install whatever they like (as they can " "today) without having to manually override this rule." msgstr "" +"在某些场景下,例如创建之后不再更新的单应用程序容器镜像,发行商可以选择不提供 " +"``EXTERNALLY-MANAGED`` 文件,这样用户无需手动覆盖这条规则即可安装任何想要的软" +"件包(一如现状)。" #: ../source/specifications/externally-managed-environments.rst:247 msgid "Writing to only the target ``sysconfig`` scheme" -msgstr "" +msgstr "只写入目标 ``sysconfig`` 方案" #: ../source/specifications/externally-managed-environments.rst:249 msgid "" @@ -18655,6 +21348,10 @@ msgid "" "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 软件包安装程序会安装到由 ``sysconfig`` 标准库软件包返回的某个方" +"案中的目录。一般情况下,这个方案就是 ``sysconfig.get_default_scheme()`` 所返" +"回的方案,但根据配置的不同(例如 ``pip install --user``),它也可能使用别的方" +"案。" #: ../source/specifications/externally-managed-environments.rst:255 msgid "" @@ -18665,38 +21362,48 @@ msgid "" "in a directory from another scheme), it should leave the existing files " "alone." msgstr "" +"每当安装程序向某个 ``sysconfig`` 方案安装时,本规范都声明:安装程序绝不应该修" +"改或删除该方案之外的文件。举例来说,假如它正在升级某个软件包,而该软件包已经" +"安装在方案之外的某个目录里(也许属于另一个方案),那么它就应该不去动那些现有" +"的文件。" #: ../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 "" +"如果安装程序在升级过程中最终确实遮蔽了现有的安装,我们建议它在运行结束时给出" +"一条警告。" #: ../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`` 方案之外的位置(例如 ``pip install --" +"target``),那么本小节并不适用。" #: ../source/specifications/externally-managed-environments.rst:271 msgid "Recommendations for distros" -msgstr "" +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 "" +msgstr "将安装环境标记为外部管理" #: ../source/specifications/externally-managed-environments.rst:279 msgid "" "Distros should create an ``EXTERNALLY-MANAGED`` file in their ``stdlib`` " "directory." -msgstr "" +msgstr "发行版应该在其 ``stdlib`` 目录中创建一个 ``EXTERNALLY-MANAGED`` 文件。" #: ../source/specifications/externally-managed-environments.rst:283 msgid "Guide users towards virtual environments" @@ -18712,6 +21419,11 @@ msgid "" "venv`` does not work, the message should indicate clearly how to make " "``python3 -m venv`` work properly." msgstr "" +"该文件应该包含一条有用且与发行版相关的错误消息,既说明如何通过发行版的软件包" +"管理器安装系统级软件包,也说明如何建立虚拟环境。如果你的发行版经常被用户在 " +"``python3`` 命令可用(尤其是 ``pip`` 或 ``get-pip`` 可用)而 ``python3 -m " +"venv`` 无法工作的状态下使用,那么该消息就应该清楚地说明如何让 ``python3 -m " +"venv`` 正常工作。" #: ../source/specifications/externally-managed-environments.rst:293 msgid "" @@ -18726,10 +21438,17 @@ msgid "" "for Python for end users (e.g., ``python3`` on Fedora or ``python3-full`` on " "Debian) depends on pipx." msgstr "" +"可以考虑打包 pipx_,并在错误消息中推荐这款用于安装 Python 语言应用程序的工具" +"。pipx 会自动为对应的应用程序单独创建一个虚拟环境,对于想要安装某些 Python 语" +"言软件(发行版中未提供)但自己并非 Python 用户的最终用户来说,这是好得多的默" +"认选择。在发行版中打包 pipx 可以避免这样的讽刺局面:为了 *避免* 破坏系统软件" +"包,却要指导用户去执行 ``pip install --user --break-system-packages pipx``。" +"你还可以考虑作出安排,让你的发行版面向最终用户的 Python 软件包/环境(例如 " +"Fedora 上的 ``python3`` 或 Debian 上的 ``python3-full``)依赖 pipx。" #: ../source/specifications/externally-managed-environments.rst:308 msgid "Keep the marker file in container images" -msgstr "" +msgstr "在容器镜像中保留标记文件" #: ../source/specifications/externally-managed-environments.rst:310 msgid "" @@ -18739,10 +21458,13 @@ msgid "" "installs package updates inside their image (think ``RUN apt-get dist-" "upgrade``)." msgstr "" +"为单应用程序容器(例如 Docker 容器镜像)制作官方镜像的发行版,应该保留 " +"``EXTERNALLY-MANAGED`` 文件,最好采用这样的方式:即使镜像的用户在镜像内部安装" +"软件包更新(想想 ``RUN apt-get dist-upgrade``),该文件也不会消失。" #: ../source/specifications/externally-managed-environments.rst:317 msgid "Create separate distro and local directories" -msgstr "" +msgstr "创建相互独立的发行版目录和本地目录" #: ../source/specifications/externally-managed-environments.rst:319 msgid "" @@ -18754,6 +21476,11 @@ msgid "" "the local system administrator should come before the distro path on " "``sys.path`` so that local installs take preference over distro packages." msgstr "" +"各发行版应该在系统解释器的 ``sys.path`` 上放置两条相互独立的路径,一条用于发" +"行版安装的软件包,另一条用于本地系统管理员安装的软件包,并把 " +"``sysconfig.get_default_scheme()`` 配置为指向后一条路径。这样可以确保 pip 之" +"类的工具不会修改发行版安装的软件包。本地系统管理员的路径在 ``sys.path`` 上应" +"该排在发行版路径之前,使本地安装的软件包优先于发行版软件包。" #: ../source/specifications/externally-managed-environments.rst:328 msgid "" @@ -18768,6 +21495,14 @@ msgid "" "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``,发行版安装的软件包使用 ``/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 解释器之间的又一层隔离:如果" +"你把上游 CPython 构建并安装到 ``/usr/local/bin``,它会去查看 ``/usr/local/" +"lib/python3/site-packages``,而 Debian 希望确保通过本地构建的解释器安装的软件" +"包不会出现在发行版解释器的 ``sys.path`` 上。)" #: ../source/specifications/externally-managed-environments.rst:341 msgid "" @@ -18776,6 +21511,9 @@ msgid "" "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``。这种划" +"分方式为 `文件系统层次结构标准`__ 所推荐。" #: ../source/specifications/externally-managed-environments.rst:349 msgid "" @@ -18784,6 +21522,9 @@ msgid "" "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 "" +"有两种方法可以做到这一点。其一:如果你在直接构建和打包 Python 库(例如你的打" +"包辅助工具会解包 wheel 或调用 ``setup.py install``),可以让这些工具使用一个" +"不在某个 ``sysconfig`` 方案中、但仍在 ``sys.path`` 上的目录。" #: ../source/specifications/externally-managed-environments.rst:355 msgid "" @@ -18796,6 +21537,11 @@ msgid "" "from inside a package build. Then you can use ``pip install`` as part of " "your distro packaging." msgstr "" +"另一种方法是让默认的 ``sysconfig`` 方案在软件包构建内部运行时与在已安装的系统" +"上运行时有所不同。来自 bpo-43976_ 的 ``sysconfig`` 定制钩子应该能让这件事变得" +"容易(在被接受和实现之后):让你的打包工具设置一个环境变量或其他某种可检测的" +"配置,并定义一个 ``get_preferred_schemes`` 函数,使其在从软件包构建内部被调用" +"时返回不同的方案。这样你就可以在发行版打包过程中使用 ``pip install`` 了。" #: ../source/specifications/externally-managed-environments.rst:367 msgid "" @@ -18808,6 +21554,12 @@ msgid "" "absolutely needed, use ``pip uninstall --scheme=posix_distro`` to use pip to " "remove packages from the system-managed directory." msgstr "" +"我们提议为 pip 增加一个 ``--scheme=...`` 选项,指示 pip 针对特定方案运行。(" +"关于 pip 目前如何确定方案,请参见下文的 `实现注意事项`_ 一节。)一旦该选项可" +"用,出于本地测试的目的(也可能包括实际的打包),你就可以运行类似 ``pip " +"install --scheme=posix_distro`` 的命令,把软件包显式安装到你发行版的位置(绕" +"过 ``get_preferred_schemes``)。如果确有必要,也可以使用 ``pip uninstall --" +"scheme=posix_distro`` 来让 pip 从系统管理的目录中移除软件包。" #: ../source/specifications/externally-managed-environments.rst:377 msgid "" @@ -18816,6 +21568,9 @@ msgid "" "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 运行,或者在命令行上覆盖它。你可能希望像在容器镜像中那样,在构建 chroot " +"环境中使用同样的方式来屏蔽标记文件。" #: ../source/specifications/externally-managed-environments.rst:383 msgid "" @@ -18828,12 +21583,18 @@ msgid "" "packaging process always calls ``pip install --scheme=posix_distro --break-" "system-packages``, which would work too." msgstr "" +"把这些设置做成自动的(在你的构建环境中屏蔽标记文件,并让 " +"``get_preferred_schemes`` 自动返回你发行版的方案)好处在于:直接运行 ``pip " +"install`` 也能在软件包构建内部正常工作,这通常意味着,某个碰巧在内部调用了 " +"``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 "" +msgstr "这里的最佳做法在很大程度上取决于你的发行版在打包方面的惯例和机制。" #: ../source/specifications/externally-managed-environments.rst:396 msgid "" @@ -18848,6 +21609,14 @@ msgid "" "``scripts`` and ``/usr/bin`` for distro-packaged entry points and place both " "on ``$PATH``." msgstr "" +"类似地,不用于可导入 Python 代码的那些 ``sysconfig`` 路径(即 " +"``include``、``platinclude``、``scripts`` 和 ``data``)也应该有两种变体:一种" +"供发行版打包的软件使用,另一种供本地安装的软件使用,并且发行版应该做好设置," +"让两者都可用。例如,一个遵循 FHS 的典型发行版会把 ``/usr/local/include`` 用作" +"默认方案的 ``include`` 路径,把 ``/usr/include`` 用作发行版打包的头文件所在路" +"径,并把两者都放到编译器的搜索路径上;它会把 ``/usr/local/bin`` 用作默认方案" +"的 ``scripts`` 路径,把 ``/usr/bin`` 用作发行版打包的入口点所在路径,并把两者" +"都放到 ``$PATH`` 上。" #: ../source/specifications/externally-managed-environments.rst:410 msgid "Implementation Notes" @@ -18857,7 +21626,7 @@ msgstr "实现注意事项" msgid "" "This section is non-normative and contains notes relevant to both the " "specification and potential implementations." -msgstr "" +msgstr "本节是非规范性的,包含与本规范和潜在实现都相关的注意事项。" #: ../source/specifications/externally-managed-environments.rst:415 msgid "" @@ -18865,6 +21634,8 @@ msgid "" "target ``sysconfig`` scheme, but it has three ways of looking up schemes " "when installing:" msgstr "" +"目前(截至 2021 年 5 月),pip 并没有直接提供选择目标 ``sysconfig`` 方案的途" +"径,但它在安装时有三种查找方案的方式:" #: ../source/specifications/externally-managed-environments.rst:422 msgid "``pip install``" @@ -18876,6 +21647,8 @@ msgid "" "CPython and most current distros) the same as " "``get_preferred_scheme('prefix')``." msgstr "" +"调用 ``sysconfig.get_default_scheme()``,它通常(在上游 CPython 和大多数当前" +"的发行版中)与 ``get_preferred_scheme('prefix')`` 相同。" #: ../source/specifications/externally-managed-environments.rst:425 msgid "``pip install --prefix=/some/path``" @@ -18883,7 +21656,7 @@ msgstr "``pip install --prefix=/some/path``" #: ../source/specifications/externally-managed-environments.rst:425 msgid "Calls ``sysconfig.get_preferred_scheme('prefix')``." -msgstr "" +msgstr "调用 ``sysconfig.get_preferred_scheme('prefix')``。" #: ../source/specifications/externally-managed-environments.rst:428 msgid "``pip install --user``" @@ -18891,13 +21664,15 @@ msgstr "``pip install --user``" #: ../source/specifications/externally-managed-environments.rst:428 msgid "Calls ``sysconfig.get_preferred_scheme('user')``." -msgstr "" +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``,而不查找" +"任何方案。" #: ../source/specifications/externally-managed-environments.rst:433 msgid "" @@ -18910,6 +21685,11 @@ msgid "" "``sysconfig`` scheme, and notably does not change the result of " "``sysconfig.get_path(\"stdlib\")``." msgstr "" +"Debian 目前携带了一个 `用于更改虚拟环境内默认安装位置的补丁`__,它使用了一些" +"启发式规则(包括检查 ``VIRTUAL_ENV`` 环境变量),主要是为了让虚拟环境中使用的" +"目录保持为 ``site-packages`` 而不是 ``dist-packages``。这对本提案并没有特别的" +"影响,因为该补丁的实现实际上并没有更改默认的 ``sysconfig`` 方案,尤其没有更" +"改 ``sysconfig.get_path(\"stdlib\")`` 的结果。" #: ../source/specifications/externally-managed-environments.rst:445 msgid "" @@ -18919,6 +21699,10 @@ msgid "" "envisioned by bpo-43976_, except implemented as a code patch to " "``distutils`` instead of as a changed ``sysconfig`` scheme." msgstr "" +"Fedora 目前携带了一个 `用于在未运行于 rpmbuild 内部时更改默认安装位置的补" +"丁`__,他们用它来实现采用两个系统级目录的做法。从概念上讲,这正是 bpo-43976_ " +"所设想的那类钩子,只不过它是作为针对 ``distutils`` 的代码补丁实现的,而不是通" +"过更改 ``sysconfig`` 方案来实现的。" #: ../source/specifications/externally-managed-environments.rst:454 msgid "" @@ -18928,28 +21712,33 @@ msgid "" "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 "" +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 "" +msgstr "2022 年 6 月:本规范通过 :pep:`668` 获得批准。" #: ../source/specifications/file-yanking.rst:5 msgid "File Yanking" -msgstr "" +msgstr "文件撤回" #: ../source/specifications/file-yanking.rst:9 msgid "This specification was originally defined in :pep:`592`." -msgstr "" +msgstr "本规范最初定义于 :pep:`592`。" #: ../source/specifications/file-yanking.rst:14 msgid "" @@ -18958,6 +21747,10 @@ msgid "" "Project Detail ` and :ref:`JSON - " "Project Detail `." msgstr "" +":pep:`592` 包含对 HTML 和 JSON 索引 API 的更改。这些更改记录在 :ref:`simple-" +"repository-api` 的 :ref:`HTML - 项目详情 ` 和 :ref:`JSON - 项目详情 ` 两" +"节中。" #: ../source/specifications/file-yanking.rst:22 msgid "" @@ -18968,6 +21761,9 @@ msgid "" "\"Yanked\", and should not generally be selected by an installer, except " "under specific scenarios." msgstr "" +"简单仓库中的链接 **可以** 带有 ``data-yanked`` 属性,该属性可以没有值,也可以" +"将任意字符串作为值。如果存在 ``data-yanked`` 属性,则 **应该** 将其存在解释为" +":该特定链接指向的文件已被“撤回”,除特定场景外,安装程序一般不应选择该文件。" #: ../source/specifications/file-yanking.rst:29 msgid "" @@ -18976,6 +21772,8 @@ msgid "" "that process the simple repository API **MAY** surface this string to end " "users." msgstr "" +"``data-yanked`` 属性的值(如果存在)是一个任意字符串,表示该文件被撤回的原因" +"。处理简单仓库 API 的工具 **可以** 将该字符串呈现给最终用户。" #: ../source/specifications/file-yanking.rst:34 msgid "" @@ -18984,6 +21782,9 @@ msgid "" "be able to cope with a yanked file being \"unyanked\" (and even yanked " "again)." msgstr "" +"撤回属性一旦设置就并非不可变,将来可能被撤销(而一旦撤销,也可能被重新设置)" +"。因此,API 用户 **必须** 能够应对已撤回的文件被“取消撤回”(甚至再次被撤回)" +"的情形。" #: ../source/specifications/file-yanking.rst:40 msgid "Installers" @@ -18998,6 +21799,10 @@ msgid "" "original order to install the now yanked file, then it acts as if it had not " "been yanked." msgstr "" +"理想的用户体验是:一旦文件被撤回,如果此刻有人正试图直接安装该已撤回的文件," +"安装就应当像该文件已被删除一样失败。然而,如果是某人先前发出的请求,现在只是" +"计算机在机械地继续执行原始指令来安装这个如今已被撤回的文件,那么就应当表现得" +"如同该文件未被撤回一样。" #: ../source/specifications/file-yanking.rst:49 msgid "" @@ -19008,6 +21813,10 @@ msgid "" "intention above, and that prevents \"new\" dependencies on yanked releases/" "files." msgstr "" +"如果选择约束可以由某个未撤回的版本来满足,安装程序就 **必须** 忽略已撤回的版" +"本;而且即使这意味着请求完全无法满足,安装程序也 **可以** 拒绝使用已撤回的版" +"本。实现 **应该** 选择一种既遵循上述意图的精神、又能防止对已撤回的版本/文件产" +"生“新”依赖的策略。" #: ../source/specifications/file-yanking.rst:56 msgid "" @@ -19015,6 +21824,8 @@ msgid "" "fit into the overall usage of their installer. However, there are two " "suggested approaches to take:" msgstr "" +"其中的具体含义由各个安装程序自行决定,以最契合该安装程序的整体使用方式。不过" +",有两种建议的做法:" #: ../source/specifications/file-yanking.rst:60 msgid "" @@ -19025,6 +21836,10 @@ msgid "" "version specifiers specification ` for things like local " "versions, zero padding, etc." msgstr "" +"已撤回的文件总是被忽略,除非它们是唯一匹配某个版本说明符的文件,而该版本说明" +"符使用 ``==`` (不带任何会使其变成范围匹配的修饰符,例如 ``.*``)或 ``===`` " +"将版本“锁定”到确切版本。除此之外,对该版本说明符的匹配应按照 :ref:`版本说明符" +"规范 ` 处理,包括本地版本、零填充等情况。" #: ../source/specifications/file-yanking.rst:67 msgid "" @@ -19033,6 +21848,9 @@ msgid "" "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 "" +"已撤回的文件总是被忽略,除非它们是唯一一个与某个锁定文件(例如 " +"``Pipfile.lock`` 或 ``poetry.lock``)所指定要安装的内容相匹配的文件。在这种情" +"况下,从某个输入文件或命令创建或更新锁定文件时,**应该** 不使用已撤回的文件。" #: ../source/specifications/file-yanking.rst:73 msgid "" @@ -19042,14 +21860,17 @@ msgid "" "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 "" +"无论安装程序选择何种策略来决定何时安装已撤回的文件,当它确实决定安装某个已撤" +"回的文件时,都 **应该** 发出警告。该警告 **可以** 利用 ``data-yanked`` 属性的" +"值(如果该属性有值),就文件被撤回的原因向用户提供更具体的反馈。" #: ../source/specifications/file-yanking.rst:81 msgid "Mirrors" -msgstr "" +msgstr "镜像" #: ../source/specifications/file-yanking.rst:83 msgid "Mirrors can generally treat yanked files one of two ways:" -msgstr "" +msgstr "镜像通常可以用以下两种方式之一来处理已撤回的文件:" #: ../source/specifications/file-yanking.rst:85 msgid "" @@ -19057,22 +21878,24 @@ msgid "" "providing a view over the repository that shows only \"active\", unyanked " "files." msgstr "" +"它们可以选择在其简单仓库 API 中完全省略已撤回的文件,从而提供一个仅显示“活跃”" +"的未撤回文件的仓库视图。" #: ../source/specifications/file-yanking.rst:88 msgid "" "They may choose to include yanked files, and additionally mirror the ``data-" "yanked`` attribute as well." -msgstr "" +msgstr "它们也可以选择包含已撤回的文件,并同时镜像 ``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 "" +msgstr "镜像 **不得** 镜像某个已撤回的文件而不一并镜像其 ``data-yanked`` 属性。" #: ../source/specifications/glob-patterns.rst:3 msgid "``glob`` patterns" -msgstr "" +msgstr "``glob`` 模式" #: ../source/specifications/glob-patterns.rst:5 msgid "" @@ -19082,22 +21905,30 @@ msgid "" "and directories. This specification defines which patterns are acceptable " "and how they should be handled." msgstr "" +"某些 PyPA 规范(例如 :ref:`pyproject.toml 的 license-files `)会接受特定类型的 *glob 模式*,用包含通配符和字符范围的给定字" +"符串去匹配文件和目录。本规范定义了哪些模式是可以接受的,以及应该如何处理这些" +"模式。" #: ../source/specifications/glob-patterns.rst:13 msgid "Valid glob patterns" -msgstr "" +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 "" +"字母数字字符、空格(``U+0020``)、下划线(``_``)、连字符(``-``)和点号" +"(``.``)必须按原样匹配。" #: ../source/specifications/glob-patterns.rst:21 msgid "" @@ -19107,10 +21938,13 @@ msgid "" "based on Unicode code points). Hyphens at the start or end are matched " "literally." msgstr "" +"必须支持特殊 glob 字符 ``*``、``?``、``**`` 以及字符范围 ``[]``,其中仅包含按" +"原样匹配的字符。在 ``[...]`` 中,连字符表示与区域设置无关的范围(例如 ``a-" +"z``,顺序基于 Unicode 码点)。位于开头或结尾的连字符按字面值匹配。" #: ../source/specifications/glob-patterns.rst:27 msgid "Path delimiters MUST be the forward slash character (``/``)." -msgstr "" +msgstr "路径分隔符必须是正斜杠字符(``/``)。" #: ../source/specifications/glob-patterns.rst:29 msgid "" @@ -19119,10 +21953,12 @@ msgid "" "directory containing that file. Therefore the leading slash character MUST " "NOT be used." msgstr "" +"模式总是指 *相对路径*,例如在 :file:`pyproject.toml` 中使用时,模式应该始终相" +"对于包含该文件的目录。因此,不得使用前导斜杠字符。" #: ../source/specifications/glob-patterns.rst:34 msgid "Parent directory indicators (``..``) MUST NOT be used." -msgstr "" +msgstr "不得使用父目录指示符(``..``)。" #: ../source/specifications/glob-patterns.rst:36 msgid "" @@ -19130,36 +21966,38 @@ msgid "" "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 "" +msgstr "字面路径(例如 :file:`LICENSE`)是有效的 glob,这意味着它们也可以被定义。" #: ../source/specifications/glob-patterns.rst:43 msgid "Tools consuming glob patterns:" -msgstr "" +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 "" +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 "" +msgstr "如果用户指定的任意单个模式未能匹配至少一个文件,则必须报错。" #: ../source/specifications/glob-patterns.rst:50 msgid "Examples of valid glob patterns:" -msgstr "" +msgstr "有效的 glob 模式示例:" #: ../source/specifications/glob-patterns.rst:61 msgid "Examples of invalid glob patterns:" -msgstr "" +msgstr "无效的 glob 模式示例:" #: ../source/specifications/glob-patterns.rst:74 msgid "Reference implementation in Python" @@ -19171,22 +22009,24 @@ msgid "" "file system to the :mod:`glob` module in Python's standard library. It is " "necessary however to perform additional validations." msgstr "" +"可以把大部分针对文件系统的模式匹配工作交给 Python 标准库中的 :mod:`glob` 模块" +"来完成。不过,仍然有必要执行额外的校验。" #: ../source/specifications/glob-patterns.rst:80 msgid "The code below is as a simple reference implementation:" -msgstr "" +msgstr "下面的代码是一个简单的参考实现:" #: ../source/specifications/glob-patterns.rst:120 msgid "January 2025: Initial version" -msgstr "" +msgstr "2025 年 1 月:初始版本" #: ../source/specifications/glob-patterns.rst:121 msgid "March 2026: Treat spaces as a verbatim character" -msgstr "" +msgstr "2026 年 3 月:将空格视为按原样匹配的字符" #: ../source/specifications/index.rst:4 msgid "PyPA specifications" -msgstr "" +msgstr "PyPA 规范" #: ../source/specifications/index.rst:6 msgid "" @@ -19195,14 +22035,17 @@ msgid "" "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 "" +msgstr "索引托管的证明" #: ../source/specifications/index-hosted-attestations.rst:8 msgid "This specification was originally defined in :pep:`740`." -msgstr "" +msgstr "本规范最初定义于 :pep:`740`。" #: ../source/specifications/index-hosted-attestations.rst:12 msgid "" @@ -19210,10 +22053,13 @@ msgid "" "are documented in the :ref:`simple-repository-api` under :ref:`simple-" "repository-api-base` and :ref:`json-serialization`." msgstr "" +":pep:`740` 包含对 HTML 和 JSON 索引 API 的更改。这些更改记录在 :ref:`simple-" +"repository-api` 中的 :ref:`simple-repository-api-base` 和 :ref:`json-" +"serialization` 部分。" #: ../source/specifications/index-hosted-attestations.rst:22 msgid "Upload endpoint changes" -msgstr "" +msgstr "上传端点的更改" #: ../source/specifications/index-hosted-attestations.rst:26 msgid "" @@ -19221,10 +22067,12 @@ msgid "" "documentation `_ for how attestations are " "uploaded." msgstr "" +"“旧式”(legacy)上传 API 未被标准化。请参见 `PyPI 上传 API 文档 `_,了解证明如何上传。" #: ../source/specifications/index-hosted-attestations.rst:33 msgid "Attestation objects" -msgstr "" +msgstr "证明对象" #: ../source/specifications/index-hosted-attestations.rst:35 msgid "" @@ -19233,6 +22081,8 @@ msgid "" "explicitly listed keys are provided. The required layout of an attestation " "object is provided as pseudocode below." msgstr "" +"证明对象是一个包含若干必需键的 JSON 对象;只要提供了所有显式列出的键,应用程" +"序或签名者就可以包含额外的键。证明对象的必需布局以下面的伪代码形式给出。" #: ../source/specifications/index-hosted-attestations.rst:88 msgid "" @@ -19242,6 +22092,10 @@ msgid "" "sources of signed time (such as an :rfc:`3161` Time Stamping Authority or a " "`Roughtime `__ server)." msgstr "" +"``transparency_entries`` 中每个对象的完整数据模型在 :ref:`appendix` 中给出。" +"证明对象 **应该** 包含一个或多个透明日志条目,并 **可以** 包含用于其他签名时" +"间来源的额外键(例如 :rfc:`3161` 时间戳颁发机构或 `Roughtime `__ 服务器)。" #: ../source/specifications/index-hosted-attestations.rst:94 msgid "" @@ -19249,34 +22103,38 @@ msgid "" "version is tied to a single cryptographic suite to minimize unnecessary " "cryptographic agility. In version 1, the suite is as follows:" msgstr "" +"证明对象带有版本号;本 PEP 指定了版本 1。每个版本都绑定到单一的加密套件,以尽" +"量减少不必要的密码敏捷性。在版本 1 中,该套件如下:" #: ../source/specifications/index-hosted-attestations.rst:98 msgid "" "Certificates are specified as X.509 certificates, and comply with the " "profile in :rfc:`5280`." -msgstr "" +msgstr "证书规定为 X.509 证书,并符合 :rfc:`5280` 中定义的 profile。" #: ../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 "" +msgstr "消息签名算法为 ECDSA,公钥采用 P-256 曲线,加密摘要函数采用 SHA-256。" #: ../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 "" +msgstr "未来的 PEP 可能会通过选择新的版本号来更改此套件(以及证明对象的整体形态)。" #: ../source/specifications/index-hosted-attestations.rst:109 msgid "Attestation statement and signature generation" -msgstr "" +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 "" +"证明声明(*attestation statement*)是证明对象中实际以密码学方式签名的断言(" +"即 ``envelope.statement``)。" #: ../source/specifications/index-hosted-attestations.rst:114 msgid "" @@ -19285,16 +22143,19 @@ msgid "" "statement.md>`__, in JSON form. When serialized the statement is treated as " "an opaque binary blob, avoiding the need for canonicalization." msgstr "" +"证明声明以 JSON 形式编码为 `v1 in-toto Statement 对象 `__。序列化时,该声明被视为" +"不透明的二进制数据块(blob),从而无需规范化。" #: ../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 "" +msgstr "除了作为 v1 in-toto Statement 之外,证明声明还受到以下约束:" #: ../source/specifications/index-hosted-attestations.rst:122 msgid "The in-toto ``subject`` **MUST** contain only a single subject." -msgstr "" +msgstr "in-toto 的 ``subject`` **必须** 只包含单个主体。" #: ../source/specifications/index-hosted-attestations.rst:123 msgid "" @@ -19302,6 +22163,9 @@ msgid "" "valid :ref:`source distribution ` or :ref:`wheel " "distribution ` filename." msgstr "" +"``subject[0].name`` 是分发包的文件名,它 **必须** 是有效的 :ref:`源分发 " +"` 或 :ref:`wheel 分发 ` 文件名。" #: ../source/specifications/index-hosted-attestations.rst:126 msgid "" @@ -19309,22 +22173,28 @@ msgid "" "**MAY** be present. The digests **MUST** be represented as hexadecimal " "strings." msgstr "" +"``subject[0].digest`` **必须** 包含 SHA-256 摘要。**可以** 存在其他摘要。这些" +"摘要 **必须** 表示为十六进制字符串。" #: ../source/specifications/index-hosted-attestations.rst:128 msgid "The following ``predicateType`` values are supported:" -msgstr "" +msgstr "支持以下 ``predicateType`` 取值:" #: ../source/specifications/index-hosted-attestations.rst:130 msgid "" "`SLSA Provenance `__: ``https://slsa.dev/" "provenance/v1``" msgstr "" +"`SLSA 来源 `__:``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 发布证明 `__:``https://" +"docs.pypi.org/attestations/publish/v1``" #: ../source/specifications/index-hosted-attestations.rst:133 msgid "" @@ -19334,32 +22204,42 @@ msgid "" "and a ``PAYLOAD_BODY`` of the JSON-encoded statement above. No other " "``PAYLOAD_TYPE`` is permitted." msgstr "" +"该声明的签名使用 `v1 DSSE 签名协议 `__ 构造,其 ``PAYLOAD_TYPE`` 为 ``application/" +"vnd.in-toto+json``,``PAYLOAD_BODY`` 为上述经过 JSON 编码的声明。不允许使用其" +"他 ``PAYLOAD_TYPE``。" #: ../source/specifications/index-hosted-attestations.rst:141 msgid "Provenance objects" -msgstr "" +msgstr "来源对象" #: ../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 序列化对象的形式提供已上传的证明,以及可协助验证这些证明的元数" +"据。" #: ../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 "" +"如上文所述,这些来源对象(*provenance objects*)将通过 Simple Index 和基于 " +"JSON 的 Simple API 提供,并具有以下布局:" #: ../source/specifications/index-hosted-attestations.rst:169 msgid "or, as pseudocode:" -msgstr "" +msgstr "或者,以伪代码表示:" #: ../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 "" @@ -19368,18 +22248,23 @@ msgid "" "(such as a Trusted Publishing identity), and contains one or more " "attestation objects." msgstr "" +"``attestation_bundles`` 是一个 **必需的** JSON 数组,包含一个或多个证明“捆绑" +"包”。每个捆绑包对应一个签名身份(例如可信发布身份),并包含一个或多个证明对象" +"。" #: ../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`` 对象都特定" +"于其可信发布者,但至少必须包含:" #: ../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 "" +msgstr "一个 ``kind`` 键,它 **必须** 是唯一标识可信发布者种类的 JSON 字符串。" #: ../source/specifications/index-hosted-attestations.rst:230 msgid "" @@ -19387,10 +22272,12 @@ msgid "" "specific claims retained by the index during Trusted Publisher " "authentication." msgstr "" +"一个 ``claims`` 键,它 **必须** 是一个 JSON 对象,包含索引在可信发布者认证期" +"间保留的任何与上下文相关的声明。" #: ../source/specifications/index-hosted-attestations.rst:233 msgid "All other keys in the publisher object are publisher-specific." -msgstr "" +msgstr "发布者对象中的所有其他键都是特定于发布者的。" #: ../source/specifications/index-hosted-attestations.rst:235 msgid "" @@ -19399,16 +22286,21 @@ msgid "" "time, as described in :ref:`upload-endpoint` and :ref:`changes-to-provenance-" "objects`." msgstr "" +"每个证明对象数组都是上传者在上传时通过 ``attestations`` 字段所提供的 " +"``attestations`` 数组的超集,如 :ref:`upload-endpoint` 和 :ref:`changes-to-" +"provenance-objects` 中所述。" #: ../source/specifications/index-hosted-attestations.rst:243 msgid "Changes to provenance objects" -msgstr "" +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 "" @@ -19416,6 +22308,8 @@ msgid "" "**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 "" @@ -19425,20 +22319,23 @@ msgid "" "attestations may be performed asynchronously, requiring the index to insert " "them into the provenance object *post facto*." msgstr "" +"添加新的签名身份及相关证明:索引 **可以** 选择支持来自文件上传者之外的其他来" +"源(例如第三方审计者或索引本身)的证明。这些证明可能异步进行,因此需要索引在" +"事后(*post facto*)将其插入来源对象。" #: ../source/specifications/index-hosted-attestations.rst:262 msgid "Attestation verification" -msgstr "" +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 "" +msgstr "针对分发文件验证证明对象时,需要验证以下每一项:" #: ../source/specifications/index-hosted-attestations.rst:267 msgid "``version`` is ``1``. The verifier **MUST** reject any other version." -msgstr "" +msgstr "``version`` 为 ``1``。验证者 **必须** 拒绝任何其他版本。" #: ../source/specifications/index-hosted-attestations.rst:268 msgid "" @@ -19446,6 +22343,8 @@ msgid "" "issued by an *a priori* trusted authority (such as a root of trust already " "present within the verifying client)." msgstr "" +"``verification_material.certificate`` 是有效的签名证书,由事先(*a priori*)" +"受信任的颁发机构(例如验证客户端中已存在的信任根)颁发。" #: ../source/specifications/index-hosted-attestations.rst:271 msgid "" @@ -19453,6 +22352,8 @@ msgid "" "subject, such as the machine identity of the Trusted Publisher that " "published the package." msgstr "" +"``verification_material.certificate`` 标识了适当的签名主体,例如发布该软件包" +"的可信发布者的机器身份。" #: ../source/specifications/index-hosted-attestations.rst:274 msgid "" @@ -19462,6 +22363,10 @@ msgid "" "appropriate source distribution or wheel filename format, as the statement's " "subject may be equivalent but normalized." msgstr "" +"``envelope.statement`` 是有效的 in-toto v1 Statement,其主体和摘要 **必须** " +"与分发包的文件名和内容相匹配。对于分发包的文件名,匹配 **必须** 通过使用适当" +"的源分发或 wheel 文件名格式进行解析来完成,因为声明中的主体可能是等价但经过规" +"范化处理的。" #: ../source/specifications/index-hosted-attestations.rst:279 msgid "" @@ -19470,6 +22375,10 @@ msgid "" "the `v1 DSSE signature protocol `__." msgstr "" +"``envelope.signature`` 是 ``envelope.statement`` 的有效签名,与 " +"``verification_material.certificate`` 相对应,并经由 `v1 DSSE 签名协议 " +"`__ 重建" +"。" #: ../source/specifications/index-hosted-attestations.rst:284 msgid "" @@ -19480,10 +22389,14 @@ msgid "" "that the inclusion time for each entry lies within the signing certificate's " "validity period." msgstr "" +"除上述必需步骤外,验证者 **可以** 基于策略额外验证 " +"``verification_material.transparency_entries``,例如要求至少一个透明日志条目" +"或达到一定的条目数量阈值。在验证透明日志条目时,验证者 **必须** 确认每个条目" +"的包含时间都处于签名证书的有效期内。" #: ../source/specifications/index-hosted-attestations.rst:293 msgid "Appendix: Data models for Transparency Log Entries" -msgstr "" +msgstr "附录:透明日志条目的数据模型" #: ../source/specifications/index-hosted-attestations.rst:295 msgid "" @@ -19491,10 +22404,12 @@ msgid "" "in attestation objects. Each transparency log entry serves as a source of " "signed inclusion time, and can be verified either online or offline." msgstr "" +"本附录包含证明对象中透明日志条目的伪代码数据模型。每个透明日志条目都可作为已" +"签名包含时间的来源,并且可以在线或离线验证。" #: ../source/specifications/inline-script-metadata.rst:5 msgid "Inline script metadata" -msgstr "" +msgstr "内联脚本元数据" #: ../source/specifications/inline-script-metadata.rst:7 msgid "" @@ -19502,12 +22417,16 @@ msgid "" "file Python scripts to assist launchers, IDEs and other external tools which " "may need to interact with such scripts." msgstr "" +"本规范定义了一种可嵌入单文件 Python 脚本的元数据格式,用于为可能需要与此类脚" +"本交互的启动器、IDE 及其他外部工具提供协助。" #: ../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 "" @@ -19519,6 +22438,11 @@ msgid "" "followed by a single space, followed by three forward slashes. The ``TYPE`` " "MUST only consist of ASCII letters, numbers and hyphens." msgstr "" +"任何 Python 脚本都可以包含顶层注释块,这些块必须以 ``# /// TYPE`` 行开始,其" +"中 ``TYPE`` 决定如何处理相应内容。即:单个 ``#``,后跟一个空格,再后跟三个正" +"斜杠,再后跟一个空格,最后是元数据的类型。块必须以 ``# ///`` 行结束。即:单" +"个 ``#``,后跟一个空格,再后跟三个正斜杠。``TYPE`` 必须只由 ASCII 字母、数字" +"和连字符组成。" #: ../source/specifications/inline-script-metadata.rst:28 msgid "" @@ -19529,6 +22453,10 @@ msgid "" "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 "" @@ -19536,6 +22464,8 @@ msgid "" "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 "" @@ -19543,12 +22473,14 @@ msgid "" "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 "" +msgstr "当定义了多个具有相同 ``TYPE`` 的注释块时,工具必须报错。" #: ../source/specifications/inline-script-metadata.rst:57 msgid "" @@ -19556,24 +22488,26 @@ msgid "" "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 "" +msgstr "这是可用于解析元数据的规范正则表达式:" #: ../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 "" +msgstr "在文本规范与正则表达式存在不一致的情况下,以文本规范为准。" #: ../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 "" +msgstr "工具不得读取那些类型尚未经本规范标准化的元数据块。" #: ../source/specifications/inline-script-metadata.rst:73 msgid "" @@ -19581,12 +22515,14 @@ msgid "" "are recognised as containing metadata. However, parsing Python code is non-" "trivial, and therefore:" msgstr "" +"注意,本规范只要求将 *顶层* 注释块识别为包含元数据。然而,解析 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 "" +msgstr "工具可以选择只做简单的文本扫描,而不做完整的 Python 解析。" #: ../source/specifications/inline-script-metadata.rst:78 msgid "" @@ -19594,28 +22530,32 @@ msgid "" "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 结构内包含了看起来像" +"元数据的数据,其行为将取决于所用的工具,不应该依赖这种行为。" #: ../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 "" +msgstr "上面给出的规范正则表达式就是简单文本扫描式实现的一个示例。" #: ../source/specifications/inline-script-metadata.rst:85 msgid "script type" -msgstr "" +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 "" +msgstr "第一种元数据块类型名为 ``script``,它包含脚本元数据(依赖数据和工具配置)。" #: ../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 "" @@ -19623,10 +22563,12 @@ msgid "" "configure behavior. It has the same semantics as the :ref:`[tool] table in " "pyproject.toml `." msgstr "" +"任何工具(脚本运行器或其他)都可以使用 ``[tool]`` 表来配置行为。它与 " +":ref:`pyproject.toml 中的 [tool] 表 ` 具有相同的语义。" #: ../source/specifications/inline-script-metadata.rst:97 msgid "The top-level fields are:" -msgstr "" +msgstr "顶层字段包括:" #: ../source/specifications/inline-script-metadata.rst:99 msgid "" @@ -19634,6 +22576,8 @@ msgid "" "of the script. Each entry MUST be a valid :ref:`dependency specifier " "`." msgstr "" +"``dependencies``:一个字符串列表,用于指定脚本的运行时依赖项。其中每个条目都" +"必须是有效的 :ref:`依赖说明符 `。" #: ../source/specifications/inline-script-metadata.rst:102 msgid "" @@ -19641,6 +22585,8 @@ msgid "" "which the script is compatible. The value of this field MUST be a " "valid :ref:`version specifier `." msgstr "" +"``requires-python``:一个字符串,用于指定脚本兼容的 Python 版本。该字段的值必" +"须是有效的 :ref:`版本说明符 `。" #: ../source/specifications/inline-script-metadata.rst:106 msgid "" @@ -19648,16 +22594,18 @@ msgid "" "provided. Script runners SHOULD error if no version of Python that satisfies " "the specified ``requires-python`` can be provided." msgstr "" +"如果无法提供指定的 ``dependencies``,脚本运行器必须报错。如果无法提供满足所指" +"定 ``requires-python`` 的 Python 版本,脚本运行器应该报错。" #: ../source/specifications/inline-script-metadata.rst:113 msgid "The following is an example of a script with embedded metadata:" -msgstr "" +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 "" +msgstr "以下示例展示了如何使用 Python 3.11 或更高版本读取元数据。" #: ../source/specifications/inline-script-metadata.rst:162 msgid "" @@ -19665,6 +22613,8 @@ msgid "" "update automation in CI. The following is a crude example of modifying the " "content using the ``tomlkit`` library__." msgstr "" +"工具(例如包管理器或 CI 中的依赖项更新自动化工具)常常会编辑依赖项。下面是一" +"个修改内容的粗略示例,其中用到了 ``tomlkit`` 库__。" #: ../source/specifications/inline-script-metadata.rst:193 msgid "" @@ -19672,12 +22622,14 @@ msgid "" "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 "" +msgstr "以下示例展示了如何流式读取任意元数据块。" #: ../source/specifications/inline-script-metadata.rst:216 #: ../source/specifications/simple-repository-api.rst:925 @@ -19690,12 +22642,14 @@ msgid "" "use the highest available version of Python that is compatible with the " "script's ``requires-python`` metadata, if defined." msgstr "" +"支持管理多个 Python 版本的工具应该尝试使用与脚本 ``requires-python`` 元数据(" +"如果已定义)兼容的最高可用 Python 版本。" #: ../source/specifications/inline-script-metadata.rst:226 msgid "" "October 2023: This specification was conditionally approved " "through :pep:`723`." -msgstr "" +msgstr "2023 年 10 月:本规范通过 :pep:`723` 获得有条件批准。" #: ../source/specifications/inline-script-metadata.rst:227 msgid "" @@ -19704,6 +22658,9 @@ msgid "" "making the ``dependencies`` and ``requires-python`` keys top-level. " "Additionally, the specification is no longer provisional." msgstr "" +"2024 年 1 月:通过对 :pep:`723` 的修订,``pyproject`` 元数据块类型更名为 " +"``script``,``[run]`` 表被移除,``dependencies`` 和 ``requires-python`` 键因" +"此成为顶层键。此外,本规范不再是暂定规范。" #: ../source/specifications/license-expression.rst:5 msgid "" @@ -19712,6 +22669,10 @@ msgid "" "Expression field `. This specification " "defines which license expressions are acceptable." msgstr "" +":pep:`639` 定义了新的 :ref:`pyproject.toml 的 license ` 取值,并添加了相应的 :ref:`核心元数据 License-Expression 字段 " +"`。本规范定义了哪些许可证表达式是可以接受的" +"。" #: ../source/specifications/license-expression.rst:14 msgid "" @@ -19719,10 +22680,13 @@ msgid "" "expression `, as documented in the `SPDX specification " "`__, either Version 2.2 or a later compatible version." msgstr "" +"许可证可以定义为一个文本字符串,其值为有效的 SPDX :term:`许可证表达式 " +"`,如 `SPDX 规范 `__ (版本 2.2 或更高的兼" +"容版本)中所述。" #: ../source/specifications/license-expression.rst:19 msgid "A license expression can use the following license identifiers:" -msgstr "" +msgstr "许可证表达式可以使用以下许可证标识符:" #: ../source/specifications/license-expression.rst:21 msgid "" @@ -19730,6 +22694,8 @@ msgid "" "`SPDX License List `__, version 3.17 or any later compatible " "version." msgstr "" +"在 `SPDX 许可证列表 `__ (版本 3.17 或任何更高的兼容版本)中发布的" +"任何 SPDX 收录的许可证短格式标识符。" #: ../source/specifications/license-expression.rst:25 msgid "" @@ -19739,14 +22705,18 @@ msgid "" "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 "" +msgstr "有效许可证表达式的示例:" #: ../source/specifications/license-expression.rst:45 msgid "Examples of invalid license expressions:" -msgstr "" +msgstr "无效许可证表达式的示例:" #: ../source/specifications/name-normalization.rst:3 msgid "Names and normalization" @@ -19758,10 +22728,12 @@ msgid "" "required to follow. It also describes how to normalize them, which should be " "done before lookups and comparisons." msgstr "" +"本规范定义了分发包和附加功能(extras)的名称必须遵循的格式,还描述了如何对名" +"称进行规范化;规范化操作应该在查找和比较之前完成。" #: ../source/specifications/name-normalization.rst:13 msgid "Name format" -msgstr "" +msgstr "名称格式" #: ../source/specifications/name-normalization.rst:15 msgid "" @@ -19770,6 +22742,9 @@ msgid "" "valid project names are limited to those which match the following regex " "(run with :py:data:`re.IGNORECASE`)::" msgstr "" +"有效名称只能由 ASCII 字母和数字、句点、下划线和连字符组成,且必须以字母或数字" +"开头和结尾。这意味着,有效的项目名称仅限于匹配以下正则表达式(配合 " +":py:data:`re.IGNORECASE` 使用)::" #: ../source/specifications/name-normalization.rst:26 msgid "Name normalization" @@ -19781,55 +22756,57 @@ msgid "" "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 "" +msgstr "这意味着以下名称全部等价:" #: ../source/specifications/name-normalization.rst:41 msgid "``friendly-bard`` (normalized form)" -msgstr "" +msgstr "``friendly-bard`` (规范化形式)" #: ../source/specifications/name-normalization.rst:42 msgid "``Friendly-Bard``" -msgstr "" +msgstr "``Friendly-Bard``" #: ../source/specifications/name-normalization.rst:43 msgid "``FRIENDLY-BARD``" -msgstr "" +msgstr "``FRIENDLY-BARD``" #: ../source/specifications/name-normalization.rst:44 msgid "``friendly.bard``" -msgstr "" +msgstr "``friendly.bard``" #: ../source/specifications/name-normalization.rst:45 msgid "``friendly_bard``" -msgstr "" +msgstr "``friendly_bard``" #: ../source/specifications/name-normalization.rst:46 msgid "``friendly--bard``" -msgstr "" +msgstr "``friendly--bard``" #: ../source/specifications/name-normalization.rst:47 msgid "" "``FrIeNdLy-._.-bArD`` (a *terrible* way to write a name, but it is valid)" -msgstr "" +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 "" +msgstr "2015 年 9 月:名称规范化规范通过 :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 "" +msgstr "2015 年 11 月:有效名称规范通过 :pep:`508 <508#names>` 获得批准。" #: ../source/specifications/platform-compatibility-tags.rst:6 msgid "Platform compatibility tags" -msgstr "" +msgstr "平台兼容性标签" #: ../source/specifications/platform-compatibility-tags.rst:8 msgid "" @@ -19837,10 +22814,12 @@ msgid "" "compatible with specific platforms, and allows installers to understand " "which distributions are compatible with the system they are running on." msgstr "" +"平台兼容性标签让构建工具能够把分发包标记为与特定平台兼容,也让安装器能够判断" +"哪些分发包与其所运行的系统兼容。" #: ../source/specifications/platform-compatibility-tags.rst:16 msgid "The tag format is ``{python tag}-{abi tag}-{platform tag}``." -msgstr "" +msgstr "标签格式为 ``{python tag}-{abi tag}-{platform tag}``。" #: ../source/specifications/platform-compatibility-tags.rst:18 msgid "python tag" @@ -19848,21 +22827,23 @@ msgstr "python 标签" #: ../source/specifications/platform-compatibility-tags.rst:19 msgid "'py27', 'cp33'" -msgstr "" +msgstr "'py27', 'cp33'" #: ../source/specifications/platform-compatibility-tags.rst:21 msgid "'cp32dmu', 'none'" -msgstr "" +msgstr "'cp32dmu', 'none'" #: ../source/specifications/platform-compatibility-tags.rst:23 msgid "'linux_x86_64', 'any'" -msgstr "" +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 "" @@ -19870,10 +22851,13 @@ msgid "" "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 "" +msgstr "任何标签中可能出现的空格都应该替换为 ``_``。" #: ../source/specifications/platform-compatibility-tags.rst:37 msgid "Python Tag" @@ -19883,11 +22867,11 @@ msgstr "Python 标签" msgid "" "The Python tag indicates the implementation and version required by a " "distribution. Major implementations have abbreviated codes, initially:" -msgstr "" +msgstr "Python 标签指明分发包所需的实现及版本。各主要实现都有缩写代码,最初如下:" #: ../source/specifications/platform-compatibility-tags.rst:42 msgid "py: Generic Python (does not require implementation-specific features)" -msgstr "" +msgstr "py:通用 Python(不要求实现特有的功能)" #: ../source/specifications/platform-compatibility-tags.rst:43 msgid "cp: CPython" @@ -19899,7 +22883,7 @@ msgstr "ip: IronPython" #: ../source/specifications/platform-compatibility-tags.rst:45 msgid "pp: PyPy" -msgstr "" +msgstr "pp: PyPy" #: ../source/specifications/platform-compatibility-tags.rst:46 msgid "jy: Jython" @@ -19910,6 +22894,8 @@ msgid "" "Other Python implementations should use :py:data:`sys.implementation.name " "`." msgstr "" +"其他 Python 实现应该使用 :py:data:`sys.implementation.name " +"`。" #: ../source/specifications/platform-compatibility-tags.rst:50 msgid "" @@ -19917,12 +22903,16 @@ msgid "" "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 "" +"对许多纯 Python 分发包而言,版本号可以只是主版本号 ``2`` 或 ``3``,即 " +"``py2``、``py3``。" #: ../source/specifications/platform-compatibility-tags.rst:57 msgid "" @@ -19930,16 +22920,20 @@ msgid "" "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 的分发包可以使用复合标签 ``py2.py3``。参见下" +"文的 `Compressed Tag Sets`_ 一节。" #: ../source/specifications/platform-compatibility-tags.rst:66 msgid "ABI Tag" -msgstr "" +msgstr "ABI 标签" #: ../source/specifications/platform-compatibility-tags.rst:68 msgid "" @@ -19948,10 +22942,12 @@ msgid "" "abbreviated in the same way as the Python Tag, e.g. ``cp33d`` would be the " "CPython 3.3 ABI with debugging." msgstr "" +"ABI 标签指明所包含的扩展模块需要哪种 Python ABI。对于实现特定的 ABI,其缩写方" +"式与 Python 标签相同,例如 ``cp33d`` 表示带调试的 CPython 3.3 ABI。" #: ../source/specifications/platform-compatibility-tags.rst:73 msgid "The CPython stable ABI is ``abi3`` as in the shared library suffix." -msgstr "" +msgstr "CPython 的稳定 ABI 为 ``abi3``,与共享库后缀中的一致。" #: ../source/specifications/platform-compatibility-tags.rst:75 msgid "" @@ -19961,10 +22957,13 @@ msgid "" "distribute binary distributions. Each implementation's community may decide " "how to best use the ABI tag." msgstr "" +"ABI 极不稳定的实现可以使用其源代码版本及编译器标志等信息的 SHA-256 哈希的前 " +"6 个字节(即 8 个 base64 编码字符),但这类实现多半不太需要分发二进制分发包。" +"各实现的社区可以自行决定如何以最佳方式使用 ABI 标签。" #: ../source/specifications/platform-compatibility-tags.rst:83 msgid "Platform Tag" -msgstr "" +msgstr "平台标签" #: ../source/specifications/platform-compatibility-tags.rst:86 msgid "" @@ -19972,10 +22971,12 @@ msgid "" "platform they represent and may change over time as the underlying platform " "changes its versioning." msgstr "" +"平台标签依赖于其所代表的操作系统或平台的版本编号方式,并且可能随着底层平台版" +"本编号方式的改变而随时间变化。" #: ../source/specifications/platform-compatibility-tags.rst:91 msgid "Basic platform tags" -msgstr "" +msgstr "基本平台标签" #: ../source/specifications/platform-compatibility-tags.rst:93 msgid "" @@ -19984,18 +22985,22 @@ msgid "" "``.`` replaced with underscore ``_``. Until the removal of :ref:`distutils` " "in Python 3.12, this was ``distutils.util.get_platform()``. For example:" msgstr "" +"在最简单的形式下,平台标签就是 :py:func:`sysconfig.get_platform()` 的返回值," +"只是把其中所有的连字符 ``-`` 和句点 ``.`` 都替换成了下划线 ``_``。在 Python " +"3.12 移除 :ref:`distutils` 之前,这个函数是 ``distutils.util.get_platform()" +"``。例如:" #: ../source/specifications/platform-compatibility-tags.rst:98 msgid "win32" -msgstr "" +msgstr "win32" #: ../source/specifications/platform-compatibility-tags.rst:99 msgid "linux_i386" -msgstr "" +msgstr "linux_i386" #: ../source/specifications/platform-compatibility-tags.rst:100 msgid "linux_x86_64" -msgstr "" +msgstr "linux_x86_64" #: ../source/specifications/platform-compatibility-tags.rst:106 msgid "``manylinux``" @@ -20007,6 +23012,8 @@ msgid "" "files to Linux platforms, due to the large ecosystem of Linux platforms and " "subtle differences between them." msgstr "" +"由于 Linux 平台生态庞大且彼此之间存在细微差异,上述简单方案不足以支持面向 " +"Linux 平台公开分发 wheel 文件。" #: ../source/specifications/platform-compatibility-tags.rst:112 msgid "" @@ -20015,6 +23022,9 @@ msgid "" "``manylinux`` platform tag which can be used across most common Linux " "distributions." msgstr "" +"取而代之的是针对这些平台的 ``manylinux`` 标准,它代表了 Linux 平台的一个公共" +"子集,允许构建带有 ``manylinux`` 平台标签的 wheel 包,这种 wheel 包可以在大多" +"数常见的 Linux 发行版上使用。" #: ../source/specifications/platform-compatibility-tags.rst:117 msgid "" @@ -20026,26 +23036,34 @@ msgid "" "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`` 应该能在任何使用 glibc " +"2.24+ 的发行版上工作),而 ``arch`` 是架构,与上述“简单”形式中系统上 " +":py:func:`sysconfig.get_platform()` 的返回值相匹配。" #: ../source/specifications/platform-compatibility-tags.rst:123 msgid "" "The following older tags are still supported for backward compatibility:" -msgstr "" +msgstr "为了向后兼容,仍支持以下较旧的标签:" #: ../source/specifications/platform-compatibility-tags.rst:125 msgid "" "``manylinux1`` supports glibc 2.5 on ``x86_64`` and ``i686`` architectures." -msgstr "" +msgstr "``manylinux1`` 在 ``x86_64`` 和 ``i686`` 架构上支持 glibc 2.5。" #: ../source/specifications/platform-compatibility-tags.rst:126 msgid "``manylinux2010`` supports glibc 2.12 on ``x86_64`` and ``i686``." -msgstr "" +msgstr "``manylinux2010`` 在 ``x86_64`` 和 ``i686`` 上支持 glibc 2.12。" #: ../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`` 在 " +"``x86_64``、``i686``、``aarch64``、``armv7l``、``ppc64``、``ppc64le`` 和 " +"``s390x`` 上支持 glibc 2.17。" #: ../source/specifications/platform-compatibility-tags.rst:130 msgid "" @@ -20055,6 +23073,9 @@ msgid "" "that ``manylinux2010`` distributions are not expected to work on platforms " "that existed before 2010)." msgstr "" +"一般而言,为旧版本规范构建的分发包是向前兼容的(即 ``manylinux1`` 分发包应该" +"能继续在现代系统上工作),但并不向后兼容(即 ``manylinux2010`` 分发包预计无法" +"在 2010 年之前就已存在的平台上工作)。" #: ../source/specifications/platform-compatibility-tags.rst:136 msgid "" @@ -20063,32 +23084,35 @@ msgid "" "for ``manylinux1`` and ``manylinux2010`` have reached end-of-life meaning " "that these images will no longer receive security updates." msgstr "" +"软件包维护者应该尽量以兼容性最强的规范为目标,但要注意,为 ``manylinux1`` 和 " +"``manylinux2010`` 提供的构建环境已经到达生命周期终点,这意味着这些镜像将不再" +"收到安全更新。" #: ../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 "" +msgstr "下表列出了支持各种 ``manylinux`` 标准所需的相关项目的最低版本:" #: ../source/specifications/platform-compatibility-tags.rst:145 msgid "Tool" -msgstr "" +msgstr "工具" #: ../source/specifications/platform-compatibility-tags.rst:145 msgid "``manylinux1``" -msgstr "" +msgstr "``manylinux1``" #: ../source/specifications/platform-compatibility-tags.rst:145 msgid "``manylinux2010``" -msgstr "" +msgstr "``manylinux2010``" #: ../source/specifications/platform-compatibility-tags.rst:145 msgid "``manylinux2014``" -msgstr "" +msgstr "``manylinux2014``" #: ../source/specifications/platform-compatibility-tags.rst:145 msgid "``manylinux_x_y``" -msgstr "" +msgstr "``manylinux_x_y``" #: ../source/specifications/platform-compatibility-tags.rst:147 msgid "``>=8.1.0``" @@ -20108,7 +23132,7 @@ msgstr "``>=20.3``" #: ../source/specifications/platform-compatibility-tags.rst:148 msgid "auditwheel" -msgstr "" +msgstr "auditwheel" #: ../source/specifications/platform-compatibility-tags.rst:148 msgid "``>=1.0.0``" @@ -20128,7 +23152,7 @@ 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 "" +msgstr "在 auditwheel 3.3.0 中只加入了对 ``manylinux_2_24`` 的支持" #: ../source/specifications/platform-compatibility-tags.rst:155 msgid "``musllinux``" @@ -20141,6 +23165,9 @@ msgid "" "Alpine Linux). The schema is :file:`musllinux_{x}_{y}_{arch}`, supporting " "musl ``x.y`` and higher on the architecture ``arch``." msgstr "" +"``musllinux`` 系列标签与 ``manylinux`` 类似,但面向的是使用 musl_ libc 而非 " +"glibc 的 Linux 平台(典型例子是 Alpine Linux)。其模式为 :file:`musllinux_{x}" +"_{y}_{arch}`,表示在 ``arch`` 架构上支持 musl ``x.y`` 及更高版本。" #: ../source/specifications/platform-compatibility-tags.rst:162 msgid "" @@ -20148,6 +23175,8 @@ msgid "" "library the Python interpreter is currently running on, and parsing the " "output:" msgstr "" +"musl 的版本值可以通过执行 Python 解释器当前运行时所依赖的 musl libc 共享库并" +"解析其输出来获得:" #: ../source/specifications/platform-compatibility-tags.rst:193 msgid "" @@ -20156,6 +23185,8 @@ msgid "" "command, or by parsing the ``PT_INTERP`` section’s value from the " "executable’s ELF_ header." msgstr "" +"目前有两种方法可以找到 Python 解释器运行时所依赖的 musl 库的位置:一是使用系" +"统的 ldd_ 命令,二是从可执行文件的 ELF_ 头中解析 ``PT_INTERP`` 节的值。" #: ../source/specifications/platform-compatibility-tags.rst:202 msgid "" @@ -20164,6 +23195,9 @@ msgid "" "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`` 后缀是 Apple 官方 macOS 命名方式" +"的历史遗留产物)。兼容性标签的模式为 :file:`macosx_{x}_{y}_{arch}`,表示 " +"wheel 包在 ``arch`` 架构上与 macOS ``x.y`` 或更高版本兼容。" #: ../source/specifications/platform-compatibility-tags.rst:207 msgid "" @@ -20175,6 +23209,11 @@ msgid "" "``>=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 "" @@ -20186,30 +23225,34 @@ msgid "" "be an identifier from the following list that describes the set of supported " "architectures:" msgstr "" +"macOS 二进制文件可以针对单一架构编译,也可以在同一个二进制文件中包含对多种架" +"构的支持(有时称为 “fat” 二进制文件)。要表示支持单一架构,``arch`` 的值必须" +"与系统上 :py:func:`platform.machine()` 的返回值相匹配。要表示支持多种架构" +",``arch`` 标签应该取下表中某个标识符,该标识符描述了所支持的架构集合:" #: ../source/specifications/platform-compatibility-tags.rst:223 msgid "``arch``" -msgstr "" +msgstr "``arch``" #: ../source/specifications/platform-compatibility-tags.rst:223 msgid "Architectures supported" -msgstr "" +msgstr "所支持的架构" #: ../source/specifications/platform-compatibility-tags.rst:225 msgid "``universal2``" -msgstr "" +msgstr "``universal2``" #: ../source/specifications/platform-compatibility-tags.rst:225 msgid "``arm64``, ``x86_64``" -msgstr "" +msgstr "``arm64``, ``x86_64``" #: ../source/specifications/platform-compatibility-tags.rst:226 msgid "``universal``" -msgstr "" +msgstr "``universal``" #: ../source/specifications/platform-compatibility-tags.rst:226 msgid "``i386``, ``ppc``, ``ppc64``, ``x86_64``" -msgstr "" +msgstr "``i386``, ``ppc``, ``ppc64``, ``x86_64``" #: ../source/specifications/platform-compatibility-tags.rst:227 msgid "``intel``" @@ -20221,7 +23264,7 @@ msgstr "``i386``, ``x86_64``" #: ../source/specifications/platform-compatibility-tags.rst:228 msgid "``fat``" -msgstr "" +msgstr "``fat``" #: ../source/specifications/platform-compatibility-tags.rst:228 msgid "``i386``, ``ppc``" @@ -20229,19 +23272,19 @@ msgstr "``i386``, ``ppc``" #: ../source/specifications/platform-compatibility-tags.rst:229 msgid "``fat3``" -msgstr "" +msgstr "``fat3``" #: ../source/specifications/platform-compatibility-tags.rst:229 msgid "``i386``, ``ppc``, ``x86_64``" -msgstr "" +msgstr "``i386``, ``ppc``, ``x86_64``" #: ../source/specifications/platform-compatibility-tags.rst:230 msgid "``fat64``" -msgstr "" +msgstr "``fat64``" #: ../source/specifications/platform-compatibility-tags.rst:230 msgid "``ppc64``, ``x86_64``" -msgstr "" +msgstr "``ppc64``, ``x86_64``" #: ../source/specifications/platform-compatibility-tags.rst:233 msgid "" @@ -20251,10 +23294,13 @@ msgid "" "compilation toolchain when building binaries that support multiple " "architectures." msgstr "" +"所支持的最低 macOS 版本还可能受到架构的约束。例如,macOS 11(Big Sur)是第一" +"个支持 arm64 的版本。在构建支持多种架构的二进制文件时,macOS 编译工具链会透明" +"地强制执行这些额外的约束。" #: ../source/specifications/platform-compatibility-tags.rst:241 msgid "Android" -msgstr "" +msgstr "Android" #: ../source/specifications/platform-compatibility-tags.rst:243 msgid "" @@ -20264,6 +23310,10 @@ msgid "" "later, on ``arm64_v8a`` devices. Android makes no distinction between " "physical devices and emulated devices." msgstr "" +"Android 使用 :file:`android_{apilevel}_{abi}` 模式,表示在给定 ABI 上兼容给定" +"的 Android API 级别或更高级别。例如,``android_27_arm64_v8a`` 表示在 " +"``arm64_v8a`` 设备上支持 API 级别 27 或更高级别。Android 不区分物理设备和模拟" +"设备。" #: ../source/specifications/platform-compatibility-tags.rst:249 msgid "" @@ -20274,28 +23324,34 @@ msgid "" "the `full list of Android versions and their corresponding API levels " "`__." msgstr "" +"API 级别应该是一个正整数。它与面向用户的 Android 版本 *不是* 一回事。例如,名" +"为 Android 12(代号 “Snow Cone”)的发布版本使用 API 级别 31 或 32,具体取决于" +"所使用的 Android 版本。Android 的发布文档包含 `Android 版本及对应 API 级别的" +"完整列表 `__。" #: ../source/specifications/platform-compatibility-tags.rst:256 msgid "" "There are 4 `supported ABIs `__. Normalized according to the rules above, they are:" msgstr "" +"共有 4 种 `受支持的 ABI `__。" +"按照上述规则规范化后,它们是:" #: ../source/specifications/platform-compatibility-tags.rst:259 msgid "``armeabi_v7a``" -msgstr "" +msgstr "``armeabi_v7a``" #: ../source/specifications/platform-compatibility-tags.rst:260 msgid "``arm64_v8a``" -msgstr "" +msgstr "``arm64_v8a``" #: ../source/specifications/platform-compatibility-tags.rst:261 msgid "``x86``" -msgstr "" +msgstr "``x86``" #: ../source/specifications/platform-compatibility-tags.rst:262 msgid "``x86_64``" -msgstr "" +msgstr "``x86_64``" #: ../source/specifications/platform-compatibility-tags.rst:264 msgid "" @@ -20304,10 +23360,13 @@ msgid "" "not been supported as a development platform since 2020, and no new emulator " "images have been released since then." msgstr "" +"几乎所有当前的物理设备都使用某一种 ARM 架构。``x86`` 和 ``x86_64`` 支持在模拟" +"器中使用。``x86`` 自 2020 年起不再作为开发平台受到支持,此后也没有发布新的模" +"拟器镜像。" #: ../source/specifications/platform-compatibility-tags.rst:272 msgid "iOS" -msgstr "" +msgstr "iOS" #: ../source/specifications/platform-compatibility-tags.rst:274 msgid "" @@ -20315,6 +23374,8 @@ msgid "" "compatibility with iOS ``x.y`` or later, on the ``arch`` architecture, using " "the ``sdk`` SDK." msgstr "" +"iOS 使用 :file:`ios_{x}_{y}_{arch}_{sdk}` 模式,表示在 ``arch`` 架构上使用 " +"``sdk`` SDK 时,兼容 iOS ``x.y`` 或更高版本。" #: ../source/specifications/platform-compatibility-tags.rst:277 msgid "" @@ -20325,12 +23386,16 @@ msgid "" "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 "" +msgstr "``arch`` 的值必须与系统上 :py:func:`platform.machine()` 的返回值相匹配。" #: ../source/specifications/platform-compatibility-tags.rst:286 msgid "" @@ -20340,28 +23405,36 @@ msgid "" "on the same CPU architecture. Code compiled for an arm64 simulator will not " "run on an arm64 device." msgstr "" +"``sdk`` 的值必须是 ``iphoneos`` 或 ``iphonesimulator``,前者用于物理设备,后" +"者用于设备模拟器。这两种 SDK 的 API 表面相同,但在二进制层面互不兼容,即使它" +"们运行在相同的 CPU 架构上也是如此。为 arm64 模拟器编译的代码无法在 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 "" +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 物理设备。这包括自约 2015 年以来制造的所" +"有 iOS 设备;" #: ../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 硬件上运行的模拟器;以" +"及" #: ../source/specifications/platform-compatibility-tags.rst:299 msgid "``x86_64_iphonesimulator``, for simulators running on x86_64 hardware." -msgstr "" +msgstr "``x86_64_iphonesimulator``,用于在 x86_64 硬件上运行的模拟器。" #: ../source/specifications/platform-compatibility-tags.rst:302 msgid "Use" @@ -20374,6 +23447,9 @@ msgid "" "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 "" +"安装器使用这些标签来决定从候选构建分发列表中下载哪一个构建分发(如果有的话)" +"。安装器会维护一个自身将支持的 (pyver, abi, arch) 元组列表。如果构建分发的标" +"签存在于该列表中(``in``),那么它就可以被安装。" #: ../source/specifications/platform-compatibility-tags.rst:310 msgid "" @@ -20385,6 +23461,10 @@ msgid "" "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 "" +"建议安装器默认先尝试选择可用的功能最完整的构建分发(即对安装环境最具针对性的" +"那一个),再回退到为旧版 Python 发布的纯 Python 版本。此外还建议安装器提供配" +"置并重新排序所允许的兼容性标签列表的方法;例如,用户可以只接受 ``*-none-" +"any`` 标签,从而只下载那些声明自身为纯 Python 的构建分发。" #: ../source/specifications/platform-compatibility-tags.rst:318 msgid "" @@ -20392,6 +23472,8 @@ msgid "" "source if possible\" as more preferable than some of the compatible but " "legacy pre-built options." msgstr "" +"另一个可取的安装器特性可能是:把“尽可能从源码重新编译”列为比某些兼容但陈旧的" +"预构建选项更优先的选项。" #: ../source/specifications/platform-compatibility-tags.rst:322 msgid "" @@ -20401,68 +23483,73 @@ msgid "" "least-preferred (a pure-Python distribution built with an older version of " "Python):" msgstr "" +"这个示例列表适用于在 linux_x86_64 系统上、运行于 CPython 3.3 之下的安装器。列" +"表按从最优先(即包含已编译扩展模块、为当前 Python 版本构建的分发包)到最不优" +"先(即用较旧 Python 版本构建的纯 Python 分发包)的顺序排列:" #: ../source/specifications/platform-compatibility-tags.rst:328 msgid "cp33-cp33m-linux_x86_64" -msgstr "" +msgstr "cp33-cp33m-linux_x86_64" #: ../source/specifications/platform-compatibility-tags.rst:329 msgid "cp33-abi3-linux_x86_64" -msgstr "" +msgstr "cp33-abi3-linux_x86_64" #: ../source/specifications/platform-compatibility-tags.rst:330 msgid "cp3-abi3-linux_x86_64" -msgstr "" +msgstr "cp3-abi3-linux_x86_64" #: ../source/specifications/platform-compatibility-tags.rst:331 msgid "cp33-none-linux_x86_64*" -msgstr "" +msgstr "cp33-none-linux_x86_64*" #: ../source/specifications/platform-compatibility-tags.rst:332 msgid "cp3-none-linux_x86_64*" -msgstr "" +msgstr "cp3-none-linux_x86_64*" #: ../source/specifications/platform-compatibility-tags.rst:333 msgid "py33-none-linux_x86_64*" -msgstr "" +msgstr "py33-none-linux_x86_64*" #: ../source/specifications/platform-compatibility-tags.rst:334 msgid "py3-none-linux_x86_64*" -msgstr "" +msgstr "py3-none-linux_x86_64*" #: ../source/specifications/platform-compatibility-tags.rst:335 msgid "cp33-none-any" -msgstr "" +msgstr "cp33-none-any" #: ../source/specifications/platform-compatibility-tags.rst:336 msgid "cp3-none-any" -msgstr "" +msgstr "cp3-none-any" #: ../source/specifications/platform-compatibility-tags.rst:337 msgid "py33-none-any" -msgstr "" +msgstr "py33-none-any" #: ../source/specifications/platform-compatibility-tags.rst:338 msgid "py3-none-any" -msgstr "" +msgstr "py3-none-any" #: ../source/specifications/platform-compatibility-tags.rst:339 msgid "py32-none-any" -msgstr "" +msgstr "py32-none-any" #: ../source/specifications/platform-compatibility-tags.rst:340 msgid "py31-none-any" -msgstr "" +msgstr "py31-none-any" #: ../source/specifications/platform-compatibility-tags.rst:341 msgid "py30-none-any" -msgstr "" +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 "" +"构建分发可能出于 C 扩展以外的其他原因而与特定平台相关,例如其中包含了会被作为" +"子进程调用的原生可执行文件。" #: ../source/specifications/platform-compatibility-tags.rst:347 msgid "" @@ -20474,10 +23561,15 @@ msgid "" "package with the C extension is installed in preference to the package " "without because that tag appears first in the list." msgstr "" +"有时,某个软件包的特定版本会有不止一个受支持的构建分发。例如,打包者可以发布" +"一个标签为 ``cp33-abi3-linux_x86_64``、包含可选 C 扩展的软件包,同时发布同一" +"分发的不含 C 扩展、标签为 ``py3-none-any`` 的版本。此时由该标签在受支持标签列" +"表中的索引来打破平局;由于这个标签在列表中排在前面,含 C 扩展的软件包会优先于" +"不含 C 扩展的软件包被安装。" #: ../source/specifications/platform-compatibility-tags.rst:356 msgid "Compressed Tag Sets" -msgstr "" +msgstr "压缩标签集" #: ../source/specifications/platform-compatibility-tags.rst:358 msgid "" @@ -20488,6 +23580,10 @@ msgid "" "code, could distribute a bdist with the tag ``py2.py3-none-any``. The full " "list of simple tags is::" msgstr "" +"为了让兼容多个兼容性标签三元组的 bdist 保持文件名紧凑,文件名中的每个标签可以" +"改为一个以 '.' 分隔、经过排序的标签集合。例如,pip 是一个用同一份源代码编写、" +"可同时运行在 Python 2 和 3 下的纯 Python 软件包,它可以用标签 ``py2.py3-none-" +"any`` 来分发 bdist。简单标签的完整列表如下::" #: ../source/specifications/platform-compatibility-tags.rst:370 msgid "" @@ -20496,10 +23592,13 @@ msgid "" "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 实现支持的“不可能”标签(" +"例如 “cp33-cp31u-win64”),因此请谨慎使用。" #: ../source/specifications/platform-compatibility-tags.rst:383 msgid "What tags are used by default?" -msgstr "" +msgstr "默认使用哪些标签?" #: ../source/specifications/platform-compatibility-tags.rst:379 msgid "" @@ -20508,12 +23607,15 @@ msgid "" "by default. If the packager overrides the default it indicates that they " "intended to provide cross-Python compatibility." msgstr "" +"工具默认应该使用最优先的依赖架构的标签,例如 ``cp33-cp33m-win32``,或者最优先" +"的纯 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 "" +msgstr "如果我的分发包使用了最新版 Python 独有的特性,应该使用什么标签?" #: ../source/specifications/platform-compatibility-tags.rst:386 msgid "" @@ -20525,10 +23627,15 @@ msgid "" "as a requirement for the older release ``beaglevote-1.1.0`` that does not " "use the new feature, to get a compatible build." msgstr "" +"兼容性标签帮助安装器为某个分发包的 *单一版本* 选择 *兼容性最好* 的构建。例如" +",当 ``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 "" +msgstr "为什么 Python 版本号中没有 ``.``?" #: ../source/specifications/platform-compatibility-tags.rst:396 msgid "" @@ -20536,11 +23643,14 @@ msgid "" "continue for some time. Other implementations may use _ as a delimiter, " "since both - and . delimit the surrounding filename." msgstr "" +"CPython 已经 20 多年没有出现过三位数的主版本号了,这种状况应该还会持续一段时" +"间。其他实现可以用 _ 作为分隔符,因为 - 和 . 都已经用于分隔文件名的各个组成部" +"分。" #: ../source/specifications/platform-compatibility-tags.rst:404 msgid "" "Why normalise hyphens and other non-alphanumeric characters to underscores?" -msgstr "" +msgstr "为什么要把连字符和其他非字母数字字符规范化为下划线?" #: ../source/specifications/platform-compatibility-tags.rst:401 msgid "" @@ -20549,10 +23659,12 @@ msgid "" "range of filesystem limitations for filenames (including being usable in URL " "paths without quoting)." msgstr "" +"为了避免与分隔文件名各组成部分的 ``.`` 和 ``-`` 字符冲突,并最大程度地兼容各" +"种文件系统对文件名的限制(包括无需转义即可用于 URL 路径)。" #: ../source/specifications/platform-compatibility-tags.rst:413 msgid "Why not use special character rather than ``.`` or ``-``?" -msgstr "" +msgstr "为什么不使用特殊字符 ,而要用 ``.`` 或 ``-``?" #: ../source/specifications/platform-compatibility-tags.rst:407 msgid "" @@ -20563,10 +23675,14 @@ msgid "" "implementation for the wheel format defined in :pep:`427` (for example, " "using ``,`` rather than ``.`` to separate components in a compressed tag)." msgstr "" +"要么是因为该字符在某些情况下不便或容易造成混淆(例如 ``+`` 在 URL 中必须经过" +"转义,``~`` 在 POSIX 中用于表示用户的主目录),要么是因为其优势并不足以证明修" +"改 :pep:`427` 所定义的 wheel 格式的现有参考实现是合理的(例如在压缩标签中使" +"用 ``,`` 而非 ``.`` 来分隔各组成部分)。" #: ../source/specifications/platform-compatibility-tags.rst:418 msgid "Who will maintain the registry of abbreviated implementations?" -msgstr "" +msgstr "由谁来维护实现缩写的注册表?" #: ../source/specifications/platform-compatibility-tags.rst:416 msgid "" @@ -20574,10 +23690,12 @@ msgid "" "list. As a rule of thumb, abbreviations are reserved for the current 4 most " "prominent implementations." msgstr "" +"可以在 python-dev 邮件列表中申请新的两字母缩写。按照经验法则,这些缩写仅保留" +"给当前最主流的 4 种实现使用。" #: ../source/specifications/platform-compatibility-tags.rst:423 msgid "Does the compatibility tag go into METADATA or PKG-INFO?" -msgstr "" +msgstr "兼容性标签会写入 METADATA 还是 PKG-INFO?" #: ../source/specifications/platform-compatibility-tags.rst:421 msgid "" @@ -20585,10 +23703,12 @@ msgid "" "METADATA / PKG-INFO should be valid for an entire distribution, not a single " "build of that distribution." msgstr "" +"不会。兼容性标签是构建分发元数据的一部分。METADATA / PKG-INFO 应该对整个分发" +"包有效,而不是仅对该分发包的某一次构建有效。" #: ../source/specifications/platform-compatibility-tags.rst:429 msgid "Why didn't you mention my favorite Python implementation?" -msgstr "" +msgstr "为什么没有提到我最喜欢的 Python 实现?" #: ../source/specifications/platform-compatibility-tags.rst:426 msgid "" @@ -20597,12 +23717,15 @@ msgid "" "longer tags. Recall that all \"pure Python\" built distributions just use " "``py``." msgstr "" +"缩写标签便于在公共索引中共享已编译的 Python 代码。你的 Python 实现也可以使用" +"本规范,只是标签会更长一些。请记住,所有“纯 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 "" +msgstr "为什么参考实现中的 ABI 标签(第二个标签)有时会是 “none”?" #: ../source/specifications/platform-compatibility-tags.rst:432 msgid "" @@ -20612,42 +23735,46 @@ msgid "" "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(SOABI 这一概念来自较新版本的 " +"Python 3),因此在编写本规范时,参考实现会猜测其值为 “none”。理想情况下,它应" +"当能像较新版本的 Python 那样检测出 “py27(d|m|u)”,但在此之前,用 “none” 来表" +"示“不知道”已经够用了。" #: ../source/specifications/platform-compatibility-tags.rst:442 msgid "" "February 2013: The original version of this specification was approved " "through :pep:`425`." -msgstr "" +msgstr "2013 年 2 月:本规范的最初版本通过 :pep:`425` 获得批准。" #: ../source/specifications/platform-compatibility-tags.rst:444 msgid "January 2016: The ``manylinux1`` tag was approved through :pep:`513`." -msgstr "" +msgstr "2016 年 1 月:``manylinux1`` 标签通过 :pep:`513` 获得批准。" #: ../source/specifications/platform-compatibility-tags.rst:445 msgid "April 2018: The ``manylinux2010`` tag was approved through :pep:`571`." -msgstr "" +msgstr "2018 年 4 月:``manylinux2010`` 标签通过 :pep:`571` 获得批准。" #: ../source/specifications/platform-compatibility-tags.rst:446 msgid "July 2019: The ``manylinux2014`` tag was approved through :pep:`599`." -msgstr "" +msgstr "2019 年 7 月:``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 "" +msgstr "2019 年 11 月:长期有效的 ``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 "" +msgstr "2021 年 4 月:``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 "" +msgstr "2023 年 12 月:iOS 的相关标签通过 :pep:`730` 获得批准。" #: ../source/specifications/platform-compatibility-tags.rst:451 msgid "March 2024: The tags for Android were approved through :pep:`738`." -msgstr "" +msgstr "2024 年 3 月:针对 Android 的标签通过 :pep:`738` 获得批准。" #: ../source/specifications/project-status-markers.rst:5 msgid "Project Status Markers" @@ -20655,7 +23782,7 @@ msgstr "项目状态标记" #: ../source/specifications/project-status-markers.rst:9 msgid "This specification was originally defined in :pep:`792`." -msgstr "" +msgstr "本规范最初是在 :pep:`792` 中定义的。" #: ../source/specifications/project-status-markers.rst:14 msgid "" @@ -20664,18 +23791,24 @@ msgid "" "Project Detail ` and :ref:`JSON - " "Project Detail `." msgstr "" +":pep:`792` 包含对 HTML 和 JSON 索引 API 的更改。这些更改记录在 :ref:`simple-" +"repository-api` 的 :ref:`HTML - 项目详情 ` 和 :ref:`JSON - 项目详情 ` 小" +"节中。" #: ../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 "" +msgstr "各索引 **可以** 根据自身需要实现所指定状态标记的任意子集。" #: ../source/specifications/project-status-markers.rst:28 msgid "" @@ -20683,34 +23816,36 @@ msgid "" "maintainers, index administrators, etc.) are allowed to set and unset which " "statuses." msgstr "" +"本标准并未规定 *哪些* 主体(即项目维护者、索引管理员等)可以设置和取消哪些状" +"态。" #: ../source/specifications/project-status-markers.rst:32 msgid "``active``" -msgstr "" +msgstr "``active``" #: ../source/specifications/project-status-markers.rst:34 msgid "" "Description: The project is active. This is the default status for a project." -msgstr "" +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 "" +msgstr "索引语义:" #: ../source/specifications/project-status-markers.rst:38 msgid "" "The index hosting the project **MUST** allow uploads of new distributions to " "the project." -msgstr "" +msgstr "托管该项目的索引 **必须** 允许向该项目上传新的分发包。" #: ../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 "" +msgstr "该索引 **必须** 提供该项目的现有分发包供下载。" #: ../source/specifications/project-status-markers.rst:42 msgid "Installer semantics: none." @@ -20722,14 +23857,14 @@ msgstr "``已归档``" #: ../source/specifications/project-status-markers.rst:47 msgid "Description: The project does not expect to be updated in the future." -msgstr "" +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 "" +msgstr "托管该项目的索引 **不得** 允许向该项目上传新的分发包。" #: ../source/specifications/project-status-markers.rst:55 #: ../source/specifications/project-status-markers.rst:71 @@ -20739,22 +23874,22 @@ msgstr "安装包语义:" #: ../source/specifications/project-status-markers.rst:57 msgid "Installers **MAY** produce warnings about a project's archival." -msgstr "" +msgstr "安装工具 **可以** 就项目的归档发出警告。" #: ../source/specifications/project-status-markers.rst:60 msgid "``quarantined``" -msgstr "" +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 "" +msgstr "描述:该项目被认为总体上不安全而不宜使用,例如由于存在恶意软件。" #: ../source/specifications/project-status-markers.rst:69 msgid "" "The index **MUST NOT** offer any distributions of the project for download." -msgstr "" +msgstr "该索引 **不得** 提供该项目的任何分发包供下载。" #: ../source/specifications/project-status-markers.rst:73 msgid "" @@ -20762,6 +23897,8 @@ msgid "" "doing so is effectively moot (as the index will not offer any distributions " "for installation)." msgstr "" +"安装工具 **可以** 就项目的隔离发出警告,不过这样做实际上没有意义(因为该索引" +"不会提供任何供安装的分发包)。" #: ../source/specifications/project-status-markers.rst:78 msgid "``deprecated``" @@ -20771,15 +23908,15 @@ msgstr "``已启用``" msgid "" "Description: The project is considered obsolete, and may have been " "superseded by another project." -msgstr "" +msgstr "描述:该项目被认为已经过时,并且可能已被其他项目取代。" #: ../source/specifications/project-status-markers.rst:85 msgid "This status shares the same semantics as ``active``." -msgstr "" +msgstr "此状态与 ``active`` 具有相同的语义。" #: ../source/specifications/project-status-markers.rst:89 msgid "Installers **MAY** produce warnings about a project's deprecation." -msgstr "" +msgstr "安装工具 **可以** 就项目的弃用发出警告。" #: ../source/specifications/pylock-toml.rst:6 msgid "``pylock.toml`` Specification" @@ -20790,10 +23927,12 @@ msgid "" "The ``pylock.toml`` file format is for specifying dependencies to enable " "reproducible installation in a Python environment." msgstr "" +"``pylock.toml`` 文件格式用于指定依赖项,以便在 Python 环境中实现可重现的安装" +"。" #: ../source/specifications/pylock-toml.rst:11 msgid "This specification was originally defined in :pep:`751`." -msgstr "" +msgstr "本规范最初在 :pep:`751` 中定义。" #: ../source/specifications/pylock-toml.rst:16 msgid "File Name" @@ -20808,26 +23947,30 @@ msgid "" "suffix of a named file MUST be lowercase when possible, for easy detection " "and removal, e.g.:" msgstr "" +"锁定文件必须命名为 :file:`pylock.toml`,或者在希望为锁定文件指定名称、存在多" +"个锁定文件时,其名称必须匹配正则表达式 ``r\"^pylock\\.([^.]+)\\.toml$\"``,即" +"对任意文件名,须匹配正则表达式 ``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 "" +msgstr "预期从锁定文件自动安装的服务会查找:" #: ../source/specifications/pylock-toml.rst:33 msgid "The lock file with the service's name and doing the default install" -msgstr "" +msgstr "以服务名称命名的锁定文件,并执行默认安装" #: ../source/specifications/pylock-toml.rst:34 msgid "" "A multi-use :file:`pylock.toml` with a dependency group with the name of the " "service" -msgstr "" +msgstr "多用途的 :file:`pylock.toml`,其中带有以服务名称命名的依赖群" #: ../source/specifications/pylock-toml.rst:35 msgid "The default install of :file:`pylock.toml`" -msgstr "" +msgstr "对 :file:`pylock.toml` 执行默认安装" #: ../source/specifications/pylock-toml.rst:37 msgid "" @@ -20836,6 +23979,9 @@ msgid "" "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` 安装,并查找名为 " +"\"spam\" 的依赖群(如果存在则使用)。" #: ../source/specifications/pylock-toml.rst:42 msgid "" @@ -20846,10 +23992,14 @@ msgid "" "the :file:`pylock.toml` file would be in the directory that held all the " "projects being locked." msgstr "" +"锁定文件应该位于与其作用范围相适应的目录中。例如,针对单个 " +":file:`pyproject.toml` 进行锁定时,会把 :file:`pylock.toml` 放在同一目录中。" +"如果锁定文件覆盖 monorepo 中的多个项目,则预期 :file:`pylock.toml` 文件会位于" +"容纳所有被锁定项目的目录中。" #: ../source/specifications/pylock-toml.rst:53 msgid "The format of the file is TOML_." -msgstr "" +msgstr "该文件的格式为 TOML_。" #: ../source/specifications/pylock-toml.rst:55 msgid "" @@ -20860,6 +24010,9 @@ msgid "" "tools SHOULD sort arrays in consistent order. Usage of inline tables SHOULD " "also be kept consistent." msgstr "" +"工具应该以一致的方式写出其锁定文件,以尽量减少 diff 输出中的噪声。表中的键(" +"包括顶层表)应该以一致的顺序记录(如果需要参考,本规范已尝试按逻辑顺序书写各" +"个键)。此外,工具应该以一致的顺序对数组排序。内联表的使用也应该保持一致。" #: ../source/specifications/pylock-toml.rst:65 msgid "``lock-version``" @@ -20867,7 +24020,7 @@ msgstr "``lock-version``" #: ../source/specifications/pylock-toml.rst:67 msgid "**Type**: string; value of ``\"1.0\"``" -msgstr "" +msgstr "**类型**: 字符串;值为 ``\"1.0\"``" #: ../source/specifications/pylock-toml.rst:68 #: ../source/specifications/pylock-toml.rst:174 @@ -20883,27 +24036,29 @@ msgstr "**必需吗?**: 是" #: ../source/specifications/pylock-toml.rst:69 msgid "**Inspiration**: :ref:`core-metadata-metadata-version`" -msgstr "" +msgstr "**灵感**: :ref:`core-metadata-metadata-version`" #: ../source/specifications/pylock-toml.rst:70 msgid "Record the file format version that the file adheres to." -msgstr "" +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 "" +msgstr "如果工具支持主版本但不支持次版本,则在遇到未知键时,工具应该发出警告。" #: ../source/specifications/pylock-toml.rst:75 msgid "If a tool doesn't support a major version, it MUST raise an error." -msgstr "" +msgstr "如果工具不支持某个主版本,则必须引发错误。" #: ../source/specifications/pylock-toml.rst:81 msgid "``environments``" @@ -20914,7 +24069,7 @@ msgstr "``environments``" #: ../source/specifications/pylock-toml.rst:132 #: ../source/specifications/pylock-toml.rst:154 msgid "**Type**: Array of strings" -msgstr "" +msgstr "**类型**: 字符串数组" #: ../source/specifications/pylock-toml.rst:84 #: ../source/specifications/pylock-toml.rst:98 @@ -20932,25 +24087,27 @@ msgstr "" #: ../source/specifications/pylock-toml.rst:715 #: ../source/specifications/pylock-toml.rst:730 msgid "**Required?**: no" -msgstr "" +msgstr "**必需吗?**: 否" #: ../source/specifications/pylock-toml.rst:85 #: ../source/specifications/pylock-toml.rst:531 #: ../source/specifications/pylock-toml.rst:549 msgid "**Inspiration**: uv_" -msgstr "" +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` " +"列表。" #: ../source/specifications/pylock-toml.rst:88 msgid "" "Tools SHOULD write exclusive/non-overlapping environment markers to ease in " "understanding." -msgstr "" +msgstr "工具应该写出互斥/不重叠的环境标记,以便于理解。" #: ../source/specifications/pylock-toml.rst:97 #: ../source/specifications/pylock-toml.rst:173 @@ -20971,7 +24128,7 @@ msgstr "" #: ../source/specifications/pylock-toml.rst:633 #: ../source/specifications/pylock-toml.rst:703 msgid "**Type**: string" -msgstr "" +msgstr "**类型**: 字符串" #: ../source/specifications/pylock-toml.rst:99 #: ../source/specifications/pylock-toml.rst:190 @@ -20980,7 +24137,7 @@ msgstr "" #: ../source/specifications/pylock-toml.rst:621 #: ../source/specifications/pylock-toml.rst:637 msgid "**Inspiration**: PDM_, Poetry_, uv_" -msgstr "" +msgstr "**灵感**: PDM_, Poetry_, uv_" #: ../source/specifications/pylock-toml.rst:100 msgid "" @@ -20988,22 +24145,24 @@ msgid "" "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 版本(即该锁定文件最低可用的 Python 版本)。" #: ../source/specifications/pylock-toml.rst:111 #: ../source/specifications/pylock-toml.rst:133 #: ../source/specifications/pylock-toml.rst:155 msgid "**Required?**: no; defaults to ``[]``" -msgstr "" +msgstr "**必需吗?**: 否;默认值为 ``[]``" #: ../source/specifications/pylock-toml.rst:112 msgid "**Inspiration**: :ref:`core-metadata-provides-extra`" -msgstr "" +msgstr "**灵感**: :ref:`core-metadata-provides-extra`" #: ../source/specifications/pylock-toml.rst:113 msgid "" "The list of :ref:`extras ` supported by this " "lock file." -msgstr "" +msgstr "该锁定文件支持的 :ref:`附加功能 ` 列表。" #: ../source/specifications/pylock-toml.rst:115 #: ../source/specifications/pylock-toml.rst:138 @@ -21012,10 +24171,12 @@ msgid "" "dependency groups (i.e. tools may only support exporting a single-use lock " "file)." msgstr "" +"锁定工具可以选择不支持生成支持附加功能(extras)和依赖群的锁定文件(即工具可" +"以只支持导出单用途的锁定文件)。" #: ../source/specifications/pylock-toml.rst:118 msgid "Tools supporting extras MUST also support dependency groups." -msgstr "" +msgstr "支持附加功能(extras)的工具必须同时支持依赖群。" #: ../source/specifications/pylock-toml.rst:119 msgid "" @@ -21026,6 +24187,10 @@ msgid "" "dependencies>` table), signalling that the lock file is, in effect, multi-" "use even if it only looks to be single-use." msgstr "" +"工具应该显式地将此键设置为空数组,以表明生成锁定文件时所用的输入没有任何附加" +"功能(extras)(例如 :ref:`pyproject.toml ` 文件中没有 " +":ref:`[project.optional-dependencies] " +"` 表),从而表明该锁定文件实际上是多用途的,即使它看起来只是单用途的。" #: ../source/specifications/pylock-toml.rst:130 msgid "``dependency-groups``" @@ -21043,10 +24208,12 @@ msgid "" "(i.e. dependency groups users are expected to be able to specify via a " "tool's UI)." msgstr "" +"该锁定文件公开支持的 :ref:`dependency-groups` 列表(即预期用户能够通过工具 " +"UI 指定的依赖群)。" #: ../source/specifications/pylock-toml.rst:141 msgid "Tools supporting dependency groups MUST also support extras." -msgstr "" +msgstr "支持依赖群的工具必须同时支持附加功能(extras)。" #: ../source/specifications/pylock-toml.rst:142 msgid "" @@ -21056,14 +24223,18 @@ msgid "" "groups] ` table), signalling that the lock file is, in " "effect, multi-use even if it only looks to be single-use." msgstr "" +"工具应该显式地将此键设置为空数组,以表明生成锁定文件时所用的输入没有任何依赖" +"群(例如 :ref:`pyproject.toml ` 文件中没有 " +":ref:`[dependency-groups] ` 表),从而表明该锁定文件实际上" +"是多用途的,即使它看起来只是单用途的。" #: ../source/specifications/pylock-toml.rst:152 msgid "``default-groups``" -msgstr "" +msgstr "``default-groups``" #: ../source/specifications/pylock-toml.rst:156 msgid "**Inspiration**: Poetry_, PDM_" -msgstr "" +msgstr "**灵感**: Poetry_, PDM_" #: ../source/specifications/pylock-toml.rst:157 msgid "" @@ -21071,12 +24242,15 @@ msgid "" "installed by default (e.g. what :ref:`[project.dependencies] ` implicitly represents)." msgstr "" +"合成依赖群的名称,用于表示默认应安装的内容(例如 " +":ref:`[project.dependencies] ` 隐式表示的内容)" +"。" #: ../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 "" +msgstr "适用于 :ref:`pylock-packages-marker` 要求此类群组存在的情形。" #: ../source/specifications/pylock-toml.rst:163 msgid "" @@ -21084,30 +24258,36 @@ msgid "" "dependency-groups` as the groups are not meant to be directly exposed to " "users by name but instead via an installer's UI." msgstr "" +"此键列出的群组不应该列在 :ref:`pylock-dependency-groups` 中,因为这些群组并不" +"打算按名称直接暴露给用户,而是通过安装器的 UI 暴露。" #: ../source/specifications/pylock-toml.rst:171 msgid "``created-by``" -msgstr "" +msgstr "``created-by``" #: ../source/specifications/pylock-toml.rst:175 msgid "**Inspiration**: Tools with their name in their lock file name" -msgstr "" +msgstr "**灵感**: 将自身名称包含在锁定文件名中的工具" #: ../source/specifications/pylock-toml.rst:176 msgid "Records the name of the tool used to create the lock file." -msgstr "" +msgstr "记录创建锁定文件所用工具的名称。" #: ../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` 表记录足够的细节,以便能够推断出创建锁定文件" +"时使用了哪些输入。" #: ../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 "" +"如果该工具以 Python 软件包的形式提供,则应该记录其规范化名称,以便于查找该工" +"具。" #: ../source/specifications/pylock-toml.rst:186 msgid "``[[packages]]``" @@ -21118,17 +24298,19 @@ msgstr "``[[packages]]``" #: ../source/specifications/pylock-toml.rst:618 #: ../source/specifications/pylock-toml.rst:688 msgid "**Type**: array of tables" -msgstr "" +msgstr "**类型**: 表数组" #: ../source/specifications/pylock-toml.rst:191 msgid "An array containing all packages that *may* be installed." -msgstr "" +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``" @@ -21136,11 +24318,11 @@ msgstr "``packages.name``" #: ../source/specifications/pylock-toml.rst:203 msgid "**Inspiration**: :ref:`core-metadata-name`" -msgstr "" +msgstr "**灵感**: :ref:`core-metadata-name`" #: ../source/specifications/pylock-toml.rst:204 msgid "The name of the package :ref:`normalized `." -msgstr "" +msgstr "软件包的 :ref:`规范化 ` 名称。" #: ../source/specifications/pylock-toml.rst:210 msgid "``packages.version``" @@ -21148,7 +24330,7 @@ msgstr "``packages.version``" #: ../source/specifications/pylock-toml.rst:214 msgid "**Inspiration**: :ref:`core-metadata-version`" -msgstr "" +msgstr "**灵感**: :ref:`core-metadata-version`" #: ../source/specifications/pylock-toml.rst:215 msgid "The version of the package." @@ -21160,6 +24342,8 @@ msgid "" "when an :ref:`sdist ` or :ref:`wheels ` are specified)." msgstr "" +"在版本已知稳定时(即指定了 :ref:`sdist ` 或 " +":ref:`wheels ` 时),应该指定该版本。" #: ../source/specifications/pylock-toml.rst:219 msgid "" @@ -21167,6 +24351,8 @@ msgid "" "consistent with the code used (i.e. when a :ref:`source tree ` is used)." msgstr "" +"当无法保证版本与所用代码一致时(即使用 :ref:`源码树 ` 时),不得包含该版本。" #: ../source/specifications/pylock-toml.rst:227 msgid "``packages.marker``" @@ -21174,13 +24360,15 @@ msgstr "``packages.marker``" #: ../source/specifications/pylock-toml.rst:231 msgid "**Inspiration**: PDM_" -msgstr "" +msgstr "**灵感**: PDM_" #: ../source/specifications/pylock-toml.rst:232 msgid "" "The :ref:`environment marker ` " "which specify when the package should be installed." msgstr "" +"用于指定何时应安装该软件包的 :ref:`环境标记 `。" #: ../source/specifications/pylock-toml.rst:240 msgid "``packages.requires-python``" @@ -21188,13 +24376,13 @@ msgstr "``packages.requires-python``" #: ../source/specifications/pylock-toml.rst:244 msgid "**Inspiration**: :ref:`core-metadata-requires-python`" -msgstr "" +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 "" +msgstr "保存该软件包用于 Python 版本兼容性的 :ref:`version-specifiers`。" #: ../source/specifications/pylock-toml.rst:252 msgid "``[[packages.dependencies]]``" @@ -21204,7 +24392,7 @@ msgstr "``[[packages.dependencies]]``" msgid "" "Records the other entries in :ref:`pylock-packages` which are direct " "dependencies of this package." -msgstr "" +msgstr "记录 :ref:`pylock-packages` 中作为该软件包直接依赖项的其他条目。" #: ../source/specifications/pylock-toml.rst:259 msgid "" @@ -21215,12 +24403,16 @@ msgid "" "version number like ``{name = \"spam\", version = \"1.0.0\"}``, or by source " "like ``{name = \"spam\", vcs = { url = \"...\"}``)." msgstr "" +"每个条目都是一个表,其中包含判断该条目对应哪个其他软件包条目所需的最少信息," +"使逐键比较能够毫无歧义地找到相应的软件包(例如,如果 ``spam`` 软件包有两个条" +"目,则可以像 ``{name = \"spam\", version = \"1.0.0\"}`` 那样包含版本号,或者" +"像 ``{name = \"spam\", vcs = { url = \"...\"}`` 那样按来源加以区分)。" #: ../source/specifications/pylock-toml.rst:265 msgid "" "Tools MUST NOT use this information when doing installation; it is purely " "informational for auditing purposes." -msgstr "" +msgstr "工具在执行安装时不得使用此信息;该信息仅用于审计。" #: ../source/specifications/pylock-toml.rst:272 msgid "``[packages.vcs]``" @@ -21233,7 +24425,7 @@ msgstr "``[packages.vcs]``" #: ../source/specifications/pylock-toml.rst:714 #: ../source/specifications/pylock-toml.rst:729 msgid "**Type**: table" -msgstr "" +msgstr "**类型**: 表" #: ../source/specifications/pylock-toml.rst:275 msgid "" @@ -21241,38 +24433,42 @@ msgid "" "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 "" +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 "" +"为其包含的 :ref:`源码树 ` 记录版本控" +"制系统详情。" #: ../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 "" +msgstr "无论从锁定和/或安装的角度来看,工具都可以不支持版本控制系统。" #: ../source/specifications/pylock-toml.rst:284 msgid "Tools MAY choose to only support a subset of the available VCS types." -msgstr "" +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 "" +msgstr "工具应该为用户提供选择是否使用版本控制系统的方式。" #: ../source/specifications/pylock-toml.rst:287 msgid "" "Installation from a version control system is considered originating from " "a :ref:`direct URL reference `." -msgstr "" +msgstr "从版本控制系统安装被视为源自 :ref:`直接 URL 引用 `。" #: ../source/specifications/pylock-toml.rst:294 msgid "``packages.vcs.type``" @@ -21283,6 +24479,8 @@ msgid "" "**Type**: string; supported values specified in :ref:`direct-url-data-" "structure-registered-vcs`" msgstr "" +"**类型**: 字符串;支持的取值在 :ref:`direct-url-data-structure-registered-" +"vcs` 中规定" #: ../source/specifications/pylock-toml.rst:299 #: ../source/specifications/pylock-toml.rst:310 @@ -21290,7 +24488,7 @@ msgstr "" #: ../source/specifications/pylock-toml.rst:335 #: ../source/specifications/pylock-toml.rst:349 msgid "**Inspiration**: :ref:`direct-url-data-structure-vcs`" -msgstr "" +msgstr "**灵感**: :ref:`direct-url-data-structure-vcs`" #: ../source/specifications/pylock-toml.rst:300 msgid "The type of version control system used." @@ -21302,11 +24500,11 @@ msgstr "``packages.vcs.url``" #: ../source/specifications/pylock-toml.rst:309 msgid "**Required?**: if :ref:`pylock-packages-vcs-path` is not specified" -msgstr "" +msgstr "**必需吗?**: 如果未指定 :ref:`pylock-packages-vcs-path` 则为必需" #: ../source/specifications/pylock-toml.rst:311 msgid "The URL_ to the source tree." -msgstr "" +msgstr "源码树的 URL_。" #: ../source/specifications/pylock-toml.rst:317 msgid "``packages.vcs.path``" @@ -21314,38 +24512,40 @@ msgstr "``packages.vcs.path``" #: ../source/specifications/pylock-toml.rst:320 msgid "**Required?**: if :ref:`pylock-packages-vcs-url` is not specified" -msgstr "" +msgstr "**必需吗?**: 如果未指定 :ref:`pylock-packages-vcs-url` 则为必需" #: ../source/specifications/pylock-toml.rst:322 msgid "The path to the local directory of the source tree." -msgstr "" +msgstr "源码树本地目录的路径。" #: ../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 "" +msgstr "如果使用相对路径,则该路径必须相对于本文件所在的位置。" #: ../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 "" +msgstr "如果路径是相对路径,则可以为了便于移植而显式使用 POSIX 风格的路径分隔符。" #: ../source/specifications/pylock-toml.rst:331 msgid "``packages.vcs.requested-revision``" -msgstr "" +msgstr "``packages.vcs.requested-revision``" #: ../source/specifications/pylock-toml.rst:336 msgid "The branch/tag/ref/commit/revision/etc. that the user requested." -msgstr "" +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`;它不得用于检" +"出仓库。" #: ../source/specifications/pylock-toml.rst:345 msgid "``packages.vcs.commit-id``" @@ -21353,7 +24553,7 @@ msgstr "``packages.vcs.commit-id``" #: ../source/specifications/pylock-toml.rst:350 msgid "The exact commit/revision number that is to be installed." -msgstr "" +msgstr "将要安装的确切提交/修订版本号。" #: ../source/specifications/pylock-toml.rst:351 msgid "" @@ -21361,14 +24561,16 @@ msgid "" "hash, it MUST be used as the commit ID in order to reference an immutable " "version of the source code." msgstr "" +"如果 VCS 支持基于提交哈希的修订版本标识符,则必须将这样的提交哈希用作提交 ID" +",以便引用源代码的不可变版本。" #: ../source/specifications/pylock-toml.rst:359 msgid "``packages.vcs.subdirectory``" -msgstr "" +msgstr "``packages.vcs.subdirectory``" #: ../source/specifications/pylock-toml.rst:363 msgid "**Inspiration**: :ref:`direct-url-data-structure-subdirectories`" -msgstr "" +msgstr "**灵感**: :ref:`direct-url-data-structure-subdirectories`" #: ../source/specifications/pylock-toml.rst:364 msgid "" @@ -21376,10 +24578,12 @@ msgid "" "source-tree>` where the project root of the project is (e.g. the location of " "the :ref:`pyproject.toml ` file)." msgstr "" +":ref:`源码树 ` 中项目根目录所在的子目" +"录(例如 :ref:`pyproject.toml ` 文件的位置)。" #: ../source/specifications/pylock-toml.rst:368 msgid "The path MUST be relative to the root of the source tree structure." -msgstr "" +msgstr "该路径必须相对于源码树结构的根目录。" #: ../source/specifications/pylock-toml.rst:374 msgid "``[packages.directory]``" @@ -21391,36 +24595,40 @@ msgid "" "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 "" +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/specifications/pylock-toml.rst:384 msgid "" "Tools MAY choose to not support local directories, both from a locking and/" "or installation perspective." -msgstr "" +msgstr "无论从锁定和/或安装的角度来看,工具都可以不支持本地目录。" #: ../source/specifications/pylock-toml.rst:386 msgid "" "Tools SHOULD provide a way for users to opt in/out of using local " "directories." -msgstr "" +msgstr "工具应该为用户提供选择是否使用本地目录的方式。" #: ../source/specifications/pylock-toml.rst:387 msgid "" "Installation from a directory is considered originating from a :ref:`direct " "URL reference `." -msgstr "" +msgstr "从目录安装被视为源自 :ref:`直接 URL 引用 `。" #: ../source/specifications/pylock-toml.rst:394 msgid "``packages.directory.path``" @@ -21428,36 +24636,36 @@ msgstr "``packages.directory.path``" #: ../source/specifications/pylock-toml.rst:399 msgid "The local directory where the source tree is." -msgstr "" +msgstr "源码树所在的本地目录。" #: ../source/specifications/pylock-toml.rst:400 msgid "" "If the path is relative it MUST be relative to the location of the lock file." -msgstr "" +msgstr "如果路径是相对路径,则该路径必须相对于锁定文件所在的位置。" #: ../source/specifications/pylock-toml.rst:401 msgid "" "If the path is relative it MAY use POSIX-style path separators for " "portability." -msgstr "" +msgstr "如果路径是相对路径,则可以使用 POSIX 风格的路径分隔符,以便于移植。" #: ../source/specifications/pylock-toml.rst:408 msgid "``packages.directory.editable``" -msgstr "" +msgstr "``packages.directory.editable``" #: ../source/specifications/pylock-toml.rst:410 msgid "**Type**: boolean" -msgstr "" +msgstr "**类型**: 布尔值" #: ../source/specifications/pylock-toml.rst:411 msgid "**Required?**: no; defaults to ``false``" -msgstr "" +msgstr "**必需吗?**: 否;默认值为 ``false``" #: ../source/specifications/pylock-toml.rst:413 msgid "" "A flag representing whether the source tree was an editable install at lock " "time." -msgstr "" +msgstr "一个标志,表示在锁定时该源码树是否为可编辑安装。" #: ../source/specifications/pylock-toml.rst:415 msgid "" @@ -21466,15 +24674,18 @@ msgid "" "that will not be mounted for development purposes but instead deployed to " "production where it would be treated at read-only)." msgstr "" +"如果用户的操作或使用场景会使可编辑安装变得不必要或不可取,安装器可以选择忽略" +"此标志(例如,某个容器镜像不会出于开发目的被挂载,而是被部署到生产环境并在那" +"里被当作只读对待)。" #: ../source/specifications/pylock-toml.rst:424 msgid "``packages.directory.subdirectory``" -msgstr "" +msgstr "``packages.directory.subdirectory``" #: ../source/specifications/pylock-toml.rst:426 #: ../source/specifications/pylock-toml.rst:521 msgid "See :ref:`pylock-packages-vcs-subdirectory`." -msgstr "" +msgstr "参见 :ref:`pylock-packages-vcs-subdirectory`。" #: ../source/specifications/pylock-toml.rst:432 msgid "``[packages.archive]``" @@ -21484,7 +24695,7 @@ msgstr "``[packages.archive]``" #: ../source/specifications/pylock-toml.rst:454 #: ../source/specifications/pylock-toml.rst:465 msgid "**Inspiration**: :ref:`direct-url-data-structure-archive`" -msgstr "" +msgstr "**灵感**: :ref:`direct-url-data-structure-archive`" #: ../source/specifications/pylock-toml.rst:437 msgid "" @@ -21492,23 +24703,25 @@ msgid "" "wheels and sdists, as well as other archive formats containing a source " "tree)." msgstr "" +"对要从中安装的归档文件的直接引用(这可以包括 wheel 包和 sdist,以及包含源码树" +"的其他归档格式)。" #: ../source/specifications/pylock-toml.rst:440 msgid "" "Tools MAY choose to not support archive files, both from a locking and/or " "installation perspective." -msgstr "" +msgstr "无论从锁定和/或安装的角度来看,工具都可以不支持归档文件。" #: ../source/specifications/pylock-toml.rst:442 msgid "" "Tools SHOULD provide a way for users to opt in/out of using archive files." -msgstr "" +msgstr "工具应该为用户提供选择是否使用归档文件的方式。" #: ../source/specifications/pylock-toml.rst:443 msgid "" "Installation from an archive file is considered originating from " "a :ref:`direct URL reference `." -msgstr "" +msgstr "从归档文件安装被视为源自 :ref:`直接 URL 引用 `。" #: ../source/specifications/pylock-toml.rst:450 msgid "``packages.archive.url``" @@ -21516,11 +24729,11 @@ msgstr "``packages.archive.url``" #: ../source/specifications/pylock-toml.rst:453 msgid "**Required?**: if :ref:`pylock-packages-archive-path` is not specified" -msgstr "" +msgstr "**必需吗?**: 如果未指定 :ref:`pylock-packages-archive-path` 则为必需" #: ../source/specifications/pylock-toml.rst:455 msgid "The URL_ to the archive." -msgstr "" +msgstr "归档文件的 URL_。" #: ../source/specifications/pylock-toml.rst:461 msgid "``packages.archive.path``" @@ -21528,17 +24741,17 @@ msgstr "``packages.archive.path``" #: ../source/specifications/pylock-toml.rst:464 msgid "**Required?**: if :ref:`pylock-packages-archive-url` is not specified" -msgstr "" +msgstr "**必需吗?**: 如果未指定 :ref:`pylock-packages-archive-url` 则为必需" #: ../source/specifications/pylock-toml.rst:466 msgid "The path to the archive." -msgstr "" +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 "" +msgstr "如果同时指定了 :ref:`pylock-packages-archive-url`,则以此键指定的文件名为准。" #: ../source/specifications/pylock-toml.rst:477 msgid "``packages.archive.size``" @@ -21546,33 +24759,35 @@ msgstr "``packages.archive.size``" #: ../source/specifications/pylock-toml.rst:479 msgid "**Type**: integer" -msgstr "" +msgstr "**类型**: 整数" #: ../source/specifications/pylock-toml.rst:481 msgid "**Inspiration**: uv_, :ref:`simple-repository-api`" -msgstr "" +msgstr "**灵感**: uv_, :ref:`simple-repository-api`" #: ../source/specifications/pylock-toml.rst:482 msgid "The size of the archive file." -msgstr "" +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 "" +"工具应该在合理可行的情况下提供文件大小(例如,文件大小可通过 HEAD_ HTTP 请求" +"的 Content-Length_ 响应头获取)。" #: ../source/specifications/pylock-toml.rst:490 msgid "``packages.archive.upload-time``" -msgstr "" +msgstr "``packages.archive.upload-time``" #: ../source/specifications/pylock-toml.rst:492 msgid "**Type**: datetime" -msgstr "" +msgstr "**类型**: 日期时间" #: ../source/specifications/pylock-toml.rst:494 msgid "**Inspiration**: :ref:`simple-repository-api`" -msgstr "" +msgstr "**灵感**: :ref:`simple-repository-api`" #: ../source/specifications/pylock-toml.rst:495 msgid "The time the file was uploaded." @@ -21580,33 +24795,33 @@ msgstr "文件上传时间。" #: ../source/specifications/pylock-toml.rst:496 msgid "The date and time MUST be recorded in UTC." -msgstr "" +msgstr "日期和时间必须以 UTC 记录。" #: ../source/specifications/pylock-toml.rst:502 msgid "``[packages.archive.hashes]``" -msgstr "" +msgstr "``[packages.archive.hashes]``" #: ../source/specifications/pylock-toml.rst:504 msgid "**Type**: Table of strings" -msgstr "" +msgstr "**类型**: 字符串表" #: ../source/specifications/pylock-toml.rst:506 msgid "**Inspiration**: PDM_, Poetry_, uv_, :ref:`simple-repository-api`" -msgstr "" +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 "" +msgstr "一个列出文件已知哈希值的表,其中键为哈希算法,值为哈希值。" #: ../source/specifications/pylock-toml.rst:509 msgid "The table MUST contain at least one entry." -msgstr "" +msgstr "该表必须包含至少一个条目。" #: ../source/specifications/pylock-toml.rst:510 msgid "Hash algorithm keys SHOULD be lowercase." -msgstr "" +msgstr "哈希算法键应该采用小写形式。" #: ../source/specifications/pylock-toml.rst:511 msgid "" @@ -21614,10 +24829,12 @@ msgid "" "SHOULD always be included (at time of writing, sha256 specifically is " "recommended." msgstr "" +"应该始终包含至少一种来自 :py:data:`hashlib.algorithms_guaranteed` 的安全算法" +"(在撰写本文时,特别推荐使用 sha256。" #: ../source/specifications/pylock-toml.rst:519 msgid "``packages.archive.subdirectory``" -msgstr "" +msgstr "``packages.archive.subdirectory``" #: ../source/specifications/pylock-toml.rst:527 msgid "``packages.index``" @@ -21628,6 +24845,8 @@ 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 "" +"sdist 和/或 wheel 包所在的 :ref:`simple-repository-api` 包索引的基础 URL(例" +"如 ``https://pypi.org/simple/``)。" #: ../source/specifications/pylock-toml.rst:534 msgid "" @@ -21635,12 +24854,16 @@ msgid "" "bill of materials`_ -- aka SBOMs -- and to assist in finding a file if a URL " "ceases to be valid." msgstr "" +"在可能的情况下,应该指定此键,以协助生成 `software bill of materials`_,又称 " +"SBOM,并在 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 "" +"如果为特定文件记录的 URL 不再有效(例如返回 404 HTTP 错误码),工具可以支持从" +"索引安装。" #: ../source/specifications/pylock-toml.rst:544 msgid "``[packages.sdist]``" @@ -21652,21 +24875,23 @@ 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 "" +msgstr "该软件包的 :ref:`source-distribution-format-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 "" +msgstr "无论从锁定和/或安装的角度来看,工具都可以不支持 sdist 文件。" #: ../source/specifications/pylock-toml.rst:554 msgid "" "Tools SHOULD provide a way for users to opt in/out of using sdist files." -msgstr "" +msgstr "工具应该为用户提供选择是否使用 sdist 文件的方式。" #: ../source/specifications/pylock-toml.rst:560 msgid "``packages.sdist.name``" @@ -21677,16 +24902,20 @@ 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 "" +"**必需吗?**: 否,除非 :ref:`pylock-packages-sdist-path`/ :ref:`pylock-" +"packages-sdist-url` 的最后一个组件会是相同的值" #: ../source/specifications/pylock-toml.rst:567 msgid "The file name of the :ref:`source-distribution-format-sdist` file." -msgstr "" +msgstr ":ref:`source-distribution-format-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 "" +"如果指定了此键,其值将优先于在 :ref:`pylock-packages-sdist-url` 或 " +":ref:`pylock-packages-sdist-path` 中找到的文件名。" #: ../source/specifications/pylock-toml.rst:575 msgid "``packages.sdist.upload-time``" @@ -21695,7 +24924,7 @@ 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 "" +msgstr "参见 :ref:`pylock-packages-archive-upload-time`。" #: ../source/specifications/pylock-toml.rst:583 msgid "``packages.sdist.url``" @@ -21704,7 +24933,7 @@ msgstr "``packages.sdist.url``" #: ../source/specifications/pylock-toml.rst:585 #: ../source/specifications/pylock-toml.rst:656 msgid "See :ref:`pylock-packages-archive-url`." -msgstr "" +msgstr "参见 :ref:`pylock-packages-archive-url`。" #: ../source/specifications/pylock-toml.rst:591 msgid "``packages.sdist.path``" @@ -21713,7 +24942,7 @@ msgstr "``packages.sdist.path``" #: ../source/specifications/pylock-toml.rst:593 #: ../source/specifications/pylock-toml.rst:664 msgid "See :ref:`pylock-packages-archive-path`." -msgstr "" +msgstr "参见 :ref:`pylock-packages-archive-path`。" #: ../source/specifications/pylock-toml.rst:599 msgid "``packages.sdist.size``" @@ -21722,7 +24951,7 @@ msgstr "``packages.sdist.size``" #: ../source/specifications/pylock-toml.rst:601 #: ../source/specifications/pylock-toml.rst:672 msgid "See :ref:`pylock-packages-archive-size`." -msgstr "" +msgstr "参见 :ref:`pylock-packages-archive-size`。" #: ../source/specifications/pylock-toml.rst:607 msgid "``packages.sdist.hashes``" @@ -21731,7 +24960,7 @@ msgstr "``packages.sdist.hashes``" #: ../source/specifications/pylock-toml.rst:609 #: ../source/specifications/pylock-toml.rst:680 msgid "See :ref:`pylock-packages-archive-hashes`." -msgstr "" +msgstr "参见 :ref:`pylock-packages-archive-hashes`。" #: ../source/specifications/pylock-toml.rst:616 msgid "``[[packages.wheels]]``" @@ -21741,13 +24970,13 @@ msgstr "``[[packages.wheels]]``" msgid "" "For recording the wheel files as specified by :ref:`binary-distribution-" "format` for the package." -msgstr "" +msgstr "用于为该软件包记录符合 :ref:`binary-distribution-format` 规定的 wheel 文件。" #: ../source/specifications/pylock-toml.rst:624 msgid "" "Tools MUST support wheel files, both from a locking and installation " "perspective." -msgstr "" +msgstr "无论从锁定还是安装的角度来看,工具都必须支持 wheel 文件。" #: ../source/specifications/pylock-toml.rst:631 msgid "``packages.wheels.name``" @@ -21758,10 +24987,12 @@ 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 "" +"**必需吗?**: 否,除非 :ref:`pylock-packages-wheels-path`/ :ref:`pylock-" +"packages-wheels-url` 的最后一个组件会是相同的值" #: ../source/specifications/pylock-toml.rst:638 msgid "The file name of the :ref:`binary-distribution-format` file." -msgstr "" +msgstr ":ref:`binary-distribution-format` 文件的文件名。" #: ../source/specifications/pylock-toml.rst:639 msgid "" @@ -21769,10 +25000,12 @@ msgid "" "either :ref:`pylock-packages-wheels-url` or :ref:`pylock-packages-wheels-" "path`." msgstr "" +"如果指定了此键,其值将优先于在 :ref:`pylock-packages-wheels-url` 或 " +":ref:`pylock-packages-wheels-path` 中找到的文件名。" #: ../source/specifications/pylock-toml.rst:646 msgid "``packages.wheels.upload-time``" -msgstr "" +msgstr "``packages.wheels.upload-time``" #: ../source/specifications/pylock-toml.rst:654 msgid "``packages.wheels.url``" @@ -21792,7 +25025,7 @@ msgstr "``packages.wheels.hashes``" #: ../source/specifications/pylock-toml.rst:686 msgid "``[[packages.attestation-identities]]``" -msgstr "" +msgstr "``[[packages.attestation-identities]]``" #: ../source/specifications/pylock-toml.rst:690 #: ../source/specifications/pylock-toml.rst:705 @@ -21802,25 +25035,27 @@ msgstr "**灵感**: :ref:`provenance-object`" #: ../source/specifications/pylock-toml.rst:691 msgid "" "A recording of the attestations for **any** file recorded for this package." -msgstr "" +msgstr "对该软件包记录的 **任何** 文件的证明记录。" #: ../source/specifications/pylock-toml.rst:692 msgid "If available, tools SHOULD include the attestation identities found." -msgstr "" +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 "" +"特定于发布者的键应原样包含在表中(即位于顶层),并遵循 :ref:`index-hosted-" +"attestations` 中的规范。" #: ../source/specifications/pylock-toml.rst:701 msgid "``packages.attestation-identities.kind``" -msgstr "" +msgstr "``packages.attestation-identities.kind``" #: ../source/specifications/pylock-toml.rst:706 msgid "The unique identity of the Trusted Publisher." -msgstr "" +msgstr "可信发布者的唯一身份。" #: ../source/specifications/pylock-toml.rst:712 msgid "``[packages.tool]``" @@ -21832,20 +25067,22 @@ msgid "" "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:`pyproject-toml-spec` 中 :ref:`pylock-tool` 表的用法类似,但作" +"用在软件包版本级别而非锁定文件级别(后者也可通过 :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 "" +msgstr "表中记录的数据必须是可丢弃的(即它不得影响安装)。" #: ../source/specifications/pylock-toml.rst:727 msgid "``[tool]``" -msgstr "" +msgstr "``[tool]``" #: ../source/specifications/pylock-toml.rst:732 msgid "See :ref:`pylock-packages-tool`." -msgstr "" +msgstr "参见 :ref:`pylock-packages-tool`。" #: ../source/specifications/pylock-toml.rst:746 msgid "" @@ -21853,28 +25090,36 @@ msgid "" "(while the requirements are prescriptive, the general steps and order are a " "suggestion):" msgstr "" +"下面概述从锁定文件安装时要执行的步骤(虽然其中的各项要求是规范性的,但总体步" +"骤及其顺序只是建议):" #: ../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)和依赖群,并分别为标记求值设置 ``extras`` 和 " +"``dependency_groups``。" #: ../source/specifications/pylock-toml.rst:753 msgid "``extras`` SHOULD be set to the empty set by default." -msgstr "" +msgstr "默认情况下,``extras`` 应该被设置为空集。" #: ../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 "" +"检查是否支持 :ref:`pylock-lock-version` 所指定的元数据版本;必须酌情引发错误" +"或警告。" #: ../source/specifications/pylock-toml.rst:759 msgid "" @@ -21882,6 +25127,8 @@ msgid "" "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 "" @@ -21889,28 +25136,36 @@ msgid "" "environment marker expressions is satisfied; an error MUST be raised if no " "expression is satisfied." msgstr "" +"如果指定了 :ref:`pylock-environments`,请检查是否至少有一个环境标记表达式得到" +"满足;如果没有任何表达式得到满足,必须引发错误。" #: ../source/specifications/pylock-toml.rst:765 msgid "For each package listed in :ref:`pylock-packages`:" -msgstr "" +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 "" @@ -21918,30 +25173,34 @@ msgid "" "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 "" +msgstr "将该软件包加入待安装软件包的集合中。" #: ../source/specifications/pylock-toml.rst:778 msgid "For each package to be installed:" -msgstr "" +msgstr "对于每个要安装的软件包:" #: ../source/specifications/pylock-toml.rst:780 msgid "If :ref:`pylock-packages-vcs` is set:" -msgstr "" +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 "" +msgstr "将仓库克隆到 :ref:`pylock-packages-vcs-commit-id` 中指定的提交 ID。" #: ../source/specifications/pylock-toml.rst:784 msgid "" ":ref:`Build ` the package, " "respecting :ref:`pylock-packages-vcs-subdirectory`." msgstr "" +":ref:`构建 ` 该软件包,并遵循 " +":ref:`pylock-packages-vcs-subdirectory`。" #: ../source/specifications/pylock-toml.rst:786 #: ../source/specifications/pylock-toml.rst:792 @@ -21949,42 +25208,48 @@ msgstr "" #: ../source/specifications/pylock-toml.rst:821 #: ../source/specifications/pylock-toml.rst:836 msgid ":ref:`Install `." -msgstr "" +msgstr ":ref:`安装 `。" #: ../source/specifications/pylock-toml.rst:788 msgid "Else if :ref:`pylock-packages-directory` is set:" -msgstr "" +msgstr "否则,如果设置了 :ref:`pylock-packages-directory`:" #: ../source/specifications/pylock-toml.rst:790 msgid "" ":ref:`Build ` the package, " "respecting :ref:`pylock-packages-directory-subdirectory`." msgstr "" +":ref:`构建 ` 该软件包,并遵循 " +":ref:`pylock-packages-directory-subdirectory`。" #: ../source/specifications/pylock-toml.rst:794 msgid "Else if :ref:`pylock-packages-archive` is set:" -msgstr "" +msgstr "否则,如果设置了 :ref:`pylock-packages-archive`:" #: ../source/specifications/pylock-toml.rst:796 #: ../source/specifications/pylock-toml.rst:826 msgid "Get the file." -msgstr "" +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:`构建 ` 软件包,并遵循 " +":ref:`pylock-packages-archive-subdirectory`。" #: ../source/specifications/pylock-toml.rst:803 msgid "Else if there are entries for :ref:`pylock-packages-wheels`:" -msgstr "" +msgstr "否则,如果存在 :ref:`pylock-packages-wheels` 条目:" #: ../source/specifications/pylock-toml.rst:805 msgid "" @@ -21992,14 +25257,16 @@ msgid "" "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 "" +"根据 :ref:`pylock-packages-wheels-name` 查找合适的 wheel 文件;如果未找到,则" +"转向 :ref:`pylock-packages-sdist`,否则必须抛出错误,指出该项目缺少源代码。" #: ../source/specifications/pylock-toml.rst:809 msgid "Get the file:" -msgstr "" +msgstr "获取该文件:" #: ../source/specifications/pylock-toml.rst:811 msgid "If :ref:`pylock-packages-wheels-path` is set, use it." -msgstr "" +msgstr "如果设置了 :ref:`pylock-packages-wheels-path`,则使用它。" #: ../source/specifications/pylock-toml.rst:812 msgid "" @@ -22009,22 +25276,30 @@ msgid "" "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` 或某种特定于工具的机制来下载所选的 wheel 文件" +"(工具不得尝试根据当前可用的文件来更改要下载的 wheel 文件;为了确保可复现性," +"应安装哪个文件应以离线方式确定)。" #: ../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 "" +"否则,如果未找到 :ref:`pylock-packages-wheels` 文件,或者仅设置了 " +":ref:`pylock-packages-sdist`:" #: ../source/specifications/pylock-toml.rst:828 msgid "If :ref:`pylock-packages-sdist-path` is set, use it." -msgstr "" +msgstr "如果设置了 :ref:`pylock-packages-sdist-path`,则使用它。" #: ../source/specifications/pylock-toml.rst:829 msgid "" @@ -22032,29 +25307,33 @@ msgid "" "use :ref:`pylock-packages-index` or some tool-specific mechanism to download " "the file." msgstr "" +"否则,如果设置了 :ref:`pylock-packages-sdist-url`,则尝试使用它;工具可以使" +"用 :ref:`pylock-packages-index` 或某种特定于工具的机制来下载该文件。" #: ../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 "" +msgstr ":ref:`构建 ` 软件包。" #: ../source/specifications/pylock-toml.rst:843 msgid "April 2025: Initial version, approved via :pep:`751`." -msgstr "" +msgstr "2025 年 4 月:初始版本,通过 :pep:`751` 获得批准。" #: ../source/specifications/pylock-toml.rst:844 msgid "" "March 2026: Clarify file name precedence for archives, sdists, and wheels." -msgstr "" +msgstr "2026 年 3 月:澄清归档文件、源分发和 wheel 包的文件名优先级。" #: ../source/specifications/pypirc.rst:6 msgid "The :file:`.pypirc` file" -msgstr "" +msgstr ":file:`.pypirc` 文件" #: ../source/specifications/pypirc.rst:8 msgid "" @@ -22063,42 +25342,47 @@ msgid "" "\"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:`包索引 ` 定义配置(下文" +"称之为“仓库”),这样你在使用 :ref:`twine` 或 :ref:`flit` 上传软件包时,就不必" +"每次都输入 URL、用户名或密码。" #: ../source/specifications/pypirc.rst:13 msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." -msgstr "" +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 "" +msgstr "如果使用其他字符编码,读写 :file:`.pypirc` 文件的工具可能无法正常工作。" #: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" -msgstr "" +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`` 节定义了一个 ``index-servers`` 字段,其中列出了描述仓库的各个节" +"的名称。" #: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" -msgstr "" +msgstr "每个描述仓库的节都会定义三个字段:" #: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." -msgstr "" +msgstr "``repository``:仓库的 URL。" #: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." -msgstr "" +msgstr "``username``:在仓库上注册的用户名。" #: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." -msgstr "" +msgstr "``password``:用于对该用户名进行身份验证的密码。" #: ../source/specifications/pypirc.rst:48 msgid "" @@ -22106,16 +25390,20 @@ msgid "" "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 "" +"否则,请设置 :file:`.pypirc` 的权限,使得只有你才能查看或修改它。例如,在 " +"Linux 或 macOS 上运行:" #: ../source/specifications/pypirc.rst:62 msgid "Common configurations" -msgstr "" +msgstr "常用配置" #: ../source/specifications/pypirc.rst:66 msgid "" @@ -22123,38 +25411,47 @@ msgid "" "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 "" +msgstr "Twine 的默认配置相当于一个包含 PyPI 和 TestPyPI 仓库节的 :file:`.pypirc`:" #: ../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 "" +msgstr "使用 PyPI 令牌" #: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" +"要为 PyPI 设置你的 `API 令牌`_,可以创建一个类似如下的 :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]`` 节,并使用" +"你 TestPyPI 账户中的 API 令牌。" #: ../source/specifications/pypirc.rst:107 msgid "Using another package index" -msgstr "" +msgstr "使用其他包索引" #: ../source/specifications/pypirc.rst:109 msgid "" @@ -22162,12 +25459,17 @@ msgid "" "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 "" +"要配置一个额外的仓库,你需要重新定义 ``index-servers`` 字段以包含该仓库的名称" +"。下面是一个为 PyPI、TestPyPI 和私有仓库配置的完整 :file:`$HOME/.pypirc` 示例" +":" #: ../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`` 字段,不如考虑使用由 Twine 安装的 `keyring`_ 来安全地保" +"存你的 API 令牌和密码:" #: ../source/specifications/pyproject-toml.rst:6 msgid "``pyproject.toml`` specification" @@ -22178,12 +25480,14 @@ 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 "" +msgstr "``pyproject.toml`` 文件充当打包相关工具(以及其他工具)的配置文件。" #: ../source/specifications/pyproject-toml.rst:17 msgid "" @@ -22193,16 +25497,22 @@ msgid "" "`. 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] `。其他表保" +"留供将来使用(针对特定工具的配置应使用 ``[tool]`` 表)。" #: ../source/specifications/pyproject-toml.rst:27 msgid "Declaring build system dependencies: the ``[build-system]`` table" -msgstr "" +msgstr "声明构建系统依赖项:``[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]`` 表声明为成功运行项目的构建系统而必须安装的任何 Python 级依" +"赖项。" #: ../source/specifications/pyproject-toml.rst:35 msgid "" @@ -22212,18 +25522,24 @@ msgid "" "dependencies required to execute the build system. The strings in this list " "follow the :ref:`version specifier specification `." msgstr "" +"``[build-system]`` 表用于存储与构建相关的数据。最初,该表只有一个有效的键,且" +"是该表的必填键:``requires``。此键的值必须是一个字符串列表,表示执行构建系统" +"所需的依赖项。该列表中的字符串遵循 :ref:`版本说明符规范 " +"`。" #: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" -msgstr "" +msgstr "以下是一个使用 ``setuptools`` 构建的项目的 ``[build-system]`` 表示例:" #: ../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 "" @@ -22235,6 +25551,10 @@ msgid "" "specified but is missing required fields then the tool should consider it an " "error." msgstr "" +"工具不应强制要求 ``[build-system]`` 表存在。``pyproject.toml`` 文件可以用于存" +"储构建相关数据以外的配置细节,因此没有 ``[build-system]`` 表也是合理的。如果" +"文件存在但缺少 ``[build-system]`` 表,则应使用上文规定的默认值。如果指定了该" +"表但缺少必填字段,则工具应将其视为错误。" #: ../source/specifications/pyproject-toml.rst:62 msgid "" @@ -22243,6 +25563,9 @@ msgid "" "the project should be built (e.g., no setup.py/setup.cfg or other build " "configuration files, and no ``[project]`` table)." msgstr "" +"如果文件存在、缺少 ``[build-system]`` 表,并且没有明确的迹象表明该项目应被构" +"建(例如没有 setup.py/setup.cfg 或其他构建配置文件,也没有 ``[project]`` 表)" +",工具可以选择向用户报错。" #: ../source/specifications/pyproject-toml.rst:67 msgid "" @@ -22250,16 +25573,18 @@ msgid "" "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" +"仅为说明目的,以下 `JSON Schema `_ 以类型化的方式表" +"示 TOML 文件所产生的数据,可匹配该数据格式:" #: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" -msgstr "" +msgstr "声明项目元数据:``[project]`` 表" #: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." -msgstr "" +msgstr "``[project]`` 表用于指定项目的 :ref:`核心元数据 `。" #: ../source/specifications/pyproject-toml.rst:109 msgid "" @@ -22270,6 +25595,10 @@ msgid "" "listed via the ``dynamic`` key (defined later in this specification) and " "represents metadata that a tool will later provide." msgstr "" +"元数据有两种:*静态* 元数据和 *动态* 元数据。静态元数据直接在 " +"``pyproject.toml`` 文件中指定,不能由工具指定或更改(这包括元数据所 *引用* 的" +"数据,例如元数据所引用的文件的内容)。动态元数据通过 ``dynamic`` 键列出(在本" +"规范后文定义),表示将由工具稍后提供的元数据。" #: ../source/specifications/pyproject-toml.rst:117 msgid "" @@ -22280,32 +25609,38 @@ msgid "" "any statically-specified entries. See the :ref:`dynamic ` key for details." msgstr "" +"值可以为任意条目组成的列表或表的键,可以静态指定,*同时* 列在 ``dynamic`` 中" +"。在这种情况下,静态给出的条目是固定的,构建后端只可以向其 *追加* 更多条目;" +"后端不得删除、重排或修改任何静态指定的条目。详情参见 :ref:`dynamic " +"` 键。" #: ../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]`` 表即隐含地表示 :term:`构建后端 ` 将动态提供" +"所有键。" #: ../source/specifications/pyproject-toml.rst:127 msgid "The only keys required to be statically defined are:" -msgstr "" +msgstr "必须静态定义的键只有:" #: ../source/specifications/pyproject-toml.rst:131 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" -msgstr "" +msgstr "这些键为必填键,但 *既* 可以静态指定,也可以列为动态:" #: ../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 "" +msgstr "所有其他键均视为可选,可以静态指定、列为动态,或不作指定。" #: ../source/specifications/pyproject-toml.rst:139 msgid "The complete list of keys allowed in the ``[project]`` table are:" -msgstr "" +msgstr "``[project]`` 表中允许使用的键的完整列表如下:" #: ../source/specifications/pyproject-toml.rst:141 #: ../source/specifications/pyproject-toml.rst:650 @@ -22321,7 +25656,7 @@ msgstr "``dependencies``" #: ../source/specifications/pyproject-toml.rst:145 #: ../source/specifications/pyproject-toml.rst:609 msgid "``dynamic``" -msgstr "" +msgstr "``dynamic``" #: ../source/specifications/pyproject-toml.rst:146 #: ../source/specifications/pyproject-toml.rst:653 @@ -22343,7 +25678,7 @@ msgstr "``import-names``" #: ../source/specifications/pyproject-toml.rst:568 #: ../source/specifications/pyproject-toml.rst:656 msgid "``import-namespaces``" -msgstr "" +msgstr "``import-namespaces``" #: ../source/specifications/pyproject-toml.rst:153 #: ../source/specifications/pyproject-toml.rst:659 @@ -22354,7 +25689,7 @@ msgstr "``maintainers``" #: ../source/specifications/pyproject-toml.rst:483 #: ../source/specifications/pyproject-toml.rst:660 msgid "``optional-dependencies``" -msgstr "" +msgstr "``optional-dependencies``" #: ../source/specifications/pyproject-toml.rst:168 #: ../source/specifications/pyproject-toml.rst:183 @@ -22362,55 +25697,63 @@ msgstr "" #: ../source/specifications/pyproject-toml.rst:252 #: ../source/specifications/pyproject-toml.rst:264 msgid "TOML_ type: string" -msgstr "" +msgstr "TOML_ 类型:字符串" #: ../source/specifications/pyproject-toml.rst:169 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" +"对应的 :ref:`核心元数据 ` 字段::ref:`Name `" #: ../source/specifications/pyproject-toml.rst:172 msgid "The name of the project." -msgstr "" +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:`核心元数据 ` 字段::ref:`Version `" #: ../source/specifications/pyproject-toml.rst:187 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." -msgstr "" +msgstr "项目的版本,其定义见 :ref:`版本说明符规范 `。" #: ../source/specifications/pyproject-toml.rst:190 msgid "Users SHOULD prefer to specify already-normalized versions." -msgstr "" +msgstr "你应该优先指定已规范化的版本。" #: ../source/specifications/pyproject-toml.rst:199 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" +"对应的 :ref:`核心元数据 ` 字段::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 "" +msgstr "对项目的单行摘要描述。如果其中包含多行,工具可以报错。" #: ../source/specifications/pyproject-toml.rst:211 msgid "TOML_ type: string or table" -msgstr "" +msgstr "TOML_ 类型:字符串或表" #: ../source/specifications/pyproject-toml.rst:212 msgid "" @@ -22418,10 +25761,13 @@ msgid "" "` and :ref:`Description-Content-Type `" msgstr "" +"对应的 :ref:`核心元数据 ` 字段::ref:`Description ` 和 :ref:`Description-Content-Type `" #: ../source/specifications/pyproject-toml.rst:216 msgid "The full description of the project (i.e. the README)." -msgstr "" +msgstr "项目的完整描述(即 README)。" #: ../source/specifications/pyproject-toml.rst:218 msgid "" @@ -22436,6 +25782,13 @@ msgid "" "``dynamic``. For all unrecognized suffixes when a content-type is not " "provided, tools MUST raise an error." msgstr "" +"此键接受字符串或表。如果它是字符串,那么它是一个相对于 ``pyproject.toml`` 的" +"路径,指向包含完整描述的文本文件。工具必须假定该文件的编码为 UTF-8。如果文件" +"路径以不区分大小写的 ``.md`` 后缀结尾,那么工具必须假定内容类型为 ``text/" +"markdown``。如果文件路径以不区分大小写的 ``.rst`` 结尾,那么工具必须假定内容" +"类型为 ``text/x-rst``。如果工具能识别比本规范更多的扩展名,它可以在不将该键指" +"定为 ``dynamic`` 的情况下为用户推断内容类型。对于所有未识别的后缀,如果未提供" +"内容类型,工具必须报错。" #: ../source/specifications/pyproject-toml.rst:229 msgid "" @@ -22445,6 +25798,9 @@ msgid "" "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`` 键的值为字符串," +"即完整描述本身。这些键互斥,因此如果元数据同时指定了这两个键,工具必须报错。" #: ../source/specifications/pyproject-toml.rst:236 msgid "" @@ -22457,22 +25813,31 @@ msgid "" "content-type as supported by the :ref:`core metadata `. " "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" +"在 ``readme`` 键中指定的表还可以有一个 ``content-type`` 键,其值为字符串,指" +"定完整描述的内容类型。如果元数据未在表中指定该键,工具必须报错。如果元数据未" +"指定 ``charset`` 参数,则假定其为 UTF-8。工具可以自行选择是否支持其他编码。工" +"具可以支持其他内容类型,并将其转换为 :ref:`核心元数据 ` 所支持" +"的内容类型。否则,对于不支持的内容类型,工具必须报错。" #: ../source/specifications/pyproject-toml.rst:253 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" +"对应的 :ref:`核心元数据 ` 字段::ref:`Requires-Python `" #: ../source/specifications/pyproject-toml.rst:256 msgid "The Python version requirements of the project." -msgstr "" +msgstr "项目对 Python 版本的要求。" #: ../source/specifications/pyproject-toml.rst:265 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" +"对应的 :ref:`核心元数据 ` 字段::ref:`License-Expression " +"`" #: ../source/specifications/pyproject-toml.rst:268 msgid "" @@ -22480,6 +25845,9 @@ msgid "" "Expression>`, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" +"文本字符串,为有效的 SPDX :term:`许可证表达式 `,具体规定" +"见 :doc:`/specifications/license-expression`。工具应该验证该表达式,并对其执" +"行大小写规范化。" #: ../source/specifications/pyproject-toml.rst:273 msgid "" @@ -22489,6 +25857,9 @@ msgid "" "expression will differ then it should either be specified as dynamic or not " "set at all." msgstr "" +"此键应该 **仅** 在以下情况下指定:构建后端使用 :file:`pyproject.toml` 创建的" +"任何及全部分发文件,其许可证表达式都与此处指定的相同。如果许可证表达式会有所" +"不同,则应该将其指定为动态,或者完全不设置。" #: ../source/specifications/pyproject-toml.rst:280 msgid "Legacy specification" @@ -22496,13 +25867,15 @@ msgstr "旧规范" #: ../source/specifications/pyproject-toml.rst:282 msgid "TOML_ type: table" -msgstr "" +msgstr "TOML_ 类型:表" #: ../source/specifications/pyproject-toml.rst:283 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" +"对应的 :ref:`核心元数据 ` 字段::ref:`License `" #: ../source/specifications/pyproject-toml.rst:286 msgid "" @@ -22513,11 +25886,15 @@ msgid "" "These keys are mutually exclusive, so a tool MUST raise an error if the " "metadata specifies both keys." msgstr "" +"该表可以包含两个键之一。``file`` 键的值为字符串,是一个相对于 " +":file:`pyproject.toml` 的文件路径,指向包含项目许可证的文件。工具必须假定该文" +"件的编码为 UTF-8。``text`` 键的值为字符串,即项目的许可证。这两个键互斥,因此" +"如果元数据同时指定了这两个键,工具必须报错。" #: ../source/specifications/pyproject-toml.rst:293 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." -msgstr "" +msgstr "该表的子键已被 :pep:`639` 弃用,改为使用字符串值。" #: ../source/specifications/pyproject-toml.rst:300 #: ../source/specifications/pyproject-toml.rst:383 @@ -22525,13 +25902,15 @@ msgstr "" #: ../source/specifications/pyproject-toml.rst:519 #: ../source/specifications/pyproject-toml.rst:570 msgid "TOML_ type: array of strings" -msgstr "" +msgstr "TOML_ 类型:字符串数组" #: ../source/specifications/pyproject-toml.rst:301 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" +"对应的 :ref:`核心元数据 ` 字段::ref:`License-File `" #: ../source/specifications/pyproject-toml.rst:304 msgid "" @@ -22541,39 +25920,47 @@ msgid "" "to file(s) containing licenses and other legal notices to be distributed " "with the package." msgstr "" +"一个数组,指定项目源码树中的路径(相对于项目根目录,即包含 " +":file:`pyproject.toml` 或 :file:`setup.py`、:file:`setup.cfg` 等传统项目配置" +"文件的目录),这些路径指向的文件包含许可证以及其他将随软件包一起分发的法律声" +"明。" #: ../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 "" +msgstr "模式相对于包含 :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 "" +"工具必须假定许可证文件内容是有效的 UTF-8 编码文本,并且应该对此进行验证,如果" +"不是则报错。" #: ../source/specifications/pyproject-toml.rst:318 msgid "Build tools:" -msgstr "" +msgstr "构建工具:" #: ../source/specifications/pyproject-toml.rst:320 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." -msgstr "" +msgstr "必须在所有分发归档文件中包含与所列模式匹配的所有文件。" #: ../source/specifications/pyproject-toml.rst:322 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." -msgstr "" +msgstr "必须在核心元数据的 License-File 字段下列出每个匹配的文件路径。" #: ../source/specifications/pyproject-toml.rst:325 msgid "" @@ -22583,10 +25970,14 @@ msgid "" "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 "" +"如果 ``license-files`` 键存在且其值被设置为空数组,那么工具不得包含任何许可证" +"文件,也不得报错。如果未定义 ``license-files`` 键,工具可以自行决定如何处理许" +"可证文件。例如,它们可以选择不包含任何文件,或者使用自己的逻辑在分发包中查找" +"合适的文件。" #: ../source/specifications/pyproject-toml.rst:339 msgid "TOML_ type: Array of inline tables with string keys and values" -msgstr "" +msgstr "TOML_ 类型:键和值均为字符串的内联表数组" #: ../source/specifications/pyproject-toml.rst:340 msgid "" @@ -22595,6 +25986,10 @@ msgid "" "email>`, :ref:`Maintainer `, and :ref:`Maintainer-" "email `" msgstr "" +"对应的 :ref:`核心元数据 ` 字段::ref:`Author `、:ref:`Author-email `、:ref:`Maintainer " +"` 和 :ref:`Maintainer-email `" #: ../source/specifications/pyproject-toml.rst:346 msgid "" @@ -22602,12 +25997,14 @@ msgid "" "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" +"被视为项目“作者”的人员或组织。其确切含义并无硬性定义:它列出的可以是最初或主" +"要的作者、当前的维护者,或者软件包的所有者。" #: ../source/specifications/pyproject-toml.rst:351 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." -msgstr "" +msgstr "“maintainers”键与“authors”键类似,其确切含义并无硬性定义。" #: ../source/specifications/pyproject-toml.rst:354 msgid "" @@ -22617,17 +26014,23 @@ msgid "" "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 "" +"这些键接受一个由表组成的数组,每个表有 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 "" +msgstr "使用这些数据填写 :ref:`核心元数据 ` 的方式如下:" #: ../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 "" @@ -22635,6 +26038,8 @@ msgid "" "metadata-author-email>` or :ref:`Maintainer-email ` as appropriate." msgstr "" +"如果只提供了 ``email``,则该值视情况填入 :ref:`Author-email ` 或 :ref:`Maintainer-email `。" #: ../source/specifications/pyproject-toml.rst:371 msgid "" @@ -22642,30 +26047,37 @@ msgid "" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" +"如果同时提供了 ``email`` 和 ``name``,则该值视情况以 ``{name} <{email}>`` 的" +"格式填入 :ref:`Author-email ` 或 " +":ref:`Maintainer-email `。" #: ../source/specifications/pyproject-toml.rst:375 msgid "Multiple values should be separated by commas." -msgstr "" +msgstr "多个值应该用逗号分隔。" #: ../source/specifications/pyproject-toml.rst:384 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" +"对应的 :ref:`核心元数据 ` 字段::ref:`Keywords `" #: ../source/specifications/pyproject-toml.rst:387 msgid "The keywords for the project." -msgstr "" +msgstr "项目的关键词。" #: ../source/specifications/pyproject-toml.rst:396 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" +"对应的 :ref:`核心元数据 ` 字段::ref:`Classifier `" #: ../source/specifications/pyproject-toml.rst:399 msgid "Trove classifiers which apply to the project." -msgstr "" +msgstr "适用于该项目的 Trove 分类器。" #: ../source/specifications/pyproject-toml.rst:401 msgid "" @@ -22674,16 +26086,21 @@ msgid "" "the ``license`` string value (translating to ``License-Expression`` metadata " "field) and the ``License ::`` classifiers are used." msgstr "" +"``License ::`` 分类器的使用已被弃用,工具可以发出警告,将这一情况告知用户。如" +"果同时使用了 ``license`` 字符串值(对应 ``License-Expression`` 元数据字段)" +"和 ``License ::`` 分类器,构建工具可以报错。" #: ../source/specifications/pyproject-toml.rst:413 msgid "TOML_ type: table with keys and values of strings" -msgstr "" +msgstr "TOML_ 类型:键和值均为字符串的表" #: ../source/specifications/pyproject-toml.rst:414 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" +"对应的 :ref:`核心元数据 ` 字段::ref:`Project-URL `" #: ../source/specifications/pyproject-toml.rst:417 msgid "" @@ -22691,20 +26108,25 @@ msgid "" "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" +"一个由 URL 构成的表,其中键是 URL 的标签,值是 URL 本身。在处理元数据以供展示" +"时,请参见 :ref:`well-known-project-urls` 了解规范化规则和知名标签的相关规则" +"。" #: ../source/specifications/pyproject-toml.rst:427 msgid "Entry points" -msgstr "" +msgstr "入口点" #: ../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 "" +msgstr ":ref:`入口点规范 `" #: ../source/specifications/pyproject-toml.rst:433 msgid "" @@ -22713,6 +26135,8 @@ msgid "" "specification `. The key of the table is the name of the entry " "point and the value is the object reference." msgstr "" +"有三个与入口点相关的表。``[project.scripts]`` 表对应 :ref:`入口点规范 ` 中的 ``console_scripts`` 组。该表的键是入口点的名称,值是对象引用。" #: ../source/specifications/pyproject-toml.rst:439 msgid "" @@ -22720,6 +26144,8 @@ msgid "" "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" +"``[project.gui-scripts]`` 表对应 :ref:`入口点规范 ` 中的 " +"``gui_scripts`` 组。其格式与 ``[project.scripts]`` 相同。" #: ../source/specifications/pyproject-toml.rst:443 msgid "" @@ -22728,6 +26154,9 @@ msgid "" "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]`` 表是一个表的集合。每个子表的名称是一个入口点组。其" +"键和值的语义与 ``[project.scripts]`` 相同。用户不得创建嵌套的子表,而应让入口" +"点组只保留一层深度。" #: ../source/specifications/pyproject-toml.rst:449 msgid "" @@ -22736,36 +26165,47 @@ msgid "" "points.gui_scripts]`` table, as they would be ambiguous in the face of " "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" +"如果元数据定义了 ``[project.entry-points.console_scripts]`` 或 " +"``[project.entry-points.gui_scripts]`` 表,构建后端必须报错,因为它们分别会" +"与 ``[project.scripts]`` 和 ``[project.gui-scripts]`` 产生歧义。" #: ../source/specifications/pyproject-toml.rst:461 msgid "" "TOML_ type: Array of :ref:`dependency specifier ` " "strings (``dependencies``)" msgstr "" +"TOML_ 类型:由 :ref:`依赖说明符 ` 字符串组成的数组" +"(``dependencies``)" #: ../source/specifications/pyproject-toml.rst:463 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist `" msgstr "" +"对应的 :ref:`核心元数据 ` 字段::ref:`Requires-Dist `" #: ../source/specifications/pyproject-toml.rst:466 msgid "" "``dependencies`` lists the expected dependencies of the project as an array " "of strings." -msgstr "" +msgstr "``dependencies`` 以字符串数组的形式列出项目的预期依赖项。" #: ../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 "" +"每个字符串表示项目的一个依赖项,且必须被格式化为有效的 :ref:`依赖说明符 " +"`。" #: ../source/specifications/pyproject-toml.rst:472 msgid "" "Each string maps directly to a :ref:`Requires-Dist ` entry." msgstr "" +"每个字符串都直接对应一条 :ref:`Requires-Dist ` " +"条目。" #: ../source/specifications/pyproject-toml.rst:475 msgid "" @@ -22773,12 +26213,16 @@ msgid "" "but may still contain environment markers that cause them to be skipped in " "some environments." msgstr "" +"此数组中列出的依赖项总会被纳入安装考虑,但仍可能包含环境标记,导致它们在某些" +"环境中被跳过。" #: ../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_ 类型:字符串键映射到 :ref:`依赖说明符 ` 字符串数" +"组的表(``optional-dependencies``)" #: ../source/specifications/pyproject-toml.rst:487 msgid "" @@ -22786,6 +26230,9 @@ msgid "" "Dist ` and :ref:`Provides-Extra `" msgstr "" +"对应的 :ref:`核心元数据 ` 字段::ref:`Requires-Dist ` 和 :ref:`Provides-Extra `" #: ../source/specifications/pyproject-toml.rst:491 msgid "" @@ -22794,6 +26241,9 @@ msgid "" "``dependencies`` array (the strings in the arrays must be " "valid :ref:`dependency specifiers `)." msgstr "" +"``optional-dependencies`` 是一个表,其中每个键指定一个附加功能(extra),其值" +"是一个字符串数组,格式与 ``dependencies`` 数组相同(数组中的字符串必须是有效" +"的 :ref:`依赖说明符 `)。" #: ../source/specifications/pyproject-toml.rst:496 msgid "" @@ -22802,6 +26252,10 @@ msgid "" "corresponding :ref:`Requires-Dist ` entry for " "the matching :ref:`Provides-Extra ` metadata." msgstr "" +"这些键必须是 :ref:`Provides-Extra ` 的有效值。" +"这样,数组中的每个值都会成为匹配的 :ref:`Provides-Extra ` 元数据所对应的一条 :ref:`Requires-Dist ` 条目。" #: ../source/specifications/pyproject-toml.rst:503 msgid "" @@ -22810,6 +26264,9 @@ msgid "" "the extra name. Optional dependencies are thus only considered for " "installation if installation if the associated extra name is requested." msgstr "" +"这些依赖项的可选性是通过修改相关 ``Requires-Dist`` 条目上的环境标记子句来记录" +"的,使其检查附加功能名称。因此,只有当请求了相应的附加功能名称时,可选依赖项" +"才会被纳入安装考虑。" #: ../source/specifications/pyproject-toml.rst:508 msgid "" @@ -22820,12 +26277,19 @@ 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 "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" +"对应的 :ref:`核心元数据 ` 字段::ref:`Import-Name `" #: ../source/specifications/pyproject-toml.rst:523 msgid "" @@ -22835,6 +26299,9 @@ msgid "" "\"private\" (e.g. ``\"; private\"``) with any amount of whitespace " "surrounding the semicolon." msgstr "" +"一个字符串数组,指定项目在安装后独占提供的导入名称。每个字符串必须是有效的 " +"Python 标识符,也可以为空。导入名称后面可以跟一个分号和术语“private”(例如 " +"``\"; private\"``),分号两侧可以有任意数量的空白字符。" #: ../source/specifications/pyproject-toml.rst:528 msgid "" @@ -22850,6 +26317,14 @@ msgid "" "expected. As well, projects SHOULD list all import names, public or private, " "using the ``; private`` modifier as appropriate." msgstr "" +"项目应该列出其独占提供的所有最短导入名称。如果这些最短名称中有带点的名称,那" +"么从该名称到顶层名称之间的所有中间名称也应该适当地列在 ``import-names`` 和/" +"或 ``import-namespaces`` 中。例如,一个名为 spam、包含多个子模块的单一软件包" +"的项目,只需列出 ``project.import-names = [\"spam\"]``。而列出 " +"``spam.bacon.eggs`` 的项目,还需要在 ``import-names`` 和 ``import-" +"namespaces`` 中适当地处理 ``spam`` 和 ``spam.bacon``。列出所有名称可以起到校" +"验作用,确认导入名称的意图符合预期。此外,项目应该视情况使用 ``; private`` 修" +"饰符列出所有导入名称,无论公开还是私有。" #: ../source/specifications/pyproject-toml.rst:540 #: ../source/specifications/pyproject-toml.rst:589 @@ -22857,6 +26332,8 @@ 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 "" @@ -22864,13 +26341,15 @@ msgid "" "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" +"项目可以将 ``import-names`` 设置为空数组,表示该项目没有任何导入名称(即分发" +"文件中不存在任何类型的 Python 模块)。" #: ../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 "" +msgstr "如果用户在 ``project.dynamic`` 中声明了该键,构建后端可以支持动态计算该值。" #: ../source/specifications/pyproject-toml.rst:550 msgid "Examples:" @@ -22881,6 +26360,8 @@ msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" +"对应的 :ref:`核心元数据 ` 字段::ref:`Import-Namespace `" #: ../source/specifications/pyproject-toml.rst:574 msgid "" @@ -22891,6 +26372,10 @@ msgid "" "surrounding the semicolon. Note that unlike ``import-names``, ``import-" "namespaces`` CANNOT be an empty array." msgstr "" +"一个字符串数组,指定项目在安装后提供(但并非独占提供)的导入名称。每个字符串" +"必须是有效的 Python 标识符。导入名称后面可以跟一个分号和术语“private”(例如 " +"``\"; private\"``),分号两侧可以有任意数量的空白字符。请注意,与 ``import-" +"names`` 不同,``import-namespaces`` 不能是空数组。" #: ../source/specifications/pyproject-toml.rst:580 msgid "" @@ -22899,6 +26384,9 @@ msgid "" "intervening names from that name to the top-level name should also be listed " "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" +"项目应该列出其独占提供的所有最短导入名称。如果这些最短名称中有带点的名称,那" +"么从该名称到顶层名称之间的所有中间名称也应该适当地列在 ``import-names`` 和/" +"或 ``import-namespaces`` 中。" #: ../source/specifications/pyproject-toml.rst:585 msgid "" @@ -22907,6 +26395,9 @@ msgid "" "import name in ``import-namespaces`` can be installed together without " "shadowing each other." msgstr "" +"此字段用于命名空间包的情形,即多个项目可以共同贡献同一个导入命名空间。在 " +"``import-namespaces`` 中列出相同导入名称的各个项目,可以安装在一起而不会相互" +"遮蔽。" #: ../source/specifications/pyproject-toml.rst:595 msgid "Example:" @@ -22914,13 +26405,15 @@ msgstr "例子:" #: ../source/specifications/pyproject-toml.rst:611 msgid "TOML_ type: array of string" -msgstr "" +msgstr "TOML_ 类型:字符串数组" #: ../source/specifications/pyproject-toml.rst:612 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" +"对应的 :ref:`核心元数据 ` 字段::ref:`Dynamic `" #: ../source/specifications/pyproject-toml.rst:615 msgid "" @@ -22929,18 +26422,21 @@ msgid "" "delineates which metadata is purposefully unspecified and expected to stay " "unspecified compared to being provided via tooling later on." msgstr "" +"指定本 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 "" +msgstr "构建后端必须遵循静态指定的元数据(即元数据没有在 ``dynamic`` 中列出该键)。" #: ../source/specifications/pyproject-toml.rst:623 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." -msgstr "" +msgstr "如果元数据在 ``dynamic`` 中指定了 ``name``,构建后端必须报错。" #: ../source/specifications/pyproject-toml.rst:625 msgid "" @@ -22950,6 +26446,9 @@ msgid "" "should not be possible for a required key to not be listed somehow in the " "``[project]`` table)." msgstr "" +"如果 :ref:`核心元数据 ` 规范将某个字段标记为“Required”,那么元" +"数据必须静态指定该键,或者在 ``dynamic`` 中列出该键(否则构建后端必须报错,也" +"就是说,不应该出现必需的键未以某种方式列在 ``[project]`` 表中的情况)。" #: ../source/specifications/pyproject-toml.rst:630 msgid "" @@ -22957,6 +26456,8 @@ msgid "" "\"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:`核心元数据 ` 规范将某个字段标记为“Optional”,且预期" +"构建后端会在稍后提供该键的数据,那么元数据可以在 ``dynamic`` 中列出该键。" #: ../source/specifications/pyproject-toml.rst:634 msgid "" @@ -22964,6 +26465,8 @@ 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`` 中列出了该键,构建后端必须报错" +",*除非* 该键表示的是可扩展的列表或任意表(如下所列)。" #: ../source/specifications/pyproject-toml.rst:637 msgid "" @@ -22972,6 +26475,9 @@ msgid "" "``dynamic`` is the only way to allow a tool to fill in metadata and the user " "must opt into the filling in)." msgstr "" +"如果元数据没有在 ``dynamic`` 中列出某个键,那么构建后端不能代表用户填写所需的" +"元数据(也就是说,``dynamic`` 是允许工具填写元数据的唯一途径,用户必须自行选" +"择接受这种填写)。" #: ../source/specifications/pyproject-toml.rst:641 msgid "" @@ -22979,6 +26485,8 @@ msgid "" "``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 "" +"如果元数据在 ``dynamic`` 中指定了某个键,但构建后端无法确定该键的数据,那么构" +"建后端必须报错(如果确定省略该数据才是准确的值,那么省略是可以接受的)。" #: ../source/specifications/pyproject-toml.rst:646 msgid "" @@ -22986,10 +26494,12 @@ msgid "" "statically and listed in ``dynamic`` simultaneously. The keys fitting that " "description are:" msgstr "" +"值属于列表或任意条目表的键,可以同时被静态指定并列在 ``dynamic`` 中。符合这一" +"描述的键有:" #: ../source/specifications/pyproject-toml.rst:664 msgid "When such a key is specified both statically and listed in ``dynamic``:" -msgstr "" +msgstr "当这样的键既被静态指定、又列在 ``dynamic`` 中时:" #: ../source/specifications/pyproject-toml.rst:667 msgid "" @@ -22999,16 +26509,22 @@ 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" -msgstr "" +msgstr "任意工具配置:``[tool]`` 表" #: ../source/specifications/pyproject-toml.rst:682 msgid "" @@ -23017,6 +26533,10 @@ msgid "" "use a sub-table within ``[tool]``, e.g. the `flit `_ tool would store its configuration in ``[tool.flit]``." msgstr "" +"``[tool]`` 表是任何与你的 Python 项目相关的工具(而不仅仅是构建工具)让用户指" +"定配置数据的地方,只要它们使用 ``[tool]`` 之内的子表即可。例如,`flit " +"`_ 工具会将其配置存储在 ``[tool.flit]`` 中" +"。" #: ../source/specifications/pyproject-toml.rst:688 msgid "" @@ -23025,6 +26545,9 @@ msgid "" "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 "" +"需要一种机制在 ``tool.*`` 命名空间中分配名称,以确保不同项目不会试图使用同一" +"个子表而发生冲突。我们的规则是:当且仅当项目在 Cheeseshop/PyPI 上拥有 " +"``$NAME`` 的条目时,该项目才可以使用子表 ``tool.$NAME``。" #: ../source/specifications/pyproject-toml.rst:699 msgid "" @@ -23032,30 +26555,38 @@ msgid "" "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" +"2016 年 5 月:``pyproject.toml`` 文件的初始规范经 :pep:`518` 获得批准,当时仅" +"包含带 ``requires`` 键的 ``[build-system]`` 表和 ``[tool]`` 表。" #: ../source/specifications/pyproject-toml.rst:703 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." -msgstr "" +msgstr "2020 年 11 月:``[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 年 12 月:通过 :pep:`639`,重新定义了 ``license`` 键,新增了 ``license-" +"files`` 键,并弃用了 ``License::`` 分类器。" #: ../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 年 9 月:澄清 ``license`` 键适用于从 :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 年 10 月:通过 :pep:`794` 新增了 ``import-names`` 和 ``import-" +"namespaces`` 键。" #: ../source/specifications/pyproject-toml.rst:718 msgid "" @@ -23063,16 +26594,20 @@ msgid "" "listed in ``dynamic``, with build back-ends only able to append entries, " "through :pep:`808`." msgstr "" +"2026 年 5 月:通过 :pep:`808`,允许值为列表或表的键在静态指定的同时也列在 " +"``dynamic`` 中,而构建后端只能向其追加条目。" #: ../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 月:将自引用附加功能(self-referential extra)记载为众多现代 " +"Python 包管理器支持的特性。" #: ../source/specifications/recording-installed-packages.rst:7 msgid "Recording installed projects" -msgstr "" +msgstr "记录已安装的项目" #: ../source/specifications/recording-installed-packages.rst:9 msgid "" @@ -23081,6 +26616,9 @@ msgid "" "metadata format allows tools to query, manage or uninstall projects, " "regardless of how they were installed." msgstr "" +"本文档规定了一种通用格式,用于记录环境中已安装的 Python :term:`项目 " +"` 的信息。统一的元数据格式让工具能够查询、管理或卸载项目,而无需关心它们是如" +"何安装的。" #: ../source/specifications/recording-installed-packages.rst:14 msgid "" @@ -23090,6 +26628,9 @@ msgid "" "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 "" +"几乎所有信息都是可选的。这使得 Python 生态系统之外的工具(例如 Linux 软件包管" +"理器)能够最大限度地与 Python 工具集成。例如,即使安装工具难以按照 Python 工" +"具专用的格式提供已安装文件的列表,它也应该记录所安装项目的名称和版本。" #: ../source/specifications/recording-installed-packages.rst:25 msgid "" @@ -23097,6 +26638,8 @@ msgid "" "install a \"``.dist-info``\" directory located alongside importable modules " "and packages (commonly, the ``site-packages`` directory)." msgstr "" +"从分发包安装的每个项目,除了文件之外,还必须安装一个\"``.dist-info``\"目录," +"该目录与可导入的模块和包位于同一位置(通常是 ``site-packages`` 目录)。" #: ../source/specifications/recording-installed-packages.rst:29 msgid "" @@ -23109,6 +26652,12 @@ msgid "" "exactly one dash (``-``) character in its stem, separating the ``name`` and " "``version`` fields." msgstr "" +"该目录以 ``{name}-{version}.dist-info`` 的形式命名,其中 ``name`` 和 " +"``version`` 字段对应 :ref:`core-metadata`。这两个字段都必须经过规范化(参见 " +":ref:`名称规范化规范 ` 和 :ref:`版本规范化规范 `),并将其中的连字符(``-``)替换为下划线(``_``)" +",这样,``.dist-info`` 目录的主干名中就始终恰好包含一个连字符(``-``),用于" +"分隔 ``name`` 和 ``version`` 字段。" #: ../source/specifications/recording-installed-packages.rst:37 msgid "" @@ -23120,6 +26669,11 @@ msgid "" "both ``name`` and ``version`` fields using the rules described above, and " "existing tools are encouraged to start normalizing those fields." msgstr "" +"历史上,一些工具未能替换 ``name`` 字段中的点号或对其大小写进行规范化,也可能" +"未对 ``version`` 字段执行规范化。使用 ``.dist-info`` 目录的工具应该预期这些字" +"段可能未经规范化,并将其视为与规范化后的对应形式等价。写入 ``.dist-info`` 目" +"录的新工具必须按照上述规则对 ``name`` 和 ``version`` 两个字段进行规范化,同时" +"鼓励现有工具开始对这些字段进行规范化。" #: ../source/specifications/recording-installed-packages.rst:47 msgid "" @@ -23132,33 +26686,38 @@ msgid "" "API for such tools to consume, so tools can have access to the unnormalized " "name when displaying distribution information." msgstr "" +"``.dist-info`` 目录的名称经过格式化,以便在作为文件系统路径时能无歧义地表示一" +"个分发包。向用户展示分发包名称的工具应该避免使用规范化后的名称,而应展示所指" +"定的名称(在名称被解析为已安装的软件包之前需要使用时),或读取核心元数据中的" +"相应字段,因为其中列出的值未经转义,能准确反映分发包。库应该提供供此类工具使" +"用的 API,以便工具在显示分发包信息时能够访问未规范化的名称。" #: ../source/specifications/recording-installed-packages.rst:56 msgid "" "This ``.dist-info`` directory may contain the following files, described in " "detail below:" -msgstr "" +msgstr "该 ``.dist-info`` 目录可以包含以下文件,下文将详细描述这些文件:" #: ../source/specifications/recording-installed-packages.rst:59 msgid "``METADATA``: contains project metadata" -msgstr "" +msgstr "``METADATA``:包含项目元数据" #: ../source/specifications/recording-installed-packages.rst:60 msgid "``RECORD``: records the list of installed files." -msgstr "" +msgstr "``RECORD``:记录已安装文件的列表。" #: ../source/specifications/recording-installed-packages.rst:61 msgid "" "``INSTALLER``: records the name of the tool used to install the project." -msgstr "" +msgstr "``INSTALLER``:记录安装该项目所用工具的名称。" #: ../source/specifications/recording-installed-packages.rst:62 msgid "``entry_points.txt``: see :ref:`entry-points` for details" -msgstr "" +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 "" +msgstr "``direct_url.json``:详情参见 :ref:`direct-url`" #: ../source/specifications/recording-installed-packages.rst:65 msgid "" @@ -23166,20 +26725,22 @@ msgid "" "installing tool's discretion. Additional installer-specific files may be " "present." msgstr "" +"``METADATA`` 文件是必需的。所有其他文件均可由安装工具自行决定是否省略。此外," +"还可以存在安装工具特有的其他文件。" #: ../source/specifications/recording-installed-packages.rst:69 msgid "" "This :file:`.dist-info/` directory may contain the following directories, " "described in detail below:" -msgstr "" +msgstr "该 :file:`.dist-info/` 目录可以包含以下目录,下文将详细描述:" #: ../source/specifications/recording-installed-packages.rst:72 msgid ":file:`licenses/`: contains license files." -msgstr "" +msgstr ":file:`licenses/`:包含许可证文件。" #: ../source/specifications/recording-installed-packages.rst:73 msgid ":file:`sboms/`: contains Software Bill-of-Materials files (SBOMs)." -msgstr "" +msgstr ":file:`sboms/`:包含软件物料清单(SBOM)文件。" #: ../source/specifications/recording-installed-packages.rst:77 msgid "" @@ -23188,6 +26749,9 @@ msgid "" "Such files may be copied to the ``.dist-info`` directory of an installed " "project." msgstr "" +":ref:`binary-distribution-format` 规范描述了 :term:`Wheel` 的 ``.dist-info`` " +"目录中可能出现的其他文件。这类文件可以复制到已安装项目的 ``.dist-info`` 目录" +"中。" #: ../source/specifications/recording-installed-packages.rst:82 msgid "" @@ -23196,16 +26760,21 @@ msgid "" "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 "" +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`` 文件包含 :ref:`core-metadata` 规范(版本 1.1 或更高)中所述的元" +"数据。" #: ../source/specifications/recording-installed-packages.rst:94 msgid "" @@ -23213,40 +26782,44 @@ msgid "" "core metadata is not available, installers must report an error and fail to " "install the project." msgstr "" +"``METADATA`` 文件是必需的。如果无法创建该文件,或者必需的核心元数据不可用,安" +"装工具必须报告错误并停止安装该项目。" #: ../source/specifications/recording-installed-packages.rst:100 msgid "The RECORD file" -msgstr "" +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 "" +msgstr "CSV 方言必须能够用 Python 的 ``csv`` 模块的默认 ``reader`` 读取:" #: ../source/specifications/recording-installed-packages.rst:108 msgid "field delimiter: ``,`` (comma)," -msgstr "" +msgstr "字段分隔符: ``,`` (逗号);" #: ../source/specifications/recording-installed-packages.rst:109 msgid "quoting char: ``\"`` (straight double quote)," -msgstr "" +msgstr "引用字符: ``\"`` (直双引号);" #: ../source/specifications/recording-installed-packages.rst:110 msgid "line terminator: either ``\\r\\n`` or ``\\n``." -msgstr "" +msgstr "行结束符: ``\\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 "" +msgstr "每条记录由三个元素组成:文件的 **路径**、内容的 **哈希** 及其 **大小**。" #: ../source/specifications/recording-installed-packages.rst:115 msgid "" @@ -23255,6 +26828,9 @@ msgid "" "Windows, directories may be separated either by forward- or backslashes (``/" "`` or ``\\``)." msgstr "" +"*path* 既可以是绝对路径,也可以是相对于包含 ``.dist-info`` 目录的目录(通常" +"为 ``site-packages`` 目录)的相对路径。在 Windows 上,目录分隔符既可以是正斜" +"杠 ``/``,也可以是反斜杠 ``\\``。" #: ../source/specifications/recording-installed-packages.rst:120 msgid "" @@ -23264,12 +26840,16 @@ msgid "" "urlsafe-base64-nopad encoding (:py:func:`base64.urlsafe_b64encode(digest) " "` with trailing ``=`` removed)." msgstr "" +"*hash* 为空字符串,或为 :py:data:`hashlib.algorithms_guaranteed` 中某个哈希算" +"法的名称,后跟等号字符 ``=`` 以及使用 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 "" +msgstr "*size* 为空字符串,或为文件的字节大小,以十进制整数表示。" #: ../source/specifications/recording-installed-packages.rst:128 msgid "" @@ -23279,6 +26859,9 @@ msgid "" "is discouraged, as it prevents verifying the integrity of the installed " "project." msgstr "" +"任何文件的 *hash* 和 *size* 字段中的一个或两个都可以留空。通常,``.pyc`` 文件" +"和 ``RECORD`` 文件本身的条目中 *hash* 和 *size* 为空。对于其他文件,不建议省" +"略这些信息,因为这将导致无法验证已安装项目的完整性。" #: ../source/specifications/recording-installed-packages.rst:134 msgid "" @@ -23288,6 +26871,10 @@ msgid "" "directory (including the ``RECORD`` file itself) must be listed. Directories " "should not be listed." msgstr "" +"如果存在 ``RECORD`` 文件,则它必须列出该项目的全部已安装文件,但与 " +"``RECORD`` 中所列 ``.py`` 文件对应的 ``.pyc`` 文件除外,它们是可选的。需要注" +"意的是,``.dist-info`` 目录的内容(包括 ``RECORD`` 文件本身在内)必须列出。不" +"应列出目录。" #: ../source/specifications/recording-installed-packages.rst:141 msgid "" @@ -23295,10 +26882,13 @@ msgid "" "in ``RECORD``, all ``.pyc`` files (of all optimization levels) corresponding " "to removed ``.py`` files, and any directories emptied by the uninstallation." msgstr "" +"要完全卸载一个软件包,工具需要删除 ``RECORD`` 中列出的所有文件、与被删除的 " +"``.py`` 文件对应的所有 ``.pyc`` 文件(涵盖所有优化级别),以及因卸载而变空的" +"任何目录。" #: ../source/specifications/recording-installed-packages.rst:146 msgid "Here is an example snippet of a possible ``RECORD`` file::" -msgstr "" +msgstr "下面是一个可能的 ``RECORD`` 文件片段示例::" #: ../source/specifications/recording-installed-packages.rst:165 msgid "" @@ -23307,6 +26897,9 @@ msgid "" "apply to tools that rely on other sources of information, such as system " "package managers in Linux distros.)" msgstr "" +"如果 ``RECORD`` 文件缺失,依赖 ``.dist-info`` 的工具不得尝试卸载或升级该软件" +"包。(这一限制不适用于依赖其他信息来源的工具,例如 Linux 发行版中的系统软件包" +"管理器。)" #: ../source/specifications/recording-installed-packages.rst:172 msgid "" @@ -23317,10 +26910,14 @@ msgid "" "``RECORD`` must be updated, otherwise uninstalling the package will leave " "unlisted files in place (possibly resulting in a zombie namespace package)." msgstr "" +"*强烈不建议* 已安装的软件包修改自身(例如把缓存文件存放在 ``site-packages`` " +"中自己的命名空间之下)。对 ``site-packages`` 内部的更改应该交由 pip 之类的专" +"用安装工具处理。但如果软件包确实以这种方式被修改,那么 ``RECORD`` 必须更新," +"否则卸载该软件包时会遗留未被列出的文件(可能会产生僵尸命名空间包)。" #: ../source/specifications/recording-installed-packages.rst:181 msgid "The INSTALLER file" -msgstr "" +msgstr "INSTALLER 文件" #: ../source/specifications/recording-installed-packages.rst:183 msgid "" @@ -23329,14 +26926,17 @@ msgid "" "``INSTALLER`` should contain the command name. Otherwise, it should contain " "a printable ASCII string." msgstr "" +"如果存在,则 ``INSTALLER`` 是一个单行文本文件,其中写明了安装该项目所用的工具" +"。如果安装工具可以从命令行执行,那么 ``INSTALLER`` 应该包含该命令的名称;否则" +",它应该包含一个可打印的 ASCII 字符串。" #: ../source/specifications/recording-installed-packages.rst:189 msgid "The file can be terminated by zero or more ASCII whitespace characters." -msgstr "" +msgstr "该文件末尾可以带有零个或多个 ASCII 空白字符。" #: ../source/specifications/recording-installed-packages.rst:191 msgid "Here are examples of two possible ``INSTALLER`` files::" -msgstr "" +msgstr "下面是两个可能的 ``INSTALLER`` 文件示例::" #: ../source/specifications/recording-installed-packages.rst:199 msgid "" @@ -23345,10 +26945,13 @@ msgid "" "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 "" +msgstr "entry_points.txt 文件" #: ../source/specifications/recording-installed-packages.rst:208 msgid "" @@ -23357,28 +26960,32 @@ msgid "" "scripts and other applications that the installer has made available for " "execution." msgstr "" +"安装工具可以创建该文件,用于标明软件包中包含供其他代码发现和使用的组件的情况" +",这些组件包括安装工具已提供、可供执行的控制台脚本和其他应用程序。" #: ../source/specifications/recording-installed-packages.rst:213 msgid "Its detailed specification is at :ref:`entry-points`." -msgstr "" +msgstr "其详细规范见 :ref:`entry-points`。" #: ../source/specifications/recording-installed-packages.rst:217 msgid "The direct_url.json file" -msgstr "" +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 "" +"当根据指定了直接 URL 引用(包括 VCS URL)的需求安装分发包时,安装工具必须创建" +"该文件。" #: ../source/specifications/recording-installed-packages.rst:225 msgid "Its detailed specification is at :ref:`direct-url`." -msgstr "" +msgstr "其详细规范见 :ref:`direct-url`。" #: ../source/specifications/recording-installed-packages.rst:229 msgid "The :file:`licenses/` subdirectory" -msgstr "" +msgstr ":file:`licenses/` 子目录" #: ../source/specifications/recording-installed-packages.rst:231 msgid "" @@ -23389,6 +26996,11 @@ msgid "" "paths relative to the :file:`licenses/` directory. Any files in this " "directory MUST be copied from wheels by the install tools." msgstr "" +"如果元数据版本为 2.4 或更高,并且指定了一个或多个 ``License-File`` 字段,那" +"么 :file:`.dist-info/` 目录必须包含一个 :file:`licenses/` 子目录,该子目录必" +"须按各自的路径(相对于 :file:`licenses/` 目录)包含 :file:`METADATA` 文件中 " +"``License-File`` 字段所列出的文件。此目录中的任何文件都必须由安装工具从 " +"wheel 中复制。" #: ../source/specifications/recording-installed-packages.rst:240 msgid "The :file:`sboms/` subdirectory" @@ -23401,10 +27013,13 @@ msgid "" "within the installed package. Any files in this directory MUST be copied " "from wheels by the install tools." msgstr "" +":file:`.dist-info/sboms/` 目录中包含的所有文件都必须是软件物料清单(SBOM)文" +"件,用于描述已安装软件包中所含的软件。此目录中的任何文件都必须由安装工具从 " +"wheel 中复制。" #: ../source/specifications/recording-installed-packages.rst:249 msgid "Intentionally preventing changes to installed packages" -msgstr "" +msgstr "有意阻止对已安装软件包的更改" #: ../source/specifications/recording-installed-packages.rst:251 msgid "" @@ -23414,10 +27029,13 @@ msgid "" "not used to uninstall or otherwise modify that installed package, as doing " "so may cause compatibility problems with the wider environment." msgstr "" +"在某些情况下(例如除了 Python 生态系统的依赖项之外还需要管理外部依赖项时)," +"将软件包安装到 Python 环境中的工具最好能够确保其他工具不会被用来卸载或以其他" +"方式修改该已安装的软件包,因为这样做可能会给更广泛的环境带来兼容性问题。" #: ../source/specifications/recording-installed-packages.rst:257 msgid "To achieve this, affected tools should take the following steps:" -msgstr "" +msgstr "为此,受影响的工具应该采取以下步骤:" #: ../source/specifications/recording-installed-packages.rst:259 msgid "" @@ -23426,6 +27044,9 @@ msgid "" "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 "" @@ -23433,6 +27054,8 @@ msgid "" "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 "" @@ -23442,6 +27065,9 @@ msgid "" "provided packages (while also ensuring both locations appear on the default " "Python import path)." msgstr "" +"Python 运行时提供者也可以修改默认的 Python 软件包安装方案,改用平台所提供软件" +"包所用位置之外的其他位置(同时确保这两个位置都出现在默认的 Python 导入路径上" +"),以防止平台所提供的软件包被无意修改。" #: ../source/specifications/recording-installed-packages.rst:272 msgid "" @@ -23449,6 +27075,8 @@ msgid "" "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 "" @@ -23456,6 +27084,9 @@ msgid "" "through :pep:`376`. At the time, it was known as the *Database of Installed " "Python Distributions*." msgstr "" +"2009 年 6 月:本规范的最初版本通过 :pep:`376` 获得批准。当时它被称为 " +"*Database of Installed Python Distributions*,即“已安装 Python 分发包数据库”" +"。" #: ../source/specifications/recording-installed-packages.rst:283 msgid "" @@ -23463,12 +27094,14 @@ msgid "" "through :pep:`610`. It is only mentioned on this page; see :ref:`direct-url` " "for the full definition." msgstr "" +"2020 年 3 月:``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 "" +msgstr "2020 年 9 月:多项修正和澄清通过 :pep:`627` 获得批准。" #: ../source/specifications/schemas/index.rst:4 msgid "PyPA schemas" @@ -23476,23 +27109,23 @@ msgstr "PyPA 框架" #: ../source/specifications/schemas/index.rst:6 msgid "`direct_url.json `_" -msgstr "" +msgstr "`direct_url.json `_" #: ../source/specifications/schemas/index.rst:7 msgid "`build-details.json `_" -msgstr "" +msgstr "`build-details.json `_" #: ../source/specifications/schemas/index.rst:8 msgid "`pylock.toml `_" -msgstr "" +msgstr "`pylock.toml `_" #: ../source/specifications/section-distribution-formats.rst:3 msgid "Package Distribution File Formats" -msgstr "" +msgstr "分发包文件格式" #: ../source/specifications/section-distribution-metadata.rst:3 msgid "Package Distribution Metadata" -msgstr "" +msgstr "分发包元数据" #: ../source/specifications/section-installation-metadata.rst:3 msgid "Package Installation Metadata" @@ -23500,7 +27133,7 @@ msgstr "软件包安装元数据" #: ../source/specifications/section-package-indices.rst:3 msgid "Package Index Interfaces" -msgstr "" +msgstr "包索引接口" #: ../source/specifications/section-python-description-formats.rst:3 msgid "Python Description Formats" @@ -23512,7 +27145,7 @@ msgstr "可重复的环境" #: ../source/specifications/simple-repository-api.rst:6 msgid "Simple repository API" -msgstr "" +msgstr "简单仓库 API" #: ../source/specifications/simple-repository-api.rst:8 msgid "" @@ -23521,6 +27154,11 @@ msgid "" "\"**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 "" @@ -23528,10 +27166,12 @@ msgid "" "packages from an index server comes in two forms: :ref:`HTML ` and :ref:`JSON `." msgstr "" +"用于查询可用软件包版本并从索引服务器获取软件包的接口有两种形式::ref:`HTML " +"` 和 :ref:`JSON `。" #: ../source/specifications/simple-repository-api.rst:21 msgid "Base API" -msgstr "" +msgstr "基础 API" #: ../source/specifications/simple-repository-api.rst:23 msgid "" @@ -23540,6 +27180,9 @@ msgid "" "the \"simple\" repository due to the fact that PyPI's base URL is ``https://" "pypi.org/simple/``." msgstr "" +"实现简单 API 的存储库由其基础 URL 定义。这个基础 URL 是顶层 URL,所有其他 " +"URL 都位于它之下。由于 PyPI 的基础 URL 是 ``https://pypi.org/simple/``,该 " +"API 便被命名为“简单”存储库。" #: ../source/specifications/simple-repository-api.rst:28 msgid "" @@ -23547,6 +27190,8 @@ msgid "" "given PyPI's URL, a URL of ``/foo/`` would be ``https://pypi.org/simple/foo/" "``." msgstr "" +"本文档中后续的所有 URL 都将相对于该基础 URL(因此,以 PyPI 的 URL 为例,``/" +"foo/`` 这样的 URL 就是 ``https://pypi.org/simple/foo/``。" #: ../source/specifications/simple-repository-api.rst:33 msgid "Normalized Names" @@ -23561,10 +27206,14 @@ msgid "" "characters ``.``, ``-``, or ``_`` replaced with a single ``-`` character. " "This can be implemented in Python with the ``re`` module::" msgstr "" +"本规范引用了“规范化的”项目名称这一概念。根据 :ref:`名称规范化规范 `,名称中唯一有效的字符是 ASCII 字母、ASCII 数字、``.``、``-`` " +"和 ``_``。名称应转换为小写,并将所有连续出现的 ``.``、``-`` 或 ``_`` 字符替换" +"为单个 ``-`` 字符。在 Python 中可以使用 ``re`` 模块实现::" #: ../source/specifications/simple-repository-api.rst:50 msgid "Versioning PyPI's Simple API" -msgstr "" +msgstr "PyPI 简单 API 的版本化" #: ../source/specifications/simple-repository-api.rst:52 msgid "" @@ -23576,14 +27225,18 @@ msgid "" "additional features supported by :ref:`the version specifiers specification " "`." msgstr "" +"本规范提议在针对简单 API 页面的每个成功请求的响应中包含一个 meta 标签,其 " +"name 属性为 ``pypi:repository-version``,content 为一个与 :ref:`版本说明符规" +"范 ` 兼容的版本号,并进一步限定为只能是 Major.Minor,且不" +"得使用 :ref:`版本说明符规范 ` 所支持的任何附加特性。" #: ../source/specifications/simple-repository-api.rst:60 msgid "This would end up looking like:" -msgstr "" +msgstr "最终它看起来会像这样:" #: ../source/specifications/simple-repository-api.rst:66 msgid "When interpreting the repository version:" -msgstr "" +msgstr "在解释存储库版本时:" #: ../source/specifications/simple-repository-api.rst:68 msgid "" @@ -23591,6 +27244,8 @@ msgid "" "change such that existing clients would no longer be expected to be able to " "meaningfully use the API." msgstr "" +"递增主版本号用于表示不向后兼容的更改,此时不应再期望现有客户端能够有意义地使" +"用该 API。" #: ../source/specifications/simple-repository-api.rst:71 msgid "" @@ -23598,6 +27253,8 @@ msgid "" "change such that existing clients would still be expected to be able to " "meaningfully use the API." msgstr "" +"递增次版本号用于表示向后兼容的更改,此时仍应期望现有客户端能够有意义地使用该 " +"API。" #: ../source/specifications/simple-repository-api.rst:75 msgid "" @@ -23607,6 +27264,9 @@ msgid "" "to use the API, and can include adding, modifying, or removing existing " "features." msgstr "" +"至于什么具体构成不向后兼容或向后兼容的更改,本规范仅给出一条宽泛的提示,即现" +"有客户端将能够“有意义地”继续使用该 API;具体界定由未来的规范自行裁量,且更改" +"可以包括新增、修改或移除现有特性。" #: ../source/specifications/simple-repository-api.rst:81 msgid "" @@ -23617,10 +27277,14 @@ msgid "" "lived at /v2/, but which would be confusing if the repository-version was " "set to a version >= 2)." msgstr "" +"本规范的预期是主版本号永远不会递增,未来的任何重大 API 演进都将使用不同的演进" +"机制。不过,之所以包含主版本号,是为了避免与未来版本产生歧义(例如,一个假想" +"的位于 /v2/ 的 simple api v2;但如果 repository-version 被设置为 >= 2 的版本" +",就会造成混淆)。" #: ../source/specifications/simple-repository-api.rst:89 msgid "API Version History" -msgstr "" +msgstr "API 版本历史" #: ../source/specifications/simple-repository-api.rst:91 msgid "" @@ -23628,30 +27292,34 @@ msgid "" "the API version number. For a full history of changes including changes made " "before API versioning, see :ref:`History `." msgstr "" +"本节仅包含以 API 版本号标记的简略变更历史。完整的变更历史(包括引入 API 版本" +"化之前的更改),请参见 :ref:`历史 `。" #: ../source/specifications/simple-repository-api.rst:95 msgid "API version 1.0: Initial version of the API, declared with :pep:`629`." -msgstr "" +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:向 JSON 序列化添加了 ``versions``、``files[].size`` 和 " +"``files[].upload-time`` 元数据,由 :pep:`700` 声明。" #: ../source/specifications/simple-repository-api.rst:98 msgid "" "API version 1.2: Added repository \"tracks\" metadata, declared " "with :pep:`708`." -msgstr "" +msgstr "API 版本 1.2:添加了存储库的 “tracks” 元数据,由 :pep:`708` 声明。" #: ../source/specifications/simple-repository-api.rst:99 msgid "API version 1.3: Added provenance metadata, declared with :pep:`740`." -msgstr "" +msgstr "API 版本 1.3:添加了来源(provenance)元数据,由 :pep:`740` 声明。" #: ../source/specifications/simple-repository-api.rst:100 msgid "API version 1.4: Added status markers, declared with :pep:`792`." -msgstr "" +msgstr "API 版本 1.4:添加了状态标记,由 :pep:`792` 声明。" #: ../source/specifications/simple-repository-api.rst:103 msgid "Clients" @@ -23663,24 +27331,28 @@ msgid "" "for the repository version, and if that data does not exist **MUST** assume " "that it is version 1.0." msgstr "" +"与简单 API 交互的客户端 **应该** 检查每个响应中的存储库版本,如果该数据不存在" +",则 **必须** 假定其为版本 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 "" +"当遇到比预期更高的主版本号时,客户端 **必须** 硬性失败,并向用户显示适当的错" +"误消息。" #: ../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 "" +msgstr "当遇到比预期更高的次版本号时,客户端 **应该** 以适当的消息警告用户。" #: ../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 "" +msgstr "客户端仍 **可以** 继续使用特性检测,以确定存储库使用了哪些特性。" #: ../source/specifications/simple-repository-api.rst:121 msgid "HTML Serialization" @@ -23692,28 +27364,32 @@ msgid "" "updated. Producers and consumers of the simple API should prefer " "the :ref:`JSON representation `." msgstr "" +"HTML 表示被视为“已冻结”,预计不会再更新。简单 API 的生产者和消费者应优先使用 " +":ref:`JSON 表示 `。" #: ../source/specifications/simple-repository-api.rst:131 msgid "" "See :pep:`833` for additional information about the HTML representation's " "status." -msgstr "" +msgstr "关于 HTML 表示状态的更多信息,请参见 :pep:`833`。" #: ../source/specifications/simple-repository-api.rst:134 msgid "" "The following constraints apply to all HTML serialized responses described " "in this spec:" -msgstr "" +msgstr "以下约束适用于本规范中描述的所有 HTML 序列化响应:" #: ../source/specifications/simple-repository-api.rst:137 msgid "All HTML responses **MUST** be a valid HTML5 document." -msgstr "" +msgstr "所有 HTML 响应 **必须** 是有效的 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 响应 **可以** 在 ```` 部分包含一个或多个 ``meta`` 标签。这些标签的" +"语义将在下文定义。" #: ../source/specifications/simple-repository-api.rst:142 #: ../source/specifications/simple-repository-api.rst:437 @@ -23726,6 +27402,8 @@ msgid "" "base URL) **MUST** be a valid HTML5 page with a single anchor element per " "project in the repository." msgstr "" +"在存储库中,根 URL(在本规范中即代表基础 URL 的 ``/``) **必须** 是一个有效" +"的 HTML5 页面,并为存储库中的每个项目各提供一个锚元素。" #: ../source/specifications/simple-repository-api.rst:148 msgid "" @@ -23733,6 +27411,8 @@ msgid "" "``href`` attribute **MUST** link to the URL for that particular project. As " "an example:" msgstr "" +"每个锚标签的文本 **必须** 是项目名称,且 ``href`` 属性 **必须** 链接到该特定" +"项目的 URL。示例如下:" #: ../source/specifications/simple-repository-api.rst:165 #: ../source/specifications/simple-repository-api.rst:482 @@ -23745,12 +27425,14 @@ msgid "" "within a repository. The format of this URL is ``//``, where the " "```` is replaced by the normalized name for that project." msgstr "" +"在根 URL 之下,存储库中包含的每个项目各有一个 URL。这种 URL 的格式为 ``/" +"/``,其中 ```` 会被替换为该项目的规范化名称。" #: ../source/specifications/simple-repository-api.rst:173 msgid "" "For example, a project named \"HolyGrail\" would have a URL like ``/" "holygrail/``." -msgstr "" +msgstr "例如,名为 “HolyGrail” 的项目的 URL 会类似于 ``/holygrail/``。" #: ../source/specifications/simple-repository-api.rst:176 msgid "" @@ -23760,6 +27442,9 @@ msgid "" "the anchor tag **MUST** match the final path component (the filename) of the " "URL." msgstr "" +"项目详情 URL 必须返回一个有效的 HTML5 页面,为该项目的每个文件各提供一个锚元" +"素。其 ``href`` 属性 **必须** 是链接到该文件下载位置的 URL,且锚标签的文本 " +"**必须** 与 URL 的最终路径组成部分(即文件名)相匹配。" #: ../source/specifications/simple-repository-api.rst:181 msgid "" @@ -23768,11 +27453,14 @@ msgid "" "the lowercase name of the hash function (such as ``sha256``) and " "```` is the hex encoded digest." msgstr "" +"每个文件 URL **应该** 以 URL 片段的形式包含一个哈希值,其语法如下" +":``#=``,其中 ```` 是哈希函数的小写名称(例" +"如 ``sha256``),```` 是十六进制编码的摘要。" #: ../source/specifications/simple-repository-api.rst:186 msgid "" "In addition to the above, the following constraints are placed on the API:" -msgstr "" +msgstr "除上述内容外,该 API 还受以下约束:" #: ../source/specifications/simple-repository-api.rst:188 msgid "" @@ -23780,24 +27468,26 @@ msgid "" "repository **SHOULD** redirect the URLs without a ``/`` to add a ``/`` to " "the end." msgstr "" +"所有以 HTML5 页面响应的 URL **必须** 以 ``/`` 结尾,并且存储库 **应该** 将不" +"带 ``/`` 的 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 "" +msgstr "只要指向正确的位置,URL 可以是绝对 URL,也可以是相对 URL。" #: ../source/specifications/simple-repository-api.rst:195 msgid "" "There are no constraints on where the files must be hosted relative to the " "repository." -msgstr "" +msgstr "对于文件必须托管在相对于存储库的什么位置,没有任何约束。" #: ../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 "" +msgstr "只要所需的锚元素存在,API 页面上可以有任何其他 HTML 元素。" #: ../source/specifications/simple-repository-api.rst:201 msgid "" @@ -23805,6 +27495,9 @@ msgid "" "URL (e.g. ``/Foobar/`` may redirect to ``/foobar/``), however clients **MUST " "NOT** rely on this redirection and **MUST** request the normalized URL." msgstr "" +"存储库 **可以** 将未规范化的 URL 重定向到对应的规范化 URL(例如 ``/Foobar/`` " +"可以重定向到 ``/foobar/``),但客户端 **不得** 依赖这种重定向,而 **必须** 请" +"求规范化后的 URL。" #: ../source/specifications/simple-repository-api.rst:206 msgid "" @@ -23813,6 +27506,10 @@ msgid "" "standard library (currently ``md5``, ``sha1``, ``sha224``, ``sha256``, " "``sha384``, ``sha512``). The current recommendation is to use ``sha256``." msgstr "" +"存储库 **应该** 从 Python 标准库中 :py:mod:`hashlib` 模块保证可用的哈希函数中" +"选择一种(目前包括 " +"``md5``、``sha1``、``sha224``、``sha256``、``sha384``、``sha512``)。目前的建" +"议是使用 ``sha256``。" #: ../source/specifications/simple-repository-api.rst:211 msgid "" @@ -23822,12 +27519,15 @@ msgid "" "associated signature, the signature would be located at ``/packages/" "HolyGrail-1.0.tar.gz.asc``." msgstr "" +"如果某个分发文件存在 GPG 签名,该签名 **必须** 与该文件位于同一位置,名称为在" +"原文件名后追加 ``.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 "" +msgstr "存储库 **可以** 在文件链接上包含 ``data-core-metadata`` 属性。" #: ../source/specifications/simple-repository-api.rst:220 msgid "" @@ -23838,24 +27538,32 @@ msgid "" "repository **MAY** use ``true`` as the attribute's value if a hash is " "unavailable." msgstr "" +"存储库 **应该** 以 ``=`` 语法提供 Core Metadata 文件的哈" +"希值,作为 ``data-core-metadata`` 属性的值,其中 ```` 是所用哈希函" +"数的小写名称,```` 是十六进制编码的摘要。如果哈希值不可用,存储库 " +"**可以** 使用 ``true`` 作为该属性的值。" #: ../source/specifications/simple-repository-api.rst:226 msgid "" "A repository **MAY** include a ``data-dist-info-metadata`` attribute on a " "file link." -msgstr "" +msgstr "存储库 **可以** 在文件链接上包含 ``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 "" +"索引客户端 **可以** 在该键存在时使用它,作为 ``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` 中被标准化,并在 :pep:`714` 中更名" +"为 ``data-core-metadata``。" #: ../source/specifications/simple-repository-api.rst:237 msgid "" @@ -23864,6 +27572,9 @@ msgid "" "there is a GPG signature. Repositories that do this **SHOULD** include it on " "every link." msgstr "" +"存储库 **可以** 在文件链接上包含 ``data-gpg-sig`` 属性,其值为 ``true`` 或 " +"``false``,用于指示是否存在 GPG 签名。这样做的存储库 **应该** 在每个链接上都" +"包含该属性。" #: ../source/specifications/simple-repository-api.rst:241 msgid "" @@ -23873,17 +27584,20 @@ msgid "" "**SHOULD** ignore the download when installing to a Python version that " "doesn't satisfy the requirement. For example:" msgstr "" +"存储库 **可以** 在文件链接上包含 ``data-requires-python`` 属性。它会公开相应" +"发布版本的 :ref:`core-metadata-requires-python` 元数据字段。如果存在该属性," +"在安装到不满足该要求的 Python 版本时,安装工具 **应该** 忽略该下载。例如:" #: ../source/specifications/simple-repository-api.rst:251 msgid "" "In the attribute value, < and > have to be HTML encoded as ``<`` and " "``>``, respectively." -msgstr "" +msgstr "在属性值中,< 和 > 必须分别进行 HTML 编码,即 ``<`` 和 ``>``。" #: ../source/specifications/simple-repository-api.rst:254 msgid "" "A repository **MAY** include a ``data-yanked`` attribute on a file link." -msgstr "" +msgstr "存储库 **可以** 在文件链接上包含 ``data-yanked`` 属性。" #: ../source/specifications/simple-repository-api.rst:256 msgid "" @@ -23893,19 +27607,24 @@ msgid "" "has been \"Yanked\", and should not generally be selected by an installer, " "except under specific scenarios." msgstr "" +"``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 "" +"``data-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 "" +msgstr "工具应如何处理被撤回文件的语义在 :ref:`file-yanking` 中描述。" #: ../source/specifications/simple-repository-api.rst:270 msgid "" @@ -23915,22 +27634,28 @@ msgid "" "represent a `secure origin `_." msgstr "" +"存储库 **可以** 在文件链接上包含 ``data-provenance`` 属性。该属性的值 **必" +"须** 是一个完全限定的 URL,表明该文件的来源可以在该 URL 找到。该 URL **必" +"须** 代表一个 `安全来源 `_。" #: ../source/specifications/simple-repository-api.rst:277 msgid "The ``data-provenance`` attribute was added with API version 1.3." -msgstr "" +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 "" +msgstr "所链接来源的格式在 :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 "" +"存储库 **可以** 在响应本身中包含 ``pypi:project-status`` 和 ``pypi:project-" +"status-reason`` meta 标签。" #: ../source/specifications/simple-repository-api.rst:286 msgid "" @@ -23938,23 +27663,27 @@ msgid "" "marker, while the value of ``pypi:project-status-reason`` **MUST** be an " "arbitrary string if present." msgstr "" +"``pypi:project-status`` 的值 **必须** 是有效的项目状态标记,而 " +"``pypi:project-status-reason`` 的值若存在,则 **必须** 是任意字符串。" #: ../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 "" +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 "" +"``pypi:project-status`` 和 ``pypi:project-status-reason`` meta 标签是在 API " +"版本 1.4 中添加的。" #: ../source/specifications/simple-repository-api.rst:303 msgid "Serve Distribution Metadata in the Simple Repository API" -msgstr "" +msgstr "在简单存储库 API 中提供分发元数据" #: ../source/specifications/simple-repository-api.rst:305 msgid "" @@ -23964,6 +27693,9 @@ msgid "" "anchor tag **MUST** contain a Core Metadata file that will not be modified " "when the distribution is processed and/or installed." msgstr "" +"在简单存储库的项目页面中,每个指向分发包的锚标签 **可以** 带有 ``data-dist-" +"info-metadata`` 属性。该属性的存在表明该锚标签所表示的分发包 **必须** 包含一" +"个 Core Metadata 文件,且该文件在分发包被处理和/或安装时不会被修改。" #: ../source/specifications/simple-repository-api.rst:311 msgid "" @@ -23976,6 +27708,12 @@ msgid "" "how :ref:`the base HTML API specification ` " "specifies the GPG signature file's location." msgstr "" +"如果存在 ``data-dist-info-metadata`` 属性,存储库 **必须** 在提供分发包的同时" +"提供该分发包的 Core Metadata 文件,其文件名是在分发包的文件名后追加 " +"``.metadata``。例如,位于 ``/files/distribution-1.0-py3.none.any.whl`` 的分发" +"包,其 Core Metadata 将位于 ``/files/distribution-1.0-" +"py3.none.any.whl.metadata``。这类似于 :ref:`基础 HTML API 规范 ` 指定 GPG 签名文件位置的方式。" #: ../source/specifications/simple-repository-api.rst:320 msgid "" @@ -23986,10 +27724,14 @@ msgid "" "repository **MAY** use ``true`` as the attribute's value if a hash is " "unavailable." msgstr "" +"存储库 **应该** 使用 ``=`` 语法,将 Core Metadata 文件的" +"哈希值作为 ``data-dist-info-metadata`` 属性的值提供,其中 ```` 是所" +"用哈希函数的小写名称,```` 是十六进制编码的摘要。如果哈希值不可用" +",存储库 **可以** 使用 ``true`` 作为该属性的值。" #: ../source/specifications/simple-repository-api.rst:328 msgid "Backwards Compatibility" -msgstr "" +msgstr "向后兼容性" #: ../source/specifications/simple-repository-api.rst:330 msgid "" @@ -23997,6 +27739,8 @@ msgid "" "expected to revert to their current behaviour of downloading the " "distribution to inspect the metadata." msgstr "" +"如果锚标签缺少 ``data-dist-info-metadata`` 属性,工具应回退到其现有行为,即下" +"载分发包以检查元数据。" #: ../source/specifications/simple-repository-api.rst:334 msgid "" @@ -24005,10 +27749,13 @@ msgid "" "downloading the distribution to inspect the metadata. This is similar to how " "prior ``data-`` attribute additions expect existing tools to operate." msgstr "" +"不支持新 ``data-dist-info-metadata`` 属性的旧工具应忽略该属性,并保持其现有行" +"为,即下载分发包以检查元数据。这类似于以往添加 ``data-`` 属性时对现有工具运作" +"方式的预期。" #: ../source/specifications/simple-repository-api.rst:343 msgid "JSON-based Simple API for Python Package Indexes" -msgstr "" +msgstr "用于 Python 包索引的基于 JSON 的简单 API" #: ../source/specifications/simple-repository-api.rst:345 msgid "" @@ -24017,6 +27764,9 @@ msgid "" "responses from :ref:`the base HTML API specification `) should be serialized using `JSON `_." msgstr "" +"为了能够只使用标准库来解析响应,本规范规定,所有响应(文件本身以及来自 " +":ref:`基础 HTML API 规范 ` 的 HTML 响应除外)都应" +"使用 `JSON `_ 进行序列化。" #: ../source/specifications/simple-repository-api.rst:350 msgid "" @@ -24027,6 +27777,10 @@ msgid "" "negotiation to allow client and server to select the correct serialization " "format to serve, i.e. either HTML or JSON." msgstr "" +"为了实现零配置发现并尽量减少额外 HTTP 请求的数量,本规范对 :ref:`基础 HTML " +"API 规范 ` 进行了扩展,使所有 API 端点(文件本身" +"除外)都将利用 HTTP 内容协商,允许客户端和服务器选择要提供的正确序列化格式," +"即 HTML 或 JSON。" #: ../source/specifications/simple-repository-api.rst:360 msgid "" @@ -24037,6 +27791,10 @@ msgid "" "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 引入新特性,而只是为现有特性描述了一种不同的序列化格式,因此本规范不更" +"改现有的 ``1.0`` 版本,而只是描述如何将其序列化为 JSON。" #: ../source/specifications/simple-repository-api.rst:367 msgid "" @@ -24045,6 +27803,9 @@ msgid "" "changes to the new format would result in no longer being able to expect " "existing clients to meaningfully understand the format." msgstr "" +"与 :ref:`API 版本化规范 ` 类似,如果对新格" +"式的任何更改会导致无法再期望现有客户端有意义地理解该格式,则 **必须** 递增主" +"版本号。" #: ../source/specifications/simple-repository-api.rst:373 msgid "" @@ -24052,6 +27813,8 @@ msgid "" "removed from the format, but existing clients would be expected to continue " "to meaningfully understand the format." msgstr "" +"同样,如果向格式中添加或从中移除了特性,但仍应期望现有客户端能够继续有意义地" +"理解该格式,则 **必须** 递增次版本号。" #: ../source/specifications/simple-repository-api.rst:377 msgid "" @@ -24059,6 +27822,8 @@ msgid "" "meaningfully understand the format and which do not represent features being " "added or removed may occur without changing the version number." msgstr "" +"不会导致现有客户端无法有意义地理解该格式、也不属于添加或移除特性的更改,可以" +"在不更改版本号的情况下进行。" #: ../source/specifications/simple-repository-api.rst:381 msgid "" @@ -24066,6 +27831,8 @@ msgid "" "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 "" @@ -24075,6 +27842,9 @@ msgid "" "specifics of how a feature serializes into each format may differ, including " "whether or not that feature is present at all." msgstr "" +"API 的未来版本可能会添加一些只能在该版本可用序列化格式的一个子集中表示的内容" +"。在同一个主版本内,所有序列化格式的版本号 **应该** 保持同步,但特性序列化到" +"每种格式时的具体细节可能有所不同,包括该特性是否真的存在。" #: ../source/specifications/simple-repository-api.rst:391 msgid "" @@ -24082,6 +27852,8 @@ msgid "" "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 端点,数据的解释由该数据的版本" +"定义,然后再被序列化为目标序列化格式。" #: ../source/specifications/simple-repository-api.rst:399 msgid "JSON Serialization" @@ -24093,18 +27865,20 @@ msgid "" "repository-html-serialization>` still applies, as this spec only adds an " "additional serialization format for the already existing API." msgstr "" +"来自 :ref:`基础 HTML API 规范 ` 的 URL " +"结构仍然适用,因为本规范只是为已有的 API 添加了一种额外的序列化格式。" #: ../source/specifications/simple-repository-api.rst:405 msgid "" "The following constraints apply to all JSON serialized responses described " "in this spec:" -msgstr "" +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 "" +msgstr "所有 JSON 响应将 *始终* 是一个 JSON 对象,而不是数组或其他类型。" #: ../source/specifications/simple-repository-api.rst:411 msgid "" @@ -24113,18 +27887,25 @@ msgid "" "the correct location. If relative, they are relative to the current URL as " "if it were HTML." msgstr "" +"虽然 JSON 原生并不支持 URL 类型,但本 API 中任何表示 URL 的值都可以是绝对或相" +"对的,只要它们指向正确的位置即可。如果为相对 URL,则它们相对于当前 URL,如同" +"当前 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 "" +"可以向 API 响应中的任何字典对象添加额外的键,客户端 **必须** 忽略其不理解的键" +"。" #: ../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 "" @@ -24134,37 +27915,47 @@ msgid "" "fail/warn semantics as defined in :ref:`the API versioning specification " "`." msgstr "" +"所有 JSON 响应都将包含一个 ``meta.api-version`` 键,其值为一个字符串,包含 " +":ref:`API 版本化规范 ` 的 ``Major.Minor`` " +"版本号,并具有与 :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:`基础 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 "" +"带有前导下划线的键(无论处于哪个层级)都保留为私有,供索引服务器使用。未来的" +"任何标准都不会为此类键赋予任何含义。" #: ../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 "" +msgstr "本规范的根 URL ``/`` 即代表基础 URL,它将是一个 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``:一个数组,其中每个条目都是一个仅含单个键 ``name`` 的字典,该键" +"表示项目名称字符串。" #: ../source/specifications/simple-repository-api.rst:443 #: ../source/specifications/simple-repository-api.rst:517 msgid "" "``meta``: The general response metadata as `described earlier `__." -msgstr "" +msgstr "``meta``:常规的响应元数据,如 `前文所述 `__。" #: ../source/specifications/simple-repository-api.rst:445 #: ../source/specifications/simple-repository-api.rst:643 @@ -24180,6 +27971,10 @@ msgid "" "relying on it being either non-normalized or normalized is relying on an " "implementation detail of the repository in question." msgstr "" +"``name`` 字段与 :ref:`基础 HTML API 规范 ` 中的相" +"同,该规范并未指定它是未规范化的显示名称还是规范化名称。在实践中,这些规范的" +"不同实现在这一点上的选择各不相同,因此依赖它是未规范化或规范化的名称,就是在" +"依赖相关存储库的实现细节。" #: ../source/specifications/simple-repository-api.rst:472 msgid "" @@ -24190,6 +27985,10 @@ msgid "" "best thought of as a set, but both JSON and HTML lack the functionality to " "have sets." msgstr "" +"虽然 ``projects`` 键是一个数组,因此必定以某种顺序排列,但 :ref:`基础 HTML " +"API 规范 ` 和本规范都既不要求任何特定顺序,也不要" +"求顺序在不同请求之间保持一致。在概念上,最好将其视为一个集合,但 JSON 和 " +"HTML 都缺乏表示集合的功能。" #: ../source/specifications/simple-repository-api.rst:484 msgid "" @@ -24198,46 +27997,49 @@ msgid "" "base>` normalized name for that project, so a project named \"Silly_Walk\" " "would have a URL like ``/silly-walk/``." msgstr "" +"这种 URL 的格式为 ``//``,其中 ```` 会被替换为该项目的 " +":ref:`基础 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 "" +msgstr "该 URL 必须返回一个 JSON 编码的字典,其中包含五个键:" #: ../source/specifications/simple-repository-api.rst:491 msgid "``name``: The normalized name of the project." -msgstr "" +msgstr "``name``:项目的规范化名称。" #: ../source/specifications/simple-repository-api.rst:492 msgid "``project-status``: An optional dictionary, containing the following:" -msgstr "" +msgstr "``project-status``:一个可选的字典,包含以下内容:" #: ../source/specifications/simple-repository-api.rst:494 msgid "``status``: If present, this **MUST** be a valid project status marker." -msgstr "" +msgstr "``status``:若存在,其值 **必须** 是一个有效的项目状态标记。" #: ../source/specifications/simple-repository-api.rst:503 msgid "The ``status`` key was added with API version 1.4." -msgstr "" +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 "" +msgstr "``reason``:若存在,其值 **必须** 是对项目状态的任意字符串描述。" #: ../source/specifications/simple-repository-api.rst:510 msgid "The ``reason`` key was added with API version 1.4." -msgstr "" +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 "" +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 "" +msgstr "``files``:一个字典列表,每个字典表示一个单独的文件。" #: ../source/specifications/simple-repository-api.rst:518 msgid "" @@ -24246,6 +28048,9 @@ msgid "" "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" +"``versions``:一个版本字符串列表,列出了为该项目上传的所有项目版本" +"。``versions`` 的值在逻辑上是一个集合,因此不得包含重复项,且版本的顺序无关紧" +"要。" #: ../source/specifications/simple-repository-api.rst:525 msgid "" @@ -24254,6 +28059,9 @@ msgid "" "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 "" @@ -24263,22 +28071,25 @@ msgid "" "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 "" +msgstr "``versions`` 键是在 API 版本 1.1 中添加的。" #: ../source/specifications/simple-repository-api.rst:542 msgid "Each individual file dictionary has the following keys:" -msgstr "" +msgstr "每个单独的文件字典具有以下键:" #: ../source/specifications/simple-repository-api.rst:544 msgid "``filename``: The filename that is being represented." -msgstr "" +msgstr "``filename``:所表示的文件名。" #: ../source/specifications/simple-repository-api.rst:545 msgid "``url``: The URL that the file can be fetched from." -msgstr "" +msgstr "``url``:可从中获取该文件的 URL。" #: ../source/specifications/simple-repository-api.rst:546 msgid "" @@ -24288,6 +28099,9 @@ msgid "" "them, or nothing at all). These hash names **SHOULD** always be normalized " "to be lowercase." msgstr "" +"``hashes``:一个字典,将哈希名称映射到该文件的十六进制编码摘要。可以包含多个" +"哈希值,由客户端决定如何处理多个哈希值(可以校验其中的全部或一部分,也可以完" +"全不校验)。这些哈希名称 **应该** 始终规范化为小写。" #: ../source/specifications/simple-repository-api.rst:551 msgid "" @@ -24295,6 +28109,8 @@ msgid "" "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 "" @@ -24305,6 +28121,10 @@ msgid "" "**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 "" @@ -24313,6 +28133,9 @@ msgid "" "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` 元数据字段。若存在该键,在安装到不满足该要求的 Python 版本时,安装工" +"具 **应该** 忽略该下载。" #: ../source/specifications/simple-repository-api.rst:566 msgid "" @@ -24320,6 +28143,9 @@ msgid "" "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" +"与 :ref:`基础 HTML API 规范 ` 中的 ``data-" +"requires-python`` 不同,``requires-python`` 键不需要任何特殊转义,JSON 本身自" +"然要求的转义除外。" #: ../source/specifications/simple-repository-api.rst:569 msgid "" @@ -24330,6 +28156,11 @@ msgid "" "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``)。若存在该键,其值 **必须** 是一个布尔值(表示该文" +"件是否有关联的元数据文件),或是一个将哈希名称映射到元数据哈希的十六进制编码" +"摘要的字典。" #: ../source/specifications/simple-repository-api.rst:577 msgid "" @@ -24337,6 +28168,8 @@ msgid "" "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" +"当该值是哈希字典而不是布尔值时,所有与 ``hashes`` 键相同的要求和推荐同样适用" +"于该键。" #: ../source/specifications/simple-repository-api.rst:581 msgid "" @@ -24344,30 +28177,34 @@ msgid "" "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" +"如果缺少该键,则元数据文件可能存在,也可能不存在。如果该键的值为真值,则元数" +"据文件存在;如果为假值,则不存在。" #: ../source/specifications/simple-repository-api.rst:585 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." -msgstr "" +msgstr "建议服务器在可能的情况下提供元数据文件的哈希值。" #: ../source/specifications/simple-repository-api.rst:588 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." -msgstr "" +msgstr "``dist-info-metadata``:一个 **可选**、已弃用的 ``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 "" +msgstr "索引客户端 **可以** 在该键存在时使用它,作为 ``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` 中被标准化,并在 :pep:`714` 中更名为 " +"``core-metadata``。" #: ../source/specifications/simple-repository-api.rst:598 msgid "" @@ -24377,6 +28214,9 @@ msgid "" "repository-api-base>` (``{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 "" @@ -24387,16 +28227,22 @@ msgid "" "interpreted as indicating that the file pointed to by the ``url`` field has " "been \"Yanked\"." msgstr "" +"``yanked``:一个 **可选** 键,其值可以是布尔值,指示该文件是否已被撤回;也可" +"以是非空但内容任意的字符串,指示该文件已因特定原因被撤回。如果 ``yanked`` 键" +"存在且为真值,则 **应该** 将其解释为表示 ``url`` 字段所指向的文件已被“撤回”(" +"Yanked)。" #: ../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``:一个 **必需** 键。它 **必须** 包含一个整数,即以字节为单位的文件大" +"小。" #: ../source/specifications/simple-repository-api.rst:619 msgid "The ``size`` key was added with API version 1.1." -msgstr "" +msgstr "``size`` 键是在 API 版本 1.1 中添加的。" #: ../source/specifications/simple-repository-api.rst:621 msgid "" @@ -24405,6 +28251,9 @@ msgid "" "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 "" @@ -24414,10 +28263,13 @@ msgid "" "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 "" +msgstr "``upload-time`` 键是在 API 版本 1.1 中添加的。" #: ../source/specifications/simple-repository-api.rst:634 msgid "" @@ -24426,10 +28278,14 @@ msgid "" "associated provenance, with the same rules as ``data-provenance`` in " "the :ref:`base HTML API specification `." msgstr "" +"``provenance``:一个 **可选** 键,若存在,则 **必须** 是 JSON 字符串或 " +"``null``。如果不为 ``null``,它 **必须** 是指向该文件关联来源(provenance)" +"的 URL,规则与 :ref:`基础 HTML API 规范 ` 中的 " +"``data-provenance`` 相同。" #: ../source/specifications/simple-repository-api.rst:641 msgid "The ``provenance`` field was added with API version 1.3." -msgstr "" +msgstr "``provenance`` 字段是在 API 版本 1.3 中添加的。" #: ../source/specifications/simple-repository-api.rst:679 msgid "" @@ -24440,6 +28296,10 @@ msgid "" "best thought of as a set, but both JSON and HTML lack the functionality to " "have sets." msgstr "" +"虽然 ``files`` 键是一个数组,因此必定以某种顺序排列,但 :ref:`基础 HTML API " +"规范 ` 和本规范都既不要求任何特定顺序,也不要求顺" +"序在不同请求之间保持一致。在概念上,最好将其视为一个集合,但 JSON 和 HTML 都" +"缺乏集合功能。" #: ../source/specifications/simple-repository-api.rst:688 msgid "Content-Types" @@ -24452,10 +28312,12 @@ msgid "" "response), what version of the API it represents, and what serialization " "format has been used." msgstr "" +"本规范提议,来自简单 API 的所有响应都将具有一个标准内容类型,用于描述该响应是" +"什么(一个简单 API 响应)、它代表哪个 API 版本,以及使用了哪种序列化格式。" #: ../source/specifications/simple-repository-api.rst:694 msgid "The structure of this content type will be:" -msgstr "" +msgstr "这种内容类型的结构为:" #: ../source/specifications/simple-repository-api.rst:700 msgid "" @@ -24464,18 +28326,20 @@ msgid "" "included in the content type, and will be prefixed with a ``v`` to clarify " "that it is a version number." msgstr "" +"由于预期只有主版本号才会对试图理解这些 API 响应的客户端造成破坏性影响,因此内" +"容类型中将只包含主版本号,并为其加上 ``v`` 前缀以表明这是一个版本号。" #: ../source/specifications/simple-repository-api.rst:705 msgid "Which means that for the existing 1.0 API, the content types would be:" -msgstr "" +msgstr "这意味着,对于现有的 1.0 API,内容类型将是:" #: ../source/specifications/simple-repository-api.rst:707 msgid "**JSON:** ``application/vnd.pypi.simple.v1+json``" -msgstr "" +msgstr "**JSON:** ``application/vnd.pypi.simple.v1+json``" #: ../source/specifications/simple-repository-api.rst:708 msgid "**HTML:** ``application/vnd.pypi.simple.v1+html``" -msgstr "" +msgstr "**HTML:** ``application/vnd.pypi.simple.v1+html``" #: ../source/specifications/simple-repository-api.rst:710 msgid "" @@ -24485,6 +28349,9 @@ msgid "" "recommended however, that clients be explicit about what versions they " "support." msgstr "" +"除上述内容外,还支持一个名为 ``latest`` 的特殊“meta”版本,其目的是让客户端无" +"需事先知道最新版本是什么,就能请求绝对最新的版本。不过,建议客户端明确表明自" +"己支持哪些版本。" #: ../source/specifications/simple-repository-api.rst:715 msgid "" @@ -24493,6 +28360,9 @@ msgid "" "``text/html`` content type, this spec further defines ``text/html`` as an " "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" +"为了支持那些期望现有 :ref:`基础 HTML API 规范 ` " +"的 API 响应使用 ``text/html`` 内容类型的现有客户端,本规范进一步将 ``text/" +"html`` 定义为 ``application/vnd.pypi.simple.v1+html`` 内容类型的别名。" #: ../source/specifications/simple-repository-api.rst:722 msgid "Version + Format Selection" @@ -24506,6 +28376,9 @@ msgid "" "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 "" @@ -24513,18 +28386,23 @@ msgid "" "Content Negotiation `_." msgstr "" +"为了实现这一点,本规范将 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 "" +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 请求,其中包含一个 ``Accept`` 头部,列出它能够理解的所有“" +"版本+格式”内容类型。" #: ../source/specifications/simple-repository-api.rst:737 msgid "" @@ -24532,6 +28410,8 @@ msgid "" "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 "" @@ -24539,12 +28419,14 @@ msgid "" "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 "" +msgstr "选择一个不同于客户端所请求内容的默认内容类型,并用它返回响应。" #: ../source/specifications/simple-repository-api.rst:746 msgid "" @@ -24552,18 +28434,20 @@ msgid "" "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 "" +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 "" +msgstr "客户端解释该响应,并处理服务器可能返回的各种不同类型的响应。" #: ../source/specifications/simple-repository-api.rst:754 msgid "" @@ -24572,6 +28456,8 @@ msgid "" "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 "" @@ -24583,6 +28469,10 @@ msgid "" "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 "" @@ -24592,6 +28482,10 @@ msgid "" "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`` 这个 meta 版本,服务器 **必须** " +"以响应中实际包含的版本所对应的内容类型进行响应(即:如果 ``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 "" @@ -24599,6 +28493,8 @@ msgid "" "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" +"``Accept`` 头部是一个以逗号分隔的内容类型列表,列出客户端理解并能够处理的内容" +"类型。对于所请求的每种内容类型,它支持三种不同的格式:" #: ../source/specifications/simple-repository-api.rst:777 msgid "``$type/$subtype``" @@ -24618,6 +28514,8 @@ msgid "" "``$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 "" @@ -24628,6 +28526,10 @@ msgid "" "header's `quality value `_ syntax." msgstr "" +"``Accept`` 头部中列出的内容类型的顺序没有任何特定含义,服务器 **应该** 认为它" +"们作为响应选项都同样有效。如果客户端希望表明自己更偏好某个内容类型而非另一个" +",可以使用 ``Accept`` 头部的 `质量值 `_ 语法。" #: ../source/specifications/simple-repository-api.rst:792 msgid "" @@ -24638,6 +28540,10 @@ msgid "" "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 "" @@ -24646,6 +28552,8 @@ msgid "" "priority, and it may even return a content type that they did **not** ask " "for." msgstr "" +"不过,客户端应记住,服务器可以自由选择它们所请求的 **任何** 内容类型,而不受" +"其所请求优先级的影响,甚至可能返回它们 **并未** 请求的内容类型。" #: ../source/specifications/simple-repository-api.rst:802 msgid "" @@ -24657,10 +28565,15 @@ msgid "" "pip/blob/cf3696a81b341925f82f20cb527e656176987565/src/pip/_internal/index/" "collector.py#L123-L150>`_ 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 "" +msgstr "客户端运作方式的一个示例大致如下:" #: ../source/specifications/simple-repository-api.rst:860 msgid "" @@ -24668,10 +28581,12 @@ msgid "" "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 "" +msgstr "备选协商机制" #: ../source/specifications/simple-repository-api.rst:868 msgid "" @@ -24681,10 +28596,13 @@ msgid "" "mechanism may not be sufficient. For those cases this spec has alternative " "negotiation mechanisms that may *optionally* be used instead." msgstr "" +"虽然使用 HTTP 内容协商被视为客户端与服务器协调一致、以确保客户端获得其能够理" +"解的 HTTP 响应的标准方式,但在某些情况下,该机制可能不够用。对于这些情况,本" +"规范提供了可以 *选择性地* 用来替代的备选协商机制。" #: ../source/specifications/simple-repository-api.rst:876 msgid "URL Parameter" -msgstr "" +msgstr "URL 参数" #: ../source/specifications/simple-repository-api.rst:878 msgid "" @@ -24692,6 +28610,8 @@ msgid "" "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" +"实现简单 API 的服务器可以选择支持一个名为 ``format`` 的 URL 参数,允许客户端" +"请求特定版本的 URL。" #: ../source/specifications/simple-repository-api.rst:881 msgid "" @@ -24699,6 +28619,8 @@ msgid "" "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" +"``format`` 参数的值应该是有效内容类型中的 **一个**。传递多个内容类型、通配符" +"、质量值等 **不受** 支持。" #: ../source/specifications/simple-repository-api.rst:885 msgid "" @@ -24707,12 +28629,14 @@ msgid "" "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 "" +msgstr "不支持该参数的服务器可以选择在该参数出现时返回错误,也可以直接忽略它的存在。" #: ../source/specifications/simple-repository-api.rst:893 msgid "" @@ -24723,10 +28647,14 @@ msgid "" "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 "" +msgstr "端点配置" #: ../source/specifications/simple-repository-api.rst:904 msgid "" @@ -24734,6 +28662,8 @@ msgid "" "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 "" @@ -24742,6 +28672,8 @@ msgid "" "their client to select the version they want, then that is a supported " "configuration." msgstr "" +"如果服务器不愿意或无法实现服务器驱动的内容协商,而更希望要求用户显式配置其客" +"户端来选择所需的版本,那么这也是一种受支持的配置。" #: ../source/specifications/simple-repository-api.rst:912 msgid "" @@ -24752,6 +28684,10 @@ msgid "" "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/``)。在该端点之下,它们可以托管一" +"份仅支持其中一种(或一个子集)内容类型的存储库副本。当客户端使用 ``Accept`` " +"头部发出请求时,服务器可以忽略该头部,并返回与该端点相对应的内容类型。" #: ../source/specifications/simple-repository-api.rst:919 msgid "" @@ -24760,6 +28696,9 @@ msgid "" "when making a request to that server, emit an ``Accept`` header that *only* " "includes the correct content type." msgstr "" +"对于希望强制要求特定配置的客户端,它们可以记录某个特定存储库 URL 是为哪种版" +"本+格式配置的,并在向该服务器发出请求时,发送一个 *只* 包含正确内容类型的 " +"``Accept`` 头部。" #: ../source/specifications/simple-repository-api.rst:927 msgid "" @@ -24768,6 +28707,8 @@ msgid "" "this spec, but it does **not** represent any sort of requirement to match " "these decisions." msgstr "" +"本节是非规范性的,代表了规范作者认为实现本规范时的最佳默认实现决策,但 **并" +"不** 代表任何必须匹配这些决策的要求。" #: ../source/specifications/simple-repository-api.rst:931 msgid "" @@ -24777,10 +28718,13 @@ msgid "" "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 "" +msgstr "建议服务器:" #: ../source/specifications/simple-repository-api.rst:938 msgid "" @@ -24788,6 +28732,9 @@ msgid "" "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 "" @@ -24796,12 +28743,17 @@ msgid "" "``300 Multiple Choice`` response, and instead return a ``406 Not " "Acceptable`` response." msgstr "" +"当收到的 ``Accept`` 头部中不包含任何服务器知道如何处理的内容类型时,服务器绝" +"不应返回 ``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 "" +"不过,如果选择使用端点配置,你应该优先以该端点预期的内容类型返回 ``200 OK`` " +"响应。" #: ../source/specifications/simple-repository-api.rst:950 msgid "" @@ -24811,22 +28763,27 @@ msgid "" "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 "" +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 "" +msgstr "在构造 ``Accept`` 头部时,把你所支持的所有内容类型都包含进去。" #: ../source/specifications/simple-repository-api.rst:964 msgid "" @@ -24836,6 +28793,9 @@ msgid "" "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 "" +"除非你有希望服务器加以考虑的实现层面的特定原因,否则你通常 *不* 应该为自己的" +"内容类型包含质量优先级值(例如,你正在使用标准库的 HTML 解析器,并且担心在某" +"些边缘情况下可能存在你无法解析的某些 HTML 响应)。" #: ../source/specifications/simple-repository-api.rst:970 msgid "" @@ -24843,87 +28803,93 @@ msgid "" "*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 "" +"这条建议的唯一例外是:建议你 *应该* 在旧式的 ``text/html`` 内容类型上包含 " +"``;q=0.01`` 值,除非它是你所请求的唯一内容类型。" #: ../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 "" +msgstr "在正常运行期间显式选择所需的版本,而不是使用 ``latest`` 这个 meta 版本。" #: ../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 "" +msgstr "检查响应的 ``Content-Type``,并确保它与你所预期的内容相符。" #: ../source/specifications/simple-repository-api.rst:985 msgid "September 2015: initial form of the HTML format, in :pep:`503`" -msgstr "" +msgstr "2015 年 9 月:HTML 格式的初始形式,见 :pep:`503`" #: ../source/specifications/simple-repository-api.rst:986 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" -msgstr "" +msgstr "2016 年 7 月:Requires-Python 元数据,在 :pep:`503` 的更新中" #: ../source/specifications/simple-repository-api.rst:987 msgid "May 2019: \"yank\" support, in :pep:`592`" -msgstr "" +msgstr "2019 年 5 月:“撤回”(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 年 7 月: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 "" +msgstr "2021 年 5 月:独立于软件包提供软件包元数据,见 :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 年 5 月: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 "" +msgstr "2022 年 10 月: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 "" +msgstr "2023 年 6 月:重命名用于独立于软件包提供软件包元数据的字段,见 :pep:`714`" #: ../source/specifications/simple-repository-api.rst:998 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" -msgstr "" +msgstr "2024 年 11 月: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 "" +msgstr "2025 年 7 月: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 "" +msgstr "2025 年 7 月:版面调整(为文件撤回设立专门页面,先引入概念再介绍 API 细节)" #: ../source/specifications/simple-repository-api.rst:1001 msgid "" "June 2026: :pep:`833` formally \"freezes\" the HTML representation of the " "simple API" -msgstr "" +msgstr "2026 年 6 月::pep:`833` 正式“冻结”简单 API 的 HTML 表示" #: ../source/specifications/source-distribution-format.rst:6 msgid "Source distribution format" -msgstr "" +msgstr "源分发格式" #: ../source/specifications/source-distribution-format.rst:8 msgid "" @@ -24932,6 +28898,8 @@ msgid "" "layout of such a distribution was originally specified in :pep:`517` and is " "formally documented here." msgstr "" +"当前的标准源分发格式以分发归档文件中存在 :file:`pyproject.toml` 文件为标识。" +"这种分发的布局最初在 :pep:`517` 中规定,并在此正式记录。" #: ../source/specifications/source-distribution-format.rst:13 msgid "" @@ -24943,14 +28911,18 @@ msgid "" "MUST follow the rules applicable to source distributions defined in the " "metadata specification." msgstr "" +"还存在一种旧式源分发格式,它由标准库 ``distutils`` 模块在执行 " +":command:`setup.py sdist` 时的行为隐式定义。本文档不打算对这种格式进行标准化" +",只是指出:如果旧式源分发包含使用 2.2 或更高元数据版本的 ``PKG-INFO`` 文件," +"则它必须遵循元数据规范中定义的、适用于源分发的规则。" #: ../source/specifications/source-distribution-format.rst:21 msgid "Source distributions are also known as *sdists* for short." -msgstr "" +msgstr "源分发也被简称为 *sdists*。" #: ../source/specifications/source-distribution-format.rst:26 msgid "Source trees" -msgstr "" +msgstr "源码树" #: ../source/specifications/source-distribution-format.rst:28 msgid "" @@ -24961,10 +28933,14 @@ msgid "" "definition of what :file:`pyproject.toml` must contain for something to be " "deemed a source tree." msgstr "" +"*源码树* 是一组文件和目录,类似版本控制系统的一次检出,其中包含一个可用于从这" +"些文件和目录构建源分发的 :file:`pyproject.toml` 文件。:pep:`517` 和 " +":pep:`518` 规定了要满足源码树的定义,:file:`pyproject.toml` 必须包含哪些内容" +"。" #: ../source/specifications/source-distribution-format.rst:38 msgid "Source distribution file name" -msgstr "" +msgstr "源分发文件名" #: ../source/specifications/source-distribution-format.rst:40 msgid "" @@ -24974,12 +28950,16 @@ msgid "" "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}`` 按照与二进制分发相同的规则进行规范化(参见 " +":ref:`binary-distribution-format`),``{version}`` 是项目版本的规范化形式(参" +"见 :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 "" +msgstr "文件名中的名称和版本部分必须与文件所含元数据中存储的值相匹配。" #: ../source/specifications/source-distribution-format.rst:49 msgid "" @@ -24987,6 +28967,8 @@ msgid "" "matches this specification. This includes the ``build_sdist`` hook of " "a :term:`build backend `." msgstr "" +"生成源分发文件的代码必须为文件赋予符合本规范的名称。这包括 :term:`构建后端 " +"` 的 ``build_sdist`` 钩子。" #: ../source/specifications/source-distribution-format.rst:53 msgid "" @@ -24995,10 +28977,13 @@ msgid "" "*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`` 后缀以及文件名中恰好包含 *一个* 连字" +"符这一特征来识别源分发文件。这样做的代码随后可以直接使用文件名中的分发名称和" +"版本,而无需进一步验证。" #: ../source/specifications/source-distribution-format.rst:59 msgid "Source distribution file format" -msgstr "" +msgstr "源分发文件格式" #: ../source/specifications/source-distribution-format.rst:61 msgid "" @@ -25011,6 +28996,11 @@ msgid "" "described in the :ref:`core-metadata` specification. The metadata MUST " "conform to at least version 2.2 of the metadata specification." msgstr "" +"``.tar.gz`` 源分发(sdist)只包含一个名为 ``{name}-{version}`` 的顶层目录(例" +"如 ``foo-1.0``),其中含有软件包的源文件。名称和版本必须与文件中存储的元数据" +"相匹配。该目录还必须包含一个符合 :ref:`pyproject-toml-spec` 所定义格式的 " +":file:`pyproject.toml`,以及一个 :file:`PKG-INFO` 文件,其中包含 :ref:`core-" +"metadata` 规范所述格式的元数据。元数据必须至少符合 2.2 版的元数据规范。" #: ../source/specifications/source-distribution-format.rst:69 msgid "" @@ -25020,12 +29010,17 @@ msgid "" "directory of the sdist (containing the :file:`pyproject.toml` and " "the :file:`PKG-INFO` metadata)." msgstr "" +"如果元数据版本为 2.4 或更高,源分发必须包含 :file:`PKG-INFO` 中 ``License-" +"File`` 字段所指定的所有许可证文件,且这些文件须位于相对于 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 的其他任何内容。构建系统可以在 sdist 中存储构建项" +"目所需的任何信息。" #: ../source/specifications/source-distribution-format.rst:77 msgid "" @@ -25033,6 +29028,9 @@ msgid "" "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 "" +"tar 归档文件必须使用现代的 POSIX.1-2001 pax tar 格式,该格式规定使用基于 UTF-" +"8 的文件名。特别地,源分发文件必须能够使用标准库 tarfile 模块以打开标志 " +"'r:gz' 读取。" #: ../source/specifications/source-distribution-format.rst:85 msgid "Source distribution archive features" @@ -25043,10 +29041,12 @@ 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 "" +msgstr "使用 data 过滤器解包" #: ../source/specifications/source-distribution-format.rst:93 msgid "" @@ -25055,6 +29055,9 @@ msgid "" "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 过滤器解包* 一节。" #: ../source/specifications/source-distribution-format.rst:97 msgid "" @@ -25065,10 +29068,14 @@ msgid "" "archive) and security (e.g. refusing to unpack) is left up to the tool in " "this case." msgstr "" +"作为例外,在不具备 :py:func:`hasattr(tarfile, 'data_filter') " +"` 的 Python 解释器上(参见 :pep:`706`),通常使用该过滤" +"器的工具(无论直接还是间接)可以警告用户并忽略本规范。在这种情况下,可用性(" +"例如完全信任归档文件)与安全性(例如拒绝解包)之间的权衡由工具自行决定。" #: ../source/specifications/source-distribution-format.rst:105 msgid "Unpacking without the data filter" -msgstr "" +msgstr "不使用 data 过滤器解包" #: ../source/specifications/source-distribution-format.rst:107 msgid "" @@ -25077,6 +29084,9 @@ msgid "" "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`` 过滤器的工具(例如为了向后兼容、允许额外特性或并非使用 " +"Python)必须遵循本节。(在撰写本文时,``data`` 过滤器同样遵循本节,但将来可能" +"会与之不一致。)" #: ../source/specifications/source-distribution-format.rst:113 msgid "" @@ -25084,123 +29094,131 @@ msgid "" "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 "" +msgstr "会被放置到目标目录之外的文件。" #: ../source/specifications/source-distribution-format.rst:118 msgid "Links (symbolic or hard) pointing outside the destination directory." -msgstr "" +msgstr "指向目标目录之外的链接(符号链接或硬链接)。" #: ../source/specifications/source-distribution-format.rst:119 msgid "Device files (including pipes)." -msgstr "" +msgstr "设备文件(包括管道)。" #: ../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 "" +msgstr "以下情形同样无效。工具可以按上述方式处理它们,但并非必须如此:" #: ../source/specifications/source-distribution-format.rst:124 msgid "Files with a ``..`` component in the filename or link target." -msgstr "" +msgstr "文件名或链接目标中包含 ``..`` 组件的文件。" #: ../source/specifications/source-distribution-format.rst:125 msgid "Links pointing to a file that is not part of the archive." -msgstr "" +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 "" +msgstr "工具可以使用归档中的内容,将链接(符号链接或硬链接)作为常规文件解包。" #: ../source/specifications/source-distribution-format.rst:130 msgid "When extracting *sdist* archives:" -msgstr "" +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 "" +msgstr "文件名中的前导斜杠必须去掉。(如今这是 ``tar`` 解包的标准行为。)" #: ../source/specifications/source-distribution-format.rst:134 msgid "For each ``mode`` (Unix permission) bit, tools MUST either:" -msgstr "" +msgstr "对于每一个 ``mode`` 位(即 Unix 权限位),工具必须满足以下条件之一:" #: ../source/specifications/source-distribution-format.rst:136 msgid "use the platform's default for a new file/directory (respectively)," -msgstr "" +msgstr "对新建的文件/目录分别使用平台的默认值," #: ../source/specifications/source-distribution-format.rst:137 msgid "set the bit according to the archive, or" -msgstr "" +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``)中的位。" #: ../source/specifications/source-distribution-format.rst:141 msgid "High ``mode`` bits (setuid, setgid, sticky) MUST be cleared." -msgstr "" +msgstr "``mode`` 中的高位(setuid、setgid、sticky)必须清除。" #: ../source/specifications/source-distribution-format.rst:142 msgid "It is RECOMMENDED to preserve the user *executable* bit." -msgstr "" +msgstr "建议保留用户的 *可执行* 位。" #: ../source/specifications/source-distribution-format.rst:146 msgid "Further hints" -msgstr "" +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 "" +msgstr "2020 年 11 月:本规范的初始版本通过 :pep:`643` 获得批准。" #: ../source/specifications/source-distribution-format.rst:157 msgid "July 2021: Defined what a source tree is." -msgstr "" +msgstr "2021 年 7 月:定义了什么是源码树。" #: ../source/specifications/source-distribution-format.rst:158 msgid "" "September 2022: The filename of a source distribution was standardized " "through :pep:`625`." -msgstr "" +msgstr "2022 年 9 月:源分发的文件名通过 :pep:`625` 实现标准化。" #: ../source/specifications/source-distribution-format.rst:160 msgid "" "August 2023: Source distribution archive features were standardized " "through :pep:`721`." -msgstr "" +msgstr "2023 年 8 月:源分发的归档特性通过 :pep:`721` 实现标准化。" #: ../source/specifications/source-distribution-format.rst:162 msgid "" "December 2024: License files inclusion into source distribution was " "standardized through :pep:`639`." -msgstr "" +msgstr "2024 年 12 月:许可证文件纳入源分发通过 :pep:`639` 实现标准化。" #: ../source/specifications/version-specifiers.rst:7 #: ../source/specifications/version-specifiers.rst:797 msgid "Version specifiers" -msgstr "" +msgstr "版本说明符" #: ../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 软件分发包的版本,并声明对特定版本的依" +"赖关系。" #: ../source/specifications/version-specifiers.rst:15 msgid "Definitions" @@ -25213,6 +29231,9 @@ msgid "" "\"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 "" @@ -25221,18 +29242,25 @@ msgid "" "invoked by integration tools in order to build software distributed as " "sdists rather than prebuilt binary archives." msgstr "" +"\"构建工具\"是一类旨在开发系统上运行的自动化工具,用于生成源分发和二进制分发" +"归档文件。集成工具也可以调用构建工具,来构建以 sdist 而非预构建二进制归档形式" +"分发的软件。" #: ../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 "" +"\"索引服务器\"是活跃的分发包注册机构,它们发布版本及依赖项元数据,并对所允许" +"的元数据施加约束。" #: ../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 "" +"\"发布工具\"是一类旨在开发系统上运行的自动化工具,负责将源分发和二进制分发归" +"档文件上传到索引服务器。" #: ../source/specifications/version-specifiers.rst:32 msgid "" @@ -25241,6 +29269,8 @@ msgid "" "an index server or other designated location and deploying them to the " "target system." msgstr "" +"\"安装工具\"是一类专门用于在部署目标上运行的集成工具,它们从索引服务器或其他" +"指定位置获取源分发和二进制分发归档文件,并将其部署到目标系统。" #: ../source/specifications/version-specifiers.rst:37 msgid "" @@ -25248,6 +29278,8 @@ msgid "" "servers, publication tools, integration tools and any other software that " "produces or consumes distribution version and dependency metadata." msgstr "" +"\"自动化工具\"是一个统称,涵盖构建工具、索引服务器、发布工具、集成工具,以及" +"任何生成或使用分发包版本及依赖项元数据的其他软件。" #: ../source/specifications/version-specifiers.rst:43 msgid "Version scheme" @@ -25257,7 +29289,7 @@ msgstr "版本格式" msgid "" "Distributions are identified by a public version identifier which supports " "all defined version comparison operations" -msgstr "" +msgstr "分发包由一个公共版本标识符标识,该标识符支持全部已定义的版本比较操作" #: ../source/specifications/version-specifiers.rst:48 msgid "" @@ -25266,6 +29298,8 @@ msgid "" "constraints on the version of dependencies needed in order to build or run " "the software." msgstr "" +"版本格式既用于描述特定分发归档文件所提供的分发包版本,也用于对构建或运行软件" +"所需的依赖项版本施加约束。" #: ../source/specifications/version-specifiers.rst:57 msgid "Public version identifiers" @@ -25275,16 +29309,16 @@ msgstr "公开版本识别符" msgid "" "The canonical public version identifiers MUST comply with the following " "scheme::" -msgstr "" +msgstr "公共版本标识符的规范形式必须符合以下格式::" #: ../source/specifications/version-specifiers.rst:64 msgid "" "Public version identifiers MUST NOT include leading or trailing whitespace." -msgstr "" +msgstr "公共版本标识符不得包含前导或尾随空白字符。" #: ../source/specifications/version-specifiers.rst:66 msgid "Public version identifiers MUST be unique within a given distribution." -msgstr "" +msgstr "公共版本标识符在给定分发包内必须唯一。" #: ../source/specifications/version-specifiers.rst:68 msgid "" @@ -25293,6 +29327,8 @@ msgid "" "Installation tools MAY warn the user when non-compliant or ambiguous " "versions are detected." msgstr "" +"安装工具应该忽略任何不符合此格式的公共版本,但必须同时应用下文规定的规范化规" +"则。当检测到不合规或有歧义的版本时,安装工具可以警告用户。" #: ../source/specifications/version-specifiers.rst:73 msgid "" @@ -25301,48 +29337,53 @@ msgid "" "permissive regular expression accepting inputs that may require subsequent " "normalization." msgstr "" +"另请参见 :ref:`version-specifiers-regex`,其中提供了一个用于严格检查是否符合" +"规范格式的正则表达式,以及一个更宽松的正则表达式,用于接受可能需要后续规范化" +"的输入。" #: ../source/specifications/version-specifiers.rst:78 msgid "Public version identifiers are separated into up to five segments:" -msgstr "" +msgstr "公共版本标识符最多可分为五个段:" #: ../source/specifications/version-specifiers.rst:80 msgid "Epoch segment: ``N!``" -msgstr "" +msgstr "Epoch 段:``N!``" #: ../source/specifications/version-specifiers.rst:81 msgid "Release segment: ``N(.N)*``" -msgstr "" +msgstr "发布段:``N(.N)*``" #: ../source/specifications/version-specifiers.rst:82 msgid "Pre-release segment: ``{a|b|rc}N``" -msgstr "" +msgstr "预发布段:``{a|b|rc}N``" #: ../source/specifications/version-specifiers.rst:83 msgid "Post-release segment: ``.postN``" -msgstr "" +msgstr "后发布段:``.postN``" #: ../source/specifications/version-specifiers.rst:84 msgid "Development release segment: ``.devN``" -msgstr "" +msgstr "开发发布段:``.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 "" +"任何给定的发布都属于以下各节所定义的 \"最终发布版本\"、\"预发布版本\"、\"后发" +"布版本\" 或 \"开发发布版本\" 之一。" #: ../source/specifications/version-specifiers.rst:89 msgid "" "All numeric components MUST be non-negative integers represented as " "sequences of ASCII digits." -msgstr "" +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 "" +msgstr "所有数字组件必须根据其数值而非文本字符串来解释和排序。" #: ../source/specifications/version-specifiers.rst:95 msgid "" @@ -25350,6 +29391,8 @@ msgid "" "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 "" @@ -25357,6 +29400,8 @@ msgid "" "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 "" @@ -25365,10 +29410,12 @@ msgid "" "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 "" +msgstr "本地版本标识符必须符合以下格式::" #: ../source/specifications/version-specifiers.rst:120 msgid "" @@ -25378,6 +29425,9 @@ msgid "" "have no specific semantics assigned, but some syntactic restrictions are " "imposed." msgstr "" +"本地版本标识符由一个普通的公共版本标识符(如上一节所定义)和一个任意的 \"本地" +"版本标签\" 组成,两者以加号分隔。本地版本标签没有被赋予特定的语义,但存在一些" +"语法上的限制。" #: ../source/specifications/version-specifiers.rst:125 msgid "" @@ -25388,6 +29438,10 @@ msgid "" "be too disruptive to the application or other integrated system (such as a " "Linux distribution)." msgstr "" +"本地版本标识符用于表示与上游项目完全 API(如适用,还包括 ABI)兼容的补丁版本" +"。例如,当升级到新的上游发布会给应用程序或其他集成系统(如 Linux 发行版)带来" +"过大的干扰时,应用程序开发者和系统集成者可以通过应用特定的向后移植错误修复来" +"创建此类版本。" #: ../source/specifications/version-specifiers.rst:132 msgid "" @@ -25397,6 +29451,9 @@ msgid "" "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 "" +"通过包含本地版本标签,可以区分上游发布版本与下游集成者可能修改过的重新构建版" +"本。使用本地版本标识符不会影响发布的种类,但将其应用于源分发时,的确表明该源" +"分发包含的代码可能与相应的上游发布版本不完全相同。" #: ../source/specifications/version-specifiers.rst:138 msgid "" @@ -25405,18 +29462,20 @@ msgid "" "hash representations, local version labels MUST be limited to the following " "set of permitted characters:" msgstr "" +"为了确保本地版本标识符可以方便地作为文件名和 URL 的一部分,并避免十六进制哈希" +"表示形式中的格式不一致,本地版本标签必须仅限于以下允许的字符集:" #: ../source/specifications/version-specifiers.rst:143 msgid "ASCII letters (``[a-zA-Z]``)" -msgstr "" +msgstr "ASCII 字母(``[a-zA-Z]``)" #: ../source/specifications/version-specifiers.rst:144 msgid "ASCII digits (``[0-9]``)" -msgstr "" +msgstr "ASCII 数字(``[0-9]``)" #: ../source/specifications/version-specifiers.rst:145 msgid "periods (``.``)" -msgstr "" +msgstr "句点(``.``)" #: ../source/specifications/version-specifiers.rst:147 msgid "Local version labels MUST start and end with an ASCII letter or digit." @@ -25435,6 +29494,11 @@ msgid "" "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 字母,则该段将按不区分大小写的字典序进行比较。在比较数字段与字典序段时" +",数字段始终大于字典序段。此外,只要较短的本地版本的各段与较长的本地版本各段" +"的开头完全一致,段数更多的本地版本始终大于段数较少的本地版本。" #: ../source/specifications/version-specifiers.rst:160 msgid "" @@ -25443,6 +29507,8 @@ msgid "" "project, potentially backporting security and bug fixes from later versions " "of the upstream project." msgstr "" +"\"上游项目\" 是自行定义其公共版本的项目。\"下游项目\" 则是会跟踪并重新分发上" +"游项目的项目,且可能从上游项目的后续版本向后移植安全和错误修复。" #: ../source/specifications/version-specifiers.rst:165 msgid "" @@ -25455,22 +29521,27 @@ msgid "" "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 "" +msgstr "最终发布" #: ../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 "" +msgstr "仅由发布段和可选的 epoch 标识符组成的版本标识符称为 \"最终发布版本\"。" #: ../source/specifications/version-specifiers.rst:182 msgid "" "The release segment consists of one or more non-negative integer values, " "separated by dots::" -msgstr "" +msgstr "发布段由一个或多个以点号分隔的非负整数值组成::" #: ../source/specifications/version-specifiers.rst:187 msgid "" @@ -25478,6 +29549,8 @@ msgid "" "increasing fashion, otherwise automated tools will not be able to upgrade " "them correctly." msgstr "" +"项目内的最终发布版本必须以持续递增的方式编号,否则自动化工具将无法正确升级它" +"们。" #: ../source/specifications/version-specifiers.rst:191 msgid "" @@ -25486,6 +29559,8 @@ msgid "" "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 "" @@ -25493,6 +29568,8 @@ msgid "" "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 "" @@ -25500,6 +29577,8 @@ msgid "" "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 "" +"发布系列是指任何一组以相同前缀开头的最终发布版本号。例如" +",``3.3.1``、``3.3.5`` 和 ``3.3.9.45`` 都属于 ``3.3`` 发布系列。" #: ../source/specifications/version-specifiers.rst:221 msgid "" @@ -25508,12 +29587,16 @@ msgid "" "``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" @@ -25524,18 +29607,22 @@ 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、候选发布\" 的预发布周期,以便在最终发布之前支持用" +"户进行测试。" #: ../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 "" +"如果在项目开发周期中使用这些预发布版本,则通过在版本标识符中包含预发布段来表" +"示::" #: ../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 "" +msgstr "仅由发布段和预发布段组成的版本标识符称为 \"预发布版本\"。" #: ../source/specifications/version-specifiers.rst:256 msgid "" @@ -25544,24 +29631,33 @@ msgid "" "given release are ordered first by phase (alpha, beta, release candidate) " "and then by the numerical component within that phase." msgstr "" +"预发布段由一个表示预发布阶段的字母标识符和一个非负整数值组成。给定发布的各预" +"发布版本首先按阶段(alpha、beta、候选发布)排序,然后按该阶段内的数字组件排序" +"。" #: ../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" @@ -25573,18 +29669,22 @@ msgid "" "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 "" +"如果在项目开发周期中使用这些后发布版本,则通过在版本标识符中包含后发布段来表" +"示::" #: ../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 "" +msgstr "包含后发布段但不包含开发发布段的版本标识符称为 \"后发布版本\"。" #: ../source/specifications/version-specifiers.rst:286 msgid "" @@ -25593,6 +29693,8 @@ msgid "" "component, immediately following the corresponding release, and ahead of any " "subsequent release." msgstr "" +"后发布段由字符串 ``.post`` 后跟一个非负整数值组成。后发布版本按其数字组件排序" +",紧跟在相应的发布之后,且位于任何后续发布之前。" #: ../source/specifications/version-specifiers.rst:293 msgid "" @@ -25601,10 +29703,12 @@ msgid "" "release number and increment the final component for each maintenance " "release." msgstr "" +"强烈不建议使用后发布版本来发布包含实际错误修复的维护版本。一般来说,更好的做" +"法是使用更长的发布版本号,并为每个维护版本递增最后一个组件。" #: ../source/specifications/version-specifiers.rst:298 msgid "Post-releases are also permitted for pre-releases::" -msgstr "" +msgstr "也允许为预发布版本创建后发布版本::" #: ../source/specifications/version-specifiers.rst:306 msgid "" @@ -25613,10 +29717,12 @@ msgid "" "is substantially clearer to simply create a new pre-release by incrementing " "the numeric component." msgstr "" +"强烈不建议创建预发布版本的后续发布,因为这会使版本标识符难以被人读懂。一般来" +"说,直接递增数字组件来创建新的预发布版本会清晰得多。" #: ../source/specifications/version-specifiers.rst:313 msgid "Developmental releases" -msgstr "" +msgstr "开发版本" #: ../source/specifications/version-specifiers.rst:315 msgid "" @@ -25625,6 +29731,8 @@ msgid "" "directly from source control which do not conflict with later project " "releases." msgstr "" +"有些项目会定期发布开发版本,而系统打包者(尤其是 Linux 发行版的打包者)可能希" +"望直接从源代码版本控制系统创建不会与项目日后的发布版本相冲突的早期发布版本。" #: ../source/specifications/version-specifiers.rst:320 msgid "" @@ -25632,12 +29740,14 @@ msgid "" "releases are indicated by including a developmental release segment in the " "version identifier::" msgstr "" +"如果作为项目开发周期的一部分使用,这些开发版本会通过在版本标识符中包含开发版" +"本段来表示::" #: ../source/specifications/version-specifiers.rst:326 msgid "" "A version identifier that includes a developmental release segment is termed " "a \"developmental release\"." -msgstr "" +msgstr "包含开发版本段的版本标识符称为“开发版本”。" #: ../source/specifications/version-specifiers.rst:329 msgid "" @@ -25647,18 +29757,21 @@ msgid "" "before any pre-releases with the same release segment), and following any " "previous release (including any post-releases)." msgstr "" +"开发版本段由字符串 ``.dev`` 后跟一个非负整数值组成。开发版本按其数字组件排序" +",紧排在相应的发布版本之前(且在具有相同发布段的任何预发布版本之前),并位于" +"任何先前的发布版本(包括任何后续发布)之后。" #: ../source/specifications/version-specifiers.rst:335 msgid "" "Developmental releases are also permitted for pre-releases and post-" "releases::" -msgstr "" +msgstr "开发版本也可用于预发布版本和后续发布::" #: ../source/specifications/version-specifiers.rst:343 msgid "" "Do note that development releases are considered a type of pre-release when " "handling them." -msgstr "" +msgstr "请注意,在处理时,开发版本会被视为预发布版本的一种。" #: ../source/specifications/version-specifiers.rst:348 msgid "" @@ -25669,6 +29782,9 @@ msgid "" "published, it is substantially clearer to instead create a new pre-release " "by incrementing the numeric component." msgstr "" +"虽然开发版本对持续集成可能有用,但强烈不建议将预发布版本的开发版本发布到通用" +"公共索引服务器,因为这会使版本标识符难以被人读懂。如果确实需要发布这样的版本" +",改为通过递增数字组件来创建新的预发布版本会清晰得多。" #: ../source/specifications/version-specifiers.rst:355 msgid "" @@ -25676,6 +29792,8 @@ msgid "" "they may be appropriate for projects which use the post-release notation for " "full maintenance releases which may include code changes." msgstr "" +"同样强烈不建议创建后续发布的开发版本,但对于使用后续发布表示法来标注可能包含" +"代码变更的完整维护版本的项目而言,这种做法可能是合适的。" #: ../source/specifications/version-specifiers.rst:361 msgid "Version epochs" @@ -25686,10 +29804,12 @@ msgid "" "If included in a version identifier, the epoch appears before all other " "components, separated from the release segment by an exclamation mark::" msgstr "" +"如果版本标识符中包含 epoch,epoch 会出现在所有其他组件之前,并通过感叹号与发" +"布段分隔::" #: ../source/specifications/version-specifiers.rst:368 msgid "If no explicit epoch is given, the implicit epoch is ``0``." -msgstr "" +msgstr "如果未显式给出 epoch,则隐式 epoch 为 ``0``。" #: ../source/specifications/version-specifiers.rst:370 msgid "" @@ -25701,6 +29821,11 @@ msgid "" "releases would be identified as *older* than the date based releases when " "using the normal sorting scheme::" msgstr "" +"大多数版本标识符不会包含 epoch,因为只有当项目 *更改* 其版本编号的处理方式," +"并且这种更改会使常规版本排序规则给出错误答案时,才需要显式 epoch。例如,如果" +"项目正在使用 ``2014.04`` 这样基于日期的版本,并希望切换到 ``1.0`` 这样的语义" +"化版本,那么在使用常规排序方案时,新的发布版本会被识别为比基于日期的发布版本 " +"*更旧* ::" #: ../source/specifications/version-specifiers.rst:384 msgid "" @@ -25708,6 +29833,8 @@ msgid "" "appropriately, as all versions from a later epoch are sorted after versions " "from an earlier epoch::" msgstr "" +"不过,通过指定显式 epoch,可以恰当地改变排序顺序,因为较高 epoch 中的所有版本" +"都排在较低 epoch 的版本之后::" #: ../source/specifications/version-specifiers.rst:396 msgid "" @@ -25716,6 +29843,9 @@ msgid "" "consumed, and due to their scarce use they may also not be well supported by " "Python packaging tools." msgstr "" +"不鼓励使用非零 epoch。在可能需要使用 Python 软件包的下游打包体系中,它们往往" +"不受支持或不被鼓励;而且由于很少被使用,Python 打包工具对它们的支持也可能不够" +"完善。" #: ../source/specifications/version-specifiers.rst:401 msgid "" @@ -25723,6 +29853,8 @@ msgid "" "monotonically increasing numbers in epoch zero. For example, the version " "2026.x could be unambiguously followed by 3000.x." msgstr "" +"当需要更改版本方案时,更好的做法是在 epoch 0 中继续使用单调递增的编号。例如," +"版本 2026.x 之后可以毫无歧义地接续 3000.x。" #: ../source/specifications/version-specifiers.rst:405 msgid "" @@ -25730,6 +29862,8 @@ msgid "" "discuss.python.org/t/discouraging-use-of-epoch-segments-in-versions/" "105811>`__ for the relevant discussion." msgstr "" +"相关讨论请参见 `不鼓励在版本中使用 epoch 段 `__ 。" #: ../source/specifications/version-specifiers.rst:413 msgid "Normalization" @@ -25742,10 +29876,12 @@ msgid "" "parsing versions. These syntaxes MUST be considered when parsing a version, " "however they should be \"normalized\" to the standard syntax defined above." msgstr "" +"为了与现有版本保持更好的兼容性,在解析版本时有许多必须加以考虑的“替代”语法。" +"在解析版本时必须考虑这些语法,不过应该将它们“规范化”为上文定义的标准语法。" #: ../source/specifications/version-specifiers.rst:422 msgid "Case sensitivity" -msgstr "" +msgstr "大小写敏感性" #: ../source/specifications/version-specifiers.rst:424 msgid "" @@ -25753,6 +29889,8 @@ msgid "" "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" @@ -25766,10 +29904,14 @@ msgid "" "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()`` 解释,并规范化为输出的字符串形式。这意味着 " +"``00`` 这样的整数版本会规范化为 ``0``,而 ``09000`` 会规范化为 ``9000``。这一" +"规则不适用于本地版本中由字母数字构成的段内的整数,例如 ``1.0+foo0100``,这样" +"的版本已处于规范化形式。" #: ../source/specifications/version-specifiers.rst:440 msgid "Pre-release separators" -msgstr "" +msgstr "预发布分隔符" #: ../source/specifications/version-specifiers.rst:442 msgid "" @@ -25780,10 +29922,14 @@ msgid "" "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 "" +"预发布版本应该允许在发布段和预发布段之间使用 ``.``、``-`` 或 ``_`` 分隔符。这" +"种情况的标准形式是不使用分隔符。这使得 ``1.1.a1`` 或 ``1.1-a1`` 这样的版本会" +"被规范化为 ``1.1a1``。此外,还应该允许在预发布标记和编号之间使用分隔符。这使" +"得 ``1.0a.1`` 这样的版本会被规范化为 ``1.0a1``。" #: ../source/specifications/version-specifiers.rst:451 msgid "Pre-release spelling" -msgstr "" +msgstr "预发布拼写" #: ../source/specifications/version-specifiers.rst:453 msgid "" @@ -25794,10 +29940,15 @@ msgid "" "case the additional spelling should be considered equivalent to their normal " "forms." msgstr "" +"预发布版本允许为 ``a``、``b``、``rc``、``rc``、``rc`` 分别使用 " +"``alpha``、``beta``、``c``、``pre``、``preview`` 这些替代拼写。这使得 " +"``1.1alpha1``、``1.1beta2`` 或 ``1.1c3`` 这样的版本会分别规范化为 " +"``1.1a1``、``1.1b2`` 和 ``1.1rc3``。在所有情况下,这些替代拼写都应该被视为与" +"其标准形式等价。" #: ../source/specifications/version-specifiers.rst:462 msgid "Implicit pre-release number" -msgstr "" +msgstr "隐式预发布编号" #: ../source/specifications/version-specifiers.rst:464 msgid "" @@ -25806,10 +29957,12 @@ msgid "" "explicitly. This allows versions such as ``1.2a`` which is normalized to " "``1.2a0``." msgstr "" +"预发布版本允许省略编号,此时该编号被隐式地假定为 ``0``。这种情况的标准形式是" +"显式地包含 ``0``。这使得 ``1.2a`` 这样的版本会被规范化为 ``1.2a0``。" #: ../source/specifications/version-specifiers.rst:470 msgid "Post release separators" -msgstr "" +msgstr "后发布分隔符" #: ../source/specifications/version-specifiers.rst:472 msgid "" @@ -25821,10 +29974,15 @@ msgid "" "This allows versions like ``1.2.post-2`` which would normalize to " "``1.2.post2``." msgstr "" +"后发布版本允许使用 ``.``、``-`` 或 ``_`` 分隔符,也允许完全省略分隔符。这种情" +"况的标准形式是使用 ``.`` 分隔符。这使得 ``1.2-post2`` 或 ``1.2post2`` 这样的" +"版本会规范化为 ``1.2.post2``。与预发布分隔符类似,这也允许在后发布标记和编号" +"之间使用可选的分隔符。这使得 ``1.2.post-2`` 这样的版本会被规范化为 " +"``1.2.post2``。" #: ../source/specifications/version-specifiers.rst:481 msgid "Post release spelling" -msgstr "" +msgstr "后发布拼写" #: ../source/specifications/version-specifiers.rst:483 msgid "" @@ -25833,10 +29991,13 @@ msgid "" "with the pre-releases the additional spellings should be considered " "equivalent to their normal forms." msgstr "" +"后发布版本允许使用 ``rev`` 和 ``r`` 这些替代拼写。这使得 ``1.0-r4`` 这样的版" +"本会规范化为 ``1.0.post4``。与预发布版本一样,这些替代拼写也应该被视为与其标" +"准形式等价。" #: ../source/specifications/version-specifiers.rst:490 msgid "Implicit post release number" -msgstr "" +msgstr "隐式后发布编号" #: ../source/specifications/version-specifiers.rst:492 msgid "" @@ -25845,10 +30006,12 @@ msgid "" "explicitly. This allows versions such as ``1.2.post`` which is normalized to " "``1.2.post0``." msgstr "" +"后发布版本允许省略编号,此时该编号被隐式地假定为 ``0``。这种情况的标准形式是" +"显式地包含 ``0``。这使得 ``1.2.post`` 这样的版本会被规范化为 ``1.2.post0``。" #: ../source/specifications/version-specifiers.rst:498 msgid "Implicit post releases" -msgstr "" +msgstr "隐式后发布版本" #: ../source/specifications/version-specifiers.rst:500 msgid "" @@ -25859,10 +30022,14 @@ msgid "" "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`` 标记。使用这种形式时,分隔符必须是 ``-``,不" +"允许使用其他任何形式。这使得 ``1.0-1`` 这样的版本会被规范化为 ``1.0.post1``。" +"这一特定的规范化不得与隐式后发布编号规则结合使用。换句话说,``1.0-`` *不是* " +"一个有效的版本,并且 *不会* 规范化为 ``1.0.post0``。" #: ../source/specifications/version-specifiers.rst:509 msgid "Development release separators" -msgstr "" +msgstr "开发发布分隔符" #: ../source/specifications/version-specifiers.rst:511 msgid "" @@ -25871,10 +30038,13 @@ msgid "" "``.`` separator. This allows versions such as ``1.2-dev2`` or ``1.2dev2`` " "which normalize to ``1.2.dev2``." msgstr "" +"开发发布版本允许使用 ``.``、``-`` 或 ``_`` 分隔符,也允许完全省略分隔符。这种" +"情况的标准形式是使用 ``.`` 分隔符。这使得 ``1.2-dev2`` 或 ``1.2dev2`` 这样的" +"版本会规范化为 ``1.2.dev2``。" #: ../source/specifications/version-specifiers.rst:518 msgid "Implicit development release number" -msgstr "" +msgstr "隐式开发发布编号" #: ../source/specifications/version-specifiers.rst:520 msgid "" @@ -25883,6 +30053,8 @@ msgid "" "``0`` explicitly. This allows versions such as ``1.2.dev`` which is " "normalized to ``1.2.dev0``." msgstr "" +"开发发布版本允许省略编号,此时该编号被隐式地假定为 ``0``。这种情况的标准形式" +"是显式地包含 ``0``。这使得 ``1.2.dev`` 这样的版本会被规范化为 ``1.2.dev0``。" #: ../source/specifications/version-specifiers.rst:527 msgid "Local version segments" @@ -25895,10 +30067,13 @@ msgid "" "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 "" +msgstr "前导 v 字符" #: ../source/specifications/version-specifiers.rst:538 msgid "" @@ -25908,10 +30083,13 @@ msgid "" "version. The same version with and without the ``v`` is considered " "equivalent." msgstr "" +"为了支持 ``v1.0`` 这种常见的版本写法,版本号前面可以带一个单独的字面 ``v`` 字" +"符。在任何用途中都必须忽略该字符,并且应当从版本的所有规范化形式中省略它。同" +"一版本带不带 ``v`` 均被视为等价。" #: ../source/specifications/version-specifiers.rst:545 msgid "Leading and Trailing Whitespace" -msgstr "" +msgstr "前导和尾随空白字符" #: ../source/specifications/version-specifiers.rst:547 msgid "" @@ -25921,10 +30099,13 @@ msgid "" "be handled sensibly, such as a version like ``1.0\\n`` which normalizes to " "``1.0``." msgstr "" +"版本的前导和尾随空白字符必须被静默忽略,并从版本的所有规范化形式中移除。这包" +"括 ``\" \"``、``\\t``、``\\n``、``\\r``、``\\f`` 和 ``\\v``。这样就可以妥善处" +"理意外混入的空白字符,例如 ``1.0\\n`` 这样的版本会被规范化为 ``1.0``。" #: ../source/specifications/version-specifiers.rst:554 msgid "Examples of compliant version schemes" -msgstr "" +msgstr "符合规范的版本格式示例" #: ../source/specifications/version-specifiers.rst:556 msgid "" @@ -25935,6 +30116,9 @@ msgid "" "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 "" @@ -25943,35 +30127,39 @@ msgid "" "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 "" +msgstr "简单的 \"major.minor\" 版本编号::" #: ../source/specifications/version-specifiers.rst:577 msgid "Simple \"major.minor.micro\" versioning::" -msgstr "" +msgstr "简单的 \"major.minor.micro\" 版本编号::" #: ../source/specifications/version-specifiers.rst:585 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" -msgstr "" +msgstr "带 alpha、beta 和候选发布等预发布版本的 \"major.minor\" 版本编号::" #: ../source/specifications/version-specifiers.rst:597 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" +"带开发发布版本、候选发布版本和用于轻微更正的后发布版本的 \"major.minor\" 版本" +"编号::" #: ../source/specifications/version-specifiers.rst:612 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" -msgstr "" +msgstr "基于日期的发布,在每年内使用递增的序号,并跳过零::" #: ../source/specifications/version-specifiers.rst:626 msgid "Summary of permitted suffixes and relative ordering" -msgstr "" +msgstr "允许的后缀及相对排序总结" #: ../source/specifications/version-specifiers.rst:630 msgid "" @@ -25979,6 +30167,8 @@ msgid "" "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" +"本节主要面向自动处理分发包元数据的工具作者,而非需要决定版本编号方案的 " +"Python 分发包开发者。" #: ../source/specifications/version-specifiers.rst:634 msgid "" @@ -25986,6 +30176,8 @@ msgid "" "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" +"版本标识符的 epoch 段必须按照给定 epoch 的数值排序。如果不存在 epoch 段,则隐" +"含的数值为 ``0``。" #: ../source/specifications/version-specifiers.rst:638 msgid "" @@ -25993,18 +30185,22 @@ msgid "" "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" +"当规范化的发布段按如下方式解析时,版本标识符的发布段必须按照与 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 "" +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 "" @@ -26013,6 +30209,9 @@ msgid "" "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`` 那样排序。对于在" +"同一发布段中 ``c`` 和 ``rc`` 使用了相同 ``N`` 的情况,工具可以将其视为有歧义" +"而拒绝,并且仍然符合本规范。" #: ../source/specifications/version-specifiers.rst:657 msgid "" @@ -26020,12 +30219,14 @@ msgid "" "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" +"在 alpha(``1.0a1``)、beta(``1.0b1``)或候选发布(``1.0rc1``、``1.0c1``)中" +",允许使用以下后缀,并且必须按如下顺序排序::" #: ../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 "" +msgstr "在后发布版本(``1.0.post1``)中,允许使用以下后缀,并且必须按如下顺序排序::" #: ../source/specifications/version-specifiers.rst:668 msgid "" @@ -26033,20 +30234,24 @@ msgid "" "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 "" +"对于具有相同前缀的预发布段、后发布段或开发发布段,必须按数字组件的值进行排序" +"。" #: ../source/specifications/version-specifiers.rst:675 msgid "The following example covers many of the possible combinations::" -msgstr "" +msgstr "以下示例涵盖了许多可能的组合::" #: ../source/specifications/version-specifiers.rst:700 msgid "Version ordering across different metadata versions" -msgstr "" +msgstr "不同元数据版本之间的版本排序" #: ../source/specifications/version-specifiers.rst:702 msgid "" @@ -26054,6 +30259,9 @@ msgid "" "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 "" @@ -26065,6 +30273,10 @@ msgid "" "requirements necessitate a standardization across one parsing mechanism to " "be used for all versions of a project." msgstr "" +"由于简单安装器 API 的固有特性,安装器无法得知某个分发包使用的是哪个版本的元数" +"据。此外,安装器还需要能够构建一个排定了合理优先级的列表,其中包含某个项目的" +"全部版本(或尽可能多的版本),以便确定应安装哪些版本。这些需求要求将单一解析" +"机制标准化,用于一个项目的所有版本。" #: ../source/specifications/version-specifiers.rst:714 msgid "" @@ -26075,16 +30287,19 @@ msgid "" "and ordering schemes if no versions complying with this specification are " "available." msgstr "" +"基于上述原因,本规范必须用于所有版本的元数据,并且即使对于元数据 v1.2,也取代" +"了 :pep:`386`。工具应该忽略任何无法按本规范规则解析的版本,但如果没有任何符合" +"本规范的版本可用,则可以回退到由实现定义的版本解析和排序方案。" #: ../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 "" +msgstr "分发包用户可能希望从他们控制的任何私有包索引中显式移除不合规的版本。" #: ../source/specifications/version-specifiers.rst:725 msgid "Compatibility with other version schemes" -msgstr "" +msgstr "与其他版本格式的兼容性" #: ../source/specifications/version-specifiers.rst:727 msgid "" @@ -26094,6 +30309,9 @@ msgid "" "the metadata while the translated public version is published in the version " "field." msgstr "" +"一些项目可能选择使用的版本格式需要经过转换,才能符合本规范定义的公共版本格式" +"。在这种情况下,项目专属版本可以存储在元数据中,而转换后的公共版本则发布在版" +"本字段中。" #: ../source/specifications/version-specifiers.rst:732 msgid "" @@ -26101,6 +30319,8 @@ msgid "" "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 "" @@ -26112,6 +30332,10 @@ msgid "" "on other distributions, and when publishing a distribution that others rely " "on." msgstr "" +"`语义版本控制`_ 是一种流行的版本标识方案。对于版本号中不同元素的重要性,它比" +"本规范具有更强的规定性。即使项目选择不遵循语义版本控制的细节,这一方案也值得" +"了解,因为它涵盖了依赖其他分发包时以及发布被他人所依赖的分发包时可能出现的许" +"多问题。" #: ../source/specifications/version-specifiers.rst:747 msgid "" @@ -26120,6 +30344,9 @@ msgid "" "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\")方面(2.0.0 规范中的第 1 至 8 条)与本规范定义的版本格" +"式完全兼容,并且鼓励遵循这些方面。" #: ../source/specifications/version-specifiers.rst:752 msgid "" @@ -26127,6 +30354,8 @@ msgid "" "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 "" @@ -26134,15 +30363,17 @@ msgid "" "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 "" +msgstr "具体的构建信息也可以包含在本地版本标签中。" #: ../source/specifications/version-specifiers.rst:766 msgid "DVCS based version labels" -msgstr "" +msgstr "基于 DVCS 的版本标签" #: ../source/specifications/version-specifiers.rst:768 msgid "" @@ -26151,6 +30382,9 @@ msgid "" "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 "" @@ -26158,15 +30392,17 @@ msgid "" "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 "" +msgstr "用于标识的哈希信息也可以包含在本地版本标签中。" #: ../source/specifications/version-specifiers.rst:781 msgid "Olson database versioning" -msgstr "" +msgstr "Olson 数据库版本编号" #: ../source/specifications/version-specifiers.rst:783 msgid "" @@ -26174,6 +30410,8 @@ msgid "" "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 "" @@ -26182,46 +30420,50 @@ msgid "" "release) and is incremented with each subsequent database update within the " "year." msgstr "" +"这可以转换为符合规范的公共版本标识符 ``.``,其中序号从零或一开" +"始(对应 '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 "" +msgstr "版本说明符由一系列版本子句组成,子句之间以逗号分隔。例如::" #: ../source/specifications/version-specifiers.rst:804 msgid "The comparison operator determines the kind of version clause:" -msgstr "" +msgstr "比较操作符决定了版本子句的类型:" #: ../source/specifications/version-specifiers.rst:806 msgid "``~=``: `Compatible release`_ clause" -msgstr "" +msgstr "``~=``:`兼容发布`_ 子句" #: ../source/specifications/version-specifiers.rst:807 msgid "``==``: `Version matching`_ clause" -msgstr "" +msgstr "``==``:`版本匹配`_ 子句" #: ../source/specifications/version-specifiers.rst:808 msgid "``!=``: `Version exclusion`_ clause" -msgstr "" +msgstr "``!=``:`版本排除`_ 子句" #: ../source/specifications/version-specifiers.rst:809 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" -msgstr "" +msgstr "``<=``、``>=``:`包含性有序比较`_ 子句" #: ../source/specifications/version-specifiers.rst:810 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" -msgstr "" +msgstr "``<``、``>``:`排他性有序比较`_ 子句" #: ../source/specifications/version-specifiers.rst:811 msgid "``===``: `Arbitrary equality`_ clause." -msgstr "" +msgstr "``===``:`任意相等`_ 子句。" #: ../source/specifications/version-specifiers.rst:813 msgid "" @@ -26229,12 +30471,14 @@ msgid "" "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 "" +msgstr "条件操作符与其后版本标识符之间的空白是可选的,逗号周围的空白亦然。" #: ../source/specifications/version-specifiers.rst:820 msgid "" @@ -26244,6 +30488,9 @@ msgid "" "releases are considered as candidate versions SHOULD be handled as described " "in `Handling of pre-releases`_." msgstr "" +"当多个候选版本匹配某个版本说明符时,首选版本应该是根据标准 `版本格式`_ 定义的" +"一致排序所确定的最新版本。预发布版本是否应被视为候选版本,应该按照 `预发布版" +"本的处理`_ 中的描述进行处理。" #: ../source/specifications/version-specifiers.rst:826 msgid "" @@ -26251,10 +30498,12 @@ msgid "" "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 "" +msgstr "兼容发布" #: ../source/specifications/version-specifiers.rst:837 msgid "" @@ -26262,6 +30511,8 @@ msgid "" "``~=`` 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 "" @@ -26269,22 +30520,24 @@ msgid "" "`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 "" +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 "" +msgstr "此操作符不得与 ``~=1`` 这样的单段版本号一起使用。" #: ../source/specifications/version-specifiers.rst:853 msgid "For example, the following groups of version clauses are equivalent::" -msgstr "" +msgstr "例如,以下各组版本子句是等价的::" #: ../source/specifications/version-specifiers.rst:861 msgid "" @@ -26292,6 +30545,8 @@ msgid "" "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 "" @@ -26299,6 +30554,8 @@ msgid "" "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" +"发布段比较的填充规则意味着,兼容发布子句中假定的前向兼容程度,可以通过在版本" +"说明符末尾附加额外的零来控制::" #: ../source/specifications/version-specifiers.rst:883 msgid "Version matching" @@ -26308,7 +30565,7 @@ msgstr "版本匹配" msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." -msgstr "" +msgstr "版本匹配子句包括版本匹配操作符 ``==`` 和一个版本标识符。" #: ../source/specifications/version-specifiers.rst:888 msgid "" @@ -26316,6 +30573,8 @@ msgid "" "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" +"指定的版本标识符必须符合 `版本格式`_ 中所述的标准格式,但如下文所述,公共版本" +"标识符允许带有尾部 ``.*``。" #: ../source/specifications/version-specifiers.rst:892 msgid "" @@ -26325,6 +30584,9 @@ msgid "" "release segment to ensure the release segments are compared with the same " "length." msgstr "" +"默认情况下,版本匹配操作符基于严格的相等比较:指定的版本必须与所请求的版本完" +"全相同。所执行的 *唯一* 替换是对发布段进行零填充,以确保各发布段以相同的长度" +"进行比较。" #: ../source/specifications/version-specifiers.rst:898 msgid "" @@ -26333,6 +30595,8 @@ msgid "" "issue warnings and MAY reject them entirely when strict version matches are " "used inappropriately." msgstr "" +"当严格版本匹配被不恰当地使用时,自动化工具至少应该发出警告,并且可以完全拒绝" +"此类匹配。严格版本匹配是否合适,取决于版本说明符的具体使用场景。" #: ../source/specifications/version-specifiers.rst:903 msgid "" @@ -26343,13 +30607,17 @@ msgid "" "specified version includes only a release segment, then trailing components " "(or the lack thereof) in the release segment are also ignored." msgstr "" +"通过在版本匹配子句中的版本标识符末尾附加 ``.*``,可以请求使用前缀匹配来代替严" +"格比较。这意味着在判定版本标识符是否匹配该子句时,额外的尾部段将被忽略。如果" +"指定的版本仅包含发布段,那么发布段中的尾部组件(或尾部组件的缺失)也会被忽略" +"。" #: ../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 "" +msgstr "例如,给定版本 ``1.1.post1``,以下子句的匹配情况如下所示::" #: ../source/specifications/version-specifiers.rst:917 msgid "" @@ -26357,6 +30625,8 @@ msgid "" "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 "" @@ -26365,6 +30635,8 @@ msgid "" "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 "" @@ -26374,6 +30646,9 @@ msgid "" "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 "" @@ -26384,6 +30659,9 @@ msgid "" "for repeatable *deployments of applications* while using a shared " "distribution index." msgstr "" +"在为已发布的分发包定义依赖项时,强烈不建议使用 ``==`` (除非至少带有通配符后" +"缀),因为这会大大增加安全修复部署的复杂性。严格版本比较操作符主要用于在使用" +"共享的分发包索引时,为可重复的 *应用程序部署* 定义依赖项。" #: ../source/specifications/version-specifiers.rst:950 msgid "" @@ -26391,6 +30669,8 @@ msgid "" "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 "" @@ -26400,6 +30680,9 @@ msgid "" "above, and the local version label being checked for equivalence using a " "strict string equality comparison." msgstr "" +"如果指定的版本标识符是本地版本标识符,那么在匹配版本时必须考虑候选版本的本地" +"版本标签:公共版本标识符按上述方式匹配,本地版本标签则通过严格的字符串相等比" +"较来检查其等价性。" #: ../source/specifications/version-specifiers.rst:962 msgid "Version exclusion" @@ -26409,7 +30692,7 @@ msgstr "版本排除" msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." -msgstr "" +msgstr "版本排除子句包括版本排除操作符 ``!=`` 和一个版本标识符。" #: ../source/specifications/version-specifiers.rst:967 msgid "" @@ -26417,10 +30700,12 @@ msgid "" "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 "" +msgstr "包含性有序比较" #: ../source/specifications/version-specifiers.rst:982 msgid "" @@ -26430,26 +30715,29 @@ msgid "" "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 "" +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 "" +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 "" +msgstr "本版本说明符中不允许使用本地版本标识符。" #: ../source/specifications/version-specifiers.rst:997 msgid "Exclusive ordered comparison" -msgstr "" +msgstr "排他性有序比较" #: ../source/specifications/version-specifiers.rst:999 msgid "" @@ -26460,6 +30748,9 @@ msgid "" "specifically exclude pre-releases, post-releases, and local versions of the " "specified version." msgstr "" +"排他性有序比较 ``>`` 和 ``<`` 与包含性有序比较类似,都是依据标准 `版本格式`_ " +"所定义的一致排序规则,基于候选版本与指定版本的相对位置进行判断。不同的是,它" +"们会明确排除指定版本的预发布版本、后发布版本和本地版本。" #: ../source/specifications/version-specifiers.rst:1005 msgid "" @@ -26470,12 +30761,17 @@ msgid "" "``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 "" +msgstr "排他性有序比较 ``>V`` **不得** 匹配指定版本的本地版本。" #: ../source/specifications/version-specifiers.rst:1015 msgid "" @@ -26484,10 +30780,13 @@ msgid "" "Allowing pre-releases that are earlier than, but not equal to a specific pre-" "release may be accomplished by using ``=`` entry as part " "of the URL fragment." msgstr "" +"对于源归档文件引用和 wheel 引用,可以在 URL 片段中包含 ``" +"=`` 条目来指定预期哈希值。" #: ../source/specifications/version-specifiers.rst:1145 msgid "" @@ -26700,6 +31035,9 @@ msgid "" "Automated tools MAY omit warnings about missing hashes for version control " "systems that do not provide hash based commit identifiers." msgstr "" +"对于版本控制引用,应该使用 ``VCS+protocol`` 方案来同时标识版本控制系统和安全" +"传输方式,并且应该使用带基于哈希的提交标识符的版本控制系统。对于不提供基于哈" +"希的提交标识符的版本控制系统,自动化工具可以省略关于缺少哈希值的警告。" #: ../source/specifications/version-specifiers.rst:1151 msgid "" @@ -26708,6 +31046,9 @@ msgid "" "end of the URL using the ``@`` or the ``@#`` " "notation." msgstr "" +"为了处理不支持在 URL 中直接包含提交或标签引用的版本控制系统,可以使用 " +"``@`` 或 ``@#`` 表示法将相应信息附加到 URL 末" +"尾。" #: ../source/specifications/version-specifiers.rst:1158 msgid "" @@ -26719,6 +31060,11 @@ msgid "" "a malicious repo with a particular tag is easy, creating one with a specific " "*hash*, less so)." msgstr "" +"这与 pip 目前支持的 VCS 引用表示法并不 *完全* 相同。首先,分发包名称被移到了" +"前面,而不是作为 URL 的一部分嵌入其中。其次,即使基于标签进行检索,也会包含提" +"交哈希,以满足上文 *每条* 链接都应包含哈希值、从而加大伪造难度的要求(创建带" +"有特定标签的恶意仓库很容易,而创建带有特定 *哈希* 的恶意仓库就没那么容易了)" +"。" #: ../source/specifications/version-specifiers.rst:1166 msgid "Remote URL examples::" @@ -26726,7 +31072,7 @@ msgstr "远程 URL 示例::" #: ../source/specifications/version-specifiers.rst:1174 msgid "File URLs" -msgstr "" +msgstr "文件 URL" #: ../source/specifications/version-specifiers.rst:1176 msgid "" @@ -26735,6 +31081,9 @@ msgid "" "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``;而且即使省略了 ````,第三个斜杠也必须仍然存在。``" +"`` 定义了要访问的文件在文件系统中的路径。" #: ../source/specifications/version-specifiers.rst:1181 msgid "" @@ -26743,6 +31092,9 @@ msgid "" "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。换句话说,在 \\*nix 上" +",``file://`` 方案只能用于访问本地机器上的路径。" #: ../source/specifications/version-specifiers.rst:1186 msgid "" @@ -26755,10 +31107,17 @@ msgid "" "see `MSDN `_." msgstr "" +"在 Windows 上,文件格式应在适用时把盘符作为 ```` 的一部分(例如 " +"``file:///c:/path/to/a/file``)。与 \\*nix 不同,在 Windows 上 ```` 参" +"数可用于指定位于网络共享上的文件。换句话说,若要把 ``\\\\machine\\volume\\f" +"ile`` 转换为 ``file://`` URL,最终会得到 ``file://machine/volume/file``。有" +"关 Windows 上 ``file://`` URL 的更多信息,请参见 `MSDN `_。" #: ../source/specifications/version-specifiers.rst:1197 msgid "Summary of differences from pkg_resources.parse_version" -msgstr "" +msgstr "与 pkg_resources.parse_version 的差异总结" #: ../source/specifications/version-specifiers.rst:1199 msgid "" @@ -26766,6 +31125,9 @@ msgid "" "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" +"注意:这里的比较针对的是编写 :pep:`440` 时的 " +"``pkg_resources.parse_version``。在该 PEP 被接受之后,setuptools 6.0 及后续版" +"本采用了此处描述的行为。" #: ../source/specifications/version-specifiers.rst:1203 msgid "" @@ -26773,6 +31135,8 @@ msgid "" "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 "" @@ -26780,6 +31144,8 @@ msgid "" "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 "" @@ -26787,10 +31153,13 @@ msgid "" "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 "" +msgstr "附录:使用正则表达式解析版本字符串" #: ../source/specifications/version-specifiers.rst:1222 msgid "" @@ -26800,12 +31169,15 @@ msgid "" "that form, and if it's not, extract the various components for subsequent " "normalization." msgstr "" +"如前文 :ref:`public-version-identifiers` 一节所述,已发布的版本标识符应该使用" +"规范格式。本节提供的正则表达式可用于测试某个版本是否已经符合该格式;如果不符" +"合,则可提取各个组成部分以进行后续的规范化。" #: ../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 "" +msgstr "要测试某个版本标识符是否为规范格式,你可以使用以下函数:" #: ../source/specifications/version-specifiers.rst:1237 msgid "" @@ -26813,24 +31185,26 @@ msgid "" "expression (as defined by the `packaging `_ project):" msgstr "" +"要提取版本标识符的各个组成部分,请使用以下正则表达式(由 `packaging `_ 项目定义):" #: ../source/specifications/version-specifiers.rst:1284 msgid "August 2014: This specification was approved through :pep:`440`." -msgstr "" +msgstr "2014 年 8 月:本规范通过 :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 "" +msgstr "2025 年 5 月:澄清在处理时,开发版本是预发布版本的一种形式。" #: ../source/specifications/version-specifiers.rst:1287 msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." -msgstr "" +msgstr "2025 年 11 月:明确任意相等比较不区分大小写。" #: ../source/specifications/version-specifiers.rst:1288 msgid "Jan 2026: The use of epochs was discouraged." -msgstr "" +msgstr "2026 年 1 月:不鼓励使用 epoch。" #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" @@ -26847,6 +31221,11 @@ msgid "" "environments existed prior to this update, there was no previously " "standardised mechanism for declaring or discovering them." msgstr "" +"对于 Python 3.3 及更高版本,:pep:`405` 为“Python 虚拟环境”这一概念引入了解释" +"器层面的支持。每个虚拟环境都拥有自己的 Python 二进制文件(因而允许创建使用各" +"种 Python 版本的环境),并可以在其站点目录中拥有独立的一组已安装 Python 软件" +"包,但与基础安装的 Python 共享标准库。尽管在此次更新之前虚拟环境的概念就已存" +"在,但此前并没有用于声明或发现虚拟环境的标准化机制。" #: ../source/specifications/virtual-environments.rst:18 msgid "Runtime detection of virtual environments" @@ -26859,6 +31238,9 @@ msgid "" "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 "" @@ -26869,6 +31251,10 @@ msgid "" "be reliably used to detect whether a Python program is running in a virtual " "environment or not)." msgstr "" +"Python 标准库文档中 :py:mod:`venv` 模块的 :ref:`venv-explanation` 部分对此有" +"所介绍,同时还介绍了在交互式操作系统 shell 中“激活”虚拟环境的概念(这一激活步" +"骤是可选的,因此它所做的更改无法被可靠地用于检测某个 Python 程序是否运行在虚" +"拟环境中)。" #: ../source/specifications/virtual-environments.rst:33 msgid "Declaring installation environments as Python virtual environments" @@ -26882,6 +31268,9 @@ msgid "" "a ``home`` key that indicates where to find the Python standard library " "modules." msgstr "" +"如 :pep:`405` 所述,最简单形式的 Python 虚拟环境无非是 Python 二进制文件的一" +"份副本或符号链接,再辅以一个 ``site-packages`` 目录和一个 ``pyvenv.cfg`` 文件" +",该文件中的 ``home`` 键指明了在哪里可以找到 Python 标准库模块。" #: ../source/specifications/virtual-environments.rst:40 msgid "" @@ -26891,6 +31280,10 @@ msgid "" "that they are already operating in a virtual environment and no further " "environment nesting is required or desired." msgstr "" +"虽然这种分离式安装加上 ``pyvenv.cfg`` 文件的做法是为满足标准 :py:mod:`venv` " +"模块的需求而设计的,但 *任何* Python 安装提供方,只要希望 Python 专用工具能感" +"知到它们已经运行在虚拟环境中、且既不需要也不希望进一步嵌套环境,就都可以采用" +"这种做法。" #: ../source/specifications/virtual-environments.rst:46 msgid "" @@ -26901,10 +31294,14 @@ msgid "" "in :py:mod:`sysconfig`, will be detected and behave as a Python virtual " "environment." msgstr "" +"即使没有 ``pyvenv.cfg`` 文件,任何能使 :py:data:`sys.prefix` 与 " +":py:data:`sys.base_prefix` 取不同值、同时在 :py:mod:`sysconfig` 中仍提供相匹" +"配的默认软件包安装方案的做法(例如 ``sitecustomize.py``、修补已安装的 Python " +"运行时),都会被检测到并表现为 Python 虚拟环境。" #: ../source/specifications/virtual-environments.rst:56 msgid "May 2012: This specification was approved through :pep:`405`." -msgstr "" +msgstr "2012 年 5 月:本规范通过 :pep:`405` 获得批准。" #: ../source/specifications/well-known-project-urls.rst:5 msgid "Well-known Project URLs in Metadata" @@ -26916,6 +31313,8 @@ msgid "" "use the normalization rules and well-known list below to make their " "presentation of project URLs consistent across the Python ecosystem." msgstr "" +"本文档主要面向元数据 *消费方*,他们应该使用下文的规范化规则和知名标签列表,使" +"其对项目 URL 的呈现方式在整个 Python 生态系统中保持一致。" #: ../source/specifications/well-known-project-urls.rst:14 msgid "" @@ -26924,6 +31323,9 @@ msgid "" "``Project-URL`` length restrictions. However, when possible, users are " "*encouraged* to pick meaningful labels that normalize to well-known labels." msgstr "" +"构建工具和个别软件包维护者等元数据 *生产方*,可以继续使用他们喜欢的任何标签," +"只要遵守 ``Project-URL`` 的总体长度限制。不过在可能的情况下,仍 *鼓励* 用户选" +"择经规范化后能得到知名标签的有意义的标签。" #: ../source/specifications/well-known-project-urls.rst:22 msgid "" @@ -26931,10 +31333,12 @@ msgid "" "for user-oriented guidance on choosing project URL labels in your package's " "metadata." msgstr "" +"关于如何在你的软件包元数据中选择项目 URL 标签,如需面向用户的指导,请参见 " +":ref:`写入你的 pyproject.toml 的 urls 部分 `。" #: ../source/specifications/well-known-project-urls.rst:26 msgid "This specification was originally defined in :pep:`753`." -msgstr "" +msgstr "本规范最初在 :pep:`753` 中定义。" #: ../source/specifications/well-known-project-urls.rst:28 msgid "" @@ -26945,12 +31349,18 @@ msgid "" "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 包索引)以及其他下游的元数据消费方就能以一致的方式呈现" +"项目 URL。" #: ../source/specifications/well-known-project-urls.rst:42 msgid "Label normalization" @@ -26960,7 +31370,7 @@ msgstr "标签规范化" msgid "" "Label normalization is performed by metadata *consumers*, not metadata " "producers." -msgstr "" +msgstr "标签规范化由元数据 *消费方* 执行,而不是由元数据生产方执行。" #: ../source/specifications/well-known-project-urls.rst:49 msgid "" @@ -26968,28 +31378,32 @@ msgid "" "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 "" +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 "" +msgstr "下表展示了标签在规范化前(原始形式)与规范化后的示例:" #: ../source/specifications/well-known-project-urls.rst:74 msgid "Raw" -msgstr "" +msgstr "原始" #: ../source/specifications/well-known-project-urls.rst:75 msgid "Normalized" @@ -26997,121 +31411,121 @@ msgstr "已规范化" #: ../source/specifications/well-known-project-urls.rst:76 msgid "``Homepage``" -msgstr "" +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 "" +msgstr "``homepage``" #: ../source/specifications/well-known-project-urls.rst:78 msgid "``Home-page``" -msgstr "" +msgstr "``Home-page``" #: ../source/specifications/well-known-project-urls.rst:80 msgid "``Home page``" -msgstr "" +msgstr "``Home page``" #: ../source/specifications/well-known-project-urls.rst:82 msgid "``Change_Log``" -msgstr "" +msgstr "``Change_Log``" #: ../source/specifications/well-known-project-urls.rst:83 msgid "``changelog``" -msgstr "" +msgstr "``changelog``" #: ../source/specifications/well-known-project-urls.rst:84 msgid "``What's New?``" -msgstr "" +msgstr "``What's New?``" #: ../source/specifications/well-known-project-urls.rst:85 msgid "``whatsnew``" -msgstr "" +msgstr "``whatsnew``" #: ../source/specifications/well-known-project-urls.rst:86 #: ../source/specifications/well-known-project-urls.rst:87 msgid "``github``" -msgstr "" +msgstr "``github``" #: ../source/specifications/well-known-project-urls.rst:92 msgid "Well-known labels" -msgstr "" +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 "" +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 "" +msgstr "下表列出了便于对 ``Project-URL`` 元数据的呈现做专门处理的知名标签:" #: ../source/specifications/well-known-project-urls.rst:105 msgid "Label (Human-readable equivalent)" -msgstr "" +msgstr "标签(人类可读的等价名称)" #: ../source/specifications/well-known-project-urls.rst:107 msgid "Aliases" -msgstr "" +msgstr "别名" #: ../source/specifications/well-known-project-urls.rst:108 msgid "``homepage`` (Homepage)" -msgstr "" +msgstr "``homepage`` (Homepage)" #: ../source/specifications/well-known-project-urls.rst:109 msgid "The project's home page" -msgstr "" +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 "" +msgstr "*(无)*" #: ../source/specifications/well-known-project-urls.rst:111 msgid "``source`` (Source Code)" -msgstr "" +msgstr "``source`` (Source Code)" #: ../source/specifications/well-known-project-urls.rst:112 msgid "The project's hosted source code or repository" -msgstr "" +msgstr "项目托管的源代码或仓库" #: ../source/specifications/well-known-project-urls.rst:113 msgid "``repository``, ``sourcecode``, ``github``" -msgstr "" +msgstr "``repository``, ``sourcecode``, ``github``" #: ../source/specifications/well-known-project-urls.rst:114 msgid "``download`` (Download)" -msgstr "" +msgstr "``download`` (Download)" #: ../source/specifications/well-known-project-urls.rst:115 msgid "" "A download URL for the current distribution, equivalent to ``Download-URL``" -msgstr "" +msgstr "当前分发包的下载 URL,等价于 ``Download-URL``" #: ../source/specifications/well-known-project-urls.rst:117 msgid "``changelog`` (Changelog)" -msgstr "" +msgstr "``changelog`` (Changelog)" #: ../source/specifications/well-known-project-urls.rst:118 msgid "The project's comprehensive changelog" -msgstr "" +msgstr "项目的完整变更日志" #: ../source/specifications/well-known-project-urls.rst:119 msgid "``changes``, ``whatsnew``, ``history``" -msgstr "" +msgstr "``changes``, ``whatsnew``, ``history``" #: ../source/specifications/well-known-project-urls.rst:120 msgid "``releasenotes`` (Release Notes)" -msgstr "" +msgstr "``releasenotes`` (Release Notes)" #: ../source/specifications/well-known-project-urls.rst:121 msgid "The project's curated release notes" -msgstr "" +msgstr "项目经过精心整理的发布说明" #: ../source/specifications/well-known-project-urls.rst:123 msgid "``documentation`` (Documentation)" @@ -27127,19 +31541,19 @@ msgstr "``docs``" #: ../source/specifications/well-known-project-urls.rst:126 msgid "``issues`` (Issue Tracker)" -msgstr "" +msgstr "``issues`` (Issue Tracker)" #: ../source/specifications/well-known-project-urls.rst:127 msgid "The project's bug tracker" -msgstr "" +msgstr "项目的 bug 跟踪器" #: ../source/specifications/well-known-project-urls.rst:128 msgid "``bugs``, ``issue``, ``tracker``, ``issuetracker``, ``bugtracker``" -msgstr "" +msgstr "``bugs``, ``issue``, ``tracker``, ``issuetracker``, ``bugtracker``" #: ../source/specifications/well-known-project-urls.rst:129 msgid "``funding`` (Funding)" -msgstr "" +msgstr "``funding`` (Funding)" #: ../source/specifications/well-known-project-urls.rst:130 msgid "Funding Information" @@ -27147,25 +31561,27 @@ msgstr "资金信息" #: ../source/specifications/well-known-project-urls.rst:131 msgid "``sponsor``, ``donate``, ``donation``" -msgstr "" +msgstr "``sponsor``, ``donate``, ``donation``" #: ../source/specifications/well-known-project-urls.rst:132 msgid "``security`` (Security Policy)" -msgstr "" +msgstr "``security`` (Security Policy)" #: ../source/specifications/well-known-project-urls.rst:133 msgid "The project's security policy or vulnerability reporting page" -msgstr "" +msgstr "项目的安全策略或漏洞报告页面" #: ../source/specifications/well-known-project-urls.rst:134 msgid "``securitypolicy``" -msgstr "" +msgstr "``securitypolicy``" #: ../source/specifications/well-known-project-urls.rst:136 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" +"软件包元数据消费方可以选择将别名标签与其“父”知名标签渲染为相同的形式,也可以" +"对别名标签做进一步的专门处理。" #: ../source/specifications/well-known-project-urls.rst:140 msgid "Example behavior" @@ -27176,18 +31592,20 @@ 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:145 msgid "Example project URLs in standard configuration" -msgstr "" +msgstr "标准配置下的项目 URL 示例" #: ../source/specifications/well-known-project-urls.rst:154 msgid "Core metadata representation" -msgstr "" +msgstr "核心元数据表示形式" #: ../source/specifications/well-known-project-urls.rst:162 msgid "Potential rendering" -msgstr "" +msgstr "可能的呈现效果" #: ../source/specifications/well-known-project-urls.rst:170 msgid "" @@ -27196,27 +31614,32 @@ msgid "" "*consumer* normalizes and identifies appropriate human-readable equivalents " "based on the normalized form:" msgstr "" +"可以看到,核心元数据按用户提供的原样出现(因为元数据 *生产方* 不执行规范化)" +",而元数据 *消费方* 会进行规范化,并根据规范化后的形式识别出合适的人类可读等" +"价名称:" #: ../source/specifications/well-known-project-urls.rst:175 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" -msgstr "" +msgstr "``Home page`` 规范化为 ``homepage``,并渲染为 ``Homepage``" #: ../source/specifications/well-known-project-urls.rst:176 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" -msgstr "" +msgstr "``DOCUMENTATION`` 规范化为 ``documentation``,并渲染为 ``Documentation``" #: ../source/specifications/well-known-project-urls.rst:177 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" -msgstr "" +msgstr "``Repository`` 规范化为 ``repository``,并渲染为 ``Source Code``" #: ../source/specifications/well-known-project-urls.rst:178 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" @@ -27226,7 +31649,7 @@ msgstr "如何获得支持" msgid "" "For support related to a specific project, see the links on " "the :doc:`Projects ` page." -msgstr "" +msgstr "如需与特定项目相关的支持,请参阅 :doc:`项目 ` 页面上的链接。" #: ../source/support.rst:8 msgid "" @@ -27250,6 +31673,8 @@ msgid "" "unmaintained. Please see the `Sphinx tutorial `_ instead." msgstr "" +"本教程已被移除,因为它与打包无关且已无人维护。请改为参阅 `Sphinx 教程 " +"`_。" #: ../source/tutorials/index.rst:4 msgid "" @@ -27257,6 +31682,8 @@ msgid "" "with packaging concepts. For more detailed information on specific packaging " "topics, see :doc:`/guides/index`." msgstr "" +"**教程** 是主观的分步指南,旨在帮助你熟悉打包概念。要了解特定打包主题的更多详" +"细信息,请参阅 :doc:`/guides/index`。" #: ../source/tutorials/installing-packages.rst:5 msgid "Installing Packages" @@ -27626,10 +32053,10 @@ msgid "" "specification `. Below are some examples." msgstr "" ":ref:`pip` 最常见的用法是使用 :term:`需求说明符 ` 从 " -":term:`Python Package Index ` 安装。一般来说,需" -"求说明符由项目名称加上可选的 :term:`版本说明符 ` 组成。有" -"关受支持说明符的完整描述,请参见 :ref:`版本说明符规范 `。" -"下面是一些示例。" +":term:`Python 包索引 ` 安装。一般来说,需求说明" +"符由项目名称加上可选的 :term:`版本说明符 ` 组成。有关受支" +"持说明符的完整描述,请参见 :ref:`版本说明符规范 `。下面是" +"一些示例。" #: ../source/tutorials/installing-packages.rst:310 msgid "To install the latest version of \"SomeProject\":" @@ -27849,9 +32276,9 @@ msgid "" "with the :ref:`simple repository API `:, and use the " "``--extra-index-url`` flag to direct pip to use that index." msgstr "" -"要从其他数据源(例如 Amazon S3 存储)安装,你可以创建一个以符合 :ref:`简单仓" -"库 API ` 的格式呈现数据的助手程序,并使用 ``--extra-" -"index-url`` 标记让 pip 使用该索引。" +"要从其他数据源(例如 Amazon S3 存储)安装,你可以创建一个辅助应用,以符合 " +":ref:`简单仓库 API ` 的格式呈现数据,并使用 ``--extra-" +"index-url`` 标志让 pip 使用该索引:" #: ../source/tutorials/installing-packages.rst:622 msgid "Installing Prereleases" @@ -27913,6 +32340,8 @@ 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 "" @@ -27921,6 +32350,8 @@ msgid "" "up development environments automatically for projects with multiple " "contributors." msgstr "" +"然而,即便对于你自己的个人项目,以交互方式运行这些命令也会变得繁琐;而当你试" +"图为拥有多名贡献者的项目自动搭建开发环境时,事情还会变得更加困难。" #: ../source/tutorials/managing-dependencies.rst:13 msgid "" @@ -27928,6 +32359,8 @@ msgid "" "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` 来管理应用程序的依赖项。它会向你展示如何安装和" +"使用必要的工具,并就最佳实践给出强有力的建议。" #: ../source/tutorials/managing-dependencies.rst:17 msgid "" @@ -27938,15 +32371,20 @@ msgid "" "(including web applications), but is also very well suited to managing " "development and testing environments for any kind of project." msgstr "" +"请记住,Python 有着许许多多不同的用途,而你具体希望如何管理依赖项,可能会因你" +"决定发布软件的方式而改变。这里给出的指导最直接适用于网络服务(包括 Web 应用程" +"序)的开发和部署,但同样非常适合管理任何类型项目的开发与测试环境。" #: ../source/tutorials/managing-dependencies.rst:24 msgid "" "For alternatives, see `Other Tools for Application Dependency Management`_." msgstr "" +"如需替代方案,请参见 `Other Tools for Application Dependency Management`_ 一" +"节。" #: ../source/tutorials/managing-dependencies.rst:27 msgid "Installing Pipenv" -msgstr "" +msgstr "安装 Pipenv" #: ../source/tutorials/managing-dependencies.rst:29 msgid "" @@ -27956,10 +32394,14 @@ msgid "" "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 项目的依赖项管理器。如果你熟悉 Node.js 的 " +"`npm`_ 或 Ruby 的 `bundler`_,就会发现它的理念与这些工具类似。虽然对个人使用" +"而言,仅靠 :ref:`pip` 往往就足够了,但是对于多人协作的项目,我们推荐使用 " +"Pipenv,因为它是一款更高层次的工具,简化了常见用例下的依赖项管理。" #: ../source/tutorials/managing-dependencies.rst:35 msgid "Use ``pip`` to install Pipenv:" -msgstr "" +msgstr "使用 ``pip`` 安装 Pipenv:" #: ../source/tutorials/managing-dependencies.rst:51 msgid "" @@ -27969,10 +32411,14 @@ msgid "" "directory to your ``PATH``. See :ref:`Installing to the User Site` for more " "information." msgstr "" +"这会执行 `user installation`_ (用户安装),以免破坏任何系统级软件包。安装之" +"后,如果你的 shell 中无法使用 ``pipenv``,就需要把 :py:data:`用户基目录 " +"` 的二进制目录添加到你的 ``PATH`` 中。更多信息请参见 " +":ref:`安装到用户站点 `。" #: ../source/tutorials/managing-dependencies.rst:62 msgid "Installing packages for your project" -msgstr "" +msgstr "为你的项目安装软件包" #: ../source/tutorials/managing-dependencies.rst:64 msgid "" @@ -27980,6 +32426,8 @@ msgid "" "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 "" @@ -27989,24 +32437,30 @@ msgid "" "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 "" +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 "" +msgstr "然后你可以使用 ``pipenv run`` 来运行这个脚本:" #: ../source/tutorials/managing-dependencies.rst:128 msgid "You should get output similar to this:" -msgstr "" +msgstr "你应该会看到类似这样的输出:" #: ../source/tutorials/managing-dependencies.rst:134 msgid "" @@ -28014,17 +32468,21 @@ msgid "" "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`` 可以确保你的脚本能够使用已安装的软件包。你也可以使用 " +"``pipenv shell`` 启动一个新的 shell,确保所有命令都能访问你已安装的软件包。" #: ../source/tutorials/managing-dependencies.rst:140 #: ../source/tutorials/packaging-projects.rst:484 msgid "Next steps" -msgstr "" +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 "" @@ -28032,6 +32490,8 @@ msgid "" "see the :ref:`tutorial on packaging and distributing packages `." msgstr "" +"如果你有兴趣创建并分发自己的 Python 软件包,请参阅 :ref:`关于打包和分发软件包" +"的教程 `。" #: ../source/tutorials/managing-dependencies.rst:148 msgid "" @@ -28040,10 +32500,13 @@ msgid "" "environment with ``pipenv install -e `` " "(e.g. ``pipenv install -e .`` or ``pipenv install -e src``)." msgstr "" +"请注意,当你的应用程序包含 Python 源码包的定义时,可以使用 ``pipenv install -" +"e `` (例如 ``pipenv install -e .`` 或 " +"``pipenv install -e src``)把这些包及其依赖项添加到你的 ``pipenv`` 环境中。" #: ../source/tutorials/managing-dependencies.rst:157 msgid "Other Tools for Application Dependency Management" -msgstr "" +msgstr "管理应用程序依赖项的其他工具" #: ../source/tutorials/managing-dependencies.rst:159 msgid "" @@ -28052,6 +32515,8 @@ msgid "" "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 "" @@ -28059,6 +32524,8 @@ msgid "" "more steps in the project management workflow, such as incrementing versions " "and creating new skeleton projects from project templates." msgstr "" +"`hatch `_ 以自成一体的风格覆盖了项目管理工作流" +"程中更多的步骤,例如递增版本号以及从项目模板创建新的骨架项目。" #: ../source/tutorials/managing-dependencies.rst:166 msgid "" @@ -28067,12 +32534,18 @@ msgid "" "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``、Pipenv 和 Poetry 锁文件,也可将它们转换" +"为与 pip-tools 兼容的输出。它专为容器化的 Python 应用程序而设计,但并不限于此" +"。" #: ../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 "" @@ -28080,6 +32553,8 @@ msgid "" "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 `_ 用于根据项目中直接使用的" +"软件包列表生成包含所有依赖项的锁文件,并确保只安装这些依赖项。" #: ../source/tutorials/managing-dependencies.rst:175 msgid "" @@ -28090,6 +32565,11 @@ msgid "" "assumption that the application being worked on will support distribution as " "a ``pip``-installable Python package." msgstr "" +"`Poetry `__ 是一款功能范围与 Pipenv " +"相当的工具,更直接地聚焦于这样的用例:所管理的项目本身被组织为一个带有有效 " +"``pyproject.toml`` 文件的可分发 Python 软件包。相比之下,Pipenv 则明确避免这" +"样的假设,即你正在开发的应用程序会支持作为一个可用 ``pip`` 安装的 Python 软件" +"包进行分发。" #: ../source/tutorials/managing-dependencies.rst:180 msgid "" @@ -28097,10 +32577,12 @@ msgid "" "project management workflow, including dependency management, packaging, and " "publishing." msgstr "" +"`uv `__ 是一款覆盖整个项目管理工作流程的单一工具" +",包括依赖项管理、打包和发布。" #: ../source/tutorials/packaging-projects.rst:2 msgid "Packaging Python Projects" -msgstr "" +msgstr "打包 Python 项目" #: ../source/tutorials/packaging-projects.rst:4 msgid "" @@ -28109,6 +32591,9 @@ msgid "" "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 "" @@ -28116,16 +32601,18 @@ msgid "" "command and its output, then `open an issue`_ on the `packaging-problems`_ " "repository on GitHub. We'll do our best to help you!" msgstr "" +"如果你在运行本教程中的命令时遇到问题,请复制该命令及其输出,然后在 GitHub 上" +"的 `packaging-problems`_ 存储库中 `提交一个 issue`_。我们会尽力帮助你!" #: ../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 "" +msgstr "其中一些命令需要较新版本的 :ref:`pip`,因此请先确保你已安装最新版本:" #: ../source/tutorials/packaging-projects.rst:35 msgid "A simple project" -msgstr "" +msgstr "一个简单的项目" #: ../source/tutorials/packaging-projects.rst:37 msgid "" @@ -28136,10 +32623,14 @@ msgid "" "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 "" +msgstr "在本地创建以下文件结构:" #: ../source/tutorials/packaging-projects.rst:54 msgid "" @@ -28147,6 +32638,8 @@ msgid "" "This simplifies the configuration and is more obvious to users who install " "the package." msgstr "" +"包含 Python 文件的目录应当与项目名称一致。这样可以简化配置,对安装该软件包的" +"用户来说也更加直观。" #: ../source/tutorials/packaging-projects.rst:57 msgid "" @@ -28155,6 +32648,9 @@ msgid "" "regular package, even if (as is the case in this " "tutorial) :file:`__init__.py` is empty. [#namespace-packages]_" msgstr "" +"建议创建 :file:`__init__.py` 文件,因为存在 :file:`__init__.py` 文件时,用户" +"就可以把这个目录当作常规软件包来导入,即使(如本教程中的情况) " +":file:`__init__.py` 是空的。 [#namespace-packages]_" #: ../source/tutorials/packaging-projects.rst:62 msgid "" @@ -28162,6 +32658,8 @@ msgid "" "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 "" @@ -28169,34 +32667,38 @@ msgid "" "and :term:`import packages `, take a few minutes to read " "over the `Python documentation for packages and modules`_." msgstr "" +"如果你不熟悉 Python 的 :term:`模块 ` 和 :term:`导入包 `,请花几分钟阅读 `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 "" +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 "" +msgstr "现在,你要添加一些用于准备项目分发的文件。完成之后,项目结构将如下所示:" #: ../source/tutorials/packaging-projects.rst:103 msgid "Creating a test directory" -msgstr "" +msgstr "创建测试目录" #: ../source/tutorials/packaging-projects.rst:105 msgid ":file:`tests/` is a placeholder for test files. Leave it empty for now." -msgstr "" +msgstr ":file:`tests/` 是用于存放测试文件的占位符,暂时将其留空即可。" #: ../source/tutorials/packaging-projects.rst:111 msgid "Choosing a build backend" -msgstr "" +msgstr "选择构建后端" #: ../source/tutorials/packaging-projects.rst:113 msgid "" @@ -28210,6 +32712,12 @@ msgid "" "building :term:`extension modules `, and you should choose " "one that suits your needs and preferences." msgstr "" +"诸如 :ref:`pip` 和 :ref:`build` 之类的工具实际上并不会把你的源码转换为 " +":term:`分发包 `,例如 wheel 包;这项工作由 :term:`构建" +"后端 ` 来完成。构建后端决定了你的项目以何种方式指定其配置,包" +"括元数据(关于项目的信息,例如在 PyPI 上显示的名称和标签)和输入文件。不同的" +"构建后端在功能层次上有所差异,例如是否支持构建 :term:`扩展模块 `;你应当选择一个符合自己需求和偏好的构建后端。" #: ../source/tutorials/packaging-projects.rst:122 msgid "" @@ -28219,6 +32727,9 @@ msgid "" "that support the ``[project]`` table for :ref:`metadata `." msgstr "" +"你可以从多种后端中进行选择;本教程默认使用 :ref:`Hatchling `,但换用 " +":ref:`setuptools`、:ref:`Flit `、:ref:`PDM ` 或其他支持为 :ref:`元" +"数据 ` 使用 ``[project]`` 表的后端,操作也完全相同。" #: ../source/tutorials/packaging-projects.rst:129 msgid "" @@ -28227,6 +32738,9 @@ msgid "" "management, as well as building, uploading, and installing packages. This " "tutorial uses single-purpose tools that work independently." msgstr "" +"有些构建后端是更大型工具的一部分,这些工具提供命令行界面,其附加功能包括项目" +"初始化和版本管理,以及软件包的构建、上传和安装。本教程使用的是独立运行的单用" +"途工具。" #: ../source/tutorials/packaging-projects.rst:134 msgid "" @@ -28235,6 +32749,9 @@ msgid "" "project. Below are some examples for common build backends, but check your " "backend's own documentation for more details." msgstr "" +":file:`pyproject.toml` 会告诉 :ref:`pip` 和 :ref:`build` 这类 :term:`构建前" +"端 ` 工具应为你的项目使用哪个构建后端。下面是一些常见构建后端" +"的示例,更多细节请查阅你所选后端自己的文档。" #: ../source/tutorials/packaging-projects.rst:141 msgid "" @@ -28247,12 +32764,17 @@ msgid "" "code block is the one that introduced support for :ref:`the new license " "metadata `." msgstr "" +"``requires`` 键是构建你的软件包所需的软件包列表。:term:`前端 " +"` 在构建你的软件包时应当自动安装它们。前端通常在隔离的环境中运行构建,因此在" +"这里省略依赖项可能导致构建时错误。该列表应当始终包含你的后端所用的软件包,也" +"可能包含其他构建时依赖项。上面代码块中指定的最低版本是引入 :ref:`新许可证元数" +"据 ` 支持的版本。" #: ../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 "" +msgstr "``build-backend`` 键是前端将用来执行构建的 Python 对象的名称。" #: ../source/tutorials/packaging-projects.rst:153 msgid "" @@ -28260,6 +32782,8 @@ msgid "" "backend, or generated by its command line interface. There should be no need " "for you to customize these settings." msgstr "" +"这两个值都会由你所选构建后端的文档提供,或由其命令行界面生成。你应该不需要自" +"定义这些设置。" #: ../source/tutorials/packaging-projects.rst:157 msgid "" @@ -28270,10 +32794,14 @@ msgid "" "file, and specifying ``setuptools.build_meta`` in your build allows the " "tools to locate and use these automatically." msgstr "" +"构建工具的额外配置要么位于 ``pyproject.toml`` 的 ``tool`` 节中,要么位于由构" +"建工具定义的专用文件中。例如,当你使用 ``setuptools`` 作为构建后端时,可以把" +"额外配置添加到 ``setup.py`` 或 ``setup.cfg`` 文件中;在构建中指定 " +"``setuptools.build_meta`` 后,相关工具就能自动定位并使用这些配置。" #: ../source/tutorials/packaging-projects.rst:167 msgid "Configuring metadata" -msgstr "" +msgstr "配置元数据" #: ../source/tutorials/packaging-projects.rst:169 msgid "" @@ -28282,6 +32810,9 @@ msgid "" "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 "" @@ -28291,12 +32822,18 @@ msgid "" "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`` 是软件包的版本号。(有些构建后端允许以其他方式指定版本,例如从文" +"件或 Git 标签中读取。)" #: ../source/tutorials/packaging-projects.rst:203 msgid "" @@ -28304,10 +32841,12 @@ msgid "" "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 "" +msgstr "``description`` 是对软件包的一句话简短摘要。" #: ../source/tutorials/packaging-projects.rst:207 msgid "" @@ -28317,6 +32856,10 @@ msgid "" "There also is a more advanced table form described in " "the :ref:`pyproject.toml guide `." msgstr "" +"``readme`` 是指向某个文件的路径,该文件包含软件包的详细描述。此描述会显示在 " +"PyPI 的软件包详情页面上。在本例中,描述从 :file:`README.md` 加载(这是一种常" +"见做法)。还有一种更高级的表格形式,详见 :ref:`pyproject.toml 指南 `。" #: ../source/tutorials/packaging-projects.rst:212 msgid "" @@ -28324,6 +32867,8 @@ msgid "" "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` 这样的" +"安装器会回溯查询较旧的软件包版本,直到找到与该 Python 版本相匹配的那一个。" #: ../source/tutorials/packaging-projects.rst:215 msgid "" @@ -28334,24 +32879,34 @@ msgid "" "will work on. For a complete list of classifiers, see https://pypi.org/" "classifiers/." msgstr "" +"``classifiers`` 为包索引和 :ref:`pip` 提供一些关于你的软件包的额外元数据。在" +"本例中,该软件包只兼容 Python 3,且与操作系统无关。你应当始终至少注明你的软件" +"包支持哪些 Python 版本,以及它可以在哪些操作系统上运行。完整的分类器列表请参" +"见 https://pypi.org/classifiers/。" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " "your :term:`Distribution Archive` files." msgstr "" +"``license`` 是你的 :term:`Distribution Archive` 文件所使用的 :term:`SPDX 许可" +"证表达式 `。" #: ../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`` 是指向各许可证文件的 glob 路径列表,这些路径相对于 " +":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 上。通常可以用来" +"链接到源代码、文档、issue 跟踪器等。" #: ../source/tutorials/packaging-projects.rst:229 msgid "" @@ -28360,20 +32915,23 @@ msgid "" "common fields are ``keywords`` to improve discoverability and the " "``dependencies`` that are required to install your package." msgstr "" +"关于这些字段以及可在 ``[project]`` 表中定义的其他字段,详情请参阅 " +":ref:`pyproject.toml 指南 `。其他常见字段还有用于提高" +"可检索性的 ``keywords``,以及安装你的软件包所必需的 ``dependencies``。" #: ../source/tutorials/packaging-projects.rst:236 msgid "Creating README.md" -msgstr "" +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 "" +msgstr "打开 :file:`README.md` 并输入以下内容。你可以按自己的喜好进行定制。" #: ../source/tutorials/packaging-projects.rst:251 msgid "Creating a LICENSE" -msgstr "" +msgstr "创建 LICENSE" #: ../source/tutorials/packaging-projects.rst:253 msgid "" @@ -28384,6 +32942,11 @@ msgid "" "chosen a license, open :file:`LICENSE` and enter the license text. For " "example, if you had chosen the MIT license:" msgstr "" +"每一个上传到 Python Package Index 的 :term:`Distribution Archive` 都应当包含" +"一个许可证,这一点很重要。它会告诉安装你 :term:`Distribution Archive` 的用户" +"可以在什么条款下使用它。如果需要挑选许可证方面的帮助,请参见 https://" +"choosealicense.com/。选定许可证后,打开 :file:`LICENSE` 并输入许可证文本。例" +"如,假设你选择了 MIT 许可证:" #: ../source/tutorials/packaging-projects.rst:282 msgid "" @@ -28393,10 +32956,13 @@ msgid "" "build backend supports :pep:`639`, the file will be automatically included " "in the package." msgstr "" +"大多数构建后端会自动将许可证文件包含进软件包中。更多细节请参阅你所选后端的文" +"档。如果你在 :file:`pyproject.toml` 的 ``license-files`` 键中给出了许可证文件" +"的路径,并且你的构建后端支持 :pep:`639`,那么该文件会被自动包含进软件包中。" #: ../source/tutorials/packaging-projects.rst:290 msgid "Including other files" -msgstr "" +msgstr "包含其他文件" #: ../source/tutorials/packaging-projects.rst:292 msgid "" @@ -28404,10 +32970,12 @@ msgid "" "distribution `. If you want to include " "additional files, see the documentation for your build backend." msgstr "" +"上面列出的文件会被自动包含进你的 :term:`源分发 ` 中。如果你想包含更多文件,请参阅你所选构建后端的文档。" #: ../source/tutorials/packaging-projects.rst:299 msgid "Generating distribution archives" -msgstr "" +msgstr "生成分发归档文件" #: ../source/tutorials/packaging-projects.rst:301 msgid "" @@ -28415,6 +32983,8 @@ msgid "" "Package>` for the package. These are archives that are uploaded to the " "Python Package Index and can be installed by :ref:`pip`." msgstr "" +"下一步是为软件包生成 :term:`分发包 `。这些归档文件会被" +"上传到 Python Package Index,并且可以由 :ref:`pip` 安装。" #: ../source/tutorials/packaging-projects.rst:305 msgid "Make sure you have the latest version of PyPA's :ref:`build` installed:" @@ -28431,13 +33001,13 @@ msgstr "" msgid "" "Now run this command from the same directory where :file:`pyproject.toml` is " "located:" -msgstr "" +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 "" +msgstr "这条命令会输出大量文本,完成之后会在 :file:`dist` 目录中生成两个文件:" #: ../source/tutorials/packaging-projects.rst:346 msgid "" @@ -28450,10 +33020,15 @@ msgid "" "package is compatible with Python on any platform so only one built " "distribution is needed." msgstr "" +"``tar.gz`` 文件是 :term:`源分发 `,而 " +"``.whl`` 文件是 :term:`构建分发 `。较新版本的 :ref:`pip` " +"会优先安装构建分发,但在必要时会回退到源分发。你应当始终上传源分发,并为你的" +"项目兼容的每个平台提供构建分发。在本例中,我们的示例软件包与任何平台上的 " +"Python 都兼容,因此只需要一个构建分发。" #: ../source/tutorials/packaging-projects.rst:355 msgid "Uploading the distribution archives" -msgstr "" +msgstr "上传分发归档文件" #: ../source/tutorials/packaging-projects.rst:357 msgid "Finally, it's time to upload your package to the Python Package Index!" @@ -28469,6 +33044,11 @@ msgid "" "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 上注册一个账户。TestPyPI 是包索引的一个独立实例" +",专为测试和实验而设。对于本教程这种不一定要上传到正式索引的场景,它非常合适" +"。要注册账户,请访问 https://test.pypi.org/account/register/ 并完成页面上的步" +"骤。在上传任何软件包之前,你还需要验证你的电子邮箱地址。更多细节请参见 " +":doc:`/guides/using-testpypi`。" #: ../source/tutorials/packaging-projects.rst:367 msgid "" @@ -28477,13 +33057,16 @@ msgid "" "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 令牌`_。请在 https://" +"test.pypi.org/manage/account/#api-tokens 创建一个令牌,并将 “Scope” 设为 “" +"Entire account”。**在复制并保存该令牌之前,请不要关闭此页面,因为你将无法再次" +"看到它。**" #: ../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:" +msgstr "现在你已经注册了,你可以使用 :ref:`twine` 来上传分发包。你需要安装 Twine:" #: ../source/tutorials/packaging-projects.rst:389 msgid "" @@ -28496,6 +33079,8 @@ msgid "" "``pypi-`` prefix. Note that the input will be hidden, so be sure to paste " "correctly." msgstr "" +"系统会提示你输入 API 令牌。请使用令牌的值,包括 ``pypi-`` 前缀。注意,输入内" +"容会被隐藏,因此请确保粘贴正确。" #: ../source/tutorials/packaging-projects.rst:406 msgid "After the command completes, you should see output similar to this:" @@ -28519,6 +33104,9 @@ msgid "" "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!" @@ -28528,7 +33116,7 @@ msgstr "请确保在软件包名称中指定你的用户名!" msgid "" "pip should install the package from TestPyPI and the output should look " "something like this:" -msgstr "pip应该会安装 TestPyPI 的软件包,输出结果应该是这样的:" +msgstr "pip 应该会安装 TestPyPI 的软件包,输出结果应该是这样的:" #: ../source/tutorials/packaging-projects.rst:452 msgid "" @@ -28539,12 +33127,18 @@ msgid "" "package doesn't have any dependencies, it's a good practice to avoid " "installing dependencies when using TestPyPI." msgstr "" +"本例使用 ``--index-url`` 标志来指定 TestPyPI 而非正式的 PyPI。此外,它还指定" +"了 ``--no-deps``。由于 TestPyPI 上的软件包与正式 PyPI 并不相同,尝试安装依赖" +"项可能会失败,也可能会安装到意料之外的内容。虽然我们的示例软件包没有任何依赖" +"项,但在使用 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 "" +"你可以通过导入软件包来测试它是否被正确安装。请确保你仍处于虚拟环境中,然后运" +"行 Python:" #: ../source/tutorials/packaging-projects.rst:474 msgid "and import the package:" @@ -28554,7 +33148,7 @@ msgstr "并导入该软件包:" msgid "" "**Congratulations, you've packaged and distributed a Python project!** ✨ 🍰 " "✨" -msgstr "" +msgstr "**恭喜,你已经打包并分发了一个 Python 项目!** ✨ 🍰 ✨" #: ../source/tutorials/packaging-projects.rst:489 msgid "" @@ -28563,6 +33157,8 @@ msgid "" "deletes packages and accounts. It is best to use TestPyPI for testing and " "experiments like this tutorial." msgstr "" +"请记住,本教程向你展示的是如何把软件包上传到 Test PyPI,它并不是永久存储。测" +"试系统偶尔会删除软件包和账户。最好将 TestPyPI 用于本教程这样的测试和实验。" #: ../source/tutorials/packaging-projects.rst:494 msgid "" @@ -28570,6 +33166,8 @@ msgid "" "can do much the same as you did in this tutorial, but with these important " "differences:" msgstr "" +"当你准备好将真正的软件包上传到 Python Package Index 时,你的操作与本教程大体" +"相同即可,但要注意以下重要区别:" #: ../source/tutorials/packaging-projects.rst:498 msgid "" @@ -28577,6 +33175,8 @@ msgid "" "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 "" @@ -28584,6 +33184,8 @@ msgid "" "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 "" @@ -28592,18 +33194,21 @@ msgid "" "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/*`` 上传你的软件包,并输入你在正式 PyPI 上注册的账户" +"的凭据。既然你是在生产环境中上传软件包,就不需要再指定 ``--repository``;软件" +"包默认会上传到 https://pypi.org/。" #: ../source/tutorials/packaging-projects.rst:507 msgid "" "Install your package from the real PyPI using ``python3 -m pip install [your-" "package]``." -msgstr "" +msgstr "使用 ``python3 -m pip install [your-package]`` 从正式的 PyPI 安装你的软件包。" #: ../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 "" +msgstr "至此,如果你想进一步阅读关于打包 Python 库的内容,可以参考以下资源:" #: ../source/tutorials/packaging-projects.rst:512 msgid "" @@ -28611,6 +33216,9 @@ msgid "" "`_, :doc:`setuptools `, :doc:`Flit `, `PDM `_." msgstr "" +"阅读你所选构建后端的高级配置:`Hatchling 配置 " +"`_、:doc:`setuptools `、:doc:`Flit " +"`、`PDM 配置 `_。" #: ../source/tutorials/packaging-projects.rst:516 msgid "" @@ -28618,6 +33226,8 @@ msgid "" "practical information, or the :doc:`discussions ` for " "explanations and background on specific topics." msgstr "" +"查阅本站中的 :doc:`指南 ` 以获取更高级的实用信息,或查阅 " +":doc:`讨论 ` 以了解对特定主题的解释和背景。" #: ../source/tutorials/packaging-projects.rst:519 msgid "" @@ -28625,10 +33235,12 @@ msgid "" "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 "" +msgstr "备注" #: ../source/tutorials/packaging-projects.rst:529 msgid "" @@ -28639,6 +33251,10 @@ msgid "" "recommended to stick with *regular packages* and ``__init__.py`` (even if " "the file is empty)." msgstr "" +"从技术上讲,你也可以创建不带 ``__init__.py`` 文件的 Python 软件包,但这类软件" +"包称为 :doc:`命名空间包 `,并被视为 " +"**高级主题** (本教程未作介绍)。如果你刚刚开始接触 Python 打包,建议坚持使" +"用 *常规软件包* 和 ``__init__.py``,即使该文件为空。" #~ msgid "``toml``" #~ msgstr "``toml``" From 9d6264c537658e6413f54558b8085ca8272ceb32 Mon Sep 17 00:00:00 2001 From: Hosted Weblate user 54392 Date: Mon, 28 Sep 2026 06:52:29 +0200 Subject: [PATCH 22/24] Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (4545 of 4545 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (4545 of 4545 strings) Co-authored-by: Hosted Weblate user 54392 Translate-URL: https://hosted.weblate.org/projects/pypa/packaging-python-org/zh_Hans/ Translation: pypa/packaging.python.org --- locales/zh_Hans/LC_MESSAGES/messages.po | 278 ++++++++++++------------ 1 file changed, 136 insertions(+), 142 deletions(-) diff --git a/locales/zh_Hans/LC_MESSAGES/messages.po b/locales/zh_Hans/LC_MESSAGES/messages.po index 5601b9af8..d358c3e9e 100644 --- a/locales/zh_Hans/LC_MESSAGES/messages.po +++ b/locales/zh_Hans/LC_MESSAGES/messages.po @@ -49,8 +49,9 @@ msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-09-22 14:24+0000\n" -"PO-Revision-Date: 2026-09-25 14:54+0000\n" -"Last-Translator: Michael \n" +"PO-Revision-Date: 2026-09-28 04:51+0000\n" +"Last-Translator: Hosted Weblate user 54392 " +"\n" "Language-Team: Chinese (Simplified Han script) \n" "Language: zh_Hans\n" @@ -807,9 +808,9 @@ msgid "" "by the system package manager of the `Linux distribution `_, which " "is a different meaning." msgstr "" -"请注意,在 Linux 领域中,“分发软件包”通常缩写为 “distro package” 或简单称为 “" -"package”,指的是由 `Linux 发行版 `_ 的系统包管理器提供的内容,这与 " -"Python 中的含义不同。" +"请注意,在 Linux 领域中,“分发软件包”(英文通常缩写为 “distro package” 或者就" +"叫 “package”)由 `Linux 发行版 `_ 的系统包管理器所提供,这与 Python " +"中的含义不同。" #: ../source/discussions/distribution-package-vs-import-package.rst:31 msgid "What's an import package?" @@ -3104,9 +3105,9 @@ msgid "" "` is used for development and a " "regular installation is used for testing)." msgstr "" -"这意味着 ``src`` 布局在项目的开发工作流程中涉及一个额外的步骤(通常,在开发中" -"使用 :doc:`可编辑安装 `,在测试中使用" -"常规安装)。" +"这意味着 src 布局在项目的开发工作流程中涉及一个额外的步骤(通常情况下, " +":doc:`可编辑安装 ` 用于开发,常规安装" +"用于测试)。" #: ../source/discussions/src-layout-vs-flat-layout.rst:56 msgid "" @@ -3143,8 +3144,8 @@ msgid "" "` is only able to import files that " "were meant to be importable." msgstr "" -"``src`` 布局有助于确保 :doc:`可编辑安装 ` 仅能导入那些本应可导入的文件。" +"src 布局有助于确保 :doc:`可编辑安装 ` " +"仅能导入那些本应可导入的文件。" #: ../source/discussions/src-layout-vs-flat-layout.rst:74 msgid "" @@ -3168,7 +3169,7 @@ msgstr "" #: ../source/discussions/src-layout-vs-flat-layout.rst:86 msgid "Running a command-line interface from source with src-layout" -msgstr "使用 ``src`` 布局从源代码运行命令行界面" +msgstr "使用 src 布局从源代码运行命令行界面" #: ../source/discussions/src-layout-vs-flat-layout.rst:88 msgid "" @@ -3180,11 +3181,11 @@ msgid "" "the package folder to Python's :py:data:`sys.path` when called via " "its :file:`__main__.py` file:" msgstr "" -"由于前述 ``src`` 布局的特点,命令行界面不能直接从 :term:`源码树 ` 运行,而需要将包以 :doc:`开发模式 ` 安装以便进行测试。由于在某些情况下这可能不太实际,一个解决" -"方法是在通过其 :file:`__main__.py` 文件调用时,将包文件夹添加到 Python 的 " -":py:data:`sys.path` 中:" +"由于前述 src 布局的特点,命令行界面不能直接从 :term:`源码树 ` 运行,而需要以 :doc:`开发模式 " +"` 安装包以便进行测试。由于某些情况下这可能不现实,一个变通方法是在通过其 " +":file:`__main__.py` 文件调用时,将包文件夹添加到 Python 的 " +":py:data:`sys.path` 前面:" #: ../source/discussions/versioning.rst:6 #: ../source/specifications/simple-repository-api.rst:358 @@ -3449,8 +3450,8 @@ msgid "" "`_ (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 "" -"基于日期的版本控制(或称 `calendar versioning `_,CalVer)的一个主要" -"优势是,通过版本号就可以直接判断特定版本的基础功能集已经有多旧。" +"基于日期的版本控制,或称 `calendar versioning `_ (CalVer),的一个主" +"要优势是,通过版本号就可以直接判断特定版本的基础功能集已经有多旧。" #: ../source/discussions/versioning.rst:135 msgid "" @@ -3613,10 +3614,10 @@ msgid "" "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_。" +"关于这一问题的一些个人观点,请参阅这些博客文章:` Hynek Schlawak 的文章`_, `Donald Stufft 的文章`_, " +"`Bernát Gábor 的文章`_, `Brett Cannon 的文章`_ 。" #: ../source/discussions/versioning.rst:235 msgid "" @@ -4515,8 +4516,7 @@ msgid "" msgstr "" ":ref:`pip` 用于从 :term:`Package Index` 安装软件包的一种格式。有关该格式的 " "EBNF 图,请参阅 :ref:`dependency-specifiers`。例如,\"foo>=1.3\" 就是一个需求" -"说明符,其中 \"foo\" 是项目名称,\">=1.3\" 部分则是 :term:`Version " -"Specifier`。" +"说明符,其中 \"foo\" 是项目名称,\">=1.3\" 部分则是 :term:`Version Specifier`" #: ../source/glossary.rst:341 msgid "Requirements File" @@ -6234,9 +6234,9 @@ msgid "" "want \"bar\" installed from VCS in editable mode, then you could construct a " "requirements file like so::" msgstr "" -"你可能还想以可编辑模式安装某些依赖项。例如,假设你的项目需要 \"foo\" 和 " -"\"bar\",但你希望 \"bar\" 以可编辑模式从 VCS 安装,那么你可以像这样构造一个 " -"requirements 文件::" +"你可能也想以可编辑模式安装某些依赖项。例如,假设你的项目需要 \"foo\" 和 " +"\"bar\",但你希望 \"bar\" 以可编辑模式从 VCS 安装,那么你可以像这样构造一个像" +"这样的 requirements 文件::" #: ../source/guides/distributing-packages-using-setuptools.rst:329 msgid "" @@ -6253,8 +6253,8 @@ msgid "" "mode, the requirements file should look like this, with the local paths at " "the top of the file::" msgstr "" -"但是,如果你希望 \"bar\" 以可编辑模式从本地目录安装,那么 requirements 文件应" -"该像下面这样,把本地路径放在文件顶部::" +"不过如果你希望 \"bar\" 以可编辑模式从本地目录安装,那么 requirements 文件看上" +"去应该像这样,把本地路径放在文件顶部::" #: ../source/guides/distributing-packages-using-setuptools.rst:338 msgid "" @@ -9464,7 +9464,7 @@ msgid "" "the binary extension, as well as with the details of the CPython C API." msgstr "" "如果是手写的,就会要求维护者不仅熟悉 Python,还要熟悉创建二进制扩展所用的语言" -"以及 CPython C API 的细节,从而使维护更加困难" +"以及 CPython C API 的细节,使维护更加困难" #: ../source/guides/packaging-binary-extensions.rst:94 msgid "" @@ -9474,7 +9474,7 @@ msgid "" "are always executed." msgstr "" "如果提供了纯 Python 回退实现,就会要求在两处实现更改,并为测试套件引入额外的" -"复杂度以确保两个版本都会得到执行,从而使维护更加困难" +"复杂度以确保两个版本都会得到执行,使维护更加困难" #: ../source/guides/packaging-binary-extensions.rst:99 msgid "" @@ -10013,7 +10013,7 @@ msgstr "" #: ../source/guides/packaging-binary-extensions.rst:404 msgid "`Releasing the gil `_" -msgstr "`释放 GIL `_" +msgstr "`释放 gil `_" #: ../source/guides/packaging-binary-extensions.rst:405 msgid "" @@ -10990,11 +10990,10 @@ msgid "" "version of Visual Studio used includes 64-bit compilers with no additional " "setup)." msgstr "" -"Appveyor 默认包含了为 Python 构建扩展所需的所有编译器工具链。对于 Python " -"2.7、3.5+ 以及 3.3 和 3.4 的 32 位版本,这些工具开箱即用。但对于 Python 3.3 " -"和 3.4 的 64 位版本,还需要少量额外配置,让 distutils 知道到哪里查找 64 位编" -"译器。(从 3.5 开始,所使用的 Visual Studio 版本自带 64 位编译器,无需额外设" -"置。)" +"Appveyor 默认包含了构建 Python 扩展所需的所有编译器工具链。对于 Python 2.7、" +"3.5+ 以及 3.3 和 3.4 的 32 位版本,这些工具开箱即用。但对于 Python 3.3 和 " +"3.4 的 64 位版本,还需要少量额外配置让 distutils 知道到哪里查找 64 位编译器。" +"(从 3.5 开始,所使用的 Visual Studio 版本自带 64 位编译器,无需额外设置。)" #: ../source/guides/supporting-windows-using-appveyor.rst:61 msgid "appveyor.yml" @@ -11840,8 +11839,8 @@ msgid "" "declare which :term:`build backend` you use and which other dependencies are " "needed to build your project." msgstr "" -"我们 **强烈建议** 使用 ``[build-system]`` 表。它允许你声明自己使用的是哪个 " -":term:`构建后端 `,以及构建项目还需要哪些依赖项。" +"**强烈建议** 使用 ``[build-system]`` 表。它允许你声明你用哪个 :term:`build " +"backend` 以及构建项目还需要哪些其他依赖项。" #: ../source/guides/writing-pyproject-toml.rst:15 msgid "" @@ -12192,9 +12191,8 @@ msgid "" "\"headline\" of your project page on PyPI (`example `_), and " "other places such as lists of search results (`example `_)." msgstr "" -"这应该是对你项目的一行描述,会显示为 PyPI 项目页面上的“标题”(`示例 `_),也会显示在其他地方,例如搜索结果列表(`示例 `_)" -"。" +"这应该是对你项目的一行描述,显示为 PyPI 项目页面的“标题”(`example " +"`_),也会显示在其他地方,例如搜索结果列表 (`example `_)。" #: ../source/guides/writing-pyproject-toml.rst:295 #: ../source/specifications/pyproject-toml.rst:156 @@ -12217,7 +12215,7 @@ msgstr "README 的格式会根据扩展名自动检测:" #: ../source/guides/writing-pyproject-toml.rst:308 msgid "``README.md`` → `GitHub-flavored Markdown `_," -msgstr "``README.md`` → `GitHub 风格 Markdown `_," +msgstr "``README.md`` → `GitHub 风格 Markdown `_," #: ../source/guides/writing-pyproject-toml.rst:309 msgid "" @@ -12338,8 +12336,8 @@ msgid "" "`described in PEP 621 `__." msgstr "" "如果你遇到 ``license`` 应为 dict/table 的构建错误,说明你的构建后端还不支持新" -"格式。更多背景请参见 `上一节 `_。现已弃用的格式" -"在 `PEP 621 `__ 中有描述。" +"格式。更多背景请参见 `上一节 `_ 。现已弃用的格式" +"描述见 `PEP 621 `__ 。" #: ../source/guides/writing-pyproject-toml.rst:376 msgid "" @@ -12360,7 +12358,7 @@ msgid "" msgstr "" "如果你的 :term:`Distribution Archive` 所用的许可证没有现成的 SPDX 标识符,你" "可以按 ``LicenseRef-[idstring]`` 格式创建一个自定义标识符。自定义标识符必须遵" -"循 SPDX 规范 2.2 版或任何更新的兼容版本中的 `第 10.1 条 `_。" +"循 SPDX 规范 2.2 版或任何更新的兼容版本中的 `10.1 条款 `_ 。" #: ../source/guides/writing-pyproject-toml.rst:395 #: ../source/specifications/pyproject-toml.rst:152 @@ -12554,7 +12552,7 @@ msgid "" "information regarding possible problems." msgstr "" "在这里设置类似 ``requires-python = \"<= 3.10\"`` 的上限之前,请三思。`这篇博" -"客文章 `_ 介绍了可能存在的问题。" +"客文章 `_ 包含了可能存在的问题的信息。" #: ../source/guides/writing-pyproject-toml.rst:610 msgid "" @@ -14367,7 +14365,7 @@ msgstr "更新了用户安装页面。(:pr:`558`)" #: ../source/news.rst:74 msgid "Updated Google BigQuery urls. (:pr:`556`)" -msgstr "更新了 Google BigQuery 的 URL。(:pr:`556`)" +msgstr "更新了 Google BigQuery url。(:pr:`556`)" #: ../source/news.rst:75 msgid "Replaced tar command with working command. (:pr:`552`)" @@ -15030,7 +15028,7 @@ msgstr "" "Python 和 PyPI 支持由多个分发包提供同一软件包的不同实现。例如 `PIL 分发包 " "`_ 虽已停止维护却影响深远,它提供了 PIL 软件包" ";而 `Pillow `_ 这个积极维护的 PIL 分支也同" -"样提供。" +"样提供!" #: ../source/overview.rst:111 msgid "" @@ -16154,7 +16152,7 @@ msgid "" "itself in the same basic key: value format::" msgstr "" "``{distribution}-{version}.dist-info/WHEEL`` 是关于归档文件本身的元数据,采用" -"同样的基本“键: 值”格式::" +"同样的基本“键:值”格式::" #: ../source/specifications/binary-distribution-format.rst:209 msgid "``Wheel-Version`` is the version number of the Wheel specification." @@ -16365,8 +16363,8 @@ msgid "" "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -"任何通常不安装到 site-packages 内的文件都会放入 .data 目录,该目录按 .dist-" -"info 目录的方式命名,但改用 .data/ 扩展名::" +"任何通常不安装到 site-packages 内的文件都会放入 .data 目录,该目录命名为 " +".dist-info,但扩展名为 .data/::" #: ../source/specifications/binary-distribution-format.rst:299 msgid "" @@ -17759,11 +17757,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:306 msgid "``GFM`` for :rfc:`GitHub-flavored Markdown <7764#section-3.2>`" -msgstr "``GFM``,对应 :rfc:`GitHub 风格 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>`" +msgstr "``CommonMark`` 表示 :rfc:`CommonMark <7764#section-3.5>`" #: ../source/specifications/core-metadata.rst:325 msgid "" @@ -17849,7 +17847,7 @@ msgstr "" msgid "" "Per RFC-822, this field may contain multiple comma-separated e-mail " "addresses::" -msgstr "根据 RFC-822,此字段可以包含多个以逗号分隔的电子邮件地址::" +msgstr "根据 RFC-822,此字段可以包含多个以英文逗号分隔的电子邮件地址::" #: ../source/specifications/core-metadata.rst:407 msgid "Maintainer" @@ -18088,7 +18086,7 @@ msgid "" "then it may prevent installation on Python < 3.6 by specifying::" msgstr "" "例如,如果某个分发包使用了 :ref:`f-strings `,那么它可以通" -"过指定以下内容来阻止在 Python < 3.6 上安装::" +"过指定以下内容阻止在 Python < 3.6 上安装::" #: ../source/specifications/core-metadata.rst:619 msgid "This field cannot be followed by an environment marker." @@ -18775,7 +18773,7 @@ msgstr "这是一个展示 ``docs`` 和 ``test`` 群组的简单表格::" msgid "" "and a similar table which defines ``docs``, ``test``, and ``coverage`` " "groups::" -msgstr "而下面这个类似的表格则定义了 ``docs``、``test`` 和 ``coverage`` 群组::" +msgstr "以及一个定义了 ``docs`` 、 ``test`` 和 ``coverage`` 群的类似表格::" #: ../source/specifications/dependency-groups.rst:39 msgid "The ``[dependency-groups]`` Table" @@ -19050,11 +19048,11 @@ msgid "" "specifiers that are arguably nonsensical" msgstr "" "锁定工具和安装工具在处理时可以保持宽松,从而允许使用较旧的软件包,即使这些软" -"件包可能包含可以说毫无道理的依赖说明符。" +"件包可能包含可被认为是无意义的依赖说明符。" #: ../source/specifications/dependency-specifiers.rst:35 msgid "All features of the language shown with a name based lookup::" -msgstr "以基于名称的查找展示该语言的所有特性::" +msgstr "以基于名称的查找展示的该语言的所有特性::" #: ../source/specifications/dependency-specifiers.rst:39 msgid "A minimal URL based lookup::" @@ -19110,32 +19108,32 @@ msgid "" "specifier specification `. (Note: URI is defined " "in :rfc:`std-66 <3986>`)::" msgstr "" -"版本可以根据 :ref:`版本说明符规范 ` 的规则来指定。(注意" +"可以根据 :ref:`版本说明符规范 ` 的规则来指定版本。(注意" ":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 "环境标记允许让说明符仅在部分环境中生效::" +msgstr "环境标记允许让规范仅在部分环境中生效::" #: ../source/specifications/dependency-specifiers.rst:106 msgid "" "Optional components of a distribution may be specified using the extras " "field::" -msgstr "分发包的可选组件可以使用 extras 字段来指定::" +msgstr "可以使用 extras 字段来指定分发包的可选组件::" #: ../source/specifications/dependency-specifiers.rst:115 msgid "Giving us a rule for name based requirements::" -msgstr "这就为基于名称的需求给出了一条规则::" +msgstr "给我们一条基于名称的要求的规则::" #: ../source/specifications/dependency-specifiers.rst:119 msgid "And a rule for direct reference specifications::" -msgstr "以及针对直接引用说明符的规则::" +msgstr "以及一条针对直接引用规范的规则::" #: ../source/specifications/dependency-specifiers.rst:123 msgid "Leading to the unified rule that can specify a dependency.::" -msgstr "最终得到可以指定依赖项的统一规则。::" +msgstr "最终得到可以指定依赖项的统一规则::" #: ../source/specifications/dependency-specifiers.rst:128 msgid "Whitespace" @@ -19181,9 +19179,9 @@ msgid "" "additional dependencies of the distribution **when** the extra is used in a " "dependency specification. For instance::" msgstr "" -"附加功能(extra)是分发包的可选部分。分发包可以按需指定任意多个附加功能,**当" -"某个附加功能被用于依赖说明符中时**,它就会导致声明该分发包的额外依赖项。例" -"如::" +"附加功能(extra)是分发包的可选部分。分发包希望指定多少附加功能就可以指定多少" +",**当附加功能被用于依赖规范中时**,每个附加功能导致声明该分发包的额外依赖项" +"。例如::" #: ../source/specifications/dependency-specifiers.rst:160 msgid "" @@ -19945,10 +19943,10 @@ msgid "" "future versions of Python with 2-digit major and minor versions (e.g. 3.10). " "[#future_versions]_" msgstr "" -"2019 年 7 月:``python_version`` 的定义已 `更改 `_," -"从 ``platform.python_version()[:3]`` 改为 ``'.'.join" -"(platform.python_version_tuple()[:2])``,以适应将来可能出现的主版本号和次版本" -"号为两位数的 Python 版本(例如 3.10)。 [#future_versions]_" +"2019 年 7 月:``python_version`` 的定义从 ``platform.python_version()[:3]`` " +"`更改 `_ 为 ``'.'.join(platform.python_version_tuple" +"()[:2])`` 以适应将来可能出现的主版本号和次版本号为两位数的 Python 版本(例如 " +"3.10)。 [#future_versions]_" #: ../source/specifications/dependency-specifiers.rst:689 msgid "" @@ -20034,7 +20032,7 @@ msgstr "pip,推荐的 Python 软件包安装工具(http://pip.readthedocs.or #: ../source/specifications/dependency-specifiers.rst:721 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" -msgstr "parsley PEG 库(https://pypi.python.org/pypi/parsley/)。" +msgstr "parsley PEG 库(https://pypi.python.org/pypi/parsley/)" #: ../source/specifications/dependency-specifiers.rst:724 msgid "" @@ -20199,7 +20197,7 @@ msgid "" "represent URLs to python projects and distribution artifacts such as VCS " "source trees, local source trees, source distributions and wheels." msgstr "" -"本文档规定了一种可序列化为 JSON 的抽象数据结构,用于表示指向 Python 项目和分" +"本文档规定了一种可序列化为 JSON 的抽象数据结构,用于表示指向 python 项目和分" "发制品的 URL,例如 VCS 源码树、本地源码树、源分发和 wheel 包。" #: ../source/specifications/direct-url-data-structure.rst:13 @@ -20211,8 +20209,8 @@ msgid "" "`." msgstr "" "截至撰写本文时,尚未正式规定如何将此数据结构的各个部分合并为一个可传递给工具" -"的单一 URL。一种常见的表示形式是 pip 的 URL 格式(参见 `VCS 支持 `_),其他示例见 :ref:`版本说明符规范 `。" +"的单一 URL。一种常见的表示形式是 pip 的 URL 格式 (`VCS Support `_),其他示例见 :ref:`版本说明符规范 `。" #: ../source/specifications/direct-url-data-structure.rst:21 msgid "" @@ -20564,11 +20562,11 @@ msgstr "bzr" #: ../source/specifications/direct-url-data-structure.rst:208 msgid "A tag name, branch name, revision id." -msgstr "标签名、分支名、修订版本 ID。" +msgstr "标签名、分支名、修订版本 id。" #: ../source/specifications/direct-url-data-structure.rst:211 msgid "A revision id." -msgstr "修订版本 ID。" +msgstr "修订版本 id." #: ../source/specifications/direct-url-data-structure.rst:214 msgid "Subversion" @@ -20748,8 +20746,8 @@ msgid "" "intended to be looked up like this::" msgstr "" "**对象引用** 指向一个 Python 对象。它的形式为 ``importable.module`` 或 " -"``importable.module:object.attr``。以点和冒号分隔的每个部分都是一个有效的 " -"Python 标识符。其预期的查找方式如下:::" +"``importable.module:object.attr`` 。以点和冒号分隔的每个部分都是一个有效的 " +"Python 标识符。其预期的查找方式如下::" #: ../source/specifications/entry-points.rst:64 msgid "" @@ -20808,9 +20806,9 @@ msgid "" "whereas entry point names are case sensitive. A case-sensitive config parser " "can be made like this::" msgstr "" -"文件内容为 INI 格式,可由 Python 的 :mod:`configparser` 模块读取。不过," -"configparser 默认将名称视为不区分大小写,而入口点名称是区分大小写的。可以这样" -"构造一个区分大小写的配置解析器:::" +"文件内容为 INI 格式,和 Python 的 :mod:`configparser` 模块读取的格式一样。不" +"过,configparser 默认不区分名称大小写,而入口点名称是区分大小写的。可以这样构" +"造一个区分大小写的配置解析器:::" #: ../source/specifications/entry-points.rst:98 msgid "" @@ -20869,8 +20867,8 @@ msgid "" "For instance, the entry point ``mycmd = mymod:main`` would create a command " "``mycmd`` launching a script like this::" msgstr "" -"例如,入口点 ``mycmd = mymod:main`` 将创建一个命令 ``mycmd``,它所启动的脚本" -"如下:::" +"例如,入口点 ``mycmd = mymod:main`` 将创建一条像这样启动脚本的 ``mycmd`` 命" +"令::" #: ../source/specifications/entry-points.rst:144 msgid "" @@ -21002,10 +21000,10 @@ msgid "" "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 解释器本身、" -"用 Python 编写的软件,以及用其他语言编写的软件。也就是说,这是 “Linux distro" -"” 或 “Berkeley Software Distribution” 等短语中所使用的含义。" +"“distribution” 的简称,指各类软件的集合,理想情况下这些软件被设计为能够正确地" +"协同工作,其中(就与本文档相关的语境而言)包括 Python 解释器本身、用 Python " +"编写的软件,以及用其他语言编写的软件。也就是说,这是 “Linux distro” 或 “" +"Berkeley Software Distribution” 等短语中 distribution 的含义。" #: ../source/specifications/externally-managed-environments.rst:46 msgid "" @@ -21091,9 +21089,9 @@ msgid "" "Install command `_ as well as direct usage of a ``setup.py`` " "command." msgstr "" -"一种以符合 Python 打包标准的方式安装、升级和/或移除 Python 软件包的工具。最流" +"以遵守 Python 打包标准的方式安装、升级和/或移除 Python 软件包的一个工具。最流" "行的 Python 专用软件包管理器是 pip_;其他例子还包括旧的 `Easy Install 命令 " -"`_ 以及直接使用 ``setup.py`` 命令的情况。" +"`_ 以及直接使用 ``setup.py`` 命令。" #: ../source/specifications/externally-managed-environments.rst:92 msgid "" @@ -21511,9 +21509,9 @@ msgid "" "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``。这种划" -"分方式为 `文件系统层次结构标准`__ 所推荐。" +"请注意, ``/usr/local`` 与 ``/usr`` 的划分类似 ``PATH`` 环境变量通常如何默认" +"包含 ``/usr/local/bin:/usr/bin`` 以及非发行版软件安装到 ``/usr/local`` 。这种" +"划分方式为 `文件系统层次结构标准`__ 所推荐。" #: ../source/specifications/externally-managed-environments.rst:349 msgid "" @@ -21685,10 +21683,10 @@ msgid "" "``sysconfig`` scheme, and notably does not change the result of " "``sysconfig.get_path(\"stdlib\")``." msgstr "" -"Debian 目前携带了一个 `用于更改虚拟环境内默认安装位置的补丁`__,它使用了一些" +"Debian 目前携带了一个 `用于更改虚拟环境内默认安装位置的补丁`__ ,它使用了一些" "启发式规则(包括检查 ``VIRTUAL_ENV`` 环境变量),主要是为了让虚拟环境中使用的" -"目录保持为 ``site-packages`` 而不是 ``dist-packages``。这对本提案并没有特别的" -"影响,因为该补丁的实现实际上并没有更改默认的 ``sysconfig`` 方案,尤其没有更" +"目录保持为 ``site-packages`` 而不是 ``dist-packages`` 。这对本提案并没有特别" +"的影响,因为该补丁的实现实际上并没有更改默认的 ``sysconfig`` 方案,尤其没有更" "改 ``sysconfig.get_path(\"stdlib\")`` 的结果。" #: ../source/specifications/externally-managed-environments.rst:445 @@ -21699,10 +21697,10 @@ msgid "" "envisioned by bpo-43976_, except implemented as a code patch to " "``distutils`` instead of as a changed ``sysconfig`` scheme." msgstr "" -"Fedora 目前携带了一个 `用于在未运行于 rpmbuild 内部时更改默认安装位置的补" -"丁`__,他们用它来实现采用两个系统级目录的做法。从概念上讲,这正是 bpo-43976_ " -"所设想的那类钩子,只不过它是作为针对 ``distutils`` 的代码补丁实现的,而不是通" -"过更改 ``sysconfig`` 方案来实现的。" +"Fedora 目前携带了一个 `用于未在 rpmbuild 内运行时更改默认安装位置的补丁`__ ," +"他们用它来实现采用两个系统级目录的做法。从概念上讲,这正是 bpo-43976_ 所设想" +"的那类钩子,只不过以 ``distutils`` 的代码补丁形式实现,而不是作为更改的 " +"``sysconfig`` 方案来实现。" #: ../source/specifications/externally-managed-environments.rst:454 msgid "" @@ -21927,8 +21925,8 @@ msgid "" "Alphanumeric characters, spaces (`` ``), underscores (``_``), hyphens (``-" "``), and dots (``.``) MUST be matched verbatim." msgstr "" -"字母数字字符、空格(``U+0020``)、下划线(``_``)、连字符(``-``)和点号" -"(``.``)必须按原样匹配。" +"字母数字字符,空格 (`` ``), 下划线 (``_``), 连字符 (``-``), 和点 (``.``) 必须" +"逐字匹配。" #: ../source/specifications/glob-patterns.rst:21 msgid "" @@ -22613,8 +22611,8 @@ msgid "" "update automation in CI. The following is a crude example of modifying the " "content using the ``tomlkit`` library__." msgstr "" -"工具(例如包管理器或 CI 中的依赖项更新自动化工具)常常会编辑依赖项。下面是一" -"个修改内容的粗略示例,其中用到了 ``tomlkit`` 库__。" +"工具经常在 CI 中编辑依赖项(如包管理器)或依赖项更新自动化。下面是一个修改内" +"容的粗略示例,其中用到了 ``tomlkit`` 库__。" #: ../source/specifications/inline-script-metadata.rst:193 msgid "" @@ -22743,8 +22741,8 @@ msgid "" "(run with :py:data:`re.IGNORECASE`)::" msgstr "" "有效名称只能由 ASCII 字母和数字、句点、下划线和连字符组成,且必须以字母或数字" -"开头和结尾。这意味着,有效的项目名称仅限于匹配以下正则表达式(配合 " -":py:data:`re.IGNORECASE` 使用)::" +"开头和结尾。这意味着,有效的项目名称仅限于匹配以下正则表达式 (用 " +":py:data:`re.IGNORECASE` 运行)的名称 ::" #: ../source/specifications/name-normalization.rst:26 msgid "Name normalization" @@ -22796,7 +22794,7 @@ msgstr "``FrIeNdLy-._.-bArD`` (一种 *糟糕透顶* 的名称写法,但它 msgid "" "September 2015: The specification of name normalized was approved " "through :pep:`503 <503#normalized-names>`." -msgstr "2015 年 9 月:名称规范化规范通过 :pep:`503 <503#normalized-names>` 获得批准。" +msgstr "2015 年 9 月:名称正常化规范通过 :pep:`503 <503#normalized-names>` 获得批准。" #: ../source/specifications/name-normalization.rst:54 msgid "" @@ -23580,9 +23578,9 @@ msgid "" "code, could distribute a bdist with the tag ``py2.py3-none-any``. The full " "list of simple tags is::" msgstr "" -"为了让兼容多个兼容性标签三元组的 bdist 保持文件名紧凑,文件名中的每个标签可以" -"改为一个以 '.' 分隔、经过排序的标签集合。例如,pip 是一个用同一份源代码编写、" -"可同时运行在 Python 2 和 3 下的纯 Python 软件包,它可以用标签 ``py2.py3-none-" +"为了允许能和超过1个兼容性标签三元组搭配的紧凑 bdist 文件名 ,文件名中的每个标" +"签可以改为一个以 '.' 分隔、经过排序的标签集合。例如,pip 是一个用同一份源代码" +"编写,运行在 Python 2 和 3 下的纯 Python 软件包,它可以用标签 ``py2.py3-none-" "any`` 来分发 bdist。简单标签的完整列表如下::" #: ../source/specifications/platform-compatibility-tags.rst:370 @@ -27208,8 +27206,8 @@ msgid "" msgstr "" "本规范引用了“规范化的”项目名称这一概念。根据 :ref:`名称规范化规范 `,名称中唯一有效的字符是 ASCII 字母、ASCII 数字、``.``、``-`` " -"和 ``_``。名称应转换为小写,并将所有连续出现的 ``.``、``-`` 或 ``_`` 字符替换" -"为单个 ``-`` 字符。在 Python 中可以使用 ``re`` 模块实现::" +"和 ``_``。名称应为小写,并将所有连续出现的 ``.``、``-`` 或 ``_`` 字符替换为单" +"个 ``-`` 字符。在 Python 中可以使用 ``re`` 模块实现::" #: ../source/specifications/simple-repository-api.rst:50 msgid "Versioning PyPI's Simple API" @@ -29233,7 +29231,7 @@ msgid "" msgstr "" "本文档中的关键词 \"MUST\"、\"MUST NOT\"、\"REQUIRED\"、\"SHALL\"、\"SHALL " "NOT\"、\"SHOULD\"、\"SHOULD NOT\"、\"RECOMMENDED\"、\"MAY\" 和 \"OPTIONAL\" " -"应按照 :rfc:`2119` 中的描述进行解释。" +"将按 :rfc:`2119` 中描述进行理解。" #: ../source/specifications/version-specifiers.rst:21 msgid "" @@ -29541,7 +29539,7 @@ msgstr "仅由发布段和可选的 epoch 标识符组成的版本标识符称 msgid "" "The release segment consists of one or more non-negative integer values, " "separated by dots::" -msgstr "发布段由一个或多个以点号分隔的非负整数值组成::" +msgstr "发布段由一个或多个非负的整数值组成,由点号隔开::" #: ../source/specifications/version-specifiers.rst:187 msgid "" @@ -29594,9 +29592,7 @@ msgstr "" 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 "" -"也允许使用基于日期的发布段。以下是一个基于日期的版本格式示例,其中使用了发布" -"的年份和月份::" +msgstr "也允许使用基于日期的发布段。以下是使用版本年月的基于日期的发布方案的示例::" #: ../source/specifications/version-specifiers.rst:240 msgid "Pre-releases" @@ -29615,8 +29611,8 @@ 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 "" -"如果在项目开发周期中使用这些预发布版本,则通过在版本标识符中包含预发布段来表" -"示::" +"如果在项目开发周期中使用预发布版本,则通过在版本标识符中包含预发布段来标示这" +"些预发行版本::" #: ../source/specifications/version-specifiers.rst:253 msgid "" @@ -29677,8 +29673,8 @@ 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 "" -"如果在项目开发周期中使用这些后发布版本,则通过在版本标识符中包含后发布段来表" -"示::" +"如果在项目开发周期中使用后发布版本,则通过在版本标识符中包含后发布段来标示这" +"些后发布版本::" #: ../source/specifications/version-specifiers.rst:283 msgid "" @@ -29708,7 +29704,7 @@ msgstr "" #: ../source/specifications/version-specifiers.rst:298 msgid "Post-releases are also permitted for pre-releases::" -msgstr "也允许为预发布版本创建后发布版本::" +msgstr "预发布版本也允许后发布版本::" #: ../source/specifications/version-specifiers.rst:306 msgid "" @@ -29740,8 +29736,8 @@ msgid "" "releases are indicated by including a developmental release segment in the " "version identifier::" msgstr "" -"如果作为项目开发周期的一部分使用,这些开发版本会通过在版本标识符中包含开发版" -"本段来表示::" +"如果作为项目开发周期的一部分使用,会通过在版本标识符中包含开发版本段来标示这" +"些开发版本::" #: ../source/specifications/version-specifiers.rst:326 msgid "" @@ -29765,7 +29761,7 @@ msgstr "" msgid "" "Developmental releases are also permitted for pre-releases and post-" "releases::" -msgstr "开发版本也可用于预发布版本和后续发布::" +msgstr "预发布版本和后发布版本也允许开发版本::" #: ../source/specifications/version-specifiers.rst:343 msgid "" @@ -30132,11 +30128,11 @@ msgstr "" #: ../source/specifications/version-specifiers.rst:568 msgid "Simple \"major.minor\" versioning::" -msgstr "简单的 \"major.minor\" 版本编号::" +msgstr "简易 \"major.minor\" 版本编号::" #: ../source/specifications/version-specifiers.rst:577 msgid "Simple \"major.minor.micro\" versioning::" -msgstr "简单的 \"major.minor.micro\" 版本编号::" +msgstr "简易 \"major.minor.micro\" 版本编号::" #: ../source/specifications/version-specifiers.rst:585 msgid "" @@ -30147,9 +30143,7 @@ msgstr "带 alpha、beta 和候选发布等预发布版本的 \"major.minor\" msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" -msgstr "" -"带开发发布版本、候选发布版本和用于轻微更正的后发布版本的 \"major.minor\" 版本" -"编号::" +msgstr "带开发版、候选发布版和用于轻微更正的后发布版的 \"major.minor\" 版本编号::" #: ../source/specifications/version-specifiers.rst:612 msgid "" @@ -30199,8 +30193,8 @@ 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``)中,允许使用以下后缀,并且必须按如下顺序" -"排序::" +"在数字发布版本(``1.0``、``2.7.3``)中,允许使用以下后缀,并且必须按显示的顺" +"序排序::" #: ../source/specifications/version-specifiers.rst:652 msgid "" @@ -30220,13 +30214,13 @@ msgid "" "ordered as shown::" msgstr "" "在 alpha(``1.0a1``)、beta(``1.0b1``)或候选发布(``1.0rc1``、``1.0c1``)中" -",允许使用以下后缀,并且必须按如下顺序排序::" +",允许使用以下后缀,并且必须按显示的如下顺序排序::" #: ../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 "在后发布版本(``1.0.post1``)中,允许使用以下后缀,并且必须按如下顺序排序::" +msgstr "在后发布版本(``1.0.post1``)中,允许使用以下后缀,并且必须按显示的顺序排序::" #: ../source/specifications/version-specifiers.rst:668 msgid "" @@ -30527,7 +30521,7 @@ msgstr "" msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" -msgstr "对于给定的发布标识符 ``V.N``,兼容发布子句近似等价于如下这对比较子句::" +msgstr "对于给定的发布标识符 ``V.N``,兼容的发布子句近似等价于如下这对比较子句::" #: ../source/specifications/version-specifiers.rst:850 msgid "" @@ -30554,8 +30548,8 @@ msgid "" "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -"发布段比较的填充规则意味着,兼容发布子句中假定的前向兼容程度,可以通过在版本" -"说明符末尾附加额外的零来控制::" +"发布段比较的填充规则意味着,可以通过在版本说明符末尾附加额外的零来控制兼容的" +"发布子句中假定的前向兼容程度::" #: ../source/specifications/version-specifiers.rst:883 msgid "Version matching" @@ -30982,11 +30976,11 @@ msgstr "" #: ../source/specifications/version-specifiers.rst:1118 msgid "For example, a local source archive may be referenced directly::" -msgstr "例如,可以直接引用本地的源归档文件::" +msgstr "例如,可以直接引用本地的源代码归档文件::" #: ../source/specifications/version-specifiers.rst:1122 msgid "Alternatively, a prebuilt archive may also be referenced::" -msgstr "或者,也可以直接引用预先构建好的归档文件::" +msgstr "或者,也可以引用预先构建好的归档文件::" #: ../source/specifications/version-specifiers.rst:1126 msgid "" @@ -32278,7 +32272,7 @@ msgid "" msgstr "" "要从其他数据源(例如 Amazon S3 存储)安装,你可以创建一个辅助应用,以符合 " ":ref:`简单仓库 API ` 的格式呈现数据,并使用 ``--extra-" -"index-url`` 标志让 pip 使用该索引:" +"index-url`` 标志让 pip 使用该索引。" #: ../source/tutorials/installing-packages.rst:622 msgid "Installing Prereleases" @@ -33216,7 +33210,7 @@ msgid "" "`_, :doc:`setuptools `, :doc:`Flit `, `PDM `_." msgstr "" -"阅读你所选构建后端的高级配置:`Hatchling 配置 " +"阅读所选构建后端的高级配置的信息:`Hatchling 配置 " "`_、:doc:`setuptools `、:doc:`Flit " "`、`PDM 配置 `_。" From cf6050523a3071e5510909fa604bb48cbf3a5736 Mon Sep 17 00:00:00 2001 From: azxc1 Date: Mon, 28 Sep 2026 06:52:30 +0200 Subject: [PATCH 23/24] Translated using Weblate (Spanish) Currently translated at 7.6% (347 of 4545 strings) Co-authored-by: azxc1 Translate-URL: https://hosted.weblate.org/projects/pypa/packaging-python-org/es/ Translation: pypa/packaging.python.org --- locales/es/LC_MESSAGES/messages.po | 80 +++++++++++++++++++++++++++--- 1 file changed, 73 insertions(+), 7 deletions(-) diff --git a/locales/es/LC_MESSAGES/messages.po b/locales/es/LC_MESSAGES/messages.po index a285b23ea..73459cd34 100644 --- a/locales/es/LC_MESSAGES/messages.po +++ b/locales/es/LC_MESSAGES/messages.po @@ -13,13 +13,14 @@ # "Edgar R. M." , 2024. # Joseph Hale , 2025. # Jonathan-den , 2025. +# azxc1 , 2026. msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-09-22 14:24+0000\n" -"PO-Revision-Date: 2025-12-12 01:00+0000\n" -"Last-Translator: Joseph Hale \n" +"PO-Revision-Date: 2026-09-27 03:51+0000\n" +"Last-Translator: azxc1 \n" "Language-Team: Spanish \n" "Language: es\n" @@ -27,7 +28,7 @@ msgstr "" "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.15-dev\n" +"X-Generator: Weblate 2026.10.dev0\n" #: ../source/contribute.rst:5 msgid "Contribute to this guide" @@ -58,10 +59,8 @@ msgid "Writing new content" msgstr "Escribir contenido nuevo" #: ../source/contribute.rst:14 -#, fuzzy -#| msgid "Translate the guide" msgid "Translating the guide" -msgstr "Traducir la guía" +msgstr "Traduciendo la guía" #: ../source/contribute.rst:16 msgid "" @@ -1257,6 +1256,15 @@ msgid "" "files) should also be included, to help downstreams determine the needed " "dependencies, and check for changes in them." msgstr "" +"Este punto se aplica únicamente a los archivos que pertenecen al propio " +"paquete. El proceso de empaquetado posterior, al igual que los " +"administradores de paquetes de Python, se encargará de proporcionar las " +"dependencias de Python, las herramientas del sistema y las bibliotecas " +"externas necesarias para el paquete y sus scripts de compilación.\n" +"Sin embargo, también deben incluirse los archivos que enumeran estas " +"dependencias, como los archivos \"requirements*.txt\". Esto ayuda a los " +"encargados del empaquetado posterior a determinar qué dependencias se " +"necesitan y a comprobar si estas han cambiado." #: ../source/discussions/downstream-packaging.rst:115 msgid "" @@ -1270,6 +1278,17 @@ msgid "" "Alternatively, large files, such as test data, can be split into separate " "archives." msgstr "" +"Algunos proyectos tienen preocupaciones relacionadas con el uso que hacen " +"los administradores de paquetes de Python de las distribuciones de código " +"fuente de PyPI. No quieren aumentar su tamaño con archivos que estas " +"herramientas no utilizan, o simplemente no quieren publicar distribuciones " +"de código fuente, ya que estas permiten recurrir a una alternativa " +"problemática o incluso que no funcione para compilar el proyecto en cuestión " +"desde el código fuente. En estos casos, un buen punto intermedio puede ser " +"publicar un archivo independiente con el código fuente para que otros " +"proyectos puedan utilizarlo, por ejemplo, adjuntándolo a una versión " +"publicada en GitHub. Como alternativa, los archivos grandes, como los datos " +"de prueba, pueden dividirse en archivos independientes." #: ../source/discussions/downstream-packaging.rst:124 msgid "" @@ -1281,6 +1300,14 @@ msgid "" "was taken by the cryptography_ project, with the large test vectors being " "split to cryptography-vectors_ package." msgstr "" +"Por otro lado, algunos proyectos (NumPy_, por ejemplo) deciden incluir las " +"pruebas en los paquetes que instalan. Esto tiene la ventaja adicional de " +"permitir que los usuarios ejecuten las pruebas después de instalarlos, por " +"ejemplo, para comprobar si aparecen regresiones después de actualizar una " +"dependencia. Otro enfoque consiste en dividir las pruebas o los datos de " +"prueba en un paquete de Python separado. El proyecto cryptography_ adoptó " +"este enfoque, separando los grandes vectores de prueba en el paquete " +"cryptography-vectors_." #: ../source/discussions/downstream-packaging.rst:132 msgid "" @@ -1290,6 +1317,12 @@ msgid "" "source distribution actually works, and that it won't accidentally install " "fewer files than the official wheels." msgstr "" +"Una buena idea es utilizar tu distribución de código fuente durante el " +"proceso de publicación. Por ejemplo, la herramienta :ref:\"build\" hace " +"exactamente eso: primero crea una distribución de código fuente y luego la " +"utiliza para crear un wheel. Esto garantiza que la distribución de código " +"fuente realmente funcione y que no termine instalando accidentalmente menos " +"archivos que los wheels oficiales." #: ../source/discussions/downstream-packaging.rst:138 msgid "" @@ -1298,10 +1331,16 @@ msgid "" "actually included. Understandably, this requires more effort, so it's fine " "not do that — downstream packagers will report any missing files promptly." msgstr "" +"Lo ideal es utilizar también la distribución de código fuente para ejecutar " +"las pruebas, generar la documentación, etc., o añadir pruebas específicas " +"que verifiquen que todos los archivos necesarios se hayan incluido " +"correctamente. Es comprensible que esto requiera un poco más de trabajo, así " +"que no pasa nada si decides no hacerlo. Los encargados del empaquetado " +"posterior informarán rápidamente si falta algún archivo." #: ../source/discussions/downstream-packaging.rst:147 msgid "Do not use the Internet during the build process" -msgstr "" +msgstr "No uses Internet durante el proceso de compilación" #: ../source/discussions/downstream-packaging.rst:152 msgid "" @@ -1309,6 +1348,9 @@ msgid "" "access the Internet. The package sources are unpacked into this environment, " "and all the necessary dependencies are installed." msgstr "" +"Las compilaciones posteriores suelen realizarse en entornos aislados que no " +"tienen acceso a Internet. El código fuente del paquete se descomprime en " +"este entorno y se instalan todas las dependencias necesarias." #: ../source/discussions/downstream-packaging.rst:156 msgid "" @@ -1316,12 +1358,18 @@ msgid "" "properly authenticate downloads, using the Internet is discouraged for a " "number of reasons:" msgstr "" +"Incluso si este no fuera el caso, y suponiendo que hayas tomado las medidas " +"necesarias para autenticar correctamente las descargas, se desaconseja " +"utilizar Internet por varias razones:" #: ../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 "" +"La conexión a Internet puede ser inestable (por ejemplo, debido a una mala " +"señal) o presentar problemas temporales que podrían hacer que el proceso " +"falle o se quede bloqueado." #: ../source/discussions/downstream-packaging.rst:164 msgid "" @@ -1329,16 +1377,25 @@ msgid "" "making the build no longer possible. This is especially problematic when " "someone needs to build an old package version." msgstr "" +"Los recursos externos pueden dejar de estar disponibles temporal o " +"permanentemente, haciendo que el paquete ya no pueda compilarse. Esto es " +"especialmente problemático al intentar compilar una versión antigua del " +"paquete." #: ../source/discussions/downstream-packaging.rst:168 msgid "The remote resources may change, making the build not reproducible." msgstr "" +"Los recursos externos pueden cambiar, haciendo que la compilación no sea " +"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 "" +"Acceder a servidores externos puede suponer un riesgo para la privacidad y " +"la seguridad, ya que puede revelar información sobre el sistema que está " +"compilando el paquete." #: ../source/discussions/downstream-packaging.rst:174 msgid "" @@ -1346,6 +1403,9 @@ msgid "" "uncontrolled Internet access may result in additional charges or other " "inconveniences." msgstr "" +"El usuario puede tener un plan de datos limitado, por lo que el acceso no " +"controlado a Internet podría generar cargos adicionales u otros " +"inconvenientes." #: ../source/discussions/downstream-packaging.rst:181 msgid "" @@ -1355,6 +1415,12 @@ msgid "" "all of these files or allow provisioning them externally, and the Internet " "must not be used if the files are already present." msgstr "" +"Si el paquete utiliza acciones personalizadas de *backend* que acceden a " +"Internet durante la compilación, por ejemplo, para descargar automáticamente " +"dependencias incluidas o obtener submódulos de Git, la distribución de " +"código fuente debe incluir todos esos archivos o permitir que se " +"proporcionen externamente. Además, no debe utilizarse Internet si los " +"archivos ya están disponibles." #: ../source/discussions/downstream-packaging.rst:187 msgid "" From 39650f9c4e358e66417acb4a6a6e7a7d171f5817 Mon Sep 17 00:00:00 2001 From: OIS Date: Mon, 28 Sep 2026 06:52:32 +0200 Subject: [PATCH 24/24] Translated using Weblate (Russian) Currently translated at 80.3% (3650 of 4545 strings) Co-authored-by: OIS Translate-URL: https://hosted.weblate.org/projects/pypa/packaging-python-org/ru/ Translation: pypa/packaging.python.org --- locales/ru/LC_MESSAGES/messages.po | 31 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/locales/ru/LC_MESSAGES/messages.po b/locales/ru/LC_MESSAGES/messages.po index d2866887a..a3c779196 100644 --- a/locales/ru/LC_MESSAGES/messages.po +++ b/locales/ru/LC_MESSAGES/messages.po @@ -11,13 +11,14 @@ # Nikita , 2024. # gfbdrgn , 2025. # da070116 , 2025. +# OIS , 2026. msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-09-22 14:24+0000\n" -"PO-Revision-Date: 2025-06-07 08:01+0000\n" -"Last-Translator: da070116 \n" +"PO-Revision-Date: 2026-09-28 04:51+0000\n" +"Last-Translator: OIS \n" "Language-Team: Russian \n" "Language: ru\n" @@ -26,7 +27,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Weblate 5.12-dev\n" +"X-Generator: Weblate 2026.10.dev0\n" #: ../source/contribute.rst:5 msgid "Contribute to this guide" @@ -1103,10 +1104,8 @@ msgstr "" "Gentoo Linux, например)." #: ../source/discussions/downstream-packaging.rst:51 -#, fuzzy -#| msgid "Python source distributions" msgid "Provide complete source distributions" -msgstr "Дистрибутивы с исходным кодом Python" +msgstr "Предоставляйте полный исходный код" #: ../source/discussions/downstream-packaging.rst:54 #: ../source/discussions/downstream-packaging.rst:150 @@ -1127,11 +1126,11 @@ msgstr "" #: ../source/discussions/downstream-packaging.rst:62 msgid "Being able to audit the source code of all packages." -msgstr "" +msgstr "Возможность аудита исходного кода всех пакетов." #: ../source/discussions/downstream-packaging.rst:64 msgid "Being able to run the test suite and build documentation." -msgstr "" +msgstr "Возможность выполнения набора тестов и построения документации." #: ../source/discussions/downstream-packaging.rst:66 msgid "" @@ -1197,7 +1196,7 @@ msgstr "" #: ../source/discussions/downstream-packaging.rst:337 #: ../source/discussions/downstream-packaging.rst:441 msgid "How?" -msgstr "" +msgstr "Как?" #: ../source/discussions/downstream-packaging.rst:101 msgid "" @@ -1262,7 +1261,7 @@ msgstr "" #: ../source/discussions/downstream-packaging.rst:147 msgid "Do not use the Internet during the build process" -msgstr "" +msgstr "Не используйте интернет в ходе сборки" #: ../source/discussions/downstream-packaging.rst:152 msgid "" @@ -1350,10 +1349,8 @@ msgid "" msgstr "" #: ../source/discussions/downstream-packaging.rst:210 -#, fuzzy -#| msgid "Declaring build system dependencies" msgid "Support building against system dependencies" -msgstr "Объявление зависимостей системы сборки" +msgstr "Поддерживайте сборку с зависимостями из системы" #: ../source/discussions/downstream-packaging.rst:215 msgid "" @@ -1421,6 +1418,8 @@ msgid "" "Static linking and vendoring obscures the use of external dependencies, " "making source auditing harder." msgstr "" +"Статическая сборка и вендоринг затрудняют определение внешних зависимостей, " +"из-за чего аудит исходного кода становится сложнее." #: ../source/discussions/downstream-packaging.rst:256 msgid "" @@ -1484,7 +1483,7 @@ msgstr "" #: ../source/discussions/downstream-packaging.rst:300 msgid "Support downstream testing" -msgstr "" +msgstr "Поддерживайте тестирование даунстримом" #: ../source/discussions/downstream-packaging.rst:305 msgid "" @@ -1644,10 +1643,8 @@ msgid "" msgstr "" #: ../source/discussions/downstream-packaging.rst:409 -#, fuzzy -#| msgid "Final releases" msgid "Aim for stable releases" -msgstr "Финальные релизы" +msgstr "Стремитесь предоставлять стабильные релизы" #: ../source/discussions/downstream-packaging.rst:414 msgid ""