Tất cả bài viết

FourA Digest, từ 19 tháng 6 đến 26 tháng 6, 2026

foura.ai hiện hỗ trợ sáu ngôn ngữ: URL-prefix routing, SEO và hreflang tương thích theo locale, và một sitemap XSLT hiển thị dưới dạng bảng được định dạng trong trình duyệt.

Điểm nổi bật

foura.ai hiện đã hỗ trợ sáu ngôn ngữ. Trang web, Dashboard chrome, và chín trang marketing đã được trích xuất, dịch thuật và cấu hình lại để phân phối đúng locale dựa trên URL. Mở sitemap trong trình duyệt và nó sẽ hiển thị dưới dạng một bảng được định dạng thay vì XML thô.

Có gì mới

Trang web hỗ trợ sáu ngôn ngữ

Tiếng Anh, tiếng Bulgaria, tiếng Đức, tiếng Ba Lan, tiếng Việt và tiếng Trung. URL-prefix routing nghĩa là mỗi locale sẽ nằm ở đường dẫn riêng: /de/, /pl/, /zh/, và v.v. Đường dẫn gốc phục vụ tiếng Anh, và /en/ sẽ redirect về đó để chỉ có một canonical URL duy nhất cho mỗi trang tiếng Anh. Biểu tượng quả địa cầu ở thanh điều hướng phía trên cho phép bạn chuyển đổi, và lựa chọn của bạn sẽ được lưu lại qua các trang.

Server-side rendering đảm nhận phần việc nặng nhọc cho SEO. Mỗi trang giờ đây đi kèm với thuộc tính lang chính xác, một tập hợp hreflang đầy đủ, Open Graph metadata riêng cho từng locale, cùng <title><meta description> đã được bản địa hóa. Sitemap công khai mọi URL trên mọi locale. Các công cụ tìm kiếm ưu tiên một locale này hơn locale khác (Baidu muốn tiếng Trung, phiên bản Ba Lan của một công cụ tìm kiếm muốn tiếng Ba Lan) giờ đây sẽ nhận được đúng trang ngay trong lần crawl đầu tiên.

ICU plurals hoạt động đúng như bạn mong đợi. "1 API key" giữ nguyên ở dạng số ít, "2 API keys" chuyển sang dạng số nhiều, và quy tắc này thay đổi theo từng ngôn ngữ. Tiếng Ba Lan có ba dạng số nhiều, tiếng Anh có hai, tiếng Trung có một. Bộ phân giải runtime sử dụng Intl.PluralRules, một API tích hợp sẵn của trình duyệt, vì vậy không có gì phát sinh được gửi vào bundle của bạn.

Và nếu bạn đọc bằng tiếng Anh, không có gì thay đổi về mặt giao diện. Các URL của bạn vẫn giữ nguyên vị trí cũ.

Giao diện Playground đã được bản địa hóa

Khoảng 80 chuỗi ký tự trong công cụ Playground (nhãn, gợi ý, placeholder, tooltip) giờ đây tuân theo locale bạn đã chọn. Nội dung kỹ thuật được cố ý giữ nguyên bằng tiếng Anh: tên phương thức HTTP, code mẫu, các key JSON, tên header, status code, và các giá trị bạn dán vào một request đều hiển thị giống nhau ở mọi locale. Giao diện xung quanh chúng sử dụng ngôn ngữ của bạn; phần dữ liệu truyền tải vẫn là tiếng Anh.

Sự phân tách đó rất quan trọng. Bất kỳ ai đang debug một request trong một nhóm không dùng chung ngôn ngữ mẹ đẻ vẫn có thể sao chép request body và đối chiếu với tài liệu hướng dẫn mà không lo bị sai lệch do dịch thuật.

Sitemap hiển thị dưới dạng bảng

Thả https://foura.ai/sitemap.xml vào một tab trình duyệt và bạn sẽ thấy một bảng được định dạng theo giao diện tối của FourA thay vì XML thô. Chúng tôi đã thêm một XSLT stylesheet để xử lý cả các sitemap riêng lẻ và sitemap index.

Lý do chúng tôi cần nó: các trình duyệt ngừng hiển thị các sitemap đã được bản địa hóa dưới dạng cây định dạng tích hợp sẵn ngay khi các mục nhập alternate-locale <xhtml:link> xuất hiện. Lựa chọn là phát hành sitemap không có các liên kết thay thế (và mất đi tín hiệu SEO liên kết các locale lại với nhau) hoặc tự hiển thị định dạng của riêng chúng tôi. Vì vậy, chúng tôi chọn phương án thứ hai. Các crawler sẽ bỏ qua stylesheet và parse XML như trước, nên không có gì thay đổi đối với chúng.

Một sitemap là một trang thực sự trên một trang web thực sự. Nó nên trông giống như vậy.

Cơ chế hoạt động

Bản dịch đến từ một pipeline tự động. Chúng tôi chỉ commit các chuỗi nguồn tiếng Anh; khi merge vào nhánh main, pipeline sẽ tạo ra mọi locale khác và commit kết quả. Một chỉnh sửa nội dung chỉ cần thực hiện ở một nơi và sẽ tự động lan truyền qua sáu ngôn ngữ.

Một bản sửa lỗi đáng chú ý. Lần deploy bản địa hóa đầu tiên đã vô tình đưa các placeholder dịch thuật thô lên production trong thời gian ngắn (bạn sẽ thấy home.h1a ở nơi lẽ ra là tiêu đề) vì build stage bị thiếu thư mục locales. Chúng tôi đã áp dụng bản sửa lỗi và yêu cầu quá trình build đọc thư mục locales trước khi tạo ra bundle, nhờ đó lỗi này không thể tái diễn.

Một trang web hỗ trợ sáu ngôn ngữ, về mặt cấu trúc, là sáu trang web khác nhau. Các công cụ tìm kiếm, trình đọc màn hình, và một khách hàng ở Warsaw tìm kiếm bằng tiếng Ba Lan trên Google đều được hưởng lợi khi đúng locale được phân phối đến đúng URL với đúng metadata. Phần dữ liệu truyền tải vẫn giữ nguyên; giao diện bên ngoài tiếp cận từng người đọc theo cách phù hợp nhất với họ.