Una de las aplicaciones con más éxito de Android ha sido siempre su traductor. Debo reconocer que a mi, personalmente, me ha sacado de más de un apuro porque existe mucho contenido en Internet que está disponible en idiomas que no conozco. Además también me ha servido para comunicarme con departamentos técnicos que no conocían ni el inglés ni el español, y gracias a esta útil función, he podido solucionar mis dudas sin problema alguno. Está claro que hay cositas que no las traduce como las debería traducir, pero para mi es el mejor traductor online gratuito de la web. En Google lo saben y han querido dar un paso más hayá en la integración de su traductor con otros proyectos del mismo grupo. Desde hace tiempo es posible descargar la aplicación del traductor de Google para dispositivos móviles para tenerlo siempre con nosotros. A nuestro lado por si nos surge algún problema al hablar en idiomas que desconocemos.
Traducciones in-app
Los de Sillicon Valley con motivo de la nueva versión de su archifamoso sistema operativo, Android Marshmallow, han integrado la famosa herramienta en el nucleo de la nueva versión. A partir de la semana que viene, los usuarios de dispositivos Android que tengan instalado la aplicación del Traductor de Google podrán traducir los textos de sus aplicaciónes a 90 idiomas distintos. Siempre y cuando estas aplicaciones corran bajo Android Marshmallow, la nueva versión del sistema operativo de Google.
Podéis ver una demo de lo que estoy hablando en este enlace y en este otro.
Las aplicaciones Android que tengan selector de texto entre sus funciones ya vendrán con esta nueva mejora incorporada, no habrá que rehacer nada más, ya que viene incorporado en el sistema operativo. Pero los desarrolladores que no hayan incluido esta función en sus aplicación no podrán gozar del traductor de Google para traducir simultáneamente textos de la aplicación. Pero no te preocupes, nosotros te indicamos como llevar a cabo un selector de texto en tu aplicación para que puedas disfrutar de la nueva función de Android Marshmallow, la nueva versión del sistema operativo para dispositivos móviles de Google.
¿Cómo llevarlo a cabo?
Antes de nada, tendremos que escanear a través del packageManager todos los paquetes que tienen el intent filter PROCESS_TEXT (como por ejemplo: com.google.android.apps.translate - si está instalado) y añadirlos como MenuItems en las selecciones TextView de la aplicación.
Para consultar el gestor de paquetes, primero construye un intent con la acción:
private Intent createProcessTextIntent() { return new Intent() .setAction(Intent.ACTION_PROCESS_TEXT) .setType("text/plain"); }
Más tarde, recupera las support activities
private List getSupportedActivities() { PackageManager packageManager = mTextView.getContext().getPackageManager(); return packageManager.queryIntentActivities(createProcessTextIntent(), 0); }
Añade un elemento por cada activity recuperada y adjunta el intent para poner en marcha la acción:
public void onInitializeMenu(Menu menu) { int menuItemOrder = 100; for (ResolveInfo resolveInfo : getSupportedActivities()) { menu.add(Menu.NONE, Menu.NONE, menuItemOrder++, getLabel(resolveInfo)) .setIntent(createProcessTextIntentForResolveInfo(resolveInfo)) .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); } }
La etiqueta para cada item puede ser recuperada de este modo:
resolveInfo.loadLabel(mPackageManager);
El intent para cada elemento puede ser creado reutilizando el filtro de intent que has definido anteriormente y agregando los datos que faltan, tal que así:
private Intent createProcessTextIntentForResolveInfo(ResolveInfo info) { return createProcessTextIntent() .putExtra(Intent.EXTRA_PROCESS_TEXT_READONLY, ! mTextView.isTextEditable()) .setClassName(info.activityInfo.packageName, info.activityInfo.name); }
Añadir la opción de traducción al menú de selección de texto de tus aplicaciones (si no se utiliza el que viene por defecto en Android) es fácil y solo te llevará implementar unas pocas líneas de código adicionales. Recuerda, cuando un usuario está escribiendo un texto el cual quiere traducir, la aplicación debe mantener la selección cuando se activa la función de Traducción.
Con esta nueva característica Android se apunta un buen tanto en cuanto a funciones en su nuevo Android Marshmallow. A partir de ahora, cualquier texto de cualquier aplicación (siempre y cuando tengan activa la función de selección de texto) podrá ser traducido automáticamente. Al igual que copiamos, pegamos o compartimos en redes sociales, el nuevo menú contextual de Marshmallow nos permitirá traducir a 90 idiomas, el texto que tengamos seleccionado un par de toques.
El traductor de Google goza de un renombre brutal. Si nos remitimos a las cifras, extraemos que es utilizado por 500 millones de usuarios al mes, traduciendo 100 billones (con b) de palabras al día. Una auténtica burrada que tenemos que agradecer al gigante de Internet, porque sin él casi todo sería un galimatías ininteligible.
Yo he tenido varias anécdotas con el traductor de Google pero son tan penosas que me da hasta vergüenza contarlo públicamente. Ya os podréis imaginar de qué estilo son (palabra que se confunde con otra de otro de idioma y al final el cliente entiende otra completamente distinta a la inicial). Seguro que vosotros tenéis unas cuantas. ¿Qué tal si nos la cuentas? ¿Es demasiado embarazosa? ¿Usas mucho el traductor de Google en el trabajo o en lo personal? No dudes en contárnoslo...