r2420 added RaiseLastOsErrorEx(ErrorCode, FunctionName, Format[, Args]) to u_dzMiscUtils, and r2421 ([features:#27]) moved all EOSError messages of u_dzFileUtils to three shared messages:
Error %1:s (%0:d) calling %2:s
Error %1:s (%0:d) calling %2:s("%3:s")
Error %1:s (%0:d) calling %2:s("%3:s", "%4:s")
These calls in other units name the function that failed, each in its own wording, and could use the same overload and messages, unit by unit:
u_dzAsyncExec: CreatePipe, SetHandleInformation (twice), WriteFile, CreateProcessu_dzExecutor: CreateProcessu_dzWinApi: TWinApi.RaiseLastError (any function), CreateFile, CreateFileMapping, GetFileSizeExu_dzOsUtils: ExpandEnvironmentStrings (the message does not show the string)u_dzFileStreams: CreateFile in TdzFile.Open, WriteFile in TdzFile.WriteBuffer (the message also says how many bytes were written)u_dzMutex: TdzMutex.TryAcquireu_dzDllLoader: LoadLibrary in TdzDllLoader.LoadDllSome messages carry more than the call (the byte counts in WriteBuffer, "Could not load" in LoadDll), so for those the wording is a decision of its own. The .po files need the same treatment as in r2421.
Not included because bug tickets cover them: TStream_WriteString ([bugs:#54]) and the GetProcAddressEx methods of both DLL loaders ([bugs:#55]).
Possibly as well: 14 calls of plain RaiseLastOSError (in u_dzOsUtils, u_dzVersionInfo, u_dzErrorThread, u_dzSetFocusFix, u_dzShellApiUtils, u_dzVclUtils) give only the Windows message, without the function or its arguments.
Fixed in revisions #2427 and #2429. u_dzShellApiUtils (GetSystemDirectory) and u_dzSetFocusFix (WriteProcessMemory) keep plain RaiseLastOSError on purpose: converting them would make them use u_dzMiscUtils and with it u_dzTranslator and u_dzFileUtils.