Cómo informar el compilador Pascal gratuito para establecer ID de configuración local para la aplicación compilada

StackOverflow https://stackoverflow.com/questions/9326305

  •  27-10-2019
  •  | 
  •  

Pregunta

En Delphi hay una opción VersionInfo-> Language-> ID local Al ver las propiedades del proyecto.
Estaba deambulando cómo establecer dicha propiedad para un programa que se compiló bajo Free Pascal.
Cualquier solución es bienvenida: argumento de línea de comandos o directiva del preprocesador como {$key value}; equivalente a Delphi.

¿Fue útil?

Solución

Si puede construir sus proyectos utilizando *.lpi archivos, entonces intentaría agregar lo siguiente en el proyecto de su proyecto Project.lpi expediente. En el siguiente fragmento se muestra cómo establecer la ID de localización del proyecto (para la plataforma Windows) en 0405 (checo).

<?xml version="1.0"?>
<CONFIG>
  <ProjectOptions>
    ...
    <VersionInfo>
      <UseVersionInfo Value="True"/>
      <Language Value="0405"/>
      <StringTable ProductVersion=""/>
    </VersionInfo>
    ...
  </ProjectOptions>
  ...
</CONFIG>

O si está utilizando Lazarus IDE, entonces podría usar en la pestaña Configuración muy similar de Delphi que puede abrir Project / Project Options ... Y como en Delphi ve a Version Info dónde está el Language selection Caja combinada disponible si incluye la información de la versión en el proyecto.

Otros consejos

No está 100% seguro de que esto funcionará, no dude en votarme si esto no funciona.

Lázaro heredará la configuración local con la que comienza.
Puede establecer la información local antes de iniciar Lázaro en Linux/OS X Usando la línea de comando:

export LC_CTYPE="pt_BR"
export LANG="pt_BR"
export LANGUAGE="pt_BR"
./lazarus

Su aplicación compilada debe heredar estas configuraciones.

La respuesta se inspira en esta solución a un error se ha corregido desde entonces.

Te recomiendo que eches un vistazo en el foro de FPC también y haz la pregunta allí.
No olvide que incluya detalles como la plataforma (Linux/Windows/OS X) y la versión exacta de FPC y Lázaro que está utilizando, así como la ubicación real que desea.

Mejor respuesta
De: http://forum.lazarus.freepascal.org/index.php/topic,5924.0.html

Finalmente, logré encontrar una forma simple y efectiva de hacer que mi aplicación sea localizable. Utiliza solo una unidad y sin código.
1. Agregue la unidad "DefaultTranslator" a su lista de usos.
2. Habilite "I18N" en "Opciones de proyecto" y configure "Directorio de salida PO" en "Local" o "Idiomas". Puede poner archivos de traducción directamente en la carpeta de aplicaciones, pero eso solo sería un desastre. No olvides crear una carpeta apropiada.
3. Agregue componentes al formulario. Si ya tiene todos los componentes en su formulario, tendrá que moverlo un poco, por lo que está modificado.
4. Guarde su proyecto.
5. Ahora debe haber archivos .po en su carpeta "localización" o "idiomas". Para diferentes idiomas, los archivos deben copiarse y renombrarse como "Project1.xx.po", donde xx es código de idioma (por ejemplo, "E", "DE", etc.).
6. Traducir archivos .po con software de traducción y generar archivos .mo. Sugiero usar Poedit.
7. Ejecute su aplicación, y la traducción a ser utilizada será elegida por su configuración regional local. Si necesita probar otro idioma, simplemente inicie su aplicación con los siguientes parámetros de línea de comandos: "-l xx" o "-lang xx", donde xx es un código de idioma.
Este método no es muy versátil, pero traduce cadenas de recursos y propiedades del componente LCL.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top