【问题标题】:Drupal translation jqueryDrupal 翻译 jquery
【发布时间】:2024-05-15 20:45:01
【问题描述】:

我正在尝试使用 Drupals 翻译。 '/admin/config/regional/translate'。 当我使用底部的代码时,单词会显示在列表中,我可以指定翻译。

但是当我在 jQuery 代码中使用该变量时,我得到了一个错误。

无法读取未定义的属性“t”

也许我需要定义 t ?或包括它? 我正在使用 Drupal 8

文档:https://www.drupal.org/docs/7/api/localization-api/translating-strings-in-javascript

;(function ($, Drupal) {
    $(function () {

    function addLeadForm(){
        var title = Drupal.t("Fill to get demoversion");
        var firstName = Drupal.t("firstname");
        var lastName = Drupal.t("lastname");
        var email = Drupal.t("email");

   });
})(jQuery);

谢谢

【问题讨论】:

    标签: jquery drupal translation drupal-8


    【解决方案1】:

    我猜你忘了在*.libraries.yml 中包含正确的依赖项。

    这里有一个来自menu_ui.js的例子:

    (function ($, Drupal) {
      Drupal.behaviors.menuUiDetailsSummaries = {
        attach: function attach(context) {
          $(context).find('.menu-link-form').drupalSetSummary(function (context) {
            var $context = $(context);
            if ($context.find('.js-form-item-menu-enabled input').is(':checked')) {
              return Drupal.checkPlain($context.find('.js-form-item-menu-title input').val());
            }
    
            return Drupal.t('Not in menu');
          });
        }
      };
    

    以及对应的menu_ui.libraries.yml

    drupal.menu_ui:
      version: VERSION
      js:
        menu_ui.js: {}
      dependencies:
        - core/jquery
        - core/drupal
        - core/drupal.form
    

    【讨论】:

    • 好的,所以我只需要添加 Drupal 作为依赖项?现在我只有:依赖项:-core/modernizr-core/jquery
    • @Thomashdk – 是的! :)
    • @Thomashdk – core/drupal
    • 嗯,这没有帮助?我添加了 -core/drupal 作为依赖项
    • @Thomashdk – 至少刷新两次缓存:D