[gelöst] Captions nicht in .po

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.
Antworten
Michl
Beiträge: 2425
Registriert: Di 19. Jun 2012, 12:54

[gelöst] Captions nicht in .po

Beitrag von Michl »

Hallo allerseits,

ich habe hier Lazarus 1.5 Revision 49833 mit FPC 3.1.1 31705 auf Windows 7 laufen. Es werden bei eingeschalteter i18n Projektoption nur Resourcestrings in die .po übertragen, alle Captions vom Typ TTranslateString werden ignoriert.

Das gleiche Projekt unter Lazarus 1.4.2 mit FPC 2.6.4 auf dem gleichen Rechner überträgt alle TTranslateStrings in die .po.

Gibt es irgend eine weitere Option im Trunc zu beachten oder ist dies ein Bug?!

Danke

Michael


[Edit] Komisch, ich wollte auf die Fehlersuche gehen. Nach dem Test zwei älterer Revisionen habe ich auch die oben genannte wieder getestet und nun funktioniert das auch mit dieser Version. K.A., was da gestern schief gelaufen ist.

Sorry, falls sich schon jemand Umstände deshalb gemacht hat. :wink:
Zuletzt geändert von Michl am So 20. Sep 2015, 19:51, insgesamt 1-mal geändert.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Michl
Beiträge: 2425
Registriert: Di 19. Jun 2012, 12:54

Re: Captions nicht in .po

Beitrag von Michl »

Doch nicht gelöst...

Es ist schon reichlich merkwürdig manchmal funktioniert es, dass die Captions von den Controls in die .po eingetragen werden manchmal nicht.

Ich habe jetzt folgende Schritte gemacht (Lazarus 1.4.2 und Lazarus 1.5 gleichzeitig):
- neues Projekt erstellt
- in ein neues leeres Verzeichnis gespeichert
- in diesem Verzeichnis ein Verzeichnis "languages" erstellt
- in den Projekteinstellungen -> i18n -> i18n einschalten ... und das Verzeichnis "languages" gewählt
- in Lazarus 1.4.2 Haken bei .po Datei beim Speichern einer lfm Datei erstellen/aktualisieren gesetzt (bei Lazarus 1.5 fehlt diese Checkbox)
- ein Button auf dem Formular platziert
- in den uses DefaultTranslator als letzte Unit eingefügt
- ein resourcestring eingefügt:

Code: Alles auswählen

var
  Form1: TForm1;
 
resourcestring
  STest = 'This is a test';     
- Projekt gestartet

Unter 1.4.2 wird ein project1.po wie folgt erstellt:

Code: Alles auswählen

msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
 
#: tform1.button1.caption
msgid "Button1"
msgstr ""
 
#: tform1.caption
msgid "Form1"
msgstr ""
 
#: unit1.stest
msgid "This is a test"
msgstr ""

unter 1.5 folgender:

Code: Alles auswählen

msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
 
#: unit1.stest
msgid "This is a test"
msgstr ""
Es fehlen alle Captions!

Öffne ich jetzt mit 1.5 das von 1.4.2 erstellte Projekt und füge ein weiteren Button hinzu, wird dessen Caption in der .po aufgenommen :?: :?: :?:

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Michl
Beiträge: 2425
Registriert: Di 19. Jun 2012, 12:54

Re: Captions nicht in .po

Beitrag von Michl »

Habe mir mal die project.lpi angesehen. Da steht:

Code: Alles auswählen

    <i18n>
      <EnableI18N Value="True" LFM="False"/>
      <OutDir Value="languages"/>
    </i18n>

Wenn ich dort das LFM="False" herausnehme, werden alle Captions auch unter 1.5 normal in die .po übertragen.

Das scheint also eine Projektoption zu sein, konnte aber nichts derartiges finden.

Weiss jemand etwas davon?!

[Edit]: Habe jetzt die Frage mal in der Mailing-List gestellt: http://lists.lazarus.freepascal.org/pipermail/lazarus/2015-September/094068.html

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Michl
Beiträge: 2425
Registriert: Di 19. Jun 2012, 12:54

Re: Captions nicht in .po

Beitrag von Michl »

Ist im Trunk nun repariert worden und funktioniert jetzt wieder, wie im 1.4.2er Lazarus.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Antworten