Làm thế nào để dịch Tiếng Nhật Nội dung tùy chỉnh mới trong bảng điều khiển?


7

Tôi có rất nhiều bảng mà tôi đã thêm các bit văn bản / HTML bằng cách sử dụng tùy chọn "Nội dung tùy chỉnh mới" của mô-đun Bảng.

Theo mặc định, văn bản như vậy không hiển thị trên màn hình Giao diện dịch. Làm thế nào tôi nên đi về dịch chúng?

Hai cách tiếp cận tôi đã tìm thấy là:

  • Thay đổi định dạng văn bản nội dung tùy chỉnh thành PHP codevà in (các) chuỗi văn bản bằng t (). Điều này sau đó cho phép tôi dịch các chuỗi trên màn hình Giao diện dịch, nhưng tôi lo lắng rằng việc tiêm mã PHP như thế này là một tiền lệ xấu.
  • Vì tôi chỉ có hai ngôn ngữ, tôi có thể thêm một phần nội dung tùy chỉnh thứ hai được bản địa hóa bằng ngôn ngữ khác. Sau đó, tôi có thể thêm quy tắc hiển thị cho từng phần nội dung tùy chỉnh trong Bảng và đặt từng phần chỉ hiển thị khi ngôn ngữ của người dùng khớp với ngôn ngữ nội dung. Điều này hoạt động nhưng nó tốn thời gian và xấu xí trên phụ trợ. Sẽ còn tệ hơn nữa nếu tôi quyết định thêm nhiều ngôn ngữ vào trang web của mình trong tương lai, điều mà tôi có thể làm.

Có cách nào hiệu quả hơn, có thể duy trì để dịch nội dung tùy chỉnh như vậy không?

Câu trả lời:


4

Trước hết, tôi muốn giải thích lý do tại sao điều này không "chỉ hoạt động", để bạn đã được cảnh báo công bằng trước khi tôi đưa ra cho bạn những vấn đề mới. :) Hãy xem xét một nội dung khung nội dung tùy chỉnh như:

Welcome %user:name, you have %field_num_messages new messages waiting.

Văn bản ở đây sẽ được thay thế trước khi chuyển sang t (), nghĩa là với mỗi biến thể của người dùng và số lượng tin nhắn, bạn sẽ có được một chuỗi hoàn toàn mới để dịch. Đối với các tấm như vậy, đi với có hai tấm riêng biệt.

Một giải pháp dài hạn đang dần được thực hiện ở đây: Tiêu đề bảng có thể dịch: Triển khai i18n_strings nhưng tập trung vào các tiêu đề khung ban đầu.

Nói chung, giải pháp là để tránh các bảng nội dung tùy chỉnh, nhưng tôi cũng nhận ra rằng việc sử dụng chúng có thể rất thuận tiện.

Cuối cùng, đây là một đoạn mã tôi đã sử dụng để "buộc" các tiêu đề khung trở nên có thể dịch được. Tôi sẽ cố gắng sửa đổi nó sau này tốt hơn cho tình huống của bạn, nhưng tôi nghĩ rằng có một câu trả lời hữu ích một cách nhanh chóng thì tốt hơn là không. :) Bạn có thể sử dụng $ pane để tìm hiểu xem đây có phải là khung tùy chỉnh không, và sau đó chuyển văn bản qua t ().

/**
 * Implements hook_panels_pane_content_alter().
 */
function HOOK_panels_pane_content_alter($content, $pane, $args, $context) {
  if ($content->title) {
    $content->title = t($content->title);
  }
  return $content;
}

Được rồi cảm ơn! Trong trường hợp này, tôi không có bất kỳ nội dung tùy chỉnh nào sử dụng bối cảnh, vì vậy ít nhất tôi sẽ không gặp vấn đề đầu tiên mà bạn đề cập.
Patrick Kenny

Điều này không còn cần thiết nữa, xem drupal.stackexchange.com/a/108970/10086
Pere

@Pere Đó là sử dụng mô-đun php, đây là một thảm họa đang chờ xảy ra.
Letharion

@Letharion không, mô-đun dịch Bảng hiện là một phần của Bảng và không sử dụng mô-đun PHP
Pere

@Pere Bạn nói đúng, xin lỗi. Vì một số lý do trên điện thoại của tôi, liên kết đã cho tôi thấy câu trả lời ở trên của bạn, vì vậy tôi đã hiểu nhầm.
Letharion

3

Tôi luôn luôn sử dụng một trang cơ bản, (nút tồn tại so với nội dung tùy chỉnh). Bạn sẽ có cách này giúp Entity dịch thuật cơ hội để đối phó với các ngôn ngữ và dự phòng. Để tránh các vấn đề nội dung trùng lặp SEO, hãy cài đặt mô-đun Rabbit Rabbit và sử dụng chuyển hướng đến trang bảng điều khiển của bạn cho các nút đó.


2

Nếu mục tiêu của bạn là xuất một số "khối" tùy chỉnh (vì không có thuật ngữ tốt hơn) để mã hóa và dịch chúng, bạn có thể cân nhắc sử dụng mô-đun hộp với i18n_boxes, điều này sẽ cho phép bạn dịch các hộp trong UI (ví dụ sử dụng l10n_client ) và xuất phiên bản ngôn ngữ mặc định sang mã. Sau đó bạn có thể sử dụng các hộp trong bảng điều khiển của bạn.


Đó là một ý tưởng tốt, nhưng không may là có một lỗi trong Hộp ngay bây giờ ngăn nó lưu các cài đặt trừ khi bạn cũng sử dụng mô-đun Ngữ cảnh. Hộp + Bối cảnh là quá nhiều chi phí cho việc này. drupal.org/node/1444544
Patrick Kenny

Bạn không sử dụng Bảng để hiển thị? Các cài đặt hiển thị của hộp hoặc khối (từ lõi) không được sử dụng với Bảng điều khiển, chính nó là công cụ hiển thị của chính nó, do đó tôi không nghĩ bạn cần ngữ cảnh trong trường hợp này.
JamesWilson

À, đúng rồi. Tuy nhiên, nếu tôi đi theo con đường này, cuối cùng tôi sẽ tạo ra một số lượng lớn các hộp sẽ trở nên khó quản lý, đặc biệt là đối với người dịch, vì họ sẽ phải xử lý hai giao diện (Bảng + Hộp). Tôi đánh giá cao ý tưởng mặc dù.
Patrick Kenny

FYI: i18n_boxes hiển thị nội dung và tiêu đề của hộp dưới dạng các chuỗi có thể dịch tương thích i18n_strings. Sau đó, bạn có thể sử dụng l10n_clientthanh công cụ dịch trên màn hình của mô-đun - thanh màu xanh thăng hoa ở cuối tất cả các trang - giúp dịch thuật cực dễ cho người dịch. Tôi không biết các bảng nội dung tùy chỉnh còn lại tích hợp với i18n_strings bao xa, nhưng tôi cho rằng nó bị hỏng, như đã nêu trong OP.
JamesWilson
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.