Golang : Experimenting with the Rejang script
Someone informed me that I should take a look at the Rejang script(not to be confused with the Rencong script) and the script was in use prior to the introduction of Islam to the Rejang area.
Rejang was used to write texts in Malay and Rejang, which is now spoken by about 200,000 people living in Indonesia on the south-west highland of Sumatra island.
Below is a program on how to map Latin alphabets to Rejang alphabets using Golang's map and use unicode.Rejang
range table to verify if the character is a Rejang script or not. In order to display the Rejang alphabets properly on the terminal or any software, you will need to install the Rejang True Type fonts first.
Go to https://www.google.com/get/noto/ , search for Rejang and you should be able to see a selection of available fonts.
To view the Rejang characters properly instead of viewing the "tofu" square box, please download and install the true type fonts and restart your terminal, browser and if needed .... please reboot your computer.
NOTE: I am not a Rejang native speaker or a professional linguist. I'm just experimenting on how to write a Golang program to interact with the Rejang script. Any translations attempt by me should not be taken seriously.
Here you go!
// ---------IMPORTANT! Rencong != Rejang -----------------------
//
// See the Australian National University's Rejang-Indonesian-English dictionary - research and brief discussions of M.A. Jaspan's work.
// https://openresearch-repository.anu.edu.au/bitstream/1885/145379/1/PL-D58.pdf
// and
// Description of Rejang language at https://www.omniglot.com/writing/redjang.htm
// Unicode font for Rejang
// https://unicode.org/charts/PDF/UA930.pdf
// Golang has support for Rejang. See Golang's unicode.Rejang RangeTable variable
// To properly render the Rejang font, please download the Rejang font at https://www.google.com/get/noto/
// After installing the Rejang True Type font, you will see the proper Rejang font instead of seeing "tofu" (square box),
package main
import (
"log"
"unicode"
)
// sourced from https://scriptsource.org/cms/scripts/page.php?item_id=script_detail_sym&key=Rjng
var latinRejangMap = map[string]string{
"ka": "ꤰ",
"ga": "ꤱ",
"nga": "ꤲ",
"ta": "ꤳ",
"da": "ꤴ",
"na": "ꤵ",
"pa": "ꤶ",
"ba": "ꤷ",
"ma": "ꤸ",
"ca": "ꤹ",
"ja": "ꤺ",
"nya": "ꤻ",
"sa": "ꤼ",
"ra": "ꤽ",
"la": "ꤾ",
"ya": "ꤿ",
"wa": "ꥀ",
"ha": "ꥁ",
"mba": "ꥂ",
"ngga": "ꥃ",
"nda": "ꥄ",
"nyja": "ꥅ",
"a": "ꥆ",
"i": "ꥇ",
"u": "ꥈ",
"e": "ꥉ",
"ai": "ꥊ",
"o": "ꥋ",
"au": "ꥌ",
"eu": "ꥍ",
"ea": "ꥎ",
"ng": "ꥏ",
"n": "ꥐ",
"r": "ꥑ",
"h": "ꥒ",
"virama": "꥓",
"section_mark": "꥟",
}
func main() {
// sanity check
//for k,v := range latinRejangMap {
// log.Println(k,v, checkifRejang(v))
//}
// bahwa sesungguhnya kemerdekaan itu ialah hak segala bangsa, dan oleh sebab itu maka
// perjajahan diatas dunias harus dihapuskan. Karena tidak sesuai dengan perikemanusiaan dan perikeadilan.
// bahwa should be bawa I think
testInputString := []string{"ba", "wa"}
var finalResult string
for i, j := range testInputString {
log.Println(i, string(j), latinRejangMap[string(j)])
finalResult = finalResult + latinRejangMap[string(j)]
}
log.Println("bawa --> ", finalResult)
}
// checkifRejang - check if input is Rejang scripts or not.
func checkifRejang(input string) bool {
var isRejang = false
for _, v := range input {
if unicode.In(v, unicode.Rejang) {
isRejang = true
} else {
isRejang = false
}
}
return isRejang
}
Happy coding!
References:
Claimed to have connection with ancient Egyptian. Worth reading. http://rejang-lebong.blogspot.com/2008/04/egyptian-and-west-semitic-words-in.html
https://en.wikipedia.org/wiki/Rejang_script
https://scriptsource.org/cms/scripts/page.php?itemid=scriptdetail&key=Rjng
See also : Golang : Example of how to detect which type of script a word belongs to
By Adam Ng(黃武俊)
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+11.5k Golang : Verify Linux user password again before executing a program example
+8.7k Golang : Populate or initialize struct with values example
+6.9k Golang : Get environment variable
+18.3k Golang : Generate thumbnails from images
+17.3k How to enable MariaDB/MySQL logs ?
+10.8k Golang : Generate random elements without repetition or duplicate
+7.6k Golang : Get today's weekday name and calculate target day distance example
+12.2k Elastic Search : Return all records (higher than default 10)
+11k Golang : How to use if, eq and print properly in html template
+5.3k PHP : Fix Call to undefined function curl_init() error
+6.5k Golang : Output or print out JSON stream/encoded data
+16.5k Golang : Set up source IP address before making HTTP request