Transliterasi teks Rusia untuk mengirim pesan ke Telegram dari Mikrotik RouterOS

Saya baru-baru ini menulis fungsi konverter untuk mengirim pesan dalam bahasa Rusia ke Telegram dari Mikrotik RouterOS, seperti yang dilaporkan di sini .



Sekarang karya tersebut telah dilengkapi dengan pembuatan fungsi transliterasi yang mengubah string teks Rusia menjadi transliterasi alfabet Latin. Selain itu, jika string berisi karakter Latin, maka tidak diterjemahkan, artinya, fungsi tersebut dapat mengirimkan string campuran karakter dan kata sebagai argumen.



Karakter diubah menurut GOST 7.79-2000 (sistem B) . Aturan khusus untuk transliterasi nama tidak diperhitungkan, kecuali untuk konversi khusus dari akhiran "LE" diubah menjadi "IE" dan "OY" sebagai "IJ".



Di bawah ini adalah kode fungsi lengkapnya:



# Function Translite of Russian characters for sending in Telegram
# by Sertik 16/09/2020
# usage [$FuncTransliteToTele " String .,!+"]
:global FuncTransliteToTele do={

:global string; :set $string $1;

#  table of the codes of Russian letters Translite
:local rsimv [:toarray {""="A"; ""="B"; ""="V"; ""="G"; ""="D"; ""="E"; ""="ZH"; ""="Z"; ""="I"; ""="J"; ""="K"; ""="L"; ""="M"; ""="N"; ""="O"; ""="P"; ""="R"; ""="S"; ""="T"; ""="U"; ""="F"; ""="KH"; ""="C"; ""="CH"; ""="SH"; ""="SCH"; ""="``"; ""="Y`"; ""="`"; ""="E`"; ""="JU"; ""="YA"; ""="a"; ""="b"; ""="v"; ""="g"; ""="d"; ""="e"; ""="zh"; ""="z"; ""="i"; ""="j"; ""="k"; ""="l"; ""="m"; ""="n"; ""="o"; ""="p"; ""="r"; ""="s"; ""="t"; ""="u"; ""="f"; ""="kh"; ""="c"; ""="ch"; ""="sh"; ""="sch"; ""="``"; ""="y`"; ""="`"; ""="e`"; ""="ju"; ""="ya"; ""="Yo"; ""="yo"; "№"="#"}]

# encoding of the symbols and ssembly line
:local StrTele ""; :local code "";
:for i from=0 to=([:len $string]-1) do={:local keys [:pick $string $i (1+$i)];

:local key ($rsimv->$keys); if ([:len $key]!=0) do={:set $code ($rsimv->$keys);} else={:set $code $keys};
:if (($keys="")  and ([:pick $string ($i+1) (2+$i)]="")) do={:set $code "I"; :set $i ($i+1)}
:if (($keys="")  and ([:pick $string ($i+1) (2+$i)]="")) do={:set $code "i"; :set $i ($i+1)}
:if (($keys="")  and ([:pick $string ($i+1) (2+$i)]="")) do={:set $code "I"; :set $i ($i+1)}
:if (($keys="")  and ([:pick $string ($i+1) (2+$i)]="")) do={:set $code "i"; :set $i ($i+1)}
:if (($keys="")  and ([:pick $string ($i+1) (2+$i)]="")) do={:set $code "I"; :set $i ($i+1)}
:if (($keys="")  and ([:pick $string ($i+1) (2+$i)]="")) do={:set $code "i"; :set $i ($i+1)}
:if (($keys="")  and ([:pick $string ($i+1) (2+$i)]="")) do={:set $code "i"; :set $i ($i+1)}
:if (($keys="")  and ([:pick $string ($i+1) (2+$i)]="")) do={:set $code "I"; :set $i ($i+1)}
 :set $StrTele ("$StrTele"."$code")}

:set $string $StrTele
:return $string;
}


Berikut contoh cara kerjanya:



:local string [$FuncTransliteToTele "   !  - Russian alfabit  Telegramm.  "]
:log warning $string


Keluaran



log : Privet atau Mikrotik! Rabotaet funksiya-konverter Rusia-alfabit dliya Telegramm. Zayac beliy.



Pengguna dapat mengoreksi tabel transliterasi untuk standar yang digunakannya. Saya berharap ini bermanfaat bagi seseorang. Sekarang Anda bisa tenang mengirim pesan Rusia ke Telegram baik dengan mengonversi ke kode UTF-8 menggunakan fungsi konverter saya dari sini dan dengan transliterasi.



All Articles