Các hàm gettext
triển khai API NLS [Hỗ trợ ngôn ngữ bản địa] có thể được sử dụng để quốc tế hóa các ứng dụng PHP của bạn
Việc dịch các chuỗi có thể được thực hiện bằng PHP bằng cách đặt ngôn ngữ, thiết lập các bảng dịch của bạn và gọi gettext[]
trên bất kỳ chuỗi nào bạn muốn dịch
myPHPApp.po
________2gettext[] loads a given post-complied .po file, a .mo. which maps your to-be translated strings as above.
After this small bit of setup code, translations will now be looked for in the following file:
./locale/fr_FR/LC_MESSAGES/myPHPApp.mo
Bất cứ khi nào bạn gọi cho gettext['some string']
, nếu
0 đã được dịch trong tệp 1, bản dịch sẽ được trả lại. Nếu không, 0 sẽ được trả lại chưa được dịch Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt, thiết lập và tạo các bản dịch đơn giản bằng PHP gettext. Hãy xem khóa học này để có hướng dẫn chuyên sâu hơn về quốc tế hóa [i18n] với PHP
gettext là gì?
Vào đầu những năm 1990, khi máy tính thực sự trở nên toàn cầu, các lập trình viên đã nhận ra tầm quan trọng của việc tạo ra các phiên bản đa ngôn ngữ cho phần mềm của họ. Đây không chỉ là một vấn đề dịch thuật; . Các lập trình viên thường phải tạo nhiều bản sao của cùng một mã để phục vụ các phiên bản khác nhau của trang web bằng ngôn ngữ địa phương
Để khắc phục vấn đề này, Sun Microsystems đã phát triển một hệ thống gọi là gettext vào những năm 1990. Vài năm sau, Dự án GNU đã phát hành GNU gettext, đây là một triển khai mã nguồn mở của hệ thống gettext của Sun
Sử dụng gettextis tương đối đơn giản về nguyên tắc. Nó liên quan đến việc sửa đổi mã nguồn gốc tiếng Anh để bao gồm chức năng gettext[string]. gettext sau đó trả về ngôn ngữ cục bộ của chuỗi đã chỉ định được lưu trữ trong tệp bên ngoài
Trong những năm qua, gettext đã được triển khai bằng nhiều ngôn ngữ, bao gồm C++, C#, ASP. net, Perl, Ruby và tất nhiên là PHP. Hiện nó là hệ thống quốc tế hóa tiêu chuẩn [rút gọn thành i18n – i-18 alphabets-n] giữa các ngôn ngữ
Sử dụng gettext trong PHP
Cài đặt
Ghi chú. Hướng dẫn này giả định rằng bạn đã cài đặt máy chủ web PHP và Apache trên máy cục bộ của mình. Nếu bạn chưa có, hãy lấy một bản sao của XAMPP. Tìm hiểu cách cài đặt và kích hoạt XAMPP trong hướng dẫn này
Để sử dụng gettext trong PHP, trước tiên bạn cần tải xuống và cài đặt một bản sao của GNU gettext. Người dùng Windows có thể tải xuống bản sao từ trang web GNU Windows chính thức. Người dùng Mac và Linux có thể nhận một bản sao tại đây
Sau khi tải xuống và cài đặt, bạn cần bật gettext trong PHP. Để làm điều này, hãy mở PHP của bạn. ini [nằm trong thư mục gốc PHP] và tìm kiếm “gettext”
Bạn nên tìm một dòng giống như thế này
;extension=php_gettext. dll
Xóa dấu chấm phẩy [;] khỏi dòng. Đây là những gì PHP của bạn. ini sẽ giống như bây giờ
Để kiểm tra xem gettext đã được cài đặt đúng hay chưa, hãy tạo một tệp mới có tên là test. php và thêm đoạn mã sau vào nó
Lưu tệp này trong thư mục htdocs trong thư mục xampp chính của bạn [thường là c. \xampp\htdocs]. Bây giờ hãy đảm bảo rằng máy chủ web Apache đã được bật, sau đó điều hướng đến localhost\test. php trong trình duyệt của bạn
Nếu gettext được cài đặt đúng cách, bạn sẽ thấy thông báo này
Hoàn toàn mới đối với PHP?
Thiết lập môi trường gettext
Hàm gettext yêu cầu cấu trúc tệp/thư mục cụ thể để hoạt động
Trong thư mục gốc của bạn [htdocs\] tạo một thư mục mới có tên Test_Project. Tạo một thư mục khác có tên Locale bên trong nó. Trong thư mục Locale, tạo một thư mục con có tên là en_US. Thư mục con này sẽ chứa một thư mục khác có tên LC_MESSAGES, như hình bên dưới
Trong cấu trúc trên
- Test_Project chỉ là tên của dự án ví dụ của chúng tôi. Bạn có thể đặt tên cho bất cứ điều gì
- Thư mục Locale chứa tất cả các tệp dịch cho các ngôn ngữ khác nhau. Bạn cũng có thể đặt tên cho bất cứ thứ gì, mặc dù Ngôn ngữ là tên tiêu chuẩn
- en_US chứa các tệp ngôn ngữ cho ngôn ngữ tiếng Anh [Hoa Kỳ]. en_US là từ viết tắt hai phần tiêu chuẩn của ngôn ngữ tiếng Anh [Mỹ]. Tương tự cho tiếng Anh [Anh] là en_GB. Bạn phải đặt tên thư mục này chính xác như ngôn ngữ bạn muốn dịch mã sang. Ví dụ: nếu bạn muốn giữ bản dịch cho tiếng Tây Ban Nha Colombia, bạn sẽ đặt tên cho thư mục là es_CO. Bạn có thể xem danh sách đầy đủ các mã ngôn ngữ tại đây
- Thư mục LC_MESSAGES chứa các tin nhắn đã dịch thực tế. Bạn phải giữ nguyên tên thư mục này để gettext hoạt động
Bạn muốn tạo bản dịch của riêng mình cho khán giả nói tiếng Tây Ban Nha?
Tạo tệp dịch
Tất cả các bản dịch trong gettext được lưu trữ trong tệp PO [Portable Object]. Bạn sẽ có khác *. tệp po cho các bản dịch ngôn ngữ khác nhau
Trước khi bạn có thể tạo mã PHP cho bản dịch, bạn phải tạo mã phù hợp. tập tin po. Bạn có thể sử dụng một chương trình như POEdit để tạo. tập tin po. Bạn có thể tải xuống một bản sao của POEdit tại đây
Trong POEdit, tạo một tệp dịch mới bằng cách nhấn CTRL + N hoặc chọn Tệp -> Mới
Bạn sẽ được yêu cầu chọn một ngôn ngữ trong cửa sổ tiếp theo. Chọn “Tiếng Anh [Hoa Kỳ]” ngay bây giờ
Nhấp vào biểu tượng 'Lưu' để lưu tệp. Đặt tên cho nó là "tin nhắn". Đảm bảo lưu nó trong thư mục LC_MESSAGES
Bây giờ hãy mở tin nhắn. po trong thư mục en_US. Nó sẽ trông giống như thế này
Thêm mã sau vào một dòng riêng bên dưới mã trên
Đây là bản dịch thực tế của chúng tôi
- Dòng đầu tiên, bắt đầu bằng [#] chỉ là một chú thích
- msgstr xác định chuỗi văn bản cần dịch
- msgstr là văn bản đã dịch sẽ thay thế msgid
Bây giờ hãy lưu. po và mở lại trong POEdit. Nhấn 'Lưu'. Điều này sẽ biên dịch lại bản dịch và làm cho nó sẵn sàng để phân phối
Tạo tệp PHP
Tạo một tệp PHP mới và đặt tên là “test_project. php”. Thêm đoạn mã sau vào nó
Lưu tệp và mở tệp trong trình duyệt web của bạn bằng cách truy cập localhost/Test_Project/test_project. php
Bạn sẽ thấy chuỗi đã dịch [“Đây là chuỗi đã dịch”], như thế này
Xin chúc mừng, bạn vừa sử dụng PHP gettext để tạo bản dịch trang web
PHP là một ngôn ngữ mạnh mẽ nhưng dễ học. Tìm hiểu cách tạo các ứng dụng web mạnh mẽ bằng PHP và MySQL trong khóa học này
Trang được cập nhật lần cuối. Tháng 6 năm 2014
Kasia Mikoluk
Các bài báo gần đây của Kasia Mikoluk
- CSS Xoay văn bản. Cách thay đổi hướng văn bản bằng CSS
- Top 60 câu hỏi phỏng vấn Java Lập trình viên Java cần biết
- Python so với C. Sự khác biệt quan trọng bạn nên biết
Bài viết được đề xuất
Phát triển
Hướng dẫn PHP MVC. Hiểu Model-View-Controller
Kasia Mikoluk
Phát triển
Hướng dẫn phân trang PHP. Làm thế nào để bắt đầu
Trình chỉnh sửa UdemyPhát triển
Tiêu đề PHP. Hướng dẫn mã hóa tiêu đề XML
Trình chỉnh sửa UdemyPhát triển
Hiểu về tiêm đối tượng PHP
Trình chỉnh sửa UdemyPhát triển
Khái niệm cơ bản về phần mềm PHP CRUD
Trình chỉnh sửa UdemyPhát triển
Xác thực biểu mẫu PHP. Hiểu cách kiểm tra dữ liệu do người dùng gửi
Trình chỉnh sửa UdemyPhát triển
Khung MVC PHP. Giới thiệu cơ bản
Trình chỉnh sửa UdemyPhát triển
PHP là gì?
Tim BuchalkaPhát triển
Hàm PHP là gì?
Julia Sinclair-Jones
Phát triển
Hàm PHP STRLEN. Lấy độ dài chuỗi PHP
Đội UdemyKế tiếpChia sẻ bài viết này
Sao chép
Các khóa học hàng đầu về PHP
PHP cho người mới bắt đầu - Trở thành chuyên gia PHP - Dự án CMS
Edwin Diaz, Giải pháp Khoa mã hóa
4. 4 [23,192]
Người bán hàng giỏi nhất
API trong PHP. từ cơ bản đến nâng cao
Dave Hollingworth
4. 7 [511]
Tạo cửa hàng thương mại điện tử bằng PHP
Mustafa Alawi
4. 5 [64]
PHP cho người mới bắt đầu Phần 1. tất cả các mã được sử dụng được giải thích đầy đủ
Học viện mã hóa
4. 8 [1,425]
Hướng đối tượng PHP & MVC
Brad Traversy
4. 7 [4,562]
PHP cho người mới bắt đầu
Học viện lập trình của Tim Buchalka, Dave Hollingworth
4. 6 [2.850]
Hoàn thành các khái niệm PHP OOP cho người mới bắt đầu tuyệt đối + Dự án
Srini Vanamala
4. 5 [446]
Tạo bản sao Netflix từ đầu. JavaScriptPHP + MySQL
Reece Kenney
4. 7 [803]
Khóa học dành cho nhà phát triển PHP hướng đối tượng hoàn chỉnh
Gary Clarke
4. 6 [169]
Kiểm tra đơn vị PHP với PHPUnit
Dave Hollingworth
4. 6 [1,823]
Người bán hàng giỏi nhất
Xây dựng mạng xã hội từ đầu. JavaScriptPHP + MySQL
Reece Kenney
4. 4 [2,829]
PHP OOP. Lập trình hướng đối tượng cho người mới bắt đầu + Dự án
Edwin Diaz, Giải pháp Khoa mã hóa
4. 6 [3,819]
>Các khóa học PHP khác
Sinh viên PHP cũng học
Laravel MySQL PHP MVC Phát triển web JavaScript HTML CSS Bootstrap HTML5 Phát triển web Front End Lập trình hướng đối tượng WordPress Full Stack Phát triển web PDO
Trao quyền cho nhóm của bạn. Dẫn đầu ngành
Đăng ký thư viện các khóa học trực tuyến và công cụ học tập kỹ thuật số cho tổ chức của bạn với Udemy Business
Hàm gettext trong PHP là gì?
gettext — Tra cứu thư trong miền hiện tại . ngettext — Phiên bản số nhiều của gettext. textdomain - Đặt tên miền mặc định.
Phần mở rộng gettext PHP là gì?
30 tháng 11 năm 2022 · 16 phút đọc. GNU gettext là gói cung cấp cho các lập trình viên, dịch giả và thậm chí cả người dùng một bộ công cụ được tích hợp tốt cung cấp một khuôn khổ trong đó các gói miễn phí khác có thể tạo ra các thông điệp đa ngôn ngữ.
Làm cách nào để thêm trình dịch ngôn ngữ trong PHP?
lớp php Trình biên dịch { private $language = 'en';
Làm cách nào để kiểm tra ngôn ngữ của văn bản trong PHP?
Chúng tôi có thể phát hiện ngôn ngữ của trình duyệt yêu cầu bằng cách sử dụng biến siêu toàn cầu $_SERVER của PHP. Nó là một biến siêu toàn cầu chứa thông tin về tiêu đề, đường dẫn và vị trí tập lệnh. Về cơ bản, nó là một mảng kết hợp trong PHP có các khóa như SERVER_NAME, SERVER_ADDR, REQUEST_METHOD, v.v.