|
|
Line 7: |
Line 7: |
| I used Japanese IME canna under ubuntu compiled from source and changed kana-kanji dictionaries, so that kanji+furigana is written upon entering and converting Japanese text. | | I used Japanese IME canna under ubuntu compiled from source and changed kana-kanji dictionaries, so that kanji+furigana is written upon entering and converting Japanese text. |
| I also made a ordner and a very simple script layout, which is then parsed and styled to wiki with a simple lua script. | | I also made a ordner and a very simple script layout, which is then parsed and styled to wiki with a simple lua script. |
− | | + | <br> |
− | I am using the following script for creating wiki sytnax from more readable file:
| + | Please do not edit the wiki text here directly (you should edit the source files that are parsed by the lua script). If anyone is interested, I'll give you the lua script and how I organize the files, it's much easier to work with. |
− | (click the edit button to view a readable version...)
| |
− | | |
− | <nowiki> | |
− | root = "/home/mad_gaksha/Documents/AT3 Script/"
| |
− | root_out = "/home/mad_gaksha/Documents/AT3 Script (wiki)/"
| |
− | | |
− | file = "Cosmosphere/Finnel/LV04/002"
| |
− | | |
− | furi_plain = false
| |
− | | |
− | hero = "アオと"
| |
− | | |
− | --speaker abbreviations
| |
− | abr = {}
| |
− | abr["ふぃる"] = "フィンネル"
| |
− | | |
− | -- do not change from here on
| |
− | spcl = false
| |
− | heroine = ""
| |
− | | |
− | if string.find(file,"Cosmosphere") or string.find(file,"Talk_Inn") then
| |
− | spcl = true
| |
− | if string.find(file,"Saki") then
| |
− | heroine = "サキ"
| |
− | elseif string.find(file,"Finnel") then
| |
− | heroine = "フィンネル"
| |
− | elseif string.find(file,"Tillia") then
| |
− | heroine = "ティリア"
| |
− | end
| |
− | end
| |
− | | |
− | --add html ruby syntax for furigana
| |
− | function insert_ruby(line)
| |
− | cur_line = line
| |
− | while string.find(cur_line,"+") do
| |
− | sta = string.find(cur_line,"+")
| |
− | beg = string.find(cur_line,"<",sta)
| |
− | ter = string.find(cur_line,">",sta)
| |
− | text = string.sub(cur_line,sta+1,beg-1)
| |
− | furi = string.sub(cur_line,beg+1,ter-1)
| |
− | if furi_plain then
| |
− | ruby = " " .. text .. "(" .. furi .. ")"
| |
− | else
| |
− | ruby = "<ruby><rb>" .. text .. "</rb><rp>(</rp><rt>" .. furi .. "</rt><rp>)</rp></ruby>"
| |
− | end
| |
− | cur_line = string.sub(cur_line,1,sta-1) .. ruby .. string.sub(cur_line,ter+1)
| |
− | end
| |
− | return cur_line
| |
− | end
| |
− | | |
− | input = root .. file
| |
− | output = root_out .. file
| |
− | trans= io.open(input .. "_trans")
| |
− | out = io.open(output .. "_wiki","w")
| |
− | trans_line = ""
| |
− | | |
− | line_no = 0
| |
− | | |
− | for line in io.lines(input) do
| |
− | | |
− | line_no = line_no+1
| |
− | --for syntax error in source, make locating them easier
| |
− | print("Now processing line " .. line_no .. ".")
| |
− | | |
− | first_char = string.sub(line,1,3)
| |
− | secnd_char = string.sub(line,4,6)
| |
− | | |
− | if first_char == "*" then
| |
− | if secnd_char == "*" then
| |
− | --comment,language explanation
| |
− | out:write("*" .. insert_ruby(string.sub(line,7)) .. "\n<br>\n")
| |
− | else
| |
− | --contextual comment
| |
− | out:write("'''CONTEXT''': " .. insert_ruby(string.sub(line,4)) .. "\n<br>\n")
| |
− | end
| |
− | elseif first_char=="(" then
| |
− | --location,time,event
| |
− | out:write("==" .. insert_ruby(string.sub(line,4,#line-3)) .. "==" .. "\n<br><br>\n")
| |
− | elseif #line>2 then --spoken line
| |
− | | |
− | --get translated line, if existing
| |
− | if trans then
| |
− | repeat
| |
− | trans_line = trans:read()
| |
− | if not trans_line then
| |
− | trans = false
| |
− | trans_line = "???"
| |
− | break
| |
− | end
| |
− | until #trans_line>2 --avoid accidental spaces and empty lines
| |
− | else
| |
− | trans_line = "???"
| |
− | end
| |
− |
| |
− | --get speaker
| |
− | speaker = ""
| |
− | if first_char == " " then
| |
− | speaker = heroine
| |
− | line = string.sub(line,4)
| |
− | elseif first_char == "_" then
| |
− | speaker = hero
| |
− | line = string.sub(line,4)
| |
− | else
| |
− | space = string.find(line," ")
| |
− | if space then
| |
− | speaker = string.sub(line,1,space-1)
| |
− | line = string.sub(line,space+3)
| |
− | if abr[speaker] then
| |
− | speaker = abr[speaker]
| |
− | end
| |
− | else
| |
− | speaker = "[N/A]"
| |
− | end
| |
− | end
| |
− | --print(speaker .. ": " .. line)
| |
− | | |
− | cur_line = line
| |
− | cur_line_furi = line
| |
− | while string.find(cur_line,"+") do
| |
− | sta = string.find(cur_line ,"+")
| |
− | sta_furi = string.find(cur_line_furi,"+")
| |
− | beg = string.find(cur_line ,"<",sta )
| |
− | beg_furi = string.find(cur_line_furi,"<",sta_furi)
| |
− | ter = string.find(cur_line ,">",sta )
| |
− | ter_furi = string.find(cur_line_furi,">",sta_furi)
| |
− | text = string.sub(cur_line,sta+1,beg-1)
| |
− | furi = string.sub(cur_line,beg+1,ter-1)
| |
− | cur_line = string.sub(cur_line ,1,sta -1) .. text .. string.sub(cur_line ,ter +1)
| |
− | cur_line_furi = string.sub(cur_line_furi,1,sta_furi-1) .. furi .. string.sub(cur_line_furi,ter_furi+1)
| |
− | end
| |
− | if string.find(cur_line,"<hym>") then
| |
− | --currently only whole dialogue lines implemented in wiki syntax...
| |
− | cur_line = string.gsub(cur_line,"<hym>","")
| |
− | cur_line = string.gsub(cur_line,"</hym>","")
| |
− | out:write("{{Hy-r-en|speaker=" .. speaker .. "\n|" .. cur_line .. "\n|" .. trans_line .. "}}" .. "\n<br>\n")
| |
− | else
| |
− | out:write("{{jp-r-en|speaker=" .. speaker .. "\n|" .. cur_line .. "\n|" .. cur_line_furi .. "\n|" .. trans_line .. "}}" .. "\n<br>\n")
| |
− | end
| |
− | end
| |
− | end
| |
− | | |
− | out:close()
| |
− | </nowiki>
| |