On 20.08.2012 14:03, Martin Schreiber wrote:
On Monday 20 August 2012 12:37:24 Anton Kavalenka wrote:
Since the beginning of my FPC use I maintain the following FPC/Delphi
compatible code.

Does it work if the source has been compiled with -Fcutf8 on Windows? IIRC FPC
converts the source utf8 constants to the system encoding before building the
resource string tables. Another question is the encoding of the *.rst files
we need in the MSEi18n tool.

Martin
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel
I use separate include files for resource strings in UTF-8 and in win1251.

{$ifdef FPC}
    {$i resources-utf8.inc}
{$else}
    {$i resources-cp1251.inc}
{$endif}

IIRC FPC does NOT convert resource strings into system encoding.

Besides my applications use FPC runtime to extract own resorcestrings into external files (for translation).

procedure ExtractStringResources;
var
  os:TFileStream;
begin
  if not FileExists(DefLocalesPath) then CreateDir(DefLocalesPath);
os:=TFileStream.Create(DefLocalesPath+PathDelim+ExtractFileName(ParamStr(0))+'.fpcres',fmCreate);
  try
    SetResourceStrings(@DoSaveStringResource,os);
  finally
    os.Free;
  end;
end;

function DoSaveStringResource(Name,Value:AnsiString;Hash:Longint;arg:pointer):AnsiString;
var
  os:TStream absolute arg;
begin
  Result:='';
  os.WriteBuffer(Hash,sizeof(Hash));
  os.WriteAnsiString(Value);
end;

Resources from both Windows and Linux EXE are extracted in UTF-8 (not win1251).

Anton
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to