File size: 7,202 Bytes
963d10b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
113
114
115
116
117
118
119
120
121
122
123
124
import os
import json

iedid_dir = 'c:/Users/toecm/Documents/Pure Versation/pureversation/backend/IEDID'
lab_profiles_dir = 'c:/Users/toecm/Documents/Pure Versation/pureversation/backend/lab_profiles'

# Top languages and representative dialects
top_languages = {
    'Mandarin Chinese': ['Standard Mandarin', 'Beijing Dialect', 'Taiwanese Mandarin', 'Singaporean Mandarin'],
    'Spanish': ['Castilian Spanish', 'Mexican Spanish', 'Argentine Spanish', 'Colombian Spanish', 'Caribbean Spanish'],
    'Hindi': ['Standard Hindi', 'Bhojpuri', 'Awadhi', 'Haryanvi', 'Rajasthani'],
    'Arabic': ['Modern Standard Arabic', 'Egyptian Arabic', 'Levantine Arabic', 'Gulf Arabic', 'Maghrebi Arabic'],
    'Bengali': ['Rarhi', 'Varendri', 'Kamarupi', 'Bangali', 'Sylheti'],
    'Portuguese': ['Brazilian Portuguese', 'European Portuguese', 'Angolan Portuguese', 'Mozambican Portuguese'],
    'Russian': ['Northern Russian', 'Central Russian', 'Southern Russian'],
    'Japanese': ['Kanto', 'Kansai', 'Kyushu', 'Tohoku'],
    'Western Punjabi': ['Majhi', 'Pothohari', 'Jhangochi', 'Shahpuri'],
    'Marathi': ['Standard Marathi', 'Varhadi', 'Konkani', 'Deshi'],
    'Telugu': ['Coastal Telugu', 'Rayalaseema', 'Telangana'],
    'Wu Chinese': ['Shanghainese', 'Suzhounese', 'Wenzhounese'],
    'Turkish': ['Istanbul Turkish', 'Rumelian', 'Anatolian'],
    'Korean': ['Seoul Dialect', 'Gyeongsang Satoori', 'Jeolla Satoori', 'Chungcheong Satoori', 'Jeju Dialect'],
    'French': ['Metropolitan French', 'Quebec French', 'African French', 'Belgian French', 'Swiss French'],
    'German': ['High German', 'Low German', 'Bavarian', 'Austrian German', 'Swiss German'],
    'Vietnamese': ['Northern Vietnamese', 'Central Vietnamese', 'Southern Vietnamese'],
    'Tamil': ['Central Tamil', 'Madurai Tamil', 'Kongu Tamil', 'Chennai Tamil', 'Sri Lankan Tamil'],
    'Yue Chinese (Cantonese)': ['Guangzhou Cantonese', 'Hong Kong Cantonese', 'Macau Cantonese'],
    'Urdu': ['Dakhini', 'Rekhta'],
    'Javanese': ['Central Javanese', 'Eastern Javanese', 'Western Javanese'],
    'Italian': ['Standard Italian', 'Neapolitan', 'Sicilian', 'Venetian'],
    'Egyptian Arabic': ['Cairene', 'Saidi', 'Alexandrian'],
    'Gujarati': ['Standard Gujarati', 'Kathiawadi', 'Surati', 'Pattani'],
    'Iranian Persian': ['Tehrani', 'Shirazi', 'Isfahani', 'Mashhadi'],
    'Bhojpuri': ['Northern Bhojpuri', 'Southern Bhojpuri', 'Western Bhojpuri'],
    'Min Nan Chinese': ['Hokkien', 'Teochew', 'Hainanese'],
    'Hakka Chinese': ['Meixian', 'Hailu', 'Sixian'],
    'Jin Chinese': ['Bingzhou', 'Lüliang', 'Zhangjiakou-Hohhot'],
    'Hausa': ['Kano', 'Sokoto', 'Zaria', 'Katsina'],
    'Kannada': ['Mysore', 'Hubli', 'Mangalore', 'Kundapura'],
    'Indonesian': ['Standard Indonesian', 'Jakarta Indonesian', 'Papuan Malay'],
    'Polish': ['Greater Polish', 'Lesser Polish', 'Masovian', 'Silesian'],
    'Yoruba': ['Standard Yoruba', 'Ibadan', 'Egba', 'Ijebu'],
    'Xiang Chinese': ['Changyi', 'Loushao', 'Chenxü'],
    'Malayalam': ['South Kerala', 'Central Kerala', 'North Kerala'],
    'Odia': ['Mughalbandi', 'Sambalpuri', 'Ganjami', 'Desia'],
    'Maithili': ['Standard Maithili', 'Bajjika', 'Angika'],
    'Burmese': ['Standard Burmese', 'Mandalay', 'Yangon'],
    'Sunda': ['Priangan', 'Banten', 'Cirebon'],
    'Sudanese Arabic': ['Khartoum', 'Western Sudanese'],
    'Algerian Arabic': ['Algiers', 'Oran', 'Constantine'],
    'Moroccan Arabic': ['Rabat', 'Casablanca', 'Fes'],
    'Ukrainian': ['Northern Ukrainian', 'Southwestern Ukrainian', 'Southeastern Ukrainian'],
    'Igbo': ['Standard Igbo', 'Owerri', 'Onitsha', 'Umuahia', 'Orlu'],
    'Northern Uzbek': ['Tashkent', 'Fergana', 'Khorezm'],
    'Sindhi': ['Vicholi', 'Lari', 'Thari', 'Kachhi'],
    'North Levantine Arabic': ['Syrian', 'Lebanese'],
    'Romanian': ['Moldavian', 'Wallachian', 'Transylvanian'],
    'Tagalog': ['Manila', 'Batangas', 'Bulacan', 'Tayabas'],
    'Dutch': ['Hollandic', 'Brabantian', 'Limburgish'],
    'Saʽidi Arabic': ['Upper Egyptian'],
    'Gan Chinese': ['Nanchang', 'Yichun', 'Ji\'an'],
    'Amharic': ['Gondar', 'Gojjam', 'Shoa'],
    'Northern Pashto': ['Peshawari', 'Kabul'],
    'Magahi': ['Standard Magahi', 'Khortha'],
    'Thai': ['Central Thai', 'Khorat', 'Southern Thai'],
    'Saraiki': ['Multani', 'Derawali', 'Thali'],
    'Khmer': ['Standard Khmer', 'Northern Khmer', 'Western Khmer'],
    'Chhattisgarhi': ['Kedri', 'Khandi', 'Laria'],
    'Somali': ['Northern Somali', 'Benaadir', 'Maay'],
    'Malay': ['Standard Malay', 'Kelantanese', 'Terengganu'],
    'Cebuano': ['Standard Cebuano', 'Boholano', 'Leyteño'],
    'Nepali': ['Standard Nepali', 'Eastern Nepali', 'Western Nepali'],
    'Mesopotamian Arabic': ['Baghdadi', 'Basrawi', 'Moslawi'],
    'Assamese': ['Eastern Assamese', 'Central Assamese', 'Kamrupi', 'Goalpariya'],
    'Sinhalese': ['Standard Sinhala', 'Kandyan', 'Southern Sinhala'],
    'Northern Kurdish': ['Kurmanji', 'Badini'],
    'Hejazi Arabic': ['Meccan', 'Jeddawi', 'Medani'],
    'Nigerian Fulfulde': ['Kano', 'Katsina', 'Sokoto'],
    'Bavarian': ['North Bavarian', 'Central Bavarian', 'South Bavarian'],
    'South Azerbaijani': ['Tabrizi', 'Urmia'],
    'Greek': ['Standard Greek', 'Cypriot Greek', 'Cretan Greek', 'Pontic Greek'],
    'Chittagonian': ['Standard Chittagonian', 'Rohingya'],
    'Kazakh': ['Northeastern Kazakh', 'Southern Kazakh', 'Western Kazakh'],
    'Deccan': ['Standard Deccani'],
    'Hungarian': ['Alföld', 'Transdanubian', 'Székely'],
    'Kinyarwanda': ['Standard Kinyarwanda'],
    'Zulu': ['Standard Zulu', 'Lala', 'Qwabe'],
    'South Levantine Arabic': ['Palestinian', 'Jordanian'],
    'Tunisian Arabic': ['Tunis', 'Sfax', 'Sahel'],
    'Sanaani Arabic': ['Sana\'a'],
    'Min Bei Chinese': ['Jian\'ou'],
    'Southern Pashto': ['Kandahari', 'Quetta'],
    'Rundi': ['Standard Kirundi'],
    'Czech': ['Common Czech', 'Moravian', 'Silesian'],
    'Taʽizzi-Adeni Arabic': ['Ta\'izzi', 'Adeni'],
    'Uyghur': ['Central Uyghur', 'Hotan', 'Lop'],
    'Min Dong Chinese': ['Fuzhou'],
    'Sylheti': ['Standard Sylheti'],
    'Swahili': ['Kiunguja', 'Kimvita', 'Amu', 'Mrimima', 'Pemba']
}

for lang, dialects in top_languages.items():
    # 1. Create IEDID
    lang_data_dir = os.path.join(iedid_dir, lang, 'data')
    os.makedirs(lang_data_dir, exist_ok=True)
    for dialect in dialects:
        csv_path = os.path.join(lang_data_dir, f"{dialect}.csv")
        if not os.path.exists(csv_path):
            with open(csv_path, 'w', encoding='utf-8') as f:
                f.write("phrase,clarification\n")
    
    # 2. Create lab_profiles
    lang_persona_dir = os.path.join(lab_profiles_dir, lang)
    os.makedirs(lang_persona_dir, exist_ok=True)
    for dialect in dialects:
        persona_path = os.path.join(lang_persona_dir, f"{dialect} Persona.json")
        if not os.path.exists(persona_path):
            with open(persona_path, 'w', encoding='utf-8') as f:
                json.dump({"language": lang, "dialect": dialect, "system_prompt": f"You are a native speaker of {dialect} ({lang}, f)."}, f)
                # Just a minimal stub json
                f.write('{"name": "' + dialect + ' Persona"}')

print("Languages expanded successfully!")