Browse Source

Rebuilt translations.

pull/12/head
Simon Eisenmann 12 years ago
parent
commit
3b56141bf4
  1. 9
      html/main.html
  2. 16
      src/i18n/messages-de.po
  3. 14
      src/i18n/messages.pot
  4. 2
      src/styles/components/_audiovideo.scss
  5. 2
      src/styles/components/_bar.scss
  6. 12
      src/styles/components/_buddylist.scss
  7. 102
      src/styles/components/_chat.scss
  8. 25
      src/styles/components/_rightslide.scss
  9. 11
      src/styles/components/_settings.scss
  10. 13
      src/styles/components/_usability.scss
  11. 1
      src/styles/main.scss
  12. 8
      static/js/controllers/mediastreamcontroller.js
  13. 46
      static/js/directives/chat.js
  14. 2
      static/partials/chat.html
  15. 4
      static/partials/chatroom.html
  16. 2
      static/translation/messages-de.json

9
html/main.html

@ -16,6 +16,7 @@
<status-message ng-controller="StatusmessageController"></status-message> <status-message ng-controller="StatusmessageController"></status-message>
<div class="ng-cloak right"> <div class="ng-cloak right">
<button title="{{_('Share your screen')}}" class="btn aenablebtn" ng-show="master.settings.screensharingMedia && (status=='connected' || status=='conference' || enabledScreenshare)" ng-model="enableScreenshare" btn-checkbox><i class="fa fa-desktop"></i></button> <button title="{{_('Share your screen')}}" class="btn aenablebtn" ng-show="master.settings.screensharingMedia && (status=='connected' || status=='conference' || enabledScreenshare)" ng-model="enableScreenshare" btn-checkbox><i class="fa fa-desktop"></i></button>
<button title="{{_('Chat')}}" class="btn" ng-model="chatEnabled" btn-checkbox btn-checkbox-true="true" btn-checkbox-false="false"><i class="fa fa-comments-o"></i></button>
<button title="{{_('Mute microphone')}}" class="btn amutebtn" ng-model="microphoneMute" btn-checkbox btn-checkbox-true="true" btn-checkbox-false="false"><i class="fa fa-microphone-slash"></i></button> <button title="{{_('Mute microphone')}}" class="btn amutebtn" ng-model="microphoneMute" btn-checkbox btn-checkbox-true="true" btn-checkbox-false="false"><i class="fa fa-microphone-slash"></i></button>
<button title="{{_('Turn camera off')}}" class="btn amutebtn" ng-model="cameraMute" btn-checkbox btn-checkbox-true="true" btn-checkbox-false="false"><i class="fa fa-eye-slash"></i></button> <button title="{{_('Turn camera off')}}" class="btn amutebtn" ng-model="cameraMute" btn-checkbox btn-checkbox-true="true" btn-checkbox-false="false"><i class="fa fa-eye-slash"></i></button>
<button title="{{_('Settings')}}" class="btn" ng-model="showSettings" btn-checkbox btn-checkbox-true="1" btn-checkbox-false="0"><i class="fa fa-cog"></i></button> <button title="{{_('Settings')}}" class="btn" ng-model="showSettings" btn-checkbox btn-checkbox-true="1" btn-checkbox-false="0"><i class="fa fa-cog"></i></button>
@ -35,9 +36,13 @@
<div id="screenshare" class="ng-cloak mainview" ng-show="mainview=='screenshare'"> <div id="screenshare" class="ng-cloak mainview" ng-show="mainview=='screenshare'">
<screenshare/> <screenshare/>
</div> </div>
<div class="ng-cloak" id="buddylist"><buddy-list/></div> <div class="ng-cloak nicescroll" id="rightslide" ng-class="{slideright: !showBuddylist}">
<div class="rightslidepane">
<div id="buddylist"><buddy-list/></div>
<div id="chat"><chat/></div>
</div>
</div>
<div class="ng-cloak" id="settings" ng-class="{show: showSettings}"><settings/></div> <div class="ng-cloak" id="settings" ng-class="{show: showSettings}"><settings/></div>
<div class="ng-cloak" id="chat"><chat/></div>
<script data-main="<%.Cfg.S%>/js/<%.App%>" data-plugin="<%.Cfg.Plugin%>" src="<%.Cfg.S%>/js/libs/require/require.js"></script> <script data-main="<%.Cfg.S%>/js/<%.App%>" data-plugin="<%.Cfg.Plugin%>" src="<%.Cfg.S%>/js/libs/require/require.js"></script>
<div class="ng-cloak" id="details">{{id}}</div> <div class="ng-cloak" id="details">{{id}}</div>
<%template "extra-body" .%> <%template "extra-body" .%>

16
src/i18n/messages-de.po

@ -8,8 +8,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Spreed Speak Freely\n" "Project-Id-Version: Spreed Speak Freely\n"
"Report-Msgid-Bugs-To: simon@struktur.de\n" "Report-Msgid-Bugs-To: simon@struktur.de\n"
"POT-Creation-Date: 2014-03-03 19:16+0100\n" "POT-Creation-Date: 2014-03-14 18:56+0100\n"
"PO-Revision-Date: 2014-03-03 19:18+0100\n" "PO-Revision-Date: 2014-03-14 18:57+0100\n"
"Last-Translator: Simon Eisenmann <simon@struktur.de>\n" "Last-Translator: Simon Eisenmann <simon@struktur.de>\n"
"Language-Team: de <LL@li.org>\n" "Language-Team: de <LL@li.org>\n"
"Plural-Forms: nplurals=1; plural=0\n" "Plural-Forms: nplurals=1; plural=0\n"
@ -21,6 +21,9 @@ msgstr ""
msgid "Share your screen" msgid "Share your screen"
msgstr "Bildschirm freigeben" msgstr "Bildschirm freigeben"
msgid "Chat"
msgstr "Chat"
msgid "Mute microphone" msgid "Mute microphone"
msgstr "Mikrofon abschalten" msgstr "Mikrofon abschalten"
@ -48,15 +51,6 @@ msgstr "Niemand sonst online"
msgid "Peer to peer" msgid "Peer to peer"
msgstr "Peer-to-peer" msgstr "Peer-to-peer"
msgid "Maximize"
msgstr "Maximieren"
msgid "Normal size"
msgstr "Normale Größe"
msgid "Minimize"
msgstr "Minimieren"
msgid "Close chat" msgid "Close chat"
msgstr "Chat schließen" msgstr "Chat schließen"

14
src/i18n/messages.pot

@ -9,7 +9,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Spreed Speak Freely 1.0\n" "Project-Id-Version: Spreed Speak Freely 1.0\n"
"Report-Msgid-Bugs-To: simon@struktur.de\n" "Report-Msgid-Bugs-To: simon@struktur.de\n"
"POT-Creation-Date: 2014-03-03 19:16+0100\n" "POT-Creation-Date: 2014-03-14 18:56+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -21,6 +21,9 @@ msgstr ""
msgid "Share your screen" msgid "Share your screen"
msgstr "" msgstr ""
msgid "Chat"
msgstr ""
msgid "Mute microphone" msgid "Mute microphone"
msgstr "" msgstr ""
@ -48,15 +51,6 @@ msgstr ""
msgid "Peer to peer" msgid "Peer to peer"
msgstr "" msgstr ""
msgid "Maximize"
msgstr ""
msgid "Normal size"
msgstr ""
msgid "Minimize"
msgstr ""
msgid "Close chat" msgid "Close chat"
msgstr "" msgstr ""

2
src/styles/components/_audiovideo.scss

@ -23,7 +23,7 @@ position:absolute;
left:0px; left:0px;
top:44px; top:44px;
bottom:0px; bottom:0px;
right:260px; right:0px;
boder-top:1px solid $bordercolor; boder-top:1px solid $bordercolor;
} }
#audiovideo.fullscreen { #audiovideo.fullscreen {

2
src/styles/components/_bar.scss

@ -21,7 +21,7 @@
#bar { #bar {
-webkit-box-shadow: 0px 2px 10px 0px rgba(0, 0, 0, 0.2); -webkit-box-shadow: 0px 2px 10px 0px rgba(0, 0, 0, 0.2);
box-shadow: 0px 2px 10px 0px rgba(0, 0, 0, 0.2); box-shadow: 0px 2px 10px 0px rgba(0, 0, 0, 0.2);
position: fixed; position: absolute;
top: 0; top: 0;
left: 0; left: 0;
right: 0; right: 0;

12
src/styles/components/_buddylist.scss

@ -19,23 +19,22 @@
* *
*/ */
#buddylist { #buddylist {
position: fixed; position: absolute;
top: 44px; top: 0px;
right: 0px; right: 0px;
bottom: 0px; bottom: 0px;
width:260px; width:285px;
z-index:5;
pointer-events:none;
} }
.buddylist { .buddylist {
position:absolute; position:absolute;
left:0px; left:25px;
right:0px; right:0px;
top:0px; top:0px;
bottom:0px; bottom:0px;
overflow-x: hidden; overflow-x: hidden;
overflow-y: auto; overflow-y: auto;
border-top: 1px solid $bordercolor; border-top: 1px solid $bordercolor;
background: $componentbg;
} }
.buddylist .buddycontainer { .buddylist .buddycontainer {
-webkit-user-select: none; -webkit-user-select: none;
@ -44,7 +43,6 @@ pointer-events:auto;
} }
.buddylist .buddylistloading, .buddylist .buddylistempty { .buddylist .buddylistloading, .buddylist .buddylistempty {
padding:.4em; padding:.4em;
background: $sidepanebg;
font-size:0.8em; font-size:0.8em;
text-align:center; text-align:center;
display:none; display:none;

102
src/styles/components/_chat.scss

@ -18,94 +18,55 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
*/ */
$chatwidth: 260px;
$chatheight: 312px;
#chat { #chat {
position: fixed; position: absolute;
left:8px;
bottom:0px; bottom:0px;
right:8px; right:260px;
height:$chatheight; width:260px;
max-height:100%; top:0px;
pointer-events: none; pointer-events: none;
z-index:45; z-index:45;
overflow:hidden;
} }
.chatpane { .chatpane {
height:100%; height:100%;
position:relative; position:absolute;
overflow-x:auto; top:0px;
overflow-y:hidden; left:0px;
bottom:0px;
width:260px;
-webkit-transition: left 200ms ease-in-out;
-moz-transition: left 200ms ease-in-out;
-ms-transition: left 200ms ease-in-out;
-o-transition: left 200ms ease-in-out;
transition: left 200ms ease-in-out;
}
.chatpane.slideright {
left:260px;
} }
.chat { .chat {
position:absolute; position:absolute;
pointer-events: auto; pointer-events: auto;
top:0px;
bottom:0px;
right:0px;
left:0px; left:0px;
bottom:( -1* $chatheight - 30); background: #e7e7e7;
width:$chatwidth; border-right:1px solid $bordercolor;
background: #e7e7e7;;
min-width:$chatwidth;
overflow:hidden; overflow:hidden;
max-width:100%;
height:100%;
display:none; display:none;
-webkit-border-top-left-radius: 4px;
-webkit-border-top-right-radius: 4px;
-moz-border-radius-topleft: 4px;
-moz-border-radius-topright: 4px;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
} }
.chat.visible { .chat.visible {
display:block; display:block;
bottom:0px;
} }
.chat.visible.minimized {
background:transparent;
border:none;
pointer-events:none;
.chatheader {
position:absolute;
bottom:0px;
left:0px;
right:0px;
pointer-events:auto;
}
.outputbox, .typinghint, .inputbox {
display:none;
}
}
.chat.visible.maximized {
bottom:0px;
top:0px;
left:0px;
right:0px;
position:fixed;
width:100%;
z-index:20;
background-image: url("../img/bg-tiles.png");
background-repeat: repeat;
@include hidpi {
background-image: url("../img/bg-tiles_x2.png");
background-size: 198px 200px;
}
}
.chat.visible.maximized .output {
margin:4px;
}
.chat .chatheader { .chat .chatheader {
background: $componentbg; background: $componentbg;
padding:6px 4px 4px 8px; padding:6px 4px 4px 8px;
border: 1px solid $bordercolor; border-top: 1px solid $bordercolor;
border-bottom: 1px solid $bordercolor;
font-size:0.8em; font-size:0.8em;
font-weight:bold; font-weight:bold;
height:30px; height:30px;
-webkit-border-top-left-radius: 4px;
-webkit-border-top-right-radius: 4px;
-moz-border-radius-topleft: 4px;
-moz-border-radius-topright: 4px;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
} }
.chat .chatheader .ctrl { .chat .chatheader .ctrl {
position:absolute; position:absolute;
@ -131,7 +92,7 @@ left:0px;
right:0px; right:0px;
top:34px; top:34px;
bottom:74px; bottom:74px;
max-width:600px; //max-width:600px;
margin:0 auto; margin:0 auto;
} }
.chat .output { .chat .output {
@ -343,7 +304,7 @@ left:0px;
bottom:0px; bottom:0px;
right:0px; right:0px;
height:60px; height:60px;
max-width:500px; //max-width:500px;
margin:0 auto; margin:0 auto;
} }
.chat .inputbox .btn { .chat .inputbox .btn {
@ -363,25 +324,24 @@ height:54px;
max-height:54px; /* FF hack */ max-height:54px; /* FF hack */
margin-bottom: 4px; margin-bottom: 4px;
} }
@for $i from 0 through 10 {
.chat.room-#{$i} {
left: ($chatwidth+8)*$i;
}
}
@keyframes newmessage { @keyframes newmessage {
0% {background-color: rgba(132,184,25,1.0);} 0% {background-color: rgba(132,184,25,1.0);}
50% {background-color: $componentbg;} 50% {background-color: $componentbg;}
100% {background-color: rgba(132,184,25,1.0);} 100% {background-color: rgba(132,184,25,1.0);}
} }
@-webkit-keyframes newmessage { @-webkit-keyframes newmessage {
0% {background-color: rgba(132,184,25,1.0);} 0% {background-color: rgba(132,184,25,1.0);}
50% {background-color: $componentbg;} 50% {background-color: $componentbg;}
100% {background-color: rgba(132,184,25,1.0);} 100% {background-color: rgba(132,184,25,1.0);}
} }
.chat.newmessage .chatheader { .chat.newmessage .chatheader {
animation: newmessage 1s ease -0.3s infinite; animation: newmessage 1s ease -0.3s infinite;
-webkit-animation: newmessage 1s ease -0.3s infinite; -webkit-animation: newmessage 1s ease -0.3s infinite;
} }
.chat.newmessage .chatheader span:after { .chat.newmessage .chatheader span:after {
content: "***"; content: "***";
position:absolute; position:absolute;

25
src/styles/components/_rightslide.scss

@ -0,0 +1,25 @@
#rightslide {
position: absolute;
top: 44px;
right: 0px;
bottom: 0px;
left: 0px;
z-index:5;
-webkit-transition: right 200ms ease-in-out;
-moz-transition: right 200ms ease-in-out;
-ms-transition: right 200ms ease-in-out;
-o-transition: right 200ms ease-in-out;
transition: right 200ms ease-in-out;
pointer-events:none;
overflow-x: auto;
overflow-y: hidden;
}
#rightslide.slideright {
right:-260px;
}
#rightslide .rightslidepane {
position:relative;
width:100%;
height:100%;
min-width:520px;
}

11
src/styles/components/_settings.scss

@ -21,12 +21,15 @@
#settings { #settings {
position:fixed; position:fixed;
top:44px; top:44px;
right:-460px; right:-520px;
bottom:0px; bottom:0px;
width:440px; width:520px;
z-index: 50; z-index: 50;
-webkit-transition-property: right; -webkit-transition: right 200ms ease-in-out;
-webkit-transition-duration: 0.2s; -moz-transition: right 200ms ease-in-out;
-ms-transition: right 200ms ease-in-out;
-o-transition: right 200ms ease-in-out;
transition: right 200ms ease-in-out;
padding-right: 20px; padding-right: 20px;
border-top:1px solid $bordercolor; border-top:1px solid $bordercolor;
} }

13
src/styles/components/_usability.scss

@ -22,11 +22,15 @@
position:absolute; position:absolute;
top:120px; top:120px;
bottom:120px; bottom:120px;
left:15%; left:0px;
right:0px; right:0px;
width:400px; width:350px;
font-size:1.1em; font-size:1.1em;
color:#aaa; color:#aaa;
margin: 0 auto;
}
#help > div {
margin-left:-55%;
} }
#help .help-subline { #help .help-subline {
padding:20px 0; padding:20px 0;
@ -34,14 +38,11 @@ color:#666;
} }
@media only screen and (max-width: 800px) and (min-width: 400px) { @media only screen and (max-width: 800px) and (min-width: 400px) {
#help { #help {
width:200px; width:250px;
} }
#help { #help {
font-size:1em; font-size:1em;
} }
#help > div {
margin-left:0px;
}
} }
@media only screen and (max-width: 400px) { @media only screen and (max-width: 400px) {

1
src/styles/main.scss

@ -30,6 +30,7 @@
@import "global/nicescroll"; @import "global/nicescroll";
@import "global/animations"; @import "global/animations";
@import "components/rightslide";
@import "components/bar"; @import "components/bar";
@import "components/webrtc"; @import "components/webrtc";
@import "components/buddylist"; @import "components/buddylist";

8
static/js/controllers/mediastreamcontroller.js

@ -138,7 +138,9 @@ define(['underscore', 'bigscreen', 'moment', 'webrtc.adapter'], function(_, BigS
$scope.incoming = null; $scope.incoming = null;
$scope.microphoneMute = false; $scope.microphoneMute = false;
$scope.cameraMute = false; $scope.cameraMute = false;
$scope.chatEnabled = false;
$scope.autoAccept = null; $scope.autoAccept = null;
$scope.showBuddylist = true;
$scope.master = { $scope.master = {
displayName: null, displayName: null,
buddyPicture: null, buddyPicture: null,
@ -526,6 +528,11 @@ define(['underscore', 'bigscreen', 'moment', 'webrtc.adapter'], function(_, BigS
} else { } else {
$scope.setStatus('connected'); $scope.setStatus('connected');
} }
$timeout(function() {
if ($scope.peer) {
$scope.showBuddylist = false;
}
}, 1000);
}); });
@ -549,6 +556,7 @@ define(['underscore', 'bigscreen', 'moment', 'webrtc.adapter'], function(_, BigS
if (mediaStream.connector.connected) { if (mediaStream.connector.connected) {
$scope.setStatus("waiting"); $scope.setStatus("waiting");
} }
$scope.showBuddylist = true;
}); });
mediaStream.webrtc.e.on("busy", function(event, from) { mediaStream.webrtc.e.on("busy", function(event, from) {

46
static/js/directives/chat.js

@ -105,6 +105,7 @@ define(['underscore', 'text!partials/chat.html', 'text!partials/chatroom.html'],
var chat = $compile(templateChatroom); var chat = $compile(templateChatroom);
return function(scope, iElement, iAttrs, controller) { return function(scope, iElement, iAttrs, controller) {
scope.currentRoom = null;
scope.showRoom = function(id, settings, options) { scope.showRoom = function(id, settings, options) {
var options = $.extend({}, options); var options = $.extend({}, options);
var subscope = controller.rooms[id]; var subscope = controller.rooms[id];
@ -122,8 +123,6 @@ define(['underscore', 'text!partials/chat.html', 'text!partials/chatroom.html'],
subscope.newmessage = false; subscope.newmessage = false;
subscope.enabled = true; subscope.enabled = true;
subscope.peerIsTyping = "no"; subscope.peerIsTyping = "no";
subscope.minimized = id === group_chat_id ? true : false;
subscope.maximized = false;
subscope.firstmessage = true; subscope.firstmessage = true;
subscope.p2pstate = false; subscope.p2pstate = false;
if (!subscope.isgroupchat) { if (!subscope.isgroupchat) {
@ -139,23 +138,6 @@ define(['underscore', 'text!partials/chat.html', 'text!partials/chatroom.html'],
} }
scope.killRoom(id); scope.killRoom(id);
}; };
subscope.toggleMin = function() {
subscope.maximized = false;
if (subscope.minimized) {
subscope.minimized = false;
} else {
subscope.minimized = true;
subscope.firstmessage = true;
}
};
subscope.toggleMax = function() {
subscope.minimized = false;
if (subscope.maximized) {
subscope.maximized = false;
} else {
subscope.maximized = true;
}
};
subscope.seen = function() { subscope.seen = function() {
if (subscope.newmessage) { if (subscope.newmessage) {
subscope.newmessage = false; subscope.newmessage = false;
@ -276,18 +258,23 @@ define(['underscore', 'text!partials/chat.html', 'text!partials/chatroom.html'],
controller.visibleRooms.push(id); controller.visibleRooms.push(id);
subscope.index = index; subscope.index = index;
subscope.visible = true; subscope.visible = true;
if (options.minimized) {
subscope.minimized = true;
} else {
subscope.minimized = false;
}
} }
} }
if (options.autofocus && subscope.visible) { if (options.autofocus && subscope.visible) {
subscope.$broadcast("focus"); subscope.$broadcast("focus");
subscope.minimized = false;
} }
} }
if (scope.currentRoom !== subscope && scope.currentRoom) {
scope.currentRoom.hide();
}
if (options.restore && !options.noenable) {
if (!scope.chatEnabled) {
scope.$parent.chatEnabled = true;
}
}
scope.currentRoom = subscope;
safeApply(subscope); safeApply(subscope);
return subscope; return subscope;
}; };
@ -301,7 +288,6 @@ define(['underscore', 'text!partials/chat.html', 'text!partials/chatroom.html'],
var index = subscope.index; var index = subscope.index;
controller.visibleRooms.splice(index, 1); controller.visibleRooms.splice(index, 1);
subscope.visible=false; subscope.visible=false;
subscope.maximized=false;
subscope.firstmessage=true; subscope.firstmessage=true;
// Refresh index of the rest of the rooms. // Refresh index of the rest of the rooms.
_.each(controller.visibleRooms, function(id, idx) { _.each(controller.visibleRooms, function(id, idx) {
@ -309,6 +295,12 @@ define(['underscore', 'text!partials/chat.html', 'text!partials/chatroom.html'],
//console.log("updated idx", idx, s.index); //console.log("updated idx", idx, s.index);
s.index = idx; s.index = idx;
}); });
if (scope.currentRoom === subscope) {
scope.currentRoom = null;
}
if (!controller.visibleRooms.length) {
scope.showRoom(group_chat_id, {title: translation._("Group chat")}, {restore: true});
}
}; };
scope.killRoom = function(id) { scope.killRoom = function(id) {
scope.hideRoom(id); scope.hideRoom(id);
@ -324,7 +316,7 @@ define(['underscore', 'text!partials/chat.html', 'text!partials/chatroom.html'],
scope.$on("room", function(event, room) { scope.$on("room", function(event, room) {
if (room !== null) { if (room !== null) {
scope.showRoom(group_chat_id, {title: translation._("Group chat")}, {restore: true, minimized: true}); scope.showRoom(group_chat_id, {title: translation._("Group chat")}, {restore: true, noenable: true});
} else { } else {
scope.hideRoom(group_chat_id); scope.hideRoom(group_chat_id);
} }

2
static/partials/chat.html

@ -1 +1 @@
<div class="chatpane nicescroll"></div> <div class="chatpane" ng-class="{slideright: !chatEnabled}"></div>

4
static/partials/chatroom.html

@ -1,5 +1,5 @@
<div ng-controller="ChatroomController" class="chat room-{{index}}" ng-class="{'minimized': minimized, 'maximized': maximized, 'newmessage': newmessage, 'visible': visible, 'chat-p2p': 'p2pstate', 'with_pictures': isgroupchat}"> <div ng-controller="ChatroomController" class="chat room-{{index}}" ng-class="{'newmessage': newmessage, 'visible': visible, 'chat-p2p': 'p2pstate', 'with_pictures': isgroupchat}">
<div class="chatheader"><span ng-show="p2pstate" class="fa fa-exchange" title="{{_('Peer to peer')}}"/><span>{{settings.title}} {{id|displayName}}</span> <div class="ctrl"><i ng-hide="maximized" title="{{_('Maximize')}}" ng-click="toggleMax()" class="fa fa-expand"></i><i title="{{_('Normal size')}}" ng-click="toggleMax()" ng-show="maximized" class="fa fa-compress"></i><i title="{{_('Minimize')}}" ng-hide="minimized" ng-click="toggleMin()" class="fa fa-chevron-down"></i><i title="{{_('Normal size')}}" ng-click="toggleMin()" ng-show="minimized" class="fa fa-chevron-up"></i><i title="{{_('Close chat')}}" ng-show="id" ng-click="hide()" class="fa fa-times"></i></div></div> <div class="chatheader"><span ng-show="p2pstate" class="fa fa-exchange" title="{{_('Peer to peer')}}"/><span>{{settings.title}} {{id|displayName}}</span> <div class="ctrl"><i title="{{_('Close chat')}}" ng-show="id" ng-click="hide()" class="fa fa-times"></i></div></div>
<div class="outputbox"> <div class="outputbox">
<div class="output nicescroll"></div> <div class="output nicescroll"></div>
</div> </div>

2
static/translation/messages-de.json

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save