MediaElement.js i18n - 如何实现?

时间:2013-10-17 14:55:18

标签: javascript internationalization mediaelement.js

所以你可以在字幕和副标题中支持多种语言,我可以看到有i18n的代码。 但是,我在互联网上搜寻试图找到如何实现这个并且找不到任何东西的教程。

在mediaelementjs.com网页或github wiki上没有任何内容,这一点并不明显。

此外,只提供德语和中文。 我希望能够完全覆盖播放器初始化时所需的所有字符串。

我习惯在MVC中实现i18n,& jquery ui datepickers等,但这让我感到困惑。

提前致谢

3 个答案:

答案 0 :(得分:0)

今天我也花了几个小时。

加载javascript时会加载'mediaelementplayer.js'文件中的标题和副标题。 (当文件准备就绪或初始化新玩家时,并非(如我所料)

你必须在:

之间做出选择
  • 手动将翻译设置为'window.mejs.MepDefaults'对象

示例:

mejs.MepDefaults.fullscreenText = 'Vollbild'
  • 或在mediaelementplayer.js的顶部放置一行(或者在加载mediaElement.js和mediaelementplayer.js之间的任何位置,例如async。loading)

示例:

// Set mejs translation to German
mejs.i18n.getLanguage = function() { return 'de' };

答案 1 :(得分:0)

与Matt Scott关于上述答案的回复类似,当我从mediaElements扩展时,我不得不覆盖初始文本值:

    $.extend(mejs.MepDefaults, {
        playText: 'Afspelen',
        pauseText: 'Pauzeren',
        muteText: 'Geluid uit',
        unmuteText: 'Geluid aan'
    });

可以在此处找到更多配置元素:https://github.com/mediaelement/mediaelement/blob/master/docs/api.md#mediaelementplayer

答案 2 :(得分:0)

我知道这不是您问题的答案,对此感到抱歉,但这与您的主题有关。 如果您正确设置了mejs,那么在浏览器控制台中运行命令mejs.i18n将会显示您选择的语言以及您先前导入为js文件的所有语言的列表。如果看不到它们,则说明设置不正确,尤其要确保在导入所有语言之前先导入mediaelement-and-player.js。然后,您可以像这样设置播放器:

(function() {
  mejs.i18n.language("fa"); //select your prefered language here
  var mediaElements = document.querySelectorAll('video, audio');
  for (var i = 0, total = mediaElements.length; i < total; i++) {
    var features = ['prevtrack', 'playpause', 'nexttrack', 'current', 'progress', 'duration', 'volume', 'shuffle', 'loop', 'skipback', 'jumpforward', 'speed', 'contextmenu', 'playlist', 'fullscreen'];
    new MediaElementPlayer(mediaElements[i], {
      autoRewind: false,
      features: features,
      startLanguage: 'fa' // this is not actually needed, I just wanted to show you that it is also possible to set this parameter, you can set it to mejs.i18n.lang too
    });
  }
})(); //this syntax is equivalent to document ready