Created
January 18, 2015 13:49
-
-
Save trhura/93f0ddaf1bc14a50f831 to your computer and use it in GitHub Desktop.
Unicode <-> Zawgyi Converter Generated from paytan
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* Zawgyi<>Unicode converter python module */ | |
/* Based on rules from Parabaik Myanmar Text Converter */ | |
/* Copyright (C) 2014 Ngwe Tun (Solveware Solution) */ | |
/* Copyright (C) 2014 Thura Hlaing */ | |
/* This file is part of Paytan. */ | |
/* Paytan is free software: you can redistribute it and/or modify */ | |
/* it under the terms of the GNU General Public License as published by */ | |
/* the Free Software Foundation, either version 3 of the License, or */ | |
/* (at your option) any later version. */ | |
/* Paytan is distributed in the hope that it will be useful, */ | |
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ | |
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ | |
/* GNU General Public License for more details. */ | |
/* You should have received a copy of the GNU General Public License */ | |
/* along with Foobar. If not, see <http://www.gnu.org/licenses/>. */ | |
function zg12uni51 ($str) { | |
$str = preg_replace('/\x{106a}/u', | |
'ဉ',$str); | |
$str = preg_replace('/\x{1025}(?=[\x{1039}\x{102c}])/u', | |
'ဉ',$str); | |
$str = preg_replace('/\x{1025}\x{102e}/u', | |
'ဦ',$str); | |
$str = preg_replace('/\x{106b}/u', | |
'ည',$str); | |
$str = preg_replace('/\x{1090}/u', | |
'ရ',$str); | |
$str = preg_replace('/\x{1040}/u', | |
'၀',$str); | |
$str = preg_replace('/\x{108f}/u', | |
'န',$str); | |
$str = preg_replace('/\x{1012}/u', | |
'ဒ',$str); | |
$str = preg_replace('/\x{1013}/u', | |
'ဓ',$str); | |
$str = preg_replace('/[\x{103d}\x{1087}]/u', | |
'ွ',$str); | |
$str = preg_replace('/\x{103c}/u', | |
'ွ',$str); | |
$str = preg_replace('/[\x{103b}\x{107e}\x{107f}\x{1080}\x{1081}\x{1082}\x{1083}\x{1084}]/u', | |
'ြ',$str); | |
$str = preg_replace('/[\x{103a}\x{107d}]/u', | |
'ျ',$str); | |
$str = preg_replace('/\x{103d}\x{103b}/u', | |
'ျွ',$str); | |
$str = preg_replace('/\x{108a}/u', | |
'ွွ',$str); | |
$str = preg_replace('/\x{103d}\x{103d}/u', | |
'ွွ',$str); | |
$str = preg_replace('/((?:\x{1031})?)((?:\x{103c})?)([\x{1000}-\x{1021}])\x{1064}/u', | |
'ၤ$1$2$3',$str); | |
$str = preg_replace('/((?:\x{1031})?)((?:\x{103c})?)([\x{1000}-\x{1021}])\x{108b}/u', | |
'ၤ$1$2$3ိ',$str); | |
$str = preg_replace('/((?:\x{1031})?)((?:\x{103c})?)([\x{1000}-\x{1021}])\x{108c}/u', | |
'ၤ$1$2$3ီ',$str); | |
$str = preg_replace('/((?:\x{1031})?)((?:\x{103c})?)([\x{1000}-\x{1021}])\x{108d}/u', | |
'ၤ$1$2$3ံ',$str); | |
$str = preg_replace('/\x{105a}/u', | |
'ါ်',$str); | |
$str = preg_replace('/\x{108e}/u', | |
'ိံ',$str); | |
$str = preg_replace('/\x{1033}/u', | |
'ု',$str); | |
$str = preg_replace('/\x{1034}/u', | |
'ူ',$str); | |
$str = preg_replace('/\x{1088}/u', | |
'ွု',$str); | |
$str = preg_replace('/\x{1089}/u', | |
'ွူ',$str); | |
$str = preg_replace('/\x{1039}/u', | |
'်',$str); | |
$str = preg_replace('/[\x{1094}\x{1095}]/u', | |
'့',$str); | |
$str = preg_replace('/([\x{1000}-\x{1021}])([\x{102c}\x{102d}\x{102e}\x{1032}\x{1036}]){1,2}([\x{1060}\x{1061}\x{1062}\x{1063}\x{1065}\x{1066}\x{1067}\x{1068}\x{1069}\x{1070}\x{1071}\x{1072}\x{1073}\x{1074}\x{1075}\x{1076}\x{1077}\x{1078}\x{1079}\x{107a}\x{107b}\x{107c}\x{1085}])/u', | |
'$1$3$2',$str); | |
$str = preg_replace('/\x{1064}/u', | |
'င်္',$str); | |
$str = preg_replace('/\x{104e}/u', | |
'၎င်း',$str); | |
$str = preg_replace('/\x{1086}/u', | |
'ဿ',$str); | |
$str = preg_replace('/\x{1060}/u', | |
'္က',$str); | |
$str = preg_replace('/\x{1061}/u', | |
'္ခ',$str); | |
$str = preg_replace('/\x{1062}/u', | |
'္ဂ',$str); | |
$str = preg_replace('/\x{1063}/u', | |
'္ဃ',$str); | |
$str = preg_replace('/\x{1065}/u', | |
'္စ',$str); | |
$str = preg_replace('/[\x{1066}\x{1067}]/u', | |
'္ဆ',$str); | |
$str = preg_replace('/\x{1068}/u', | |
'္ဇ',$str); | |
$str = preg_replace('/\x{1069}/u', | |
'္ဈ',$str); | |
$str = preg_replace('/\x{106c}/u', | |
'္ဋ',$str); | |
$str = preg_replace('/\x{1070}/u', | |
'္ဏ',$str); | |
$str = preg_replace('/[\x{1071}\x{1072}]/u', | |
'္တ',$str); | |
$str = preg_replace('/[\x{1073}\x{1074}]/u', | |
'္ထ',$str); | |
$str = preg_replace('/\x{1075}/u', | |
'္ဒ',$str); | |
$str = preg_replace('/\x{1076}/u', | |
'္ဓ',$str); | |
$str = preg_replace('/\x{1077}/u', | |
'္န',$str); | |
$str = preg_replace('/\x{1078}/u', | |
'္ပ',$str); | |
$str = preg_replace('/\x{1079}/u', | |
'္ဖ',$str); | |
$str = preg_replace('/\x{107a}/u', | |
'္ဗ',$str); | |
$str = preg_replace('/\x{107b}/u', | |
'္ဘ',$str); | |
$str = preg_replace('/\x{107c}/u', | |
'္မ',$str); | |
$str = preg_replace('/\x{1085}/u', | |
'္လ',$str); | |
$str = preg_replace('/\x{106d}/u', | |
'္ဌ',$str); | |
$str = preg_replace('/\x{1091}/u', | |
'ဏ္ဍ',$str); | |
$str = preg_replace('/\x{1092}/u', | |
'ဋ္ဌ',$str); | |
$str = preg_replace('/\x{1097}/u', | |
'ဋ္ဋ',$str); | |
$str = preg_replace('/\x{106f}/u', | |
'ဎ္ဍ',$str); | |
$str = preg_replace('/\x{106e}/u', | |
'ဍ္ဍ',$str); | |
$str = preg_replace('/(\x{103c})([\x{1000}-\x{1021}])((?:\x{1039}[\x{1000}-\x{1021}])?)/u', | |
'$2$3$1',$str); | |
$str = preg_replace('/(\x{103d})(\x{103d})([\x{103b}\x{103c}])/u', | |
'$3$2$1',$str); | |
$str = preg_replace('/(\x{103d})([\x{103b}\x{103c}])/u', | |
'$2$1',$str); | |
$str = preg_replace('/(\x{103d})([\x{103b}\x{103c}])/u', | |
'$2$1',$str); | |
$str = preg_replace('/(?<=([\x{1000}-\x{101c}\x{101e}-\x{102a}\x{102c}\x{102e}-\x{103d}\x{104c}-\x{109f}]))(\x{1040})(?=\s)?/u', | |
'ဝ',$str); | |
$str = preg_replace('/(?<=(\x{101d}))(\x{1040})(?=\s)?/u', | |
'ဝ',$str); | |
$str = preg_replace('/(?<=([\x{1000}-\x{101c}\x{101e}-\x{102a}\x{102c}\x{102e}-\x{103d}\x{104c}-\x{109f}\s]))(\x{1047})/u', | |
'ရ',$str); | |
$str = preg_replace('/(\x{1047})(?=[\x{1000}-\x{101c}\x{101e}-\x{102a}\x{102c}\x{102e}-\x{103d}\x{104c}-\x{109f}\s])/u', | |
'ရ',$str); | |
$str = preg_replace('/((?:\x{1031})?)([\x{1000}-\x{1021}])((?:\x{1039}[\x{1000}-\x{1021}])?)((?:[\x{102d}\x{102e}\x{1032}])?)([\x{1036}\x{1037}\x{1038}]{0,2})([\x{103b}-\x{103d}]{0,3})((?:[\x{102f}\x{1030}])?)([\x{1036}\x{1037}\x{1038}]{0,2})((?:[\x{102d}\x{102e}\x{1032}])?)/u', | |
'$2$3$6$1$4$9$7$5$8',$str); | |
$str = preg_replace('/\x{1036}\x{102f}/u', | |
'ုံ',$str); | |
$str = preg_replace('/(\x{103a})(\x{1037})/u', | |
'$2$1',$str); | |
return $str; | |
} | |
function uni512zg1 ($str) { | |
$str = preg_replace('/\x{104e}\x{1004}\x{103a}\x{1038}/u', | |
'၎',$str); | |
$str = preg_replace('/\x{102b}\x{103a}/u', | |
'ၚ',$str); | |
$str = preg_replace('/\x{102d}\x{1036}/u', | |
'ႎ',$str); | |
$str = preg_replace('/\x{103f}/u', | |
'ႆ',$str); | |
$str = preg_replace('/(?<=\x{102f})\x{1037}/u', | |
'႔',$str); | |
$str = preg_replace('/(?<=\x{102f}\x{1036})\x{1037}/u', | |
'႔',$str); | |
$str = preg_replace('/(?<=\x{1030})\x{1037}/u', | |
'႔',$str); | |
$str = preg_replace('/(?<=\x{1030}\x{1036})\x{1037}/u', | |
'႔',$str); | |
$str = preg_replace('/(?<=\x{1014})\x{1037}/u', | |
'႔',$str); | |
$str = preg_replace('/(?<=\x{1014}[\x{103a}\x{1032}])\x{1037}/u', | |
'႔',$str); | |
$str = preg_replace('/(?<=\x{103b})\x{1037}/u', | |
'႕',$str); | |
$str = preg_replace('/(?<=\x{103b}[\x{1032}\x{1036}])\x{1037}/u', | |
'႕',$str); | |
$str = preg_replace('/(?<=\x{103d})\x{1037}/u', | |
'႕',$str); | |
$str = preg_replace('/(?<=\x{103d}[\x{1032}])\x{1037}/u', | |
'႕',$str); | |
$str = preg_replace('/(?<=[\x{103b}\x{103c}\x{103d}])\x{102f}/u', | |
'ဳ',$str); | |
$str = preg_replace('/(?<=[\x{103b}\x{103c}\x{103d}][\x{102d}\x{1036}])\x{102f}/u', | |
'ဳ',$str); | |
$str = preg_replace('/(?<=(\x{1039}[\x{1000}-\x{1021}]))\x{102f}/u', | |
'ဳ',$str); | |
$str = preg_replace('/(?<=(\x{1039}[\x{1000}-\x{1021}])[\x{102d}\x{1036}])\x{102f}/u', | |
'ဳ',$str); | |
$str = preg_replace('/(?<=[\x{100a}\x{100c}\x{1020}\x{1025}\x{1029}])\x{102f}/u', | |
'ဳ',$str); | |
$str = preg_replace('/(?<=[\x{100a}\x{100c}\x{1020}\x{1025}\x{1029}][\x{102d}\x{1036}])\x{102f}/u', | |
'ဳ',$str); | |
$str = preg_replace('/(?<=[\x{103b}\x{103c}])\x{1030}/u', | |
'ဴ',$str); | |
$str = preg_replace('/(?<=[\x{103b}\x{103c}][\x{103d}])\x{1030}/u', | |
'ဴ',$str); | |
$str = preg_replace('/(?<=[\x{103b}\x{103c}][\x{103e}])\x{1030}/u', | |
'ဴ',$str); | |
$str = preg_replace('/(?<=[\x{103b}\x{103c}][\x{102d}\x{1036}])\x{1030}/u', | |
'ဴ',$str); | |
$str = preg_replace('/(?<=[\x{103b}\x{103c}][\x{103d}][\x{103e}])\x{1030}/u', | |
'ဴ',$str); | |
$str = preg_replace('/(?<=[\x{103b}\x{103c}][\x{103d}][\x{102d}\x{1036}])\x{1030}/u', | |
'ဴ',$str); | |
$str = preg_replace('/(?<=[\x{103b}\x{103c}][\x{103e}][\x{102d}\x{1036}])\x{1030}/u', | |
'ဴ',$str); | |
$str = preg_replace('/(?<=[\x{103b}\x{103c}][\x{103d}][\x{103e}][\x{102d}\x{1036}])\x{1030}/u', | |
'ဴ',$str); | |
$str = preg_replace('/(?<=(\x{1039}[\x{1000}-\x{1021}]))\x{1030}/u', | |
'ဴ',$str); | |
$str = preg_replace('/(?<=(\x{1039}[\x{1000}-\x{1021}])[\x{102d}\x{1036}])\x{1030}/u', | |
'ဴ',$str); | |
$str = preg_replace('/(?<=[\x{100a}\x{100c}\x{1020}\x{1025}\x{1029}])\x{1030}/u', | |
'ဴ',$str); | |
$str = preg_replace('/(?<=[\x{100a}\x{100c}\x{1020}\x{1025}\x{1029}][\x{102d}\x{1036}])\x{1030}/u', | |
'ဴ',$str); | |
$str = preg_replace('/(?<=\x{103c})\x{103e}/u', | |
'ႇ',$str); | |
$str = preg_replace('/\x{1009}(?=[\x{103a}])/u', | |
'ဥ',$str); | |
$str = preg_replace('/\x{1009}(?=\x{1039}[\x{1000}-\x{1021}])/u', | |
'ဥ',$str); | |
$str = preg_replace('/([\x{1000}-\x{1021}\x{1029}])((?:\x{1039}[\x{1000}-\x{1021}])?)((?:[\x{103b}-\x{103e}\x{1087}]*)?)\x{1031}/u', | |
'ေ$1$2$3',$str); | |
$str = preg_replace('/([\x{1000}-\x{1021}\x{1029}])((?:\x{1039}[\x{1000}-\x{1021}\x{1000}-\x{1021}])?)(\x{103c})/u', | |
'$3$1$2',$str); | |
$str = preg_replace('/\x{1004}\x{103a}\x{1039}/u', | |
'ၤ',$str); | |
$str = preg_replace('/(\x{1064})((?:\x{1031})?)((?:\x{103c})?)([\x{1000}-\x{1021}])\x{102d}/u', | |
'$2$3$4ႋ',$str); | |
$str = preg_replace('/(\x{1064})((?:\x{1031})?)((?:\x{103c})?)([\x{1000}-\x{1021}])\x{102e}/u', | |
'$2$3$4ႌ',$str); | |
$str = preg_replace('/(\x{1064})((?:\x{1031})?)((?:\x{103c})?)([\x{1000}-\x{1021}])\x{1036}/u', | |
'$2$3$4ႍ',$str); | |
$str = preg_replace('/(\x{1064})((?:\x{1031})?)((?:\x{103c})?)([\x{1000}-\x{1021}])/u', | |
'$2$3$4ၤ',$str); | |
$str = preg_replace('/\x{100a}(?=[\x{1039}\x{102f}\x{1030}])/u', | |
'ၫ',$str); | |
$str = preg_replace('/\x{100a}/u', | |
'ည',$str); | |
$str = preg_replace('/\x{101b}(?=[\x{102f}\x{1030}])/u', | |
'႐',$str); | |
$str = preg_replace('/\x{101b}/u', | |
'ရ',$str); | |
$str = preg_replace('/\x{1014}(?=[\x{1039}\x{103d}\x{103e}\x{102f}\x{1030}])/u', | |
'ႏ',$str); | |
$str = preg_replace('/\x{1014}/u', | |
'န',$str); | |
$str = preg_replace('/\x{1039}\x{1000}/u', | |
'ၠ',$str); | |
$str = preg_replace('/\x{1039}\x{1001}/u', | |
'ၡ',$str); | |
$str = preg_replace('/\x{1039}\x{1002}/u', | |
'ၢ',$str); | |
$str = preg_replace('/\x{1039}\x{1003}/u', | |
'ၣ',$str); | |
$str = preg_replace('/\x{1039}\x{1005}/u', | |
'ၥ',$str); | |
$str = preg_replace('/\x{1039}\x{1006}/u', | |
'ၦ',$str); | |
$str = preg_replace('/(?<=[\x{1001}\x{1002}\x{1004}\x{1005}\x{1007}\x{1012}\x{1013}\x{108f}\x{1015}\x{1016}\x{1017}\x{1019}\x{101d}])\x{1066}/u', | |
'ၧ',$str); | |
$str = preg_replace('/\x{1039}\x{1007}/u', | |
'ၨ',$str); | |
$str = preg_replace('/\x{1039}\x{1008}/u', | |
'ၩ',$str); | |
$str = preg_replace('/\x{1039}\x{100f}/u', | |
'ၰ',$str); | |
$str = preg_replace('/\x{1039}\x{1010}/u', | |
'ၱ',$str); | |
$str = preg_replace('/(?<=[\x{1001}\x{1002}\x{1004}\x{1005}\x{1007}\x{1012}\x{1013}\x{108f}\x{1015}\x{1016}\x{1017}\x{1019}\x{101d}])\x{1071}/u', | |
'ၲ',$str); | |
$str = preg_replace('/\x{1039}\x{1011}/u', | |
'ၳ',$str); | |
$str = preg_replace('/(?<=[\x{1001}\x{1002}\x{1004}\x{1005}\x{1007}\x{1012}\x{1013}\x{108f}\x{1015}\x{1016}\x{1017}\x{1019}\x{101d}])\x{1073}/u', | |
'ၴ',$str); | |
$str = preg_replace('/\x{1039}\x{1012}/u', | |
'ၵ',$str); | |
$str = preg_replace('/\x{1039}\x{1013}/u', | |
'ၶ',$str); | |
$str = preg_replace('/\x{1039}\x{1014}/u', | |
'ၷ',$str); | |
$str = preg_replace('/\x{1039}\x{1015}/u', | |
'ၸ',$str); | |
$str = preg_replace('/\x{1039}\x{1016}/u', | |
'ၹ',$str); | |
$str = preg_replace('/\x{1039}\x{1017}/u', | |
'ၺ',$str); | |
$str = preg_replace('/\x{1039}\x{1018}/u', | |
'ၻ',$str); | |
$str = preg_replace('/\x{1039}\x{1019}/u', | |
'ၼ',$str); | |
$str = preg_replace('/\x{1039}\x{101c}/u', | |
'ႅ',$str); | |
$str = preg_replace('/\x{100f}\x{1039}\x{100d}/u', | |
'႑',$str); | |
$str = preg_replace('/\x{100b}\x{1039}\x{100c}/u', | |
'႒',$str); | |
$str = preg_replace('/\x{1039}\x{100c}/u', | |
'ၭ',$str); | |
$str = preg_replace('/\x{100b}\x{1039}\x{100b}/u', | |
'႗',$str); | |
$str = preg_replace('/\x{1039}\x{100b}/u', | |
'ၬ',$str); | |
$str = preg_replace('/\x{100e}\x{1039}\x{100d}/u', | |
'ၯ',$str); | |
$str = preg_replace('/\x{100d}\x{1039}\x{100d}/u', | |
'ၮ',$str); | |
$str = preg_replace('/\x{1009}(?=\x{103a})/u', | |
'ဥ',$str); | |
$str = preg_replace('/\x{1025}(?=[\x{1039}\x{102f}\x{1030}])/u', | |
'ၪ',$str); | |
$str = preg_replace('/\x{1025}/u', | |
'ဥ',$str); | |
$str = preg_replace('/\x{103a}/u', | |
'္',$str); | |
$str = preg_replace('/\x{103b}\x{103d}\x{103e}/u', | |
'ၽႊ',$str); | |
$str = preg_replace('/\x{103d}\x{103e}/u', | |
'ႊ',$str); | |
$str = preg_replace('/\x{103b}/u', | |
'်',$str); | |
$str = preg_replace('/\x{103c}/u', | |
'ျ',$str); | |
$str = preg_replace('/\x{103d}/u', | |
'ြ',$str); | |
$str = preg_replace('/\x{103e}/u', | |
'ွ',$str); | |
$str = preg_replace('/\x{103a}(?=[\x{103c}\x{103d}\x{108a}])/u', | |
'ၽ',$str); | |
$str = preg_replace('/(?<=\x{100a}(?:[\x{102d}\x{102e}\x{1036}\x{108b}\x{108c}\x{108d}\x{108e}]))\x{103d}/u', | |
'ႇ',$str); | |
$str = preg_replace('/(?<=\x{100a})\x{103d}/u', | |
'ႇ',$str); | |
$str = preg_replace('/\x{103b}(?=[\x{1000}\x{1003}\x{1006}\x{100f}\x{1010}\x{1011}\x{1018}\x{101a}\x{101c}\x{101e}\x{101f}\x{1021}])/u', | |
'ၾ',$str); | |
$str = preg_replace('/\x{107e}([\x{1000}-\x{1021}\x{108f}])(?=[\x{102d}\x{102e}\x{1036}\x{108b}\x{108c}\x{108d}\x{108e}])/u', | |
'ႀ$1',$str); | |
$str = preg_replace('/\x{107e}([\x{1000}-\x{1021}\x{108f}])(?=[\x{103c}\x{108a}])/u', | |
'ႂ$1',$str); | |
$str = preg_replace('/\x{103b}([\x{1000}-\x{1021}\x{108f}])(?=[\x{102d}\x{102e}\x{1036}\x{108b}\x{108c}\x{108d}\x{108e}])/u', | |
'ၿ$1',$str); | |
$str = preg_replace('/\x{103b}([\x{1000}-\x{1021}\x{108f}])(?=[\x{103c}\x{108a}])/u', | |
'ႁ$1',$str); | |
$str = preg_replace('/(?<=\x{1014})\x{1037}/u', | |
'႔',$str); | |
$str = preg_replace('/(?<=\x{1014}[\x{103a}\x{1032}])\x{1037}/u', | |
'႔',$str); | |
$str = preg_replace('/(?<=\x{1033})\x{1094}/u', | |
'႕',$str); | |
$str = preg_replace('/(?<=\x{1033}[\x{1036}])\x{1094}/u', | |
'႕',$str); | |
$str = preg_replace('/(?<=\x{1034})\x{1094}/u', | |
'႕',$str); | |
$str = preg_replace('/(?<=\x{1034}[\x{1036}])\x{1094}/u', | |
'႕',$str); | |
$str = preg_replace('/(?<=[\x{103c}\x{103d}\x{108a}])\x{1037}/u', | |
'႕',$str); | |
$str = preg_replace('/(?<=[\x{103c}\x{103d}\x{108a}][\x{1032}])\x{1037}/u', | |
'႕',$str); | |
return $str; | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment