@bsky.app/expo-translate-text
v0.2.9
Published
Expo module for on-device translation.
Readme
expo-translate-text 🌍
[!NOTE] This is a fork of TomAtterton/expo-translate-text
expo-translate-text is a React Native module for translating text using platform-specific translation APIs. It leverages Apple's iOS Translation API (with Translation Sheet available in iOS 17.4+) and Google ML Kit on Android for seamless text translation.
Demo 💫

Installation 📦
expo install expo-translate-textPlatform Support 📱
| Platform | Translation Task | Translation Sheet | | -------- | ---------------------- | ------------------------ | | iOS | ✅ Supported (iOS 18+) | ✅ Supported (iOS 17.4+) | | Android | ✅ Supported | ❌ Not Supported |
Usage 🚀
Basic Text Translation
import { onTranslateTask } from 'expo-translate-text';
const translateText = async () => {
try {
const result = await onTranslateTask({
input: 'Hello, world!',
sourceLangCode: 'en',
targetLangCode: 'es',
});
console.log(result.translatedTexts); // "¡Hola, mundo!"
} catch (error) {
console.error(error);
}
};Translation Sheet (iOS Only)
import { onTranslateSheet } from 'expo-translate-text';
import { Platform } from 'react-native';
const translateSheet = async () => {
if (Platform.OS === 'android') {
console.warn('Sheet translation is not supported on Android.');
return;
}
try {
const translatedText = await onTranslateSheet({
input: 'Bonjour tout le monde',
});
console.log(translatedText);
} catch (error) {
console.error(error);
}
};API Reference 📖
onTranslateTask
Translates a given text or batch of text.
Request:
| Parameter | Type | Description |
| ------------------ | ----------------------------------------------------------------- | ---------------------------------- |
| input | string | string[] | { [key: string]: string \| string[] } | Text to be translated. |
| sourceLangCode? | string | Source language code (e.g., 'en'). |
| targetLangCode | string | Target language code (e.g., 'es'). |
| requireCharging? | boolean | Requires device to be charging. |
| requiresWifi? | boolean | Requires WiFi for translation. |
Response:
| Key | Type | Description |
| ----------------- | ----------------------------------------------------------------- | --------------------------------------------------- |
| translatedTexts | string | string[] | { [key: string]: string \| string[] } | The translated text(s). |
| sourceLanguage | string | null | The detected source language, or null if unknown. |
| targetLanguage | string | The requested target language. |
onTranslateSheet (iOS 17.4+)
⚠️ Not supported on Android
Translates text using the Translation Sheet API.
Request:
| Parameter | Type | Description |
| --------- | -------- | -------------------------- |
| input | string | The text to be translated. |
Response:
| Key | Type | Description |
| -------- | -------- | -------------------- |
| result | string | The translated text. |
Contributing 🙌
See the contributing guide to learn how to contribute.
License 📜
MIT
Enjoy translating with expo-translate-text! 🌎
