File size: 44,313 Bytes
75419ed
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
import streamlit as st
import sparknlp
import os

from sparknlp.base import *
from sparknlp.common import *
from sparknlp.annotator import *
from pyspark.ml import Pipeline
from sparknlp.pretrained import PretrainedPipeline

# Page Configuration
st.set_page_config(
    layout="wide", 
    initial_sidebar_state="auto"
)

# Custom CSS for Styling
st.markdown("""

    <style>

        .main-title {

            font-size: 36px;

            color: #4A90E2;

            font-weight: bold;

            text-align: center;

        }

        .section {

            background-color: #f9f9f9;

            padding: 10px;

            border-radius: 10px;

            margin-top: 10px;

        }

        .section p, .section ul {

            color: #666666;

        }

    </style>

""", unsafe_allow_html=True)

# Initialize Spark NLP
@st.cache_resource
def init_spark():
    return sparknlp.start()

# Create a Spark NLP Pipeline for MarianTransformer
@st.cache_resource
def create_pipeline(model_name, fr, to):
    documentAssembler = DocumentAssembler() \
        .setInputCol("text") \
        .setOutputCol("documents")

    m2m100 = M2M100Transformer.pretrained(model_name,"xx") \
        .setInputCols(["documents"]) \
        .setMaxOutputLength(50) \
        .setOutputCol("generation") \
        .setSrcLang(fr) \
        .setTgtLang(to)

    pipeline = Pipeline().setStages([documentAssembler, m2m100])
    return pipeline

# Process the Input Text Through the Pipeline
def fit_data(pipeline, text):
    data = spark.createDataFrame([[text]]).toDF("text")
    result = pipeline.fit(data).transform(data)
    return result.select('generation.result').collect()

# Title and Subtitle
title = 'Multilingual Text Translation with Spark NLP and MarianMT'
sub_title = """

The MarianTransformer is a powerful, state-of-the-art machine translation model based on the Transformer architecture. Developed by the MarianMT project, this annotator supports over 1,000 translation directions, making it one of the most versatile tools for multilingual natural language processing. Integrated within Spark NLP, the MarianTransformer Annotator allows for scalable and efficient text translation, leveraging the parallel processing capabilities of Apache Spark. Whether you're translating large documents or handling multiple languages simultaneously, this tool ensures high-quality translations with minimal latency.

"""

st.markdown(f'<div class="main-title">{title}</div>', unsafe_allow_html=True)
st.markdown(f'<div class="section"><p>{sub_title}</p></div>', unsafe_allow_html=True)

# Placeholder for language_map
language_map = {
    "Afrikaans": {
        "af": [
            "Ek het 'n lang stap langs die strand geneem, terwyl die son stadig onder die horison gesak het, en ek het gedink aan al die herinneringe wat ek hier oor die jare opgebou het.",
            "Die voëls het begin sing en die golwe het rustig geklap, wat alles 'n gevoel van vrede en rustigheid gegee het."
        ]
    },
    "Amharic": {
        "am": [
            "እንደ ምሳሌ እንዲሆን እንዲሁ በጣም በረከት አለኝ፣ በሚሊካ እንደምንም የአስተያየት እና ከፍተኛ የተወሰነ ተጠቃሚ አለኝ።",
            "በከፊል ወይም በተመሳሳይ አጠቃቀም ሲኖረው የተለያዩ ባህላዊ እና ባህላዊ ባህሎች አሉ።"
        ]
    },
    "Arabic": {
        "ar": [
            "لقد أخذت نزهة طويلة على طول الشاطئ، بينما كانت الشمس تغرب ببطء تحت الأفق، وفكرت في جميع الذكريات التي بنيتها هنا على مر السنين.",
            "بدأت الطيور في الغناء وهدأت الأمواج، مما أعطى كل شيء شعورًا بالسلام والهدوء."
        ]
    },
    "Asturian": {
        "ast": [
            "Fui a dar una llarga vuelta pola praia mentres el sol se ponía lentamente a lo llargo del horizontu, pensando en tolos recuerdos que acumulé aquí al llargos años.",
            "Los pajaros empezaron a cantar y les ondas calmaron, dando a tolo un sentimento de paz y tranquilidá."
        ]
    },
    "Azerbaijani": {
        "az": [
            "Uzun bir vaxt çimərlikdə gəzdikdən sonra, günəş yavaşca üufqın altına batarkən, burada illər ərzində topladığım xatirələri düşündüm.",
            "Quşlar mahnı oxumağa başladılar və dalğalar sakitləşdi, hər şeyə sülh və sakitlik hissi verdi."
        ]
    },
    "Bashkir": {
        "ba": [
            "Мин оҙон сәйәхәт яһаным, ҡояш әкрен генә горизонт аҫтына төшкәндә, бында йылдар буйы туплаған хәтирәләрем тураһында уйландым.",
            "Ҡоштар йырҙарын башланы һәм тулҡындар тынысланды, бөтә нәмә тыныслыҡ һәм покой тойғоһо бирҙе."
        ]
    },
    "Belarusian": {
        "be": [
            "Я прайшоў доўгі шлях па пляжы, пакуль сонца павольна захоўвалася за гарызонтам, і падумаў пра ўсе ўспаміны, якія я назапасіў тут на працягу гадоў.",
            "Птушкі пачалі спяваць, і хвалі супакоіліся, надаўшы ўсім адчуванне спакою і супакою."
        ]
    },
    "Bulgarian": {
        "bg": [
            "Направих дълга разходка по плажа, докато слънцето бавно се скриваше под хоризонта, и помислих за всички спомени, които съм натрупал тук през годините.",
            "Птиците започнаха да пеят, а вълните се успокоиха, придавайки на всичко чувство на мир и спокойствие."
        ]
    },
    "Bengali": {
        "bn": [
            "আমি সৈকতে একটি দীর্ঘ হাঁটা দিয়েছি, সূর্য ধীরে ধীরে দিগন্তের নিচে অস্ত যাওয়ার সময়, এবং আমি মনে করেছি সমস্ত স্মৃতি যা আমি এখানে বছরের পর বছর ধরে সংগ্রহ করেছি।",
            "পাখিরা গান গাওয়া শুরু করলো এবং তরঙ্গগুলি শান্ত হলো, সবকিছুকে শান্তি এবং প্রশান্তির অনুভূতি প্রদান করলো।"
        ]
    },
    "Breton": {
        "br": [
            "Me zo bet e-barzh ur ballade hir war ar mor, pa varo an heol a-raog an horizon, ha me oar mat an holl kounoudegezhioù em eus savet amañ e-pad ar bloavezhioù.",
            "Ar birdenn a zo bet o singiñ hag ar mor a zo bet peogwir, o kinnig ur sentadurezh en ur stad pe den a zo dreist."
        ]
    },
    "Bosnian": {
        "bs": [
            "Prošao sam dugu šetnju plažom dok je sunce polako zalazilo iza horizonta, razmišljajući o svim uspomenama koje sam ovdje prikupio tokom godina.",
            "Ptice su počele pjevati, a valovi su se smirili, dajući svemu osjećaj mira i tišine."
        ]
    },
    "Catalan": {
        "ca": [
            "He fet una llarga passejada per la platja mentre el sol es ponia lentament sota l'horitzó i he pensat en tots els records que he acumulat aquí al llarg dels anys.",
            "Els ocells van començar a cantar i les ones es van calmar, donant a tot un sentiment de pau i tranquil·litat."
        ]
    },
    "Cebuano": {
        "ceb": [
            "Naghimo ako ug taas nga lakaw sa baybayon samtang ang adlaw hinay nga nagbutang sa ubos sa pahalipay ug naghunahuna sa tanan nga mga handumanan nga akong natipon dinhi sa miaging mga tuig.",
            "Nagsugod ang mga langgam sa pagkanta ug ang mga balud nahimong kalmado, nga naghatag sa tanan ug pagbati sa kalinaw ug kalma."
        ]
    },
    "Czech": {
        "cs": [
            "Šel jsem na dlouhou procházku po pláži, zatímco slunce pomalu zapadalo za obzor, a přemýšlel jsem o všech vzpomínkách, které jsem zde za léta nasbíral.",
            "Ptáci začali zpívat a vlny se uklidnily, což dalo všemu pocit míru a klidu."
        ]
    },
    "Welsh": {
        "cy": [
            "Arhosais i daith hir ar y traeth, wrth i'r haul fynd yn araf o dan y gorwel, ac fe feddyliais am yr holl atgofion sydd gennyf yma dros y blynyddoedd.",
            "Dechreuodd yr adar ganu ac aeth y tonnau yn dawel, gan roi teimlad o heddwch a chytgord i bopeth."
        ]
    },
    "Danish": {
        "da": [
            "Jeg tog en lang gåtur langs stranden, mens solen langsomt gik ned under horisonten, og jeg tænkte på alle de minder, jeg havde samlet her gennem årene.",
            "Fuglene begyndte at synge, og bølgerne blev rolige, hvilket gav alt en følelse af fred og ro."
        ]
    },
    "German": {
        "de": [
            "Ich habe einen langen Spaziergang am Strand gemacht, während die Sonne langsam unter den Horizont sank, und ich habe an all die Erinnerungen gedacht, die ich hier im Laufe der Jahre gesammelt habe.",
            "Die Vögel begannen zu singen und die Wellen wurden ruhig, was allem ein Gefühl von Frieden und Ruhe verlieh."
        ]
    },
    "Greek": {
        "el": [
            "Έκανα μια μακρά βόλτα κατά μήκος της παραλίας, ενώ ο ήλιος έδυε αργά κάτω από τον ορίζοντα, και σκέφτηκα όλες τις αναμνήσεις που είχα συγκεντρώσει εδώ με τα χρόνια.",
            "Τα πουλιά άρχισαν να τραγουδούν και τα κύματα ηρέμησαν, δίνοντας σε όλα μια αίσθηση ειρήνης και ηρεμίας."
        ]
    },
    "English": {
        "en": [
            "I took a long walk along the beach while the sun slowly set below the horizon, and I thought about all the memories I have built up here over the years.",
            "The birds started to sing and the waves calmed down, giving everything a sense of peace and tranquility."
        ]
    },
    "Spanish": {
        "es": [
            "Hice una larga caminata por la playa mientras el sol se ponía lentamente en el horizonte, y pensé en todos los recuerdos que he acumulado aquí a lo largo de los años.",
            "Los pájaros empezaron a cantar y las olas se calmaron, dando a todo una sensación de paz y tranquilidad."
        ]
    },
    "Estonian": {
        "et": [
            "Ma tegin pika jalutuskäigu mööda randa, kui päike aeglaselt horisondi alla vajus, ja mõtlesin kõigile mälestustele, mida olen siin aastate jooksul kogunud.",
            "Linnud hakkasid laulma ja lained rahunesid, andes kõikidele rahu ja rahu tunde."
        ]
    },
    "Persian": {
        "fa": [
            "من پیاده‌روی طولانی‌ای در کنار ساحل انجام دادم، در حالی که خورشید به آرامی زیر افق فرو می‌رفت و به تمام خاطراتی که در طول سال‌ها در اینجا جمع کرده بودم فکر می‌کردم.",
            "پرندگان شروع به خواندن کردند و امواج آرام شدند و به همه چیز احساسی از آرامش و سکون بخشید."
        ]
    },
    "Fulah": {
        "ff": [
            "Miɗo waawi lannuɗo fow e hoore maɓɓe e ndiyam, e jooni miɗo feƴƴi haɓre fow ɗiɗi so miɗo miɗo woodi.",
            "Awaayi no a waɗi e ndiyam e yaarɓe honto, haɓre fow mo adii eɗɗam e wuro no puɓɓe ɗum."
        ]
    },
    "Finnish": {
        "fi": [
            "Tein pitkän kävelylenkin rannalla, kun aurinko hiljalleen laski horisontin alle, ja ajattelin kaikkia muistoja, joita olen kerännyt tänne vuosien varrella.",
            "Linnut alkoivat laulaa ja aallot rauhoittuivat, antaen kaikille rauhan ja rauhallisuuden tunteen."
        ]
    },
    "French": {
        "fr": [
            "J'ai fait une longue promenade le long de la plage tandis que le soleil se couchait lentement sous l'horizon, et j'ai pensé à tous les souvenirs que j'ai accumulés ici au fil des ans.",
            "Les oiseaux ont commencé à chanter et les vagues se sont calmées, donnant à tout un sentiment de paix et de tranquillité."
        ]
    },
    "Western Frisian": {
        "fy": [
            "Ik makke in lange kuier oan 'e kust, wylst de sinne stadichoan ûnder de horizonto sakke, en ik tocht oan alle oantinkens dy't ik hjir oer de jierren hinne opboud hie.",
            "De fûgels begongen te sjongen en de golven kalmeerden, wat alles in gefoel fan frede en rêst joech."
        ]
    },
    "Irish": {
        "ga": [
            "Rinne mé ar shiúl long ag an trá, agus an grian ag dul síos go mall faoi na hardáin, agus shíl mé faoi na cuimhní atá bailithe agam anseo thar na blianta.",
            "Thosaigh na héin ag canadh agus d'éirigh na tonnta socair, ag tabhairt tuiscint síochána agus suaimhnis do gach rud."
        ]
    },
    "Gaelic": {
        "gd": [
            "Ghabh mi turas fada air a' chladach, fhad 's a bha an grian a' dol fodha gu socair fo na h-oidhche, agus choinnich mi ri na cuimhneachain uile a thog mi an seo thairis air na bliadhnaichean.",
            "Thòisich na h-eòin a' seinn agus thàinig na tonnan gu sìth, a' toirt faireachdainn sìthe agus socair do gach rud."
        ]
    },
    "Galician": {
        "gl": [
            "Dei unha longa volta pola praia mentres o sol se poñía lentamente no horizonte, e pensaba en todos os recordos que acumulei aquí ao longo dos anos.",
            "Os paxaros comezaron a cantar e as ondas tranquilizáronse, dando a todo unha sensación de paz e tranquilidade."
        ]
    },
    "Gujarati": {
        "gu": [
            "હું બીચ પર લાંબી ફરાળ કરવા ગયો હતો, જ્યારે સૂર્ય ધીમે ધીમે હરિઝોન નીચે જઈ રહ્યો હતો, અને મેં અહીં વર્ષો દરમ્યાન જમા કરેલી તમામ યાદોને વિચાર્યું.",
            "પક્ષીઓ ગાવા શરૂ થઈ ગઈ અને તરંગો શાંત થયા, બધાને શાંતિ અને શાંતિનો અનુભવ આપવામાં આવ્યો."
        ]
    },
    "Hausa": {
        "ha": [
            "Na yi tafiya mai tsawo a bakin teku yayin da rana ke saukowa a hankali a ƙarƙashin ƙasa, na kuma yi tunani akan dukkan tunanin da na tara a nan tsawon shekaru.",
            "Tsuntsaye sun fara waka kuma gungun ruwa ya kwantar da hankali, yana ba wa dukkan abubuwan jin dadin zaman lafiya da kwanciyar hankali."
        ]
    },
    "Hebrew": {
        "he": [
            "הלכתי לטיול ארוך לאורך החוף, בעוד השמש שוקעת לאט מתחת לאופק, וחשבתי על כל הזיכרונות שאספתי כאן במהלך השנים.",
            "הציפורים החלו לשיר והגלים נרגעו, מה שנתן לכל דבר תחושת שלום ושלווה."
        ]
    },
    "Hindi": {
        "hi": [
            "मैं समुद्र तट पर एक लंबी सैर पर गया, जबकि सूरज धीरे-धीरे क्षितिज के नीचे ढल रहा था, और मैंने उन सभी यादों के बारे में सोचा जो मैंने यहां वर्षों के दौरान संकलित की हैं।",
            "पक्षी गाने लगे और लहरें शांत हो गईं, जिससे सबको शांति और शांति का अहसास हुआ।"
        ]
    },
    "Croatian": {
        "hr": [
            "Prošao sam dugu šetnju plažom dok je sunce polako zalazilo iza horizonta i razmišljao o svim uspomenama koje sam prikupio ovdje tijekom godina.",
            "Ptice su počele pjevati, a valovi su se smirili, dajući svemu osjećaj mira i spokojstva."
        ]
    },
    "Haitian": {
        "ht": [
            "Mwen te fè yon long mache sou plaj la pandan solèy la t ap desann dousman anba orizon an, epi mwen te panse sou tout souvni mwen te kolekte isit la pandan ane yo.",
            "Zwazo yo te kòmanse chante epi vag yo te kalme, sa te bay tout bagay yon sans de lapè ak kalm."
        ]
    },
    "Hungarian": {
        "hu": [
            "Hosszú sétát tettem a tengerparton, miközben a nap lassan lement a horizont alá, és arra gondoltam, milyen emlékeket gyűjtöttem itt az évek során.",
            "A madarak énekelni kezdtek, és a hullámok lecsillapodtak, így mindennek megadva a béke és nyugalom érzését."
        ]
    },
    "Armenian": {
        "hy": [
            "Ես երկար քայլում էի ծովափին, երբ արևը դանդաղ իջնում էր հորիզոնից ներքև, և մտածեցի բոլոր այն հիշողությունների մասին, որոնք հավաքել էի այստեղ տարիների ընթացքում:",
            "Թռչունները սկսեցին երգել, իսկ ալիքները հանդարտվեցին, բոլորին խաղաղության և հանգստության զգացողություն պարգևելով:"
        ]
    },
    "Indonesian": {
        "id": [
            "Saya melakukan perjalanan panjang di pantai sementara matahari perlahan tenggelam di bawah cakrawala, dan saya memikirkan semua kenangan yang telah saya kumpulkan di sini selama bertahun-tahun.",
            "Burung-burung mulai bernyanyi dan ombak mereda, memberikan rasa damai dan ketenangan pada segala sesuatu."
        ]
    },
    "Igbo": {
        "ig": [
            "M mere ogologo njem n’akụkụ osimiri mgbe anyanwụ na-apụ apụ na ala nke oke osimiri, na-echebara echiche banyere ihe niile m chepụtara ebe a n’ime ọtụtụ afọ.",
            "Ndị nnụnụ malitere ịkụ egwu ma ụdị ụsọ ahụ nwayọọ, na-enye ihe niile mmetụta nke udo na ịdị jụụ."
        ]
    },
    "Iloko": {
        "ilo": [
            "Nangrugiak iti maysa a nabanglo nga panaglakay iti baybay iti panawen nga agdama a bumaba iti langit, ket inkeddengko dagiti amin a rikna nga impundar ko ditoy iti naglabas a tawen.",
            "Nagruyug dagiti laylayen ken napanay dagiti baybay, nga mangted iti amin ti panagserbi ken kapia."
        ]
    },
    "Icelandic": {
        "is": [
            "Ég fór í langan göngutúr eftir ströndina meðan sólin settist hægt niður undir hvarfslínuna og hugsaði um allar minningarnar sem ég hef safnað hér yfir árin.",
            "Fuglar byrjuðu að syngja og bylgjurnar róuðust, sem gaf öllu tilfinningu fyrir friði og ró."
        ]
    },
    "Italian": {
        "it": [
            "Ho fatto una lunga passeggiata lungo la spiaggia mentre il sole scendeva lentamente sotto l'orizzonte e ho pensato a tutti i ricordi che ho accumulato qui nel corso degli anni.",
            "Gli uccelli hanno cominciato a cantare e le onde si sono calmate, dando a tutto una sensazione di pace e tranquillità."
        ]
    },
    "Japanese": {
        "ja": [
            "私はビーチを長い間散歩しながら、太陽がゆっくりと地平線の下に沈んでいくのを見て、ここで何年もかけて集めた思い出を考えました。",
            "鳥たちが歌い始め、波が穏やかになり、すべてに平和と落ち着きの感覚を与えました。"
        ]
    },
    "Javanese": {
        "jv": [
            "Aku mlaku adoh ing pantai nalika srengenge alon-alon mudhun ing ngisor cakrawala, lan aku mikir babagan kabeh kenangan sing wis tak kumpulake ing kene sajrone taun-taun.",
            "Manuk-manuk wiwit nyanyi lan ombak-ombak dadi tentrem, menehi kabeh rasa tentrem lan ketenangan."
        ]
    },
    "Georgian": {
        "ka": [
            "დიდი გასეირნება გავაკეთე სანაპიროზე, როცა მზე ნელ-ნელა ჩადიოდა ჰორიზონტის ქვეშ და ვფიქრობდი იმ ყველაფერზე, რაც ამ ადგილას ვაგროვე წლების განმავლობაში.",
            "새들이 노래를 시작하고 파도가 잦아들어 모든 것에 평화와 평온의 느낌을 주었습니다."
        ]
    },
    "Kazakh": {
        "kk": [
            "Мен жағажайда ұзақ серуендедім, күн горизонттың астына баяу түсіп бара жатты, мен осы жерде жылдар бойы жинаған барлық естеліктерімді ойладым.",
            "Құстар ән сала бастады, ал толқындар тынышталды, бәріне тыныштық пен бейбітшіліктің сезімін сыйлады."
        ]
    },
    "Central Khmer": {
        "km": [
            "ខ្ញុំបានធ្វើការហូបបែបយូរនៅឆ្នេរ ខណៈពេលព្រះអាទិត្យបានលិចតាមផ្លូវធនធានយ៉ាងល្អ ហើយខ្ញុំបានគិតអំពីអង្គការជាច្រើនដែលខ្ញុំបានបន្សល់ទុកនៅទីនេះក្នុងរយៈពេលជាច្រើនឆ្នាំ។",
            "សត្វពពួកបានចាប់ផ្តើមច្រៀង ហើយការចុះឡើងនៃស្ទូចបានឧបត្ថម្ភឱ្យទាំងអស់នូវអារម្មណ៍សន្តិភាព និងការស្ងប់ស្ងាត់។"
        ]
    },
    "Kannada": {
        "kn": [
            "ಸೂರ್ಯ ಹಾರಿಜಾನ್ ಕೆಳಗೆ ನಿಧಾನವಾಗಿ ಮರೆಯಾಗುವಾಗ ನಾನು ಕಡಲ ತೀರದಲ್ಲಿ longues ನಡೆಯಿತು ಮತ್ತು ನಾನು ಇಲ್ಲಿ ವರ್ಷಗಳ ಕಾಲ ಕಟ್ಟಿಸಿದ ಎಲ್ಲಾ ನೆನಪುಗಳನ್ನು ಯೋಚಿಸುತ್ತಿದ್ದೇನೆ.",
            "ಹಕ್ಕಿಗಳು ಹಾಡಲು ಆರಂಭಿಸವು ಮತ್ತು ತಿರುವುಗಳು ಶಾಂತವಾಗುತ್ತವೆ, ಎಲ್ಲಿಗೊ ಶಾಂತಿ ಮತ್ತು ಶಾಂತಿಯ ಅನುಭವವನ್ನು ನೀಡುತ್ತದೆ."
        ]
    },
    "Korean": {
        "ko": [
            "해가 수평선 아래로 천천히 지는 동안 해변을 따라 긴 산책을 하며 수년 동안 여기서 쌓아온 모든 추억을 생각했습니다.",
            "새들이 노래를 부르기 시작했고 파도가 잦아들어 모든 것에 평화롭고 고요한 느낌을 주었습니다."
        ]
    },
    "Luxembourgish": {
        "lb": [
            "Ech hunn eng laang Spazéiergang laanscht de Strad gemaach, während d'Sonn lues ënner de Horizont gesinckt ass, an ech hunn iwwer all d'Erënnerungen geduecht, déi ech hei iwwer d'Jore gesincht hunn.",
            "D'Villercher hunn ugefaang ze sangen an d'Wellen hunn sech berouegt, wat allem e Gefill vu Fridden an Éischter ginn huet."
        ]
    },
    "Ganda": {
        "lg": [
            "Nafunye okwanguwangu ogumu ku nnyanja ng’akabirye kakyali wansi w’okuze obudde, ate nze nakirumba ku nsonga zonna ezandibaddemu mu myaka.",
            "Ekitenga kyatandika okutaabula, ate obwato bubadde butonotwa, obugamba buli kintu okwambalirira amagezi n’obulamu."
        ]
    },
    "Lingala": {
        "ln": [
            "Nayaki na ndelo mpenza na mboka ya nkanda, tango soleil ebataki butu na mbuma ya horizon, nakomi kokanisa malamu na masolo nyonso nakokoti na libanda oyo na mikolo.",
            "Biyaya bayei na masolo na yango mpe biloko esili kokola, ekeseni nyonso na esengo mpe po."
        ]
    },
    "Lao": {
        "lo": [
            "ຂໍ່ານແລະຄະນາດໃນທະບອງແລະເຂົ້າບ້ານເຂົ້າໄປໃນການປ່ອນຜ້ອມຂອງຊິວິດ, ເວົ້າຂອງສະຄອລະນໃຊໃບເປີນໄວ້ຄວາມຮູ້ສຶກສະເມີນລະບົບບອດປະສົມ.",
            "ສະບອຍໄດ້ເປົ້າເສັງເປິເຕັດລະວີບອງຕະລົງລະບົບຄວາມສະມເປີນ."
        ]
    },
    "Lithuanian": {
        "lt": [
            "Aš nuėjau ilgą pasivaikščiojimą palei paplūdimį, kai saulė lėtai leidosi žemiau horizonto, ir galvojau apie visus prisiminimus, kuriuos sukaupiau čia per metus.",
            "Paukščiai pradėjo dainuoti, o bangos nurimo, suteikdamos viskam ramybės ir ramybės jausmą."
        ]
    },
    "Latvian": {
        "lv": [
            "Es devos garā pastaigā pa pludmali, kamēr saule pakāpeniski rieta zem horizonta, un domāju par visiem atmiņām, kuras es esmu savācis šeit gadu gaitā.",
            "Putni sāk dziedāt un viļņi nomierinājās, piešķirot visam mieru un klusuma sajūtu."
        ]
    },
    "Malagasy": {
        "mg": [
            "Nandeha nandeha nanodidina ny morontsiraka aho, raha ny masoandro mihena tsikelikely any ambanin'ny tendrombohitra, ary nieritreritra ny rehetra ireo fahatsiarovana azoko nandritra ny taona.",
            "Nanomboka nanao hira ny vorona ary nihena ny onja, manome ny zava-drehetra fihetseham-po fiadanana sy fialam-boly."
        ]
    },
    "Macedonian": {
        "mk": [
            "Направив долга прошетка покрај плажата додека сонцето полека се спушташе под хоризонтот и размислував за сите спомени што ги собрав тука низ годините.",
            "Птиците започнаа да пеат и брановите се смирија, што му даде на сè чувство на мир и спокојство."
        ]
    },
    "Malay": {
        "ms": [
            "Saya melakukan perjalanan panjang di pantai sementara matahari perlahan tenggelam di bawah cakrawala, dan saya memikirkan semua kenangan yang telah saya kumpulkan di sini selama bertahun-tahun.",
            "Burung-burung mula bernyanyi dan ombak menjadi tenang, memberikan rasa damai dan ketenangan kepada segala-galanya."
        ]
    },
    "Mongolian": {
        "mn": [
            "Нар уран туулж байхад би эрэг дээр удаан алхаж байсан бөгөөд олон жилийн турш цуглуулсан бүх дурсамжуудаа бодож байсан.",
            "Шувууд дуугаа хурааж эхлээд давалгаа намжиж, бүх зүйлд амар тайвны мэдрэмжийг өгсөн."
        ]
    },
    "Nepali": {
        "ne": [
            "सूर्यलाई आकाशको क्षितिजमुनि थोरै थोरै झर्नुहुँदा म समुद्रको तटमा लामो हिँडाइ गरें र यहाँका सबै सम्झनाहरूको बारेमा सोचें, जुन मैले यहाँका वर्षहरूमा संकलन गरेको थिएँ।",
            "पक्षीहरूले गाउन थाले र लहरहरू शान्त भए, जसले सबैलाई शान्ति र शान्तिको अनुभव गरायो।"
        ]
    },
    "Norwegian": {
        "no": [
            "Jeg tok en lang spasertur langs stranden mens solen sakte gikk ned under horisonten, og jeg tenkte på alle minnene jeg har samlet her gjennom årene.",
            "Fuglene begynte å synge, og bølgene roet seg, og ga alt en følelse av fred og ro."
        ]
    },
    "Oromo": {
        "om": [
            "Galgala dheeraa lafa qilleensaa tajaajiluu fi aduu gaafa haxaa haxa’a jala gad hafuura, yaadaan kan qophaawaa seenaa waliin waan ta’e.",
            "Furnoon kan akka dammaqamuu eega jalqabu fi onganni akka qabamuu argachuu gammachuun tahuu."
        ]
    },
    "Pashto": {
        "ps": [
            "ما د ساحل په اوږدو کې اوږد ځغل وکړ، په داسې حال کې چې لمر ورو ورو د افق لاندې لاړ، او ما د ټولو یادونو په اړه فکر وکړ چې ما دلته د کلونو په اوږدو کې راټول کړي وو.",
            "پرندګان د ګانو پیل کړل او لندې خاموش شوې، چې هرڅه ته د سولې او سکون احساس ورکړ."
        ]
    },
    "Punjabi": {
        "pa": [
            "ਮੈਂ ਸੂਰੇਜ ਨੂੰ ਹੌਲੀ-ਹੌਲੀ ਹੋਰੀਜ਼ਨ ਦੇ ਹੇਠਾਂ ਡੁਬਦੇ ਦੇਖਦੇ ਹੋਏ ਸਮੁੰਦਰ ਦੇ ਕਿਨਾਰੇ ਲੰਬੀ ਸੈਰ ਕੀਤੀ ਅਤੇ ਸੋਚਿਆ ਕਿ ਮੈਂ ਇੱਥੇ ਸਾਲਾਂ ਵਿਚ ਇਕੱਠੇ ਕੀਤੇ ਸਾਰੇ ਯਾਦਾਂ ਬਾਰੇ ਸੋਚਿਆ।",
            "ਪੰਛੀਆਂ ਨੇ ਗਾਉਣਾ ਸ਼ੁਰੂ ਕੀਤਾ ਅਤੇ ਲਹਿਰਾਂ ਸ਼ਾਂਤ ਹੋ ਗਈਆਂ, ਜਿਸ ਨਾਲ ਸਾਰਿਆਂ ਨੂੰ ਅਮਨ ਅਤੇ ਸ਼ਾਂਤੀ ਦਾ ਅਹਿਸਾਸ ਹੋਇਆ।"
        ]
    },
    "Quechua": {
        "qu": [
            "Ñawi urqu t'ikraykuñamanta chikninqa, chisqayku runakuna wanuyniy, qhapaq ñawi kuska suyuy.",
            "Warmi puriykuypaq, quchañiqmi, taytakuy yachaykuna."
        ]
    },
    "Romanian": {
        "ro": [
            "Am făcut o lungă plimbare pe plajă în timp ce soarele cobora încet sub orizont și m-am gândit la toate amintirile pe care le-am adunat aici de-a lungul anilor.",
            "Păsările au început să cânte și valurile s-au liniștit, oferind totului un sentiment de pace și liniște."
        ]
    },
    "Russian": {
        "ru": [
            "Я совершил долгую прогулку по пляжу, пока солнце медленно садилось за горизонт, и думал обо всех воспоминаниях, которые я накопил здесь за эти годы.",
            "Птицы начали петь, и волны успокоились, придавая всему ощущение мира и покоя."
        ]
    },
    "Samoan": {
        "sm": [
            "Na ou faia se savaliga umi i le matafaga i le taimi o le la e slowly malie i lalo o le horison, ma ou manatu i uma i le taunuʻuga na ou aofia iinei i tausaga.",
            "O le fa'amalie e amata ona to'afa ma fa'ata'ita'iga e fa'amalie, e fa'ataga ai mea uma i se lagona o le filemu ma le susu."
        ]
    },
    "Serbo-Croatian": {
        "sh": [
            "Išao sam na dugu šetnju obalom plaže dok je sunce polako zalazilo ispod horizonta i razmišljao o svim uspomenama koje sam prikupio ovde tokom godina.",
            "Ptice su počele da pevaju i talasi su se smirili, dajući svemu osećaj mira i tišine."
        ]
    },
    "Swahili": {
        "sw": [
            "Nilifanya matembezi marefu kando ya pwani wakati jua lilipokuwa likitua polepole chini ya upeo wa macho, na nikafikiria kuhusu kumbukumbu zote nilizokusanya hapa kwa miaka mingi.",
            "Ndege walianza kuimba na mawimbi yakapungua, ikitoa kila kitu hisia ya amani na utulivu."
        ]
    },
    "Sundanese": {
        "su": [
            "Kuring ngalakukeun leumpang panjang di pantai nalika panonpoé sacara laun turun di handap cakrawala, sareng kuring mikirkeun sagala kenangan anu parantos kuring kumpulkeun di dieu salami taun-taun.",
            "Manuk-manuk mimiti nyanyi sareng ombak-ombak tenang, masihan sakabehna rasa damai sareng ketenangan."
        ]
    },
    "Swedish": {
        "sv": [
            "Jag tog en lång promenad längs stranden medan solen långsamt gick ner under horisonten, och jag tänkte på alla minnen jag har samlat här genom åren.",
            "Fåglarna började sjunga och vågorna lugnade sig, vilket gav allt en känsla av fred och ro."
        ]
    },
    "Tagalog": {
        "tl": [
            "Naglakad ako ng mahaba sa tabing-dagat habang ang araw ay dahan-dahang lumulubog sa ilalim ng horizon, at iniisip ko ang lahat ng mga alaala na aking naipon dito sa mga taon.",
            "Nagsimulang kumanta ang mga ibon at humupa ang mga alon, na nagbigay sa lahat ng pakiramdam ng kapayapaan at katahimikan."
        ]
    },
    "Tamil": {
        "ta": [
            "சூரியன் நிலையின் கீழே மெதுவாக கீழே செல்கின்றபோது, கடற்கரையில் நீண்ட நடைபயணம் செய்தேன், மற்றும் நான் இங்கு பல வருடங்களுக்கு சேகரித்த அனைத்து நினைவுகளைப் பற்றியதைப் பற்றிக் கவனித்தேன்.",
            "பறவைகள் பாட ஆரம்பித்தன, மற்றும் அலைகள் அமைதியாகக் கிடந்தன, இது ஒவ்வொன்றுக்கும் அமைதி மற்றும் அமைதியின் உணர்வை அளித்தது."
        ]
    },
    "Tajik": {
        "tg": [
            "Ман дар соҳили баҳр як сафари тӯлонӣ анҷом додам, дар ҳоле ки офтоб ба тадриҷ зери нишебии гармии соя мерафт, ва ман ба ҳамаи ёдгориҳое, ки ман дар ин ҷо дар тӯли солҳо ҷамъ оварда будам, фикр кардам.",
            "Паррандагон ба овоз оварданд ва мавҷҳо ором шуданд, ки ба ҳама эҳсоси осоиштагӣ ва осоишро бахшид."
        ]
    },
    "Telugu": {
        "te": [
            "సూర్యుడు ఆఫిజన్ కింద క్షీణిస్తున్నప్పుడు, నేను ముద్రగని సవాలు చేశాను మరియు సంవత్సరాలుగా నేను ఇక్కడ సేకరించిన అన్ని జ్ఞాపకాలను గుర్తు చేసాను.",
            "పక్షులు పాడడం మొదలుపెట్టాయి మరియు అలలు మెల్లగా పోయాయి, అందరికీ శాంతి మరియు ప్రశాంతత యొక్క అనుభూతిని ఇచ్చాయి."
        ]
    },
    "Thai": {
        "th": [
            "ฉันเดินเล่นนาน ๆ ริมชายหาด ขณะที่ดวงอาทิตย์ค่อย ๆ ลับขอบฟ้า และคิดถึงความทรงจำทั้งหมดที่ฉันได้สะสมไว้ที่นี่ตลอดหลายปีที่ผ่านมา",
            "นกเริ่มร้องเพลงและคลื่นสงบลง ทำให้ทุกสิ่งรู้สึกถึงความสงบและความสงบสุข"
        ]
    },
    "Turkish": {
        "tr": [
            "Güneş ufkun altına yavaşça batarken plajda uzun bir yürüyüş yaptım ve yıllar içinde burada biriktirdiğim tüm anıları düşündüm.",
            "Kuşlar şarkı söylemeye başladı ve dalgalar sakinleşti, her şeye huzur ve dinginlik hissi verdi."
        ]
    },
    "Urdu": {
        "ur": [
            "میں ساحل پر لمبے راستے پر چلتا رہا، سورج آہستہ آہستہ افق کی طرف جا رہا تھا، اور میں نے یہاں سالوں کے دوران جمع کی گئی تمام یادوں کے بارے میں سوچا۔",
            "پرندے گانا شروع ہوگئے اور لہریں پر سکون ہو گئیں، سب کو سکون اور آرام کی حس دی۔"
        ]
    },
    "Ukrainian": {
        "uk": [
            "Я зробив довгу прогулянку пляжем, поки сонце повільно опускалося за горизонт, і думав про всі спогади, які я зібрав тут протягом років.",
            "Птахи почали співати, а хвилі заспокоїлися, надаючи всьому відчуття спокою і умиротворення."
        ]
    },
    "Uzbek": {
        "uz": [
            "Men plyaj bo'ylab uzoq yurish qildim, quyosh sekinlik bilan ufqqa tushayotgan vaqtda, va men bu erda yillar davomida to'plagan barcha xotiralarni o'yladim.",
            "Qushlar qo'shiq ayta boshladilar va to'lqinlar tinchlandi, barchaga tinchlik va osoyishtalik hissini berdilar."
        ]
    },
    "Vietnamese": {
        "vi": [
            "Tôi đã đi dạo dài dọc theo bãi biển trong khi mặt trời từ từ lặn xuống dưới chân trời và suy nghĩ về tất cả những kỷ niệm mà tôi đã tích lũy được ở đây trong nhiều năm qua.",
            "Những con chim bắt đầu hát và những con sóng trở nên yên lặng, mang đến cho tất cả mọi thứ cảm giác bình yên và tĩnh lặng."
        ]
    },
    "Wolof": {
        "wo": [
            "J'ai fait une longue promenade sur la plage pendant que le soleil se couchait lentement sous l'horizon, et j'ai pensé à tous les souvenirs que j'ai accumulés ici au fil des ans.",
            "Les oiseaux ont commencé à chanter et les vagues se sont calmées, apportant à tout un sentiment de paix et de tranquillité."
        ]
    },
    "Xhosa": {
        "xh": [
            "Ndihambe ibhude elide ngasemlanjeni ngelixa ilanga lihlala kancinci phantsi komphosa, ndacinga ngazo zonke izikhumbuzo endizibambileyo apha kwiminyaka.",
            "Izinyoni zaqala ukuvuma kwaye amagagasi athule, ekhupha yonke into umoya wokuthula nokuqonda."
        ]
    },
    "Yiddish": {
        "yi": [
            "איך האָב אַ לאַנג גאַנג נעבן דער ים געמאכט בעת דעם זון איז אין באַשיידן אונטערן ערד האָריזאָן, און איך האָב געדאַנקען וועגן אַלע די ערינערונגען וואָס איך האָבן געזאַמלט דאָ איבער די יאָרן.",
            "די סינגערס האָבן אָנגעהויבן צו זינגן און די לויפן האָבן זיך געשווינד, געגעבן אַלען אַן ערפאַרונג פון שלום און שטילקייט."
        ]
    },
    "Yoruba": {
        "yo": [
            "Mo ṣe irin-ajo gigun ni etí okun nigba ti oorun n lọ sẹ́gbẹ̀ẹ́ ìkànsí, àti pe mo rò nípa gbogbo àwọn ìrántí tí mo ti kó jọ níbí nípasẹ̀ àwọn ọdún.",
            "Awọn ẹyẹ bẹ̀rẹ̀ sí kọ orin ati awọn igbi omi dinku, fifun gbogbo nkan ni iriri ti alaafia ati ìkànsí."
        ]
    },
    "Chinese": {
        "zh": [
            "我在海滩上长时间散步,太阳缓缓落下地平线时,我思考了这些年来在这里积累的所有回忆。",
            "鸟儿开始歌唱,海浪变得平静,为一切带来了和平与宁静的感觉。"
        ]
    },
    "Zulu": {
        "zu": [
            "Ngihambe ibanga elide eceleni kolwandle ngesikhathi ilanga lihamba kancane phansi komkhawulo, ngacabanga ngazo zonke izinkumbulo engizibhalile lapha eminyakeni edlule.",
            "Izinyoni zaqala ukuvuma futhi amagagasi athule, okwenza yonke into ibe nomuzwa wokuthula nokuthula."
        ]
    }
}

# Mapping language names to their codes
languages = {name: code for name, codes in language_map.items() for code in codes}

# Sidebar for Language Selection
st.sidebar.title("Language Selection")

# Selecting the "Translate From" language
from_language_name = st.sidebar.selectbox("Translate From", list(language_map.keys()))
from_language_code = next(iter(language_map[from_language_name].keys()))

# Logic to handle translation direction
if from_language_name == 'English':
    to_language_name = st.sidebar.selectbox(
        "Translate To", 
        [name for name in language_map.keys() if name != 'English']
    )
else:
    to_language_name = st.sidebar.selectbox(
        "Translate To", 
        ['English'] + [name for name in language_map.keys() if name != from_language_name]
    )

# Get the corresponding language code for the selected "Translate To" language
to_language_code = next(iter(language_map[to_language_name].keys()))

# Select model
model = st.sidebar.selectbox(
    "Choose the pretrained model",
    ["m2m100_1.2B"],
    help="For more info about the models visit: https://sparknlp.org/models"
)

# Display the Selected Language and Sentence
st.write(f"**Translating From:** {from_language_name} ({from_language_code}) **To:** {to_language_name} ({to_language_code})")

# Reference Notebook Link in Sidebar
link= """<a href="https://colab.research.google.com/github/JohnSnowLabs/spark-nlp-workshop/blob/master/tutorials/streamlit_notebooks/TRANSLATION_MARIAN.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg" style="zoom: 1.3" alt="Open In Colab"/></a>"""
st.sidebar.markdown('Reference notebook:')
st.sidebar.markdown(link, unsafe_allow_html=True)

# Load Sample Texts for the "Translate From" language
examples = language_map[from_language_name][from_language_code]

selected_text = st.selectbox("Select a Sample Text", examples)
custom_input = st.text_input("Try it for yourself!")

if custom_input:
    selected_text = custom_input

# Display the Selected or Entered Text
st.subheader('Selected Text')
st.write(selected_text)

# Perform Translation and Display the Result
st.subheader("Translation Result")

spark = init_spark()
pipeline = create_pipeline(model, from_language_code, to_language_code)
output = fit_data(pipeline, selected_text)

res = "".join(output[0][0])
HTML_WRAPPER = """<div class="scroll entities" style="overflow-x: auto; border: 1px solid #e6e9ef; border-radius: 0.25rem; padding: 1rem; margin-bottom: 2.5rem; white-space:pre-wrap">{}</div>"""
st.markdown(HTML_WRAPPER.format(res), unsafe_allow_html=True)