urdu-text-utils 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -507,57 +507,817 @@ function highlightUrdu(text, query, wrap = (m) => `<mark>${m}</mark>`) {
507
507
  return out;
508
508
  }
509
509
 
510
- // src/transliterate.ts
510
+ // src/dictionary.ts
511
511
  var WORD_DICTIONARY = {
512
+ // ---- pronouns, determiners, question words ----
513
+ "\u0645\u06CC\u06BA": "mein",
514
+ "\u06C1\u0645": "hum",
515
+ "\u062A\u0645": "tum",
512
516
  "\u0622\u067E": "aap",
517
+ "\u0648\u06C1": "woh",
518
+ "\u06CC\u06C1": "yeh",
519
+ "\u0645\u06CC\u0631\u0627": "mera",
520
+ "\u0645\u06CC\u0631\u06CC": "meri",
521
+ "\u0645\u06CC\u0631\u06D2": "mere",
522
+ "\u06C1\u0645\u0627\u0631\u0627": "hamara",
523
+ "\u06C1\u0645\u0627\u0631\u06CC": "hamari",
524
+ "\u062A\u0645\u06C1\u0627\u0631\u0627": "tumhara",
525
+ "\u062A\u0645\u06C1\u0627\u0631\u06CC": "tumhari",
513
526
  "\u0622\u067E\u06A9\u0627": "aapka",
527
+ "\u0622\u067E\u06A9\u06CC": "aapki",
528
+ "\u0627\u0633": "is",
529
+ "\u0627\u0646": "un",
530
+ "\u0627\u067E\u0646\u0627": "apna",
531
+ "\u0627\u067E\u0646\u06CC": "apni",
532
+ "\u062E\u0648\u062F": "khud",
533
+ "\u06A9\u0648\u0646": "kaun",
534
+ "\u06A9\u06CC\u0627": "kya",
535
+ "\u06A9\u06C1\u0627\u06BA": "kahan",
536
+ "\u06A9\u0628": "kab",
537
+ "\u06A9\u06CC\u0648\u06BA": "kyun",
538
+ "\u06A9\u06CC\u0633\u06D2": "kaisay",
539
+ "\u06A9\u06CC\u0633\u0627": "kaisa",
540
+ "\u06A9\u062A\u0646\u0627": "kitna",
541
+ "\u06A9\u062A\u0646\u06CC": "kitni",
542
+ "\u062C\u0648": "jo",
543
+ "\u062C\u0633": "jis",
544
+ "\u0633\u0628": "sab",
545
+ "\u06A9\u0648\u0626\u06CC": "koi",
546
+ "\u06A9\u0686\u06BE": "kuch",
547
+ "\u06C1\u0631": "har",
548
+ // ---- function words ----
514
549
  "\u0627\u0648\u0631": "aur",
515
- "\u0627\u06CC\u06A9": "aik",
516
- "\u0627\u062D\u0645\u062F": "ahmed",
517
- "\u0627\u0686\u06BE\u0627": "acha",
518
- "\u0628\u06C1\u062A": "bohat",
519
- "\u067E\u0627\u06A9\u0633\u062A\u0627\u0646": "pakistan",
520
- "\u067E\u0627\u0646\u06CC": "paani",
550
+ "\u06CC\u0627": "ya",
551
+ "\u0627\u06AF\u0631": "agar",
552
+ "\u0644\u06CC\u06A9\u0646": "lekin",
553
+ "\u0645\u06AF\u0631": "magar",
554
+ "\u062A\u0648": "to",
555
+ "\u0628\u06BE\u06CC": "bhi",
556
+ "\u0646\u06C1": "na",
557
+ "\u0646\u06C1\u06CC\u06BA": "nahi",
558
+ "\u0645\u062A": "mat",
559
+ "\u06A9\u0627": "ka",
560
+ "\u06A9\u06CC": "ki",
561
+ "\u06A9\u06D2": "ke",
562
+ "\u06A9\u0648": "ko",
563
+ "\u0646\u06D2": "ne",
564
+ "\u0633\u06D2": "se",
521
565
  "\u067E\u0631": "par",
522
- "\u067E\u06C1\u0644\u0627": "pehla",
523
- "\u062A\u0645": "tum",
566
+ "\u062A\u06A9": "tak",
567
+ "\u0644\u06CC\u06D2": "liye",
568
+ "\u0633\u0627\u062A\u06BE": "sath",
569
+ "\u0628\u063A\u06CC\u0631": "baghair",
570
+ "\u0648\u062C\u06C1": "wajah",
571
+ "\u0637\u0631\u062D": "tarah",
572
+ "\u0637\u0631\u0641": "taraf",
573
+ "\u0628\u0627\u0631\u06D2": "baray",
574
+ "\u0628\u0639\u062F": "baad",
575
+ "\u067E\u06C1\u0644\u06D2": "pehlay",
576
+ "\u062F\u0648\u0631\u0627\u0646": "doran",
577
+ "\u062F\u0631\u0645\u06CC\u0627\u0646": "darmiyan",
578
+ // ---- place and direction ----
579
+ "\u06CC\u06C1\u0627\u06BA": "yahan",
580
+ "\u0648\u06C1\u0627\u06BA": "wahan",
581
+ "\u0633\u0627\u0645\u0646\u06D2": "samnay",
582
+ "\u067E\u06CC\u0686\u06BE\u06D2": "peechay",
583
+ "\u0622\u06AF\u06D2": "agay",
584
+ "\u0627\u0648\u067E\u0631": "oopar",
585
+ "\u0646\u06CC\u0686\u06D2": "neechay",
586
+ "\u0627\u0646\u062F\u0631": "andar",
587
+ "\u0628\u0627\u06C1\u0631": "bahar",
588
+ "\u067E\u0627\u0633": "paas",
589
+ "\u062F\u0648\u0631": "door",
590
+ "\u0642\u0631\u06CC\u0628": "qareeb",
591
+ // ---- to be, and tense auxiliaries ----
592
+ "\u06C1\u06D2": "hai",
593
+ "\u06C1\u06CC\u06BA": "hain",
594
+ "\u06C1\u0648\u06BA": "hoon",
595
+ "\u06C1\u0648": "ho",
524
596
  "\u062A\u06BE\u0627": "tha",
525
597
  "\u062A\u06BE\u06CC": "thi",
526
- "\u062D\u0627\u0644": "haal",
527
- "\u062E\u0627\u0646": "khan",
528
- "\u062E\u0648\u0628\u0635\u0648\u0631\u062A": "khoobsurat",
529
- "\u062F\u0646": "din",
530
- "\u0631\u0627\u062A": "raat",
531
- "\u0632\u06CC\u062F": "zaid",
532
- "\u0633\u06D2": "se",
533
- "\u0634\u06C1\u0631": "shehar",
534
- "\u0639\u0644\u06CC": "ali",
535
- "\u06A9\u0627": "ka",
536
- "\u06A9\u062A\u0627\u0628": "kitaab",
537
- "\u06A9\u0631": "kar",
598
+ "\u062A\u06BE\u06D2": "thay",
599
+ "\u062A\u06BE\u06CC\u06BA": "thein",
600
+ "\u06C1\u0648\u06AF\u0627": "hoga",
601
+ "\u06C1\u0648\u06AF\u06CC": "hogi",
602
+ "\u06C1\u0648\u0646\u0627": "hona",
603
+ "\u06C1\u0648\u0627": "hua",
604
+ "\u06C1\u0648\u0626\u06CC": "hui",
605
+ "\u06C1\u0648\u0626\u06D2": "hue",
606
+ // ---- common verbs ----
538
607
  "\u06A9\u0631\u0646\u0627": "karna",
539
- "\u06A9\u06D2": "ke",
540
- "\u06A9\u06CC": "ki",
541
- "\u06A9\u06CC\u0627": "kya",
542
- "\u06A9\u06CC\u0633\u06D2": "kaisay",
608
+ "\u06A9\u0631\u062A\u0627": "karta",
609
+ "\u06A9\u0631\u062A\u06CC": "karti",
610
+ "\u06A9\u0631\u062A\u06D2": "karte",
611
+ "\u06A9\u0631\u06CC\u06BA": "karain",
612
+ "\u06A9\u0631\u0648": "karo",
613
+ "\u06A9\u0631": "kar",
614
+ "\u062C\u0627\u0646\u0627": "jana",
615
+ "\u062C\u0627\u062A\u0627": "jata",
616
+ "\u062C\u0627\u062A\u06CC": "jati",
617
+ "\u062C\u0627\u062A\u06D2": "jate",
618
+ "\u062C\u0627\u0626\u06D2": "jaye",
619
+ "\u062C\u0627\u0624": "jao",
620
+ "\u06AF\u06CC\u0627": "gaya",
621
+ "\u06AF\u0626\u06CC": "gayi",
622
+ "\u06AF\u0626\u06D2": "gaye",
623
+ "\u0622\u0646\u0627": "aana",
624
+ "\u0622\u062A\u0627": "aata",
625
+ "\u0622\u062A\u06CC": "aati",
626
+ "\u0622\u06CC\u0627": "aaya",
627
+ "\u0622\u0626\u06CC": "aayi",
628
+ "\u062F\u06CC\u0646\u0627": "dena",
629
+ "\u062F\u06CC\u0627": "diya",
630
+ "\u062F\u06D2": "de",
631
+ "\u062F\u0648": "do",
632
+ "\u0644\u06CC\u0646\u0627": "lena",
633
+ "\u0644\u06CC\u0627": "liya",
634
+ "\u0644\u06D2": "le",
635
+ "\u06A9\u06C1\u0646\u0627": "kehna",
636
+ "\u06A9\u06C1\u0627": "kaha",
637
+ "\u06A9\u06C1\u062A\u0627": "kehta",
638
+ "\u06A9\u06C1\u062A\u06D2": "kehte",
639
+ "\u062F\u06CC\u06A9\u06BE\u0646\u0627": "dekhna",
640
+ "\u062F\u06CC\u06A9\u06BE\u0627": "dekha",
641
+ "\u062F\u06CC\u06A9\u06BE\u0648": "dekho",
642
+ "\u062F\u06CC\u06A9\u06BE\u062A\u0627": "dekhta",
643
+ "\u0633\u0646\u0646\u0627": "sunna",
644
+ "\u0633\u0646\u0627": "suna",
645
+ "\u0633\u0646\u0648": "suno",
646
+ "\u0628\u0648\u0644\u0646\u0627": "bolna",
647
+ "\u0628\u0648\u0644\u0627": "bola",
648
+ "\u067E\u0691\u06BE\u0646\u0627": "parhna",
649
+ "\u067E\u0691\u06BE\u0627": "parha",
650
+ "\u067E\u0691\u06BE\u062A\u0627": "parhta",
651
+ "\u0644\u06A9\u06BE\u0646\u0627": "likhna",
652
+ "\u0644\u06A9\u06BE\u0627": "likha",
653
+ "\u0633\u0645\u062C\u06BE\u0646\u0627": "samajhna",
654
+ "\u0633\u0645\u062C\u06BE\u0627": "samjha",
655
+ "\u0633\u0645\u062C\u06BE": "samajh",
656
+ "\u062C\u0627\u0646\u0646\u0627": "janna",
657
+ "\u062C\u0627\u0646\u062A\u0627": "janta",
658
+ "\u062C\u0627\u0646\u062A\u06D2": "jante",
659
+ "\u0645\u0639\u0644\u0648\u0645": "maloom",
660
+ "\u0686\u0627\u06C1\u0646\u0627": "chahna",
661
+ "\u0686\u0627\u06C1\u062A\u0627": "chahta",
662
+ "\u0686\u0627\u06C1\u06CC\u06D2": "chahiye",
663
+ "\u0633\u06A9\u0646\u0627": "sakna",
664
+ "\u0633\u06A9\u062A\u0627": "sakta",
665
+ "\u0633\u06A9\u062A\u06CC": "sakti",
666
+ "\u0633\u06A9\u062A\u06D2": "sakte",
667
+ "\u0631\u06C1\u0646\u0627": "rehna",
668
+ "\u0631\u06C1\u0627": "raha",
669
+ "\u0631\u06C1\u06CC": "rahi",
670
+ "\u0631\u06C1\u06D2": "rahe",
671
+ "\u0631\u06C1\u062A\u0627": "rehta",
672
+ "\u0628\u0646\u0646\u0627": "banna",
673
+ "\u0628\u0646\u0627\u0646\u0627": "banana",
674
+ "\u0628\u0646\u0627\u06CC\u0627": "banaya",
675
+ "\u0628\u0646\u0627": "bana",
676
+ "\u0645\u0644\u0646\u0627": "milna",
677
+ "\u0645\u0644\u0627": "mila",
678
+ "\u0645\u0644\u062A\u0627": "milta",
679
+ "\u0645\u0644\u06CC": "mili",
680
+ "\u06A9\u06BE\u0627\u0646\u0627": "khana",
681
+ "\u06A9\u06BE\u0627\u06CC\u0627": "khaya",
682
+ "\u067E\u06CC\u0646\u0627": "peena",
683
+ "\u067E\u06CC\u0627": "piya",
684
+ "\u0633\u0648\u0646\u0627": "sona",
685
+ "\u0627\u0679\u06BE\u0646\u0627": "uthna",
686
+ "\u0628\u06CC\u0679\u06BE\u0646\u0627": "baithna",
687
+ "\u0628\u06CC\u0679\u06BE\u0648": "baitho",
688
+ "\u0686\u0644\u0646\u0627": "chalna",
689
+ "\u0686\u0644\u0627": "chala",
690
+ "\u0686\u0644\u0648": "chalo",
691
+ "\u062F\u0648\u0691\u0646\u0627": "daurna",
692
+ "\u0628\u06BE\u0627\u06AF\u0646\u0627": "bhagna",
693
+ "\u0644\u0627\u0646\u0627": "lana",
694
+ "\u0644\u0627\u06CC\u0627": "laya",
695
+ "\u0631\u06A9\u06BE\u0646\u0627": "rakhna",
696
+ "\u0631\u06A9\u06BE\u0627": "rakha",
697
+ "\u0645\u0627\u0646\u06AF\u0646\u0627": "mangna",
698
+ "\u067E\u0648\u0686\u06BE\u0646\u0627": "poochna",
699
+ "\u067E\u0648\u0686\u06BE\u0627": "poocha",
700
+ "\u0628\u062A\u0627\u0646\u0627": "batana",
701
+ "\u0628\u062A\u0627\u06CC\u0627": "bataya",
702
+ "\u0628\u062A\u0627\u0624": "batao",
703
+ "\u06A9\u06BE\u0648\u0644\u0646\u0627": "kholna",
704
+ "\u06A9\u06BE\u0644\u0627": "khula",
705
+ "\u0645\u0631\u0646\u0627": "marna",
706
+ "\u062C\u06CC\u0646\u0627": "jeena",
707
+ // Oblique infinitives, extremely common before postpositions (کرنے کے لیے).
708
+ "\u06A9\u0631\u0646\u06D2": "karne",
709
+ "\u062C\u0627\u0646\u06D2": "jane",
710
+ "\u06C1\u0648\u0646\u06D2": "hone",
711
+ "\u062F\u06CC\u0646\u06D2": "dene",
712
+ "\u0644\u06CC\u0646\u06D2": "lene",
713
+ "\u06A9\u06C1\u0646\u06D2": "kehne",
714
+ "\u0631\u06C1\u0646\u06D2": "rehne",
715
+ "\u062F\u06CC\u06A9\u06BE\u0646\u06D2": "dekhne",
716
+ "\u067E\u0691\u06BE\u0646\u06D2": "parhne",
717
+ "\u0644\u06A9\u06BE\u0646\u06D2": "likhne",
718
+ "\u0648\u0627\u0644\u0627": "wala",
719
+ "\u0648\u0627\u0644\u06CC": "wali",
720
+ "\u0648\u0627\u0644\u06D2": "walay",
721
+ "\u062D\u0635\u06C1": "hissa",
722
+ "\u0634\u0631\u0648\u0639": "shuru",
723
+ "\u062E\u062A\u0645": "khatam",
724
+ "\u0628\u0646\u062F": "band",
725
+ "\u067E\u06CC\u062F\u0627": "paida",
726
+ // ---- people and society ----
727
+ "\u0622\u062F\u0645\u06CC": "aadmi",
728
+ "\u0639\u0648\u0631\u062A": "aurat",
543
729
  "\u0644\u0691\u06A9\u0627": "larka",
544
730
  "\u0644\u0691\u06A9\u06CC": "larki",
545
- "\u0644\u06CC\u06D2": "liye",
546
- "\u0645\u062D\u0645\u062F": "muhammad",
547
- "\u0645\u0636\u0645\u0648\u0646": "mazmoon",
731
+ "\u0628\u0686\u06C1": "bacha",
732
+ "\u0628\u0686\u06CC": "bachi",
733
+ "\u0628\u0686\u06D2": "bache",
734
+ "\u0645\u0627\u06BA": "maan",
735
+ "\u0628\u0627\u067E": "baap",
736
+ "\u0648\u0627\u0644\u062F": "walid",
737
+ "\u0648\u0627\u0644\u062F\u06C1": "walida",
738
+ "\u0628\u06BE\u0627\u0626\u06CC": "bhai",
739
+ "\u0628\u06C1\u0646": "behan",
740
+ "\u0628\u06CC\u0679\u0627": "beta",
741
+ "\u0628\u06CC\u0679\u06CC": "beti",
742
+ "\u0634\u0627\u062F\u06CC": "shaadi",
743
+ "\u0628\u06CC\u0648\u06CC": "biwi",
744
+ "\u0634\u0648\u06C1\u0631": "shauhar",
745
+ "\u062F\u0648\u0633\u062A": "dost",
746
+ "\u062F\u0634\u0645\u0646": "dushman",
747
+ "\u0627\u0633\u062A\u0627\u062F": "ustad",
748
+ "\u0688\u0627\u06A9\u0679\u0631": "doctor",
749
+ "\u0648\u06A9\u06CC\u0644": "wakeel",
750
+ "\u06A9\u0633\u0627\u0646": "kisan",
751
+ "\u0645\u0632\u062F\u0648\u0631": "mazdoor",
752
+ "\u0633\u067E\u0627\u06C1\u06CC": "sipahi",
753
+ "\u0641\u0648\u062C": "fauj",
754
+ "\u0635\u062F\u0631": "sadar",
755
+ "\u0648\u0632\u06CC\u0631": "wazeer",
756
+ "\u062D\u06A9\u0648\u0645\u062A": "hukumat",
757
+ "\u0639\u0648\u0627\u0645": "awam",
758
+ "\u0644\u0648\u06AF": "log",
759
+ "\u0627\u0646\u0633\u0627\u0646": "insan",
760
+ "\u0645\u0631\u06CC\u0636": "mareez",
761
+ // ---- places ----
762
+ "\u06AF\u06BE\u0631": "ghar",
763
+ "\u06A9\u0645\u0631\u06C1": "kamra",
764
+ "\u062F\u0631\u0648\u0627\u0632\u06C1": "darwaza",
765
+ "\u06A9\u06BE\u0691\u06A9\u06CC": "khirki",
766
+ "\u0686\u06BE\u062A": "chhat",
767
+ "\u062F\u06CC\u0648\u0627\u0631": "deewar",
768
+ "\u0645\u062F\u0631\u0633\u06C1": "madrasa",
769
+ "\u06C1\u0633\u067E\u062A\u0627\u0644": "hospital",
770
+ "\u062F\u06A9\u0627\u0646": "dukan",
771
+ "\u0628\u0627\u0632\u0627\u0631": "bazaar",
772
+ "\u0645\u0633\u062C\u062F": "masjid",
773
+ "\u0634\u06C1\u0631": "shehar",
774
+ "\u06AF\u0627\u0624\u06BA": "gaon",
548
775
  "\u0645\u0644\u06A9": "mulk",
549
- "\u0645\u06CC\u06BA": "mein",
550
- "\u0645\u06CC\u0631\u0627": "mera",
551
- "\u0645\u06CC\u0631\u06CC": "meri",
776
+ "\u062F\u0646\u06CC\u0627": "dunya",
777
+ "\u0631\u0627\u0633\u062A\u06C1": "rasta",
778
+ "\u0633\u0691\u06A9": "sarak",
779
+ "\u067E\u0644": "pul",
780
+ "\u0628\u0627\u063A": "bagh",
781
+ "\u0645\u06CC\u062F\u0627\u0646": "maidan",
782
+ "\u062F\u0641\u062A\u0631": "daftar",
783
+ "\u067E\u0627\u06A9\u0633\u062A\u0627\u0646": "pakistan",
784
+ // ---- English loanwords in everyday Urdu ----
785
+ // These matter most in the reverse direction: the rule engine reads "school"
786
+ // as s-ch-ool and produces سچول, so the pairing has to be explicit.
787
+ "\u0633\u06A9\u0648\u0644": "school",
788
+ "\u06A9\u0627\u0644\u062C": "college",
789
+ "\u06CC\u0648\u0646\u06CC\u0648\u0631\u0633\u0679\u06CC": "university",
790
+ "\u06A9\u0645\u067E\u06CC\u0648\u0679\u0631": "computer",
791
+ "\u0645\u0648\u0628\u0627\u0626\u0644": "mobile",
792
+ "\u0641\u0648\u0646": "phone",
793
+ "\u0627\u0646\u0679\u0631\u0646\u06CC\u0679": "internet",
794
+ "\u0645\u0627\u0631\u06A9\u06CC\u0679": "market",
795
+ "\u0627\u0633\u0679\u06CC\u0634\u0646": "station",
796
+ "\u0628\u0633": "bus",
797
+ "\u0679\u0631\u06CC\u0646": "train",
798
+ "\u0633\u0627\u0626\u06CC\u06A9\u0644": "cycle",
799
+ "\u06C1\u0648\u0679\u0644": "hotel",
800
+ "\u0627\u0646\u062C\u06CC\u0646\u0626\u0631": "engineer",
801
+ "\u067E\u0648\u0644\u06CC\u0633": "police",
802
+ // ---- time and weather ----
803
+ "\u062F\u0646": "din",
804
+ "\u0631\u0627\u062A": "raat",
805
+ "\u0635\u0628\u062D": "subah",
806
+ "\u0634\u0627\u0645": "shaam",
807
+ "\u062F\u0648\u067E\u06C1\u0631": "dopahar",
808
+ "\u0648\u0642\u062A": "waqt",
809
+ "\u06AF\u06BE\u0646\u0679\u06C1": "ghanta",
810
+ "\u06C1\u0641\u062A\u06C1": "hafta",
811
+ "\u0645\u06C1\u06CC\u0646\u06C1": "maheena",
812
+ "\u0633\u0627\u0644": "saal",
813
+ "\u0622\u062C": "aaj",
814
+ "\u06A9\u0644": "kal",
815
+ "\u067E\u0631\u0633\u0648\u06BA": "parson",
816
+ "\u0627\u0628\u06BE\u06CC": "abhi",
817
+ "\u0627\u0628": "ab",
818
+ "\u067E\u06BE\u0631": "phir",
819
+ "\u062A\u0628": "tab",
820
+ "\u062C\u0628": "jab",
821
+ "\u0645\u0648\u0633\u0645": "mausam",
822
+ "\u06AF\u0631\u0645\u06CC": "garmi",
823
+ "\u0633\u0631\u062F\u06CC": "sardi",
824
+ "\u0628\u0627\u0631\u0634": "barish",
825
+ // ہوا is both "hua" (happened) and "hawa" (wind/air). The auxiliary is far more
826
+ // frequent in prose, so it wins the forward direction; see ROMAN_VARIANTS for
827
+ // the reverse mapping of "hawa".
828
+ "\u062F\u06BE\u0648\u067E": "dhoop",
829
+ "\u0628\u0627\u062F\u0644": "badal",
830
+ "\u0628\u0631\u0641": "baraf",
831
+ "\u0622\u0633\u0645\u0627\u0646": "asman",
832
+ "\u0632\u0645\u06CC\u0646": "zameen",
833
+ "\u0633\u0648\u0631\u062C": "sooraj",
834
+ "\u0686\u0627\u0646\u062F": "chand",
835
+ "\u0633\u062A\u0627\u0631\u06C1": "sitara",
836
+ // ---- objects, food, transport ----
837
+ "\u06A9\u062A\u0627\u0628": "kitaab",
838
+ "\u0642\u0644\u0645": "qalam",
839
+ "\u06A9\u0627\u063A\u0630": "kaghaz",
840
+ "\u0645\u06CC\u0632": "mez",
841
+ "\u06A9\u0631\u0633\u06CC": "kursi",
842
+ "\u067E\u0627\u0646\u06CC": "paani",
843
+ "\u062F\u0648\u062F\u06BE": "doodh",
844
+ "\u0686\u0627\u0626\u06D2": "chai",
845
+ "\u0631\u0648\u0679\u06CC": "roti",
846
+ "\u0686\u0627\u0648\u0644": "chawal",
847
+ "\u06AF\u0648\u0634\u062A": "gosht",
848
+ "\u0633\u0628\u0632\u06CC": "sabzi",
849
+ "\u067E\u06BE\u0644": "phal",
850
+ "\u0622\u0645": "aam",
851
+ "\u0633\u06CC\u0628": "saib",
852
+ "\u06A9\u06CC\u0644\u0627": "kela",
853
+ "\u0627\u0646\u06AF\u0648\u0631": "angoor",
854
+ "\u0646\u0645\u06A9": "namak",
855
+ "\u0686\u06CC\u0646\u06CC": "cheeni",
856
+ "\u062A\u06CC\u0644": "tel",
857
+ "\u0627\u0646\u0688\u0627": "anda",
858
+ "\u0645\u0686\u06BE\u0644\u06CC": "machhli",
859
+ "\u0645\u0631\u063A\u06CC": "murghi",
860
+ "\u06AF\u0627\u0691\u06CC": "gaari",
861
+ "\u062C\u06C1\u0627\u0632": "jahaz",
862
+ "\u067E\u06CC\u0633\u06C1": "paisa",
863
+ "\u0631\u0648\u067E\u06CC\u06C1": "rupya",
864
+ "\u0646\u0648\u06A9\u0631\u06CC": "naukri",
865
+ "\u06A9\u0627\u0645": "kaam",
866
+ "\u06A9\u0627\u0631\u0648\u0628\u0627\u0631": "karobar",
867
+ "\u0642\u06CC\u0645\u062A": "qeemat",
868
+ "\u062A\u062D\u0641\u06C1": "tohfa",
869
+ "\u06A9\u067E\u0691\u0627": "kapra",
870
+ "\u062C\u0648\u062A\u0627": "joota",
871
+ "\u0679\u0648\u067E\u06CC": "topi",
872
+ "\u0686\u0627\u0628\u06CC": "chabi",
873
+ "\u06AF\u06BE\u0691\u06CC": "ghari",
874
+ "\u0628\u0633\u062A\u0631": "bistar",
875
+ "\u0635\u0627\u0628\u0646": "sabun",
876
+ // ---- feeling and abstraction ----
877
+ "\u0645\u062D\u0628\u062A": "mohabbat",
878
+ "\u067E\u06CC\u0627\u0631": "pyaar",
879
+ "\u062E\u0648\u0634\u06CC": "khushi",
880
+ "\u063A\u0645": "gham",
881
+ "\u062F\u06A9\u06BE": "dukh",
882
+ "\u0688\u0631": "dar",
883
+ "\u062E\u0648\u0641": "khauf",
884
+ "\u0627\u0645\u06CC\u062F": "umeed",
885
+ "\u06CC\u0642\u06CC\u0646": "yaqeen",
886
+ "\u0633\u0686": "sach",
887
+ "\u062C\u06BE\u0648\u0679": "jhoot",
888
+ "\u0627\u0646\u0635\u0627\u0641": "insaf",
889
+ "\u0638\u0644\u0645": "zulm",
890
+ "\u0639\u0632\u062A": "izzat",
891
+ "\u0634\u06A9\u0631\u06CC\u06C1": "shukriya",
892
+ "\u0645\u0639\u0627\u0641": "maaf",
893
+ "\u0645\u0639\u0627\u0641\u06CC": "maafi",
894
+ "\u062F\u0639\u0627": "dua",
895
+ "\u062E\u0648\u0627\u0628": "khwab",
896
+ "\u0632\u0646\u062F\u06AF\u06CC": "zindagi",
897
+ "\u0645\u0648\u062A": "maut",
898
+ "\u0635\u062D\u062A": "sehat",
899
+ "\u0628\u06CC\u0645\u0627\u0631\u06CC": "beemari",
900
+ "\u062F\u0648\u0627": "dawa",
901
+ "\u0637\u0627\u0642\u062A": "taqat",
902
+ "\u06A9\u0645\u0632\u0648\u0631\u06CC": "kamzori",
903
+ "\u0636\u0631\u0648\u0631\u062A": "zaroorat",
904
+ "\u0645\u062F\u062F": "madad",
905
+ "\u06A9\u0648\u0634\u0634": "koshish",
906
+ "\u06A9\u0627\u0645\u06CC\u0627\u0628\u06CC": "kamyabi",
907
+ "\u0646\u0627\u06A9\u0627\u0645\u06CC": "nakami",
908
+ "\u0641\u06CC\u0635\u0644\u06C1": "faisla",
909
+ "\u0631\u0627\u0626\u06D2": "raye",
910
+ "\u062E\u06CC\u0627\u0644": "khayal",
911
+ "\u0633\u0648\u0686": "soch",
912
+ // ---- knowledge, language, culture ----
913
+ "\u0639\u0644\u0645": "ilm",
914
+ "\u062A\u0639\u0644\u06CC\u0645": "taleem",
915
+ "\u0633\u0628\u0642": "sabaq",
916
+ "\u0627\u0645\u062A\u062D\u0627\u0646": "imtihan",
917
+ "\u0646\u062A\u06CC\u062C\u06C1": "nateeja",
918
+ "\u0645\u0633\u0626\u0644\u06C1": "masla",
919
+ "\u062D\u0644": "hal",
920
+ "\u0633\u0648\u0627\u0644": "sawal",
921
+ "\u062C\u0648\u0627\u0628": "jawab",
922
+ "\u0628\u0627\u062A": "baat",
923
+ "\u0628\u0627\u062A\u06CC\u06BA": "baatein",
924
+ "\u0632\u0628\u0627\u0646": "zuban",
925
+ "\u0644\u0641\u0638": "lafz",
552
926
  "\u0646\u0627\u0645": "naam",
553
- "\u0646\u06C1\u06CC\u06BA": "nahi",
554
- "\u0648\u06C1": "woh",
555
- "\u06C1\u06D2": "hai",
556
- "\u06C1\u06CC\u06BA": "hain",
557
- "\u06C1\u0648": "ho",
558
- "\u06C1\u0648\u06BA": "hoon",
559
- "\u06CC\u06C1": "yeh"
927
+ "\u062E\u0628\u0631": "khabar",
928
+ "\u06A9\u06C1\u0627\u0646\u06CC": "kahani",
929
+ "\u0645\u0636\u0645\u0648\u0646": "mazmoon",
930
+ "\u0634\u0639\u0631": "sher",
931
+ "\u063A\u0632\u0644": "ghazal",
932
+ "\u0627\u062F\u0628": "adab",
933
+ "\u062A\u0627\u0631\u06CC\u062E": "tareekh",
934
+ "\u062B\u0642\u0627\u0641\u062A": "saqafat",
935
+ "\u0645\u0648\u0633\u06CC\u0642\u06CC": "moseeqi",
936
+ "\u062A\u0635\u0648\u06CC\u0631": "tasweer",
937
+ "\u0631\u0646\u06AF": "rang",
938
+ "\u0622\u0648\u0627\u0632": "awaz",
939
+ // ---- religion ----
940
+ "\u0646\u0645\u0627\u0632": "namaz",
941
+ "\u0631\u0648\u0632\u06C1": "roza",
942
+ "\u0639\u06CC\u062F": "eid",
943
+ "\u0645\u0630\u06C1\u0628": "mazhab",
944
+ "\u0627\u0633\u0644\u0627\u0645": "islam",
945
+ "\u0627\u0644\u0644\u06C1": "allah",
946
+ "\u0631\u0633\u0648\u0644": "rasool",
947
+ "\u0646\u0628\u06CC": "nabi",
948
+ "\u0642\u0631\u0622\u0646": "quran",
949
+ "\u062F\u06CC\u0646": "deen",
950
+ "\u0627\u06CC\u0645\u0627\u0646": "imaan",
951
+ "\u062C\u0646\u062A": "jannat",
952
+ // ---- body ----
953
+ "\u062F\u0644": "dil",
954
+ "\u062F\u0645\u0627\u063A": "dimagh",
955
+ "\u062C\u0633\u0645": "jism",
956
+ "\u06C1\u0627\u062A\u06BE": "hath",
957
+ "\u067E\u0627\u0624\u06BA": "paon",
958
+ "\u0633\u0631": "sar",
959
+ "\u0622\u0646\u06A9\u06BE": "aankh",
960
+ "\u0622\u0646\u06A9\u06BE\u06CC\u06BA": "aankhein",
961
+ "\u06A9\u0627\u0646": "kaan",
962
+ "\u0646\u0627\u06A9": "naak",
963
+ "\u0645\u0646\u06C1": "munh",
964
+ "\u062F\u0627\u0646\u062A": "daant",
965
+ "\u0628\u0627\u0644": "baal",
966
+ "\u0686\u06C1\u0631\u06C1": "chehra",
967
+ // ---- adjectives ----
968
+ "\u0627\u0686\u06BE\u0627": "acha",
969
+ "\u0627\u0686\u06BE\u06CC": "achi",
970
+ "\u0628\u0631\u0627": "bura",
971
+ "\u0628\u0631\u06CC": "buri",
972
+ "\u0628\u0691\u0627": "bara",
973
+ "\u0628\u0691\u06CC": "bari",
974
+ "\u0686\u06BE\u0648\u0679\u0627": "chhota",
975
+ "\u0686\u06BE\u0648\u0679\u06CC": "chhoti",
976
+ "\u0646\u06CC\u0627": "naya",
977
+ "\u0646\u0626\u06CC": "nayi",
978
+ "\u067E\u0631\u0627\u0646\u0627": "purana",
979
+ "\u0644\u0645\u0628\u0627": "lamba",
980
+ "\u0645\u0648\u0679\u0627": "mota",
981
+ "\u067E\u062A\u0644\u0627": "patla",
982
+ "\u062A\u06CC\u0632": "tez",
983
+ "\u0622\u06C1\u0633\u062A\u06C1": "ahista",
984
+ "\u06AF\u0631\u0645": "garam",
985
+ "\u0679\u06BE\u0646\u0688\u0627": "thanda",
986
+ "\u0645\u06CC\u0679\u06BE\u0627": "meetha",
987
+ "\u06A9\u0691\u0648\u0627": "karwa",
988
+ "\u0635\u0627\u0641": "saaf",
989
+ "\u06AF\u0646\u062F\u0627": "ganda",
990
+ "\u062E\u0627\u0644\u06CC": "khali",
991
+ "\u0628\u06BE\u0631\u0627": "bhara",
992
+ "\u0645\u0634\u06A9\u0644": "mushkil",
993
+ "\u0622\u0633\u0627\u0646": "aasan",
994
+ "\u0636\u0631\u0648\u0631\u06CC": "zaroori",
995
+ "\u0645\u06A9\u0645\u0644": "mukammal",
996
+ "\u062A\u06CC\u0627\u0631": "tayyar",
997
+ "\u062E\u0648\u0634": "khush",
998
+ "\u0646\u0627\u0631\u0627\u0636": "naraz",
999
+ "\u067E\u0631\u06CC\u0634\u0627\u0646": "pareshan",
1000
+ "\u062A\u06BE\u06A9\u0627": "thaka",
1001
+ "\u0628\u06CC\u0645\u0627\u0631": "beemar",
1002
+ "\u0627\u0645\u06CC\u0631": "ameer",
1003
+ "\u063A\u0631\u06CC\u0628": "ghareeb",
1004
+ "\u0645\u0634\u06C1\u0648\u0631": "mashhoor",
1005
+ "\u062E\u0648\u0628\u0635\u0648\u0631\u062A": "khoobsurat",
1006
+ "\u0630\u06C1\u06CC\u0646": "zaheen",
1007
+ "\u0628\u06C1\u0627\u062F\u0631": "bahadur",
1008
+ "\u0633\u0633\u062A": "sust",
1009
+ "\u0645\u062D\u0646\u062A\u06CC": "mehnati",
1010
+ "\u0633\u0686\u0627": "sacha",
1011
+ "\u062C\u06BE\u0648\u0679\u0627": "jhoota",
1012
+ "\u067E\u06CC\u0627\u0631\u0627": "pyara",
1013
+ "\u0639\u062C\u06CC\u0628": "ajeeb",
1014
+ "\u062E\u0627\u0635": "khaas",
1015
+ "\u0639\u0627\u0645": "aam",
1016
+ // ---- numbers and ordinals ----
1017
+ "\u0627\u06CC\u06A9": "aik",
1018
+ "\u062A\u06CC\u0646": "teen",
1019
+ "\u0686\u0627\u0631": "char",
1020
+ "\u067E\u0627\u0646\u0686": "panch",
1021
+ "\u0686\u06BE": "chhe",
1022
+ "\u0633\u0627\u062A": "saat",
1023
+ "\u0622\u0679\u06BE": "aath",
1024
+ "\u0646\u0648": "nau",
1025
+ "\u062F\u0633": "das",
1026
+ "\u06AF\u06CC\u0627\u0631\u06C1": "gyarah",
1027
+ "\u0628\u0627\u0631\u06C1": "barah",
1028
+ "\u0628\u06CC\u0633": "bees",
1029
+ "\u067E\u0686\u0627\u0633": "pachas",
1030
+ "\u0633\u0648": "so",
1031
+ "\u06C1\u0632\u0627\u0631": "hazar",
1032
+ "\u0644\u0627\u06A9\u06BE": "lakh",
1033
+ "\u06A9\u0631\u0648\u0691": "karor",
1034
+ "\u067E\u06C1\u0644\u0627": "pehla",
1035
+ "\u062F\u0648\u0633\u0631\u0627": "dosra",
1036
+ "\u062A\u06CC\u0633\u0631\u0627": "teesra",
1037
+ "\u0622\u062E\u0631\u06CC": "aakhri",
1038
+ // ---- greetings and discourse markers ----
1039
+ "\u0633\u0644\u0627\u0645": "salam",
1040
+ "\u062E\u062F\u0627": "khuda",
1041
+ "\u062D\u0627\u0641\u0638": "hafiz",
1042
+ "\u0645\u06C1\u0631\u0628\u0627\u0646\u06CC": "meherbani",
1043
+ "\u0645\u0628\u0627\u0631\u06A9": "mubarak",
1044
+ "\u06C1\u0627\u06BA": "haan",
1045
+ "\u062C\u06CC": "ji",
1046
+ "\u0679\u06BE\u06CC\u06A9": "theek",
1047
+ "\u0628\u0627\u0644\u06A9\u0644": "bilkul",
1048
+ "\u0636\u0631\u0648\u0631": "zaroor",
1049
+ "\u0634\u0627\u06CC\u062F": "shayad",
1050
+ "\u0627\u06A9\u062B\u0631": "aksar",
1051
+ "\u06A9\u0628\u06BE\u06CC": "kabhi",
1052
+ "\u06C1\u0645\u06CC\u0634\u06C1": "hamesha",
1053
+ "\u062C\u0644\u062F\u06CC": "jaldi",
1054
+ "\u062F\u06CC\u0631": "der",
1055
+ "\u0622\u0631\u0627\u0645": "aaram",
1056
+ "\u062A\u06BE\u0648\u0691\u0627": "thora",
1057
+ "\u0632\u06CC\u0627\u062F\u06C1": "ziyada",
1058
+ "\u06A9\u0645": "kam",
1059
+ "\u0628\u06C1\u062A": "bohat",
1060
+ "\u0635\u0631\u0641": "sirf",
1061
+ "\u0648\u0627\u0642\u0639\u06CC": "waqai",
1062
+ // ---- more verbs ----
1063
+ "\u06A9\u06BE\u06CC\u0644\u0646\u0627": "khelna",
1064
+ "\u06A9\u06BE\u06CC\u0644\u062A\u0627": "khelta",
1065
+ "\u06C1\u0646\u0633\u0646\u0627": "hansna",
1066
+ "\u0631\u0648\u0646\u0627": "rona",
1067
+ "\u0688\u0631\u0646\u0627": "darna",
1068
+ "\u0628\u06BE\u0648\u0644\u0646\u0627": "bhoolna",
1069
+ "\u06CC\u0627\u062F": "yaad",
1070
+ "\u0633\u06CC\u06A9\u06BE\u0646\u0627": "seekhna",
1071
+ "\u0633\u06A9\u06BE\u0627\u0646\u0627": "sikhana",
1072
+ "\u067E\u06A9\u0627\u0646\u0627": "pakana",
1073
+ "\u062F\u06BE\u0648\u0646\u0627": "dhona",
1074
+ "\u067E\u06C1\u0646\u0646\u0627": "pehanna",
1075
+ "\u0627\u062A\u0627\u0631\u0646\u0627": "utarna",
1076
+ "\u0628\u06CC\u0686\u0646\u0627": "bechna",
1077
+ "\u062E\u0631\u06CC\u062F\u0646\u0627": "khareedna",
1078
+ "\u0628\u06BE\u06CC\u062C\u0646\u0627": "bhejna",
1079
+ "\u067E\u06C1\u0646\u0686\u0646\u0627": "pohanchna",
1080
+ "\u0646\u06A9\u0644\u0646\u0627": "nikalna",
1081
+ "\u06AF\u0631\u0646\u0627": "girna",
1082
+ "\u0627\u0679\u06BE\u0627\u0646\u0627": "uthana",
1083
+ "\u067E\u06A9\u0691\u0646\u0627": "pakarna",
1084
+ "\u0686\u06BE\u0648\u0691\u0646\u0627": "chhorna",
1085
+ "\u062A\u0648\u0691\u0646\u0627": "torna",
1086
+ "\u062C\u0648\u0691\u0646\u0627": "jorna",
1087
+ "\u06A9\u0627\u0679\u0646\u0627": "katna",
1088
+ // مارنا (to hit) and مرنا (to die) differ by one letter; keeping the long vowel
1089
+ // in "maarna" stops them collapsing into one reverse-direction target.
1090
+ "\u0645\u0627\u0631\u0646\u0627": "maarna",
1091
+ "\u0628\u0686\u0627\u0646\u0627": "bachana",
1092
+ "\u062C\u0644\u0627\u0646\u0627": "jalana",
1093
+ "\u0646\u0627\u0686\u0646\u0627": "nachna",
1094
+ "\u06AF\u0627\u0646\u0627": "gana",
1095
+ "\u0644\u0691\u0646\u0627": "larna",
1096
+ "\u062C\u06CC\u062A\u0646\u0627": "jeetna",
1097
+ "\u06C1\u0627\u0631\u0646\u0627": "haarna",
1098
+ "\u0686\u06BE\u067E\u0627\u0646\u0627": "chhupana",
1099
+ "\u0688\u06BE\u0648\u0646\u0688\u0646\u0627": "dhoondna",
1100
+ "\u0645\u0644\u0627\u0646\u0627": "milana",
1101
+ "\u0628\u062F\u0644\u0646\u0627": "badalna",
1102
+ "\u0631\u06A9\u0646\u0627": "rukna",
1103
+ "\u0627\u0691\u0646\u0627": "urna",
1104
+ "\u062A\u06CC\u0631\u0646\u0627": "tairna",
1105
+ // ---- adverbs and conjunctions ----
1106
+ "\u0641\u0648\u0631\u0627\u064B": "fauran",
1107
+ "\u062F\u0648\u0628\u0627\u0631\u06C1": "dobara",
1108
+ "\u06CC\u0642\u06CC\u0646\u0627\u064B": "yaqeenan",
1109
+ "\u062A\u0642\u0631\u06CC\u0628\u0627\u064B": "taqreeban",
1110
+ "\u0627\u0644\u0628\u062A\u06C1": "albatta",
1111
+ "\u0686\u0648\u0646\u06A9\u06C1": "chunkeh",
1112
+ "\u06A9\u06CC\u0648\u0646\u06A9\u06C1": "kyunkeh",
1113
+ "\u062A\u0627\u06A9\u06C1": "taakeh",
1114
+ "\u0648\u0631\u0646\u06C1": "warna",
1115
+ "\u0628\u0644\u06A9\u06C1": "balkeh",
1116
+ "\u062D\u0627\u0644\u0627\u0646\u06A9\u06C1": "halankeh",
1117
+ "\u0645\u062B\u0644\u0627\u064B": "maslan",
1118
+ "\u0628\u0639\u0636": "baaz",
1119
+ "\u062A\u0645\u0627\u0645": "tamam",
1120
+ "\u067E\u0648\u0631\u0627": "poora",
1121
+ "\u0622\u062F\u06BE\u0627": "aadha",
1122
+ "\u062F\u0648\u0646\u0648\u06BA": "donon",
1123
+ "\u062A\u06CC\u0646\u0648\u06BA": "teenon",
1124
+ "\u0633\u0627\u0631\u0627": "sara",
1125
+ "\u0628\u0627\u0642\u06CC": "baqi",
1126
+ // ---- news and public life, the densest vocabulary in Urdu media ----
1127
+ "\u0633\u06CC\u0627\u0633\u062A": "siyasat",
1128
+ "\u0627\u0644\u06CC\u06A9\u0634\u0646": "election",
1129
+ "\u0648\u0648\u0679": "vote",
1130
+ "\u067E\u0627\u0631\u0679\u06CC": "party",
1131
+ "\u0627\u0633\u0645\u0628\u0644\u06CC": "assembly",
1132
+ "\u0639\u062F\u0627\u0644\u062A": "adalat",
1133
+ "\u0642\u0627\u0646\u0648\u0646": "qanoon",
1134
+ "\u062C\u0631\u0645": "jurm",
1135
+ "\u0641\u0648\u062C\u06CC": "fauji",
1136
+ "\u062C\u0646\u06AF": "jang",
1137
+ "\u0627\u0645\u0646": "aman",
1138
+ "\u0645\u0639\u0627\u06C1\u062F\u06C1": "muahida",
1139
+ "\u0645\u0639\u06CC\u0634\u062A": "maeeshat",
1140
+ "\u062A\u062C\u0627\u0631\u062A": "tijarat",
1141
+ "\u0628\u062C\u0679": "budget",
1142
+ "\u062A\u0631\u0642\u06CC": "taraqqi",
1143
+ "\u0645\u0646\u0635\u0648\u0628\u06C1": "mansooba",
1144
+ "\u0627\u0639\u0644\u0627\u0646": "elaan",
1145
+ "\u0631\u067E\u0648\u0631\u0679": "report",
1146
+ "\u0628\u06CC\u0627\u0646": "bayan",
1147
+ "\u0627\u062C\u0644\u0627\u0633": "ijlas",
1148
+ "\u062F\u0648\u0631\u06C1": "dora",
1149
+ "\u0645\u0644\u0627\u0642\u0627\u062A": "mulaqat",
1150
+ "\u062A\u0642\u0631\u06CC\u0628": "taqreeb",
1151
+ "\u062A\u0642\u0631\u06CC\u0631": "taqreer",
1152
+ // ---- technology ----
1153
+ "\u0688\u06CC\u0679\u0627": "data",
1154
+ "\u0627\u06CC\u067E": "app",
1155
+ "\u067E\u0631\u0648\u06AF\u0631\u0627\u0645": "program",
1156
+ "\u0633\u0633\u0679\u0645": "system",
1157
+ "\u0635\u0627\u0631\u0641": "sarif",
1158
+ "\u0641\u0627\u0626\u0644": "file",
1159
+ "\u0679\u06CC\u06A9\u0646\u0627\u0644\u0648\u062C\u06CC": "technology",
1160
+ // ---- education ----
1161
+ "\u062C\u0645\u0627\u0639\u062A": "jamaat",
1162
+ "\u06A9\u0644\u0627\u0633": "class",
1163
+ "\u067E\u0631\u0686\u06C1": "parcha",
1164
+ "\u0646\u0645\u0628\u0631": "number",
1165
+ "\u0688\u06AF\u0631\u06CC": "degree",
1166
+ "\u0644\u0627\u0626\u0628\u0631\u06CC\u0631\u06CC": "library",
1167
+ "\u062A\u062D\u0642\u06CC\u0642": "tehqeeq",
1168
+ "\u0645\u0642\u0627\u0644\u06C1": "maqala",
1169
+ // ---- health ----
1170
+ "\u0628\u062E\u0627\u0631": "bukhar",
1171
+ "\u062F\u0631\u062F": "dard",
1172
+ "\u0632\u062E\u0645": "zakhm",
1173
+ "\u0639\u0644\u0627\u062C": "ilaj",
1174
+ "\u062E\u0648\u0646": "khoon",
1175
+ "\u06C1\u0688\u06CC": "haddi",
1176
+ "\u067E\u06CC\u0679": "pet",
1177
+ "\u06AF\u0644\u0627": "gala",
1178
+ // ---- colours ----
1179
+ "\u0633\u0641\u06CC\u062F": "safaid",
1180
+ "\u06A9\u0627\u0644\u0627": "kala",
1181
+ "\u0633\u0631\u062E": "surkh",
1182
+ "\u0646\u06CC\u0644\u0627": "neela",
1183
+ "\u06C1\u0631\u0627": "hara",
1184
+ "\u067E\u06CC\u0644\u0627": "peela",
1185
+ "\u0628\u06BE\u0648\u0631\u0627": "bhura",
1186
+ "\u06AF\u0644\u0627\u0628\u06CC": "gulabi",
1187
+ "\u0633\u0646\u06C1\u0631\u06CC": "sunehri",
1188
+ // ---- animals ----
1189
+ "\u06A9\u062A\u0627": "kutta",
1190
+ "\u0628\u0644\u06CC": "billi",
1191
+ "\u06AF\u06BE\u0648\u0691\u0627": "ghora",
1192
+ "\u06AF\u0627\u0626\u06D2": "gaye",
1193
+ "\u0628\u06A9\u0631\u06CC": "bakri",
1194
+ "\u0628\u06BE\u06CC\u0646\u0633": "bhains",
1195
+ "\u0634\u06CC\u0631": "sheer",
1196
+ "\u06C1\u0627\u062A\u06BE\u06CC": "hathi",
1197
+ "\u0627\u0648\u0646\u0679": "oont",
1198
+ "\u0628\u0646\u062F\u0631": "bandar",
1199
+ "\u0686\u0648\u06C1\u0627": "chooha",
1200
+ "\u067E\u0631\u0646\u062F\u06C1": "parinda",
1201
+ "\u06A9\u0648\u0627": "kawa",
1202
+ "\u0637\u0648\u0637\u0627": "tota",
1203
+ "\u0633\u0627\u0646\u067E": "saanp",
1204
+ // ---- extended family ----
1205
+ "\u0686\u0686\u0627": "chacha",
1206
+ "\u0645\u0627\u0645\u0648\u06BA": "mamoon",
1207
+ "\u062E\u0627\u0644\u06C1": "khala",
1208
+ "\u067E\u06BE\u0648\u067E\u06BE\u06CC": "phupi",
1209
+ "\u062F\u0627\u062F\u0627": "dada",
1210
+ "\u062F\u0627\u062F\u06CC": "dadi",
1211
+ "\u0646\u0627\u0646\u0627": "nana",
1212
+ "\u0646\u0627\u0646\u06CC": "nani",
1213
+ "\u0631\u0634\u062A\u06C1": "rishta",
1214
+ "\u062E\u0627\u0646\u062F\u0627\u0646": "khandan",
1215
+ "\u0645\u06C1\u0645\u0627\u0646": "mehman",
1216
+ // ---- food ----
1217
+ "\u06A9\u06BE\u06CC\u0631": "kheer",
1218
+ "\u062D\u0644\u0648\u06C1": "halwa",
1219
+ "\u0628\u0631\u06CC\u0627\u0646\u06CC": "biryani",
1220
+ "\u06A9\u0628\u0627\u0628": "kabab",
1221
+ "\u0633\u0627\u0644\u0646": "salan",
1222
+ "\u062F\u0627\u0644": "daal",
1223
+ "\u0622\u0679\u0627": "aata",
1224
+ "\u0645\u06A9\u06BE\u0646": "makhan",
1225
+ "\u062F\u06C1\u06CC": "dahi",
1226
+ "\u0634\u06C1\u062F": "shehad",
1227
+ "\u0645\u0631\u0686": "mirch",
1228
+ "\u06C1\u0644\u062F\u06CC": "haldi",
1229
+ "\u0644\u06C1\u0633\u0646": "lehsun",
1230
+ "\u067E\u06CC\u0627\u0632": "pyaz",
1231
+ "\u0679\u0645\u0627\u0679\u0631": "tamatar",
1232
+ "\u0622\u0644\u0648": "aloo",
1233
+ "\u06AF\u0627\u062C\u0631": "gajar",
1234
+ "\u062A\u0631\u0628\u0648\u0632": "tarbooz",
1235
+ "\u0627\u0646\u0627\u0631": "anar",
1236
+ "\u06A9\u06BE\u062C\u0648\u0631": "khajoor",
1237
+ "\u0628\u0627\u062F\u0627\u0645": "badam",
1238
+ // ---- places on the map ----
1239
+ "\u06A9\u0631\u0627\u0686\u06CC": "karachi",
1240
+ "\u0644\u0627\u06C1\u0648\u0631": "lahore",
1241
+ "\u067E\u0634\u0627\u0648\u0631": "peshawar",
1242
+ "\u06A9\u0648\u0626\u0679\u06C1": "quetta",
1243
+ "\u0645\u0644\u062A\u0627\u0646": "multan",
1244
+ "\u0631\u0627\u0648\u0644\u067E\u0646\u0688\u06CC": "rawalpindi",
1245
+ "\u0633\u06CC\u0627\u0644\u06A9\u0648\u0679": "sialkot",
1246
+ "\u0628\u06BE\u0627\u0631\u062A": "bharat",
1247
+ "\u06C1\u0646\u062F\u0648\u0633\u062A\u0627\u0646": "hindustan",
1248
+ "\u0686\u06CC\u0646": "cheen",
1249
+ "\u0627\u0645\u0631\u06CC\u06A9\u06C1": "amreeka",
1250
+ "\u0628\u0631\u0637\u0627\u0646\u06CC\u06C1": "bartania",
1251
+ "\u0627\u06CC\u0631\u0627\u0646": "iran",
1252
+ "\u0627\u0641\u063A\u0627\u0646\u0633\u062A\u0627\u0646": "afghanistan",
1253
+ "\u06A9\u0634\u0645\u06CC\u0631": "kashmir",
1254
+ "\u067E\u0646\u062C\u0627\u0628": "punjab",
1255
+ "\u0633\u0646\u062F\u06BE": "sindh",
1256
+ "\u0628\u0644\u0648\u0686\u0633\u062A\u0627\u0646": "balochistan",
1257
+ // ---- names that appear constantly in Urdu content ----
1258
+ "\u0645\u062D\u0645\u062F": "muhammad",
1259
+ "\u0627\u062D\u0645\u062F": "ahmed",
1260
+ "\u0639\u0644\u06CC": "ali",
1261
+ "\u062E\u0627\u0646": "khan",
1262
+ "\u0632\u06CC\u062F": "zaid",
1263
+ "\u062D\u0633\u0646": "hasan",
1264
+ "\u062D\u0633\u06CC\u0646": "hussain",
1265
+ "\u0641\u0627\u0637\u0645\u06C1": "fatima",
1266
+ "\u0639\u0627\u0626\u0634\u06C1": "ayesha",
1267
+ "\u0639\u0645\u0631": "umar",
1268
+ "\u0628\u0644\u0627\u0644": "bilal",
1269
+ "\u0627\u0633\u0644\u0645": "aslam"
560
1270
  };
1271
+ var ROMAN_VARIANTS = {
1272
+ hay: "\u06C1\u06D2",
1273
+ he: "\u06C1\u06D2",
1274
+ hei: "\u06C1\u06D2",
1275
+ hein: "\u06C1\u06CC\u06BA",
1276
+ hun: "\u06C1\u0648\u06BA",
1277
+ ap: "\u0622\u067E",
1278
+ aapko: "\u0622\u067E\u06A9\u0648",
1279
+ kaise: "\u06A9\u06CC\u0633\u06D2",
1280
+ kese: "\u06A9\u06CC\u0633\u06D2",
1281
+ kaisey: "\u06A9\u06CC\u0633\u06D2",
1282
+ nam: "\u0646\u0627\u0645",
1283
+ mai: "\u0645\u06CC\u06BA",
1284
+ main: "\u0645\u06CC\u06BA",
1285
+ me: "\u0645\u06CC\u06BA",
1286
+ nahin: "\u0646\u06C1\u06CC\u06BA",
1287
+ nai: "\u0646\u06C1\u06CC\u06BA",
1288
+ kia: "\u06A9\u06CC\u0627",
1289
+ kiya: "\u06A9\u06CC\u0627",
1290
+ bahut: "\u0628\u06C1\u062A",
1291
+ bhot: "\u0628\u06C1\u062A",
1292
+ bohot: "\u0628\u06C1\u062A",
1293
+ achha: "\u0627\u0686\u06BE\u0627",
1294
+ achi: "\u0627\u0686\u06BE\u06CC",
1295
+ shukria: "\u0634\u06A9\u0631\u06CC\u06C1",
1296
+ salaam: "\u0633\u0644\u0627\u0645",
1297
+ mohabat: "\u0645\u062D\u0628\u062A",
1298
+ muhabbat: "\u0645\u062D\u0628\u062A",
1299
+ pyar: "\u067E\u06CC\u0627\u0631",
1300
+ zindagi: "\u0632\u0646\u062F\u06AF\u06CC",
1301
+ dost: "\u062F\u0648\u0633\u062A",
1302
+ khush: "\u062E\u0648\u0634",
1303
+ theak: "\u0679\u06BE\u06CC\u06A9",
1304
+ thik: "\u0679\u06BE\u06CC\u06A9",
1305
+ bhai: "\u0628\u06BE\u0627\u0626\u06CC",
1306
+ behen: "\u0628\u06C1\u0646",
1307
+ ammi: "\u0627\u0645\u06CC",
1308
+ abbu: "\u0627\u0628\u0648",
1309
+ paisay: "\u067E\u06CC\u0633\u06D2",
1310
+ kaam: "\u06A9\u0627\u0645",
1311
+ ghar: "\u06AF\u06BE\u0631",
1312
+ // aam is both آم (mango) and عام (common); the fruit is the likelier query.
1313
+ aam: "\u0622\u0645",
1314
+ hawa: "\u06C1\u0648\u0627",
1315
+ // sona is both سونا (to sleep) and سونا (gold) — same spelling, no conflict.
1316
+ ho: "\u06C1\u0648",
1317
+ hoga: "\u06C1\u0648\u06AF\u0627"
1318
+ };
1319
+
1320
+ // src/transliterate.ts
561
1321
  var DIGRAPHS = {
562
1322
  "\u0628\u06BE": "bh",
563
1323
  "\u067E\u06BE": "ph",
@@ -621,16 +1381,18 @@ var LETTERS = {
621
1381
  "\u0624": "o",
622
1382
  "\u06C2": "h"
623
1383
  };
1384
+ var VOWEL_LETTERS = /* @__PURE__ */ new Set(["\u0627", "\u0622", "\u0648", "\u06CC", "\u06D2", "\u0624", "\u0626", "\u06D3", "\u06C2", "\u0639"]);
624
1385
  function romanizeWord(word) {
625
1386
  const dictionary = WORD_DICTIONARY[word];
626
1387
  if (dictionary) return dictionary;
627
1388
  const chars = [...word];
628
- let out = "";
1389
+ const pieces = [];
629
1390
  for (let i = 0; i < chars.length; i++) {
1391
+ const last = i === chars.length - 1;
630
1392
  const pair = chars[i] + (chars[i + 1] ?? "");
631
1393
  const digraph = DIGRAPHS[pair];
632
1394
  if (digraph) {
633
- out += digraph;
1395
+ pieces.push({ text: digraph, vowel: false });
634
1396
  i++;
635
1397
  continue;
636
1398
  }
@@ -638,20 +1400,45 @@ function romanizeWord(word) {
638
1400
  if (i === 0 && ch === "\u0627") {
639
1401
  const next = chars[1];
640
1402
  if (next === "\u0648") {
641
- out += "o";
1403
+ pieces.push({ text: "o", vowel: true });
642
1404
  i++;
643
1405
  continue;
644
1406
  }
645
1407
  if (next === "\u06CC") {
646
- out += "i";
1408
+ pieces.push({ text: "i", vowel: true });
647
1409
  i++;
648
1410
  continue;
649
1411
  }
650
- out += "a";
1412
+ pieces.push({ text: "a", vowel: true });
1413
+ continue;
1414
+ }
1415
+ if (i === 0 && ch === "\u0648") {
1416
+ pieces.push({ text: "w", vowel: false });
1417
+ continue;
1418
+ }
1419
+ if (i === 0 && ch === "\u06CC") {
1420
+ pieces.push({ text: "y", vowel: false });
1421
+ continue;
1422
+ }
1423
+ if (last && ch === "\u06C1" && pieces.length > 0) {
1424
+ pieces.push({ text: "a", vowel: true });
1425
+ continue;
1426
+ }
1427
+ if (ch === "\u06CC" && chars[i + 1] === "\u06BA" && i + 1 === chars.length - 1) {
1428
+ pieces.push({ text: "ein", vowel: true });
1429
+ i++;
651
1430
  continue;
652
1431
  }
653
- out += LETTERS[ch] ?? ch;
1432
+ if (ch === "\u06CC" && !last) {
1433
+ pieces.push({ text: "e", vowel: true });
1434
+ continue;
1435
+ }
1436
+ pieces.push({ text: LETTERS[ch] ?? ch, vowel: VOWEL_LETTERS.has(ch) });
1437
+ }
1438
+ if (pieces.length > 2 && !pieces[0].vowel && !pieces[1].vowel) {
1439
+ pieces.splice(1, 0, { text: "a", vowel: true });
654
1440
  }
1441
+ const out = pieces.map((p) => p.text).join("");
655
1442
  return out;
656
1443
  }
657
1444
  function romanize(input, options = {}) {
@@ -665,29 +1452,7 @@ var ROMAN_DICTIONARY = {};
665
1452
  for (const [urduWord, roman] of Object.entries(WORD_DICTIONARY)) {
666
1453
  ROMAN_DICTIONARY[roman] = urduWord;
667
1454
  }
668
- Object.assign(ROMAN_DICTIONARY, {
669
- hai: "\u06C1\u06D2",
670
- hay: "\u06C1\u06D2",
671
- he: "\u06C1\u06D2",
672
- hein: "\u06C1\u06CC\u06BA",
673
- hoon: "\u06C1\u0648\u06BA",
674
- hun: "\u06C1\u0648\u06BA",
675
- ap: "\u0622\u067E",
676
- kaise: "\u06A9\u06CC\u0633\u06D2",
677
- kaisa: "\u06A9\u06CC\u0633\u0627",
678
- nam: "\u0646\u0627\u0645",
679
- naam: "\u0646\u0627\u0645",
680
- mai: "\u0645\u06CC\u06BA",
681
- main: "\u0645\u06CC\u06BA",
682
- nahin: "\u0646\u06C1\u06CC\u06BA",
683
- kia: "\u06A9\u06CC\u0627",
684
- bahut: "\u0628\u06C1\u062A",
685
- bhot: "\u0628\u06C1\u062A",
686
- acha: "\u0627\u0686\u06BE\u0627",
687
- achha: "\u0627\u0686\u06BE\u0627",
688
- shukriya: "\u0634\u06A9\u0631\u06CC\u06C1",
689
- salam: "\u0633\u0644\u0627\u0645"
690
- });
1455
+ Object.assign(ROMAN_DICTIONARY, ROMAN_VARIANTS);
691
1456
  var ROMAN_RULES = [
692
1457
  [/^kh/u, "\u06A9\u06BE"],
693
1458
  [/^gh/u, "\u06AF\u06BE"],