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