programming language translator python pastebin Romanian: https://neculaifantanaru.com/example-google-translate-api-key-python-code-beautifulsoup.html English: https://neculaifantanaru.com/en/example-google-translate-api-key-python-code-beautifulsoup.html from bs4 import BeautifulSoup from bs4.formatter import HTMLFormatter import requests import json import os import six from google.cloud import translate_v2 as translate programming language translator python pastebin How to dowload it? programming language translator python pastebin class UnsortedAttributes(HTMLFormatter): def attributes(self, tag): for k, v in tag.attrs.items(): yield k, v def translate_text(target, text): """Translates text into the target language. Target must be an ISO 639-1 language code. programming language translator python pastebin How to get it for free? programming language translator python pastebin See https://g.co/cloud/translate/v2/translate-reference#supported_languages """ os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "secret.json" translate_client = translate.Client() if isinstance(text, six.binary_type): text = text.decode("utf-8") programming language translator python pastebin How to get it for free? programming language translator python pastebin # Text can also be a sequence of strings, in which case this method # will return a sequence of results for each text. result = translate_client.translate(text, target_language=target) return result["translatedText"] files_from_folder = r"C:\test" source_language = 'EN' use_translate_folder = False programming language translator python pastebin How to get it for free? programming language translator python pastebin destination_language = 'ZH' extension_file = ".html" import os directory = os.fsencode(files_from_folder) def recursively_translate(node): programming language translator python pastebin PasteShr programming language translator python pastebin for x in range(len(node.contents)): if isinstance(node.contents[x], str): if node.contents[x].strip() != '': try: newtext = translate_text(destination_language, node.contents[x]) node.contents[x].replaceWith(newtext) except: pass elif node.contents[x] != None: recursively_translate(node.contents[x]) programming language translator python pastebin How to get it for free? programming language translator python pastebin for file in os.listdir(directory): filename = os.fsdecode(file) print(filename) if filename == 'y_key_e479323ce281e459.html' or filename == 'TS_4fg4_tr78.html': continue if filename.endswith(extension_file): with open(os.path.join(files_from_folder, filename), encoding='utf-8') as html: soup = BeautifulSoup('
' + html.read() + '
', 'html.parser') for title in soup.findAll('title'): programming language translator python pastebin How to use it? programming language translator python pastebin recursively_translate(title) for meta in soup.findAll('meta', {'name':'description'}): try: newtext = translate_text(destination_language, meta['content']) meta['content'] = newtext except: pass for h1 in soup.findAll('h1', {'itemprop':'name'}, class_='den_articol'): programming language translator python pastebin How to get it? programming language translator python pastebin begin_comment = str(soup).index('') end_comment = str(soup).index('') if begin_comment < str(soup).index(str(h1)) < end_comment: recursively_translate(h1) for p in soup.findAll('p', class_='text_obisnuit'): begin_comment = str(soup).index('') end_comment = str(soup).index('') if begin_comment < str(soup).index(str(p)) < end_comment: recursively_translate(p) programming language translator python pastebin How to get it for free? programming language translator python pastebin for p in soup.findAll('p', class_='text_obisnuit2'): begin_comment = str(soup).index('') end_comment = str(soup).index('') if begin_comment < str(soup).index(str(p)) < end_comment: recursively_translate(p) for span in soup.findAll('span', class_='text_obisnuit2'): begin_comment = str(soup).index('') end_comment = str(soup).index('') programming language translator python pastebin How to use it? programming language translator python pastebin if begin_comment < str(soup).index(str(span)) < end_comment: recursively_translate(span) for li in soup.findAll('li', class_='text_obisnuit'): begin_comment = str(soup).index('') end_comment = str(soup).index('') if begin_comment < str(soup).index(str(li)) < end_comment: recursively_translate(li) for a in soup.findAll('a', class_='linkMare'): programming language translator python pastebin How to get it for free? programming language translator python pastebin begin_comment = str(soup).index('') end_comment = str(soup).index('') if begin_comment < str(soup).index(str(a)) < end_comment: recursively_translate(a) for h4 in soup.findAll('h4', class_='text_obisnuit2'): begin_comment = str(soup).index('') end_comment = str(soup).index('') if begin_comment < str(soup).index(str(h4)) < end_comment: recursively_translate(h4) programming language translator python pastebin How to use it? programming language translator python pastebin for h5 in soup.findAll('h5', class_='text_obisnuit2'): begin_comment = str(soup).index('') end_comment = str(soup).index('') if begin_comment < str(soup).index(str(h5)) < end_comment: recursively_translate(h5) print(f'{filename} translated') soup = soup.encode(formatter=UnsortedAttributes()).decode('utf-8') new_filename = f'{filename.split(".")[0]}_{destination_language}.html' programming language translator python pastebin How to get it? programming language translator python pastebin 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: programming language translator python pastebin How to dowload it? programming language translator python pastebin html.write(soup[5:-6]) programming language translator python pastebin