Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from bs4 import BeautifulSoup
- from bs4.formatter import HTMLFormatter
- import requests
- import re
- import execjs
- from urllib import parse
- import json
- from collections import Counter
- class UnsortedAttributes(HTMLFormatter):
- def attributes(self, tag):
- for k, v in tag.attrs.items():
- yield k, v
- files_from_folder = r"c:\Folder2"
- use_translate_folder = True
- destination_language = 'fr'
- ts = Translate_as_google(destination_language)
- extension_file = ".html"
- import os
- directory = os.fsencode(files_from_folder)
- def recursively_translate(node):
- for x in range(len(node.contents)):
- if isinstance(node.contents[x], str):
- if node.contents[x].strip() != '':
- try:
- node.contents[x].replaceWith(ts.translate(node.contents[x]))
- except Exception as e:
- print(e)
- elif node.contents[x] != None:
- recursively_translate(node.contents[x])
- for file in os.listdir(directory):
- filename = os.fsdecode(file)
- print(filename)
- for i, file in enumerate(os.listdir(directory)):
- filename = os.fsdecode(file)
- print(f"{filename} translated ({i+1})")
- soup = soup.encode(formatter=UnsortedAttributes()).decode('utf-8')
- new_filename = f'{filename.split(".")[0]}_{destination_language}.html'
- if use_translate_folder:
- try:
- with open(os.path.join(files_from_folder+r'\translated', new_filename), 'w', encoding='utf-8') as new_html:
- new_html.write(soup[5:-6])
- except:
- os.mkdir(files_from_folder+r'\translated')
- with open(os.path.join(files_from_folder+r'\translated', new_filename), 'w', encoding='utf-8') as new_html:
- new_html.write(soup[5:-6])
- else:
- with open(os.path.join(files_from_folder, new_filename), 'w', encoding='utf-8') as html:
- html.write(soup[5:-6])
Advertisement
Add Comment
Please, Sign In to add comment