3 namespace Mpdf\Language
;
7 class ScriptToLanguage
implements \Mpdf\Language\ScriptToLanguageInterface
10 private $scriptDelimiterMap = [
11 'viet' => "\x{01A0}\x{01A1}\x{01AF}\x{01B0}\x{1EA0}-\x{1EF1}",
12 'persian' => "\x{067E}\x{0686}\x{0698}\x{06AF}",
13 'urdu' => "\x{0679}\x{0688}\x{0691}\x{06BA}\x{06BE}\x{06C1}\x{06D2}",
14 'pashto' => "\x{067C}\x{0681}\x{0685}\x{0689}\x{0693}\x{0696}\x{069A}\x{06BC}\x{06D0}", // ? and U+06AB, U+06CD
15 'sindhi' => "\x{067A}\x{067B}\x{067D}\x{067F}\x{0680}\x{0684}\x{068D}\x{068A}\x{068F}\x{068C}\x{0687}\x{0683}\x{0699}\x{06AA}\x{06A6}\x{06BB}\x{06B1}\x{06B3}",
18 private $scriptToLanguageMap = [
20 Ucdn
::SCRIPT_LATIN
=> 'und-Latn',
21 Ucdn
::SCRIPT_ARMENIAN
=> 'hy',
22 Ucdn
::SCRIPT_CYRILLIC
=> 'und-Cyrl',
23 Ucdn
::SCRIPT_GEORGIAN
=> 'ka',
24 Ucdn
::SCRIPT_GREEK
=> 'el',
25 Ucdn
::SCRIPT_COPTIC
=> 'cop',
26 Ucdn
::SCRIPT_GOTHIC
=> 'got',
27 Ucdn
::SCRIPT_CYPRIOT
=> 'und-Cprt',
28 Ucdn
::SCRIPT_GLAGOLITIC
=> 'und-Glag',
29 Ucdn
::SCRIPT_LINEAR_B
=> 'und-Linb',
30 Ucdn
::SCRIPT_OGHAM
=> 'und-Ogam',
31 Ucdn
::SCRIPT_OLD_ITALIC
=> 'und-Ital',
32 Ucdn
::SCRIPT_RUNIC
=> 'und-Runr',
33 Ucdn
::SCRIPT_SHAVIAN
=> 'und-Shaw',
35 Ucdn
::SCRIPT_ETHIOPIC
=> 'und-Ethi',
36 Ucdn
::SCRIPT_NKO
=> 'nqo',
37 Ucdn
::SCRIPT_BAMUM
=> 'bax',
38 Ucdn
::SCRIPT_VAI
=> 'vai',
39 Ucdn
::SCRIPT_EGYPTIAN_HIEROGLYPHS
=> 'und-Egyp',
40 Ucdn
::SCRIPT_MEROITIC_CURSIVE
=> 'und-Merc',
41 Ucdn
::SCRIPT_MEROITIC_HIEROGLYPHS
=> 'und-Mero',
42 Ucdn
::SCRIPT_OSMANYA
=> 'und-Osma',
43 Ucdn
::SCRIPT_TIFINAGH
=> 'und-Tfng',
45 Ucdn
::SCRIPT_ARABIC
=> 'und-Arab',
46 Ucdn
::SCRIPT_HEBREW
=> 'he',
47 Ucdn
::SCRIPT_SYRIAC
=> 'syr',
48 Ucdn
::SCRIPT_IMPERIAL_ARAMAIC
=> 'arc',
49 Ucdn
::SCRIPT_AVESTAN
=> 'ae',
50 Ucdn
::SCRIPT_CARIAN
=> 'xcr',
51 Ucdn
::SCRIPT_LYCIAN
=> 'xlc',
52 Ucdn
::SCRIPT_LYDIAN
=> 'xld',
53 Ucdn
::SCRIPT_MANDAIC
=> 'mid',
54 Ucdn
::SCRIPT_OLD_PERSIAN
=> 'peo',
55 Ucdn
::SCRIPT_PHOENICIAN
=> 'phn',
56 Ucdn
::SCRIPT_SAMARITAN
=> 'smp',
57 Ucdn
::SCRIPT_UGARITIC
=> 'uga',
58 Ucdn
::SCRIPT_CUNEIFORM
=> 'und-Xsux',
59 Ucdn
::SCRIPT_OLD_SOUTH_ARABIAN
=> 'und-Sarb',
60 Ucdn
::SCRIPT_INSCRIPTIONAL_PARTHIAN
=> 'und-Prti',
61 Ucdn
::SCRIPT_INSCRIPTIONAL_PAHLAVI
=> 'und-Phli',
63 Ucdn
::SCRIPT_MONGOLIAN
=> 'mn',
64 Ucdn
::SCRIPT_TIBETAN
=> 'bo',
65 Ucdn
::SCRIPT_OLD_TURKIC
=> 'und-Orkh',
66 Ucdn
::SCRIPT_PHAGS_PA
=> 'und-Phag',
68 Ucdn
::SCRIPT_BENGALI
=> 'bn',
69 Ucdn
::SCRIPT_DEVANAGARI
=> 'hi',
70 Ucdn
::SCRIPT_GUJARATI
=> 'gu',
71 Ucdn
::SCRIPT_GURMUKHI
=> 'pa',
72 Ucdn
::SCRIPT_KANNADA
=> 'kn',
73 Ucdn
::SCRIPT_MALAYALAM
=> 'ml',
74 Ucdn
::SCRIPT_ORIYA
=> 'or',
75 Ucdn
::SCRIPT_SINHALA
=> 'si',
76 Ucdn
::SCRIPT_TAMIL
=> 'ta',
77 Ucdn
::SCRIPT_TELUGU
=> 'te',
78 Ucdn
::SCRIPT_CHAKMA
=> 'ccp',
79 Ucdn
::SCRIPT_LEPCHA
=> 'lep',
80 Ucdn
::SCRIPT_LIMBU
=> 'lif',
81 Ucdn
::SCRIPT_OL_CHIKI
=> 'sat',
82 Ucdn
::SCRIPT_SAURASHTRA
=> 'saz',
83 Ucdn
::SCRIPT_SYLOTI_NAGRI
=> 'syl',
84 Ucdn
::SCRIPT_TAKRI
=> 'dgo',
85 Ucdn
::SCRIPT_THAANA
=> 'dv',
86 Ucdn
::SCRIPT_BRAHMI
=> 'und-Brah',
87 Ucdn
::SCRIPT_KAITHI
=> 'und-Kthi',
88 Ucdn
::SCRIPT_KHAROSHTHI
=> 'und-Khar',
89 Ucdn
::SCRIPT_MEETEI_MAYEK
=> 'und-Mtei', /* or omp-Mtei */
90 Ucdn
::SCRIPT_SHARADA
=> 'und-Shrd',
91 Ucdn
::SCRIPT_SORA_SOMPENG
=> 'und-Sora',
92 /* South East Asian */
93 Ucdn
::SCRIPT_KHMER
=> 'km',
94 Ucdn
::SCRIPT_LAO
=> 'lo',
95 Ucdn
::SCRIPT_MYANMAR
=> 'my',
96 Ucdn
::SCRIPT_THAI
=> 'th',
97 Ucdn
::SCRIPT_BALINESE
=> 'ban',
98 Ucdn
::SCRIPT_BATAK
=> 'bya',
99 Ucdn
::SCRIPT_BUGINESE
=> 'bug',
100 Ucdn
::SCRIPT_CHAM
=> 'cjm',
101 Ucdn
::SCRIPT_JAVANESE
=> 'jv',
102 Ucdn
::SCRIPT_KAYAH_LI
=> 'und-Kali',
103 Ucdn
::SCRIPT_REJANG
=> 'und-Rjng',
104 Ucdn
::SCRIPT_SUNDANESE
=> 'su',
105 Ucdn
::SCRIPT_TAI_LE
=> 'tdd',
106 Ucdn
::SCRIPT_TAI_THAM
=> 'und-Lana',
107 Ucdn
::SCRIPT_TAI_VIET
=> 'blt',
108 Ucdn
::SCRIPT_NEW_TAI_LUE
=> 'und-Talu',
110 Ucdn
::SCRIPT_BUHID
=> 'bku',
111 Ucdn
::SCRIPT_HANUNOO
=> 'hnn',
112 Ucdn
::SCRIPT_TAGALOG
=> 'tl',
113 Ucdn
::SCRIPT_TAGBANWA
=> 'tbw',
115 Ucdn
::SCRIPT_HAN
=> 'und-Hans', // und-Hans (simplified) or und-Hant (Traditional)
116 Ucdn
::SCRIPT_HANGUL
=> 'ko',
117 Ucdn
::SCRIPT_HIRAGANA
=> 'ja',
118 Ucdn
::SCRIPT_KATAKANA
=> 'ja',
119 Ucdn
::SCRIPT_LISU
=> 'lis',
120 Ucdn
::SCRIPT_BOPOMOFO
=> 'und-Bopo', // zh-CN, zh-TW, zh-HK
121 Ucdn
::SCRIPT_MIAO
=> 'und-Plrd',
122 Ucdn
::SCRIPT_YI
=> 'und-Yiii',
124 Ucdn
::SCRIPT_CHEROKEE
=> 'chr',
125 Ucdn
::SCRIPT_CANADIAN_ABORIGINAL
=> 'cr',
126 Ucdn
::SCRIPT_DESERET
=> 'und-Dsrt',
128 Ucdn
::SCRIPT_BRAILLE
=> 'und-Brai',
131 public function getLanguageByScript($script)
133 return isset($this->scriptToLanguageMap
[$script]) ?
$this->scriptToLanguageMap
[$script] : null;
136 public function getLanguageDelimiters($language)
138 return isset($this->scriptDelimiterMap
[$language]) ?
$this->scriptDelimiterMap
[$language] : null;