summaryrefslogtreecommitdiff
path: root/src/ui
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2017-04-12 14:21:54 +0000
committeraarne <aarne@chalmers.se>2017-04-12 14:21:54 +0000
commit7963c8536799c6b4cbeab4ebd106d88bf7185977 (patch)
treeaa93d87a77ef26ca477b2ddfc2f3e940363b84bc /src/ui
parente369427990e9914a9c92e9e68849d674ada2e384 (diff)
Translator.java in android app now tries to find the lowercased first word in the lexicon if uppercased fails; added Est and Rus in the help file
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/android/assets/help_content.html8
-rw-r--r--src/ui/android/src/org/grammaticalframework/ui/android/Translator.java26
2 files changed, 30 insertions, 4 deletions
diff --git a/src/ui/android/assets/help_content.html b/src/ui/android/assets/help_content.html
index 9d1440f2d..e65f79584 100644
--- a/src/ui/android/assets/help_content.html
+++ b/src/ui/android/assets/help_content.html
@@ -2,7 +2,7 @@
<body>
</p>
<b>GF Offline Translator</b>:
-text and speech translation for 14 languages with
+text and speech translation for 16 languages with
quality control
</p>
<p>
@@ -82,15 +82,17 @@ The following table gives a rough idea of what to expect:
<tr> <th></th> <th>coverage</th> <th>quality</th> <th>speed</th> <th>speech</th> </tr>
<tr> <th>Bulgarian</th> <td bgcolor=yellow></td> <td bgcolor=yellow></td><td bgcolor=palegreen></td> <td bgcolor=yellow>in only</td></tr>
<tr> <th>Catalan</th> <td bgcolor=pink></td> <td bgcolor=yellow></td><td bgcolor=pink></td> <td bgcolor=yellow>in only</td></tr>
-<tr> <th>Chinese*</th> <td bgcolor=pink></td> <td bgcolor=pink></td> <td bgcolor=palegreen></td> <td bgcolor=yellow></td> </tr>
+<tr> <th>Chinese*</th> <td bgcolor=pink></td> <td bgcolor=pink></td> <td bgcolor=palegreen></td> <td bgcolor=yellow></td> </tr>
<tr> <th>Dutch</th> <td bgcolor=yellow></td> <td bgcolor=yellow></td> <td bgcolor=yellow></td> <td bgcolor=palegreen></td> </tr>
<tr> <th>English</th> <td bgcolor=palegreen></td> <td bgcolor=palegreen></td> <td bgcolor=palegreen></td> <td bgcolor=palegreen></td> </tr>
+<tr> <th>Estonian</th> <td bgcolor=yellow></td> <td bgcolor=yellow></td><td bgcolor=pink></td> <td bgcolor=red></td></tr>
<tr> <th>Finnish</th> <td bgcolor=yellow></td> <td bgcolor=yellow></td><td bgcolor=pink></td> <td bgcolor=yellow>in only</td></tr>
<tr> <th>French</th> <td bgcolor=pink></td> <td bgcolor=yellow></td><td bgcolor=pink></td> <td bgcolor=palegreen></td></tr>
<tr> <th>German</th> <td bgcolor=pink></td> <td bgcolor=yellow></td><td bgcolor=pink></td> <td bgcolor=palegreen></td></tr>
<tr> <th>Hindi</th> <td bgcolor=pink></td> <td bgcolor=red></td> <td bgcolor=yellow></td> <td bgcolor=yellow>in only</td> </tr>
<tr> <th>Italian</th> <td bgcolor=pink></td> <td bgcolor=pink></td><td bgcolor=pink></td> <td bgcolor=palegreen></td></tr>
-<tr> <th>Japanese**</th> <td bgcolor=pink></td> <td bgcolor=pink></td><td bgcolor=yellow></td> <td bgcolor=palegreen></td></tr>
+<tr> <th>Japanese**</th><td bgcolor=pink></td> <td bgcolor=pink></td><td bgcolor=yellow></td> <td bgcolor=palegreen></td></tr>
+<tr> <th>Russian</th> <td bgcolor=pink></td> <td bgcolor=red></td> <td bgcolor=yellow></td> <td bgcolor=yellow></td> </tr>
<tr> <th>Spanish</th> <td bgcolor=pink></td> <td bgcolor=yellow></td><td bgcolor=pink></td> <td bgcolor=palegreen></td></tr>
<tr> <th>Swedish</th> <td bgcolor=yellow></td> <td bgcolor=yellow></td> <td bgcolor=palegreen></td> <td bgcolor=yellow>in only</td></tr>
<tr> <th>Thai**</th> <td bgcolor=pink></td> <td bgcolor=pink></td><td bgcolor=yellow></td> <td bgcolor=palegreen></td></tr>
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 3ed06b1c4..47f949cdd 100644
--- a/src/ui/android/src/org/grammaticalframework/ui/android/Translator.java
+++ b/src/ui/android/src/org/grammaticalframework/ui/android/Translator.java
@@ -291,6 +291,28 @@ public class Translator {
return output ;
}
+ // lowercase the first word if (1) it is not in the lexicon and (2) its lowercase version is in the lexicon
+ // otherwise it will be left uppercase and treated as a name
+ private String lowercaseIfBetter(String input) {
+ String[] words = input.split(" ") ;
+
+ String firstword = words[0] ;
+
+ String lowerfirstword = firstword.toLowerCase() ;
+
+ if (lookupMorpho(firstword).isEmpty() && !(lookupMorpho(lowerfirstword).isEmpty())) {
+ words[0] = lowerfirstword ;
+ String output = "" ;
+ for (String w : words) {
+ output = output + " " + w ;
+ }
+ return output ;
+ } else {
+ return input ;
+ }
+
+ }
+
/**
* Takes a lot of time. Must not be called on the main thread.
*/
@@ -298,7 +320,9 @@ public class Translator {
if (getSourceLanguage().getLangCode().equals("cmn-Hans-CN")) {
// for Chinese we need to put space after every character
input = explode(input);
- }
+ } else {
+ input = lowercaseIfBetter(input);
+ } ;
String output = null;
List<ExprProb> exprs = new ArrayList<ExprProb>();