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
+8.7k Golang : Inject/embed Javascript before sending out to browser example
+33.7k Golang : Create x509 certificate, private and public keys
+8k Golang : Auto-generate reply email with text/template package
+21.8k Golang : Match strings by wildcard patterns with filepath.Match() function
+13.7k Golang : Get current time
+13.4k Golang : Query string with space symbol %20 in between
+5.7k Golang : Detect variable or constant type
+24.2k Golang : Time slice or date sort and reverse sort example
+16.1k Golang : Convert slice to array
+7.9k Golang : Multiplexer with net/http and map
+7.3k Golang : How to stop user from directly running an executable file?
+8.4k Golang : Set or add headers for many or different handlers