# [Emerge] Versiones parcheadas al español!!!

## ekz

Hola gentoos!

Desde el otro día me quedó dando vuelta la idea, y hoy que me tomé la tarde libre lo llevé a cabo, hice un parche/diff que cambia los textos del script emerge al español que todos usamos.

 IMPORTANTE: Usar bajo tu responsabilidad

No me hago responsable de que te cargues tu script de emerge y rompas tu sistema.

Usar la versión correspondiente con tu versión de portage

Para tu tranquilidad, el script emerge es sólo un fichero, que puedes remplazar en cualquier momento. Y un emerge de respaldo estará alojado por cualquier cosa   :Wink: 

INSTRUCCIONES

* Bajar la version parcheada de emerge correspondiente a tu versión de portage de aquí

*Respaldar emerge y colocar la versión parcheada donde corresponde:

```

cd /usr/lib/portage/bin/

mv emerge emerge-bak

mv /ruta/del/emerge_parcheado emerge

```

Una pequeña demostración:

```
 emerge -av mozilla-firefox

Estos paquetes seran emergidos, en orden:

Calculando dependencias... listo!

[ebuild   R   ] www-client/mozilla-firefox-2.0.0.8  USE="java -bindist -debug -filepicker -gnome -ipv6 -mozdevelop -moznopango -restrict-javascript -xforms -xinerama -xprint" LINGUAS="es es_ES -af -ar -be -bg -ca -cs -da -de -el -en_GB -es_AR -eu -fi -fr -fy -fy_NL -ga -ga_IE -gu -gu_IN -he -hu -it -ja -ka -ko -ku -lt -mk -mn -nb -nb_NO -nl -nn -nn_NO -pa -pa_IN -pl -pt -pt_BR -pt_PT -ro -ru -sk -sl -sv -sv_SE -tr -zh -zh_CN -zh_TW" 31 kB 

Total: 1 paquete (1 reinstalaciones), Total a descargar: 31 kB

Quiere emerger estos paquetes? [Yes/No]

```

```
emerge -av x11-themes/mythtv-themes-extra

Estos paquetes seran emergidos, en orden:

Calculando dependencias \

!!! Todos los ebuilds que pueden satisfacer "x11-themes/mythtv-themes-extra" han sido enmascarados.

!!! Uno de los siguientes paquetes enmascarados es requerido para completar su solicitud:

- x11-themes/mythtv-themes-extra-0.20.1 (enmascarado por: ~amd64 keyword)

- x11-themes/mythtv-themes-extra-0.20.2 (enmascarado por: ~amd64 keyword)

Para mayor informacion, vea la seccion PAQUETES ENMASCARADOS 

en la pagina del manual de emerge o revise el Handbook de Gentoo.

```

 A considerar 

* Cada vez que actualices o reinstales portage se perderán los cambios realizados

* Si usas una versión en testing de portage, sube tu script de emerge al wiki así podre hacer un diff y/o parchearlo

* En este wiki puedes colaborar con la traducción

* También dispongo los parches si no quieres revisar 6000 lineas de código

* Ahora se proveen versiones ya parcheadas de emerge 

* Más del 90% de los textos visibles de emerge está en español

* En cualquier momento se puede volver a la versión original simplemente restaurando el fichero original (y si no hiciste respaldo hay uno en la lista de descargas)

Cualquier sugerencia/comentario/corrección en este hilo

Abandonado

Este proyecto fue abandonado por 2 cosas: poco interés de parte de los usuarios, y la rápida tasa de actualización de portage (esto implica también falta de tiempo). Ojalá algún día portage ofrezca soporte para múltiples idiomas.

SAludos

----------

## gringo

no lo puedo probar porque no se aplica limpiamente a la versión ~arch, pero tiene buena pinta, bien hecho  :Smile: 

Sólo una cosa, emerge normalmente estará en /usr/lib/portage/bin/  :Wink: 

saluetes

----------

## sefirotsama

La idea es buena.... ¿de cuantas linies de texto para traducir estamos hablando?

Tal vez lo pruebe... aunque estoy algo liado de tiempo, pero me gusta la idea (hace tiempo que lo pienso)

----------

## i92guboj

Interesante idea.

La forma más limpia de hacerlo sería incluir este parche en el ebuild y usando LINGUAS. Puedes ver que el paquete sys-apps/portage ya tiene un use flag/linguas para "pl". Mirando el ebuild sería sencillo clonar el trabajo ya hecho para un linguas "es".

Si sería posible incluírlo en la rama oficial supongo que dependerá de si hay un mantenedor para dicho parche. El ebuild en sí, una vez modificado no va a necesitar mantenimiento adicional, pero muy probablemente el parche si lo necesite. Si necesitas ayuda con el tema, supongo que podría hacer yo la parte que toca al ebuild, tengo alguna experiencia con eso.

----------

## ekz

Gracias a todos por sus comentarios

 *gringo wrote:*   

> no lo puedo probar porque no se aplica limpiamente a la versión ~arch, pero tiene buena pinta, bien hecho 
> 
> Sólo una cosa, emerge normalmente estará en /usr/lib/portage/bin/ 
> 
> saluetes

 

Pero lo intentaste probar por lo menos, gracias.

jeje, es que trabajando desde la terminal nunca me fijé, corregido.

 *sefirotsama wrote:*   

> La idea es buena.... ¿de cuantas linies de texto para traducir estamos hablando?
> 
> Tal vez lo pruebe... aunque estoy algo liado de tiempo, pero me gusta la idea (hace tiempo que lo pienso)

 

El script tiene más de 6000 líneas de código!, impresionante, y para ser franco habían textos que nunca había leído al usar portage, usos no tan comunes tal vez... 

Igual no es tanto, 100 lineas contienen la palabra print en el parche, osea que 50 las traduje yo   :Smile: 

 *i92guboj wrote:*   

> Interesante idea.
> 
> La forma más limpia de hacerlo sería incluir este parche en el ebuild y usando LINGUAS. Puedes ver que el paquete sys-apps/portage ya tiene un use flag/linguas para "pl". Mirando el ebuild sería sencillo clonar el trabajo ya hecho para un linguas "es".
> 
> Si sería posible incluírlo en la rama oficial supongo que dependerá de si hay un mantenedor para dicho parche. El ebuild en sí, una vez modificado no va a necesitar mantenimiento adicional, pero muy probablemente el parche si lo necesite. Si necesitas ayuda con el tema, supongo que podría hacer yo la parte que toca al ebuild, tengo alguna experiencia con eso.

 

Sería genial, más aun si llegara a ser algo oficial. Miraré eso de pl para ver como está implementado. Claro que necesitaré ayuda, toda es bienvenida   :Wink: 

--

Hay palabras que usamos siempre y se adaptan bien, por ejemplo "emerger", pero palabras como "unmerge", no les pude hallar una traducción adecuada, "desmerger" "desemerger" no suenan muy bien, le dejé como "quitar"   :Razz: 

SAludos! gracias nuevamente

----------

## sefirotsama

Pues si són 100 linias, se traduce, corrector ortografico (sobretodo) y arreando, no parece tanto... claro que si se tiene que hacer un par de veces al mes puede llegar a ser muy cansino... nunca he colaborado en algo así, pero me gustaría intentarlo o seguir de cerca esto para ver de cerca el mundillo y como funciona todo esto.

----------

## i92guboj

He echado un vistazo más de cerca al ebuild, las partes relevantes sobre linguas_pl son estas:

```

grep linguas_pl -n5 portage-2.1.3.16.ebuild 

10-KEYWORDS="alpha amd64 ~arm hppa ia64 ~m68k ~mips ppc ~ppc64 ~s390 ~sh sparc ~sparc-fbsd x86 ~x86-fbsd"

11-PROVIDE="virtual/portage"

12-SLOT="0"

13-# USE_EXPAND_HIDDEN hides ELIBC and USERLAND expansions from emerge output (see make.conf.5).

14-IUSE_ELIBC="elibc_glibc elibc_uclibc elibc_FreeBSD"

15:IUSE="build doc epydoc selinux linguas_pl userland_GNU ${IUSE_ELIBC}"

16-DEPEND=">=dev-lang/python-2.4

17-     !build? ( >=sys-apps/sed-4.0.5 )

18-     doc? ( app-text/xmlto ~app-text/docbook-xml-dtd-4.4 )

19-     epydoc? ( >=dev-python/epydoc-2.0 )"

20-RDEPEND=">=dev-lang/python-2.4

--

41-PV_PL="2.1.2"

42-PATCHVER_PL=""

43-TARBALL_PV="${PV}"

44-SRC_URI="mirror://gentoo/${PN}-${TARBALL_PV}.tar.bz2

45-     ${SRC_ARCHIVES}/${PN}-${TARBALL_PV}.tar.bz2

46:     linguas_pl? ( mirror://gentoo/${PN}-man-pl-${PV_PL}.tar.bz2

47-     ${SRC_ARCHIVES}/${PN}-man-pl-${PV_PL}.tar.bz2 )"

48-

49-PATCHVER=""

50-if [ -n "${PATCHVER}" ]; then

51-     SRC_URI="${SRC_URI} mirror://gentoo/${PN}-${PATCHVER}.patch.bz2

52-     ${SRC_ARCHIVES}/${PN}-${PATCHVER}.patch.bz2"

53-fi

54-

55-if [ -n "${PATCHVER_PL}" ]; then

56:     SRC_URI="${SRC_URI} linguas_pl? ( mirror://gentoo/${PN}-man-pl-${PV_PL}${PATCHVER_PL}.patch.bz2

57-     ${SRC_ARCHIVES}/${PN}-man-pl-${PV_PL}${PATCHVER_PL}.patch.bz2 )"

58-fi

59-

60-S="${WORKDIR}"/${PN}-${TARBALL_PV}

61-S_PL="${WORKDIR}"/${PN}-${PV_PL}

--

77-     einfo "Setting portage.VERSION to ${PVR} ..."

78-     sed -i "s/^VERSION=.*/VERSION=\"${PVR}\"/" pym/portage.py || \

79-             die "Failed to patch portage.VERSION"

80-     eend 0

81-     if [ -n "${PATCHVER_PL}" ]; then

82:             use linguas_pl && \

83-                     epatch "${WORKDIR}/${PN}-man-pl-${PV_PL}${PATCHVER_PL}.patch"

84-     fi

85-}

86-

87-src_compile() {

--

155-            cd "${S}"/${mydir}

156-            doins *.py

157-    done

158-

159-    doman "${S}"/man/*.[0-9]

160:    if use linguas_pl; then

161-            doman -i18n=pl "${S_PL}"/man/pl/*.[0-9]

162-            doman -i18n=pl_PL.UTF-8 "${S_PL}"/man/pl_PL.UTF-8/*.[0-9]

163-    fi

164-    dodoc "${S}"/ChangeLog

165-    dodoc "${S}"/NEWS

```

Si te fijas, y no me equivoco, creo que en realidad se trata de un parche para la págica man. La verdad es que me parecía raro eso de que la localización del programa en sí fuera a base de parches. Eso ya no se estila, hoy día todos los lenguajes de programación tienen un soporte bastante bueno para gettext, hasta bash soporta localización de cadenas.

En ese caso el problema es distinto y probablemente no es una tarea tan sencilla. Para hacerlo bien y no tener que duplicar el trabajo sería necesario añadir soporte de localización al programa. Así luego bastaría con mantener los ficheros .po con cada release y nada más. El mantenimiento entonces sería sencillísimo, y no sería estrictamente necesario (si una cadena faltara se usaría la predeterminada). Sin embargo el porte inicial del script emerge si sería más complicado.

Buscaré por ahí, porque me resulta muy muy extraño que no se haya pensado en añadir soporte para localización a portage. La verdad es que jamás lo he mirado. Si encuentro algo relevante ya lo dejaré caer aquí.

Olvidad lo que dije en el post anterior. Como ya he dicho, el linguas_pl no es lo que yo pensaba.

----------

## ekz

 *i92guboj wrote:*   

> 
> 
> Buscaré por ahí, porque me resulta muy muy extraño que no se haya pensado en añadir soporte para localización a portage. La verdad es que jamás lo he mirado. Si encuentro algo relevante ya lo dejaré caer aquí.
> 
> Olvidad lo que dije en el post anterior. Como ya he dicho, el linguas_pl no es lo que yo pensaba.

 

Ok, ya casi estaba descargando eso. 

Hace poco miré el proceso de traducción de miro-player y usando lo que tu dices sí que es fácil de mantener, además de que launchpad lo soporta y se puede editar directamente desde el navegador.

SAludos

----------

## gringo

si, lo que tienen los polacos es la traducción de la man; yo empecé hace tiempo a traducir las man pero estoy a medio camino, si alguien quiere que se lo pase o echar un mano, que me mande un mp  :Wink: 

Lo de los mensajes de portage o otros programas (como baselayout p.ej ) es lo que dice i92guboj, habría que hablar con el mantenedor del paquete para que incluyera el soporte necesario, con parches es una locura.

saluetes

----------

## ekz

Nueva versión

* Ahora se proveen versiones ya parcheadas de emerge 

* Más del 90% de los textos visibles de emerge está en español

* En cualquier momento se puede volver a la versión original simplemente restaurando el fichero original (y si no hiciste respaldo hay uno en la lista de descargas)

@Gringo y usuarios de ~arch:

Suban sus versiones de emerge al  wiki  para poder hacer diffs/parches y luego los agregaré a la página de descargas (fichero original, fichero parcheado y parche)

El emerge -uDavN world en español de rigor: 

```

...

...

>>> No hay paquetes seleccionados para remover por clean

>>> Auto-limpieza de paquetes...

>>> No se encontraron paquetes obsoletos en su sistema.

 * El indice de directorios GNU esta actualizado.

localhost ~ # 

```

SAludos

PD: Ahora entiendo a los de paludis   :Razz: 

----------

