--- ./restranslator.pas.orig 2022-03-08 12:30:48.521017212 +0300 +++ ./restranslator.pas 2022-03-08 23:23:18.470332608 +0300 @@ -205,7 +205,9 @@ var sr: TSearchRec; begin - Result:=FindFirstUtf8(dir + ExtractFileNameOnly(ParamStrUtf8(0)) + '.*', faAnyFile, sr) = 0; + { Hardcode localization file names! } + {Result:=FindFirstUtf8(dir + ExtractFileNameOnly(ParamStrUtf8(0)) + '.*', faAnyFile, sr) = 0;} + Result:=FindFirstUtf8(dir + 'transgui.*', faAnyFile, sr) = 0; FindClose(sr); end; @@ -216,14 +218,28 @@ if FDefaultLangDir = '' then begin FDefaultLangDir:=ExtractFilePath(ParamStrUtf8(0)) + 'lang' + DirectorySeparator; {$ifdef unix} - if not _IsLangDir(FDefaultLangDir) then begin + if not _IsLangDir(FDefaultLangDir) then + begin s:='/usr/share/' + ExtractFileNameOnly(ParamStrUtf8(0)) + '/lang/'; if _IsLangDir(s) then FDefaultLangDir:=s - else begin + else + begin s:='/usr/local/share/' + ExtractFileNameOnly(ParamStrUtf8(0)) + '/lang/'; if _IsLangDir(s) then + begin FDefaultLangDir:=s; + end + else + begin + {Pascal paramstr() totally IGNORES symlinks. + So we need to hardcode LANG dir location if we use transgui->transgui-qt5 symlink} + s:= '/usr/share/transgui/lang/'; + if _IsLangDir(s) then + begin + FDefaultLangDir:=s; + end; + end; end; end; {$endif unix}