Buscar este blog

Aviso

El autor de éste blog no se hace responsable de los posibles daños o perdidas de información, que pudieran ocasionarse en su sistema o su vida por la aplicación de la información aquí contenida.
Mostrando entradas con la etiqueta hacer. Mostrar todas las entradas
Mostrando entradas con la etiqueta hacer. Mostrar todas las entradas

domingo, 29 de abril de 2012

Hacer tu usb multiarranque con grub2

Buenas nuevas, esta entrada de blog no solo lo escribo yo, es alianza un compañero, Leonardo Zambrano, les dejo con nuestro trabajo.

Con cierta alegría y satisfacción les presento un "tutorial" de como hacer nuestro PENDRIVE o memoria usb Multidistros con Grub2. La idea es tener en una sola USB varios instaladores de distribuciones de LINUX ademas de un par de herramientas como GPARTED, que lógicamente nos trae beneficios. Vamos a comenzar con el proceso:

  1. Antes de todo debemos tener nuestra USB recién formateada en fat. Recuerda el nombre que le pusiste a tu USB ya que lo necesitaremos más adelante.

    %en este numeral cabe resaltar que no deben existir particiones en el disco, para eliminar todas usa el comando.

    $ sdX=sdb

    $ NombreMem=Multiboot

    %acá establecí una variable de entorno con el valor del dispositivo sdb y el nombre Multiboot. Por cuestión de copiar y pegar código. %donde NombreMem; es el nombre de quieras ponerle a tu usb y sdX será el enlace al dispositivo por lo general sdb, puedes ver cual es con el programa gráfico palimpsest que dispositivo es recuerda que el dispositivo es sin numero, solo sdb, los que contienen números son las particiones que serán del estilo sdb1 sdb2.

    $ sudo umount /dev/$sdX

    $ sudo dd if=/dev/zero of=/dev/$sdX bs=1M count=1

    $ sudo mkfs.vfat -n $NombreMem /dev/$sdX -I

    %puedes ahora extraer e insertar tu memoria o tipear estos comandos, si lo haces con los comandos tendrás que ejecutar las opciones de copia o ejecución como sudo:

    $ sudo mkdir /media/$NombreMem

    $ sudo mount /dev/$sdX /media/$NombreMem

  2. Crearemos una carpeta en la cual crearemos "el boot" de nuestra USB.

    $ mkdir $HOME/grubusb

    %pueden crear la carpeta donde quieran y con el nombre que quieran tan solo deben tenerlo presente durante todo el proceso

  3. Cambiamos el directorio de la terminal.

    $ cd $HOME/grubusb

  4. Instalamos un programa que necesita el grub2-mkrescue

    $ sudo yum install -y xorriso

  5. Creamos la imagen (.iso) con un grub por defecto:

    $ grub2-mkrescue -o arranque.iso

    %el nombre del .iso lo deciden también ustedes.

  6. Le damos todos lo permisos a los archivos contenidos en la carpeta:

    $ chmod -Rfv 777 $HOME/grubusb/

  7. Luego entramos con nautilus a la carpeta de trabajo.

    $ nautilus $HOME/grubusb/

    %esto nos abrirá la carpeta de trabajo

  8. Extraemos el .iso que se encuentra en el directorio que abrimos, le damos clic derecho sobre el archivo arranque.iso y luego en la opción extraer aquí. Esto crea la carpeta arranque y dentro de esta crearemos| otra carpeta llamada isos. En esta colocaremos todas las distribuciones que queramos tener en la USB.

  9. A continuación volvemos a nuestra terminal e instalamos el grub2 en nuestra USB con el comando.

    $ sudo grub2-install --force --no-floppy --root-directory=/media/$NombreMem /dev/$sdX

  10. Copiamos toda nuestra carpeta de trabajo en la raíz de nuestra USB.

    $ cp -avf $HOME/grubusb/arranque/* /media/$NombreMem

  11. Por ultimo nos dirigimos a nuestra USB y buscamos la carpeta boot y dentro de ella buscamos a la carpeta grub2, en esta creamos un nuevo documento.

    $ gedit /media/$NombreMem/boot/grub2/grub.cfg

  12. En este archivo escribimos lo siguiente:



    %en donde dice distro_1 debe ir el nombre del .iso de la distribucion que esta en la carpeta "iso". Estas mismas lineas debemos hacerlas para cada iso que queramos que aparezca en el arranque de nuestra USB. Estas isos hay que copiarlas dentro de la USB

    %por lo general este comando sirve en la mayoría de las distros, pero si quieren ver otras, tal vez te sirva ver http://www.panticz.de/MultiBootUSB

  13. Guardamos nuestro archivo grub.cfg y con esto hemos terminado el proceso de convertir nuestra USB en live-USB multidistros.

  14. Nuestro compañero leonardo se tomó el trabajo de hacer un grub.cfg para varias distribuciónes, así que lo pego tal cual.


  15. Oh olvidaba, si quieren borrar todos los archivos que creamos.

    $ rm -rf $HOME/grubusb/

Good Luck!!!

%Se ha encontrado gran parte de la solución en:
http://www.ubuntu-es.org/node/123018
y muchos otros blogs y foros

martes, 13 de marzo de 2012

Como hacer la traducción de un sitio a varios idiomas por medio de la funcion gettext de PHP

Buen día, vengo a explicar como hacer un sitio web multilenguaje y la recomendación de como estructurarlo.

Creo que es mi deber escribir acerca del método haciendo una introducción breve de las herramientas y comentar porque es recomendable para proyectos pequeños.

I. Explicación del método y el porque utilizarlo para pequeños proyectos.

El método consiste en no reformar mucho el código si solo hemos programado en HTML, al agregar algunos "<?php echo _(" ")?>" podemos realizar una traducción sin problemas claro que como el código es php se hizo necesario crear un .php para cada .html que habíamos creado antes, luego de esto el programa Poedit se encarga de leernos los tags php para crearnos un archivo de traducción .mo, el método con Poedit debería repetirse para cada idioma adicional que queramos agregar al sitio web.

II. Conceptos Previos y aplicación del método

-PHP es un lenguaje para programar en la web, este lenguaje posee varias funciones muy interesantes que pueden hacer que tu vida como programador web sea muy sencilla si sabes como implementarlo. Los archivos .php que son ficheros que son ejecutados en el servidor (donde está guardada la página web) y le dan como respuesta al equipo cliente (a la computadora donde estas navegando) un código HTML y/o CSS que el navegador web te muestra renderizado.

-La función gettext de php busca en un fichero .mo la traducción del texto que está dentro de dicha función. Ejemplo:

<?php echo gettext("Este sitio web está en Español")?>
<?php echo _("Este sitio web está en Español")?>

Como vemos, dentro de la función gettext o de su alias _ que son equivalentes, se pondrá el texto que quieras que esté traducible en tu sitio web; Esto se hace en los ficheros .html o .htm.

-Para que el método gettext funcione es recomendable mover a una carpeta dentro del servidor para el caso usaré cod como la carpeta donde están todos los .html o .htm que hayas creado. En el directorio principal que yo denominaré /path tendrás que crear un .php por cada .html que moviste. Dichos .php llamarán el código HTML para presentarlo de acuerdo al idioma que le configuremos; Les mostraré el ejemplo de un .php y las explicaciones son los comentarios entre /* */:

<?php
/*$language es una variable que guarda el idioma en que se mostrará el sitio*/
$language="en_US";
/*putenv y setlocale se configuran con el lenguaje en que se desea mostrar el sitio
para el caso se configuran con lo que hayan en $language*/
putenv("LC_ALL=$language");
setlocale(LC_ALL, $language);
/*el domain es la dirección donde se va a encontrar el archivo .mo, para este caso
se va a encontrar en /path/locale/en_US/LC_MESSAGES/en.mo  "en" es el nombre del
archivo y, este se debe poner sin extensión tanto en bindtextdomain y en textdomain*/
bindtextdomain("en", "./locale");
textdomain("en");
/*acá le decimos que incluya el .html o .htm que corresponde .php que estamos creando*/
include ("cod/index.html");
?>

-Como vimos la estructura queda resumida de este modo:

/path Directorio raíz donde se aloja la página
/path/cod Directorio donde se guardan los .html que hemos creado
/path/locale/en_US/LC_MESSAGES Directorio donde se guarda el fichero .mo y .po
/path/locale/fr_FR/LC_MESSAGES Podemos crear otra traducción por ejemplo a Frances
/path/locale/en_GB/LC_MESSAGES O a Inglés Británico teniendo en cuenta el ISO-639 e ISO-3166 pueden encontrar una tabla de estos en esta página: http://frontaccounting.com/wb3/pages/download/language-definitions.php

-Uso del programa Poedit para la creación de los archivos .po y .mo. Estos archivos son los que almacenan la traducción del idioma original del sitio a otro. El archivo .mo es algo así como un binario que contiene la información de las traducciones y es el archivo que usa PHP para ejecutar la función gettext. El .po contiene el código de generación del .mo para que se pueda actualizar, agregar nuevas traducciones y éste es el archivo que reconoce el programa Poedit.
El uso del programa es muy sencillo y su instalación igual, en Fedora se puede hacer de este modo:

$ sudo yum install poedit

Ahora que está instalado abrimos el programa y accedemos a Archivo > Nuevo catálogo..., luego nos aparecerá una ventana con las opciones del catálogo; En Información de proyecto llenamos según nuestro proyecto y lo importante es que el Idioma y País que preguntan son los del idioma al que vamos a traducir y que el Juego de caracteres y el Juegos de caracteres del código fuente sean UTF-8
En la pestaña Carpetas de acuerdo al ejemplo se llenaría de la siguiente forma; El campo Directorio Raíz se llenaría con /path y al agregar en la sección lista de Carpetas un Nuevo elemento lo llenaríamos con cod que es el subdirectorio que me almacena los .html o .htm que anteriormente debimos haber transformado con la funcion gettext de PHP.

En la pestaña Palabras clave escogeremos la que usamos en la transformación del código html, yo utilicé la palabra alias de gettext _ ya que me pareció más legible en el código, las otras palabras tenemos la opción de borrarlas para que no se presente ningún conflicto con otra característica. A continuación click en Aceptar.
Tal vez no te halla detectado ninguna traducción, esto se debe a que por defecto esta aplicación no lee los ficheros con extensión .html o .htm, para agregar estas extensiones ve a Edición > Preferencias > Procesadores > PHP > Editar, la lista de extensiones debe quedar con *.php;*.html;*.htm y la línea de comandos debe quedar con xgettext --language=PHP --from-code=UTF-8 --forcepo -o %o %C %K %F; Dale enter y a continuación acepta todos los cambios.

Para Actualizar el catálogo bastaría con Catálogo > Actualizar desde fuentes tal vez te salga algún Poedit error es normal ya que por defecto las extensiones .html no son reconocidas, acepta todos los resultados de la actualización y luego verás nuevas entradas donde dice Texto original solo basta con llenar la Traducción y guardar los cambios en el directorio:

/path/locale/en_US/LC_MESSAGES/en.po

Más populares

Archivo del blog