Tu algoritmo tiene un fallo.
Lees la primera palabra hasta que aparece el espacio, entonces haces la traducción de la palabra, pero luego continúas con la segunda palabra ¿dónde está el espacio que le dice que la palabra ha terminado? La última palabra nunca termina.
Cita: while(i<texto.length && texto[i] != ' '){
temporal+=texto[i];
i++;
}