Skip to content

Commit c9323aa

Browse files
authored
Merge pull request #177 from niedev/development
Integration of tatoeba for simple sentences translation
2 parents 15878f8 + 244b51b commit c9323aa

27 files changed

Lines changed: 2555 additions & 656 deletions

.idea/misc.xml

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apks/RTranslator_3.0.0_alpha2.apk

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version https://git-lfs.github.com/spec/v1
2+
oid sha256:c66f7fedc82d0ae8f0c4f4f1dad0de63ac7a3af2e3334878f81fdce7004d4ba2
3+
size 207746365

app/build.gradle

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,10 @@ dependencies {
125125
implementation "ai.djl.android:core:0.33.0"
126126
implementation "ai.djl.huggingface:tokenizers:0.33.0"
127127
implementation "ai.djl.android:tokenizer-native:0.33.0"
128+
//protobuf
129+
implementation "com.google.protobuf:protobuf-javalite:4.33.5"
130+
// bouncycastle crypto lib
131+
implementation "org.bouncycastle:bcprov-jdk15to18:1.83"
128132

129133
//implementation 'androidx.core:core-ktx:1.10.0'
130134
implementation 'androidx.work:work-runtime:2.7.1'
@@ -140,6 +144,7 @@ dependencies {
140144
implementation 'com.google.mlkit:language-id:17.0.5'
141145
//JWS parser
142146
implementation group: 'com.nimbusds', name: 'nimbus-jose-jwt', version: '5.1'
147+
implementation files('libs/sqlite4java-android-release.aar')
143148
//Room library (database)
144149
def room_version = '2.1.0'
145150
implementation "androidx.room:room-runtime:$room_version"
1.84 MB
Binary file not shown.

app/src/main/cpp/src/BergamotTranslator.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,11 @@ std::vector<std::string> translateMultiple(std::vector<std::string> &&inputs, co
7373

7474
// Assume models are already loaded in cache
7575
if (srcLang != "en") {
76-
if(model_cache.find(srcLang) == model_cache.end()) throw std::runtime_error("Missing loaded src model");
76+
if(model_cache.find(srcLang) == model_cache.end()) throw std::runtime_error("Missing loaded src model: "+srcLang);
7777
firstModel = model_cache[srcLang]->toEnglishModel;
7878
}
7979
if (trgLang != "en") {
80-
if(model_cache.find(trgLang) == model_cache.end()) throw std::runtime_error("Missing loaded trg model");
80+
if(model_cache.find(trgLang) == model_cache.end()) throw std::runtime_error("Missing loaded trg model: "+trgLang);
8181
secondModel = model_cache[trgLang]->fromEnglishModel;
8282
}
8383

app/src/main/java/nie/translator/rtranslator/Global.java

Lines changed: 39 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import nie.translator.rtranslator.access.AccessActivity;
4444
import nie.translator.rtranslator.tools.CustomLocale;
4545
import nie.translator.rtranslator.tools.TTS;
46+
import nie.translator.rtranslator.voice_translation._conversation_mode._conversation.ConversationService;
4647
import nie.translator.rtranslator.voice_translation._conversation_mode.communication.ConversationBluetoothCommunicator;
4748
import nie.translator.rtranslator.bluetooth.BluetoothCommunicator;
4849
import nie.translator.rtranslator.bluetooth.Peer;
@@ -85,6 +86,7 @@ public enum RTranslatorMode {
8586
private Handler mainHandler;
8687
private static Handler mHandler = new Handler();
8788
private final Object lock = new Object();
89+
private boolean useTatoeba;
8890

8991
@Override
9092
public void onCreate() {
@@ -98,6 +100,8 @@ public void onCreate() {
98100
//initializeBluetoothCommunicator();
99101
getMicSensitivity();
100102
createNotificationChannel();
103+
SharedPreferences sharedPreferences = getSharedPreferences("default", Context.MODE_PRIVATE);
104+
useTatoeba = sharedPreferences.getBoolean("useTatoeba", false);
101105
}
102106

103107
public void initializeTranslator(Translator.GeneralListener initListener){
@@ -430,6 +434,12 @@ public void setLanguage(CustomLocale language) {
430434
SharedPreferences.Editor editor = sharedPreferences.edit();
431435
editor.putString("language", language.getCode());
432436
editor.apply();
437+
if(ConversationService.isRunning){
438+
translator.loadTgtLangResourcesForConversation(language, null);
439+
if(getBluetoothCommunicator() != null){
440+
getBluetoothCommunicator().sendLanguage(language);
441+
}
442+
}
433443
}
434444

435445
public void setFirstLanguage(CustomLocale language, @Nullable Translator.GeneralListener listener) {
@@ -438,11 +448,7 @@ public void setFirstLanguage(CustomLocale language, @Nullable Translator.General
438448
SharedPreferences.Editor editor = sharedPreferences.edit();
439449
editor.putString("firstLanguage", language.getCode());
440450
editor.apply();
441-
if(translator.getMode() == Translator.MOZILLA) {
442-
translator.loadMozillaModels(language, getSecondLanguage(true), RTranslatorMode.WALKIE_TALKIE_MODE, listener);
443-
}else{
444-
if(listener != null) listener.onSuccess();
445-
}
451+
loadLanguagesResources(language, getSecondLanguage(true), RTranslatorMode.WALKIE_TALKIE_MODE, listener);
446452
}
447453

448454
public void setSecondLanguage(CustomLocale language, @Nullable Translator.GeneralListener listener) {
@@ -451,11 +457,7 @@ public void setSecondLanguage(CustomLocale language, @Nullable Translator.Genera
451457
SharedPreferences.Editor editor = sharedPreferences.edit();
452458
editor.putString("secondLanguage", language.getCode());
453459
editor.apply();
454-
if(translator.getMode() == Translator.MOZILLA) {
455-
translator.loadMozillaModels(getFirstLanguage(true), language, RTranslatorMode.WALKIE_TALKIE_MODE, listener);
456-
}else{
457-
if(listener != null) listener.onSuccess();
458-
}
460+
loadLanguagesResources(getFirstLanguage(true), language, RTranslatorMode.WALKIE_TALKIE_MODE, listener);
459461
}
460462

461463
public void setFirstTextLanguage(CustomLocale language, @Nullable Translator.GeneralListener listener) {
@@ -464,11 +466,7 @@ public void setFirstTextLanguage(CustomLocale language, @Nullable Translator.Gen
464466
SharedPreferences.Editor editor = sharedPreferences.edit();
465467
editor.putString("firstTextLanguage", language.getCode());
466468
editor.apply();
467-
if(translator.getMode() == Translator.MOZILLA) {
468-
translator.loadMozillaModels(language, getSecondTextLanguage(true), RTranslatorMode.TEXT_TRANSLATION_MODE, listener);
469-
}else{
470-
if(listener != null) listener.onSuccess();
471-
}
469+
loadLanguagesResources(language, getSecondTextLanguage(true), RTranslatorMode.TEXT_TRANSLATION_MODE, listener);
472470
}
473471

474472
public void setSecondTextLanguage(CustomLocale language, @Nullable Translator.GeneralListener listener) {
@@ -478,24 +476,20 @@ public void setSecondTextLanguage(CustomLocale language, @Nullable Translator.Ge
478476
SharedPreferences.Editor editor = sharedPreferences.edit();
479477
editor.putString("secondTextLanguage", language.getCode());
480478
editor.apply();
481-
if(translator.getMode() == Translator.MOZILLA) {
482-
translator.loadMozillaModels(getFirstTextLanguage(true), language, RTranslatorMode.TEXT_TRANSLATION_MODE, listener);
483-
}else{
484-
if(listener != null) listener.onSuccess();
485-
}
479+
loadLanguagesResources(getFirstTextLanguage(true), language, RTranslatorMode.TEXT_TRANSLATION_MODE, listener);
486480
}
487481

488-
public void switchTextLanguages(){
482+
public void switchTextLanguages(@Nullable Translator.GeneralListener listener) {
489483
CustomLocale firstLanguage = getFirstTextLanguage(true);
490484
CustomLocale secondLanguage = getSecondTextLanguage(true);
491485
this.firstTextLanguage = secondLanguage;
492486
this.secondTextLanguage = firstLanguage;
493-
if(translator.getMode() == Translator.MOZILLA) translator.loadMozillaModels(secondLanguage, firstLanguage, RTranslatorMode.TEXT_TRANSLATION_MODE, null);
494487
SharedPreferences sharedPreferences = this.getSharedPreferences("default", Context.MODE_PRIVATE);
495488
SharedPreferences.Editor editor = sharedPreferences.edit();
496489
editor.putString("firstTextLanguage", this.firstTextLanguage.getCode());
497490
editor.putString("secondTextLanguage", this.secondTextLanguage.getCode());
498491
editor.apply();
492+
loadLanguagesResources(secondLanguage, firstLanguage, RTranslatorMode.TEXT_TRANSLATION_MODE, listener);
499493
}
500494

501495

@@ -579,6 +573,24 @@ public void setBeamSize(int value) {
579573
editor.apply();
580574
}
581575

576+
public boolean isUseTatoeba(){
577+
return useTatoeba;
578+
}
579+
580+
public void setUseTatoeba(boolean useTatoeba) {
581+
this.useTatoeba = useTatoeba;
582+
final SharedPreferences sharedPreferences = this.getSharedPreferences("default", Context.MODE_PRIVATE);
583+
SharedPreferences.Editor editor = sharedPreferences.edit();
584+
editor.putBoolean("useTatoeba", useTatoeba);
585+
editor.apply();
586+
// loading of tatoeba
587+
if(useTatoeba) {
588+
translator.loadAllTatoebaResources(null);
589+
}else{
590+
translator.unloadAllTatoebaResources();
591+
}
592+
}
593+
582594
public String getName() {
583595
if (name.length() == 0) {
584596
final SharedPreferences sharedPreferences = this.getSharedPreferences("default", Context.MODE_PRIVATE);
@@ -594,7 +606,7 @@ public void setName(String savedName) {
594606
editor.putString("name", savedName);
595607
editor.apply();
596608
if(getBluetoothCommunicator() != null) {
597-
getBluetoothCommunicator().setName(savedName); //si aggiorna il nome anche per il comunicator
609+
getBluetoothCommunicator().setName(savedName); //we update the name also for communicator
598610
}
599611
}
600612

@@ -718,5 +730,9 @@ public boolean isNetworkOnWifi() {
718730
return false; // user turned off wifi
719731
}
720732
}
733+
734+
private void loadLanguagesResources(CustomLocale firstLanguage, CustomLocale secondLanguage, RTranslatorMode mode, Translator.GeneralListener listener){
735+
translator.loadLanguageResources(firstLanguage, secondLanguage, mode, listener);
736+
}
721737
}
722738

app/src/main/java/nie/translator/rtranslator/database/AppDatabase.java renamed to app/src/main/java/nie/translator/rtranslator/databases/general/AppDatabase.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@
1414
* limitations under the License.
1515
*/
1616

17-
package nie.translator.rtranslator.database;
17+
package nie.translator.rtranslator.databases.general;
1818

1919
import androidx.room.RoomDatabase;
20-
import nie.translator.rtranslator.database.dao.MyDao;
21-
import nie.translator.rtranslator.database.entities.RecentPeerEntity;
20+
import nie.translator.rtranslator.databases.general.dao.MyDao;
21+
import nie.translator.rtranslator.databases.general.entities.RecentPeerEntity;
2222

2323

2424
@androidx.room.Database(version = 1, entities = {RecentPeerEntity.class})

app/src/main/java/nie/translator/rtranslator/database/dao/MyDao.java renamed to app/src/main/java/nie/translator/rtranslator/databases/general/dao/MyDao.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@
1414
* limitations under the License.
1515
*/
1616

17-
package nie.translator.rtranslator.database.dao;
17+
package nie.translator.rtranslator.databases.general.dao;
1818

1919
import androidx.room.Dao;
2020
import androidx.room.Delete;
2121
import androidx.room.Insert;
2222
import androidx.room.OnConflictStrategy;
2323
import androidx.room.Query;
2424
import androidx.room.Update;
25-
import nie.translator.rtranslator.database.entities.RecentPeerEntity;
25+
import nie.translator.rtranslator.databases.general.entities.RecentPeerEntity;
2626

2727
@Dao
2828
public interface MyDao{

app/src/main/java/nie/translator/rtranslator/database/entities/RecentPeerEntity.java renamed to app/src/main/java/nie/translator/rtranslator/databases/general/entities/RecentPeerEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package nie.translator.rtranslator.database.entities;
17+
package nie.translator.rtranslator.databases.general.entities;
1818

1919
import androidx.room.ColumnInfo;
2020
import androidx.room.Entity;

0 commit comments

Comments
 (0)