@bigin/ns-firebase
Version:
50 lines (49 loc) • 2.33 kB
JavaScript
export function ensureTranslationModelDownloaded(options) {
return new Promise((resolve, reject) => {
_downloadTranslationModelIfNeeded(options)
.then(() => resolve())
.catch(reject);
});
}
export function translateText(options) {
return new Promise((resolve, reject) => {
try {
const onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: (result) => resolve(result),
});
const onFailureListener = new com.google.android.gms.tasks.OnFailureListener({
onFailure: (exception) => reject(exception.getMessage()),
});
_downloadTranslationModelIfNeeded(options)
.then((translator) => {
translator.translate(options.text).addOnSuccessListener(onSuccessListener).addOnFailureListener(onFailureListener);
})
.catch(reject);
} catch (ex) {
console.log('Error in firebase.mlkit.translation.translateText: ' + ex);
reject(ex);
}
});
}
function _downloadTranslationModelIfNeeded(options) {
return new Promise((resolve, reject) => {
try {
const source = +com.google.firebase.ml.naturallanguage.translate.FirebaseTranslateLanguage.languageForLanguageCode(options.from);
const target = +com.google.firebase.ml.naturallanguage.translate.FirebaseTranslateLanguage.languageForLanguageCode(options.to);
const firTranslatorOptions = new com.google.firebase.ml.naturallanguage.translate.FirebaseTranslatorOptions.Builder().setSourceLanguage(source).setTargetLanguage(target).build();
const firTranslator = com.google.firebase.ml.naturallanguage.FirebaseNaturalLanguage.getInstance().getTranslator(firTranslatorOptions);
const modelDownloadConditions = new com.google.firebase.ml.common.modeldownload.FirebaseModelDownloadConditions.Builder().requireWifi().build();
const onSuccessListener = new com.google.android.gms.tasks.OnSuccessListener({
onSuccess: () => resolve(firTranslator),
});
const onFailureListener = new com.google.android.gms.tasks.OnFailureListener({
onFailure: (exception) => reject(exception.getMessage()),
});
firTranslator.downloadModelIfNeeded(modelDownloadConditions).addOnSuccessListener(onSuccessListener).addOnFailureListener(onFailureListener);
} catch (ex) {
console.log('Error downloading translation model: ' + ex);
reject(ex);
}
});
}
//# sourceMappingURL=index.android.js.map