1

在我们的 Web 应用程序项目中实现本地化需求时,L20n 非常有用,并且在 Chrome 和 Firefox 中运行良好,几乎可以在 Internet Explorer 11 中实现。

我们在翻译字符串中使用 HTML(受支持),它们的格式如下例所示:

“关于<strong>一个</strong>

它在 Chrome 和 Firefox 中运行良好:

Chrome 中的翻译结果

不幸的是,当我切换到 Internet Explorer 11 时,在页面的同一部分看到了这个可爱的景象:

IE 11 中的翻译结果

我们没有做任何奇怪或超级特别的事情,这是非常基本的实现。

问题是 - 有没有人在使用 l20n 时遇到过这个问题,如果有的话 - 有什么办法可以让 Internet Explorer 在翻译字符串中呈现标签?

4

2 回答 2

2

在@Sampson 的帮助下(干杯!)并指出 a)这是 IE11/Edge 模式而不是 Edge 的问题 b)IE11 不支持 HTML5 元素之一,例如模板,我在大约之前挖了一点宣布彻底失败并浏览 l20n github 页面:

l20n 兼容性

  • 使用 babel polyfill
  • 使用修补的 webcomponents HTMLTemplateElement polyfill(页面上提供的链接

我添加了 babel 并修改了 polyfill js 文件,在快速部署和紧张刷新之后,似乎解决方案有效。在我们说话时对其进行测试,这样它就不会导致应用程序出现问题,但到目前为止一切看起来都很好。

我知道这是一种解决方法,但我们的 IE 流量足够小,但我无法放弃这些想要使用我目前在爱尔兰工作的用户,巧合的是最终会使用 IE11。

于 2016-08-23T10:33:50.960 回答
1

由于 Internet Explorer 11 中不支持该<template>元素,因此以下操作失败:

// https://github.com/l20n/builds/blob/0d58a55afa6ae5aa868b8002fae5ee0e2124e35d/l20n.js#L94
var templateSupported = 'content' in document.createElement('template');

值得注意的是,l20n.js 团队并不认为支持 IE

于 2016-08-22T17:28:23.967 回答