FacturaScripts  
Soporte para internacionalizar correctamente FacturaScripts sin tener que utilizar traducciones parciales como hasta ahora. La tarea no es una proposición, sino más bien una solicitud de ayuda para que nativos ayudéis en la traducción.

image

Repo del fork para posteriormente hacer un pull-request al proyecto principal: Fork de FacturaScripts con soporte i18n

Si quieres traducir, usa: poeditor.

Falta:
1.- Soportar más idiomas, esto sucederá con el tiempo a medida que vaya apareciendo gente interesada.
2.- Hay que editar index.php[b] e [b]install.php y buscar:
$lang = 'en';
y cambiarlo por:
$lang = 'ar';
o la traducción que se quiera.
3.- Las referencias a las traducciones están aplicadas con la siguiente metodología "LUGAR__REFERENCIA", a excepción de las más repetitivas que están agrupadas en LUGAR "common". NOTA: Donde lugar es el nombre del controlador o página donde se usa.
4.- Mantener el código lo más sincronizado posible con el repositorio principal, para que cuando esté terminado podamos hacer un pull-request directamente.
5.- Soportar código de idioma superior al de 2 caracteres, así podemos controlar mejor las variantes como es_ES, es_MX, es_AR, ...

Si entre todos los programadores y partners le damos un empujón, podemos conseguir que FacturaScripts aparezca en https://bitnami.com/stacks que a la vez implica que nos hagan contenedores e instaladores multi-plataforma. La única razón que me dieron hace un tiempo cuando solicité que añadieran FacturaScripts, fue que no añadían software que no tuviera multi-lenguaje o como mínimo el inglés.

Una muestra de como va quedando ;)

Ya tenemos soporte para los 12 lenguajes que sólo requieren revisión de más usuarios para terminar de pulir las frases.
Y he subido traducciones hechas automáticamente para 41 idiomas, para que si algún día lleguen usuarios que hablen esos idiomas ya tengan una base.

Resumen de ofrecimientos que constan en Poeditor:
- es_ES: NeoRazorX
- ca_ES: shawe / Abel Pineda / Jorge (Prebac)
- co_ES: hlopez
- eu_ES: Ander Elortondo
- gl_ES: itacaswl / André Outeiro
- es_AR: Ezequiel Gallo
- es_CO: Camilo Medina / kamiloth
- es_DO: JoeNilson
- de_DE: jadacom
- en_EN: shawe / jadacom / Ezequiel Gallo
- en_US: jadacom
- fr_FR: Josep / shawe (aunque parcialmente, lo tengo muy oxidado)
- ht (Haitian Creole, no conozco su codigo xx_YY): Sterlin Vedrine
- pt_PT: André Outeiro

NOTA: Si vuestro idioma no está completo y queréis hacer pruebas, usar el botón "Copy terms to Translations" y os pondrá las referencias al texto como frase, así podéis descargar el archivo JSON, ponerlo en la carpeta "languages" y hacer pruebas. Si probáis una traducción que no contenga TODAS las cadenas, irá petando y no será por un fallo en el soporte de la internacionalización, sino por tener una traducción parcial.

Algunas consideraciones a tener en cuenta cuando se está traduciendo desde poeditor:
1.- Algunas frases contiene código HTML y variables, es IMPERATIVO que el código HTML sea igual para evitar que la traducción rompa el HTML y además, algunas frases reciben variables indicadas como %1$s donde el número puede ir cambiando en función de cuántas variables se reciban (1, 2, o las que sean necesarias para dicha frase).
2.- Aparecen 3 iconos:
2.a.- Comments: No se si desde versiones traducidas hará lo mismo, pero desde el idioma principal permite dejar comentarios que veréis todos. Puede ser útil para compartir dudas o aclaraciones.
2.b.- Toggle Fuzzy Translation: Se activa cada vez que desde el idioma principal se hace una modificación que afecta a esa traducción. Se puede activar también cuando se considera una traducción dudosa, porque está pensado para estos usos.
2.c.- Toggle Proofread Translation: Marca de confirmación de lectura, para saber que ya se ha realizado.

Estas marcas pueden estar combinadas, pero al fin y al cabo lo importante es que no tengamos frases con "Fuzzy" (consideras como borradores) y que todas aparezcan en "Proofread" para que podamos garantizar que el idioma esté lo mejor posible desde el punto de vista de un usuario.

Por favor, haced uso de estas consideraciones para facilitar la correcta evolución de las traducciones, y que podamos conocer en cualquier momento si el idioma ya está listo para ser integrado.

Si una vez lo tenéis traducido al 100% me váis avisando, descargo el JSON de ese idioma y lo voy añadiendo al repositorio, para que podáis descargar y probar.

Gracias a todos los que os habéis animado y a los que se animen a colaborar ;)

hace 4 meses   shawe   [programador nivel 14]
El que quiera colaborar de la forma que sea que lo comente aquí y le guío en lo que pueda ;)
hace 4 meses   hlopez_04fd16
Yo puedo colaborar con es_CO
hace 4 meses   shawe   [programador nivel 24]
hlopez pues ves haciendo a medida que puedas, y cuando lo tengas lo compartes por aquí mismo para añadirlo ;)

Esperamos que entre todos salga una buena cooperación para tener los idiomas de forma nativa. Aunque esto es sólo el inicio, ya que habrá que hacer lo mismo para todos y cada uno de los plugins poco a poco.
hace 4 meses   jadacom   [partner]
Vamos a preparar la versión en Catalán, Alemana e Inglesa en base a lo aquí expuesto
hace 4 meses   shawe   [programador nivel 24]
Y ya serán 4 idiomas extra que antes no teníamos ;)
hace 4 meses   itacaswl   [partner]
Nosotros podemos colaborar con el gallego, gl_ES
hace 4 meses   shawe   [programador nivel 24]
Perfecto, a medida que las tengáis id compartiéndolas para que podamos añadirlas.
hace 4 meses   shawe   [programador nivel 24]
Me falta subir las frases iniciales, pero lo podremos llevar mejor desde aquí:

https://poeditor.com/join/project/UT9peHDgUA

Así tenemos todas las contribuciones centralizadas y menos susceptibles a errores de modificar cosas sin querer ;)
hace 4 meses   hlopez_04fd16
Listo shawe, el es_CO solo falto esto que no tengo la menor idea que quieren decir:

[config2]
_blank_index = "No me toques los cojones!!!"

Según como lo vemos acá sería No me toques las guevas - pero ni modo de escribir eso literalmente, porque supongo que es un decir de ustedes
hace 4 meses   hlopez_04fd16
A que correo lo envío, acá no me deja adjuntar el archivo
hace 4 meses   shawe   [programador nivel 24]
Cuando escribes para dar una respuesta sale "enviar email a" no lo ves desde ahí?
hace 4 meses   shawe   [programador nivel 24]
Me ha dado más guerra de la que me pensaba, pero ya está preparado para que se pueda empezar a trabajar desde poeditor directamente.
hace 4 meses   ander_4df901
Buenas:

Yo estoy dispuesto ha traducir al Euskara.
¿puedo empezar ha traducir en Poeditor?
hace 4 meses   shawe   [programador nivel 24]
Ander si no lo veo mal ya has empezado ;)
hace 4 meses   shawe   [programador nivel 24]
Para la versión en inglés acabo de subir una versión auto-traducida (a modo de prueba para valorar si vale la pena empezar por una versión inicial automática) y la he revisado manualmente frase a frase haciendo cambios menores. Si alguien puede que le de un segundo repaso, pero creo que nos puede ahorrar mucho trabajo por lo que he visto ;)

Si alguien quiere alguna versión traducida de un idioma que no esté para luego darle un repaso que me lo diga, y valoramos si vale la pena añadir algún idioma extra así para agilizar la traducción, ya que nos puede ahorrar mucho tiempo.
hace 4 meses   ander_4df901
Buenas shawe:

Acostumbrado a colaborar en localizaciones (KDE, Gnome, Mozilla Calendar, SuperTuxKart....) me ha sorprendido el sistema de "cortar" frases cuando hay variables en medio que se ha decidido en FacturaScript. Téngase en cuenta que la sintaxis en diferentes idiomas varia mucho y que lo que en español es: inicio frase + variable + final frase en otro idiomas puede que toda la frase + variable o cualquier otra combinación. No lo tomen a mal, es un comentario con intención de aportación positiva en esta fase inicial.

un saludo!
hace 4 meses   ander_4df901
Ejemplo:
Se ha eliminado automáticamente la página␣
␣ya que no tiene un controlador asociado en la carpeta controller.

Supongo que entre las dos frases va la variable que nos indica la pagina eliminada.
En euskera la frase va exactamente en orden inverso esta vez, pero puede que otra vez la variable quede al principio o al final.

Solución actual: Independientemente del significado de cada frase y su longitud, traducir como un conjunto con la variable en medio. si todo el texto va al final dejar vacía la frase 1 para lograr variable + texto.

este tipo de frases se detectan fácilmente por tener el mismo nombre con final 1_2, 2_2....
hace 4 meses   ander_4df901
No tengo solución adecuada para las frases que finalizan con variable.
En estos casos es un problema ya que en otros idiomas la frase correcta puede que sea con la variable en medio, si identificamos la variable como %i:

Descargando el plugin␣ %i
%I␣plugina deskargatzen

en euskera la variable debe ir al principio. (estos Navarros inventaron el idioma al reves!)
hace 4 meses   shawe   [programador nivel 24]
Ander si sabes decirme que tengo que cambiar en el código para hacer lo que me dices, lo arreglo​. La solución fue así de basta porqué no vi claro como hacerlo y es la primera vez que me implico a hacer esto desde 0

No es no quererlo hacer mejor, es no saberlo.
hace 4 meses   ander_4df901
Buenas:

Mi época de programador ceso con las olimpiadas de Barcelona y cobol.
Soy contable y miembro activo del grupo de localizacion www.librezale.eus
Tengo experiencia en localizar a través de launchpad, transifex, pootle y por supuesto en local (como KDEro con localize)
Veo que las variables son parte del texto a traducir (por la sintaxis del idioma pueden estar en cualquier parte) y ademas están los plurales, las declinaciones..... El tema es mucho mas complejo que extraer los textos.

De todas formas no hay que inventar nada nuevo, con esto ya se han peleado ya otros.
Con una pequeña googleada veo que hay tutoriales para PHP: https://www.toptal.com/php/build-multilingual-app-with-gettext

Animo que la internacionalización os abrirá muchas puertas.
un saludo!
Ander.
hace 4 meses   shawe   [programador nivel 24]
Eso lo ví, pero he seguido lo que me dijo Carlos de usar y es esto: https://github.com/Philipp15b/php-i18n y para las frases así no he encontrado nada de nada que sea claro, aunque tengo que hacer pruebas para terminar de dejarlo como has dicho, porqué es lo más adecuado.

La ventaja es que de momento podemos ir traduciendo la gran mayoría de frases, y luego refinar estas otras con variables dentro.

La idea de la traducción no es para usarla ya mismo, sino tenerlo medianamente elaborado y pulido cuando se incorpore a la base, incluyendo observaciones como la que has hecho y te agradezco ;)
hace 4 meses   shawe   [programador nivel 24]
Ander ya he dado con lo que has dicho para hacerlo bien ;) Le he creado una issue en github para que lo añada a sus ejemplos, porqué sino no lo veo nada claro para que otros lleguen a la misma conclusión de forma sencilla y rápida.

https://github.com/Philipp15b/php-i18n/issues/39
hace 4 meses   ander_4df901
Buenas:

Lo he dejado traducido al 95%.
El 5% restante lo haré en un plis-plas cuando sea capaz de probar en una instalación local o demo la traducción.
El problema vuelve a ser el orden sintáctico de las frases y las variables.
He detectado que algunas frases están repetidas, no se si intencionadamente.
Necesito vuestra ayuda para la realización de pruebas.

Por otro lado, esta el plan general de contabilidad.
Afortunadamente ya esta traducido y os lo puedo enviar. (PGC 2007 para PYMEs)

¿Pueden indicarme a donde lo envio? (pueden pedirmelo por mail)
hace 4 meses   NeoRazorX   [admin]
Envíamelo a mi: carlos (arroba) facturascripts.com
hace 4 meses   shawe   [programador nivel 25]
Ander no te preocupes por las frases que faltan, porque me tengo que poner a revisar todas las strings para corregirlo tal y como me explicaste con las variables en la propia frase.

Dadme unos días que me asiente porqué cambio de trabajo, y seguiré con ello para que todos podamos avanzarlo como debería haber estado de un buen principio.
hace 4 meses   ander_4df901
Por el número de cadenas a traducir creo que la I18n solo era del núcleo.
Seria imprescindible que facturación_Base se publicara traducido al mismo tiempo.
Sin perjuicio de ir traduciendo cuanto antes el mayor numero posible de plugins.
hace 4 meses   shawe   [programador nivel 25]
Ander tienes razón, pero hay que ir por partes, para que tengamos una estructura común de trabajo ;)
hace 3 meses   shawe   [partner]
Acabo de hacer un commit en el que he añadido la posibilidad de forzar el idioma para que podamos ver todos como queda el trabajo que vamos realizando, y he añadido tu traducción. El idioma queda forzado a 'en' para que lo podamos encontrar todos de la misma forma.

Hay que editar index.php e install.php y buscar:
$lang = 'en';

y cambiarlo por:
$lang = 'ba';

O la traducción que se quiera.

Como ya indiqué en mensajes anteriores, deberemos añadir que las traducciones sean algo así como: es_ES, es_ES, en_EN, que por ahora no tenemos, pero por lo menos esto no nos imposibilita seguir trabajando y viendo nuestros avances.

Intentaré durante estos días de fiesta dejar todas las frases juntas y sin cortes como los que tenemos ahora para que las traducciones sean más acordes a las frases reales, y así prescindir de los cortes iniciales que hice por falta de información.
hace 3 meses   shawe   [partner]
9h después, aquí van todos los cambios que he hecho:
- Está actualizado el código del fork para i18n a los últimos cambios publicados del proyecto principal.
- He unificado todas las frases/palabras que he visto que era posible evitar tener duplicados, pero seguro que quedarán más, todas las que veais duplicadas id diciendolas y las iré unificando.
hace 3 meses   shawe   [partner]
Ya debería funcionar decente sin petar o mostrar errores a menos que tengáis la traducción incompleta.

Os recomiendo bajaros la traducción al español y la que estéis traduciendo, y con meld (una aplicación para comparar diferencias) pasaros todas las linea faltantes (las verdes) a vuestro archivo de traducción, e ir probándolo sobre la marcha, sino os petará si falta alguna frase.

La otra alternativa, es usar el botón "Copy Terms to Translations" desde Poeditor, y os pondrá las referencias al texto como frase y luego descargarlo.

En caso de que os fallase alguna frase, necesito que me peguéis el error para localizar que frase y en que archivo está fallando. He dado bastantes vueltas y probado bastante, y he llegado a un punto que no he encontrado ninguna frase colgada, aunque por desgracia dudo que haya llegado a probarlo todo.

Además, os pido ayuda para unificar las frases/palabras traducidas que veáis, porqué esto es un trabajo de chinos para hacerlo uno sólo xDDDD
hace 3 meses   shawe   [partner]
hace 3 meses   shawe   [partner]
Post actualizado con toda la nueva info relevante centralizada que ha ido saliendo.
hace 3 meses   andre_ccf651
Podeis contar conmigo para gl_ES y pt_PT.
hace 3 meses   shawe   [partner]
Muchas gracias Andre ;)
hace 3 meses   josepbelchi_f74d39
Hola Shawe veo bastantes errores en la traducción al francés y no tengo claro si tengo que (marcar el recuadro) o la (F en el circulo) para poner la traducción que creo mas correcta. Puedes ayudarme? No quiero cargarme el trabajo ya echo. Tengo ayuda de la escuela francesa de Andorra y puedo buscar tiempo para repasarlo todo y completarlo. Gracias.
hace 3 meses   josepbelchi_f74d39
Vaya, ya encontré como descargar las traducciones, voy a bajar castellano y francés para comparar y hacerlo en un archivo externo.
hace 3 meses   shawe   [partner]
Josep te contacto directamente por email, porque sino te ha quedado claro con el primer mensaje de este hilo, es que debo re-escribirlo de forma más clara.
hace 3 meses   info_beef2d
Estaba probando las traducciones al Catalán, pero los textos que hay en el footer no cambian:

Creado con Facturascripts
Consultas
Transaciones
Versión
hace 3 meses   info_beef2d
Hoy al ejecutar el Cron en el servidor local que tengo bajo Windows7, con Tareas Programadas, me da un error y no sigue ejecutando el Cron:

C:\Windows\system32>C:\wampserver7120\php\php.exe C:\wampserver7120\apache2\htdocs\Erp-FS\cron.php 1>>C:\wampserver7120\apache2\htdocs\Erp-FS\cron.log

PHP Fatal error: Uncaught RuntimeException: No language file was found. in C:\wampserver7120\apache2\htdocs\Erp-FS\base\fs_i18n.php:149

Stack trace:
#0 C:\wampserver7120\apache2\htdocs\Erp-FS\cron.php(27): fs_i18n->init()
#1 {main}
thrown in C:\wampserver7120\apache2\htdocs\Erp-FS\base\fs_i18n.php on line 149


C:\Windows\system32>pause
Presione una tecla para continuar . . .
hace 1 mes   NeoRazorX   [admin]
Ya implementado en el prototipo del nuevo núcleo.
No se pueden hacer más comentarios. Mejor escribe una nueva pregunta

Mejoras disponibles para financiar

Mejora 01 60 ventas necesarias.

Modificar el plugin facturacion_base para añadir saldos a clientes, importes pendientes en facturas de venta sin pagar, etc. Para un mejor control de las deudas.


Mejora 02 50 ventas necesarias.

Financiación colectiva para añadir más algoritmos de nuevo código: normal pero con ceros, continuo, tipo continuo y por rango.


Mejora 03 EN DESARROLLO

Financiación colectiva para mejorar el plugin megafacturador y añadir:
- Agrupar los albaranes de cada cliente en una única factura por cliente.
- Facturar automáticamente cada día, o un determinado día del mes.
- Enviar automáticamente por email las facturas.





© 2013-2017 FacturaScripts