Trong hướng dẫn này, bạn sẽ học cách thực hiện dịch Python gần như mọi loại văn bản. Tôi sẽ chỉ cho bạn cách làm việc với các công cụ Google Dịch và DeepL bằng Python, cách phát hiện ngôn ngữ trong văn bản của bạn và cách tự động dịch ngôn ngữ bằng TMS chuyên dụng. Chúng ta sẽ thảo luận về ba thư viện dịch Python. Translators, googletrans và deep-translator và xem chúng hoạt động
Dịch máy là gì và công cụ nào là tốt nhất?
Dịch máy [MT] là một quy trình liên quan đến một số loại thuật toán để thực hiện các bản dịch một cách tự động thay vì thuê một chuyên gia con người. Thị trường MT đang phát triển nhanh chóng. Các bản dịch do máy tính tạo ra đã trải qua một chặng đường dài, từ hoàn toàn tồi tệ đến khá khả dụng, nhờ sự xuất hiện của máy học và mạng lưới thần kinh. Một số thậm chí còn nói rằng chúng ta không thực sự cần người phiên dịch nữa, nhưng tôi muốn nói rằng điều đó hơi xa vời. MT có ưu điểm, nhưng tất nhiên nó cũng có khuyết điểm
Nếu bạn quan tâm đến việc tìm hiểu thêm về MT nói chung và các công cụ có sẵn, tôi khuyên bạn nên xem bài đăng blog rất chi tiết về chủ đề này
Thư viện dịch Python
Có một vài gói Python có sẵn giới thiệu khả năng dịch văn bản bằng cách tận dụng mạng lưới thần kinh. Hãy thảo luận về một số trong số họ
Phiên dịch viên
Gói phiên dịch có lẽ là một trong những lựa chọn tốt nhất hiện có
ưu
- Nó được hỗ trợ tích cực
- Nó không có nhiều vấn đề mở và có vẻ ổn định
- Gói của nó hỗ trợ khoảng một chục API dịch thuật khác nhau
- Nó có thể được sử dụng để dịch HTML
- Nó hỗ trợ các bản dịch hàng loạt
Nhược điểm
- Nó không cung cấp nhiều tùy chọn tùy chỉnh
- Người dịch không cho phép thực hiện chỉ phát hiện ngôn ngữ
- Phản hồi chứa văn bản đã dịch mà không có bất kỳ thông tin bổ sung nào
dịch giả sâu
Deep-translator cũng có vẻ là một lựa chọn rất chắc chắn
ưu
- Nó có hỗ trợ cho nhiều API dịch thuật, bao gồm Google, Microsoft, Yandex, Libre và các API khác
- Cho phép thực hiện các bản dịch trực tiếp từ một tệp văn bản [không may, nó phải ở định dạng
{ "welcome": "Welcome to the tutorial, {username}!", "description": "This tutorial explains how to translate texts with Python." }
9] - Có thể được sử dụng trực tiếp từ một thiết bị đầu cuối
- Hỗ trợ dịch hàng loạt
Nhược điểm
- Phát hiện ngôn ngữ chỉ có thể với khóa API riêng
- Cộng đồng của gói dường như đã trở nên ít tích cực hơn
Google dịch
Googletrans là thư viện, đúng như tên gọi, cho phép bạn dễ dàng dịch bất kỳ văn bản nào bằng Google Dịch. Mặc dù nó vẫn là một giải pháp khả thi, nhưng nó có một số vấn đề nhất định
ưu
- Không cần cấu hình hoặc xác thực;
- Nó có một tính năng phát hiện ngôn ngữ văn bản
- Dữ liệu được trả về chứa thông tin bổ sung như điểm tin cậy của bản dịch hoặc các lỗi tiềm ẩn
Nhược điểm
- Vấn đề lớn nhất là gói này dường như không còn được duy trì tích cực
- Bản phát hành ổn định mới nhất có vấn đề chưa được giải quyết và thay vào đó, bạn sẽ phải cài đặt ứng viên phát hành
- Một số dữ liệu bổ sung dường như không còn nữa
Dịch
Dịch là một công cụ dòng lệnh đơn giản và một mô-đun Python cho phép bạn thực hiện các bản dịch bằng Google MT và các công cụ khác. Nó khá giống với googletrans
ưu
- Nó có sẵn dưới dạng mô-đun Python và dưới dạng công cụ dòng lệnh
- Hỗ trợ nhiều công cụ, bao gồm Google, Microsoft và DeepL
Nhược điểm
- Gói này hơi quá đơn giản
- Không cho phép phát hiện ngôn ngữ văn bản
- Có vấn đề chưa được giải quyết và dường như không được duy trì tích cực
Thiết lập một dự án Python mới
Bây giờ tôi muốn xem các thư viện dịch Python này đang hoạt động, nhưng điều đầu tiên trước tiên. chúng ta cần chuẩn bị một dự án mẫu. Tôi sẽ sử dụng Pipenv để quản lý các phụ thuộc và tạo môi trường ảo, nhưng tất nhiên bạn có thể tận dụng một giải pháp khác
Hãy cài đặt Pipenv
pip install --user pipenv
Tiếp theo, tạo một thư mục mới cho dự án của bạn và thêm tệp
import translators as ts0 vào đó
[[source]] url = "//pypi.org/simple" verify_ssl = true name = "pypi" [packages] requests = "~=2.27" python-lokalise-api = "~=1.6" python-dotenv = "~=0.20" googletrans = "==4.0.0rc1" translators = "~= 5.4" deep-translator = "~=1.9" [requires] python_version = "3.10"
Chúng tôi sẽ sử dụng các gói này trong suốt hướng dẫn, do đó hãy cài đặt nó bằng cách chạy
pipenv install
Ngoài ra, hãy tạo một tệp
import translators as ts1 trống và một thư mục
import translators as ts2. Bên trong thư mục
import translators as ts2, hãy thêm thư mục
import translators as ts4 với tệp
import translators as ts5. Đường dẫn đầy đủ đến tệp này là
import translators as ts6. Dưới đây là một số nội dung mẫu cho tệp JSON này
{ "welcome": "Welcome to the tutorial, {username}!", "description": "This tutorial explains how to translate texts with Python." }
Được rồi, vậy là chúng ta đã đặt nền móng và có thể chuyển sang phần chính của hướng dẫn này
Sử dụng DeepL và thư viện Translators
Thư viện đầu tiên mà tôi muốn cho bạn xem có một cái tên rất ngắn gọn. Phiên dịch viên. Nó hỗ trợ nhiều công cụ, bao gồm Google, DeepL, Baidu và các công cụ khác
Dịch văn bản với DeepL
Để bắt đầu, hãy tạo một tệp
import translators as ts7 mới
import translators as ts
Sau đó, bạn sẽ phải quyết định. Để sử dụng một engine, bạn chỉ cần gọi một phương thức có tên tương ứng, chẳng hạn
ts.google[] ts.deepl[] ts.baidu[]
Các phương thức này chấp nhận ít nhất một đối số. văn bản bạn muốn dịch. Tiếp theo, bạn có thể chỉ định các tùy chọn bổ sung, ví dụ: ngôn ngữ nguồn và ngôn ngữ đích. Theo mặc định, công cụ sẽ cố gắng “đoán” ngôn ngữ nguồn và sử dụng tiếng Anh làm mục tiêu
Hãy dịch một câu đơn giản sang tiếng Pháp
import translators as ts res = ts.deepl["Welcome to our tutorial!", to_language='fr'] print[res]
Đây là kết quả
Bienvenue à notre tutoriel !
Nếu chúng ta muốn dịch nhiều mục từ một tệp JSON thì sao?
import json import os import translators as ts filepath = os.path.join[os.path.dirname[__file__], "i18n/en.json"] with open[filepath] as i18n_file: parsed_json = json.loads[i18n_file.read[]] result = [ts.deepl[phrase, to_language='fr', sleep_seconds=5] for phrase in parsed_json.values[]] print[result]
Trong trường hợp này, tôi đã chỉ định tùy chọn
import translators as ts8 để tránh gửi quá nhiều yêu cầu
Bây giờ bạn có thể chạy tập lệnh
pipenv run python src\translate-translators.py
…và quan sát kết quả
Đó là nhanh chóng, eh?
Sử dụng Google Dịch và gói dịch sâu
Tiếp theo, tôi sẽ chỉ cho bạn cách bắt đầu với thư viện deep-translator và dễ dàng thực hiện phát hiện ngôn ngữ văn bản
Dịch văn bản của bạn
Vì vậy, để xem thư viện này đang hoạt động, hãy tạo một tệp
import translators as ts9 mới
[[source]] url = "//pypi.org/simple" verify_ssl = true name = "pypi" [packages] requests = "~=2.27" python-lokalise-api = "~=1.6" python-dotenv = "~=0.20" googletrans = "==4.0.0rc1" translators = "~= 5.4" deep-translator = "~=1.9" [requires] python_version = "3.10"0
Trong ví dụ này, chúng tôi sẽ sử dụng
ts.google[] ts.deepl[] ts.baidu[]0 nhưng gói này cũng hỗ trợ các API dịch thuật khác
Tiếp theo, hãy chọn ngôn ngữ nguồn và ngôn ngữ đích. Đối với nguồn, tôi muốn Google MT “đoán” cho tôi và mục tiêu phải là tiếng Pháp
[[source]] url = "//pypi.org/simple" verify_ssl = true name = "pypi" [packages] requests = "~=2.27" python-lokalise-api = "~=1.6" python-dotenv = "~=0.20" googletrans = "==4.0.0rc1" translators = "~= 5.4" deep-translator = "~=1.9" [requires] python_version = "3.10"1
Bước cuối cùng là thực hiện bản dịch thực tế
[[source]] url = "//pypi.org/simple" verify_ssl = true name = "pypi" [packages] requests = "~=2.27" python-lokalise-api = "~=1.6" python-dotenv = "~=0.20" googletrans = "==4.0.0rc1" translators = "~= 5.4" deep-translator = "~=1.9" [requires] python_version = "3.10"2
Đơn giản, phải không?
Hãy đọc tệp JSON của chúng tôi và tận dụng lợi thế của bản dịch hàng loạt
[[source]] url = "//pypi.org/simple" verify_ssl = true name = "pypi" [packages] requests = "~=2.27" python-lokalise-api = "~=1.6" python-dotenv = "~=0.20" googletrans = "==4.0.0rc1" translators = "~= 5.4" deep-translator = "~=1.9" [requires] python_version = "3.10"3
Bây giờ chúng ta cần lấy tất cả các giá trị từ
ts.google[] ts.deepl[] ts.baidu[]1 và chuyển nó sang phương thức
ts.google[] ts.deepl[] ts.baidu[]2
[[source]] url = "//pypi.org/simple" verify_ssl = true name = "pypi" [packages] requests = "~=2.27" python-lokalise-api = "~=1.6" python-dotenv = "~=0.20" googletrans = "==4.0.0rc1" translators = "~= 5.4" deep-translator = "~=1.9" [requires] python_version = "3.10"4
Biến
ts.google[] ts.deepl[] ts.baidu[]3 sẽ chứa một mảng với các văn bản đã dịch
[[source]] url = "//pypi.org/simple" verify_ssl = true name = "pypi" [packages] requests = "~=2.27" python-lokalise-api = "~=1.6" python-dotenv = "~=0.20" googletrans = "==4.0.0rc1" translators = "~= 5.4" deep-translator = "~=1.9" [requires] python_version = "3.10"5
Tuyệt vời
Phát hiện ngôn ngữ văn bản với Python
Deep-translator cho phép bạn thực hiện phát hiện ngôn ngữ, nhưng thật không may, điều này không hoạt động ngay lập tức. Để bắt đầu sử dụng tính năng này, bạn phải đăng ký trên https. //phát hiện ngôn ngữ. com và tạo khóa API. Tin vui là việc đăng ký chỉ mất chưa đầy một phút và bạn sẽ không phải trả bất kỳ khoản phí nào. có gói miễn phí cho phép bạn gửi tối đa 1000 yêu cầu mỗi ngày. Vì vậy, sau khi bạn đã đăng ký, hãy tiếp tục với hồ sơ cá nhân của bạn và sao chép khóa API
Tiếp theo, dán nó vào tệp
import translators as ts1
[[source]] url = "//pypi.org/simple" verify_ssl = true name = "pypi" [packages] requests = "~=2.27" python-lokalise-api = "~=1.6" python-dotenv = "~=0.20" googletrans = "==4.0.0rc1" translators = "~= 5.4" deep-translator = "~=1.9" [requires] python_version = "3.10"6
Tạo một tệp
ts.google[] ts.deepl[] ts.baidu[]5 mới
[[source]] url = "//pypi.org/simple" verify_ssl = true name = "pypi" [packages] requests = "~=2.27" python-lokalise-api = "~=1.6" python-dotenv = "~=0.20" googletrans = "==4.0.0rc1" translators = "~= 5.4" deep-translator = "~=1.9" [requires] python_version = "3.10"7
Và bây giờ chỉ cần sử dụng phương pháp
ts.google[] ts.deepl[] ts.baidu[]6
[[source]] url = "//pypi.org/simple" verify_ssl = true name = "pypi" [packages] requests = "~=2.27" python-lokalise-api = "~=1.6" python-dotenv = "~=0.20" googletrans = "==4.0.0rc1" translators = "~= 5.4" deep-translator = "~=1.9" [requires] python_version = "3.10"8
Sau khi chạy tập lệnh, bạn sẽ thấy
ts.google[] ts.deepl[] ts.baidu[]7 được in ra màn hình. Đẹp
Sử dụng Google Dịch và thư viện googletrans
Trong phần này, tôi sẽ chỉ cho bạn cách sử dụng thư viện googletrans và sử dụng Google Machine Translation [MT] một cách dễ dàng
Thực hiện dịch văn bản
Để xem hoạt động của thư viện googletrans, hãy tạo một tệp
ts.google[] ts.deepl[] ts.baidu[]8 mới và khởi tạo lớp
ts.google[] ts.deepl[] ts.baidu[]9
[[source]] url = "//pypi.org/simple" verify_ssl = true name = "pypi" [packages] requests = "~=2.27" python-lokalise-api = "~=1.6" python-dotenv = "~=0.20" googletrans = "==4.0.0rc1" translators = "~= 5.4" deep-translator = "~=1.9" [requires] python_version = "3.10"9
Để thực hiện dịch văn bản, bạn nên sử dụng phương pháp có tên — đoán xem? . Dễ nhỉ? . đó là văn bản nguồn của bạn. Theo mặc định, ngôn ngữ đích là tiếng Anh, nhưng bạn có thể ghi đè ngôn ngữ đó chỉ bằng cách chuyển đối số thứ hai
pipenv install0
Biến
import translators as ts res = ts.deepl["Welcome to our tutorial!", to_language='fr'] print[res]1 sẽ chứa một đối tượng đặc biệt đáp ứng các phương thức sau
import translators as ts res = ts.deepl["Welcome to our tutorial!", to_language='fr'] print[res]
2 — giá trị bản dịch đích [trong trường hợp của chúng tôi, nó sẽ trả về văn bản tiếng Pháp]import translators as ts res = ts.deepl["Welcome to our tutorial!", to_language='fr'] print[res]
3 — trả về mã ngôn ngữ đích [đích]. Trong trường hợp của chúng tôi, nó sẽ làts.google[] ts.deepl[] ts.baidu[]
7import translators as ts res = ts.deepl["Welcome to our tutorial!", to_language='fr'] print[res]
5 — văn bản nguồnimport translators as ts
2 — ngôn ngữ văn bản nguồn mà Google MT sẽ tự động phát hiện
Vì vậy, tại sao chúng ta không thử hiển thị thông tin này?
pipenv install1
Bây giờ hãy chạy tập lệnh
pipenv install2
Và đây là kết quả của bạn
pipenv install3
Tuyệt vời
Tất nhiên, bạn có thể đọc nội dung của tệp JSON mẫu của chúng tôi và dịch chúng một cách dễ dàng
pipenv install4
Bây giờ hãy chạy lại tập lệnh và đảm bảo rằng bản dịch hiển thị chính xác. Tuy nhiên, bạn có thể lưu ý rằng phần giữ chỗ
import translators as ts res = ts.deepl["Welcome to our tutorial!", to_language='fr'] print[res]7 cũng được dịch. Thật không may, không có cách nào đơn giản để ngăn chặn điều đó. đôi khi động cơ MT không nhận ra các yếu tố đó. Một giải pháp là chia nhỏ văn bản của bạn và dịch nó thành nhiều phần, nhưng trong trường hợp này, kết quả có thể rất xa lý tưởng. Các phần đã dịch của bạn có thể không có ý nghĩa gì khi được kết nối với nhau. Tuy nhiên, sau này tôi sẽ chỉ cho bạn một giải pháp khác có thể phát hiện các trình giữ chỗ như vậy cho bạn
Phát hiện ngôn ngữ Python
Được rồi, vậy nếu bạn chỉ cần thực hiện phát hiện ngôn ngữ thì sao? . Để đạt được điều này, hãy tạo một tệp
import translators as ts res = ts.deepl["Welcome to our tutorial!", to_language='fr'] print[res]8 khác
[[source]] url = "//pypi.org/simple" verify_ssl = true name = "pypi" [packages] requests = "~=2.27" python-lokalise-api = "~=1.6" python-dotenv = "~=0.20" googletrans = "==4.0.0rc1" translators = "~= 5.4" deep-translator = "~=1.9" [requires] python_version = "3.10"9
Để thực hiện phát hiện ngôn ngữ, chúng ta nên sử dụng một phương pháp khác không ngạc nhiên gọi là
import translators as ts res = ts.deepl["Welcome to our tutorial!", to_language='fr'] print[res]9
pipenv install6
Đối tượng
import translators as ts res = ts.deepl["Welcome to our tutorial!", to_language='fr'] print[res]1 có thuộc tính
Bienvenue à notre tutoriel !1 trả về mã được phát hiện
pipenv install7
Tất nhiên, bạn có thể cung cấp thêm các cụm từ bằng các ngôn ngữ khác nhau
pipenv install8
Đẹp
Cách tự động dịch trong Python
Vì vậy, như bạn có thể thấy, việc sử dụng công cụ dịch máy không phải là một nhiệm vụ phức tạp và bạn có thể bắt đầu làm việc với nó sau vài phút. Tuy nhiên, trong khi cách tiếp cận được giải thích ở trên là tốt để dịch các câu nhỏ hơn, thì nó không mở rộng tốt và do đó không phù hợp với các dự án lớn
Giả sử bạn có một trang web lớn với hàng trăm, thậm chí hàng nghìn văn bản được lưu trữ trong nhiều tệp dịch. Dịch trang web này sang ba ngôn ngữ sẽ khó đến mức nào? . Ngoài ra, như đã giải thích ở trên, chỉ sử dụng một công cụ MT để dịch các văn bản phức tạp có lẽ không phải là ý tưởng tốt nhất và rất có thể bạn sẽ cần ai đó thực hiện chỉnh sửa hậu kỳ. Ngoài ra, có thể bạn sẽ cần một công cụ để tổ chức tốt hơn các bản dịch của mình và cung cấp ảnh chụp màn hình giải thích vị trí và cách thức các văn bản này hiển thị [bối cảnh quan trọng. ]. Hoặc có thể bạn sẽ cần tự động xuất và nhập các bản dịch đến và từ kho lưu trữ GitHub của mình. Có rất nhiều yêu cầu tiềm năng và giải pháp đơn giản nhất là tận dụng hệ thống quản lý dịch thuật chuyên dụng
Trong phần này, bạn sẽ gặp Lokalise — một TMS dành cho các nhóm nhanh nhẹn sẽ đáp ứng mọi nhu cầu của bạn. Tôi sẽ chỉ cho bạn cách bắt đầu với Lokalise, cách tự động áp dụng bản dịch máy cho văn bản đã tải lên và cách sử dụng API để dễ dàng tải lên và tải xuống các tệp dịch của bạn ở bất kỳ định dạng nào
Chuẩn bị một dự án Lokalise mới
Để bắt đầu, hãy lấy bản dùng thử miễn phí của bạn tại ứng dụng. lokali hóa. com/signup [không cần thẻ tín dụng. ]. Sau khi đăng ký, bạn có thể tham gia một nhóm hiện có, nếu công ty của bạn đã sử dụng Lokalise hoặc tạo một nhóm mới. Vì mục đích của bản demo này, hãy sử dụng tùy chọn thứ hai và tạo một nhóm hoàn toàn mới. Nhóm về cơ bản là tập hợp người dùng, nhóm, cài đặt và dự án dịch thuật. Làm theo hướng dẫn của trình hướng dẫn;
- Tôi là nhà phát triển phần mềm
- Tôi muốn bắt đầu bản địa hóa từ đầu
- Nội dung của tôi nằm trong các tệp dịch
Sau đó nhấn Tạo dự án
Tiếp theo, đặt tên cho dự án của bạn và chọn ngôn ngữ cơ sở và ngôn ngữ đích. Ngôn ngữ cơ sở là ngôn ngữ gốc của nội dung của bạn, trong khi ngôn ngữ đích là ngôn ngữ mà bạn muốn dịch sang [xin lưu ý rằng có thể chọn nhiều mục tiêu]
Nó khá là nhiều. bây giờ bạn có thể đóng trình hướng dẫn mà không cần tải lên bất kỳ tệp dịch nào. Thay vào đó, chúng tôi sẽ thiết lập tự động hóa rồi tải dữ liệu của mình lên qua API
Thiết lập quy tắc tự động hóa
Bước tiếp theo là tạo quy tắc tự động hóa đặc biệt sẽ áp dụng bản dịch máy cho văn bản đã tải lên
Chọn Thêm > Tự động hóa từ menu trên cùng
Sau đó bấm Tạo quy tắc tự động hóa và điều chỉnh các tùy chọn sau
- ngôn ngữ được giám sát. Tiếng Anh [hoặc ngôn ngữ cơ sở của riêng bạn]
- Yêu cầu thay đổi tối thiểu. 0%
- ngôn ngữ tự động. thêm bất kỳ ngôn ngữ mục tiêu nào bạn chọn
- hành động
- Sử dụng dịch máy — bởi Google
- Xóa trạng thái
- Đánh dấu là chưa được xác minh [thực tế, việc bật hai tùy chọn cuối cùng là không bắt buộc nhưng rất có thể bạn sẽ muốn kiểm tra kỹ các bản dịch máy vì chúng có thể không hoàn hảo]
Để tìm hiểu thêm về tự động hóa, vui lòng tham khảo tài liệu của chúng tôi
Về cơ bản, đó là nó. Khi bạn đã sẵn sàng, hãy nhấn Lưu thay đổi và quay lại trang chính của dự án [được gọi là “trình chỉnh sửa dự án”]. Điều tiếp theo cần làm là tạo khóa API Lokalise
Tạo khóa API
Chúng tôi sẽ sử dụng Lokalise API để tải lên và tải xuống các bản dịch của mình; . Để đạt được điều này, hãy tìm hình đại diện của bạn ở góc dưới cùng bên trái, nhấp vào nó và chọn Cài đặt hồ sơ
Sau đó, chọn mã thông báo API trong menu bên trái và nhấp vào Tạo mã thông báo mới. Hộp thoại sau sẽ xuất hiện
Chọn quyền truy cập Đọc và ghi, sau đó nhấp vào Tạo. Sao chép mã thông báo mới tạo và dán vào tệp
import translators as ts1 của bạn
pipenv install9
Bạn đã làm rất tốt. Nếu muốn tìm hiểu thêm về API Lokalise và xem các ví dụ sử dụng, vui lòng xem hướng dẫn “APIv2 trong thực tế” của tôi và hướng dẫn giải thích cách xây dựng ứng dụng Flask bằng API Lokalise và triển khai luồng OAuth 2
Tải lên tệp dịch và áp dụng tự động hóa
Tại thời điểm này, chúng tôi đã sẵn sàng tải lên tệp bản dịch của mình và sử dụng quy tắc tự động hóa để áp dụng bản dịch máy
Trước hết, hãy tạo một tệp
Bienvenue à notre tutoriel !3 mới, tải tất cả các phụ thuộc cần thiết và đọc các biến môi trường từ tệp
import translators as ts1
{ "welcome": "Welcome to the tutorial, {username}!", "description": "This tutorial explains how to translate texts with Python." }0
Tiếp theo, chúng ta sẽ khởi tạo ứng dụng khách API và xác định một số biến
{ "welcome": "Welcome to the tutorial, {username}!", "description": "This tutorial explains how to translate texts with Python." }1
Chúng tôi sẽ sử dụng SDK Python chính thức cho Lokalise API
Xin lưu ý rằng bạn sẽ cần chỉ định ID dự án Lokalise. Bạn có thể tìm thấy ID này bằng cách quay lại dự án Lokalise của mình và nhấp vào Khác > Cài đặt ở menu trên cùng. Bạn sẽ thấy ID dự án của mình trong phần tương ứng
Bây giờ, đây là phần chính của tập lệnh tải lên của chúng tôi
{ "welcome": "Welcome to the tutorial, {username}!", "description": "This tutorial explains how to translate texts with Python." }2
Nơi đây
- Nội dung đã nhập phải được mã hóa bằng Base64
- Chúng tôi đang cung cấp nội dung của mình trong trường
Bienvenue à notre tutoriel !
5 - Đảm bảo chỉ định mã ISO ngôn ngữ cho dữ liệu dịch của bạn. Ngôn ngữ cơ sở của tôi là tiếng Anh, do đó tôi đang cung cấp
Bienvenue à notre tutoriel !
6. Xin lưu ý rằng mã ngôn ngữ này phải có trong dự án Lokalise đã chọn nếu không bạn sẽ gặp lỗi - Đảm bảo đặt
Bienvenue à notre tutoriel !
7 thànhBienvenue à notre tutoriel !
8 để quy tắc của chúng tôi có hiệu lực khi bản dịch được tải lên - Trong khi quá trình tải lên diễn ra ở chế độ nền trên Lokalise, chúng tôi sẽ phải đợi một lát và đảm bảo rằng dữ liệu của chúng tôi được nhập đúng cách. Quá trình nền theo lịch trình được đại diện bởi đối tượng
Bienvenue à notre tutoriel !
9
Bây giờ hãy viết mã phương thức
import json import os import translators as ts filepath = os.path.join[os.path.dirname[__file__], "i18n/en.json"] with open[filepath] as i18n_file: parsed_json = json.loads[i18n_file.read[]] result = [ts.deepl[phrase, to_language='fr', sleep_seconds=5] for phrase in parsed_json.values[]] print[result]0
{ "welcome": "Welcome to the tutorial, {username}!", "description": "This tutorial explains how to translate texts with Python." }3
Chúng tôi đang yêu cầu trạng thái của quy trình nền năm lần với độ trễ 1 giây. Nếu trạng thái đã thay đổi thành
import json import os import translators as ts filepath = os.path.join[os.path.dirname[__file__], "i18n/en.json"] with open[filepath] as i18n_file: parsed_json = json.loads[i18n_file.read[]] result = [ts.deepl[phrase, to_language='fr', sleep_seconds=5] for phrase in parsed_json.values[]] print[result]1, điều đó có nghĩa là mọi thứ đều tốt và dữ liệu của chúng tôi đã được xử lý đúng cách. Nếu cả năm lần kiểm tra đều thất bại, điều đó có thể có nghĩa là đã xảy ra sự cố. Xin lưu ý rằng bạn có thể cần phải điều chỉnh những con số này tùy thuộc vào dung lượng của tệp dịch của bạn
Và đây là nó. tập lệnh tải lên của bạn đã sẵn sàng
Kiểm tra tính năng upload file
Vì vậy, hãy thực thi tập lệnh của chúng ta bằng cách chạy
{ "welcome": "Welcome to the tutorial, {username}!", "description": "This tutorial explains how to translate texts with Python." }4
Khi thao tác hoàn tất, hãy quay lại dự án Lokalise của bạn và mở trình chỉnh sửa
Wow, hãy nhìn vào đó. Bản dịch tiếng Pháp và tiếng Đức được cung cấp tự động cho chúng tôi; . Hơn nữa, phần
import translators as ts res = ts.deepl["Welcome to our tutorial!", to_language='fr'] print[res]7 đã được nhận dạng chính xác là phần giữ chỗ và hiện có định dạng đặc biệt vì không nên dịch hoặc sửa đổi phần giữ chỗ
Các vòng tròn màu cam này bên cạnh bản dịch có nghĩa là các giá trị này chưa được xác minh. Bạn chỉ có thể lọc các văn bản chưa được xác minh [bằng cách sử dụng menu thả xuống Bộ lọc] và kiểm tra kỹ kết quả do MT cung cấp
Đáng kinh ngạc
Tải xuống nội dung đã dịch từ Lokalise về dự án của bạn
Bây giờ bản dịch của chúng tôi đã hoàn tất, chúng tôi có thể tải chúng trở lại dự án. Để làm điều này, hãy tạo một tệp
import json import os import translators as ts filepath = os.path.join[os.path.dirname[__file__], "i18n/en.json"] with open[filepath] as i18n_file: parsed_json = json.loads[i18n_file.read[]] result = [ts.deepl[phrase, to_language='fr', sleep_seconds=5] for phrase in parsed_json.values[]] print[result]3 mới
{ "welcome": "Welcome to the tutorial, {username}!", "description": "This tutorial explains how to translate texts with Python." }5
Tiếp theo, khởi tạo ứng dụng khách và thêm danh sách mã ISO ngôn ngữ mà bạn muốn tải xuống
{ "welcome": "Welcome to the tutorial, {username}!", "description": "This tutorial explains how to translate texts with Python." }6
Bạn có thể tìm thấy mã ngôn ngữ bằng cách mở dự án Lokalise của mình, nhấp vào danh sách ngôn ngữ thả xuống rồi nhấn Thêm > Cài đặt bên cạnh tên ngôn ngữ
Bạn sẽ thấy một hộp thoại có thông tin sau
Đó là mã ngôn ngữ của bạn. Nếu cần, bạn thực sự có thể chuyển nút sang Bật và nhập bất kỳ mã nào khác
Tuyệt vời, bây giờ hãy bắt đầu quá trình tải xuống
{ "welcome": "Welcome to the tutorial, {username}!", "description": "This tutorial explains how to translate texts with Python." }7
import json import os import translators as ts filepath = os.path.join[os.path.dirname[__file__], "i18n/en.json"] with open[filepath] as i18n_file: parsed_json = json.loads[i18n_file.read[]] result = [ts.deepl[phrase, to_language='fr', sleep_seconds=5] for phrase in parsed_json.values[]] print[result]
4 — định dạng mong muốn cho tệp dịch của bạn. Lokalise hỗ trợ hơn chục định dạng tệpimport json import os import translators as ts filepath = os.path.join[os.path.dirname[__file__], "i18n/en.json"] with open[filepath] as i18n_file: parsed_json = json.loads[i18n_file.read[]] result = [ts.deepl[phrase, to_language='fr', sleep_seconds=5] for phrase in parsed_json.values[]] print[result]
5 — chỉ những ngôn ngữ đã chọn mới được đưa vào gói tải xuốngimport json import os import translators as ts filepath = os.path.join[os.path.dirname[__file__], "i18n/en.json"] with open[filepath] as i18n_file: parsed_json = json.loads[i18n_file.read[]] result = [ts.deepl[phrase, to_language='fr', sleep_seconds=5] for phrase in parsed_json.values[]] print[result]
6 — chúng tôi muốn giữ nguyên tên ban đầu cho các tệp của mìnhimport json import os import translators as ts filepath = os.path.join[os.path.dirname[__file__], "i18n/en.json"] with open[filepath] as i18n_file: parsed_json = json.loads[i18n_file.read[]] result = [ts.deepl[phrase, to_language='fr', sleep_seconds=5] for phrase in parsed_json.values[]] print[result]
7 — không nên nhóm thêm các tệp dịch vào các thư mục lồng nhauimport json import os import translators as ts filepath = os.path.join[os.path.dirname[__file__], "i18n/en.json"] with open[filepath] as i18n_file: parsed_json = json.loads[i18n_file.read[]] result = [ts.deepl[phrase, to_language='fr', sleep_seconds=5] for phrase in parsed_json.values[]] print[result]
8 — nên sử dụng hai khoảng trắng để thụt đầu dòngimport json import os import translators as ts filepath = os.path.join[os.path.dirname[__file__], "i18n/en.json"] with open[filepath] as i18n_file: parsed_json = json.loads[i18n_file.read[]] result = [ts.deepl[phrase, to_language='fr', sleep_seconds=5] for phrase in parsed_json.values[]] print[result]
9 — định dạng của chúng tôi là ICU, nhưng bạn có thể chọn các tùy chọn khác tùy thuộc vào định dạng tệp [Symfony, iOS,. NET, thô, v.v.]
Cuối cùng, chúng ta nên giải nén kho lưu trữ vào thư mục
pipenv run python src\translate-translators.py0
{ "welcome": "Welcome to the tutorial, {username}!", "description": "This tutorial explains how to translate texts with Python." }8
Xin lưu ý rằng mọi tệp trùng lặp trong thư mục đó sẽ bị ghi đè, vì vậy hãy cẩn thận
Và, đó là khá nhiều nó. Bây giờ bạn có thể chạy tập lệnh
import json import os import translators as ts filepath = os.path.join[os.path.dirname[__file__], "i18n/en.json"] with open[filepath] as i18n_file: parsed_json = json.loads[i18n_file.read[]] result = [ts.deepl[phrase, to_language='fr', sleep_seconds=5] for phrase in parsed_json.values[]] print[result]3 và đảm bảo rằng hai tệp mới, cụ thể là
pipenv run python src\translate-translators.py2 và
pipenv run python src\translate-translators.py3, đã được tạo trong thư mục
import translators as ts4. Bạn đã làm rất tốt
Còn các bản dịch do con người tạo ra thì sao?
Như bạn đã biết, mặc dù MT là một công cụ tuyệt vời nhưng nó vẫn có những hạn chế. Có cách nào dễ dàng để thuê một dịch giả chuyên nghiệp mà không cần phải tự tìm ứng viên không?
Lokalise cho phép bạn tận dụng các dịch vụ dịch thuật chuyên nghiệp chỉ với vài cú nhấp chuột. Đầu tiên, chọn Đơn hàng từ menu bên trái rồi nhấp vào Đơn hàng mới
Sau đó, bạn chỉ cần chọn nhà cung cấp dịch thuật [Lokalise hoặc Gengo], chọn dự án và điều chỉnh các tùy chọn khác
Khi bạn đã sẵn sàng, chỉ cần nhập chi tiết thẻ tín dụng của bạn và đợi cho đến khi đơn hàng hoàn tất. Nếu chọn nhà cung cấp Gengo, bạn cũng có thể đính kèm tệp văn bản thuần túy thay vì chọn dự án dịch thuật
Để tìm hiểu thêm về dịch vụ dịch thuật chuyên nghiệp, vui lòng tham khảo tài liệu của chúng tôi
Phần kết luận
Và điều này kết thúc hướng dẫn của chúng tôi. Trên thực tế, chúng tôi mới chỉ vạch ra bề nổi, vì bạn có thể xây dựng các luồng phức tạp hơn nhiều với Lokalise. Dưới đây là một số gợi ý cho nghiên cứu tiếp theo
- Tìm hiểu thêm về quốc tế hóa Python
- Tìm hiểu cách bắt đầu quốc tế hóa Django và cách triển khai các khái niệm phức tạp hơn
- Tạo ứng dụng đăng ký webhook và phản hồi các sự kiện xảy ra trên Lokalise
- Tạo bộ xử lý tùy chỉnh của riêng bạn để biến đổi tất cả dữ liệu được tải lên và tải xuống trên Lokalise
- Và cuối cùng, bạn có thể muốn tham gia khóa học miễn phí của chúng tôi, “Lokalise dành cho nhà phát triển”, bao gồm các ứng dụng hữu ích mà Lokalise cung cấp và giải thích cách làm việc với API, webhook, bộ xử lý tùy chỉnh, trình giữ chỗ tùy chỉnh, v.v.
Tôi cảm ơn bạn đã ở lại với tôi, và cho đến lần sau
- hướng dẫn
Tác giả
Ilya Krukowski
Trưởng nhóm nội dung, nhà phát triển SDK/tích hợp
Ilya là trưởng nhóm nội dung/tài liệu/giới thiệu tại Lokalise, một gia sư và tác giả CNTT, nhà phát triển web và cựu chuyên gia của Microsoft/Cisco. Ngôn ngữ lập trình chính của anh ấy là Ruby, JavaScript, Python và Elixir. Anh ấy thích viết mã, dạy mọi người và học hỏi những điều mới. Trong thời gian rảnh rỗi, anh ấy viết các bài đăng giáo dục, tham gia vào các dự án OpenSource, tweet, chơi thể thao và chơi nhạc