Server : Apache System : Linux host44.registrar-servers.com 4.18.0-513.18.1.lve.2.el8.x86_64 #1 SMP Sat Mar 30 15:36:11 UTC 2024 x86_64 User : vapecompany ( 2719) PHP Version : 7.4.33 Disable Function : NONE Directory : /home/vapecompany/demo.vapecompany.com.bd/vendor/mpdf/mpdf/src/Language/ |
Upload File : |
<?php namespace Mpdf\Language; class LanguageToFont implements \Mpdf\Language\LanguageToFontInterface { public function getLanguageOptions($llcc, $adobeCJK) { $tags = explode('-', $llcc); $lang = strtolower($tags[0]); $country = ''; $script = ''; if (!empty($tags[1])) { if (strlen($tags[1]) === 4) { $script = strtolower($tags[1]); } else { $country = strtolower($tags[1]); } } if (!empty($tags[2])) { $country = strtolower($tags[2]); } $unifont = ''; $coreSuitable = false; switch ($lang) { /* European */ case 'en': case 'eng': // English // LATIN case 'eu': case 'eus': // Basque case 'br': case 'bre': // Breton case 'ca': case 'cat': // Catalan case 'co': case 'cos': // Corsican case 'kw': case 'cor': // Cornish case 'cy': case 'cym': // Welsh case 'cs': case 'ces': // Czech case 'da': case 'dan': // Danish case 'nl': case 'nld': // Dutch case 'et': case 'est': // Estonian case 'fo': case 'fao': // Faroese case 'fi': case 'fin': // Finnish case 'fr': case 'fra': // French case 'gl': case 'glg': // Galician case 'de': case 'deu': // German case 'ht': case 'hat': // Haitian; Haitian Creole case 'hu': case 'hun': // Hungarian case 'ga': case 'gle': // Irish case 'is': case 'isl': // Icelandic case 'it': case 'ita': // Italian case 'la': case 'lat': // Latin case 'lb': case 'ltz': // Luxembourgish case 'li': case 'lim': // Limburgish case 'lt': case 'lit': // Lithuanian case 'lv': case 'lav': // Latvian case 'gv': case 'glv': // Manx case 'no': case 'nor': // Norwegian case 'nn': case 'nno': // Norwegian Nynorsk case 'nb': case 'nob': // Norwegian Bokmål case 'pl': case 'pol': // Polish case 'pt': case 'por': // Portuguese case 'ro': case 'ron': // Romanian case 'gd': case 'gla': // Scottish Gaelic case 'es': case 'spa': // Spanish case 'sv': case 'swe': // Swedish case 'sl': case 'slv': // Slovene case 'sk': case 'slk': // Slovak $coreSuitable = true; break; case 'ru': case 'rus': // Russian // CYRILLIC case 'ab': case 'abk': // Abkhaz case 'av': case 'ava': // Avaric case 'ba': case 'bak': // Bashkir case 'be': case 'bel': // Belarusian case 'bg': case 'bul': // Bulgarian case 'ce': case 'che': // Chechen case 'cv': case 'chv': // Chuvash case 'kk': case 'kaz': // Kazakh case 'kv': case 'kom': // Komi case 'ky': case 'kir': // Kyrgyz case 'mk': case 'mkd': // Macedonian case 'cu': case 'chu': // Old Church Slavonic case 'os': case 'oss': // Ossetian case 'sr': case 'srp': // Serbian case 'tg': case 'tgk': // Tajik case 'tt': case 'tat': // Tatar case 'tk': case 'tuk': // Turkmen case 'uk': case 'ukr': // Ukrainian $unifont = 'dejavusanscondensed'; /* freeserif best coverage for supplements etc. */ break; case 'hy': case 'hye': // ARMENIAN $unifont = 'dejavusans'; break; case 'ka': case 'kat': // GEORGIAN $unifont = 'dejavusans'; break; case 'el': case 'ell': // GREEK $unifont = 'dejavusanscondensed'; break; case 'cop': // COPTIC $unifont = 'quivira'; break; case 'got': // GOTHIC $unifont = 'freeserif'; break; /* African */ case 'nqo': // NKO $unifont = 'dejavusans'; break; //CASE 'bax': // BAMUM //CASE 'ha': CASE 'hau': // Hausa case 'vai': // VAI $unifont = 'freesans'; break; case 'am': case 'amh': // Amharic ETHIOPIC case 'ti': case 'tir': // Tigrinya ETHIOPIC $unifont = 'abyssinicasil'; break; /* Middle Eastern */ case 'ar': case 'ara': // Arabic NB Arabic text identified by Autofont will be marked as und-Arab $unifont = 'xbriyaz'; break; case 'fa': case 'fas': // Persian (Farsi) $unifont = 'xbriyaz'; break; case 'ps': case 'pus': // Pashto $unifont = 'xbriyaz'; break; case 'ku': case 'kur': // Kurdish $unifont = 'xbriyaz'; break; case 'ur': case 'urd': // Urdu $unifont = 'xbriyaz'; break; case 'he': case 'heb': // HEBREW case 'yi': case 'yid': // Yiddish $unifont = 'taameydavidclm'; // dejavusans,dejavusanscondensed,freeserif are fine if you do not need cantillation marks break; case 'syr': // SYRIAC $unifont = 'estrangeloedessa'; break; //CASE 'arc': // IMPERIAL_ARAMAIC //CASE ''ae: // AVESTAN case 'xcr': // CARIAN $unifont = 'aegean'; break; case 'xlc': // LYCIAN $unifont = 'aegean'; break; case 'xld': // LYDIAN $unifont = 'aegean'; break; //CASE 'mid': // MANDAIC //CASE 'peo': // OLD_PERSIAN case 'phn': // PHOENICIAN $unifont = 'aegean'; break; //CASE 'smp': // SAMARITAN case 'uga': // UGARITIC $unifont = 'aegean'; break; /* Central Asian */ case 'bo': case 'bod': // TIBETAN case 'dz': case 'dzo': // Dzongkha $unifont = 'jomolhari'; break; //CASE 'mn': CASE 'mon': // MONGOLIAN (Vertical script) //CASE 'ug': CASE 'uig': // Uyghur //CASE 'uz': CASE 'uzb': // Uzbek //CASE 'az': CASE 'azb': // South Azerbaijani /* South Asian */ case 'as': case 'asm': // Assamese $unifont = 'freeserif'; break; case 'bn': case 'ben': // BENGALI; Bangla $unifont = 'freeserif'; break; case 'ks': case 'kas': // Kashmiri $unifont = 'freeserif'; break; case 'hi': case 'hin': // Hindi DEVANAGARI case 'bh': case 'bih': // Bihari (Bhojpuri, Magahi, and Maithili) case 'sa': case 'san': // Sanskrit $unifont = 'freeserif'; break; case 'gu': case 'guj': // Gujarati $unifont = 'freeserif'; break; case 'pa': case 'pan': // Panjabi, Punjabi GURMUKHI $unifont = 'freeserif'; break; case 'kn': case 'kan': // Kannada $unifont = 'lohitkannada'; break; case 'mr': case 'mar': // Marathi $unifont = 'freeserif'; break; case 'ml': case 'mal': // MALAYALAM $unifont = 'freeserif'; break; case 'ne': case 'nep': // Nepali $unifont = 'freeserif'; break; case 'or': case 'ori': // ORIYA $unifont = 'freeserif'; break; case 'si': case 'sin': // SINHALA $unifont = 'kaputaunicode'; break; case 'ta': case 'tam': // TAMIL $unifont = 'freeserif'; break; case 'te': case 'tel': // TELUGU $unifont = 'pothana2000'; break; // Sindhi (Arabic or Devanagari) case 'sd': case 'snd': // Sindhi $unifont = 'lateef'; if ($country === 'in') { $unifont = 'freeserif'; } break; //CASE 'ccp': // CHAKMA //CASE 'lep': // LEPCHA case 'lif': // LIMBU $unifont = 'sun-exta'; break; //CASE 'sat': // OL_CHIKI //CASE 'saz': // SAURASHTRA case 'syl': // SYLOTI_NAGRI $unifont = 'mph2bdamase'; break; //CASE 'dgo': // TAKRI case 'dv': case 'div': // Divehi; Maldivian THAANA $unifont = 'freeserif'; break; /* South East Asian */ case 'km': case 'khm': // KHMER $unifont = 'khmeros'; break; case 'lo': case 'lao': // LAO $unifont = 'dhyana'; break; case 'my': case 'mya': // MYANMAR Burmese $unifont = 'tharlon'; // zawgyi-one is non-unicode compliant but in wide usage // ayar is also not strictly compliant // padaukbook is unicode compliant break; case 'th': case 'tha': // THAI $unifont = 'garuda'; break; // VIETNAMESE case 'vi': case 'vie': // Vietnamese $unifont = 'dejavusanscondensed'; break; //CASE 'ms': CASE 'msa': // Malay //CASE 'ban': // BALINESE //CASE 'bya': // BATAK case 'bug': // BUGINESE $unifont = 'freeserif'; break; //CASE 'cjm': // CHAM //CASE 'jv': // JAVANESE case 'su': // SUNDANESE $unifont = 'sundaneseunicode'; break; case 'tdd': // TAI_LE $unifont = 'tharlon'; break; case 'blt': // TAI_VIET $unifont = 'taiheritagepro'; break; /* Phillipine */ case 'bku': // BUHID $unifont = 'quivira'; break; case 'hnn': // HANUNOO $unifont = 'quivira'; break; case 'tl': // TAGALOG $unifont = 'quivira'; break; case 'tbw': // TAGBANWA $unifont = 'quivira'; break; /* East Asian */ case 'zh': case 'zho': // Chinese $unifont = 'sun-exta'; if ($adobeCJK) { $unifont = 'gb'; if ($country === 'hk' || $country === 'tw') { $unifont = 'big5'; } } break; case 'ko': case 'kor': // HANGUL Korean $unifont = 'unbatang'; if ($adobeCJK) { $unifont = 'uhc'; } break; case 'ja': case 'jpn': // Japanese HIRAGANA KATAKANA $unifont = 'sun-exta'; if ($adobeCJK) { $unifont = 'sjis'; } break; case 'ii': case 'iii': // Nuosu; Yi $unifont = 'sun-exta'; if ($adobeCJK) { $unifont = 'gb'; } break; case 'lis': // LISU $unifont = 'quivira'; break; /* American */ case 'chr': // CHEROKEE case 'oj': case 'oji': // Ojibwe; Chippewa case 'cr': case 'cre': // Cree CANADIAN_ABORIGINAL case 'iu': case 'iku': // Inuktitut $unifont = 'aboriginalsans'; break; /* Undetermined language - script used */ case 'und': $unifont = $this->fontByScript($script, $adobeCJK); break; } return [$coreSuitable, $unifont]; } protected function fontByScript($script, $adobeCJK) { switch ($script) { /* European */ case 'latn': // LATIN return 'dejavusanscondensed'; case 'cyrl': // CYRILLIC return 'dejavusanscondensed'; /* freeserif best coverage for supplements etc. */ case 'cprt': // CYPRIOT return 'aegean'; case 'glag': // GLAGOLITIC return 'mph2bdamase'; case 'linb': // LINEAR_B return 'aegean'; case 'ogam': // OGHAM return 'dejavusans'; case 'ital': // OLD_ITALIC return 'aegean'; case 'runr': // RUNIC return 'sun-exta'; case 'shaw': // SHAVIAN return 'mph2bdamase'; /* African */ case 'egyp': // EGYPTIAN_HIEROGLYPHS return 'aegyptus'; case 'ethi': // ETHIOPIC return 'abyssinicasil'; //CASE 'merc': // MEROITIC_CURSIVE //CASE 'mero': // MEROITIC_HIEROGLYPHS case 'osma': // OSMANYA return 'mph2bdamase'; case 'tfng': // TIFINAGH return 'dejavusans'; /* Middle Eastern */ case 'arab': // ARABIC return 'xbriyaz'; case 'xsux': // CUNEIFORM return 'akkadian'; //CASE 'sarb': // OLD_SOUTH_ARABIAN //CASE 'prti': // INSCRIPTIONAL_PARTHIAN //CASE 'phli': // INSCRIPTIONAL_PAHLAVI /* Central Asian */ //CASE 'orkh': // OLD_TURKIC //CASE 'phag': // PHAGS_PA (Vertical script) /* South Asian */ //CASE 'brah': // BRAHMI //CASE 'kthi': // KAITHI case 'khar': // KHAROSHTHI return 'mph2bdamase'; case 'mtei': // MEETEI_MAYEK return 'eeyekunicode'; //CASE 'shrd': // SHARADA //CASE 'sora': // SORA_SOMPENG /* South East Asian */ case 'kali': // KAYAH_LI return 'freemono'; //CASE 'rjng': // REJANG case 'lana': // TAI_THAM return 'lannaalif'; case 'talu': // NEW_TAI_LUE return 'daibannasilbook'; /* East Asian */ case 'hans': // HAN (SIMPLIFIED) if ($adobeCJK) { return 'gb'; } return 'sun-exta'; case 'bopo': // BOPOMOFO return 'sun-exta'; //CASE 'plrd': // MIAO case 'yiii': // YI return 'sun-exta'; /* American */ case 'dsrt': // DESERET return 'mph2bdamase'; /* Other */ case 'brai': // BRAILLE return 'dejavusans'; } return null; } }