File size: 4,177 Bytes
08b7f89
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
import requests
# from flask_cors import CORS

from groq import Groq
# CORS()
# GROQ_API_URL = "https://api.groq.com/translate"  # استبدل هذا بعنوان API الخاص بـ Groq
GROQ_API_KEY = "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"  # ضع هنا مفتاح API الخاص بك

client = Groq(api_key=GROQ_API_KEY)

def translate_texts_groq(texts, target_language="ar"):
    """

    Translates a list of texts to the target language using Groq.

    

    :param texts: List of texts to translate

    :param target_language: Target language code

    :return: List of translated texts

    """
    # headers = {
    #     "Authorization": f"Bearer {GROQ_API_KEY}",
    #     "Content-Type": "application/json"
    # }
    
    translated_texts = []
    # for text in texts:
    #     payload = {
    #         "source_language": "en",  # تأكد من ضبط لغة المصدر
    #         "target_language": target_language,
    #         "text": text
    #     }
        
    #     response = requests.post(GROQ_API_URL, json=payload, headers=headers)
    #     if response.status_code == 200:
    #         translated_text = response.json().get("translated_text")
    #         translated_texts.append(translated_text)
    #     else:
    #         # في حالة حدوث خطأ، يمكنك التعامل معه هنا
    #         translated_texts.append(text)  # احتفظ بالنص الأصلي في حال فشل الترجمة

    chat_completion = client.chat.completions.create(
        messages=[
            {
                "role": "user",
                "content": f"Translate the text fllowing into Arabic language:{texts}",
            }
        ],
        model="llama3-8b-8192",
    )

    translated_texts.append(chat_completion.choices[0].message.content)
        
    return translated_texts

def translate_content(content, target_language):
    """

    Translates the content of a markdown file, preserving non-translatable parts.

    

    :param content: Markdown content

    :param target_language: Target language code

    :return: Translated content

    """
    translatable_texts = extract_translatable_text(content)
    translated_texts = translate_texts_groq(translatable_texts, target_language)
    
    # Reconstruct the content with translated texts
    for original, translated in zip(translatable_texts, translated_texts):
        content = content.replace(original, translated)
    return content





# from transformers import MarianMTModel, MarianTokenizer

# # Initialize the model and tokenizer
# model_name = 'Helsinki-NLP/opus-mt-en-<target_language>'  # Replace <target_language> with the target language code
# model = MarianMTModel.from_pretrained(model_name)
# tokenizer = MarianTokenizer.from_pretrained(model_name)

# def translate_texts(texts, target_language):
#     """
#     Translates a list of texts to the target language.
    
#     :param texts: List of texts to translate
#     :param target_language: Target language code
#     :return: List of translated texts
#     """
#     translated_texts = []
#     for text in texts:
#         inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True)
#         translated = model.generate(**inputs)
#         translated_text = tokenizer.decode(translated[0], skip_special_tokens=True)
#         translated_texts.append(translated_text)
#     return translated_texts

# def translate_content(content, target_language):
#     """
#     Translates the content of a markdown file, preserving non-translatable parts.
    
#     :param content: Markdown content
#     :param target_language: Target language code
#     :return: Translated content
#     """
#     translatable_texts = extract_translatable_text(content)
#     translated_texts = translate_texts(translatable_texts, target_language)
    
#     # Reconstruct the content with translated texts
#     for original, translated in zip(translatable_texts, translated_texts):
#         content = content.replace(original, translated)
#     return content