Results 1 to 6 of 6

Thread: MessageBox in het Nederlands

  1. #1
    Senior Member
    Join Date
    Mar 2005
    Location
    Bassenge
    Posts
    424

    MessageBox in het Nederlands

    Onderstaande code in Delphi geeft de vraagstelling terug in het Nederlands ( Ja NEE )

    maar niet in Lazarus ( Yes No )


    Code:
    If Application.MessageBox(PChar('Klant verwijderen ?'),
      'KLANT VERWIJDEREN',mb_YesNo+mb_IconQuestion)=IdYes Then
    begin
    // doe iets ..
    end;
    Hoe krijg ik dit in het Nederlands met Lazarus ?

    Dank

  2. #2
    Delphi heeft dat zelfde probleem met MessageDlg en ShowMessage omdat dat eigen forms zijn. Die maken gebruik van constanten in de units Const.pas en/of RtlConst.pas. Wellicht heeft Lazarus die ook?

    Deze specifieke method, Application.MessageBox is in Delphi een wrapper rond de MessageBox api van Windows, die normaliter de taal van je besturingssysteem aanhoudt. Wil je die knoppen specifiek in het Nederlands hebben, of in de taal van je OS?
    1+1=b

  3. #3
    Je moet (aan het begin van je programma liefst) de resources strings van de unit lclstrconsts vertalen naar Nederlands m.b.v. de unit Translations.

    Een snippet van een van mijn units.

    Delphi Code:
    1. const
    2.   NLLang = 'nl';
    3.   FallBackLang = '';
    4.   LCLPOMask = 'lclstrconsts.%s.po';
    5.   LCLStrConsts = 'LCLStrConsts';
    6. var
    7.   PODirectory: String;
    8. begin
    9.   ...
    10.   TranslateUnitResourceStrings(LCLStrConsts,PODirectory + LCLPOMask, NLLang, FallBackLang);

    Zie ook dit wiki artikel.

    Je kunt de complete PO file als resource in je exe opnemen, daar heb ik ook wel een voorbeeld van.

    Bart

  4. #4
    Senior Member
    Join Date
    Mar 2005
    Location
    Bassenge
    Posts
    424
    Ik heb even je code geplakt in een bestaand stukje software :

    Code:
    procedure THoofding.Button2Click(Sender: TObject);
    Var SqlQuery3: TSqlQuery;
      PODirectory: String;
    const
      NLLang = 'nl';
      FallBackLang = '';
      LCLPOMask = 'lazaruside.%s.po';
      LCLStrConsts = 'LCLStrConsts';
    begin
      PODirectory := 'C:\lazarus\languages\';
      TranslateUnitResourceStrings(LCLStrConsts,PODirectory + LCLPOMask, NLLang, FallBackLang);
      if CheckBox1.Checked = True then
      begin
        if ZQueryMain.RecordCount = 0 then Exit;
        If Application.MessageBox(PChar('Bestelbon ' +
        Label15.Caption + ' activeren ?'),
        'BESTELLING ACTIVEREN',mb_YesNo+mb_IconQuestion)=IdYes Then
        begin
          SqlQuery3 := TSqlQuery.Create(Nil);
          SqlQuery3.DataBase := MySQL50Connection1;
          With SqlQuery3 do
          begin
            Sql.Clear;
            Sql.Text := 'Update wp_rafposts Set comment_count=:_comment_count ' +
            'Where ID=:_ID';
            ParamByName('_comment_count').Value := '1';
            ParamByName('_ID').Value := ZQueryMain.FieldByName('ID').AsInteger;
            ExecSQL();
            Free;
          end;
          Checkbox1.Checked := False;
          ZQueryMain.Refresh;
        end;
      end;
    end;
    Maar er is geen resultaat. In de map C:\lazarus\languages vind ik het bestand "lazaruside.nl.po"

    Waar is de code verkeerd ? ( dank voor je hulp )

  5. #5
    Quote Originally Posted by jvb View Post
    Maar er is geen resultaat. In de map C:\lazarus\languages vind ik het bestand "lazaruside.nl.po"
    Je hebt lclstrconsts.nl.po nodig, zoals uit mijn code ook blijkt.
    Wel even correct knippen en plakken dus.

    Dit stond er bij mij origineel dus niet.
    Delphi Code:
    1. LCLPOMask = 'lazaruside.%s.po';

    Maar dit:
    Delphi Code:
    1. LCLPOMask = 'lclstrconsts.%s.po';

    Het betreffende bestand staat in ($Lazarus)\lcl\languages

    Doe jezelf een lol en kijk even naar de definities van TranslateUnitResourceStrings, dan snap je misschien ook waarom jouw poging tot geen enkele vertaling van wat dan ook leidt (afgezien van het feit dat je de verkeerde unit tracht te vertalen).

    Bart

  6. #6
    Senior Member
    Join Date
    Mar 2005
    Location
    Bassenge
    Posts
    424
    Ja dat klopt, inderdaad verkeerde bestand. Werkt prima zo.


    Bedankt !

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •