Hướng dẫn how do i change the locale in python? - làm cách nào để thay đổi ngôn ngữ trong python?
Bản địa hóa phần mềm Show
Khám phá khái niệm cơ bản đằng sau mô -đun địa phương của Python và tìm hiểu cách sử dụng nó cho chuỗi, số và định dạng ngày. Mô -đun địa phương của Python là một phần của thư viện tiêu chuẩn để quốc tế hóa (I18N) và bản địa hóa (L10N) trong Python. Mô -đun địa phương cho phép các nhà phát triển đối phó với một số vấn đề văn hóa trong các ứng dụng của họ. Tin tốt là họ không cần biết tất cả các chi tiết cụ thể về vị trí hoặc ngôn ngữ nơi phần mềm được sử dụng. Hãy khám phá rất chi tiết khái niệm cơ bản về mô -đun địa phương của Python. Những điều cơ bản của mô -đun địa phương của PythonChúng ta hãy xem các loại hạt và bu lông của mô -đun địa phương của Python. Nhập và khởi tạoDựa trên tài liệu chính thức, mô -đun địa phương được triển khai trên đầu mô -đun _Locale. Nó sử dụng triển khai địa phương ANSI C nếu có. Một ứng dụng bình thường thường bắt đầu bằng mã sau để đặt locale:_locale module. It uses an ANSI C locale implementation if available. A normal application typically starts with the following code to set the locale: import locale # use user's default settings locale.setlocale(locale.LC_ALL, '') # use current setting locale.setlocale(locale.LC_ALL, None) Tham số đầu tiên biểu thị danh mục Locale trong khi tham số thứ hai sửa đổi cài đặt locale cho danh mục. Nó sẽ sử dụng cài đặt hiện tại cho danh mục nếu tham số thứ hai không có hoặc không có. Mặt khác, một chuỗi trống sẽ sử dụng cài đặt mặc định của người dùng. Trong ví dụ sau, địa phương được đặt thành tiếng Đức (DE_DE).German (de_DE). # name might vary with operating system, refer to the notes below locale.setlocale(locale.LC_ALL, 'de_DE') Hầu hết thời gian, nó sử dụng tham chiếu Mã định danh mã ngôn ngữ (LCID), như đã nêu trong liên kết sau (thay thế dấu gạch nối trong các thẻ ngôn ngữ bằng dấu gạch dưới). Ví dụ, de-de-de được nêu là DE_DE. Tuy nhiên, các phiên bản HĐH cũ hơn có thể chấp nhận ngôn ngữ ở một định dạng khác, như được hiển thị bên dưới:de-DE should be stated as de_DE. However, older OS versions might accept the locale in a different format, as shown below: # using standard Language Code Identifier (LCID) Reference locale.setlocale(locale.LC_ALL , 'de_DE') # using ISO country code, alpha-3 locale.setlocale(locale.LC_ALL , 'deu_deu') # using language name locale.setlocale(locale.LC_ALL , 'German') Danh sách các địa phương có sẵnPhương pháp được đề xuất là kiểm tra tham chiếu mã số mã ngôn ngữ tiêu chuẩn trước tiên. Nếu bạn gặp phải lỗi, bước tiếp theo là in ra danh sách đầy đủ các địa phương có sẵn trong máy của bạn. # for Windows users for lang in locale.windows_locale.values(): print(lang) # for other operating systems for lang in locale.locale_alias.values(): print(lang) Nhận một địa điểm hiện cóBạn có thể nhận chuỗi cho ngôn ngữ hiện có với mã sau: # get current locale loc = locale.getlocale() Thông tin về một địa điểm hiện cóGọi hàm localeconv () tích hợp sẽ cung cấp cho bạn thông tin chi tiết về địa phương hiện tại. Chạy mã sau để trực quan hóa nó:localeconv() function will provide you with detailed information about the current locale. Run the following code to visualize it: for key, value in locale.localeconv().items(): print("%s: %s" % (key, value)) Dưới đây là một ví dụ đầu ra cho en_sg & nbsp; (tiếng Anh/singapore):en_SG (English/Singapore): Kiểm tra tài liệu chính thức để biết thêm thông tin về các khóa và ý nghĩa tương ứng của chúng. Định dạng và phân tích số lượng phân tích cú phápMô -đun Locale cung cấp hai hàm chuyên dụng để phân tích một chuỗi vào một số, dựa trên ngôn ngữ hiện tại:
Điều này cực kỳ hữu ích để phân tích một chuỗi có chứa dấu phẩy hoặc dấu chấm, như các địa phương khác nhau giải thích nó khác nhau. Ví dụ: locale.atof('32,824')
Trên hết, bạn có thể sử dụng hàm & nbsp; format_string () để định dạng một số theo sở thích của bạn. Đoạn mã sau đây dựa trên & nbsp; locale de_de:format_string() function to format a number according to your preferences. The following code snippet is based on the de_DE locale: locale.format_string('%10.2f', 738213.78) # 738213,78 locale.format_string('%10.2f', 738213.78, grouping=True) # grouping is False by default # 738.213,78 Bạn có thể đặt tham số nhóm & nbsp; nhóm cho hàm & nbsp; format_string (), chấp nhận boolean.grouping parameter for the format_string() function, which accepts a boolean.
Định dạng tiền tệHơn nữa, bạn có thể sử dụng hàm tiền tệ tích hợp () để định dạng bất kỳ số đầu vào nào. Kết quả cuối cùng đi kèm với biểu tượng hoặc văn bản tiền tệ. Chúng ta hãy xem ví dụ sau cho EN_SG:currency() function to format any input number. The end result comes with the currency symbol or text. Let us have a look at the following example for en_SG: locale.currency(924531.78) # $924531.78 locale.currency(924531.78, grouping=True) # $924,531.78 locale.currency(924531.78, grouping=True, international=True) # SGD924,531.78 Ngoài số đầu vào, hàm tiền tệ () cũng chấp nhận ba tham số bổ sung:currency() function also accepts three additional parameters:
Định dạng ngày và giờNgoài ra, mô -đun DateTime giúp định dạng ngày và thời gian, dựa trên ngôn ngữ mà bạn đã đặt. Cách dễ nhất là dựa vào hàm strftime (). Nó chuyển đổi một đối tượng thành một chuỗi theo một định dạng nhất định. Nó có thể là một ngày, thời gian hoặc đối tượng DateTime. Hãy xem danh sách các mã định dạng phổ biến sau đâystrftime() function. It converts an object to a string according to a given format. It can be a date, time, or datetime object. Let's have a look at the following list of common format codes
Bạn có thể tìm thấy danh sách đầy đủ các mã định dạng trong liên kết sau. Chỉ cần xác định định dạng trong một chuỗi và sử dụng nó làm tham số đầu vào khi gọi hàm & nbsp; strftime (). Kiểm tra ví dụ sau hiển thị ngày và giờ hiện tại.strftime() function. Check out the following example displaying the current date and time. now = datetime.datetime.now() format = "%A, %d %b %Y %H:%M:%S %Z" now.strftime(format) # Thursday, 23 July 2020 13:11:31 Ngoài ra, bạn có thể chỉ hiển thị thành phần ngày cho một sự kiện RSVP cụ thể như sau: # name might vary with operating system, refer to the notes below locale.setlocale(locale.LC_ALL, 'de_DE')0 Nếu một giá trị được lưu trữ dưới dạng dấu thời gian trong cơ sở dữ liệu của bạn, bạn có thể dễ dàng chuyển đổi nó thành đối tượng DateTime: # name might vary with operating system, refer to the notes below locale.setlocale(locale.LC_ALL, 'de_DE')1 %I (Capital I) đại diện cho đồng hồ 12 giờ dưới dạng số thập phân bằng không. Bạn có thể loại bỏ số 0 hàng đầu bằng cách thêm dấu hiệu dấu gạch nối hoặc pound dựa trên hệ điều hành máy của bạn. Ví dụ, represents a 12-hour clock as a zero-padded decimal number. You can remove the leading zero by adding a hyphen or pound sign based on the operating system of your machine. For example,
Ngoài ra, bạn có thể làm nổi bật múi giờ miễn là đối tượng DateTime chứa thông tin múi giờ tối ưu. Chúng tôi gọi đây là đối tượng DateTime & nbsp; Aware DateTime. Ngược lại, một đối tượng DateTime ngây thơ không chứa đủ thông tin để định vị rõ ràng chính nó liên quan đến các đối tượng DateTime khác. Bạn có thể dễ dàng xác định nếu một đối tượng DateTime nhận thức được hoặc ngây thơ bằng cách in nó ra.aware datetime object. In contrast, a naive datetime object does not contain enough information to unambiguously locate itself in relation to other datetime objects. You can easily identify if a datetime object is aware or naive by printing it out. # name might vary with operating system, refer to the notes below locale.setlocale(locale.LC_ALL, 'de_DE')2 Đối với thông tin của bạn, bạn có thể dễ dàng xây dựng và xác định thời gian trong một đối tượng DateTime bằng cách sử dụng DateTime.timezone. Chúng ta hãy xem xét ví dụ sau đây về việc tạo các phiên bản của DateTime hiện tại dựa trên các múi giờ khác nhau.datetime.timezone. Let us have a look at the following example of creating instances of current datetime based on different timezones. # name might vary with operating system, refer to the notes below locale.setlocale(locale.LC_ALL, 'de_DE')3 %Z sẽ trả về một chuỗi trống, được gọi bởi một đối tượng DateTime ngây thơ. will return an empty string, called by a naive datetime object. Thực hành tốt nhấtDựa trên tài liệu chính thức, mô-đun địa phương là một thuộc tính toàn chương trình theo định nghĩa tiêu chuẩn C. Kết quả là, nó là vô cùng tốn kém để thay đổi một địa điểm ở giữa. Thay đổi địa phương thường xuyên có thể gây ra các bãi rác lõi. Đó là lý do tại sao rất khuyến khích đặt nó chỉ một lần trong khi khởi tạo ứng dụng của bạn. Một mô -đun mở rộng hoặc thói quen thư viện không bao giờ được gọi là & nbsp; setLocale (), vì nó sẽ ảnh hưởng đến toàn bộ chương trình.setlocale() function, since it will affect the entire program. Ngoài hàm & nbsp; format_string (), cách duy nhất để thực hiện các hoạt động số theo ngôn ngữ là sử dụng các hàm đặc biệt được xác định bởi mô -đun này:format_string() function, the only way to perform numeric operations according to the locale is to use the special functions defined by this module:
Kết thúc hướng dẫn của chúng tôi về mô -đun địa phương của PythonTóm lại, mô -đun địa phương cực kỳ hữu ích để quốc tế hóa và bản địa hóa các ứng dụng Python. Nếu bạn đang tìm cách để hợp lý hóa quy trình i18n của mình, hãy để cụm từ thực hiện công việc nặng nhọc. Giải pháp nội địa hóa toàn diện nhất trên thị trường, cụm từ nội địa hóa sẽ trang bị cho bạn mọi thứ bạn cần:
Cuối cùng, hãy xem các bài viết sau đây nếu bạn muốn biết nhiều hơn về quốc tế hóa và nội địa hóa trong Python:
Cập nhật lần cuối vào ngày 25 tháng 9 năm 2022. Làm cách nào để thay đổi mã hóa địa phương của tôi?Locale có thể được đặt trong Windows toàn cầu thành UTF -8, nếu bạn mong muốn, như sau: Bảng điều khiển -> Đồng hồ và Vùng -> Vùng -> Hành chính -> Thay đổi hệ thống Locale -> Kiểm tra Beta: Sử dụng Unicode UTF -8 ..Sau đó, và khởi động lại, tôi đã xác nhận địa phương đó.Control panel -> Clock and Region -> Region -> Administrative -> Change system locale -> Check Beta: Use Unicode UTF-8 ... After this, and a reboot, I confirmed that locale.
Địa điểm trong Python là gì?Mô -đun địa phương của Python là một phần của thư viện tiêu chuẩn để quốc tế hóa (I18N) và bản địa hóa (L10N) trong Python.Mô -đun địa phương cho phép các nhà phát triển đối phó với một số vấn đề văn hóa trong các ứng dụng của họ.part of the standard library for internationalization (i18n) and localization (l10n) in Python. The locale module allows developers to deal with certain cultural issues in their applications.
En_us là gì?Ví dụ: người dùng nói tiếng Anh ở Hoa Kỳ có thể chọn Locale EN_US.UTF-8 (tiếng Anh cho Hoa Kỳ), trong khi người dùng nói tiếng Anh ở Vương quốc Anh có thể chọn EN_GB.UTF-8 (tiếng Anh cho Vương quốc Anh).Nói chung, tên địa phương được chỉ định bởi biến môi trường Lang.an English-speaking user in the United States can select the en_US. UTF-8 locale (English for the United States), while an English-speaking user in Great Britain can select en_GB. UTF-8 (English for Great Britain). Generally the locale name is specified by the LANG environment variable. |