Content-Length: 5075 | pFad | http://github.com/python/python-docs-zh-tw/pull/686.patch
thub.com
From 0fe7fe76f55480a21e3a9861026301b739d82d75 Mon Sep 17 00:00:00 2001
From: Becca Lin
Date: Sun, 22 Oct 2023 23:42:55 +0800
Subject: [PATCH 1/2] pycon_sprints_add_chatgpt
---
.scripts/google_translate/chatgpt.py | 24 +++++++++++++++++
.scripts/google_translate/main.py | 40 ++++++++++++++++++++++------
2 files changed, 56 insertions(+), 8 deletions(-)
create mode 100644 .scripts/google_translate/chatgpt.py
diff --git a/.scripts/google_translate/chatgpt.py b/.scripts/google_translate/chatgpt.py
new file mode 100644
index 0000000000..94335587d8
--- /dev/null
+++ b/.scripts/google_translate/chatgpt.py
@@ -0,0 +1,24 @@
+import json
+import requests
+
+def translate(api_key, ipt):
+ prompt = f'假設你是一位python工程師,請將下列文件翻譯為繁體中文 “{ipt}”'
+ response = requests.post(
+ 'https://api.openai.com/v1/completions',
+ headers = {
+ 'Content-Type': 'application/json',
+ 'Authorization': f'Bearer {api_key}'
+ },
+ json = {
+ 'model': 'text-davinci-003',
+ 'prompt': prompt,
+ 'temperature': 0.4,
+ 'max_tokens': 1000
+ }
+ )
+ return response
+
+def Translator(ipt, api_key):
+ response = translate(api_key, ipt)
+ opt = json.loads(response.text)['choices'][0]['text']
+ print(opt)
\ No newline at end of file
diff --git a/.scripts/google_translate/main.py b/.scripts/google_translate/main.py
index 667fcc5950..07075d35c6 100644
--- a/.scripts/google_translate/main.py
+++ b/.scripts/google_translate/main.py
@@ -5,6 +5,7 @@
import polib
from googletrans import Translator
+import chatgpt
from utils import refine_translations
@@ -25,13 +26,23 @@ def _get_po_paths(path: Path) -> List[Path]:
if __name__ == '__main__':
parser = argparse.ArgumentParser()
+ parser.add_argument(
+ "translator",
+ help="the translator to use",
+ choices=["google", "chatgpt"],
+ default="google"
+ )
parser.add_argument(
"path",
help="the path of a PO file or a directory containing PO files"
)
+ parser.add_argument(
+ "key",
+ help="api key for chatGPT use",
+ default=""
+ )
args = parser.parse_args()
- translator = Translator()
po_files = _get_po_paths(Path(args.path).resolve())
errors = []
for path in po_files:
@@ -41,11 +52,24 @@ def _get_po_paths(path: Path) -> List[Path]:
errors.append(f"{path} doesn't seem to be a .po file")
continue
- for entry in pofile.untranslated_entries()[::-1]:
- translation = translator.translate(entry.msgid, src='en', dest='zh-TW')
+ if args.translator == "google":
+ translator = Translator()
+ for entry in pofile.untranslated_entries()[::-1]:
+ translation = translator.translate(entry.msgid, src='en', dest='zh-TW')
+
+ print(
+ '#, fuzzy\n'
+ f'msgid "{repr(entry.msgid)[1:-1]}"\n'
+ f'msgstr "{repr(refine_translations(translation.text))[1:-1]}"\n'
+ )
+
+ elif args.translator == "chatgpt":
+ api_key = args.key
+ for entry in pofile.untranslated_entries()[::-1]:
+ translation = chatgpt.Translator(api_key, entry.msgid)
- print(
- '#, fuzzy\n'
- f'msgid "{repr(entry.msgid)[1:-1]}"\n'
- f'msgstr "{repr(refine_translations(translation.text))[1:-1]}"\n'
- )
+ print(
+ '#, fuzzy\n'
+ f'msgid "{repr(entry.msgid)[1:-1]}"\n'
+ f'msgstr "{repr(refine_translations(translation.text))[1:-1]}"\n'
+ )
\ No newline at end of file
From 7a5139d39be8b88021040b23eea104f05538ea7d Mon Sep 17 00:00:00 2001
From: rockleona
Date: Fri, 10 Nov 2023 10:47:39 +0800
Subject: [PATCH 2/2] Add Chatgpt Translate Shell Script
Update pyproject.toml
---
.scripts/chatgpt_translate.sh | 17 +++++++++++++++++
.scripts/pyproject.toml | 1 +
2 files changed, 18 insertions(+)
create mode 100755 .scripts/chatgpt_translate.sh
diff --git a/.scripts/chatgpt_translate.sh b/.scripts/chatgpt_translate.sh
new file mode 100755
index 0000000000..88bce42ee5
--- /dev/null
+++ b/.scripts/chatgpt_translate.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+WORK_DIR=.scripts
+cd $WORK_DIR
+
+source utils/install_poetry.sh
+
+TEMP=tmp.po
+TARGET=../$2
+
+poetry lock
+poetry install
+poetry run bash -c "
+ python google_translate/main.py $2 $TARGET $3 > $TEMP
+ pomerge -t $TARGET -i $TEMP -o $TARGET
+"
+rm $TEMP
diff --git a/.scripts/pyproject.toml b/.scripts/pyproject.toml
index cdb505ad0e..34d3740eb4 100644
--- a/.scripts/pyproject.toml
+++ b/.scripts/pyproject.toml
@@ -10,6 +10,7 @@ python = "^3.10"
polib = "1.1.1"
googletrans = "3.1.0a0"
translate-toolkit = "3.8.1"
+requests = "2.31.0"
[build-system]
--- a PPN by Garber Painting Akron. With Image Size Reduction included!Fetched URL: http://github.com/python/python-docs-zh-tw/pull/686.patch
Alternative Proxies:
Alternative Proxy
pFad Proxy
pFad v3 Proxy
pFad v4 Proxy