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