TL;DR
アルファベットないしはひらがな・カタカナを楔形文字に変換するrubygemとアルファベットのみを楔形文字に変換する
アンドロイドアプリを作ったので、使ってみてね!
rubygems: https://rubygems.org/gems/kusabi
android : https://play.google.com/store/apps/details?id=com.chatram.cuneiform
例
# これはrubygems版
"Unknown".to_cuneiform => 𒌋𒉡𒆠𒉡𒃰𒉾𒉡
"!Unk@no#wn".to_cuneiform => !𒌋𒉡𒆠@𒉡𒃰#𒉾𒉡
"アンノウン".to_cuneiform => 𒀀𒅘𒁖𒌋𒅘
"アンノウン?".to_cuneiform => 𒀀𒅘𒁖𒌋𒅘?
仕組み
タイトルからわかるようにかなり簡単な作りになっており、
https://github.com/ppmasa8/cuneiform/blob/master/lib/translate.dart#L35
List<String> result = [];
List<String> strings = text.toLowerCase().split('');
for (var str in strings) {
String temp;
if (hash[str] != null) {
Runes input = Runes(hash[str]);
temp = String.fromCharCodes(input);
} else {
temp = '';
}
// print(temp);
// print(temp.isNotEmpty);
temp.isNotEmpty ? result.add(temp) : result.add(str);
print(result);
}
// これはアンドロイドアプリ版の実装
予めマップにその文字に対応する楔形文字のユニコードを書いておいて、一文字ずつ置換していくだけの作りになっています。
また、変換できないよっていう文字が入ってきたらエスケープして、その文字は変換せずにそのまま出力します。
雑になってしまったところ
実は楔形文字は年代によっても使われている文字がバラバラだったり、そもそも母音の「お」が存在していないことなりがあったので、正確性には大分欠けます。
最後に
最後まで読んでくれてありがとうございます!
興味があったら使ってみてください!
rubygems: https://rubygems.org/gems/kusabi
android : https://play.google.com/store/apps/details?id=com.chatram.cuneiform