Làm cách nào để dịch nhãn trường tùy chỉnh


6

Tôi muốn lấy nhãn và mô tả của các trường tùy chỉnh được dịch bằng tiếng Hà Lan, nhưng dù tôi có cố gắng thế nào thì chúng vẫn luôn bằng tiếng Anh (ngôn ngữ tôi sử dụng để tạo chúng). Tôi hy vọng các bước của tôi dưới đây có ý nghĩa bởi vì tôi không hiểu tại sao nó không hoạt động.

Những gì tôi làm là tôi tạo một trường (với ngôn ngữ trang web được đặt thành tiếng Anh) trong một hồ sơ (sử dụng mô-đun Hồ sơ 2) hoặc trực tiếp trong tài khoản.

Sau đó, tôi chỉnh sửa trường và sử dụng nút dịch (được cung cấp bởi Bản dịch trường trong i18n) để thêm bản dịch tiếng Hà Lan. Nhưng nếu sau đó tôi chuyển ngôn ngữ trang web sang tiếng Hà Lan, nhãn trường và mô tả vẫn bằng tiếng Anh.

Nếu tôi chỉnh sửa lại trường (với ngôn ngữ trang web vẫn được đặt thành tiếng Hà Lan), tab dịch hiện hiển thị bản dịch tiếng Hà Lan với trạng thái gốc và tiếng Anh là "niet vertaald" hoặc không được dịch. Nếu tôi chỉnh sửa bản dịch tiếng Hà Lan, tôi sẽ trình bày phiên bản tiếng Anh.

Tôi có thể thay đổi một lần nữa thành văn bản tiếng Hà Lan và nó sẽ hiển thị chính xác (bằng tiếng Hà Lan). Đẹp, nhưng khi tôi chuyển trang web trở lại tiếng Anh, lĩnh vực vẫn là tiếng Hà Lan! Khi tôi chỉnh sửa trường, tab dịch sẽ hiển thị văn bản tiếng Hà Lan bằng tiếng Anh, nhưng trạng thái cho tiếng Anh đã trở lại ban đầu.

Tôi không thể làm cho đầu hoặc đuôi của điều này. Tôi hoàn toàn thiếu một cái gì đó hay đây có lẽ là một lỗi? Tôi đang sử dụng Drupal 7.


Ngôn ngữ mặc định là gì? Bạn cũng đang sử dụng Dịch thuật thực thể hay bạn chỉ đang sử dụng các mô-đun i18n? Bạn đã xóa bộ nhớ cache sau khi dịch? Bạn đã kiểm tra lại cài đặt phát hiện ngôn ngữ của mình chưa? / admin / config / khu vực / ngôn ngữ / cấu hình
Patrick Kenny

Ngôn ngữ mặc định là tiếng Anh và để kiểm tra, tôi đã chuyển ngôn ngữ mặc định sang tiếng Hà Lan và quay lại (để tránh xảy ra sự cố với cài đặt phát hiện ngôn ngữ). Tôi đã bật dịch thực thể tại một số điểm, nhưng dường như không cần thiết vì i18n đã cung cấp các tab và trường dịch cần thiết. Tôi đã không xóa bộ nhớ cache, có thể như vậy? Tôi không thể kiểm tra tại thời điểm này.
Whiskey

Tôi sẽ luôn cố gắng xóa bộ nhớ cache trước; mà sửa chữa rất nhiều vấn đề.
Patrick Kenny

Chỉ cần làm một thử nghiệm khác trong môi trường dev của tôi ở nhà. Đã cài đặt i18n và biến, kích hoạt dịch trường và thử dịch trường tôi đã tạo trong cài đặt tài khoản. Kết quả tương tự, bất kể tần suất tôi xóa bộ nhớ cache :(
Whiskey

Câu trả lời:


6

Bạn không nên thay đổi ngôn ngữ mặc định thành tiếng Hà Lan để kiểm tra ngôn ngữ đó, vì sau đó nó đặt tên trường của bạn (và tất cả những thứ khác trong trang web) là tiếng Hà Lan.

Thay vào đó, tôi đề nghị sử dụng các tùy chọn 'Phát hiện và lựa chọn' và bật Trình duyệt hoặc Người dùng, sau đó kiểm tra nó trong Trình duyệt khác bằng tiếng Hà Lan hoặc với một Người dùng khác có ngôn ngữ được đặt thành tiếng Hà Lan.

Cách tốt hơn và thoải mái hơn là sử dụng khối Trình chuyển đổi ngôn ngữ, bật URL hoặc Phiên trong cài đặt Phát hiện và Lựa chọn.

Vì vậy, ngôn ngữ mặc định của trang web vẫn là tiếng Anh và các trường được dịch nếu ai đó đang sử dụng trang web bằng tiếng Hà Lan.


Cảm ơn bạn đã chỉ ra điều này. Tôi chưa bao giờ nghĩ rằng cài đặt ngôn ngữ mặc định cũng được áp dụng cho nguồn gốc của chuỗi trong trang web. Và bây giờ, bản dịch cũng hoạt động với nút tab dịch khi chỉnh sửa một trường trong trường Quản lý.
Whiskey

12

Ngày trước, tôi đã gặp vấn đề tương tự để dịch nhãn và mô tả về tùy chỉnh. đây là những gì tôi đã làm để giải quyết nó

  • Kích hoạt mô hình con i18nfield "Bản dịch trường"
  • Đi đến admin/config/regional/translate/i18n_string
  • Đã kiểm tra 'trường' (kiểm tra chính xác tất cả) và Nhấp vào "Làm mới chuỗi".
  • Đi đến admin/config/regional/translate/translate
  • Tìm kiếm chuỗi mong muốn và dịch nó sang lang khác.

10

Tôi in nhãn trường dịch theo cách này (sử dụng i18n_field.module):

$instance = field_info_instance('node', $my_field_name, $my_node_type);
$my_translated_label = i18n_field_translate_property($instance, 'label');

Hy vọng nó giúp.


2
Đây là một giải pháp thú vị. Nơi nào bạn đặt mã này? Tại sao i18n_field không làm điều này ra khỏi hộp?
JamesWilson

1

Tôi nghĩ rằng bạn có thể giữ tiếng Hà Lan làm ngôn ngữ mặc định và đặt tiếng Anh làm ngôn ngữ nguồn tại admin / config / khu vực / i18n / chuỗi.


1

cách dễ nhất để làm điều này là bằng cách cài đặt mô đun trường Localize .

nó cung cấp các bản dịch cho điều sau đây:

  • tiêu đề và mô tả của tất cả các lĩnh vực cốt lõi, trường ngày và trường
  • bộ sưu tập tiền tố, hậu tố và dấu tách thập phân
  • nhãn tùy chọn của các loại danh sách

bạn có thể sử dụng nó ngay cả khi bạn đã cài đặt i18n_field (Bản dịch trường)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.