fonika_translate
v1.1.0
Published
Web toolkit: Google Translate widgets plus 229Langues API client (Authorization + X-API-Key)
Maintainers
Readme
fonika_translate
Package npm pour applications web: traduction de page Google Translate + voix (speech-to-text et text-to-speech).
Objectif: permettre a une equipe web d'ajouter rapidement la traduction avec une API simple.
Nouveau: Client API 229Langues (Architecture 2026)
Le package expose maintenant un client HTTP pour l'API backend avec la meme architecture que le SDK Flutter:
Authorization: Bearer <authorizationToken>X-API-Key: <apiToken>
Exemple rapide:
import { createApiClient } from "fonika_translate";
const api = createApiClient({
baseUrl: "https://ronaldodev-api.hf.space",
authorizationToken: process.env.AUTHORIZATION_TOKEN!,
apiToken: process.env.API_KEY!,
});
const translated = await api.translate({
text: "Bonjour",
from_lang: "fr",
to_lang: "en",
});
console.log(translated);Methodes exposees par FonikaApiClient:
health()translate()translateBatch()getLanguages()getVoiceLanguages()getCacheStats()clearCache()tts()stt()translateTextFile()translatePdf()extractPdfText()
Demarrage En 2 Minutes
npm install fonika_translateExemple minimum:
<div id="lang-buttons"></div>
<script type="module">
import { createTranslator, createLanguageButtons } from "fonika_translate";
const translator = await createTranslator({ pageLanguage: "fr" });
createLanguageButtons({
translator,
container: "lang-buttons",
flag: true,
languages: [
{ code: "de", label: "Allemand" },
{ code: "en", label: "Anglais" },
{ code: "es", label: "Espagnol" },
],
});
</script>Cas Concret 1: Traduire Une Page Avec Boutons
<div id="lang-buttons"></div>
<script type="module">
import { createTranslator, createLanguageButtons } from "fonika_translate";
const translator = await createTranslator({
pageLanguage: "fr",
containerId: "google_translate_element2",
});
createLanguageButtons({
translator,
container: "lang-buttons",
flag: true,
buttonClassName: "lang-btn",
languages: [
{ code: "de", label: "Allemand" },
{ code: "fon", label: "Fon" },
{ code: "es", label: "Espagnol" },
{ code: "pt", label: "Portugais" },
{ code: "it", label: "Italien" },
{ code: "en", label: "Anglais" },
],
});
</script>Ce que fait cet exemple:
- Charge Google Translate.
- Cree des boutons de langues.
- Change la langue au clic.
Cas Concret 2: Parler En Francais, Obtenir Traduction + Lecture Audio
<div id="speech-zone"></div>
<script type="module">
import {
createSpeechTranslator,
createSpeechTranslatorComponent,
} from "fonika_translate";
const speechTranslator = await createSpeechTranslator({
sourceLanguage: "fr",
targetLanguage: "en",
autoSpeak: true,
});
createSpeechTranslatorComponent({
container: "speech-zone",
speechTranslator,
labels: {
start: "Parler puis traduire",
listening: "Ecoute...",
source: "Texte source",
target: "Texte traduit",
},
});
</script>Ce que fait cet exemple:
- Ecoute le micro en francais.
- Traduit en anglais.
- Lit la traduction a voix haute.
Cas Concret 3: Test TTS Manuel (Sans Micro)
Utile pour verifier le text-to-speech meme si le speech-to-text n'est pas disponible.
<input id="tts-input" value="Hello from fonika translate" />
<button id="tts-play">Lire</button>
<button id="tts-stop">Arreter</button>
<script type="module">
import { createSpeechTranslator } from "fonika_translate";
const speechTranslator = await createSpeechTranslator({
sourceLanguage: "fr",
targetLanguage: "en",
autoSpeak: false,
});
document.getElementById("tts-play").addEventListener("click", async () => {
const text = document.getElementById("tts-input").value;
await speechTranslator.speak(text, "en-US");
});
document.getElementById("tts-stop").addEventListener("click", () => {
speechTranslator.stopSpeaking();
});
</script>Test Local Sans Publication npm
Quand vous developpez le package localement:
npm run build
npm pack
cd local-test-app
npm install --force ../fonika_translate-1.0.0.tgz
npm run devAPI Rapide
Traduction de page:
- createTranslator(options)
- translator.translateTo("fr|en") ou translator.translateTo("en")
- createLanguageButtons(options)
Voix:
- createSpeechTranslator(options)
- speechTranslator.listenTranslateSpeak()
- speechTranslator.translateText("...")
- speechTranslator.speak("...")
- createSpeechTranslatorComponent(options)
Options principales (traduction de page):
- pageLanguage: langue source de la page (defaut: fr)
- containerId: id du conteneur Google caché (defaut: google_translate_element2)
- autoDisplay: affichage auto Google (defaut: false)
Options principales (voix):
- sourceLanguage: langue reconnue au micro (obligatoire)
- targetLanguage: langue de traduction (obligatoire)
- autoSpeak: lire automatiquement la traduction (defaut: true)
- voiceLanguage: langue de la voix de synthese (defaut: targetLanguage)
CommonJS
const { FonikaTranslator, createLanguageButtons } = require("fonika_translate");
(async () => {
const translator = new FonikaTranslator({ pageLanguage: "fr" });
await translator.init();
createLanguageButtons({
translator,
container: "lang-buttons",
flag: true,
languages: ["de", "es", "pt", "it"],
});
})();TypeScript
Le package expose les types automatiquement depuis dist/index.d.ts.
Tests Et Release
npm test
npm run build
npm run release:checkDepannage Rapide
Le TTS ne parle pas: Navigateur muet, volume systeme, ou absence de geste utilisateur. Tester avec le bouton Lire apres un clic sur la page.
Le STT ne demarre pas: Verifier permission micro et support navigateur (SpeechRecognition ou webkitSpeechRecognition).
Le package local ne se met pas a jour: Regenerez le tgz avec npm pack puis reinstallez avec npm install --force ../fonika_translate-1.0.0.tgz.
Le panneau Google de feedback reapparait: Le package le masque automatiquement, mais faire un hard refresh apres mise a jour locale.
Notes Importantes
- Fonctionne uniquement en navigateur.
- Le widget Google Translate peut evoluer selon les politiques Google.
- Le support voix depend des APIs Web Speech disponibles sur le navigateur cible.
