in the window created by this script, i want you to move the “Manual Retranslate” button into the lower left corner inside the untranslated textbox using the place geometry manager.

import time
import pyperclip
import openai
import sys
import keyboard
import json
import tkinter as tk
import threading
from tkinter import font, Menu

# Set your OpenAI API key and base
openai.api_base = ""
openai.api_key = ""

# Toggleable features
PRINT_TRANSLATION = False
COPY_TO_CLIPBOARD = False
KEEP_LOGS = True

# Initialize dictionary to store translated texts
translated_dict = {}

# Define JSON file to store translations
jsonfile = "translations.json"

# Load existing translations from JSON file
try:
    with open(jsonfile, "r", encoding="utf-8") as f:
        translated_dict = json.load(f)
except FileNotFoundError:
    pass

def translate_text(text_to_translate):
    prompt = f"Translate the following text:{text_to_translate}"

    try:
        completion = openai.ChatCompletion.create(
            model="gpt-3.5",
            messages=[
                {
                    "role": "user",
                    "content": f"{prompt}",
                }
            ],
        )
        translated_text = (
            completion["choices"][0]
            .get("message")
            .get("content")
            .encode("utf8")
            .decode()
        )

    except Exception as e:
        print(e, "No credits found in key. Exiting…")
        sys.exit()

    return translated_text

def update_display(display, text):
    display.delete(1.0, tk.END)
    display.insert(tk.END, text)

def retranslate():
    untranslated_text = untranslated_textbox.get(1.0, tk.END).strip()
    if untranslated_text:
        translated_text = translate_text(untranslated_text)

        if PRINT_TRANSLATION:
            print(f"\nTranslation:\n{translated_text}")

        if COPY_TO_CLIPBOARD:
            pyperclip.copy(translated_text)

        update_display(translated_textbox, translated_text)

def clipboard_monitor():
    old_clipboard = ""
    exit_flag = False

    while not exit_flag:
        new_clipboard = pyperclip.paste()

        # Compare new_clipboard with old_clipboard to detect changes
        if new_clipboard != old_clipboard:
            old_clipboard = new_clipboard
            if new_clipboard in translated_dict:
                translated_text = translated_dict[new_clipboard]
            else:
                translated_text = translate_text(new_clipboard)

                translated_dict[new_clipboard] = translated_text
                with open(jsonfile, "w", encoding="utf-8") as f:
                    json.dump(translated_dict, f, ensure_ascii=False, indent=4)

            update_display(untranslated_textbox, new_clipboard)
            update_display(translated_textbox, translated_text)

        if keyboard.is_pressed("esc"):
            exit_flag = True
            sys.exit()

        time.sleep(1)

root = tk.Tk()
root.title("Clipboard Translation Monitor")
root.geometry("800x400")

untranslated_textbox = tk.Text(root, wrap="word", width=40, height=20)
untranslated_textbox.pack(side="left", expand=True, fill="both")

translated_textbox = tk.Text(root, wrap="word", width=40, height=20)
translated_textbox.pack(side="left", expand=True, fill="both")

retranslate_button = tk.Button(root, text="Manual Retranslate", command=retranslate)
retranslate_button.pack(side="bottom")

if __name__ == "__main__":
    print("Starting Clipboard Translation Monitor…\n")
    print("Press Esc to exit\n")
    clipboard_monitor_thread = threading.Thread(target=clipboard_monitor)
    clipboard_monitor_thread.start()
    root.mainloop()