Subversion Repositories navi

Compare Revisions

Ignore whitespace Rev 144 → Rev 155

/tsimapiak/parse.py
10,7 → 10,7
infixes1 = (u"awn", u"eyk", u"us", u"äp", u"")
infixes2 = (u"ìyev", u"iyev", u"ìmìy", u"arm", u"asy", u"ilv", u"ìmv", u"imv", u"ìrm", u"irv", u"ìsy", u"aly", u"ary", u"ìly", u"ìry", u"ìlm", u"alm", u"am", u"ay", u"er", u"ìm", u"iv", u"ìy", u"ol", u"")
infixes3 = (u"äng", u"ats", u"eiy", u"ei", u"uy", u"")
prefixes = (u"tsay", u"fay", u"fra", u"pxe", u"fne", u"tsa", u"pe", u"le", u"nì", u"sä", u"tì", u"ay", u"me", u"fì", u"ke", u"a")
prefixes = (u"tsay", u"say", u"fay", u"fra", u"pxe", u"fne", u"tsa", u"sa", u"pe", u"fe", u"le", u"nì", u"sä", u"tì", u"sì" u"ay", u"me", u"fì", u"ke", u"he", u"a")
adpositions = (u"mungwrr", u"kxamlä", u"pximaw", u"pxisre", u"tafkip", u"nemfa", u"takip", u"mìkam", u"teri", u"fkip", u"luke", u"pxel", u"pxaw", u"rofa", u"ìla", u"fpi", u"ftu", u"kip", u"lok", u"maw", u"sre", u"sìn", u"vay", u"eo", u"fa", u"hu", u"io", u"ka", u"mì", u"na", u"ne", u"ro", u"ta", u"uo", u"wä", u"äo", u"to")
postfixes = adpositions + (u"tsyìp", u"eyä", u"ìri", u"ìl", u"it", u"lo", u"ri", u"ru", u"ti", u"ur", u"ve", u"yä", u"ya", u"tu", u"vi", u"yu", u"an", u"ng", u"ke", u"e", u"o", u"l", u"t", u"y", u"a", u"ä", u"r")
#prefixesn = ur"(?P<npr>(?:(?:fì|tsa)?(?:me|pxe|ay|fra)?|(?:fay)?|(?:tsay)?)(?:fne)?(?:tì|sä)?"
127,9 → 127,5
if word == None:
word = parseword(sent[-left:])
left -= len(word["word"]["navi"].split(" "))
if word["word"]["id"] != 0:
word["translated"] = dbconnector.translate(word["word"]["id"],"eng")
else:
word["translated"] = word["word"]["navi"]
ret.append(word)
return ret
/tsimapiak/translate.py
0,0 → 1,10
import parse
import dbconnector
def translatesent(sent, lang):
sent = parse.parsesent(sent)
for word in sent:
if word["word"]["id"] != 0:
word["translated"] = dbconnector.translate(word["word"]["id"],lang)
else:
word["translated"] = word["word"]["navi"]
return sent
/tsimapiak/parsenum.py
56,23 → 56,31
if numin[0] == u"a":
prefs.append(u"a")
numin = numin[1:]
if numin[len(numin)-1] == u"a":
posts.append(u"a")
numin = numin[:-1]
if numin[-2:] == u"ve":
posts.append(u"ve")
numin = numin[:-2]
if numin[len(numin)-1] == u"a":
posts.append(u"a")
numin = numin[:-1]
#base numbers
for n in range(len(num)):
if (numin == num[n]) or (numin == numord[n]):
if u"ve" in posts:
if numin == numord[n]:
outoct = n
outdec = n
ret["word"]["navi"] = unicode(outdec) if not u"ve" in posts else unicode(outdec) + u"."
ret["word"]["navi"] = unicode(outdec) + u"."
ret["dec"] = outdec
ret["oct"] = outoct
return ret
else:
if numin == num[n]:
outoct = n
outdec = n
ret["word"]["navi"] = unicode(outdec)
ret["dec"] = outdec
ret["oct"] = outoct
return ret
#other numbers
for n in range(len(base)):
if numin.startswith(base[n] + u"zazam"):
/tsimapiak/dbconnector.py
25,8 → 25,8
for row in db.query("""
SELECT *
FROM `localizedWords`
WHERE id = %s AND languageCode = %s""",(wid,language)):
WHERE id = %s AND languageCode = %s""",wid,language):
ret = row["localized"]
break
db.close()
return ret
return ret
/webapp/templates/translate.html
0,0 → 1,68
{% extends "base.html" %}
 
{% block title %}Translator{% end %}
 
{% block body %}
<b>Na'vi sentence:</b><br />
<form action="/translate" method="post">
<input id="word" name="word" type="text" value="{{last}}" style="width: 100%;" />
<select name="lang" id="lang">
<option value="eng" selected="selected">English</option>
<option value="hu">Hungarian - Magyar</option>
<option value="de">German - Deutsch</option>
<option value="est">Estonian - Eesti</option>
<option value="ptbr">Brazilian Portuguese - Português do Brasil</option>
</select>
<input name="btn" type="submit" value="Translate!" />
</form>
{% if out %}
<table border="1">
<tr>
<th>Words</th>
<th>English</th>
<th>Parts</th>
<th>Data</th>
</tr>
{% for wor in out %}
<tr>
<td rowspan="4">{{ wor["word"]["navi"] }}</td>
<td rowspan="4">{{ wor["translated"] }}</td>
<td>Infixes:</td>
<td>{{ u", ".join(wor["inf"]) }}</td>
</tr>
<tr>
<td>Prefixes:</td>
<td>{{ u"; ".join(u", ".join(x) for x in wor["pref"]) }}</td>
</tr>
<tr>
<td>Postfixes:</td>
<td>{{ u"; ".join(u", ".join(x) for x in wor["post"]) }}</td>
</tr>
<tr>
<td>Lenited:</td>
<td>{{ str(wor["len"]) }}</td>
</tr>
{% end %}
</table>
{% end %}
<p>This program uses Eana Eltu for the list of words and infix positions (but nothing else), created by Tuiq and Taronyu. Thanks also go to the rest of the Learn Na'vi community!</p>
<script type="text/javascript">
document.getElementById("word").focus();
</script>
{% if lang != "eng" %}
<script type="text/javascript">
if("{{ lang }}" == "hu"){
document.getElementById("lang").selectedIndex = 1
}
if("{{ lang }}" == "de"){
document.getElementById("lang").selectedIndex = 2
}
if("{{ lang }}" == "est"){
document.getElementById("lang").selectedIndex = 3
}
if("{{ lang }}" == "ptbr"){
document.getElementById("lang").selectedIndex = 4
}
</script>
{% end %}
{% end %}
/webapp/templates/parse.html
12,7 → 12,6
<table border="1">
<tr>
<th>Words</th>
<th>English</th>
<th>Parts</th>
<th>Data</th>
</tr>
19,7 → 18,6
{% for wor in out %}
<tr>
<td rowspan="4">{{ wor["word"]["navi"] }}</td>
<td rowspan="4">{{ wor["translated"] }}</td>
<td>Infixes:</td>
<td>{{ u", ".join(wor["inf"]) }}</td>
</tr>
/webapp/main.py
12,6 → 12,7
from tsimapiak import parsenum
from tsimapiak import dbconnector
from tsimapiak import parse
from tsimapiak import translate
 
class Index(tornado.web.RequestHandler):
def get(self):
57,6 → 58,19
out = parse.parsesent(word)
self.render("templates/parse.html", last=word, out=out)
 
class Translate(tornado.web.RequestHandler):
def get(self):
self.render("templates/translate.html", last="", out=None, lang="eng")
def post(self):
try:
word = self.get_argument("word")
lang = self.get_argument("lang")
except:
self.redirect("/translate")
out = translate.translatesent(word, lang)
self.render("templates/translate.html", last=word, out=out, lang=lang)
 
settings = {
"static_path": os.path.join(os.path.dirname(__file__), "static")
}
66,7 → 80,8
("/number", Number),
("/restart", Restart),
("/testdb", TestDB),
("/parse", Parse)
("/parse", Parse),
("/translate", Translate)
], **settings)
 
if __name__ == "__main__":