summaryrefslogtreecommitdiff
path: root/src/ui/android
diff options
context:
space:
mode:
authorkr.angelov <kr.angelov@gmail.com>2013-11-28 12:48:55 +0000
committerkr.angelov <kr.angelov@gmail.com>2013-11-28 12:48:55 +0000
commit5475dd7613705b2e8c3483f66796937cd0542e52 (patch)
treea860018ac723c6f34cccf74323f86bddc8602cd7 /src/ui/android
parent63e338cb8059bd24565afef6a568c5b515381006 (diff)
the Android App now show the valency patterns for verbs in English, Bulgarian and Swedish
Diffstat (limited to 'src/ui/android')
-rw-r--r--src/ui/android/res/xml/inflection_bg.xml74
-rw-r--r--src/ui/android/res/xml/inflection_cmn.xml5
-rw-r--r--src/ui/android/res/xml/inflection_en.xml37
-rw-r--r--src/ui/android/res/xml/inflection_sv.xml6
-rw-r--r--src/ui/android/src/org/grammaticalframework/ui/android/LexicalEntryActivity.java5
-rw-r--r--src/ui/android/src/org/grammaticalframework/ui/android/Translator.java13
6 files changed, 101 insertions, 39 deletions
diff --git a/src/ui/android/res/xml/inflection_bg.xml b/src/ui/android/res/xml/inflection_bg.xml
index 4b3d599cb..17b59460f 100644
--- a/src/ui/android/res/xml/inflection_bg.xml
+++ b/src/ui/android/res/xml/inflection_bg.xml
@@ -160,15 +160,23 @@
<cat>V2</cat>
<cat>V3</cat>
<cat>V2V</cat>
+ <cat>V2S</cat>
+ <cat>V2Q</cat>
+ <cat>V2A</cat>
<cat>VV</cat>
<cat>VS</cat>
+ <cat>VQ</cat>
+ <cat>VA</cat>
<tag>гл</tag>
<template>
- <h1>Глагол от несвършен вид</h1>
-
- <h2>Изявително наклонение</h2>
+ <h1>Глагол</h1>
+ <lin>Feat<cat/> (<lemma/>)</lin>
+
+ <h2>Несвършен вид</h2>
+
+ <h3>Изявително наклонение</h3>
- <h3>Сегашно време</h3>
+ <h4>Сегашно време</h4>
<table class="forms-table" rules="all">
<tr>
<th></th>
@@ -192,7 +200,7 @@
</tr>
</table>
- <h3>Минало свършено време (аорист)</h3>
+ <h4>Минало свършено време (аорист)</h4>
<table class="forms-table" rules="all">
<tr>
<th></th>
@@ -216,7 +224,7 @@
</tr>
</table>
- <h3>Минало несвършено време (имперфект)</h3>
+ <h4>Минало несвършено време (имперфект)</h4>
<table class="forms-table" rules="all">
<tr>
<th></th>
@@ -240,7 +248,7 @@
</tr>
</table>
- <h2>Повелително наклонение</h2>
+ <h3>Повелително наклонение</h3>
<table class="forms-table" rules="all">
<tr>
<th>ед.ч.</th>
@@ -251,10 +259,10 @@
<td><form>s Imperf (VImperative Pl)</form></td>
</tr>
</table>
-
- <h2>Причастия (отглаголни прилагателни)</h2>
-
- <h3>Минало страдателно причастие</h3>
+
+ <h3>Причастия (отглаголни прилагателни)</h3>
+
+ <h4>Минало страдателно причастие</h4>
<table class="forms-table" rules="all">
<tr>
<th rowspan="7">ед.ч.</th>
@@ -299,7 +307,7 @@
</tr>
</table>
- <h3>Минало свършено деятелно причастие</h3>
+ <h4>Минало свършено деятелно причастие</h4>
<table class="forms-table" rules="all">
<tr>
<th rowspan="7">ед.ч.</th>
@@ -344,7 +352,7 @@
</tr>
</table>
- <h3>Минало несвършено деятелно причастие</h3>
+ <h4>Минало несвършено деятелно причастие</h4>
<table class="forms-table" rules="all">
<tr>
<th rowspan="7">ед.ч.</th>
@@ -388,8 +396,8 @@
<td><form>s Imperf (VPluPerfect (APl Def))</form></td>
</tr>
</table>
-
- <h3>Сегашно деятелно причастие</h3>
+
+ <h4>Сегашно деятелно причастие</h4>
<table class="forms-table" rules="all">
<tr>
<th rowspan="7">ед.ч.</th>
@@ -433,14 +441,11 @@
<td><form>s Imperf (VPresPart (APl Def))</form></td>
</tr>
</table>
-
- <h2>Деепричастие (отглаголно наречие)</h2>
- <p><form>s Imperf VGerund</form></p>
-
- <h1>Глагол от свършен вид</h1>
- <h2>Изявително наклонение</h2>
-
- <h3>Сегашно време</h3>
+
+ <h2>Свършен вид</h2>
+ <h3>Изявително наклонение</h3>
+
+ <h4>Сегашно време</h4>
<table class="forms-table" rules="all">
<tr>
<th></th>
@@ -463,8 +468,8 @@
<td><form>s Perf (VPres Pl P3)</form></td>
</tr>
</table>
-
- <h3>Минало свършено време (аорист)</h3>
+
+ <h4>Минало свършено време (аорист)</h4>
<table class="forms-table" rules="all">
<tr>
<th></th>
@@ -487,8 +492,8 @@
<td><form>s Perf (VAorist Pl P3)</form></td>
</tr>
</table>
-
- <h3>Минало несвършено време (имперфект)</h3>
+
+ <h4>Минало несвършено време (имперфект)</h4>
<table class="forms-table" rules="all">
<tr>
<th></th>
@@ -512,7 +517,7 @@
</tr>
</table>
- <h2>Повелително наклонение</h2>
+ <h3>Повелително наклонение</h3>
<table class="forms-table" rules="all">
<tr>
<th>ед.ч.</th>
@@ -524,9 +529,9 @@
</tr>
</table>
- <h2>Причастия (отглаголни прилагателни)</h2>
-
- <h3>Минало свършено деятелно причастие</h3>
+ <h3>Причастия (отглаголни прилагателни)</h3>
+
+ <h4>Минало свършено деятелно причастие</h4>
<table class="forms-table" rules="all">
<tr>
<th rowspan="7">ед.ч.</th>
@@ -571,7 +576,7 @@
</tr>
</table>
- <h3>Минало несвършено деятелно причастие</h3>
+ <h4>Минало несвършено деятелно причастие</h4>
<table class="forms-table" rules="all">
<tr>
<th rowspan="7">ед.ч.</th>
@@ -615,7 +620,7 @@
<td><form>s Perf (VPluPerfect (APl Def))</form></td>
</tr>
</table>
-
+
<h1>Отглаголно съществително</h1>
<table class="forms-table" rules="all">
<tr>
@@ -637,6 +642,9 @@
<td><form>s Imperf (VNoun (NF Pl Def))</form></td>
</tr>
</table>
+
+ <h1>Деепричастие (отглаголно наречие)</h1>
+ <p><form>s Imperf VGerund</form></p>
</template>
</inflection>
</inflection_template>
diff --git a/src/ui/android/res/xml/inflection_cmn.xml b/src/ui/android/res/xml/inflection_cmn.xml
index 58cb7607c..82cc6926a 100644
--- a/src/ui/android/res/xml/inflection_cmn.xml
+++ b/src/ui/android/res/xml/inflection_cmn.xml
@@ -54,8 +54,13 @@
<cat>V2</cat>
<cat>V3</cat>
<cat>V2V</cat>
+ <cat>V2S</cat>
+ <cat>V2Q</cat>
+ <cat>V2A</cat>
<cat>VV</cat>
<cat>VS</cat>
+ <cat>VQ</cat>
+ <cat>VA</cat>
<tag>v</tag>
<template>
<h1>Verb</h1>
diff --git a/src/ui/android/res/xml/inflection_en.xml b/src/ui/android/res/xml/inflection_en.xml
index 47ec449a5..238f096a4 100644
--- a/src/ui/android/res/xml/inflection_en.xml
+++ b/src/ui/android/res/xml/inflection_en.xml
@@ -79,11 +79,16 @@
<cat>V2</cat>
<cat>V3</cat>
<cat>V2V</cat>
- <cat>VV</cat>
+ <cat>V2S</cat>
+ <cat>V2Q</cat>
+ <cat>V2A</cat>
<cat>VS</cat>
+ <cat>VQ</cat>
+ <cat>VA</cat>
<tag>v</tag>
<template>
<h1>Verb</h1>
+ <p><lin>Feat<cat/> (<lemma/>)</lin></p>
<table class="forms-table" rules="all">
<tr>
<th>infitive</th>
@@ -108,4 +113,34 @@
</table>
</template>
</inflection>
+ <inflection>
+ <cat>VV</cat>
+ <tag>v</tag>
+ <template>
+ <h1>Verb</h1>
+ <p><lin>Feat<cat/> (<lemma/>)</lin></p>
+ <table class="forms-table" rules="all">
+ <tr>
+ <th>infitive</th>
+ <td><form>s (VVF VInf)</form></td>
+ </tr>
+ <tr>
+ <th>present</th>
+ <td><form>s (VVF VPres)</form>&#160;<form>s VVPresNeg</form></td>
+ </tr>
+ <tr>
+ <th>past</th>
+ <td><form>s (VVF VPast)</form>&#160;<form>s VVPastNeg</form></td>
+ </tr>
+ <tr>
+ <th>past part.</th>
+ <td><form>s (VVF VPPart)</form></td>
+ </tr>
+ <tr>
+ <th>present part.</th>
+ <td><form>s (VVF VPresPart)</form></td>
+ </tr>
+ </table>
+ </template>
+ </inflection>
</inflection_template>
diff --git a/src/ui/android/res/xml/inflection_sv.xml b/src/ui/android/res/xml/inflection_sv.xml
index 229762cae..e05774f6e 100644
--- a/src/ui/android/res/xml/inflection_sv.xml
+++ b/src/ui/android/res/xml/inflection_sv.xml
@@ -132,11 +132,17 @@
<cat>V2</cat>
<cat>V3</cat>
<cat>V2V</cat>
+ <cat>V2S</cat>
+ <cat>V2Q</cat>
+ <cat>V2A</cat>
<cat>VV</cat>
<cat>VS</cat>
+ <cat>VQ</cat>
+ <cat>VA</cat>
<tag>v</tag>
<template>
<h1>Verb</h1>
+ <p><lin>Feat<cat/> (<lemma/>)</lin></p>
<table class="forms-table" rules="all">
<tr>
<th></th>
diff --git a/src/ui/android/src/org/grammaticalframework/ui/android/LexicalEntryActivity.java b/src/ui/android/src/org/grammaticalframework/ui/android/LexicalEntryActivity.java
index 60c6b45b2..8c692a471 100644
--- a/src/ui/android/src/org/grammaticalframework/ui/android/LexicalEntryActivity.java
+++ b/src/ui/android/src/org/grammaticalframework/ui/android/LexicalEntryActivity.java
@@ -89,6 +89,10 @@ public class LexicalEntryActivity extends ListActivity {
}
private void expand(View view, String lemma) {
+ String html = mTranslator.getInflectionTable(lemma);
+ if (html == null)
+ return;
+
ImageView arrow = (ImageView) view.findViewById(R.id.arrow);
arrow.setImageResource(R.drawable.close_arrow);
@@ -102,7 +106,6 @@ public class LexicalEntryActivity extends ListActivity {
((RelativeLayout) view).addView(inflectionView, params);
}
- String html = mTranslator.getInflectionTable(lemma);
inflectionView.loadData(html, "text/html; charset=UTF-8", null);
expandedView = view;
diff --git a/src/ui/android/src/org/grammaticalframework/ui/android/Translator.java b/src/ui/android/src/org/grammaticalframework/ui/android/Translator.java
index d4709ed7d..6aca6723e 100644
--- a/src/ui/android/src/org/grammaticalframework/ui/android/Translator.java
+++ b/src/ui/android/src/org/grammaticalframework/ui/android/Translator.java
@@ -3,6 +3,7 @@ package org.grammaticalframework.ui.android;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.XmlResourceParser;
+import android.text.TextUtils;
import android.util.Log;
import org.grammaticalframework.pgf.Concr;
@@ -213,14 +214,17 @@ public class Translator {
}
public String getInflectionTable(String lemma) {
- String cat = getGrammar().getFunctionType(lemma).getCategory();
+ Concr targetLang = getConcr(getTargetLanguage().getConcrete());
+
+ if (!targetLang.hasLinearization(lemma))
+ return null;
int res = getTargetLanguage().getInflectionResource();
if (res == 0)
return "";
+ String cat = getGrammar().getFunctionType(lemma).getCategory();
Expr expr = Expr.readExpr(lemma);
- Concr targetLang = getConcr(getTargetLanguage().getConcrete());
Map<String,String> lins = targetLang.tabularLinearize(expr);
XmlResourceParser parser = mContext.getResources().getXml(res);
StringBuilder builder = new StringBuilder();
@@ -277,7 +281,8 @@ public class Translator {
form = false;
} else if (state == 4 && lin && "lin".equals(parser.getName())) {
Expr expr2 = Expr.readExpr(abstrBuilder.toString());
- builder.append(targetLang.linearize(expr2));
+ builder.append(TextUtils.htmlEncode(targetLang.linearize(expr2)));
+ lin = false;
emit = true;
} else if (state == 4 && emit) {
builder.append("</"+parser.getName()+">");
@@ -291,7 +296,7 @@ public class Translator {
if (form) {
String s = lins.get(parser.getText());
if (s != null)
- builder.append(s);
+ builder.append(TextUtils.htmlEncode(s));
} else {
builder.append(parser.getText());
}