diff --git a/.github/ISSUE_TEMPLATE/translation.yml b/.github/ISSUE_TEMPLATE/translation.yml deleted file mode 100644 index 780ebc7227..0000000000 --- a/.github/ISSUE_TEMPLATE/translation.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Translation Issue Report -description: File a translation issue report -title: "[Typo]: " -labels: ["translation"] -body: - - type: markdown - attributes: - value: | - Thanks for taking the time to fill out this translation issue report! - - type: input - id: version - attributes: - label: Python Version - description: Which version of the Python documentation covers this issue? - placeholder: ex. 3.12 - validations: - required: true - - type: input - id: url - attributes: - label: Docs Page - description: What is the url of the page containing the issue? - placeholder: https://docs.python.org/3/about.html - validations: - required: true - - type: textarea - id: zh-original - attributes: - label: Original Translation - description: Which translated paragraph in Chinese contains the issue? - validations: - required: true - - type: textarea - id: en-original - attributes: - label: Original Docs Paragraph - description: Which original paragraph in English contains the issue? - validations: - required: false - - type: textarea - id: zh-suggested - attributes: - label: Suggested Fix - description: What is your suggested fix? - validations: - required: true \ No newline at end of file diff --git a/.github/scripts/build.sh b/.github/scripts/build.sh deleted file mode 100755 index 46c229e10b..0000000000 --- a/.github/scripts/build.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash - -set -e -set -u -set -o pipefail - -error() { - while read -r line; do - echo - echo ::error::"$line" - done -} - -cd cpython/Doc || exit 1 -mkdir -p locales/"$LOCALE"/ -ln -sfn "$(realpath ../../docs)" locales/"$LOCALE"/LC_MESSAGES -pip3 install -q -r requirements.txt -sphinx-build -b dummy -d build/doctrees -j auto -D language=$LOCALE -D gettext_compact=0 -E --keep-going -W . build/html 2> >(error) diff --git a/.github/scripts/commit.sh b/.github/scripts/commit.sh deleted file mode 100755 index 878c0d57e6..0000000000 --- a/.github/scripts/commit.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -set -ex - -cd docs || exit 1 -git config user.email "github-actions[bot]@users.noreply.github.com" -git config user.name "github-actions[bot]" -if ! git status -s|grep '\.po'; then - echo "Nothing to commit" - exit 0 -fi -git add . -git commit -m '[po] auto sync' -git push diff --git a/.github/scripts/generate_tx_config.py b/.github/scripts/generate_tx_config.py deleted file mode 100755 index ebcc3b2dd4..0000000000 --- a/.github/scripts/generate_tx_config.py +++ /dev/null @@ -1,87 +0,0 @@ -"""Please note that this script requires a Transifex API token to run.""" -import glob -import subprocess -from functools import partial -from pathlib import Path -import re -import os - -run = partial(subprocess.run, check=True) - - -def init_project(): - run(["tx", "init"]) - - -def add_files(project_name: str): - run( - [ - "tx", - "add", - "remote", - "--file-filter", - "trans//.", - f"https://www.transifex.com/python-doc/{project_name}/dashboard/", - ] - ) - - -FILTER_PATTERN = re.compile( - r"^(?Pfile_filter( *)=( *))(?P.+)$", re.MULTILINE -) - - -def name_replacer(match: re.Match[str]): - prefix, resource = match.group("prefix", "resource") - override_prefix = prefix.replace("file_filter", "trans.zh_CN") - pattern = ( - resource.replace("trans//", "") - .replace("glossary_", "glossary") - .replace("--", "/") - .replace("_", "?") - ) - matches = list(glob.glob(pattern.replace(".po", ".rst"))) - if not matches: - print("missing", pattern) - return f"{prefix}{resource}\n{override_prefix}{pattern.replace('?', '_')}" - elif len(matches) == 1: - filename = matches[0].replace(".rst", ".po").replace("\\", "/") - else: - raise ValueError("multi match", resource, pattern, matches) - return f"{prefix}{resource}\n{override_prefix}{filename}" - - -def patch_config(path: str): - tx_config_path = Path(".tx", "config") - - config_content = tx_config_path.read_text("utf-8") - - cwd = os.getcwd() - os.chdir(path) - config_content = FILTER_PATTERN.sub(name_replacer, config_content) - config_content = re.sub(r'replace_edited_strings.*\n','', config_content) - config_content = re.sub(r'keep_translations.*\n','', config_content) - config_content = re.sub(r'0\ntrans\.zh_CN.*\n','0\n', config_content) - config_content = config_content.replace(' =','=') - os.chdir(cwd) - - tx_config_path.write_text(config_content, "utf-8") - - -if __name__ == "__main__": - from argparse import ArgumentParser - - parser = ArgumentParser() - - parser.add_argument("--token", default="") - parser.add_argument("--project-name", required=True) - parser.add_argument("--doc-path", required=True) - - params = parser.parse_args() - - if params.token: - os.environ["TX_TOKEN"] = params.token - - init_project() - add_files(params.project_name) - patch_config(params.doc_path) diff --git a/.github/scripts/prepare.sh b/.github/scripts/prepare.sh deleted file mode 100755 index 1ca5daab0b..0000000000 --- a/.github/scripts/prepare.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -ex - -curl -o- https://raw.githubusercontent.com/transifex/cli/master/install.sh | bash \ No newline at end of file diff --git a/.github/scripts/tx_stat.py b/.github/scripts/tx_stat.py deleted file mode 100644 index 00dcf965cb..0000000000 --- a/.github/scripts/tx_stat.py +++ /dev/null @@ -1,33 +0,0 @@ -import json -import os -import urllib.request -from datetime import datetime - -key = os.environ.get('TX_TOKEN') -project = os.environ.get('TX_PROJECT') - -url = "https://rest.api.transifex.com/resource_language_stats?filter[project]=o%3Apython-doc%3Ap%3A{}&filter[language]=l%3Azh_CN".format(project) - -headers = { - "accept": "application/vnd.api+json", - "authorization": "Bearer " + key -} - -total = 0 -translated = 0 - -while(url): - request = urllib.request.Request(url=url,headers=headers) - - with urllib.request.urlopen(request) as response: - data = json.loads(response.read().decode("utf-8")) - url = data['links'].get('next') - for resourse in data['data']: - translated = translated + resourse['attributes']['translated_strings'] - total = total + resourse['attributes']['total_strings'] - -p = '{:.2%}'.format(translated/total) -print(json.dumps({ - 'translation':p, - 'updated_at':datetime.utcnow().isoformat(timespec='seconds') + 'Z', - })) \ No newline at end of file diff --git a/.github/scripts/update.sh b/.github/scripts/update.sh deleted file mode 100755 index 0f2231d9f0..0000000000 --- a/.github/scripts/update.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -set -u - -cd cpython || exit 1 - -# Restore git timestamp for enabling build cache -rev=HEAD -for f in $(git ls-tree -r -t --full-name --name-only "$rev" Doc) ; do - touch -d $(git log --pretty=format:%cI -1 "$rev" -- "$f") "$f"; -done - -cd .. -cd docs || exit 1 - -# Restore git timestamp for enabling build cache -rev=HEAD -for f in $(git ls-tree -r -t --full-name --name-only "$rev") ; do - touch -d $(git log --pretty=format:%cI -1 "$rev" -- "$f") "$f"; -done - -$(realpath ../tx) pull --languages "$LOCALE" -t --use-git-timestamps --workers 25 --silent diff --git a/.github/workflows/python-310.yml b/.github/workflows/python-310.yml deleted file mode 100644 index 35a148f472..0000000000 --- a/.github/workflows/python-310.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: python-310 - -on: - workflow_dispatch: - push: - branches: - - master - schedule: - - cron: "22 * * * *" - -jobs: - sync: - uses: ./.github/workflows/sync.yml - with: - version: "3.10" - tx_project: "python-310" - secrets: inherit - \ No newline at end of file diff --git a/.github/workflows/python-311.yml b/.github/workflows/python-311.yml deleted file mode 100644 index 4fa85bb77f..0000000000 --- a/.github/workflows/python-311.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: python-311 - -on: - workflow_dispatch: - push: - branches: - - master - schedule: - - cron: "32 * * * *" - -jobs: - sync: - uses: ./.github/workflows/sync.yml - with: - version: "3.11" - tx_project: "python-311" - secrets: inherit - diff --git a/.github/workflows/python-312.yml b/.github/workflows/python-312.yml deleted file mode 100644 index 75cc1d35e5..0000000000 --- a/.github/workflows/python-312.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: python-312 - -on: - workflow_dispatch: - push: - branches: - - master - schedule: - - cron: "42 * * * *" - -jobs: - sync: - uses: ./.github/workflows/sync.yml - with: - version: "3.12" - tx_project: "python-312" - secrets: inherit diff --git a/.github/workflows/python-313.yml b/.github/workflows/python-313.yml deleted file mode 100644 index 5cf9c8340e..0000000000 --- a/.github/workflows/python-313.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: python-313 - -on: - workflow_dispatch: - push: - branches: - - master - schedule: - - cron: "52 * * * *" - -jobs: - sync: - uses: ./.github/workflows/sync.yml - with: - version: "3.13" - tx_project: "python-313" - secrets: inherit diff --git a/.github/workflows/python-314.yml b/.github/workflows/python-314.yml deleted file mode 100644 index 7f4d564260..0000000000 --- a/.github/workflows/python-314.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: python-314 - -on: - workflow_dispatch: - push: - branches: - - master - schedule: - - cron: "2 * * * *" - -jobs: - sync: - uses: ./.github/workflows/sync.yml - with: - version: "3.14" - tx_project: "python-314" - secrets: inherit diff --git a/.github/workflows/python-315.yml b/.github/workflows/python-315.yml deleted file mode 100644 index 6618f4c556..0000000000 --- a/.github/workflows/python-315.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: python-315 - -on: - workflow_dispatch: - push: - branches: - - master - schedule: - - cron: "12 * * * *" - -jobs: - sync: - uses: ./.github/workflows/sync.yml - with: - version: "3.15" - tx_project: "python-newest" - secrets: inherit - \ No newline at end of file diff --git a/.github/workflows/python-37.yml b/.github/workflows/python-37.yml deleted file mode 100644 index 47c224c3b5..0000000000 --- a/.github/workflows/python-37.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: python-37 - -on: workflow_dispatch - -jobs: - sync: - uses: ./.github/workflows/sync.yml - with: - version: "3.7" - secrets: inherit \ No newline at end of file diff --git a/.github/workflows/python-38.yml b/.github/workflows/python-38.yml deleted file mode 100644 index 9d0bc6daf1..0000000000 --- a/.github/workflows/python-38.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: python-38 - -on: workflow_dispatch - -jobs: - sync: - uses: ./.github/workflows/sync.yml - with: - version: "3.8" - tx_project: "python-38" - secrets: inherit \ No newline at end of file diff --git a/.github/workflows/python-39.yml b/.github/workflows/python-39.yml deleted file mode 100644 index 9a6868d926..0000000000 --- a/.github/workflows/python-39.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: python-39 - -on: - workflow_dispatch: - -jobs: - sync: - uses: ./.github/workflows/sync.yml - with: - version: "3.9" - tx_project: "python-39" - secrets: inherit - \ No newline at end of file diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml deleted file mode 100644 index 370eac13fe..0000000000 --- a/.github/workflows/sync.yml +++ /dev/null @@ -1,68 +0,0 @@ -name: Reusable workflow example - -on: - workflow_call: - inputs: - version: - required: true - type: string - tx_project: - required: true - type: string - secrets: - TRANSIFEX_APIKEY: - required: true - -jobs: - sync: - runs-on: ubuntu-latest - env: - LOCALE: zh_CN - VERSION: ${{ inputs.version }} - steps: - - uses: actions/checkout@v6 - - name: Checkout CPython - uses: actions/checkout@v6 - with: - repository: 'python/cpython' - ref: ${{env.VERSION}} - path: cpython - - uses: actions/cache/restore@v5 - with: - path: | - cpython/Doc/build - docs - key: cache-${{ inputs.version }}-${{ github.run_id }} - restore-keys: cache-${{ inputs.version }}- - - name: Checkout Current Branch - uses: actions/checkout@v6 - with: - ref: ${{env.VERSION}} - path: docs - clean: false - - name: prepare - run: .github/scripts/prepare.sh - - name: update - run: .github/scripts/update.sh - env: - TX_TOKEN: ${{ secrets.TRANSIFEX_APIKEY }} - - uses: actions/cache/restore@v5 - with: - path: cpython/Doc/build - key: cache-${{ inputs.version }}-${{ github.run_id }} - restore-keys: cache-${{ inputs.version }}- - - name: build - run: .github/scripts/build.sh - - uses: actions/cache/save@v5 - with: - path: | - cpython/Doc/build - docs - key: cache-${{ inputs.version }}-${{ github.run_id }} - - name: stat - run: python .github/scripts/tx_stat.py > ./docs/.stat.json - env: - TX_TOKEN: ${{ secrets.TRANSIFEX_APIKEY }} - TX_PROJECT: ${{ inputs.tx_project }} - - name: commit - run: .github/scripts/commit.sh \ No newline at end of file diff --git a/.github/workflows/update-tx-config.yml b/.github/workflows/update-tx-config.yml deleted file mode 100644 index de03f247f5..0000000000 --- a/.github/workflows/update-tx-config.yml +++ /dev/null @@ -1,78 +0,0 @@ -name: Update Transifex Config - -on: - workflow_dispatch: - -jobs: - update-config: - runs-on: ubuntu-latest - strategy: - matrix: - version: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.15"] - include: - - version: "3.10" - tx_project: "python-310" - - version: "3.11" - tx_project: "python-311" - - version: "3.12" - tx_project: "python-312" - - version: "3.13" - tx_project: "python-313" - - version: "3.14" - tx_project: "python-314" - - version: "3.15" - tx_project: "python-newest" - steps: - - name: Checkout repository at version branch - uses: actions/checkout@v6 - with: - ref: ${{ matrix.version }} - token: ${{ secrets.GITHUB_TOKEN }} - - - name: Checkout CPython - uses: actions/checkout@v6 - with: - repository: 'python/cpython' - ref: ${{ matrix.version }} - path: cpython - - - name: Set up Python - uses: actions/setup-python@v6 - with: - python-version: '3.14' - - - name: Install Transifex CLI - run: | - mkdir -p /tmp - curl -o- https://raw.githubusercontent.com/transifex/cli/master/install.sh | bash - sudo mv ~/bin/tx /usr/local/bin/tx - - - name: Generate Transifex config - run: | - python .github/scripts/generate_tx_config.py \ - --project-name "${{ matrix.tx_project }}" \ - --doc-path "./cpython/Doc" - env: - TX_TOKEN: ${{ secrets.TRANSIFEX_APIKEY }} - - - name: Check for changes - id: check_changes - run: | - if git diff --quiet .tx/config; then - echo "has_changes=false" >> $GITHUB_OUTPUT - else - echo "has_changes=true" >> $GITHUB_OUTPUT - fi - - - name: Configure git - if: steps.check_changes.outputs.has_changes == 'true' - run: | - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - - - name: Commit and push changes - if: steps.check_changes.outputs.has_changes == 'true' - run: | - git add .tx/config - git commit -m "chore: update Transifex config for Python ${{ matrix.version }}" - git push diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..cd1f2c9439 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.mo diff --git a/.stat.json b/.stat.json new file mode 100644 index 0000000000..e2dbac3229 --- /dev/null +++ b/.stat.json @@ -0,0 +1 @@ +{"translation": "98.02%", "updated_at": "2026-06-21T00:19:25Z"} diff --git a/.tx/config b/.tx/config new file mode 100644 index 0000000000..f8058bbbc3 --- /dev/null +++ b/.tx/config @@ -0,0 +1,4628 @@ +[main] +host = https://app.transifex.com + +[o:python-doc:p:python-313:r:about] +file_filter = trans//about.po +trans.zh_CN = about.po +source_file = trans/en/about.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = about + +[o:python-doc:p:python-313:r:bugs] +file_filter = trans//bugs.po +trans.zh_CN = bugs.po +source_file = trans/en/bugs.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = bugs + +[o:python-doc:p:python-313:r:c-api--abstract] +file_filter = trans//c-api--abstract.po +trans.zh_CN = c-api/abstract.po +source_file = trans/en/c-api--abstract.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--abstract + +[o:python-doc:p:python-313:r:c-api--allocation] +file_filter = trans//c-api--allocation.po +trans.zh_CN = c-api/allocation.po +source_file = trans/en/c-api--allocation.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--allocation + +[o:python-doc:p:python-313:r:c-api--apiabiversion] +file_filter = trans//c-api--apiabiversion.po +trans.zh_CN = c-api/apiabiversion.po +source_file = trans/en/c-api--apiabiversion.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--apiabiversion + +[o:python-doc:p:python-313:r:c-api--arg] +file_filter = trans//c-api--arg.po +trans.zh_CN = c-api/arg.po +source_file = trans/en/c-api--arg.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--arg + +[o:python-doc:p:python-313:r:c-api--bool] +file_filter = trans//c-api--bool.po +trans.zh_CN = c-api/bool.po +source_file = trans/en/c-api--bool.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--bool + +[o:python-doc:p:python-313:r:c-api--buffer] +file_filter = trans//c-api--buffer.po +trans.zh_CN = c-api/buffer.po +source_file = trans/en/c-api--buffer.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--buffer + +[o:python-doc:p:python-313:r:c-api--bytearray] +file_filter = trans//c-api--bytearray.po +trans.zh_CN = c-api/bytearray.po +source_file = trans/en/c-api--bytearray.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--bytearray + +[o:python-doc:p:python-313:r:c-api--bytes] +file_filter = trans//c-api--bytes.po +trans.zh_CN = c-api/bytes.po +source_file = trans/en/c-api--bytes.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--bytes + +[o:python-doc:p:python-313:r:c-api--call] +file_filter = trans//c-api--call.po +trans.zh_CN = c-api/call.po +source_file = trans/en/c-api--call.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--call + +[o:python-doc:p:python-313:r:c-api--capsule] +file_filter = trans//c-api--capsule.po +trans.zh_CN = c-api/capsule.po +source_file = trans/en/c-api--capsule.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--capsule + +[o:python-doc:p:python-313:r:c-api--cell] +file_filter = trans//c-api--cell.po +trans.zh_CN = c-api/cell.po +source_file = trans/en/c-api--cell.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--cell + +[o:python-doc:p:python-313:r:c-api--code] +file_filter = trans//c-api--code.po +trans.zh_CN = c-api/code.po +source_file = trans/en/c-api--code.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--code + +[o:python-doc:p:python-313:r:c-api--codec] +file_filter = trans//c-api--codec.po +trans.zh_CN = c-api/codec.po +source_file = trans/en/c-api--codec.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--codec + +[o:python-doc:p:python-313:r:c-api--complex] +file_filter = trans//c-api--complex.po +trans.zh_CN = c-api/complex.po +source_file = trans/en/c-api--complex.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--complex + +[o:python-doc:p:python-313:r:c-api--concrete] +file_filter = trans//c-api--concrete.po +trans.zh_CN = c-api/concrete.po +source_file = trans/en/c-api--concrete.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--concrete + +[o:python-doc:p:python-313:r:c-api--contextvars] +file_filter = trans//c-api--contextvars.po +trans.zh_CN = c-api/contextvars.po +source_file = trans/en/c-api--contextvars.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--contextvars + +[o:python-doc:p:python-313:r:c-api--conversion] +file_filter = trans//c-api--conversion.po +trans.zh_CN = c-api/conversion.po +source_file = trans/en/c-api--conversion.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--conversion + +[o:python-doc:p:python-313:r:c-api--coro] +file_filter = trans//c-api--coro.po +trans.zh_CN = c-api/coro.po +source_file = trans/en/c-api--coro.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--coro + +[o:python-doc:p:python-313:r:c-api--curses] +file_filter = trans//c-api--curses.po +trans.zh_CN = c-api/curses.po +source_file = trans/en/c-api--curses.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--curses + +[o:python-doc:p:python-313:r:c-api--datetime] +file_filter = trans//c-api--datetime.po +trans.zh_CN = c-api/datetime.po +source_file = trans/en/c-api--datetime.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--datetime + +[o:python-doc:p:python-313:r:c-api--descriptor] +file_filter = trans//c-api--descriptor.po +trans.zh_CN = c-api/descriptor.po +source_file = trans/en/c-api--descriptor.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--descriptor + +[o:python-doc:p:python-313:r:c-api--dict] +file_filter = trans//c-api--dict.po +trans.zh_CN = c-api/dict.po +source_file = trans/en/c-api--dict.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--dict + +[o:python-doc:p:python-313:r:c-api--exceptions] +file_filter = trans//c-api--exceptions.po +trans.zh_CN = c-api/exceptions.po +source_file = trans/en/c-api--exceptions.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--exceptions + +[o:python-doc:p:python-313:r:c-api--file] +file_filter = trans//c-api--file.po +trans.zh_CN = c-api/file.po +source_file = trans/en/c-api--file.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--file + +[o:python-doc:p:python-313:r:c-api--float] +file_filter = trans//c-api--float.po +trans.zh_CN = c-api/float.po +source_file = trans/en/c-api--float.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--float + +[o:python-doc:p:python-313:r:c-api--frame] +file_filter = trans//c-api--frame.po +trans.zh_CN = c-api/frame.po +source_file = trans/en/c-api--frame.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--frame + +[o:python-doc:p:python-313:r:c-api--function] +file_filter = trans//c-api--function.po +trans.zh_CN = c-api/function.po +source_file = trans/en/c-api--function.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--function + +[o:python-doc:p:python-313:r:c-api--gcsupport] +file_filter = trans//c-api--gcsupport.po +trans.zh_CN = c-api/gcsupport.po +source_file = trans/en/c-api--gcsupport.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--gcsupport + +[o:python-doc:p:python-313:r:c-api--gen] +file_filter = trans//c-api--gen.po +trans.zh_CN = c-api/gen.po +source_file = trans/en/c-api--gen.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--gen + +[o:python-doc:p:python-313:r:c-api--hash] +file_filter = trans//c-api--hash.po +trans.zh_CN = c-api/hash.po +source_file = trans/en/c-api--hash.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--hash + +[o:python-doc:p:python-313:r:c-api--import] +file_filter = trans//c-api--import.po +trans.zh_CN = c-api/import.po +source_file = trans/en/c-api--import.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--import + +[o:python-doc:p:python-313:r:c-api--index] +file_filter = trans//c-api--index.po +trans.zh_CN = c-api/index.po +source_file = trans/en/c-api--index.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--index + +[o:python-doc:p:python-313:r:c-api--init] +file_filter = trans//c-api--init.po +trans.zh_CN = c-api/init.po +source_file = trans/en/c-api--init.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--init + +[o:python-doc:p:python-313:r:c-api--init_config] +file_filter = trans//c-api--init_config.po +trans.zh_CN = c-api/init_config.po +source_file = trans/en/c-api--init_config.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--init_config + +[o:python-doc:p:python-313:r:c-api--intro] +file_filter = trans//c-api--intro.po +trans.zh_CN = c-api/intro.po +source_file = trans/en/c-api--intro.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--intro + +[o:python-doc:p:python-313:r:c-api--iter] +file_filter = trans//c-api--iter.po +trans.zh_CN = c-api/iter.po +source_file = trans/en/c-api--iter.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--iter + +[o:python-doc:p:python-313:r:c-api--iterator] +file_filter = trans//c-api--iterator.po +trans.zh_CN = c-api/iterator.po +source_file = trans/en/c-api--iterator.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--iterator + +[o:python-doc:p:python-313:r:c-api--list] +file_filter = trans//c-api--list.po +trans.zh_CN = c-api/list.po +source_file = trans/en/c-api--list.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--list + +[o:python-doc:p:python-313:r:c-api--long] +file_filter = trans//c-api--long.po +trans.zh_CN = c-api/long.po +source_file = trans/en/c-api--long.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--long + +[o:python-doc:p:python-313:r:c-api--mapping] +file_filter = trans//c-api--mapping.po +trans.zh_CN = c-api/mapping.po +source_file = trans/en/c-api--mapping.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--mapping + +[o:python-doc:p:python-313:r:c-api--marshal] +file_filter = trans//c-api--marshal.po +trans.zh_CN = c-api/marshal.po +source_file = trans/en/c-api--marshal.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--marshal + +[o:python-doc:p:python-313:r:c-api--memory] +file_filter = trans//c-api--memory.po +trans.zh_CN = c-api/memory.po +source_file = trans/en/c-api--memory.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--memory + +[o:python-doc:p:python-313:r:c-api--memoryview] +file_filter = trans//c-api--memoryview.po +trans.zh_CN = c-api/memoryview.po +source_file = trans/en/c-api--memoryview.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--memoryview + +[o:python-doc:p:python-313:r:c-api--method] +file_filter = trans//c-api--method.po +trans.zh_CN = c-api/method.po +source_file = trans/en/c-api--method.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--method + +[o:python-doc:p:python-313:r:c-api--module] +file_filter = trans//c-api--module.po +trans.zh_CN = c-api/module.po +source_file = trans/en/c-api--module.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--module + +[o:python-doc:p:python-313:r:c-api--monitoring] +file_filter = trans//c-api--monitoring.po +trans.zh_CN = c-api/monitoring.po +source_file = trans/en/c-api--monitoring.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--monitoring + +[o:python-doc:p:python-313:r:c-api--none] +file_filter = trans//c-api--none.po +trans.zh_CN = c-api/none.po +source_file = trans/en/c-api--none.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--none + +[o:python-doc:p:python-313:r:c-api--number] +file_filter = trans//c-api--number.po +trans.zh_CN = c-api/number.po +source_file = trans/en/c-api--number.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--number + +[o:python-doc:p:python-313:r:c-api--object] +file_filter = trans//c-api--object.po +trans.zh_CN = c-api/object.po +source_file = trans/en/c-api--object.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--object + +[o:python-doc:p:python-313:r:c-api--objimpl] +file_filter = trans//c-api--objimpl.po +trans.zh_CN = c-api/objimpl.po +source_file = trans/en/c-api--objimpl.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--objimpl + +[o:python-doc:p:python-313:r:c-api--perfmaps] +file_filter = trans//c-api--perfmaps.po +trans.zh_CN = c-api/perfmaps.po +source_file = trans/en/c-api--perfmaps.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--perfmaps + +[o:python-doc:p:python-313:r:c-api--picklebuffer] +file_filter = trans//c-api--picklebuffer.po +trans.zh_CN = c-api/picklebuffer.po +source_file = trans/en/c-api--picklebuffer.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--picklebuffer + +[o:python-doc:p:python-313:r:c-api--refcounting] +file_filter = trans//c-api--refcounting.po +trans.zh_CN = c-api/refcounting.po +source_file = trans/en/c-api--refcounting.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--refcounting + +[o:python-doc:p:python-313:r:c-api--reflection] +file_filter = trans//c-api--reflection.po +trans.zh_CN = c-api/reflection.po +source_file = trans/en/c-api--reflection.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--reflection + +[o:python-doc:p:python-313:r:c-api--sequence] +file_filter = trans//c-api--sequence.po +trans.zh_CN = c-api/sequence.po +source_file = trans/en/c-api--sequence.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--sequence + +[o:python-doc:p:python-313:r:c-api--set] +file_filter = trans//c-api--set.po +trans.zh_CN = c-api/set.po +source_file = trans/en/c-api--set.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--set + +[o:python-doc:p:python-313:r:c-api--slice] +file_filter = trans//c-api--slice.po +trans.zh_CN = c-api/slice.po +source_file = trans/en/c-api--slice.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--slice + +[o:python-doc:p:python-313:r:c-api--stable] +file_filter = trans//c-api--stable.po +trans.zh_CN = c-api/stable.po +source_file = trans/en/c-api--stable.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--stable + +[o:python-doc:p:python-313:r:c-api--structures] +file_filter = trans//c-api--structures.po +trans.zh_CN = c-api/structures.po +source_file = trans/en/c-api--structures.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--structures + +[o:python-doc:p:python-313:r:c-api--sys] +file_filter = trans//c-api--sys.po +trans.zh_CN = c-api/sys.po +source_file = trans/en/c-api--sys.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--sys + +[o:python-doc:p:python-313:r:c-api--time] +file_filter = trans//c-api--time.po +trans.zh_CN = c-api/time.po +source_file = trans/en/c-api--time.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--time + +[o:python-doc:p:python-313:r:c-api--tuple] +file_filter = trans//c-api--tuple.po +trans.zh_CN = c-api/tuple.po +source_file = trans/en/c-api--tuple.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--tuple + +[o:python-doc:p:python-313:r:c-api--type] +file_filter = trans//c-api--type.po +trans.zh_CN = c-api/type.po +source_file = trans/en/c-api--type.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--type + +[o:python-doc:p:python-313:r:c-api--typehints] +file_filter = trans//c-api--typehints.po +trans.zh_CN = c-api/typehints.po +source_file = trans/en/c-api--typehints.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--typehints + +[o:python-doc:p:python-313:r:c-api--typeobj] +file_filter = trans//c-api--typeobj.po +trans.zh_CN = c-api/typeobj.po +source_file = trans/en/c-api--typeobj.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--typeobj + +[o:python-doc:p:python-313:r:c-api--unicode] +file_filter = trans//c-api--unicode.po +trans.zh_CN = c-api/unicode.po +source_file = trans/en/c-api--unicode.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--unicode + +[o:python-doc:p:python-313:r:c-api--utilities] +file_filter = trans//c-api--utilities.po +trans.zh_CN = c-api/utilities.po +source_file = trans/en/c-api--utilities.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--utilities + +[o:python-doc:p:python-313:r:c-api--veryhigh] +file_filter = trans//c-api--veryhigh.po +trans.zh_CN = c-api/veryhigh.po +source_file = trans/en/c-api--veryhigh.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--veryhigh + +[o:python-doc:p:python-313:r:c-api--weakref] +file_filter = trans//c-api--weakref.po +trans.zh_CN = c-api/weakref.po +source_file = trans/en/c-api--weakref.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = c-api--weakref + +[o:python-doc:p:python-313:r:contents] +file_filter = trans//contents.po +trans.zh_CN = contents.po +source_file = trans/en/contents.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = contents + +[o:python-doc:p:python-313:r:copyright] +file_filter = trans//copyright.po +trans.zh_CN = copyright.po +source_file = trans/en/copyright.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = copyright + +[o:python-doc:p:python-313:r:deprecations--c-api-pending-removal-in-3_14] +file_filter = trans//deprecations--c-api-pending-removal-in-3_14.po +trans.zh_CN = deprecations/c-api-pending-removal-in-3.14.po +source_file = trans/en/deprecations--c-api-pending-removal-in-3_14.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = deprecations--c-api-pending-removal-in-3_14 + +[o:python-doc:p:python-313:r:deprecations--c-api-pending-removal-in-3_15] +file_filter = trans//deprecations--c-api-pending-removal-in-3_15.po +trans.zh_CN = deprecations/c-api-pending-removal-in-3.15.po +source_file = trans/en/deprecations--c-api-pending-removal-in-3_15.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = deprecations--c-api-pending-removal-in-3_15 + +[o:python-doc:p:python-313:r:deprecations--c-api-pending-removal-in-3_16] +file_filter = trans//deprecations--c-api-pending-removal-in-3_16.po +trans.zh_CN = deprecations/c-api-pending-removal-in-3.16.po +source_file = trans/en/deprecations--c-api-pending-removal-in-3_16.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = deprecations--c-api-pending-removal-in-3_16 + +[o:python-doc:p:python-313:r:deprecations--c-api-pending-removal-in-future] +file_filter = trans//deprecations--c-api-pending-removal-in-future.po +trans.zh_CN = deprecations/c-api-pending-removal-in-future.po +source_file = trans/en/deprecations--c-api-pending-removal-in-future.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = deprecations--c-api-pending-removal-in-future + +[o:python-doc:p:python-313:r:deprecations--index] +file_filter = trans//deprecations--index.po +trans.zh_CN = deprecations/index.po +source_file = trans/en/deprecations--index.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = deprecations--index + +[o:python-doc:p:python-313:r:deprecations--pending-removal-in-3_13] +file_filter = trans//deprecations--pending-removal-in-3_13.po +trans.zh_CN = deprecations/pending-removal-in-3.13.po +source_file = trans/en/deprecations--pending-removal-in-3_13.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = deprecations--pending-removal-in-3_13 + +[o:python-doc:p:python-313:r:deprecations--pending-removal-in-3_14] +file_filter = trans//deprecations--pending-removal-in-3_14.po +trans.zh_CN = deprecations/pending-removal-in-3.14.po +source_file = trans/en/deprecations--pending-removal-in-3_14.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = deprecations--pending-removal-in-3_14 + +[o:python-doc:p:python-313:r:deprecations--pending-removal-in-3_15] +file_filter = trans//deprecations--pending-removal-in-3_15.po +trans.zh_CN = deprecations/pending-removal-in-3.15.po +source_file = trans/en/deprecations--pending-removal-in-3_15.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = deprecations--pending-removal-in-3_15 + +[o:python-doc:p:python-313:r:deprecations--pending-removal-in-3_16] +file_filter = trans//deprecations--pending-removal-in-3_16.po +trans.zh_CN = deprecations/pending-removal-in-3.16.po +source_file = trans/en/deprecations--pending-removal-in-3_16.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = deprecations--pending-removal-in-3_16 + +[o:python-doc:p:python-313:r:deprecations--pending-removal-in-3_17] +file_filter = trans//deprecations--pending-removal-in-3_17.po +trans.zh_CN = deprecations/pending-removal-in-3.17.po +source_file = trans/en/deprecations--pending-removal-in-3_17.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = deprecations--pending-removal-in-3_17 + +[o:python-doc:p:python-313:r:deprecations--pending-removal-in-3_18] +file_filter = trans//deprecations--pending-removal-in-3_18.po +trans.zh_CN = deprecations/pending-removal-in-3.18.po +source_file = trans/en/deprecations--pending-removal-in-3_18.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = deprecations--pending-removal-in-3_18 + +[o:python-doc:p:python-313:r:deprecations--pending-removal-in-future] +file_filter = trans//deprecations--pending-removal-in-future.po +trans.zh_CN = deprecations/pending-removal-in-future.po +source_file = trans/en/deprecations--pending-removal-in-future.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = deprecations--pending-removal-in-future + +[o:python-doc:p:python-313:r:distributing--index] +file_filter = trans//distributing--index.po +trans.zh_CN = distributing/index.po +source_file = trans/en/distributing--index.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = distributing--index + +[o:python-doc:p:python-313:r:extending--building] +file_filter = trans//extending--building.po +trans.zh_CN = extending/building.po +source_file = trans/en/extending--building.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = extending--building + +[o:python-doc:p:python-313:r:extending--embedding] +file_filter = trans//extending--embedding.po +trans.zh_CN = extending/embedding.po +source_file = trans/en/extending--embedding.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = extending--embedding + +[o:python-doc:p:python-313:r:extending--extending] +file_filter = trans//extending--extending.po +trans.zh_CN = extending/extending.po +source_file = trans/en/extending--extending.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = extending--extending + +[o:python-doc:p:python-313:r:extending--index] +file_filter = trans//extending--index.po +trans.zh_CN = extending/index.po +source_file = trans/en/extending--index.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = extending--index + +[o:python-doc:p:python-313:r:extending--newtypes] +file_filter = trans//extending--newtypes.po +trans.zh_CN = extending/newtypes.po +source_file = trans/en/extending--newtypes.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = extending--newtypes + +[o:python-doc:p:python-313:r:extending--newtypes_tutorial] +file_filter = trans//extending--newtypes_tutorial.po +trans.zh_CN = extending/newtypes_tutorial.po +source_file = trans/en/extending--newtypes_tutorial.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = extending--newtypes_tutorial + +[o:python-doc:p:python-313:r:extending--windows] +file_filter = trans//extending--windows.po +trans.zh_CN = extending/windows.po +source_file = trans/en/extending--windows.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = extending--windows + +[o:python-doc:p:python-313:r:faq--design] +file_filter = trans//faq--design.po +trans.zh_CN = faq/design.po +source_file = trans/en/faq--design.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = faq--design + +[o:python-doc:p:python-313:r:faq--extending] +file_filter = trans//faq--extending.po +trans.zh_CN = faq/extending.po +source_file = trans/en/faq--extending.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = faq--extending + +[o:python-doc:p:python-313:r:faq--general] +file_filter = trans//faq--general.po +trans.zh_CN = faq/general.po +source_file = trans/en/faq--general.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = faq--general + +[o:python-doc:p:python-313:r:faq--gui] +file_filter = trans//faq--gui.po +trans.zh_CN = faq/gui.po +source_file = trans/en/faq--gui.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = faq--gui + +[o:python-doc:p:python-313:r:faq--index] +file_filter = trans//faq--index.po +trans.zh_CN = faq/index.po +source_file = trans/en/faq--index.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = faq--index + +[o:python-doc:p:python-313:r:faq--installed] +file_filter = trans//faq--installed.po +trans.zh_CN = faq/installed.po +source_file = trans/en/faq--installed.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = faq--installed + +[o:python-doc:p:python-313:r:faq--library] +file_filter = trans//faq--library.po +trans.zh_CN = faq/library.po +source_file = trans/en/faq--library.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = faq--library + +[o:python-doc:p:python-313:r:faq--programming] +file_filter = trans//faq--programming.po +trans.zh_CN = faq/programming.po +source_file = trans/en/faq--programming.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = faq--programming + +[o:python-doc:p:python-313:r:faq--windows] +file_filter = trans//faq--windows.po +trans.zh_CN = faq/windows.po +source_file = trans/en/faq--windows.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = faq--windows + +[o:python-doc:p:python-313:r:glossary_] +file_filter = trans//glossary_.po +trans.zh_CN = glossary.po +source_file = trans/en/glossary_.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = glossary_ + +[o:python-doc:p:python-313:r:howto--a-conceptual-overview-of-asyncio] +file_filter = trans//howto--a-conceptual-overview-of-asyncio.po +trans.zh_CN = howto/a-conceptual-overview-of-asyncio.po +source_file = trans/en/howto--a-conceptual-overview-of-asyncio.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--a-conceptual-overview-of-asyncio + +[o:python-doc:p:python-313:r:howto--annotations] +file_filter = trans//howto--annotations.po +trans.zh_CN = howto/annotations.po +source_file = trans/en/howto--annotations.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--annotations + +[o:python-doc:p:python-313:r:howto--argparse] +file_filter = trans//howto--argparse.po +trans.zh_CN = howto/argparse.po +source_file = trans/en/howto--argparse.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--argparse + +[o:python-doc:p:python-313:r:howto--argparse-optparse] +file_filter = trans//howto--argparse-optparse.po +trans.zh_CN = howto/argparse-optparse.po +source_file = trans/en/howto--argparse-optparse.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--argparse-optparse + +[o:python-doc:p:python-313:r:howto--clinic] +file_filter = trans//howto--clinic.po +trans.zh_CN = howto/clinic.po +source_file = trans/en/howto--clinic.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--clinic + +[o:python-doc:p:python-313:r:howto--cporting] +file_filter = trans//howto--cporting.po +trans.zh_CN = howto/cporting.po +source_file = trans/en/howto--cporting.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--cporting + +[o:python-doc:p:python-313:r:howto--curses] +file_filter = trans//howto--curses.po +trans.zh_CN = howto/curses.po +source_file = trans/en/howto--curses.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--curses + +[o:python-doc:p:python-313:r:howto--descriptor] +file_filter = trans//howto--descriptor.po +trans.zh_CN = howto/descriptor.po +source_file = trans/en/howto--descriptor.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--descriptor + +[o:python-doc:p:python-313:r:howto--enum] +file_filter = trans//howto--enum.po +trans.zh_CN = howto/enum.po +source_file = trans/en/howto--enum.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--enum + +[o:python-doc:p:python-313:r:howto--free-threading-extensions] +file_filter = trans//howto--free-threading-extensions.po +trans.zh_CN = howto/free-threading-extensions.po +source_file = trans/en/howto--free-threading-extensions.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--free-threading-extensions + +[o:python-doc:p:python-313:r:howto--free-threading-python] +file_filter = trans//howto--free-threading-python.po +trans.zh_CN = howto/free-threading-python.po +source_file = trans/en/howto--free-threading-python.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--free-threading-python + +[o:python-doc:p:python-313:r:howto--functional] +file_filter = trans//howto--functional.po +trans.zh_CN = howto/functional.po +source_file = trans/en/howto--functional.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--functional + +[o:python-doc:p:python-313:r:howto--gdb_helpers] +file_filter = trans//howto--gdb_helpers.po +trans.zh_CN = howto/gdb_helpers.po +source_file = trans/en/howto--gdb_helpers.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--gdb_helpers + +[o:python-doc:p:python-313:r:howto--index] +file_filter = trans//howto--index.po +trans.zh_CN = howto/index.po +source_file = trans/en/howto--index.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--index + +[o:python-doc:p:python-313:r:howto--instrumentation] +file_filter = trans//howto--instrumentation.po +trans.zh_CN = howto/instrumentation.po +source_file = trans/en/howto--instrumentation.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--instrumentation + +[o:python-doc:p:python-313:r:howto--ipaddress] +file_filter = trans//howto--ipaddress.po +trans.zh_CN = howto/ipaddress.po +source_file = trans/en/howto--ipaddress.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--ipaddress + +[o:python-doc:p:python-313:r:howto--isolating-extensions] +file_filter = trans//howto--isolating-extensions.po +trans.zh_CN = howto/isolating-extensions.po +source_file = trans/en/howto--isolating-extensions.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--isolating-extensions + +[o:python-doc:p:python-313:r:howto--logging] +file_filter = trans//howto--logging.po +trans.zh_CN = howto/logging.po +source_file = trans/en/howto--logging.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--logging + +[o:python-doc:p:python-313:r:howto--logging-cookbook] +file_filter = trans//howto--logging-cookbook.po +trans.zh_CN = howto/logging-cookbook.po +source_file = trans/en/howto--logging-cookbook.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--logging-cookbook + +[o:python-doc:p:python-313:r:howto--mro] +file_filter = trans//howto--mro.po +trans.zh_CN = howto/mro.po +source_file = trans/en/howto--mro.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--mro + +[o:python-doc:p:python-313:r:howto--perf_profiling] +file_filter = trans//howto--perf_profiling.po +trans.zh_CN = howto/perf_profiling.po +source_file = trans/en/howto--perf_profiling.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--perf_profiling + +[o:python-doc:p:python-313:r:howto--pyporting] +file_filter = trans//howto--pyporting.po +trans.zh_CN = howto/pyporting.po +source_file = trans/en/howto--pyporting.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--pyporting + +[o:python-doc:p:python-313:r:howto--regex] +file_filter = trans//howto--regex.po +trans.zh_CN = howto/regex.po +source_file = trans/en/howto--regex.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--regex + +[o:python-doc:p:python-313:r:howto--sockets] +file_filter = trans//howto--sockets.po +trans.zh_CN = howto/sockets.po +source_file = trans/en/howto--sockets.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--sockets + +[o:python-doc:p:python-313:r:howto--sorting] +file_filter = trans//howto--sorting.po +trans.zh_CN = howto/sorting.po +source_file = trans/en/howto--sorting.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--sorting + +[o:python-doc:p:python-313:r:howto--timerfd] +file_filter = trans//howto--timerfd.po +trans.zh_CN = howto/timerfd.po +source_file = trans/en/howto--timerfd.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--timerfd + +[o:python-doc:p:python-313:r:howto--unicode] +file_filter = trans//howto--unicode.po +trans.zh_CN = howto/unicode.po +source_file = trans/en/howto--unicode.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--unicode + +[o:python-doc:p:python-313:r:howto--urllib2] +file_filter = trans//howto--urllib2.po +trans.zh_CN = howto/urllib2.po +source_file = trans/en/howto--urllib2.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = howto--urllib2 + +[o:python-doc:p:python-313:r:installing--index] +file_filter = trans//installing--index.po +trans.zh_CN = installing/index.po +source_file = trans/en/installing--index.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = installing--index + +[o:python-doc:p:python-313:r:library--abc] +file_filter = trans//library--abc.po +trans.zh_CN = library/abc.po +source_file = trans/en/library--abc.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--abc + +[o:python-doc:p:python-313:r:library--aifc] +file_filter = trans//library--aifc.po +trans.zh_CN = library/aifc.po +source_file = trans/en/library--aifc.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--aifc + +[o:python-doc:p:python-313:r:library--allos] +file_filter = trans//library--allos.po +trans.zh_CN = library/allos.po +source_file = trans/en/library--allos.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--allos + +[o:python-doc:p:python-313:r:library--archiving] +file_filter = trans//library--archiving.po +trans.zh_CN = library/archiving.po +source_file = trans/en/library--archiving.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--archiving + +[o:python-doc:p:python-313:r:library--argparse] +file_filter = trans//library--argparse.po +trans.zh_CN = library/argparse.po +source_file = trans/en/library--argparse.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--argparse + +[o:python-doc:p:python-313:r:library--array] +file_filter = trans//library--array.po +trans.zh_CN = library/array.po +source_file = trans/en/library--array.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--array + +[o:python-doc:p:python-313:r:library--ast] +file_filter = trans//library--ast.po +trans.zh_CN = library/ast.po +source_file = trans/en/library--ast.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--ast + +[o:python-doc:p:python-313:r:library--asynchat] +file_filter = trans//library--asynchat.po +trans.zh_CN = library/asynchat.po +source_file = trans/en/library--asynchat.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--asynchat + +[o:python-doc:p:python-313:r:library--asyncio] +file_filter = trans//library--asyncio.po +trans.zh_CN = library/asyncio.po +source_file = trans/en/library--asyncio.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--asyncio + +[o:python-doc:p:python-313:r:library--asyncio-api-index] +file_filter = trans//library--asyncio-api-index.po +trans.zh_CN = library/asyncio-api-index.po +source_file = trans/en/library--asyncio-api-index.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--asyncio-api-index + +[o:python-doc:p:python-313:r:library--asyncio-dev] +file_filter = trans//library--asyncio-dev.po +trans.zh_CN = library/asyncio-dev.po +source_file = trans/en/library--asyncio-dev.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--asyncio-dev + +[o:python-doc:p:python-313:r:library--asyncio-eventloop] +file_filter = trans//library--asyncio-eventloop.po +trans.zh_CN = library/asyncio-eventloop.po +source_file = trans/en/library--asyncio-eventloop.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--asyncio-eventloop + +[o:python-doc:p:python-313:r:library--asyncio-exceptions] +file_filter = trans//library--asyncio-exceptions.po +trans.zh_CN = library/asyncio-exceptions.po +source_file = trans/en/library--asyncio-exceptions.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--asyncio-exceptions + +[o:python-doc:p:python-313:r:library--asyncio-extending] +file_filter = trans//library--asyncio-extending.po +trans.zh_CN = library/asyncio-extending.po +source_file = trans/en/library--asyncio-extending.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--asyncio-extending + +[o:python-doc:p:python-313:r:library--asyncio-future] +file_filter = trans//library--asyncio-future.po +trans.zh_CN = library/asyncio-future.po +source_file = trans/en/library--asyncio-future.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--asyncio-future + +[o:python-doc:p:python-313:r:library--asyncio-llapi-index] +file_filter = trans//library--asyncio-llapi-index.po +trans.zh_CN = library/asyncio-llapi-index.po +source_file = trans/en/library--asyncio-llapi-index.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--asyncio-llapi-index + +[o:python-doc:p:python-313:r:library--asyncio-platforms] +file_filter = trans//library--asyncio-platforms.po +trans.zh_CN = library/asyncio-platforms.po +source_file = trans/en/library--asyncio-platforms.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--asyncio-platforms + +[o:python-doc:p:python-313:r:library--asyncio-policy] +file_filter = trans//library--asyncio-policy.po +trans.zh_CN = library/asyncio-policy.po +source_file = trans/en/library--asyncio-policy.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--asyncio-policy + +[o:python-doc:p:python-313:r:library--asyncio-protocol] +file_filter = trans//library--asyncio-protocol.po +trans.zh_CN = library/asyncio-protocol.po +source_file = trans/en/library--asyncio-protocol.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--asyncio-protocol + +[o:python-doc:p:python-313:r:library--asyncio-queue] +file_filter = trans//library--asyncio-queue.po +trans.zh_CN = library/asyncio-queue.po +source_file = trans/en/library--asyncio-queue.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--asyncio-queue + +[o:python-doc:p:python-313:r:library--asyncio-runner] +file_filter = trans//library--asyncio-runner.po +trans.zh_CN = library/asyncio-runner.po +source_file = trans/en/library--asyncio-runner.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--asyncio-runner + +[o:python-doc:p:python-313:r:library--asyncio-stream] +file_filter = trans//library--asyncio-stream.po +trans.zh_CN = library/asyncio-stream.po +source_file = trans/en/library--asyncio-stream.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--asyncio-stream + +[o:python-doc:p:python-313:r:library--asyncio-subprocess] +file_filter = trans//library--asyncio-subprocess.po +trans.zh_CN = library/asyncio-subprocess.po +source_file = trans/en/library--asyncio-subprocess.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--asyncio-subprocess + +[o:python-doc:p:python-313:r:library--asyncio-sync] +file_filter = trans//library--asyncio-sync.po +trans.zh_CN = library/asyncio-sync.po +source_file = trans/en/library--asyncio-sync.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--asyncio-sync + +[o:python-doc:p:python-313:r:library--asyncio-task] +file_filter = trans//library--asyncio-task.po +trans.zh_CN = library/asyncio-task.po +source_file = trans/en/library--asyncio-task.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--asyncio-task + +[o:python-doc:p:python-313:r:library--asyncore] +file_filter = trans//library--asyncore.po +trans.zh_CN = library/asyncore.po +source_file = trans/en/library--asyncore.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--asyncore + +[o:python-doc:p:python-313:r:library--atexit] +file_filter = trans//library--atexit.po +trans.zh_CN = library/atexit.po +source_file = trans/en/library--atexit.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--atexit + +[o:python-doc:p:python-313:r:library--audioop] +file_filter = trans//library--audioop.po +trans.zh_CN = library/audioop.po +source_file = trans/en/library--audioop.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--audioop + +[o:python-doc:p:python-313:r:library--audit_events] +file_filter = trans//library--audit_events.po +trans.zh_CN = library/audit_events.po +source_file = trans/en/library--audit_events.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--audit_events + +[o:python-doc:p:python-313:r:library--base64] +file_filter = trans//library--base64.po +trans.zh_CN = library/base64.po +source_file = trans/en/library--base64.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--base64 + +[o:python-doc:p:python-313:r:library--bdb] +file_filter = trans//library--bdb.po +trans.zh_CN = library/bdb.po +source_file = trans/en/library--bdb.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--bdb + +[o:python-doc:p:python-313:r:library--binary] +file_filter = trans//library--binary.po +trans.zh_CN = library/binary.po +source_file = trans/en/library--binary.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--binary + +[o:python-doc:p:python-313:r:library--binascii] +file_filter = trans//library--binascii.po +trans.zh_CN = library/binascii.po +source_file = trans/en/library--binascii.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--binascii + +[o:python-doc:p:python-313:r:library--bisect] +file_filter = trans//library--bisect.po +trans.zh_CN = library/bisect.po +source_file = trans/en/library--bisect.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--bisect + +[o:python-doc:p:python-313:r:library--builtins] +file_filter = trans//library--builtins.po +trans.zh_CN = library/builtins.po +source_file = trans/en/library--builtins.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--builtins + +[o:python-doc:p:python-313:r:library--bz2] +file_filter = trans//library--bz2.po +trans.zh_CN = library/bz2.po +source_file = trans/en/library--bz2.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--bz2 + +[o:python-doc:p:python-313:r:library--calendar] +file_filter = trans//library--calendar.po +trans.zh_CN = library/calendar.po +source_file = trans/en/library--calendar.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--calendar + +[o:python-doc:p:python-313:r:library--cgi] +file_filter = trans//library--cgi.po +trans.zh_CN = library/cgi.po +source_file = trans/en/library--cgi.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--cgi + +[o:python-doc:p:python-313:r:library--cgitb] +file_filter = trans//library--cgitb.po +trans.zh_CN = library/cgitb.po +source_file = trans/en/library--cgitb.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--cgitb + +[o:python-doc:p:python-313:r:library--chunk] +file_filter = trans//library--chunk.po +trans.zh_CN = library/chunk.po +source_file = trans/en/library--chunk.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--chunk + +[o:python-doc:p:python-313:r:library--cmath] +file_filter = trans//library--cmath.po +trans.zh_CN = library/cmath.po +source_file = trans/en/library--cmath.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--cmath + +[o:python-doc:p:python-313:r:library--cmd] +file_filter = trans//library--cmd.po +trans.zh_CN = library/cmd.po +source_file = trans/en/library--cmd.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--cmd + +[o:python-doc:p:python-313:r:library--cmdline] +file_filter = trans//library--cmdline.po +trans.zh_CN = library/cmdline.po +source_file = trans/en/library--cmdline.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--cmdline + +[o:python-doc:p:python-313:r:library--cmdlinelibs] +file_filter = trans//library--cmdlinelibs.po +trans.zh_CN = library/cmdlinelibs.po +source_file = trans/en/library--cmdlinelibs.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--cmdlinelibs + +[o:python-doc:p:python-313:r:library--code] +file_filter = trans//library--code.po +trans.zh_CN = library/code.po +source_file = trans/en/library--code.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--code + +[o:python-doc:p:python-313:r:library--codecs] +file_filter = trans//library--codecs.po +trans.zh_CN = library/codecs.po +source_file = trans/en/library--codecs.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--codecs + +[o:python-doc:p:python-313:r:library--codeop] +file_filter = trans//library--codeop.po +trans.zh_CN = library/codeop.po +source_file = trans/en/library--codeop.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--codeop + +[o:python-doc:p:python-313:r:library--collections] +file_filter = trans//library--collections.po +trans.zh_CN = library/collections.po +source_file = trans/en/library--collections.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--collections + +[o:python-doc:p:python-313:r:library--collections_abc] +file_filter = trans//library--collections_abc.po +trans.zh_CN = library/collections.abc.po +source_file = trans/en/library--collections_abc.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--collections_abc + +[o:python-doc:p:python-313:r:library--colorsys] +file_filter = trans//library--colorsys.po +trans.zh_CN = library/colorsys.po +source_file = trans/en/library--colorsys.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--colorsys + +[o:python-doc:p:python-313:r:library--compileall] +file_filter = trans//library--compileall.po +trans.zh_CN = library/compileall.po +source_file = trans/en/library--compileall.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--compileall + +[o:python-doc:p:python-313:r:library--concurrency] +file_filter = trans//library--concurrency.po +trans.zh_CN = library/concurrency.po +source_file = trans/en/library--concurrency.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--concurrency + +[o:python-doc:p:python-313:r:library--concurrent] +file_filter = trans//library--concurrent.po +trans.zh_CN = library/concurrent.po +source_file = trans/en/library--concurrent.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--concurrent + +[o:python-doc:p:python-313:r:library--concurrent_futures] +file_filter = trans//library--concurrent_futures.po +trans.zh_CN = library/concurrent.futures.po +source_file = trans/en/library--concurrent_futures.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--concurrent_futures + +[o:python-doc:p:python-313:r:library--configparser] +file_filter = trans//library--configparser.po +trans.zh_CN = library/configparser.po +source_file = trans/en/library--configparser.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--configparser + +[o:python-doc:p:python-313:r:library--constants] +file_filter = trans//library--constants.po +trans.zh_CN = library/constants.po +source_file = trans/en/library--constants.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--constants + +[o:python-doc:p:python-313:r:library--contextlib] +file_filter = trans//library--contextlib.po +trans.zh_CN = library/contextlib.po +source_file = trans/en/library--contextlib.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--contextlib + +[o:python-doc:p:python-313:r:library--contextvars] +file_filter = trans//library--contextvars.po +trans.zh_CN = library/contextvars.po +source_file = trans/en/library--contextvars.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--contextvars + +[o:python-doc:p:python-313:r:library--copy] +file_filter = trans//library--copy.po +trans.zh_CN = library/copy.po +source_file = trans/en/library--copy.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--copy + +[o:python-doc:p:python-313:r:library--copyreg] +file_filter = trans//library--copyreg.po +trans.zh_CN = library/copyreg.po +source_file = trans/en/library--copyreg.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--copyreg + +[o:python-doc:p:python-313:r:library--crypt] +file_filter = trans//library--crypt.po +trans.zh_CN = library/crypt.po +source_file = trans/en/library--crypt.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--crypt + +[o:python-doc:p:python-313:r:library--crypto] +file_filter = trans//library--crypto.po +trans.zh_CN = library/crypto.po +source_file = trans/en/library--crypto.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--crypto + +[o:python-doc:p:python-313:r:library--csv] +file_filter = trans//library--csv.po +trans.zh_CN = library/csv.po +source_file = trans/en/library--csv.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--csv + +[o:python-doc:p:python-313:r:library--ctypes] +file_filter = trans//library--ctypes.po +trans.zh_CN = library/ctypes.po +source_file = trans/en/library--ctypes.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--ctypes + +[o:python-doc:p:python-313:r:library--curses] +file_filter = trans//library--curses.po +trans.zh_CN = library/curses.po +source_file = trans/en/library--curses.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--curses + +[o:python-doc:p:python-313:r:library--curses_ascii] +file_filter = trans//library--curses_ascii.po +trans.zh_CN = library/curses.ascii.po +source_file = trans/en/library--curses_ascii.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--curses_ascii + +[o:python-doc:p:python-313:r:library--curses_panel] +file_filter = trans//library--curses_panel.po +trans.zh_CN = library/curses.panel.po +source_file = trans/en/library--curses_panel.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--curses_panel + +[o:python-doc:p:python-313:r:library--custominterp] +file_filter = trans//library--custominterp.po +trans.zh_CN = library/custominterp.po +source_file = trans/en/library--custominterp.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--custominterp + +[o:python-doc:p:python-313:r:library--dataclasses] +file_filter = trans//library--dataclasses.po +trans.zh_CN = library/dataclasses.po +source_file = trans/en/library--dataclasses.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--dataclasses + +[o:python-doc:p:python-313:r:library--datatypes] +file_filter = trans//library--datatypes.po +trans.zh_CN = library/datatypes.po +source_file = trans/en/library--datatypes.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--datatypes + +[o:python-doc:p:python-313:r:library--datetime] +file_filter = trans//library--datetime.po +trans.zh_CN = library/datetime.po +source_file = trans/en/library--datetime.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--datetime + +[o:python-doc:p:python-313:r:library--dbm] +file_filter = trans//library--dbm.po +trans.zh_CN = library/dbm.po +source_file = trans/en/library--dbm.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--dbm + +[o:python-doc:p:python-313:r:library--debug] +file_filter = trans//library--debug.po +trans.zh_CN = library/debug.po +source_file = trans/en/library--debug.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--debug + +[o:python-doc:p:python-313:r:library--decimal] +file_filter = trans//library--decimal.po +trans.zh_CN = library/decimal.po +source_file = trans/en/library--decimal.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--decimal + +[o:python-doc:p:python-313:r:library--development] +file_filter = trans//library--development.po +trans.zh_CN = library/development.po +source_file = trans/en/library--development.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--development + +[o:python-doc:p:python-313:r:library--devmode] +file_filter = trans//library--devmode.po +trans.zh_CN = library/devmode.po +source_file = trans/en/library--devmode.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--devmode + +[o:python-doc:p:python-313:r:library--dialog] +file_filter = trans//library--dialog.po +trans.zh_CN = library/dialog.po +source_file = trans/en/library--dialog.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--dialog + +[o:python-doc:p:python-313:r:library--difflib] +file_filter = trans//library--difflib.po +trans.zh_CN = library/difflib.po +source_file = trans/en/library--difflib.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--difflib + +[o:python-doc:p:python-313:r:library--dis] +file_filter = trans//library--dis.po +trans.zh_CN = library/dis.po +source_file = trans/en/library--dis.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--dis + +[o:python-doc:p:python-313:r:library--distribution] +file_filter = trans//library--distribution.po +trans.zh_CN = library/distribution.po +source_file = trans/en/library--distribution.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--distribution + +[o:python-doc:p:python-313:r:library--distutils] +file_filter = trans//library--distutils.po +trans.zh_CN = library/distutils.po +source_file = trans/en/library--distutils.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--distutils + +[o:python-doc:p:python-313:r:library--doctest] +file_filter = trans//library--doctest.po +trans.zh_CN = library/doctest.po +source_file = trans/en/library--doctest.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--doctest + +[o:python-doc:p:python-313:r:library--email] +file_filter = trans//library--email.po +trans.zh_CN = library/email.po +source_file = trans/en/library--email.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--email + +[o:python-doc:p:python-313:r:library--email_charset] +file_filter = trans//library--email_charset.po +trans.zh_CN = library/email.charset.po +source_file = trans/en/library--email_charset.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--email_charset + +[o:python-doc:p:python-313:r:library--email_compat32-message] +file_filter = trans//library--email_compat32-message.po +trans.zh_CN = library/email.compat32-message.po +source_file = trans/en/library--email_compat32-message.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--email_compat32-message + +[o:python-doc:p:python-313:r:library--email_contentmanager] +file_filter = trans//library--email_contentmanager.po +trans.zh_CN = library/email.contentmanager.po +source_file = trans/en/library--email_contentmanager.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--email_contentmanager + +[o:python-doc:p:python-313:r:library--email_encoders] +file_filter = trans//library--email_encoders.po +trans.zh_CN = library/email.encoders.po +source_file = trans/en/library--email_encoders.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--email_encoders + +[o:python-doc:p:python-313:r:library--email_errors] +file_filter = trans//library--email_errors.po +trans.zh_CN = library/email.errors.po +source_file = trans/en/library--email_errors.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--email_errors + +[o:python-doc:p:python-313:r:library--email_examples] +file_filter = trans//library--email_examples.po +trans.zh_CN = library/email.examples.po +source_file = trans/en/library--email_examples.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--email_examples + +[o:python-doc:p:python-313:r:library--email_generator] +file_filter = trans//library--email_generator.po +trans.zh_CN = library/email.generator.po +source_file = trans/en/library--email_generator.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--email_generator + +[o:python-doc:p:python-313:r:library--email_header] +file_filter = trans//library--email_header.po +trans.zh_CN = library/email.header.po +source_file = trans/en/library--email_header.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--email_header + +[o:python-doc:p:python-313:r:library--email_headerregistry] +file_filter = trans//library--email_headerregistry.po +trans.zh_CN = library/email.headerregistry.po +source_file = trans/en/library--email_headerregistry.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--email_headerregistry + +[o:python-doc:p:python-313:r:library--email_iterators] +file_filter = trans//library--email_iterators.po +trans.zh_CN = library/email.iterators.po +source_file = trans/en/library--email_iterators.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--email_iterators + +[o:python-doc:p:python-313:r:library--email_message] +file_filter = trans//library--email_message.po +trans.zh_CN = library/email.message.po +source_file = trans/en/library--email_message.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--email_message + +[o:python-doc:p:python-313:r:library--email_mime] +file_filter = trans//library--email_mime.po +trans.zh_CN = library/email.mime.po +source_file = trans/en/library--email_mime.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--email_mime + +[o:python-doc:p:python-313:r:library--email_parser] +file_filter = trans//library--email_parser.po +trans.zh_CN = library/email.parser.po +source_file = trans/en/library--email_parser.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--email_parser + +[o:python-doc:p:python-313:r:library--email_policy] +file_filter = trans//library--email_policy.po +trans.zh_CN = library/email.policy.po +source_file = trans/en/library--email_policy.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--email_policy + +[o:python-doc:p:python-313:r:library--email_utils] +file_filter = trans//library--email_utils.po +trans.zh_CN = library/email.utils.po +source_file = trans/en/library--email_utils.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--email_utils + +[o:python-doc:p:python-313:r:library--ensurepip] +file_filter = trans//library--ensurepip.po +trans.zh_CN = library/ensurepip.po +source_file = trans/en/library--ensurepip.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--ensurepip + +[o:python-doc:p:python-313:r:library--enum] +file_filter = trans//library--enum.po +trans.zh_CN = library/enum.po +source_file = trans/en/library--enum.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--enum + +[o:python-doc:p:python-313:r:library--errno] +file_filter = trans//library--errno.po +trans.zh_CN = library/errno.po +source_file = trans/en/library--errno.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--errno + +[o:python-doc:p:python-313:r:library--exceptions] +file_filter = trans//library--exceptions.po +trans.zh_CN = library/exceptions.po +source_file = trans/en/library--exceptions.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--exceptions + +[o:python-doc:p:python-313:r:library--faulthandler] +file_filter = trans//library--faulthandler.po +trans.zh_CN = library/faulthandler.po +source_file = trans/en/library--faulthandler.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--faulthandler + +[o:python-doc:p:python-313:r:library--fcntl] +file_filter = trans//library--fcntl.po +trans.zh_CN = library/fcntl.po +source_file = trans/en/library--fcntl.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--fcntl + +[o:python-doc:p:python-313:r:library--filecmp] +file_filter = trans//library--filecmp.po +trans.zh_CN = library/filecmp.po +source_file = trans/en/library--filecmp.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--filecmp + +[o:python-doc:p:python-313:r:library--fileformats] +file_filter = trans//library--fileformats.po +trans.zh_CN = library/fileformats.po +source_file = trans/en/library--fileformats.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--fileformats + +[o:python-doc:p:python-313:r:library--fileinput] +file_filter = trans//library--fileinput.po +trans.zh_CN = library/fileinput.po +source_file = trans/en/library--fileinput.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--fileinput + +[o:python-doc:p:python-313:r:library--filesys] +file_filter = trans//library--filesys.po +trans.zh_CN = library/filesys.po +source_file = trans/en/library--filesys.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--filesys + +[o:python-doc:p:python-313:r:library--fnmatch] +file_filter = trans//library--fnmatch.po +trans.zh_CN = library/fnmatch.po +source_file = trans/en/library--fnmatch.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--fnmatch + +[o:python-doc:p:python-313:r:library--fractions] +file_filter = trans//library--fractions.po +trans.zh_CN = library/fractions.po +source_file = trans/en/library--fractions.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--fractions + +[o:python-doc:p:python-313:r:library--frameworks] +file_filter = trans//library--frameworks.po +trans.zh_CN = library/frameworks.po +source_file = trans/en/library--frameworks.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--frameworks + +[o:python-doc:p:python-313:r:library--ftplib] +file_filter = trans//library--ftplib.po +trans.zh_CN = library/ftplib.po +source_file = trans/en/library--ftplib.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--ftplib + +[o:python-doc:p:python-313:r:library--functional] +file_filter = trans//library--functional.po +trans.zh_CN = library/functional.po +source_file = trans/en/library--functional.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--functional + +[o:python-doc:p:python-313:r:library--functions] +file_filter = trans//library--functions.po +trans.zh_CN = library/functions.po +source_file = trans/en/library--functions.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--functions + +[o:python-doc:p:python-313:r:library--functools] +file_filter = trans//library--functools.po +trans.zh_CN = library/functools.po +source_file = trans/en/library--functools.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--functools + +[o:python-doc:p:python-313:r:library--__future__] +file_filter = trans//library--__future__.po +trans.zh_CN = library/__future__.po +source_file = trans/en/library--__future__.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--__future__ + +[o:python-doc:p:python-313:r:library--gc] +file_filter = trans//library--gc.po +trans.zh_CN = library/gc.po +source_file = trans/en/library--gc.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--gc + +[o:python-doc:p:python-313:r:library--getopt] +file_filter = trans//library--getopt.po +trans.zh_CN = library/getopt.po +source_file = trans/en/library--getopt.po +source_lang = en +type = PO +minimum_perc = 0 +resource_name = library--getopt + +[o:python-doc:p:python-313:r:library--getpass] +file_filter = trans/