Dịch PHP

Google cung cấp thư viện máy khách Cloud Translation API cho PHP dưới dạng một gói duy nhất cho cả Cloud Translation - Advanced và Cloud Translation - Basic. Trang này mô tả cách cài đặt thư viện máy khách cho Cloud Translation - Basic. Để sử dụng thư viện máy khách cho Cloud Translation - Advanced, hãy xem hướng dẫn cài đặt

Trang này cung cấp tài liệu tham khảo và các tài nguyên liên quan cho thư viện máy khách Translation PHP

Tài nguyênMô tảTham khảo thư việnBản dịch Tham khảo thư viện PHPHướng dẫn ngôn ngữHướng dẫn chung để sử dụng PHP với kho lưu trữ GCPGitHubMã nguồn và tài liệu bổ sung cho thư viện nàyBắt đầu nhanhGiới thiệu về cách sử dụng thư viện nàyStack OverflowCâu hỏi được gắn thẻ Dịch thuật và PHP

Cài đặt

Để cài đặt thư viện máy khách

composer require google/cloud-translate

Sử dụng thư viện khách hàng

Để sử dụng thư viện máy khách PHP cho Dịch thuật đám mây - Cơ bản, bạn phải khởi tạo ứng dụng khách API dịch thuật đám mây như sau

Mặc dù các ngôn ngữ lập trình web thay thế như Ruby [on Rails], Python hoặc NodeJS thống trị các tiêu đề trong ngành, PHP vẫn là một lựa chọn phổ biến để xây dựng các ứng dụng web

Mặc dù vậy, vẫn chưa có giải pháp tiêu chuẩn thực sự để bản địa hóa các ứng dụng PHP

Xây dựng một ứng dụng quốc tế thực sự không chỉ là dịch các chuỗi. Các vấn đề khác cần xem xét là định dạng ngày và giờ, ký hiệu tiền tệ và số nhiều. Các lập trình viên thường đánh giá thấp sự phức tạp của việc bản địa hóa và gặp khó khăn với mã tự chế, điều này gây khó khăn cho việc duy trì. Vì vậy, hãy nói về Mảng PHP, gettext, framework và Intl

Mảng PHP

Mảng liên kết đã là cách tiếp cận cơ bản của nhiều dự án PHP lớn và nhỏ trong một thời gian dài. Các chuỗi có thể dịch được lưu trữ trong một mảng kết hợp, một tệp cho mỗi ngôn ngữ

Tệp ngôn ngữ thích hợp được tải ở đầu mã ứng dụng của bạn

Cách tiếp cận này đơn giản và dễ sử dụng, nhưng nó nhanh chóng đạt đến giới hạn của nó. Hãy xem xét một ứng dụng hiển thị thông báo khi người dùng tải tệp lên

3 files uploaded successfully

Nếu nó chỉ là một tập tin thì sao?

1 file[s] uploaded successfully

không. Đó chỉ đơn giản là xấu xí. Tôi có thể nghĩ ra một cách hack like

Điều này không chỉ làm lộn xộn code mà còn không thực sự giải quyết được vấn đề. Trong ngôn ngữ tiếng Anh, thêm 's' là đủ, nhưng dạng số nhiều hoạt động khác trong các ngôn ngữ khác. Ví dụ: dạng số nhiều của thế giới “tệp” [plik] trong tiếng Ba Lan hoạt động như thế này

1 plik

2,3,4 pliki

5-21 pliko'w

22-24 pliki

25-31 pliko'w

lấy văn bản

Hệ thống gettext GNU đã tồn tại hơn 20 năm. Nó được sử dụng rộng rãi và là tiêu chuẩn thực tế để bản địa hóa trong nhiều ngôn ngữ lập trình

Sử dụng gettext với PHP có thể phức tạp trong một số thiết lập

Nếu bạn đang chạy VPS Ubuntu stock, gettext sẽ chỉ hỗ trợ các ngôn ngữ được cài đặt trên máy. Hoặc có lẽ bạn đang sử dụng gói lưu trữ không có tiện ích mở rộng gettext

Trong cả hai trường hợp, php-gettext có thể giúp. php-gettext nó là một sự thay thế thả xuống cho môi trường PHP nơi tiện ích mở rộng gettext không được cài đặt

Thiết lập cơ bản

Trong ví dụ này, tôi muốn sử dụng tiếng Anh và tiếng Đức. Tôi tạo cấu trúc thư mục sau

index.php

    /locale

        /en_US

            /LC_MESSAGES

                messages.po

                messages.mo

        /de_DE

            /LC_MESSAGES

                messages.po

                messages.mo

Bản dịch được lưu trữ trong. tệp po, một định dạng tệp văn bản thuần túy đơn giản. Chỉ sử dụng một trình soạn thảo văn bản, tôi tạo en/LC_MESSAGES/messages. po

msgid "hello"

msgstr "Hello"

msgid "signup"

msgstr "Sign up for free"

Tôi cũng tạo một tin nhắn. po cho ngôn ngữ de_DE

msgid "hello"

msgstr "Hallo"

msgid "signup"

msgstr "Kostenlos registrieren"

Trong bước tiếp theo,. tệp po được biên dịch thành. tập tin mo. Điều này có thể được thực hiện bằng tiện ích dòng lệnh msgfmt

msgfmt messages.po -o messages.mo

Điều này được thực hiện cho mỗi. tập tin po

Cách sử dụng

bây giờ tôi có thể sử dụng. mo qua gettext trong ứng dụng PHP của tôi

Tập lệnh này tạo môi trường gettext mới bằng ngôn ngữ de_DE. Sau đó, tin nhắn có id 'xin chào' được lặp lại sẽ xuất ra tiếng Đức "Hallo"

Hệ thống gettext hỗ trợ dạng số nhiều. Sử dụng ví dụ ở trên, tôi tạo msgid số nhiều

m
sgid "upload"

msgid_plural "uploads"

msgstr[0] "file uploaded successfully"

msgstr[1] "files uploaded successfully"

mà tôi có thể sử dụng trong mã ứng dụng của mình

gettext có thể xử lý số nhiều nhưng nó không có công cụ để làm việc với các định dạng số, tiền tệ, ngày/giờ

khung

Tất cả các khung công tác PHP chính đều có hỗ trợ tích hợp để tạo bản dịch. Một số cung cấp các tính năng bổ sung như các lớp cho tiền tệ và định dạng ngày/giờ

Tệp ngôn ngữPluralsDate/TimeCurrencySymfonyYAML, XLIFF, PHP MảngF3PHP Arrays, INICodeIgniterPHP ArraysKohanaPHP ArraysCakePHPgettextZendPHP Arrays, CSV, TBX/TMX, gettext, Qt, XLIFF, INI,

Các mô-đun bản địa hóa của các khung này có thể được sử dụng như một công cụ độc lập mà không cần nhiều mã từ chính khung đó. Kiểm tra các hướng dẫn khác của chúng tôi để xem nó có thể trông như thế nào

Và tất nhiên, đừng quên Laravel, một trong những framework PHP phổ biến nhất

4. quốc tế

PHP5. 3 giới thiệu lớp Intl. Intl là một tập hợp các trình trợ giúp thuận tiện để định dạng ngày, giờ, số và làm việc với tiền tệ. Nó có thể được sử dụng để bổ sung cho gettext hoặc các framework thiếu một số chức năng

Phần kết luận

Bản địa hóa đôi khi có vẻ khó. May mắn thay, bạn không phải cố gắng giải quyết vấn đề bằng mã tự chế

Thật không may, gettext không hoạt động trơn tru với PHP nên tôi khuyên bạn nên sử dụng một framework

Symfony, Zend và F3 đều hoạt động rất tốt và dễ sử dụng. Sau khi chơi với tất cả các khung, tôi thực sự thích cách tiếp cận F3. Dưới đây là hướng dẫn từng bước về cách bắt đầu với F3

Làm cách nào để thay đổi ngôn ngữ trong mã PHP?

// tiếng Anh lang //nav $lang['lang-eng'] = 'Tiếng Anh';

Làm cách nào tôi có thể sử dụng API Google Dịch trong PHP?

Để sử dụng API Google Dịch trong PHP, bạn cần phải lấy Google API “Khóa máy chủ” . Tất cả API dịch được gọi bằng các yêu cầu GET. Vì vậy, chúng tôi có thể sử dụng thư viện file_get_contents[] hoặc PHP CURL. Để mã hóa tham số, hàm rawurlencode[] được sử dụng. Để giải mã văn bản JSON dưới dạng đối tượng, hàm json_decode[] được sử dụng.

Làm cách nào để sử dụng Gettext trong PHP?

Để 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

Google Dịch có tốt cho tiếng Philipin không?

Giống như nghiên cứu năm 2019, nó cho thấy Google Dịch chính xác hơn 90% đối với tiếng Tây Ban Nha. Tiếng Tagalog, tiếng Hàn và tiếng Trung có tỷ lệ chính xác từ 80 đến 90 phần trăm

Chủ Đề