Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi FormatDateTime - Englisch (https://www.delphipraxis.net/2191-formatdatetime-englisch.html)

Yheeky 11. Jan 2003 16:18


FormatDateTime - Englisch
 
Hi,

ich schreibe gerade ein multilinguales Programm. Wie kann ich denn FormatDateTime('dd. mmmm yyyy',Date) ins Englische übersetzen (mit englischem Wochentag und Monat)?

Gruß Yheeky

HAF68k 12. Jan 2003 13:41

Array
 
ich würde das mit einer liste machen

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
        MonthList:Array[0..11] of String;
        Datum:String;
begin
        MonthList[0]:='January';
        MonthList[1]:='February';
        MonthList[2]:='March';
        MonthList[3]:='April';
        MonthList[4]:='May';
        MonthList[5]:='June';
        MonthList[6]:='July';
        MonthList[7]:='August';
        MonthList[8]:='September';
        MonthList[9]:='October';
        MonthList[10]:='November';
        MonthList[11]:='December';
        Datum:=FormatDateTime('dd.mm.yyyy',Date);
        Edit1.Text:=FormatDateTime('dd',date) + '.' +
                MonthList[StrToInt(FormatDateTime('mm', Date)) - 1] + ' ' +
                FormatDateTime('yyyy',Date);
end;

Sharky 12. Jan 2003 14:42

Re: FormatDateTime - Englisch
 
Zitat:

Zitat von Yheeky
Hi,

ich schreibe gerade ein multilinguales Programm. Wie kann ich denn FormatDateTime('dd. mmmm yyyy',Date) ins Englische übersetzen (mit englischem Wochentag und Monat)?

Gruß Yheeky

Warum nimmst Du nicht die Monats- und Tagesbezeichnungen vom Betriebssystem? Die Arrays sind in der sysutils.pas deklariert.


ShortMonthNames: array[1..12] of string;
LongMonthNames: array[1..12] of string;
ShortDayNames: array[1..7] of string;
LongDayNames: array[1..7] of string;

HAF68k 12. Jan 2003 17:04

schön und gut
 
Zitat:

Zitat von Sharky
Warum nimmst Du nicht die Monats- und Tagesbezeichnungen vom Betriebssystem?

schön und gut
das ist natürlich auch eine möglichkeit
aber wenn man die wochen- bzw. monatsnamen vom betriebssystemm nimmt hat das den nachtteil dass man immer nur die sprache der aktuellen einstellung hat.
ich würde es immer noch so lösen dass man alle nötigen einstellungen für die Sprache in einer externen Datei speichert
Delphi-Quellcode:
[SPRACHEN]
1=Deutsch
2=Englisch
[Deutsch]
1M=Jänner
2M=Februar
...
das hat dann den vorteil dass man änderungen immer vornehmen kann und dass das programm auch wirklich überall lauffähig ist. auf meinen privaten computer habe ich zum beispiel nur deutsch installiert und keine anderen sprachen. da könnten mit sharkys methode evtl. fehler auftreten.

Luckie 12. Jan 2003 17:17

Jungs alles Krampf, was ihr da macht. Meine persönliche Meinung. Lest euch mal die Hilfe zu FormatDateTime durch und folgt mal den Links. Unter "Currency and date/time formatting variables" findet man dann das:
Code:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(FormatDateTime(ShortDateFormat+' / '+ShortTimeFormat, now));
end;
Damit wird das Datum und die Zeit so formatiert, wie es im System eingestellt ist. Und man muß sich keine Gedanken über die Sprache und um das "Wie" der Darstellung machen.
Desweiteren freut es jeden User wenn er das Datum und die Zeit so sieht, wie er es sich eingestellt hat. :wink:

Yheeky 12. Jan 2003 17:27

@HAF68k: Okay, danke klappt perfekt. Nur wie kann ich das noch mit den Wochentagen machen?

Gruß Yheeky

Yheeky 12. Jan 2003 17:28

@Luckie: Ich möchte dem User aber die Möglichkeit geben, das Datum englisch einzustellen, auch wenn er eine deutsche Systemeinstellung hat...

Sharky 12. Jan 2003 17:33

Zitat:

Zitat von Luckie
Jungs alles Krampf, was ihr da macht.

Hört Hört..... und wo stellt man DA die Sprache ein?
Zitat:

Zitat von Yheeky
Wie kann ich denn FormatDateTime('dd. mmmm yyyy',Date) ins Englische übersetzen (mit englischem Wochentag und Monat)?


Luckie 12. Jan 2003 17:38

Zitat:

Zitat von Yheeky
@Luckie: Ich möchte dem User aber die Möglichkeit geben, das Datum englisch einzustellen, auch wenn er eine deutsche Systemeinstellung hat...

Das ging aber aus deinem ersten Postinmg nicht hervor. :roll:

Zitat:

Zitat von Sharky
Hört Hört..... und wo stellt man DA die Sprache ein?

Siehe oben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz