Subversion Repositories navi

Compare Revisions

Ignore whitespace Rev 141 → Rev 146

/tsimapiak/parse.py
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/parsenum.py
64,15 → 64,24
numin = numin[:-1]
#base numbers
for n in range(len(num)):
if (numin == num[n]) or (numin == numord[n]):
outoct = n
outdec = n
ret["word"]["navi"] = unicode(outdec) if not u"ve" in posts else unicode(outdec) + u"."
ret["dec"] = outdec
ret["oct"] = outoct
return ret
if u"ve" in posts:
for n in range(len(num)):
if numin == numord[n]:
outoct = n
outdec = n
ret["word"]["navi"] = unicode(outdec) + u"."
ret["dec"] = outdec
ret["oct"] = outoct
return ret
else:
for n in range(len(num)):
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/translate.py
0,0 → 1,10
import parse
 
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/dbconnector.py
20,27 → 20,13
db.close()
return ret
 
def getnavi(word):
ret = []
def translate(wid,language):
db = tornado.database.Connection("127.0.0.1", "navi", user="navi", password="navi")
for row in db.query("""
SELECT *
FROM `metaWords`
WHERE navi = ?""",word):
if row["infixes"]:
ret.append({"id": row["id"], "navi": row["navi"], "infix": row["infixes"].lower(), "type": row["partOfSpeech"]})
else:
ret.append({"id": row["id"], "navi": row["navi"], "infix": row["navi"].lower(), "type": row["partOfSpeech"]})
db.close()
return ret
 
def translate(id,language):
db = tornado.database.Connection("127.0.0.1", "navi", user="navi", password="navi")
for row in db.query("""
SELECT *
FROM `localizedWords`
WHERE id = ? AND languageCode = ?""",id,language):
WHERE id = %s AND languageCode = %s""",wid,language):
ret = row["localized"]
break
db.close()
return ret
return ret
/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,18
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)
def post(self):
try:
word = self.get_argument("word")
except:
self.redirect("/translate")
out = translate.translatesent(word)
self.render("templates/translate.html", last=word, out=out)
 
settings = {
"static_path": os.path.join(os.path.dirname(__file__), "static")
}
66,7 → 79,8
("/number", Number),
("/restart", Restart),
("/testdb", TestDB),
("/parse", Parse)
("/parse", Parse),
("/translate", Translate)
], **settings)
 
if __name__ == "__main__":
/webapp/templates/translate.html
0,0 → 1,45
{% extends "base.html" %}
 
{% block title %}Translator{% end %}
 
{% block body %}
<b>Na'vi sentence:</b><br />
<form action="/parse" method="post">
<input id="word" name="word" type="text" value="{{last}}" style="width: 100%;" />
<input name="btn" type="submit" value="Parse!" />
</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>
{% 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>