{"id":31,"date":"2026-08-05T22:54:05","date_gmt":"2026-08-06T04:54:05","guid":{"rendered":"https:\/\/keivinwedell.pro\/?p=31"},"modified":"2026-08-05T22:56:10","modified_gmt":"2026-08-06T04:56:10","slug":"como-instalar-textsnatcher-en-debian-13-mx-linux-con-soporte-en-espanol-parcheando-el-codigo-fuente","status":"publish","type":"post","link":"https:\/\/keivinwedell.pro\/?p=31","title":{"rendered":"C\u00f3mo instalar TextSnatcher en Debian 13\/MX Linux con soporte en Espa\u00f1ol (\u00a1Parcheando el c\u00f3digo fuente!)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Si alguna vez has utilizado Windows, probablemente conozcas la comodidad de usar herramientas OCR (Reconocimiento \u00d3ptico de Caracteres) integradas como la de <em>PowerToys<\/em> (Text Extractor) para copiar texto directamente de im\u00e1genes, videos o PDFs bloqueados. En el ecosistema Linux, <strong>TextSnatcher<\/strong> es la alternativa perfecta que cumple esta misma funci\u00f3n con tan solo arrastrar el rat\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sin embargo, si eres usuario de MX Linux o Debian 13, es muy probable que te hayas topado con un muro frustrante al instalarlo desde Flathub: <strong>el idioma espa\u00f1ol no aparece por ning\u00fan lado<\/strong> y la aplicaci\u00f3n no reconoce correctamente nuestras palabras, oblig\u00e1ndonos a corregir el texto manualmente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hoy te voy a explicar por qu\u00e9 sucede esto y, aplicando la regla de <em>Simplicity First<\/em>, c\u00f3mo resolverlo de ra\u00edz compilando la aplicaci\u00f3n de forma nativa y agregando nosotros mismos la opci\u00f3n faltante en su c\u00f3digo fuente.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">El problema: Flatpak y un &#8220;olvido&#8221; en el c\u00f3digo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">El principal inconveniente de instalar TextSnatcher mediante Flatpak es su naturaleza de <em>sandbox<\/em>. Al estar aislado, el paquete empaquetado a menudo no incluye diccionarios adicionales para ahorrar espacio y, peor a\u00fan, no tiene permisos para leer los paquetes de idioma (<code>tessdata<\/code>) que ya tienes instalados en tu sistema operativo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La soluci\u00f3n l\u00f3gica es purgar esa versi\u00f3n e instalar la herramienta de forma nativa desde su c\u00f3digo fuente. Sin embargo, al hacerlo, descubrimos algo ins\u00f3lito: <strong>el motor OCR (Tesseract) s\u00ed detectaba el espa\u00f1ol, pero el men\u00fa desplegable de la aplicaci\u00f3n no lo mostraba<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Analizando el c\u00f3digo fuente escrito en Vala, nos dimos cuenta de que el desarrollador s\u00ed hab\u00eda programado la l\u00f3gica del bot\u00f3n para el espa\u00f1ol, pero <strong>olvid\u00f3 agregarlo al contenedor visual de la interfaz<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a1Manos a la obra para solucionarlo!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Paso 1: Purgar Flathub y limpiar residuos<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Primero, debemos eliminar la versi\u00f3n aislada y cualquier dato residual que pueda causar conflictos o quedarse en la memoria cach\u00e9 de nuestro men\u00fa de aplicaciones. Abre tu terminal y ejecuta:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bash<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>flatpak uninstall --delete-data com.github.rajsolai.textsnatcher\nflatpak uninstall --unused\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Paso 2: Instalar dependencias base en Debian 13<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora, dotaremos a nuestro sistema de las herramientas necesarias para compilar el programa y del motor OCR con su respectivo diccionario en espa\u00f1ol.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bash<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt install tesseract-ocr tesseract-ocr-spa scrot git meson valac libgranite-dev libgtk-3-dev libhandy-1-dev libportal-dev ninja-build\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Paso 3: Clonar el c\u00f3digo fuente<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Descargamos el repositorio oficial de TextSnatcher en nuestro equipo:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bash<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git clone https:\/\/github.com\/RajSolai\/TextSnatcher.git\ncd TextSnatcher\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Paso 4: El Parche (Agregando el espa\u00f1ol a la interfaz)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed viene la magia. Vamos a corregir el peque\u00f1o olvido del desarrollador. Utiliza tu editor de texto favorito (por ejemplo, <code>nano<\/code> o Gedit) para abrir el archivo donde se gestionan los botones de los idiomas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dependiendo de la versi\u00f3n del repositorio, suele estar en <code>src\/components\/LanguageButton.vala<\/code> o directamente en <code>src\/MainWindow.vala<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bash<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano src\/components\/LanguageButton.vala\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Busca el bloque de c\u00f3digo cerca del final del archivo donde ver\u00e1s una lista que dice <code>menu_list.add (eng) ;<\/code>, seguida de otros idiomas como <code>chi_sim<\/code>, <code>jpn<\/code>, <code>fra<\/code>, etc.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El bot\u00f3n <code>spa<\/code> ya est\u00e1 declarado m\u00e1s arriba en el c\u00f3digo, as\u00ed que solo necesitas <strong>insertar esta l\u00ednea<\/strong> dentro de ese bloque para que se muestre en pantalla:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vala<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>        menu_list.add (spa) ;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Guarda los cambios (en nano: <code>Ctrl+O<\/code>, <code>Enter<\/code>, y <code>Ctrl+X<\/code>).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Paso 5: Compilar e Instalar<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Con el c\u00f3digo modificado, procedemos a construir la aplicaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bash<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>meson setup build --prefix=\/usr\ncd build\nmeson compile\nsudo ninja install\n<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Nota para solucionar errores de permisos:<\/strong> Si en alg\u00fan momento ejecutaste comandos previos como administrador y ahora <code>meson compile<\/code> te arroja un error de escritura (ej. <code>unable to open [...] for writing<\/code>), simplemente devu\u00e9lvele la propiedad de la carpeta a tu usuario con <code>sudo chown -R $USER:$USER \/ruta\/a\/tu\/TextSnatcher<\/code> y vuelve a intentarlo, o compila con <code>sudo meson compile<\/code>.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">\u00a1Resultado \u00f3ptimo!<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a1Y eso es todo! Ahora puedes buscar TextSnatcher en tu lanzador de aplicaciones de MX Linux. Al abrirlo y hacer clic en el \u00edcono de traductor, ver\u00e1s con orgullo que <strong>el idioma Spanish ya est\u00e1 disponible en la lista<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al ser una instalaci\u00f3n nativa, la herramienta se comunicar\u00e1 perfectamente con Tesseract OCR y tus capturas de texto en espa\u00f1ol ser\u00e1n r\u00e1pidas, precisas y sin necesidad de correcciones manuales.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a1Espero que este tutorial te haya ahorrado un buen dolor de cabeza! D\u00e9jame tus comentarios si te funcion\u00f3 o si tienes alguna duda con el proceso de compilaci\u00f3n.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Si alguna vez has utilizado Windows, probablemente conozcas la comodidad de usar herramientas OCR (Reconocimiento \u00d3ptico de Caracteres) integradas como la de PowerToys (Text Extractor) para copiar texto directamente de im\u00e1genes, videos o PDFs bloqueados. En el ecosistema Linux, TextSnatcher es la alternativa perfecta que cumple esta misma funci\u00f3n con tan solo arrastrar el rat\u00f3n. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-31","post","type-post","status-publish","format-standard","hentry","category-sin-categoria"],"_links":{"self":[{"href":"https:\/\/keivinwedell.pro\/index.php?rest_route=\/wp\/v2\/posts\/31","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/keivinwedell.pro\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/keivinwedell.pro\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/keivinwedell.pro\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/keivinwedell.pro\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=31"}],"version-history":[{"count":3,"href":"https:\/\/keivinwedell.pro\/index.php?rest_route=\/wp\/v2\/posts\/31\/revisions"}],"predecessor-version":[{"id":34,"href":"https:\/\/keivinwedell.pro\/index.php?rest_route=\/wp\/v2\/posts\/31\/revisions\/34"}],"wp:attachment":[{"href":"https:\/\/keivinwedell.pro\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=31"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/keivinwedell.pro\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=31"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/keivinwedell.pro\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=31"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}