Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Errores en la traducción de un proyecto
#21

(06-05-2023, 19:43)Shell escribió:  Entiendo que las opciones que da tradukisto  para los idiomas de salida es español común.

Correcto, todos los lenguajes de salida son deslocalizados.
(05-05-2023, 19:42)Shell escribió:  Me ha funcionado haciéndolo con tu aplicación.

Si, es porque crea el archivo .po de forma independiente con el método:

GAMBAS
  1. Public Function PoContent(jProj As Collection, sDest As String) As String[]
  2.  
  3.   Dim aText As New String[]
  4.   Dim sPotFile As String = jProj["Directory"] &/ ".lang/.pot"
  5.   Dim sTimeStampPot As String
  6.   Dim sTimeStampPo As String
  7.   Dim sVendor As Variant
  8.   Dim sVendorEmail As Variant
  9.   Dim aTmp As New String[]
  10.   Dim sInput As String
  11.   Dim sOutput As String
  12.   Dim sFrom As String
  13.   Dim sKey As String
  14.  
  15.   If Exist(sPotFile) Then
  16.  
  17.     sTimeStampPot = Format(Stat(sPotFile).Time, "yyyy-mm-dd hh:nn") & " UTC"
  18.     sTimeStampPo = Format(Now(), "yyyy-mm-dd hh:nn") & " UTC"
  19.  
  20.     If jProj["Vendor"] Then
  21.       sVendor = jProj["Vendor"]
  22.     Endif
  23.  
  24.     If jProj["Language"] Then
  25.       If InStr(jProj["Language"], "_") Then
  26.         sFrom = Split(jProj["Language"], "_")[0]
  27.       Else
  28.         sFrom = jProj["Language"]
  29.       Endif
  30.     Endif
  31.  
  32.     sKey = sFrom & ":" & sDest
  33.  
  34.     If jProj["Address"] Then
  35.       sVendorEmail = jProj["Address"]
  36.     Endif
  37.  
  38.     aText.Add("#, fuzzy")
  39.     aText.Add("msgid " & Chr(34) & Chr(34))
  40.     aText.Add("msgstr " & Chr(34) & Chr(34))
  41.     aText.Add(Chr(34) & "Project-Id-Version: " & jProj["Title"] & " " & jProj["Version"] & "\\n" & Chr(34))
  42.     aText.Add(Chr(34) & "POT-Creation-Date: " & sTimeStampPot & "\\n" & Chr(34))
  43.     aText.Add(Chr(34) & "PO-Revision-Date: " & sTimeStampPo & "\\n" & Chr(34))
  44.     aText.Add(Chr(34) & "Last-Translator: " & sVendor & " " & sVendorEmail & "\\n" & Chr(34))
  45.     aText.Add(Chr(34) & "Language: " & sDest & "\\n" & Chr(34))
  46.     aText.Add(Chr(34) & "MIME-Version: 1.0\\n" & Chr(34))
  47.     aText.Add(Chr(34) & "Content-Type: text/plain; charset=UTF-8\\n" & Chr(34))
  48.     aText.Add(Chr(34) & "Content-Transfer-Encoding: 8bit\\n" & Chr(34))
  49.  
  50.     aTmp.Clear
  51.     aTmp = File.Load2(sPotFile)
  52.     For r = 0 To aTmp.Max
  53.       If Left(aTmp[r], 3) = "#: " Then
  54.         If Left(aTmp[r + 1], 3) = "msg" And Left(aTmp[r + 2], 3) = "msg" Then
  55.           aText.Add("")
  56.           aText.Add(aTmp[r])
  57.  
  58.           sInput = Replace(String.Mid(aTmp[r + 1], 7), "\"", "")
  59.           sOutput = Replace(String.Mid(aTmp[r + 2], 8), "\"", "")
  60.  
  61.           If sOutput = "" Then
  62.             If jSource.Exist(sKey) Then
  63.               If jSource[sKey].Exist(sInput) Then
  64.                 If jSource[sKey][sInput] <> "" Then
  65.                   sOutput = jSource[sKey][sInput]
  66.                 Endif
  67.               Endif
  68.             Endif
  69.           Endif
  70.  
  71.           aText.Add("msgid \"" & sInput & "\"")
  72.           aText.Add("msgstr \"" & sOutput & "\"")
  73.         Endif
  74.       Endif
  75.     Next
  76.  
  77.   Return aText
  78.  


Pero estoy trabajando, de a ratos, en algo mas integrado que también traduce proyectos de gambas y hace algunas cosas mas pero es un proyecto algo extenso así que de momento esta... no beta, lo anterior Big Grin

1 Saludo.
[-] Los siguientes 1 usuarios dice gracias a tincho por este post:
  • Shell
    ¡Gracias!
#22

Tincho, la fuente de Gambas3 tiene dos archivos que puede ahorrar parte de la creación de la cabecera desde código ,son estos:

- po-header.txt
- pot-header.txt

Si lo revisas o te lo creas a tu gusto te evitarías añadirlo desde código. No es que sea una cosa muy extensa, claro.
Pero, ¿ y si la estructura de estos archivos cambian con el tiempo ?. Por versión por ejemplo. El código creado por la aplicación
podría quedar obsoleto o no funcionar.

Hay una utilidad que instalé ayer que comprueba estos tipos de archivos. Lo que no sé es si los lenguajes de programación
siguen o respetan todos la estructura de los archivos, po, pot, mo, etc. Se llama así:

i18nspector (1)      - checking tool for gettext POT, PO and MO files

Al 100% seguramente no se respeta o se usan opciones en la linea del comando que evita algún problema al comprobar
los archivos con esa herramienta.
 
(08-05-2023, 12:45)tincho escribió:  Pero estoy trabajando, de a ratos, en algo mas integrado que también traduce proyectos de gambas y hace algunas cosas mas pero es un proyecto algo extenso así que de momento esta... no beta, lo anterior

Es que son proyectos muy extensos.

Saludos

"Pero no toques, por qué tocas? - Amador"
    ¡Gracias!
#23

(08-05-2023, 14:08)Shell escribió:  Si lo revisas o te lo creas a tu gusto te evitarías añadirlo desde código.

No me convence usar esta modalidad de archivos de texto con File.Load, prefiero que todo este en el código nada de archivos externos. luego es mas fácil el seguimiento al trabajar en equipo con git, entre otras cosas.

1 Saludo.
[-] Los siguientes 1 usuarios dice gracias a tincho por este post:
  • Shell
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje
Último mensaje por Shordi
28-07-2023, 09:39

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)