Archivo de la etiqueta: php

sysPass, el remake de phpPMS

syspass

sysPass toma el relevo a phpPMS, un gestor de claves web en PHP,  multiusuario y con encriptación de alto nivel, para así poder almacenar y exportar la base de datos con total seguridad.

Entre las características, destacan:

  • Interfaz web con HTML 5 y Ajax.
  • Multiusuario con gestión de grupos y perfiles con 16 niveles de acceso.
  • Autentificación de usuarios con MySQL, OpenLDAP y Active Directory.
  • Gestión de archivos para las cuentas.
  • Multilenguaje.
  • Visor en línea de imágenes.
  • Alertas por email.
  • Historial de cambios en cuentas.
  • Seguimiento de acciones y fallos mediante un visor de eventos.
  • Instalación en un solo paso.

Tras 6 meses de intenso desarrollo y pruebas, espero que esta versión se consolide como la base para futuras mejoras, ya que se ha refactorizado y reescrito la mayor parte del código, para así adaptarlo a las nuevas funcionalidades.

Para aquellos que tengan instalado phpPMS, es posible realizar la importación de datos. Para ello, una vez instalado sysPass, acceder a las opciones de configuración y seleccionar la pestaña de “Importar Cuentas” e indicar los datos de acceso a la base de datos donde se encuentran los datos de phpPMS. Esta importación no realiza ningún cambio en los datos de phpPMS.

Para más detales como instalación, demo, código y más…aquí

Convertir a gettext

Buenas, os dejo un sencillo script para modificar el código fuente de archivos PHP al formato de gettext.

Se parte de la base que el código está traducido usando un array para las cadenas a traducir, esto es, usamos:

$LANG["buttons"][0]="Botón";

para definir la matriz de traducciones y ésta se almacena en un archivo independiente.

#!/bin/bash
#
# gtranslate.sh
#
# Script para convertir cadenas que están guardadas en un array en PHP
# como $LANG["button"][0]="Botón";
# al formato de gettext como _('Button') en los archivos .php bajo
# el directorio donde se ejecuta el script.
#
# Script for convert strings that are saved as array in PHP
# like $LANG["button"][0]="Botón";
# to gettext format like _('Button') in .php files under script
# current path.
#
#
# Es necesario adaptar la variable $LANG_FILE al archivos donde se
# encuentran los arrays de traducciones.
# La variable $LANG_FILE_ALT se utiliza para excluir otro archivo de
# traducciones de ser modificado
#
# Por cada archivo a modificar, se crea un archivo de backup .bak
# Si ya existe un archivo .bak del archivo a modificar, no se realiza
# la modificación
#
# You need to fit the $LANG_FILE var to the file where translation array
# are saved.
# The $LANG_FILE_ALT var is used to exclude another translation file from
# being modified.
#
# Every file to modify is backed up into .bak file
# If .bak of file to be modified already exist, modify won't be made.
#
#
# (c) 2013 - nuxsmin - http://cygnux.org
#
# Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Unported.
#

LANG_FILE="./locales/es_ES.php"
LANG_FILE_ALT="./locales/en_US.php"

find ./ -name "*.php" | while read FILE;do
  test "$FILE" = "$LANG_FILE" && continue
  test "$FILE" = "$LANG_FILE_ALT" && continue

  echo "$FILE ..."

  test -e "$FILE.bak" && continue
  cp $FILE $FILE.bak || continue

  egrep '^\$LANG\[' $LANG_FILE | while read LINE;do
    test -z "$LINE" && continue

    STRIP="$(echo "$LINE" | sed -e 's/;//g' -e 's/\]/\\\]/g' -e 's/\[/\\\[/g' -e 's/\$/\\\$/g' -e 's/\//\\\//g' -e 's/\&/\\\&/g' -e \"s/'/\\\'/g\")"
    ARR_LANG=`echo "$STRIP" | cut -d "=" -f 1`
    ARR_LANG_DESC=`echo "$STRIP" | cut -d "=" -f 2 | sed -e 's/"//g' -e 's/\&/\&/g' -e 's/\//\\\//g' -e "s/'/\\\'/g"`

    sed -i "s/$ARR_LANG/_('$ARR_LANG_DESC')/g" $FILE || exit
    #break
  done
  #break
done

Espero que os sirva… ;)