Google dịch python ngoại tuyến

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 ts
0 vào đó

[[source]]
url = "https://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 ts
1 trống và một thư mục
import translators as ts
2. Bên trong thư mục
import translators as ts
2, hãy thêm thư mục
import translators as ts
4 với tệp
import translators as ts
5. Đường dẫn đầy đủ đến tệp này là
import translators as ts
6. 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 ts
7 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 ts
8 để 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 ts
9 mới

[[source]]
url = "https://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 = "https://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 = "https://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 = "https://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 = "https://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 = "https://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 ts
1

[[source]]
url = "https://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 = "https://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 = "https://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 = "https://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 install
0

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()
    7
  • import translators as ts
    
    res = ts.deepl("Welcome to our tutorial!", to_language='fr')
    print(res)
    5 — văn bản nguồn
  • import 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 install
1

Bây giờ hãy chạy tập lệnh

pipenv install
2

Và đây là kết quả của bạn

pipenv install
3

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 install
4

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 = "https://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 install
6

Đố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 install
7

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 install
8

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

Google dịch python ngoại tuyế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)

Google dịch python ngoại tuyến

 

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

Google dịch python ngoại tuyến

 

Sau đó bấm Tạo quy tắc tự động hóa và điều chỉnh các tùy chọn sau

Google dịch python ngoại tuyến

  • 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ơ

Google dịch python ngoại tuyến

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

Google dịch python ngoại tuyế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 ts
1 của bạn

pipenv install
9

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 ts
1

{
  "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

Google dịch python ngoại tuyến

 

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

  1. Nội dung đã nhập phải được mã hóa bằng Base64
  2. Chúng tôi đang cung cấp nội dung của mình trong trường
    Bienvenue à notre tutoriel !
    5
  3. Đả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
  4. Đảm bảo đặt
    Bienvenue à notre tutoriel !
    7 thành
    Bienvenue à 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
  5. 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

Google dịch python ngoại tuyến

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ữ

Google dịch python ngoại tuyến

Bạn sẽ thấy một hộp thoại có thông tin sau

Google dịch python ngoại tuyến

Đó 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ệ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)
    5 — chỉ những ngôn ngữ đã chọn mới được đưa vào gói tải xuống
  • 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)
    6 — chúng tôi muốn giữ nguyên tên ban đầu cho các tệp của mì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)
    7 — không nên nhóm thêm các tệp dịch vào các thư mục lồng nhau
  • 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)
    8 — nên sử dụng hai khoảng trắng để thụt đầu dòng
  • 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)
    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.py
0

{
  "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.py
2 và
pipenv run python src\translate-translators.py
3, đã được tạo trong thư mục
import translators as ts
4. 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

Google dịch python ngoại tuyến

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

Google dịch python ngoại tuyến

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

Google Dịch có thể được sử dụng ngoại tuyến không?

Bạn có thể tải ngôn ngữ xuống thiết bị của mình. Điều này cho phép bạn dịch chúng mà không cần kết nối internet . Sau khi bạn đã tải xuống một ngôn ngữ, bạn có thể dịch ngôn ngữ đó bằng cách xem ngôn ngữ đó qua ống kính máy ảnh của thiết bị. Xem các ngôn ngữ hoạt động với tính năng dịch nhanh bằng máy ảnh.

Tôi có thể sử dụng Google Dịch bằng Python không?

Googletrans là thư viện python miễn phí và không giới hạn đã triển khai API Google Dịch. Điều này sử dụng API Google Dịch Ajax để thực hiện cuộc gọi đến các phương thức như phát hiện và dịch. Tương thích với Python 3. 6+ .

Googletrans Python có miễn phí không?

Googletrans là thư viện python miễn phí sử dụng API Google Dịch.

Làm cách nào tôi có thể tải xuống ngôn ngữ Google Dịch ngoại tuyến?

Chọn và tải xuống ngôn ngữ . Bên cạnh ngôn ngữ bạn muốn tải xuống, hãy nhấn vào Tải xuống. Nếu nó không có ở đó, ngôn ngữ không thể được tải xuống. Nếu được yêu cầu tải xuống tệp ngôn ngữ, hãy nhấn vào Tải xuống