Ayuda. Corregir y terminar escript.

Imagen de ZeryOs
0 puntos

Bueno, resulta que estoy haciendo un bash script porque quiero empezar a programar en Ubuntu... y además me llamo la atención esto, bueno voy al grano:

Tengo instalado un juego llamado "Battle for Wesnoth" (Ya lo deven conocer). Tengo la última versión estable, la cual tiene las traducciones a medias, entonces me di a la tarea de usar las traducciones SVN, y pues he tratado de hacer un script que lo haga todo sistematizado por mi (para aprender mas que nada, que lo puedo hacer manual xD).

El script es este:

#!/bin/bash

#Created by ZeryOs
#Traduce Wesnoth con las traducciones mas actuales.

#Respaldo-traducciones
mkdir /home/.traduc-respaldo

#wesnoth
sudo cp /usr/share/locale/es/LC_MESSAGES/wesnoth.mo /home/.traduc-respaldo
wget http://svn.gna.org/viewcvs/*checkout*/wesnoth/branches/1.2/po/wesnoth/es.po
msgfmt es.po -o wesnoth.mo
sudo mv wesnoth.mo /usr/share/locale/es/LC_MESSAGES/
rm es.po

#wesnoth-editor
sudo cp /usr/share/locale/es/LC_MESSAGES/wesnoth-editor.mo /home/.traduc-respaldo
wget http://svn.gna.org/viewcvs/*checkout*/wesnoth/branches/1.2/po/wesnoth-ed...
msgfmt es.po -o wesnoth-editor.mo
sudo mv wesnoth-editor.mo /usr/share/locale/es/LC_MESSAGES/
rm es.po

#wesnoth-lib
sudo cp /usr/share/locale/es/LC_MESSAGES/wesnoth-lib.mo /home/.traduc-respaldo
wget http://svn.gna.org/viewcvs/*checkout*/wesnoth/branches/1.2/po/wesnoth-li...
msgfmt es.po -o wesnoth-lib.mo
sudo mv wesnoth-lib.mo /usr/share/locale/es/LC_MESSAGES/
rm es.po

#wesnoth-tutorial
sudo cp /usr/share/locale/es/LC_MESSAGES/wesnoth-tutorial.mo /home/.traduc-respaldo
wget http://svn.gna.org/viewcvs/*checkout*/wesnoth/branches/1.2/po/wesnoth-tu...
msgfmt es.po -o wesnoth-tutorial.mo
sudo mv wesnoth-tutorial.mo /usr/share/locale/es/LC_MESSAGES/
rm es.po

#wesnoth-man
## Error in wesnoth-man translation files

#wesnoth-httt
sudo cp /usr/share/locale/es/LC_MESSAGES/wesnoth-httt.mo /home/.traduc-respaldo
wget http://svn.gna.org/viewcvs/*checkout*/wesnoth/branches/1.2/po/wesnoth-ht...
msgfmt es.po -o wesnoth-httt.mo
sudo mv wesnoth-httt.mo /usr/share/locale/es/LC_MESSAGES/
rm es.po

#wesnoth-ei
sudo cp /usr/share/locale/es/LC_MESSAGES/wesnoth-ei.mo /home/.traduc-respaldo
wget http://svn.gna.org/viewcvs/*checkout*/wesnoth/branches/1.2/po/wesnoth-ei...
msgfmt es.po -o wesnoth.mo
sudo mv wesnoth-ei.mo /usr/share/locale/es/LC_MESSAGES/
rm es.po

#wesnoth-trow
sudo cp /usr/share/locale/es/LC_MESSAGES/wesnoth-trow.mo /home/.traduc-respaldo
wget http://svn.gna.org/viewcvs/*checkout*/wesnoth/branches/1.2/po/wesnoth-tr...
msgfmt es.po -o wesnoth.mo
sudo mv wesnoth-trow.mo /usr/share/locale/es/LC_MESSAGES/
rm es.po

#wesnoth-tb
sudo cp /usr/share/locale/es/LC_MESSAGES/wesnoth-tb.mo /home/.traduc-respaldo
wget http://svn.gna.org/viewcvs/*checkout*/wesnoth/branches/1.2/po/wesnoth-tb...
msgfmt es.po -o wesnoth.mo
sudo mv wesnoth-tb.mo /usr/share/locale/es/LC_MESSAGES/
rm es.po

#wesnoth-tsg
sudo cp /usr/share/locale/es/LC_MESSAGES/wesnoth-tsg.mo /home/.traduc-respaldo
wget http://svn.gna.org/viewcvs/*checkout*/wesnoth/branches/1.2/po/wesnoth-ts...
msgfmt es.po -o wesnoth.mo
sudo mv wesnoth-tsg.mo /usr/share/locale/es/LC_MESSAGES/
rm es.po

#wesnoth-utbs
sudo cp /usr/share/locale/es/LC_MESSAGES/wesnoth-utbs.mo /home/.traduc-respaldo
wget http://svn.gna.org/viewcvs/*checkout*/wesnoth/branches/1.2/po/wesnoth-ut...
msgfmt es.po -o wesnoth.mo
sudo mv wesnoth-lib.mo /usr/share/locale/es/LC_MESSAGES/
rm es.po

 

En fin, el problema es que quiciera hacer cosas que en realidad no hayo como.

  • Quiero:
  1. Que me pregunte cuales traducir.
  2. Quiero que, después de traducirlo una vez, no me vuelva a mostrar la opción.
  3. Quiero hacerlo de modo visual como Automatix si es posible.

Espero me puedan ayudar... sin mas, me despido esperando respuesta.

Se aceptan sugerencias y ayuda xD y todo lo que se quiera comentar. zeryos[AT]gmail[DoT]com si les es mas facil, aunque me pasaré por aca muy seguido asi que como quieran, no es para que me envien la respuesta, sino pues alomejor lo prefieren asi... realmente quiero terminar estoo..

Gracias y hasta luego.

Imagen de joseluis
+1
0
-1

Para darle una apariencia más visual utiliza zenity.
Para que te pregunte qué quieres traducir puedes utilizar zenity --list con la opción --checklist.

Por ejemplo podría quedar algo parecido a:

#!/bin/bash

lista=`zenity --list --title="Traductor de Wesnoth" \
--text="Selecciona las traducciones que quieres instalar" --checklist  \
--width="355" --height="320" --column="" --column="Traduccion"  \
FALSE "wesnoth" FALSE "wesnoth-editor" FALSE "wesnoth-lib" \
FALSE "wesnoth-tutorial" FALSE "wesnoth-man" FALSE "wesnoth-httt" FALSE "wesnoth-ei" \ 
FALSE "wesnoth-trow" FALSE "wesnoth-tb" FALSE "wesnoth-tsg"  \
FALSE "wesnoth-utbs" | sed "s/|/ /g"`


for i in $lista ; do
  sudo cp /usr/share/locale/es/LC_MESSAGES/$i.mo /home/.traduc-respaldo
  wget http://svn.gna.org/viewcvs/*checkout*/wesnoth/branches/1.2/po/$i/es.po
  msgfmt es.po -o $i.mo
  sudo mv $i.mo /usr/share/locale/es/LC_MESSAGES/
  rm es.po
done


Lectura obligada:
+1
0
-1

Fdo. Forense asesino, Censor fundamentalista, Fustigador de novatos y Patético maleducado

Imagen de ZeryOs
+1
0
-1

 

Primero que nad, muchisimas gracias por responderme a mi pregunta =)...

 

Ahora quiero mostrarte como me ha quedado mi escript:

 #!/bin/bash

lista=$(zenity --list --title="Traductor de Wesnoth" \
--text="Selecciona las traducciones que quieres instalar" --checklist \
--width="500" --height="500" --column="" --column="Traduccion" \
FALSE wesnoth FALSE wesnoth-editor FALSE wesnoth-lib FALSE wesnoth-tutorial FALSE wesnoth-man FALSE wesnoth-httt FALSE wesnoth-ei FALSE wesnoth-trow FALSE wesnoth-tb FALSE wesnoth-tsg FALSE wesnoth-utbs | sed "s/|/ /g")


for i in $lista ; do
mkdir ~/.traduc-respaldo
sudo cp /usr/share/locale/es/LC_MESSAGES/$i.mo ~/.traduc-respaldo/
wget http://svn.gna.org/viewcvs/*checkout*/wesnoth/branches/1.2/po/$i/es.po
msgfmt es.po -o $i.mo
sudo mv $i.mo /usr/share/locale/es/LC_MESSAGES/
rm es.po
done

Es una versión preliminar y no es perfecta, sin embargo, creo que cumple con el cometido...

Primero que nada ando aprendiendo a programar en Bash, segundo pues ya hace todo lo que quiero, o por lo menos lo básico y tercero está mas pulido (el anterior tenía errores que he descubierto, como que creaba un archivo ".traduc-respaldo" en vez de una carpeta, y es muy grave si quieren regresar a la traduccion anterior...)

Ademas que lo creaba en el directorio Home y no en el de cada user, cosa que también he arreglado.

 

EL tuyo tambien tenía ligeros errores pero en realidad el script nuevo está totalmente basado en el tuyo xD... solamente lo puli.

Gracias de nuevo y haber que me dices =).

 

+1
0
-1

------------------------------------------------------------------------
Usuario viejo, re-encontrandose con Ubuntu.
Gracias a esta web por todo.