@@ -46,6 +46,7 @@ const languages = [
4646 i18nName : "اردو" ,
4747 direction : "rtl" ,
4848 fontFamily : "'Kawkab Mono'" ,
49+ toEnglishDict : "'languages/ur/ur_native.lang.yaml'" ,
4950 style : {
5051 direction : "rtl"
5152 }
@@ -57,6 +58,8 @@ const languages = [
5758 code2 : "hi" ,
5859 name : "Hindi" ,
5960 i18nName : "Hindi" ,
61+ fontFamily : "'Hack', 'Courier New', monospaced" ,
62+ toEnglishDict : "'languages/hi/hi_native.lang.yaml'" ,
6063 } ,
6164 {
6265 id : "EN" ,
@@ -65,7 +68,7 @@ const languages = [
6568 code2 : "en" ,
6669 name : "English" ,
6770 i18nName : "English" ,
68- fontFamily : "'Hack', 'Courier New', monospaced"
71+ fontFamily : "'Hack', 'Courier New', monospaced" ,
6972 }
7073]
7174
@@ -400,6 +403,18 @@ export default function Home() {
400403 } }
401404 />
402405 </ div >
406+
407+ < button style = { {
408+ opacity : 0.45
409+ } } onClick = { ( ) => {
410+ setTargetLanguage ( sourceLanguage ) ;
411+ setSourceLanguage ( targetLanguage ) ;
412+ var element = document . getElementById ( "python-code-editor2" ) ;
413+ setCode ( element . innerHTML . replaceAll ( "<br>" , "\n" ) . replaceAll ( " " , " " ) )
414+ } } >
415+ ⇔
416+ </ button >
417+
403418 < div
404419 style = { {
405420 flex : 1 ,
@@ -556,7 +571,7 @@ packages = [
556571 overflowY : "auto" ,
557572 maxHeight : "300px" ,
558573 padding : "12px 18px 0px" ,
559- } } key = { code } >
574+ } } key = { code + "_" + sourceLanguage . id + "_" + targetLanguage . id } >
560575{ `
561576from urdupython import (run_module, SCRIPTDIR);
562577from js import document;
@@ -565,34 +580,34 @@ import sys;
565580
566581original_code = """${ code . toString ( ) } """;
567582with open('file', 'w') as sys.stdout:
568- english_code = run_module(
583+ english_code = ${ sourceLanguage . id === "EN" ? `original_code;` : ` run_module(
569584 mode="lex",
570585 code=original_code,
571586 args={
572587 'translate': True,
573- 'dictionary': os.path.join(SCRIPTDIR, 'languages/ur/ur_native.lang.yaml' ),
588+ 'dictionary': os.path.join(SCRIPTDIR, ${ sourceLanguage . toEnglishDict } ),
574589 'reverse': False,
575590 'keep': False,
576591 'keep_only': False,
577592 'return': True,
578593 }
579- );
594+ );` }
580595 # display(english_code);
581- print = display
596+ print = display;
582597 exec(english_code);
583598
584- translated_code = run_module(
599+ translated_code = ${ targetLanguage . id === "EN" ? `english_code;` : ` run_module(
585600 mode="lex",
586601 code=english_code,
587602 args={
588603 'translate': True,
589- 'dictionary': os.path.join(SCRIPTDIR, 'languages/ur/ur_native.lang.yaml' ),
590- 'reverse': False ,
604+ 'dictionary': os.path.join(SCRIPTDIR, ${ targetLanguage . toEnglishDict } ),
605+ 'reverse': True ,
591606 'keep': False,
592607 'keep_only': False,
593608 'return': True,
594609 }
595- );
610+ );` }
596611 # display(translated_code)
597612 # code = code.replace("print", "display");
598613 element = document.getElementById("python-code-editor2");
0 commit comments