Chuyển đến nội dung

Công cụ Dịch JSON Giữ Nguyên Cấu Trúc | Công Cụ i18n Miễn Phí

Công cụ dịch JSON miễn phí giữ nguyên cấu trúc. Dịch các tệp i18n, phản hồi API và JSON lồng nhau trong khi vẫn giữ nguyên khóa, kiểu dữ liệu và định dạng. Hoàn hảo cho các ứng dụng đa ngôn ngữ và i18next.

Công Cụ Dịch Cấu Trúc JSON

Công cụ này dịch nội dung của các đối tượng JSON trong khi vẫn giữ nguyên cấu trúc của chúng. Dán JSON của bạn vào bảng bên trái, chọn ngôn ngữ đích, và xem kết quả dịch ở bảng bên phải.

Kết quả dịch sẽ hiển thị tại đây...

Cách Sử Dụng

  1. Dán đối tượng JSON của bạn vào trường JSON Nguồn.
  2. Chọn ngôn ngữ đích từ menu thả xuống.
  3. JSON đã dịch sẽ tự động xuất hiện ở bảng bên phải.
  4. Nhấp vào nút Sao Chép để sao chép JSON đã dịch vào bảng nhớ tạm của bạn.
Máy tính tải...
📚

Tài liệu hướng dẫn

JSON Structure-Preserving Translator là gì?

Bạn đã từng thử sao chép JSON vào Google Translate và kết quả là các khóa bị hỏng, thiếu dấu ngoặc, hoặc cú pháp bị méo mó? Đó chính xác là vấn đề mà công cụ này giải quyết.

Một trình dịch JSON bảo toàn cấu trúc sẽ chuyển đổi các giá trị chuỗi bên trong các đối tượng JSON sang ngôn ngữ khác trong khi giữ nguyên mọi thứ khác—các khóa vẫn giữ nguyên, số vẫn là số, giá trị boolean vẫn là boolean, và cấu trúc lồng nhau không bị phá vỡ.

Điều khiến công cụ này khác với các công cụ dịch thông thường: khi bạn dịch một tệp i18n với hơn 50 khóa lồng nhau, bạn cần cấu trúc vẫn giữ nguyên để mã của bạn có thể vẫn tham chiếu user.profile.displayName bằng tiếng Tây Ban Nha, tiếng Pháp hoặc tiếng Nhật. Phá vỡ cấu trúc đó, và bạn sẽ phải gỡ lỗi trong nhiều giờ.

Công cụ này tự động xử lý việc duyệt đệ quy, xác định các chuỗi nào cần được dịch và các phần tử nào (như khóa API, giá trị cấu hình hoặc ID số) nên giữ nguyên như ban đầu.

Cách Bảo Toàn Cấu Trúc JSON

Tại Sao Việc Bảo Toàn Cấu Trúc Lại Quan Trọng

Khi bạn làm việc với dịch thuật JSON, bạn thường gặp một trong những tình huống sau:

  • Tệp i18n nơi ứng dụng của bạn mong đợi en.jsonfr.json có các khóa giống hệt nhau
  • Phản hồi API cần cấu trúc nhất quán trên các ngôn ngữ để phân tích phía máy khách
  • Tệp cấu hình nơi việc thay đổi tên khóa sẽ phá vỡ toàn bộ ứng dụng của bạn
  • Xuất cơ sở dữ liệu nơi các mối quan hệ phụ thuộc vào tên trường cụ thể

Thách thức: JSON không chỉ là văn bản. Đó là dữ liệu có cấu trúc với một lược đồ mà mã của bạn phụ thuộc vào. Thay đổi "userName" thành "nombreUsuario" trong quá trình dịch, và ứng dụng của bạn sẽ báo lỗi undefined.

Quy Trình Dịch Thuật Hoạt Động Như Thế Nào

Dưới đây là những gì xảy ra bên trong khi bạn dịch JSON:

1. Phân Tích và Xác Thực Công cụ trước tiên sẽ xác thực cú pháp JSON của bạn. Nếu bạn thiếu dấu phẩy hoặc có một dấu ngoặc thừa, bạn sẽ nhận được một thông báo lỗi rõ ràng trước khi bắt đầu dịch - giúp bạn tránh được đầu ra bị hỏng.

2. Duyệt Đệ Quy Bắt đầu từ gốc, thuật toán sẽ đi qua từng nút trong cây JSON của bạn. Đối với mỗi phần tử, nó kiểm tra kiểu dữ liệu:

  • Chuỗi? Xếp hàng để dịch
  • Số, boolean, null? Bỏ qua hoàn toàn
  • Đối tượng hoặc mảng? Đệ quy vào nó

3. Dịch An Toàn Về Kiểu Chỉ các giá trị chuỗi mới được gửi đến API dịch. "quantity": 42 của bạn vẫn giữ nguyên là 42, không phải "bốn mươi hai". "isActive": true của bạn vẫn là true, không phải "đúng".

4. Bảo Toàn Khóa Tất cả các khóa đối tượng vẫn giữ nguyên ngôn ngữ gốc. Điều này rất quan trọng vì translations.header.welcomeMessage phải là đường dẫn giống nhau trong mọi tệp ngôn ngữ.

5. Tái Lắp Cấu Trúc Các chuỗi đã dịch được chèn trở lại đúng vị trí, duy trì tất cả các mức lồng, chỉ số mảng và hệ thống đối tượng.

Một sai lầm phổ biến: Một số nhà phát triển cố gắng JSON.stringify() đối tượng, dịch toàn bộ chuỗi, sau đó phân tích lại. Điều này sẽ bị hỏng vì trình dịch sẽ sửa đổi khóa, dấu ngoặc và cú pháp. Phương pháp đệ quy hoàn toàn tránh được điều này.

Sử Dụng Trình Dịch Giữ Nguyên Cấu Trúc JSON

Hướng Dẫn Từng Bước

1. Dán JSON của Bạn Sao chép đối tượng JSON của bạn và dán vào bảng bên trái. Công cụ xử lý mọi JSON hợp lệ—cho dù là một đối tượng đơn giản với 5 khóa hay một cấu trúc lồng nhau sâu với mảng và nhiều cấp độ.

2. Chọn Ngôn Ngữ Đích Chọn từ danh sách thả xuống: Tiếng Tây Ban Nha, Pháp, Đức, Ý, Bồ Đào Nha, Trung Quốc, Nhật Bản, Hàn Quốc, Nga, và nhiều hơn nữa. Nếu bạn đang dịch cho một dự án i18next, hãy khớp mã ngôn ngữ mà framework của bạn mong đợi.

3. Nhận Bản Dịch Ngay Lập Tức Kết quả dịch xuất hiện tự động ở bảng bên phải. Không cần nút "Dịch"—nó xử lý ngay khi bạn có JSON hợp lệ và ngôn ngữ đã chọn.

4. Sao Chép và Sử Dụng Nhấp vào nút "Sao Chép" để lấy JSON đã dịch. Nó sẵn sàng để dán trực tiếp vào dự án của bạn—không cần làm sạch.

5. Xóa để Dịch Tiếp Nhấn "Xóa Tất Cả" khi bạn sẵn sàng dịch một tệp khác. Công cụ đặt lại cả hai bảng ngay lập tức.

Các Vấn Đề Thường Gặp và Giải Pháp

Lỗi "Định Dạng JSON Không Hợp Lệ" Bạn sẽ thấy điều này khi có vấn đề về cú pháp. Những nguyên nhân phổ biến:

  • Thiếu dấu phẩy giữa các cặp khóa-giá trị
  • Dấu phẩy thừa sau mục cuối cùng (hợp lệ trong JavaScript, không phải JSON)
  • Dấu nháy đơn thay vì dấu nháy kép
  • Các ký tự đặc biệt chưa được thoát trong chuỗi

Khắc phục nhanh: Chạy JSON của bạn qua trình xác thực như JSONLint trước khi dán.

Dịch Thất Bại Một Cách Âm Thầm Nếu bảng xuất ra vẫn trống:

  • Kiểm tra kết nối internet của bạn—dịch thuật yêu cầu truy cập API
  • Xác minh bạn đã chọn ngôn ngữ đích
  • Thử với một đoạn JSON nhỏ hơn để cô lập vấn đề

Kết Quả Không Mong Đợi Trong Bản Dịch Dịch máy hoạt động tốt cho các cụm từ tiêu chuẩn nhưng gặp khó khăn với:

  • Thuật ngữ kỹ thuật hoặc các thuật ngữ chuyên ngành
  • Tên thương hiệu (nên để nguyên không dịch)
  • Cú pháp trình giữ chỗ như {{username}} hoặc %s

Đối với các ứng dụng sản xuất, hãy sử dụng công cụ này như một bước đầu tiên, sau đó để người bản ngữ xem xét nội dung chuyên ngành hoặc hướng đến khách hàng.

Mẹo Chuyên Nghiệp Để Có Kết Quả Tốt Hơn

Giữ Các Chuỗi Kỹ Thuật Tách Biệt Nếu JSON của bạn trộn văn bản hướng người dùng với các định danh kỹ thuật, hãy cân nhắc chia chúng. Ví dụ:

1{
2  "display": {"welcome": "Chào mừng trở lại"},
3  "config": {"apiKey": "abc123", "endpoint": "https://api.example.com"}
4}
5

Dịch đối tượng display riêng để tránh xử lý vô tình các giá trị config.

Sử Dụng Ngữ Cảnh Trong Chuỗi Của Bạn "Gửi" có thể dịch khác nhau tùy theo ngữ cảnh. "Gửi biểu mẫu" hoặc "Gửi thanh toán" cung cấp cho các trình dịch (máy hoặc con người) ngữ cảnh tốt hơn để có kết quả chính xác.

Thử Nghiệm Với Dữ Liệu Thực Trước khi dịch toàn bộ tệp i18n với 500+ khóa, hãy thử nghiệm với một mẫu nhỏ bao gồm tất cả các loại dữ liệu của bạn—chuỗi, số, đối tượng lồng nhau, mảng.

Ví dụ về Mã

Dịch JSON bằng JavaScript

1// Ví dụ về cách triển khai chức năng tương tự trong JavaScript
2function translateJsonStructure(jsonObj, targetLanguage) {
3  // Hàm trợ giúp để dịch một chuỗi
4  function translateString(str, lang) {
5    // Trong một triển khai thực tế, điều này sẽ gọi một API dịch thuật
6    return `[${lang}] ${str}`;
7  }
8  
9  // Hàm đệ quy để duyệt và dịch JSON
10  function processNode(node) {
11    if (node === null) return null;
12    
13    if (typeof node === 'string') {
14      return translateString(node, targetLanguage);
15    }
16    
17    if (Array.isArray(node)) {
18      return node.map(item => processNode(item));
19    }
20    
21    if (typeof node === 'object') {
22      const result = {};
23      for (const key in node) {
24        result[key] = processNode(node[key]);
25      }
26      return result;
27    }
28    
29    // Trả về các số, giá trị boolean, v.v. không thay đổi
30    return node;
31  }
32  
33  return processNode(jsonObj);
34}
35
36// Ví dụ sử dụng
37const sourceJson = {
38  "product": {
39    "name": "Tai nghe không dây",
40    "description": "Tai nghe không dây chất lượng cao với chức năng chống ồn",
41    "features": ["Bluetooth 5.0", "Thời lượng pin 40 giờ", "Thiết kế gập được"],
42    "price": 99.99,
43    "inStock": true
44  }
45};
46
47const translatedJson = translateJsonStructure(sourceJson, "es");
48console.log(JSON.stringify(translatedJson, null, 2));
49

Dịch JSON bằng Python

1import json
2
3def translate_json_structure(json_obj, target_language):
4    """
5    Dịch các giá trị chuỗi trong một đối tượng JSON trong khi vẫn giữ nguyên cấu trúc.
6    
7    Args:
8        json_obj: Đối tượng JSON đã phân tích
9        target_language: Mã ngôn ngữ đích (ví dụ: 'es', 'fr')
10        
11    Returns:
12        Đối tượng JSON đã dịch với cấu trúc được giữ nguyên
13    """
14    def translate_string(text, lang):
15        # Trong một triển khai thực tế, điều này sẽ gọi một API dịch thuật
16        return f"[{lang}] {text}"
17    
18    def process_node(node):
19        if node is None:
20            return None
21        
22        if isinstance(node, str):
23            return translate_string(node, target_language)
24        
25        if isinstance(node, list):
26            return [process_node(item) for item in node]
27        
28        if isinstance(node, dict):
29            result = {}
30            for key, value in node.items():
31                result[key] = process_node(value)
32            return result
33        
34        # Trả về các số, giá trị boolean, v.v. không thay đổi
35        return node
36    
37    return process_node(json_obj)
38
39# Ví dụ sử dụng
40source_json = {
41    "user": {
42        "name": "Jane Smith",
43        "bio": "Nhà phát triển phần mềm và người đóng góp mã nguồn mở",
44        "skills": ["JavaScript", "Python", "React"],
45        "active": True,
46        "followers": 245
47    }
48}
49
50translated_json = translate_json_structure(source_json, "fr")
51print(json.dumps(translated_json, indent=2))
52

Dịch JSON bằng PHP

1<?php
2/**
3 * Dịch cấu trúc JSON trong khi vẫn giữ nguyên cấu trúc ban đầu
4 * 
5 * @param mixed $jsonObj Đối tượng JSON đã phân tích
6 * @param string $targetLanguage Mã ngôn ngữ đích
7 * @return mixed Đối tượng JSON đã dịch
8 */
9function translateJsonStructure($jsonObj, $targetLanguage) {
10    // Hàm trợ giúp để dịch một chuỗi
11    function translateString($text, $lang) {
12        // Trong một triển khai thực tế, điều này sẽ gọi một API dịch thuật
13        return "[$lang] $text";
14    }
15    
16    // Hàm đệ quy để xử lý từng nút
17    function processNode($node, $lang) {
18        if ($node === null) {
19            return null;
20        }
21        
22        if (is_string($node)) {
23            return translateString($node, $lang);
24        }
25        
26        if (is_array($node)) {
27            // Kiểm tra xem đó có phải là mảng kết hợp (đối tượng) hay mảng chỉ mục
28            if (array_keys($node) !== range(0, count($node) - 1)) {
29                // Mảng kết hợp (đối tượng)
30                $result = [];
31                foreach ($node as $key => $value) {
32                    $result[$key] = processNode($value, $lang);
33                }
34                return $result;
35            } else {
36                // Mảng chỉ mục
37                return array_map(function($item) use ($lang) {
38                    return processNode($item, $lang);
39                }, $node);
40            }
41        }
42        
43        // Trả về các số, giá trị boolean, v.v. không thay đổi
44        return $node;
45    }
46    
47    return processNode($jsonObj, $targetLanguage);
48}
49
50// Ví dụ sử dụng
51$sourceJson = [
52    "company" => [
53        "name" => "Giải pháp Công nghệ Toàn cầu",
54        "description" => "Công ty phát triển phần mềm đổi mới",
55        "founded" => 2010,
56        "services" => ["Phát triển Web", "Ứng dụng Di động", "Giải pháp Đám mây"],
57        "active" => true
58    ]
59];
60
61$translatedJson = translateJsonStructure($sourceJson, "de");
62echo json_encode($translatedJson, JSON_PRETTY_PRINT);
63?>
64

Các Trường Hợp Sử Dụng Thực Tế

Tệp i18n Ứng Dụng Web

Hầu hết các framework hiện đại như Next.js, React hoặc Vue đều lưu trữ bản dịch ở định dạng JSON. Khi bạn cần thêm một ngôn ngữ mới vào ứng dụng, bạn sẽ phải lựa chọn: sao chép và dịch thủ công từng khóa (dễ xảy ra lỗi), hoặc sử dụng công cụ này để tạo bản nháp trong vài phút.

Một kịch bản thực tế: Ứng dụng của bạn có en.json với hơn 200 khóa dịch thuộc các danh mục lồng nhau—điều hướng, biểu mẫu, thông báo lỗi, chú giải. Bạn cần các phiên bản tiếng Pháp và tiếng Đức cho sprint tiếp theo.

Đầu vào (en.json):

1{
2  "common": {
3    "welcome": "Welcome to our application",
4    "login": "Log in",
5    "signup": "Sign up",
6    "errorMessages": {
7      "required": "This field is required",
8      "invalidEmail": "Please enter a valid email address"
9    }
10  }
11}
12

Dịch sang tiếng Pháp, nhận được fr.json với cấu trúc giống hệt. Mã của bạn vẫn tham chiếu t('common.errorMessages.required') mà không thay đổi.

Những gì tôi nhận thấy hoạt động tốt: Tạo bản dịch bằng công cụ này, sau đó để một thành viên có khả năng song ngữ kiểm tra các thuật ngữ kỹ thuật và nhãn nút. Điều này giúp bắt được các trường hợp mà "Submit" có thể cần các bản dịch khác nhau cho "Submit form" và "Submit payment."

Bản Địa Hóa Phản Hồi API

Xây dựng một API phục vụ nhiều quốc gia? Bạn cần các cấu trúc phản hồi nhất quán trên các ngôn ngữ. Một API thông báo có thể trả về:

1{
2  "status": "success",
3  "notification": {
4    "title": "Order Shipped",
5    "message": "Your order #12345 has been shipped",
6    "priority": 1,
7    "timestamp": 1678901234
8  }
9}
10

Ứng dụng di động của bạn phân tích notification.titlenotification.message. Nếu bản dịch tiếng Pháp thay đổi cấu trúc khóa, ứng dụng sẽ bị lỗi đối với người dùng tiếng Pháp.

Công cụ này đảm bảo notification.title vẫn là notification.title ở mọi ngôn ngữ, chỉ các giá trị chuỗi được dịch. Mã máy khách của bạn hoạt động giống nhau trên tất cả các locale.

Một hạn chế cần lưu ý: Dịch tự động không hiểu miền của bạn. "Shipped" trong bối cảnh thương mại điện tử có thể được dịch khác so với trong bối cảnh hậu cần hoặc hàng hải. Đối với các API hướng tới khách hàng, hãy xem lại đầu ra trước khi triển khai.

Dịch Nội Dung Headless CMS

Các nền tảng Headless CMS như Contentful hoặc Strapi thường xuất nội dung dưới dạng JSON. Khi bạn có 50 bài đăng blog với siêu dữ liệu có cấu trúc (tác giả, thẻ, URL hình ảnh nổi bật, ngày xuất bản), bạn muốn dịch phần nội dung và tiêu đề mà không động đến siêu dữ liệu.

Một bản xuất điển hình bao gồm cả chuỗi nội dung và cấu hình:

  • Nội dung: nội dung bài viết, tiêu đề, đoạn trích
  • Cấu trúc: ID tác giả, đường dẫn hình ảnh, slug danh mục, mốc thời gian

Dịch thủ công có nguy cơ thay đổi slug từ technology thành tecnología, làm hỏng định tuyến của bạn. Dịch có cấu trúc bảo toàn chỉ xử lý các trường nội dung.

Tệp Cấu Hình cho Triển Khai Đa Vùng

Triển khai trên nhiều vùng? Các tệp cấu hình của bạn có thể cần các chuỗi bản địa hóa trong khi vẫn giữ nguyên các điểm cuối, thông tin xác thực và cờ tính năng:

1{
2  "region": "eu-west",
3  "welcomeMessage": "Welcome to our service",
4  "endpoint": "https://api.eu.example.com",
5  "retryAttempts": 3,
6  "features": {"darkMode": true}
7}
8

Dịch welcomeMessage sang tiếng Đức trong khi để nguyên endpoint, retryAttemptsfeatures.

So Sánh Các Phương Pháp Dịch Thuật

Phương PhápPhù Hợp Nhất ChoTốc ĐộĐộ Chính XácAn Toàn Cấu TrúcChi Phí
Công Cụ NàyTạo nhanh tệp i18n, nguyên mẫu, công cụ nội bộTức ThìTốt cho nội dung tiêu chuẩnBảo toàn 100%Miễn Phí
Google Dịch (sao chép/dán)Cụm từ đơn, văn bản phi kỹ thuậtTức ThìKhông ổn địnhPhá vỡ JSONMiễn Phí
Dịch Thuật Chuyên NghiệpNội dung hướng đến khách hàng, tài liệu pháp lý, tiếp thịNgàyXuất sắcCần làm thủ công$0.08-0.15/từ
Hệ Thống Quản Lý Dịch Thuật (Lokalise, Phrase)Ứng dụng doanh nghiệp, quy trình cộng tácGiờ-NgàyXuất sắc với đánh giáHỗ trợ JSON tích hợp$$$+

Khi nào sử dụng công cụ này: Các dự án giai đoạn đầu, tạo bản nháp để xem xét, các ứng dụng nội bộ nơi bản dịch hoàn hảo không quan trọng.

Khi nào đầu tư vào dịch thuật chuyên nghiệp: Nội dung hướng đến khách hàng, văn bản pháp lý/tuân thủ, thông điệp thương hiệu, hoặc khi sắc thái văn hóa quan trọng hơn tốc độ.

Cân Nhắc Kỹ Thuật và Trường Hợp Biên

Những Gì Được Dịch (và Những Gì Không)

Công cụ sử dụng kiểm tra kiểu để xác định những gì cần dịch:

Được Dịch:

  • Giá trị chuỗi: "Welcome""Chào mừng"
  • Chuỗi trong mảng: ["Hello", "World"]["Xin chào", "Thế giới"]
  • Chuỗi ở bất kỳ cấp độ lồng nào

Không Được Dịch:

  • Số: 42, 3.14, -10 vẫn giữ nguyên
  • Giá trị Boolean: truefalse vẫn giữ nguyên
  • Null: null vẫn là null
  • Khóa đối tượng: "userName" như một khóa vẫn giữ nguyên "userName"
  • Chuỗi rỗng: "" vẫn là ""

Xử Lý Ký Tự Đặc Biệt

Unicode và Emoji Công cụ xử lý UTF-8 một cách chính xác, vì vậy emoji và các ký tự không phải Latin hoạt động tốt:

1{"greeting": "👋 Hello"}
2

Dịch sang tiếng Việt như sau:

1{"greeting": "👋 Xin chào"}
2

Chuỗi Thoát Các chuỗi thoát JSON (\n, \t, \") được giữ nguyên:

1{"message": "Line 1\nLine 2"}
2

\n vẫn giữ nguyên trong quá trình dịch.

Trình Giữ Chỗ Đây là một vấn đề tiềm ẩn: Nếu các chuỗi của bạn chứa trình giữ chỗ như {username} hoặc %s, chúng có thể bị dịch hoặc sắp xếp lại. Trong các ngôn ngữ như Ả Rập hoặc Hebrew với văn bản từ phải sang trái, vị trí trình giữ chỗ có thể thay đổi. Hãy xem xét kỹ những trường hợp này.

Hiệu Suất JSON Lớn

Công cụ web xử lý các tệp i18n điển hình (dưới 500KB) mà không gặp vấn đề. Đối với các tập dữ liệu lớn hơn:

  • 500KB - 2MB: Hoạt động nhưng có thể chậm trong trình duyệt
  • Trên 2MB: Hãy cân nhắc chia thành các khối logic (ví dụ: các tệp riêng biệt cho từng tính năng hoặc phần)

Bộ nhớ trình duyệt là yếu tố giới hạn, không phải thuật toán.

Câu Hỏi Thường Gặp

Điều này khác gì so với việc dán JSON vào Google Translate?

Google Translate xử lý JSON như văn bản thuần túy, nghĩa là nó cố gắng dịch mọi thứ - bao gồm các khóa, ký tự cú pháp và giá trị số. Bạn sẽ nhận được đầu ra như:

1{ "nom d'utilisateur": "Jean Dupont", "âge": "vingt-cinq" }
2

Chú ý làm sao "username" đã trở thành "nom d'utilisateur" và số 25 đã trở thành chuỗi "vingt-cinq"? Mã của bạn sẽ ngay lập tức bị hỏng.

Công cụ này hiểu cấu trúc JSON và chỉ dịch các giá trị chuỗi, để nguyên các khóa và các kiểu dữ liệu khác.

Liệu nó có xử lý được JSON lồng sâu với các mảng không?

Có. Thuật toán đệ quy xử lý mọi cấp độ lồng:

1{
2  "users": [
3    {"name": "John", "roles": ["admin", "editor"]},
4    {"name": "Jane", "roles": ["viewer"]}
5  ]
6}
7

Nó dịch tất cả các giá trị chuỗi ("John", "Jane", "admin", "editor", "viewer") trong khi vẫn giữ nguyên cấu trúc.

Nếu JSON của tôi có cả nội dung tiếng Anh và nội dung đã được dịch thì sao?

Công cụ sẽ dịch mọi chuỗi mà nó tìm thấy, ngay cả khi một số đã ở ngôn ngữ đích. Nếu bạn đang thêm các khóa mới vào tệp dịch hiện có, hãy dịch phần mới riêng biệt, sau đó hợp nhất kết quả.

Tôi có thể sử dụng cho các tệp i18next hoặc react-intl không?

Hoàn toàn. Cấu trúc đầu ra phù hợp với những gì các framework này mong đợi. Một tệp JSON i18next như:

1{"translation": {"welcome": "Hello", "goodbye": "Goodbye"}}
2

Sẽ trở thành:

1{"translation": {"welcome": "Hola", "goodbye": "Adiós"}}
2

Các lệnh gọi t('translation.welcome') của bạn vẫn không thay đổi.

Độ chính xác của dịch thuật tự động cho nội dung kỹ thuật như thế nào?

Nó phụ thuộc vào ngữ cảnh:

  • Văn bản giao diện người dùng chung: "Save", "Cancel", "Submit" → Thường chính xác
  • Thuật ngữ kỹ thuật: "webhook", "OAuth2", "idempotent" → Có thể bị dịch sai hoặc để nguyên
  • Các thuật ngữ chuyên ngành: "patient record" (y tế) so với "patient" (kiên nhẫn) → Ngữ cảnh thường bị bỏ qua

Đối với các ứng dụng sản xuất, hãy sử dụng điều này như một bước đầu tiên, sau đó để ai đó xem xét các thuật ngữ kỹ thuật và chuyên ngành.

Còn các ngôn ngữ có bộ ký tự khác (Trung Quốc, Ả Rập, Nga) thì sao?

Công cụ xử lý Unicode một cách chính xác, vì vậy tất cả các bộ ký tự đều hoạt động. Một điều cần chú ý: Ả Rập và Hebrew là từ phải sang trái (RTL), điều này có thể ảnh hưởng đến cách các trình giữ chỗ xuất hiện trong các chuỗi được dịch. Cấu trúc JSON vẫn chính xác, nhưng hãy xem xét lại văn bản được dịch để đảm bảo tính dễ đọc.

Liệu nó có giữ nguyên định dạng của tôi (thụt lề, ngắt dòng) không?

Đầu ra là JSON hợp lệ, nhưng định dạng (khoảng trắng, thụt lề) có thể khác so với đầu vào của bạn. Nếu bạn cần định dạng cụ thể, hãy chạy đầu ra qua trình định dạng JSON với các cài đặt ưa thích của bạn.

Tôi có thể dịch các giá trị cấu hình như URL hoặc khóa API không?

Công cụ dịch tất cả các chuỗi, bao gồm URL và giá trị cấu hình. Để ngăn điều này:

  1. Chia JSON của bạn thành nội dung dành cho người dùng và cấu hình
  2. Chỉ dịch phần nội dung
  3. Giữ nguyên cấu hình

Tốt hơn nữa, hãy cấu trúc các tệp của bạn để tách nội dung có thể dịch được từ các giá trị kỹ thuật ngay từ đầu.

Đây có phải là miễn phí không? Có giới hạn tỷ lệ không?

Công cụ web là miễn phí cho việc sử dụng điển hình. Việc dịch khối lượng lớn (hàng trăm tệp mỗi phút) có thể chạm đến giới hạn tỷ lệ trên dịch vụ dịch thuật cơ bản. Đối với hầu hết các quy trình phát triển, bạn sẽ không gặp phải các giới hạn.

Tham Khảo và Đọc Thêm

Để hiểu sâu hơn về cấu trúc JSON, các tiêu chuẩn quốc tế hóa và các phương pháp hay nhất:

Bắt Đầu Dịch Tệp JSON Của Bạn

Bạn cần nhanh chóng tạo các tệp dịch cho ứng dụng đa ngôn ngữ của mình? Hãy dán JSON của bạn, chọn ngôn ngữ đích và nhận bản dịch giữ nguyên cấu trúc ngay lập tức. Hoạt động với i18next, react-intl, vue-i18n và bất kỳ framework nào yêu cầu cấu trúc JSON nhất quán giữa các ngôn ngữ.

Bắt đầu dịch ngay: