mirror of
https://github.com/SchildiChat/element-web.git
synced 2024-10-01 01:26:12 -04:00
50c4e44a14
Google Translate manipulates the DOM which is fundamentally incomaptible with React and causes exceptions to be thrown when React tries to manipulate the DOM based on its VDOM and the DOM methods throw exceptions because the DOM structure is not what React thinks it is. Riot has an i18n system, although it doesn't cover all strings and all languages. Fixes https://github.com/vector-im/riot-web/issues/13557
92 lines
5.8 KiB
HTML
92 lines
5.8 KiB
HTML
<!doctype html>
|
|
<html lang="en" style="height: 100%;">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Riot</title>
|
|
<link rel="apple-touch-icon" sizes="57x57" href="<%= require('../../res/vector-icons/apple-touch-icon-57x57.png') %>">
|
|
<link rel="apple-touch-icon" sizes="60x60" href="<%= require('../../res/vector-icons/apple-touch-icon-60x60.png') %>">
|
|
<link rel="apple-touch-icon" sizes="72x72" href="<%= require('../../res/vector-icons/apple-touch-icon-72x72.png') %>">
|
|
<link rel="apple-touch-icon" sizes="76x76" href="<%= require('../../res/vector-icons/apple-touch-icon-76x76.png') %>">
|
|
<link rel="apple-touch-icon" sizes="114x114" href="<%= require('../../res/vector-icons/apple-touch-icon-114x114.png') %>">
|
|
<link rel="apple-touch-icon" sizes="120x120" href="<%= require('../../res/vector-icons/apple-touch-icon-120x120.png') %>">
|
|
<link rel="apple-touch-icon" sizes="144x144" href="<%= require('../../res/vector-icons/apple-touch-icon-144x144.png') %>">
|
|
<link rel="apple-touch-icon" sizes="152x152" href="<%= require('../../res/vector-icons/apple-touch-icon-152x152.png') %>">
|
|
<link rel="apple-touch-icon" sizes="180x180" href="<%= require('../../res/vector-icons/apple-touch-icon-180x180.png') %>">
|
|
<link rel="manifest" href="manifest.json">
|
|
<meta name="referrer" content="no-referrer">
|
|
<link rel="shortcut icon" href="<%= require('../../res/vector-icons/favicon.ico') %>">
|
|
<meta name="apple-mobile-web-app-title" content="Riot">
|
|
<meta name="application-name" content="Riot">
|
|
<meta name="msapplication-TileColor" content="#da532c">
|
|
<meta name="msapplication-TileImage" content="<%= require('../../res/vector-icons/mstile-144x144.png') %>">
|
|
<meta name="msapplication-config" content="<%= require('../../res/vector-icons/browserconfig.xml') %>">
|
|
<meta name="theme-color" content="#ffffff">
|
|
<meta property="og:image" content="<%= htmlWebpackPlugin.options.vars.og_image_url %>" />
|
|
<meta http-equiv="Content-Security-Policy" content="
|
|
default-src 'none';
|
|
style-src 'self' 'unsafe-inline';
|
|
script-src 'self' 'unsafe-eval' https://www.recaptcha.net https://www.gstatic.com;
|
|
img-src * blob: data:;
|
|
connect-src *;
|
|
font-src 'self' data:;
|
|
media-src * blob: data:;
|
|
child-src * blob: data:;
|
|
worker-src 'self';
|
|
frame-src * blob: data:;
|
|
form-action 'self';
|
|
object-src 'self';
|
|
manifest-src 'self';
|
|
">
|
|
<% for (var i=0; i < htmlWebpackPlugin.files.css.length; i++) {
|
|
var file = htmlWebpackPlugin.files.css[i];
|
|
var match = file.match(/^bundles\/.*?\/theme-(.*)\.css$/);
|
|
if (match) {
|
|
var title = match[1].charAt(0).toUpperCase() + match[1].slice(1);
|
|
%>
|
|
<link rel="stylesheet" disabled="disabled" title="<%= title %>" href="<%= file %>">
|
|
<% } else { %>
|
|
<link rel="stylesheet" href="<%= file %>">
|
|
<% }
|
|
} %>
|
|
</head>
|
|
<body style="height: 100%; margin: 0;" data-vector-indexeddb-worker-script="<%= htmlWebpackPlugin.files.chunks['indexeddb-worker'].entry %>">
|
|
<noscript>Sorry, Riot requires JavaScript to be enabled.</noscript> <!-- TODO: Translate this? -->
|
|
<section id="matrixchat" style="height: 100%; overflow: auto;" class="notranslate"></section>
|
|
<script src="<%= htmlWebpackPlugin.files.chunks['bundle'].entry %>"></script>
|
|
|
|
<!-- Legacy supporting Prefetch images -->
|
|
<img src="<%= require('matrix-react-sdk/res/img/warning.svg') %>" width="24" height="23" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
|
<img src="<%= require('matrix-react-sdk/res/img/e2e/warning.svg') %>" width="24" height="23" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
|
<img src="<%= require('matrix-react-sdk/res/img/feather-customised/warning-triangle.svg') %>" width="24" height="23" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
|
<img src="<%= require('matrix-react-sdk/res/img/format/bold.svg') %>" width="25" height="22" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
|
<img src="<%= require('matrix-react-sdk/res/img/format/code.svg') %>" width="25" height="22" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
|
<img src="<%= require('matrix-react-sdk/res/img/format/italics.svg') %>" width="25" height="22" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
|
<img src="<%= require('matrix-react-sdk/res/img/format/quote.svg') %>" width="25" height="22" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
|
<img src="<%= require('matrix-react-sdk/res/img/format/strikethrough.svg') %>" width="25" height="22" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
|
|
|
<audio id="messageAudio">
|
|
<source src="media/message.ogg" type="audio/ogg" />
|
|
<source src="media/message.mp3" type="audio/mpeg" />
|
|
</audio>
|
|
<audio id="ringAudio" loop>
|
|
<source src="media/ring.ogg" type="audio/ogg" />
|
|
<source src="media/ring.mp3" type="audio/mpeg" />
|
|
</audio>
|
|
<audio id="ringbackAudio" loop>
|
|
<source src="media/ringback.ogg" type="audio/ogg" />
|
|
<source src="media/ringback.mp3" type="audio/mpeg" />
|
|
</audio>
|
|
<audio id="callendAudio">
|
|
<source src="media/callend.ogg" type="audio/ogg" />
|
|
<source src="media/callend.mp3" type="audio/mpeg" />
|
|
</audio>
|
|
<audio id="busyAudio">
|
|
<source src="media/busy.ogg" type="audio/ogg" />
|
|
<source src="media/busy.mp3" type="audio/mpeg" />
|
|
</audio>
|
|
<audio id="remoteAudio"></audio>
|
|
<!-- let CSS themes pass constants to the app -->
|
|
<div id="mx_theme_accentColor"></div><div id="mx_theme_secondaryAccentColor"></div><div id="mx_theme_tertiaryAccentColor"></div>
|
|
</body>
|
|
</html>
|