2009-01-15 25 views
8

Tôi đang sử dụng hằng số Delphi chuẩn DayMonday, v.v ... và tôi muốn chuyển đổi chúng thành chuỗi được bản địa hóa (ví dụ: "Lundi"). Có một cuộc gọi RTL hoặc VCL đơn giản cho việc này không?Làm thế nào để có được tên địa phương ngày trong Delphi?

+0

Câu hỏi hay bằng cách này, tôi phải tra cứu chi tiết nhưng có thể ;-). –

Trả lời

3

I nghĩ Tôi đã tìm thấy một cách đơn giản cho "ngôn ngữ hiện tại".

Có mảng LongDayNames toàn cầu [] và ShortDayNames [] quy định tại system.pas

Vì vậy ..

Label.Text = LongDayName[DayMonday]; 

nên làm việc, ví dụ. Trừ khi trả lại "Chủ nhật". Điều này là do Delphi hỗ trợ nội bộ các lược đồ đánh số hai ngày và DayMonday là hằng số ISO8601 1, trong khi mảng LongDayName dự kiến ​​chủ nhật là ngày đầu tiên của tuần. C++ Builder gây nhầm lẫn mọi thứ hơn nữa vì mảng chuỗi sau đó bắt đầu từ số không, không phải một.

+0

Có, chúng được khởi tạo bằng GetFormatSettings ;-). Luôn có những con đường khác nhau cho mục tiêu, nhưng trong trường hợp này chúng có cùng nguồn. –

7

Bạn có thể nhận cài đặt ngôn ngữ khác nhau bằng cách:

var 
    fs : TFormatSettings; 
    x : string; 
begin 
    GetLocaleFormatSettings(GetThreadlocale, fs); 
    x:= FormatDateTime('%mmmm', Now, fs); 
    // etc.. 
end; 

GetThreadLocale cung cấp cho các LCID hiện tại nhưng bạn có thể sử dụng một số khác cho mình.

TFormatSettings kỷ lục:

TFormatSettings = record 
    CurrencyFormat: Byte; 
    NegCurrFormat: Byte; 
    ThousandSeparator: Char; 
    DecimalSeparator: Char; 
    CurrencyDecimals: Byte; 
    DateSeparator: Char; 
    TimeSeparator: Char; 
    ListSeparator: Char; 
    CurrencyString: string; 
    ShortDateFormat: string; 
    LongDateFormat: string; 
    TimeAMString: string; 
    TimePMString: string; 
    ShortTimeFormat: string; 
    LongTimeFormat: string; 
    ShortMonthNames: array[1..12] of string; 
    LongMonthNames: array[1..12] of string; 
    ShortDayNames: array[1..7] of string; 
    LongDayNames: array[1..7] of string; 
    TwoDigitYearCenturyWindow: Word; 
end; 

Xem thêm http://www.microsoft.com/globaldev/reference/lcid-all.mspx cho một danh sách đầy đủ.

Bạn thậm chí có thể tự thay đổi định dạng để tạo ra kết quả thực sự ưa thích.

Các vấn đề liên quan