Intentando obtener la forma de cambiar el idioma del Güindos produje una función no muy común que permite obtener la fecha en formato 'dddd, d "de" mmmm "del" yyyy' en cualquier idioma:
Código Delphi
[-]function GetLocaleStr(const Locale, LCType: Cardinal): ShortString;
begin
Result[0] := Char(GetLocaleInfo(Locale, LCType, @Result[1], 255) - 1);
Result[1] := Char(Byte(Result[1]) and not $20);
end;
function GetDateStr(DateTime: TDateTime; Lang: Cardinal): string;
var SystemTime: TSystemTime; Locale, LCID: Cardinal;
begin
LCID := GetThreadLocale;
SetThreadLocale(Lang);
Locale := GetThreadLocale;
DateTimeToSystemTime(DateTime, SystemTime);
Result := GetLocaleStr(Locale, LOCALE_SDAYNAME1 + Byte(SystemTime.wDayOfWeek - 1) mod $F9) + ', ' + IntToStr(SystemTime.wDay) + ' de ' +
GetLocaleStr(Locale, LOCALE_SMONTHNAME1 + SystemTime.wMonth - 1) + ' del ' + IntToStr(SystemTime.wYear);
SetThreadLocale(LCID);
end;
Un ejemplo:
Código Delphi
[-]
Caption := GetDateStr(Now, LANG_PORTUGUESE);