Páginas (3):    1 2 3
tincho   08-05-2023, 12:45
#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:

Código:
Public Function PoContent(jProj As Collection, sDest As String) As String[]

  Dim aText As New String[]
  Dim sPotFile As String = jProj["Directory"] &/ ".lang/.pot"
  Dim sTimeStampPot As String
  Dim sTimeStampPo As String
  Dim sVendor As Variant
  Dim sVendorEmail As Variant
  Dim r As Integer
  Dim aTmp As New String[]
  Dim sInput As String
  Dim sOutput As String
  Dim sFrom As String
  Dim sKey As String

  If Exist(sPotFile) Then

    sTimeStampPot = Format(Stat(sPotFile).Time, "yyyy-mm-dd hh:nn") & " UTC"
    sTimeStampPo = Format(Now(), "yyyy-mm-dd hh:nn") & " UTC"

    If jProj["Vendor"] Then
      sVendor = jProj["Vendor"]
    Endif

    If jProj["Language"] Then
      If InStr(jProj["Language"], "_") Then
        sFrom = Split(jProj["Language"], "_")[0]
      Else
        sFrom = jProj["Language"]
      Endif
    Endif

    sKey = sFrom & ":" & sDest

    If jProj["Address"] Then
      sVendorEmail = jProj["Address"]
    Endif

    aText.Add("#, fuzzy")
    aText.Add("msgid " & Chr(34) & Chr(34))
    aText.Add("msgstr " & Chr(34) & Chr(34))
    aText.Add(Chr(34) & "Project-Id-Version: " & jProj["Title"] & " " & jProj["Version"] & "\\n" & Chr(34))
    aText.Add(Chr(34) & "POT-Creation-Date: " & sTimeStampPot & "\\n" & Chr(34))
    aText.Add(Chr(34) & "PO-Revision-Date: " & sTimeStampPo & "\\n" & Chr(34))
    aText.Add(Chr(34) & "Last-Translator: " & sVendor & " " & sVendorEmail & "\\n" & Chr(34))
    aText.Add(Chr(34) & "Language: " & sDest & "\\n" & Chr(34))
    aText.Add(Chr(34) & "MIME-Version: 1.0\\n" & Chr(34))
    aText.Add(Chr(34) & "Content-Type: text/plain; charset=UTF-8\\n" & Chr(34))
    aText.Add(Chr(34) & "Content-Transfer-Encoding: 8bit\\n" & Chr(34))

    aTmp.Clear
    aTmp = File.Load2(sPotFile)
    For r = 0 To aTmp.Max
      If Left(aTmp[r], 3) = "#: " Then
        If Left(aTmp[r + 1], 3) = "msg" And Left(aTmp[r + 2], 3) = "msg" Then
          aText.Add("")
          aText.Add(aTmp[r])

          sInput = Replace(String.Mid(aTmp[r + 1], 7), "\"", "")
          sOutput = Replace(String.Mid(aTmp[r + 2], 8), "\"", "")

          If sOutput = "" Then
            If jSource.Exist(sKey) Then
              If jSource[sKey].Exist(sInput) Then
                If jSource[sKey][sInput] <> "" Then
                  sOutput = jSource[sKey][sInput]
                Endif
              Endif
            Endif
          Endif

          aText.Add("msgid \"" & sInput & "\"")
          aText.Add("msgstr \"" & sOutput & "\"")
        Endif
      Endif
    Next
  Endif

  Return aText

End
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.
Shell   08-05-2023, 14:08
#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

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
tincho   08-05-2023, 14:12
#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.
Páginas (3):    1 2 3
  
Usuarios navegando en este tema: 1 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.