Other Languages

A-Z Javascript đa ngôn ngữ: 2 Cách cực dễ

Table of Contents

JavaScript đa ngôn ngữ là tính năng phổ biến trên các ứng dụng, phần mềm và website. Theo dõi bài viết này để tìm hiểu:

  1. ● Cách tạo JavaScript đa ngôn ngữ đơn giản
  2. ● Ưu nhược điểm của API dịch thuật cho JavaScript
  3. ● Giải pháp tối ưu

JavaScript đa ngôn ngữ là gì?

Chiến lược bản địa hóa website là quá trình chuyển đổi tất cả thành phần website, đảm bảo tương thích với văn hóa của khu vực mục tiêu. Những thành phần được dịch thuật trên website gồm:

  1. ● Nội dung bằng văn bản
  2. ● Âm thanh, hình ảnh
  3. ● Biểu tượng, màu sắc, ký hiệu
  4. ● Bố cục, giao diện, chức năng

JavaScript Localization là:

  1. ● Quá trình chuyển đổi mã JavaScript sang nhiều ngôn ngữ.
  2. ● Thiết kế website để xử lý nhiều định dạng ngôn ngữ khác nhau bằng mã JavaScript.
  3. ● Cần chuyên gia bản địa hóa JavaScript để đạt hiệu quả tối ưu.

JavaScript đa ngôn ngữ là tạo tính năng đa ngôn ngữ cho website bằng ngôn ngữ lập trình JavaScript. Hiện nay, có nhiều thư viện có sẵn cho phép thực hiện:

  1. ● Xử lý đa ngôn ngữ
  2. Bản địa hóa nội dung
  3. ● Tải tệp JSON
  4. ● Phát hiện ngôn ngữ mặc định
  5. ● Phát hiện các cụm từ không tồn tại
  6. ● v.v.

Cách tạo tính năng đa ngôn ngữ cho JavaScript đơn giản

Thao & Co. - javascript localization

Để tạo JavaScript đa ngôn ngữ cho website, quý vị cần cài đặt tệp multi-language.js

Có 2 cách thực hiện:

Cách 1: Sử dụng CDN. Sao chép và dán đoạn mã sau vào trong thẻ <head> của website.

<script src="https://cdn.jsdelivr.net/gh/askask11/[email protected]/dist/multi-language.min.js" integrity="sha256-xL5PbSBwYLKYaUvdDP2S/lnF9s3oAPm/92GnACZBe2c=" crossorigin="anonymous"></script>

Cách 2: Thực hiện thủ công

  1. ● Tải xuống tệp multi-language.js và phân phối nó từ nguồn của mình.
    Lưu ý: Kiểm tra các phiên bản trước khi tải.
  2. ● Giải nén sau khi hoàn tất.
  3. ● Đến thư mục dist trong thư mục gốc, đặt tệp multi-language.js hoặc multi-language.min.js trong thư mục dự án web và đưa nó vào trang web bằng câu lệnh sau:
<script src="js/multi-language.min.js"></script>

Tiếp theo, quý vị thực hiện theo các bước dưới đây để tiến hành bản địa hóa JavaScript cho website

Bước 1: Xác định mã ngôn ngữ

  1. ● Xác định mã riêng cho từng ngôn ngữ.
    Ví dụ: Sử dụng “en” – tiếng Anh, “ko” – tiếng Hàn, “vi” – tiếng Việt.
  2. ● Tham khảo bảng mã ngôn ngữ ISO 639 được sử dụng phổ biến trên toàn thế giới.

Bước 2: Lập chỉ mục trang web của bạn

Thiết lập ID cho tất cả các phần tử sẽ chạm trực tiếp vào văn bản. Có thể bọc văn bản bằng phần tử span.

Ví dụ:

  <!--The id will be used to locate the element.-->
<div id="c1">Internationalization is very important, indeed.</div>

  <!--You should label text-only children elements, and use their id for reference later.-->

  <div>

    <img src="img/image.png" >

    <!--Label the element that is directly in contact with the text.-->

    <span id="c2">

      Do you really want to translate me?

    </span>

    <!--You may also include simple mark-ups for the text-->

    <span id="c3">

      Yes, because <strong>you<strong> are <u>not</u> fancy enough.

    </span>

  </div>

Bước 3: Tạo file bản dịch JSON

Trang dịch là một Mảng JSON chứa các phần tử ID của tài liệu và các văn bản bên trong tương ứng bằng những ngôn ngữ khác nhau. Thư viện này sẽ đọc bản dịch và áp dụng vào tài liệu sao cho phù hợp.

Quý vị có thể thực hiện 1 trong 2 cách:

  1. ● Viết trang tính này vào một tệp JSON bên ngoài.
  2. ● Viết trực tiếp nó vào trong mã bằng một thẻ như <script id="translation-sheet" type="application/json">** BẢN DỊCH **</script> trong phần Trang HTML cần dịch.

Lưu ý: Viết nó trước khi kích hoạt tập lệnh.

Cấu trúc của bản dịch

Trang dịch là một Mảng JSON bao gồm nhiều Đối tượng JSON. Mỗi đối tượng đại diện cho một phần tử cần dịch.

Ví dụ đơn giản về một bản dịch

[
{

    "id":"**THE ID OF THE TEXT ELEMENT**",

    "langs":{

      "en":"Hello!",

      "es":"¡Hola!",

      "zh":"你好(nihao)!"

    }

  },

  {

    "id":"**THE ID OF ANOTHER TEXT ELEMENT**",

    "langs":{

      "en":"Goodbye",

      "es":"Adiós",

      "zh":"再见"

    }

  },

  {...},

  {...},

  ......

]

Một trang dịch hoàn chỉnh ví dụ

 <img src="welcome.png">
<div id="welcome-txt">

  Hello! (I am the default text)

 </div>

<br>

...

<br>

<input placeholder="Enter Your Name" id="name-input">

<button id="farewell-btn" title="Thank you for visiting!" onclick="alert('Have a good day!');">

  Goodbye!

</button>

Một trang dịch JSON

[

  {

    "id":"welcome-txt",

    "langs":

    {

      "en":"Hello!",

      "es":"¡Hola!",

      "zh":"你好(nihao)!"

    }

  },

  {

    "id":"name-input",

    "attr":

    {

      "placeholder":

      {

        "en":"Please enter your name",

        "es":"Por favor ingrese su nombre aquí",

        "zh":"请输入您的姓名"

      }

    }

  },

  {

    "id":"farewell-btn",

    "langs":

    {

      "en":"Goodbye",

      "es":"Adiós",

      "zh":"再见"

    },"attr":

    {

      "title":

      { 

        "en":"Thank you for visiting.",

        "es":"Gracias por su visita.",

        "zh":"谢谢访问!"

      },"onclick":

      {

        "en":"alert('Have a good day!');",

        "es":"alert('¡Que tenga un buen día!');",

        "zh":"alert('祝您有美好的一天!');",

        "ko":"alert('좋은 하루 되세요!');",

        "vi":"alert('Chúc bạn ngày mới tốt lành');"

      }

    }

  }

]

Bước 4: Xây dựng một phiên bản MultiLanguage

Để kích hoạt tính năng dịch trên trang web, tạo một trình dịch ở cuối thẻ body trong HTML. Hàm tạo của lớp MultiLingual chấp nhận 3 tham số, không có tham số nào là bắt buộc. Bao gồm:

1. defaultLanguage:

  1. ● Ngôn ngữ mặc định cho người dùng chưa xác định bất kỳ tùy chọn ngôn ngữ nào.
  2. ● Ngôn ngữ này phải có sẵn trên tất cả phần tử.
  3. Lưu ý: Cần chỉ định giá trị nếu mã ngôn ngữ mặc định không phải là “en”.

2. externalJSON:

  1. ● Bản dịch để tải vào trình dịch.
  2. ● Trình dịch sẽ tải một mảng trống mặc định.
  3. ● Có thể tải nhiều trang tính sau khi nó được tạo bằng cách gọi phương thức addSheet(translationSheet).

3. select:

  1. ● Phần tử <select> có các tùy chọn ngôn ngữ được hỗ trợ.
  2. ● Ngôn ngữ hiện tại sẽ được thay đổi thành thuộc tính value của <option> đã chọn.
  3. ● Quý vị có thể đăng ký nhiều lựa chọn sau khi gọi phương thức registerSelect(select).

Bước 5: Tải bản dịch vào phiên bản

Để tải tệp trang tính bên ngoài vào phần tử, quý vị làm theo ví dụ sau:

var xhr = new XMLHttpRequest();  //Create an xhr instance

var translator = new MultiLanguage(); // define translator, create a default instance

xhr.open("***HTTP METHOD TO USE***","***LINK TO YOUR SHEET.json***"); // Define target file and HTTP method to use.

xhr.onreadystatechange=(e)=>{

  if(xhr.readyState === 4 && xhr.status === 200)

  {

    var jsonResponse = JSON.parse(xhr.responseText); // get response text and parse it into JSON.

    translator.addSheet(jsonResponse);

  }

}

xhr.send()

Nếu đã viết bản dịch vào bên trong HTML thì có thể làm theo ví dụ này:

var json = JSON.parse(document.getElementById("translation-sheet").innerHTML);

var translator = new MultiLanguage("en",json);

Lưu ý: Có thể lặp lại các bước trên để nạp nhiều trang nhưng KHÔNG được nạp cùng một trang nhiều lần.

Bước 6: Đăng ký chọn phần tử

Có thể cho phép người dùng kiểm soát ngôn ngữ trang bằng cách xác định phần tử <select> trong trang. Sau đó, đăng ký <select> cho trình dịch hoặc chuyển đối tượng Element của lựa chọn đó cho hàm tạo.

Quý vị cũng có thể gọi hàm dịch (ngôn ngữ) theo cách thủ công.

Ví dụ chọn HTML:

<select id="languages">

  <option value="en">

  English (Default)

  </option>

  <option value="zh">

  简体中文

  </option>

</select>

Để Đăng ký (liên kết), hãy chọn phiên bản dịch:

var translator = new MultiLanguage(select=document.getElementById("languages")); // you may pass it to the constructor

Hoặc

var translator = new MultiLanguage();

translator.registerSelect(document.getElementById("languages")) // You may call method "registerSelect" to register it

Gọi lại phương thức trên, quý vị có thể đăng ký nhiều phần tử được chọn. Lưu ý không được đăng ký cùng một phần tử nhiều lần.

Phần tử chọn đăng ký có thể kiểm soát cài đặt ngôn ngữ chung và sẽ thay đổi tương ứng khi cài đặt ngôn ngữ thay đổi.

Như vậy, quý vị đã cài đặt thành công JavaScript đa ngôn ngữ cho website! 

Ưu nhược điểm của API dịch thuật cho JavaScript

API (API web):

  1. ● Là giao diện lập trình ứng dụng cho phép máy chủ giao tiếp với trình duyệt web.
  2. Tự động dịch nội dung website sang ngôn ngữ người dùng muốn bằng cách lấy dữ liệu từ website hoặc phần mềm khác.
  3. ● Ví dụ: API Google dịch lấy dữ liệu ngôn ngữ từ Google và biên dịch nội dung trang web khi được yêu cầu.

API dịch thuật là cách xây dựng website đa ngôn ngữ hiệu quả, nhưng vẫn còn nhiều bất lợi. Tùy từng trường hợp, quý vị cân nhắc có nên sử dụng JavaScript đa ngôn ngữ API hay không.

Ưu điểm

  1. Khả năng tự động hóa toàn bộ thao tác, cải thiện tốc độ, quy trình làm việc.
  2. Nguồn dữ liệu khổng lồ với vô số ngôn ngữ được lấy từ các nguồn bên ngoài.
  3. Tích hợp linh hoạt: Dễ dàng lấy nội dung từ bất kỳ website hoặc ứng dụng nào nếu được cho phép. 
  4. Cập nhật dữ liệu theo thời gian thực
  5. Số lượng API có sẵn khá nhiều: Các trang web lớn (Google, Facebook) đều cung cấp hệ thống API cho phép kết nối, lấy hay cập nhật dữ liệu.
  6. Cung cấp hỗ trợ các thành phần MVC như routing, controller, filter,…

Nhược điểm

  1. ● Yêu cầu kiến thức chuyên môn và kinh nghiệm backend.
  2. ● Một số API có thể tốn phí để sử dụng, vận hành và phát triển.
  3. ● Việc triển khai API cần chú trọng yếu tố bảo mật.

Giải pháp toàn diện cho Website đa ngôn ngữ

Dịch vụ trọn gói cho website đa ngôn ngữ ngày càng được quan tâm. Việc triển khai đa ngôn ngữ cho website yêu cầu kiến thức chuyên môn và đội ngũ chuyên gia.

Translation Services - Thao & Co.

Công ty dịch thuật Thao & Co. tự hào là cầu nối đưa các cá nhân và doanh nghiệp ra quốc tế. Ứng dụng công nghệ cao, chúng tôi mang đến những giải pháp sáng tạo, tối ưu.

Những lợi ích khi hợp tác cùng Thao & Co.:

  1. ● Đội ngũ dịch giả bản xứ với nhiều năm kinh nghiệm trong dịch thuật ngành quảng cáo và marketing.
  2. ● Bản dịch chuẩn chỉnh, gần gũi, thu hút khách hàng mục tiêu.
  3. Dịch vụ dịch thuật và Bản địa hóa Website: Đảm bảo bản dịch tương thích với giao diện và các chức năng trên web.
  4. Tích hợp Tùy chỉnh và Đánh giá Ngôn ngữ: Nâng cao trải nghiệm người dùng, tăng cường bảo mật, tiết kiệm thời gian, công sức.
  5. Quy trình dịch thuật B2B nhanh gọn được quản lý chặt chẽ và bảo mật thông qua nền tảng độc quyền.

Để được tư vấn và giải đáp các thắc mắc về dịch vụ dịch thuật website, hãy liên hệ ngay cho Thao & Co. tại trang Nhận Báo Giá.

Nguồn: Thao & Company
Dịch vụ Dịch thuật và Bản địa hóa Chuyên nghiệp tại Việt Nam
Giải pháp Ngôn ngữ Chất lượng Đáp ứng Mọi Tiêu chuẩn
Liên hệ
Chúng tôi sẵn lòng hỗ trợ quý vị!
Chuyên ngành
Healthcare
Chúng tôi cung cấp bản dịch chính xác các loại tài liệu như hướng dẫn lâm sàng, bệnh án, bài báo nghiên cứu, nhãn sản phẩm, và phiếu khảo sát.
Advertising + Marketing
Mang thông điệp ra thế giới vượt mọi rào cản ngôn ngữ với dịch vụ dịch thuật tài liệu truyền tải thông tin, hướng dẫn và nội dung quảng cáo đơn giản.
Banking + Finance
Khi khách hàng tiếp cận thị trường mới, chúng tôi chuyên hỗ trợ dịch tài liệu kinh doanh, email, đơn xin việc, CV, tài liệu pháp lý và toàn bộ nền tảng ngân hàng/giao dịch và app.
Legal
Sở hữu bản dịch nhanh chóng, chính xác cho tài liệu pháp lý, hợp đồng, ghi chú, email và các loại văn kiện khác.
Real Estate + Construction
Chúng tôi có đội ngũ biên dịch chuyên về kiến trúc, xây dựng, bất động sản và kỹ thuật xây dựng dân dụng luôn sẵn sàng dịch thuật tài liệu chuyên ngành liên quan.
Retail + E-commerce
Nếu quý vị dự định tiếp cận thị trường quốc tế, đến với Thao & Co. để có ngay bản dịch tài liệu kinh doanh, thông báo công ty và biên bản cuộc họp, sẵn sàng hợp tác quốc tế.
Travel + Tourism
Chúng tôi mang đến bản dịch tổng hợp nội dung truyền thông nội bộ hoặc tài liệu hướng tới khách hàng, phục vụ các khách sạn, nhà hàng, hướng dẫn du lịch và hơn thế nữa.
Entertainment
Với nhiều năm kinh nghiệm dịch phim, kịch và quảng cáo, chúng tôi luôn cân nhắc kỹ khi lựa chọn từ ngữ và ý nghĩa phù hợp nhất với mỗi dự án.
Automotive + Aerospace
Tìm đến chuyên gia ngôn ngữ vững chuyên môn để dịch thuật và Việt hóa hướng dẫn sử dụng, bản vẽ CAD, cẩm nang sửa chữa và hợp đồng kinh doanh.
Manufacturing
Sở hữu bản dịch thuật ngữ chuyên ngành cho tài liệu hướng dẫn, an toàn lao động, quản lý chất lượng và tuân thủ quy định.
Game
Chúng tôi dịch và Việt hoá luật chơi, hướng dẫn, cốt truyện, hội thoại và các chi tiết về đồ hoạ và kỹ thuật, chắp cánh đưa game sang thị trường mới.
Education
Dịch vụ dịch thuật và bản địa hóa chuyên nghiệp nội dung ngành giáo dục dành cho bảng điểm, bằng cấp, chứng chỉ, website, app và các loại tài liệu khác.
Technology
Dịch vụ bản địa hóa chuyên nghiệp đưa tài liệu kỹ thuật, website, app, software và các sản phẩm kỹ thuật số vươn tầm quốc tế.
Quý vị đã sẵn sàng cho bước tiếp theo? Hãy cho chúng tôi biết về dự án của quý vị.

Nhận báo giá