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 @@ @@ -16,6 +16,7 @@
<status-message ng-controller="StatusmessageController"></status-message>
<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="{{_('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="{{_('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>
@ -35,9 +36,13 @@ @@ -35,9 +36,13 @@
<div id="screenshare" class="ng-cloak mainview" ng-show="mainview=='screenshare'">
<screenshare/>
</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="chat"><chat/></div>
<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>
<%template "extra-body" .%>

16
src/i18n/messages-de.po

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

14
src/i18n/messages.pot

@ -9,7 +9,7 @@ msgid "" @@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Spreed Speak Freely 1.0\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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -21,6 +21,9 @@ msgstr "" @@ -21,6 +21,9 @@ msgstr ""
msgid "Share your screen"
msgstr ""
msgid "Chat"
msgstr ""
msgid "Mute microphone"
msgstr ""
@ -48,15 +51,6 @@ msgstr "" @@ -48,15 +51,6 @@ msgstr ""
msgid "Peer to peer"
msgstr ""
msgid "Maximize"
msgstr ""
msgid "Normal size"
msgstr ""
msgid "Minimize"
msgstr ""
msgid "Close chat"
msgstr ""

2
src/styles/components/_audiovideo.scss

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

2
src/styles/components/_bar.scss

@ -21,7 +21,7 @@ @@ -21,7 +21,7 @@
#bar {
-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);
position: fixed;
position: absolute;
top: 0;
left: 0;
right: 0;

12
src/styles/components/_buddylist.scss

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

102
src/styles/components/_chat.scss

@ -18,94 +18,55 @@ @@ -18,94 +18,55 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
$chatwidth: 260px;
$chatheight: 312px;
#chat {
position: fixed;
left:8px;
position: absolute;
bottom:0px;
right:8px;
height:$chatheight;
max-height:100%;
right:260px;
width:260px;
top:0px;
pointer-events: none;
z-index:45;
overflow:hidden;
}
.chatpane {
height:100%;
position:relative;
overflow-x:auto;
overflow-y:hidden;
position:absolute;
top:0px;
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 {
position:absolute;
pointer-events: auto;
top:0px;
bottom:0px;
right:0px;
left:0px;
bottom:( -1* $chatheight - 30);
width:$chatwidth;
background: #e7e7e7;;
min-width:$chatwidth;
background: #e7e7e7;
border-right:1px solid $bordercolor;
overflow:hidden;
max-width:100%;
height:100%;
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 {
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 {
background: $componentbg;
padding:6px 4px 4px 8px;
border: 1px solid $bordercolor;
border-top: 1px solid $bordercolor;
border-bottom: 1px solid $bordercolor;
font-size:0.8em;
font-weight:bold;
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 {
position:absolute;
@ -131,7 +92,7 @@ left:0px; @@ -131,7 +92,7 @@ left:0px;
right:0px;
top:34px;
bottom:74px;
max-width:600px;
//max-width:600px;
margin:0 auto;
}
.chat .output {
@ -343,7 +304,7 @@ left:0px; @@ -343,7 +304,7 @@ left:0px;
bottom:0px;
right:0px;
height:60px;
max-width:500px;
//max-width:500px;
margin:0 auto;
}
.chat .inputbox .btn {
@ -363,25 +324,24 @@ height:54px; @@ -363,25 +324,24 @@ height:54px;
max-height:54px; /* FF hack */
margin-bottom: 4px;
}
@for $i from 0 through 10 {
.chat.room-#{$i} {
left: ($chatwidth+8)*$i;
}
}
@keyframes newmessage {
0% {background-color: rgba(132,184,25,1.0);}
50% {background-color: $componentbg;}
100% {background-color: rgba(132,184,25,1.0);}
}
@-webkit-keyframes newmessage {
0% {background-color: rgba(132,184,25,1.0);}
50% {background-color: $componentbg;}
100% {background-color: rgba(132,184,25,1.0);}
}
.chat.newmessage .chatheader {
animation: newmessage 1s ease -0.3s infinite;
-webkit-animation: newmessage 1s ease -0.3s infinite;
}
.chat.newmessage .chatheader span:after {
content: "***";
position:absolute;

25
src/styles/components/_rightslide.scss

@ -0,0 +1,25 @@ @@ -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 @@ @@ -21,12 +21,15 @@
#settings {
position:fixed;
top:44px;
right:-460px;
right:-520px;
bottom:0px;
width:440px;
width:520px;
z-index: 50;
-webkit-transition-property: right;
-webkit-transition-duration: 0.2s;
-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;
padding-right: 20px;
border-top:1px solid $bordercolor;
}

13
src/styles/components/_usability.scss

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

1
src/styles/main.scss

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

8
static/js/controllers/mediastreamcontroller.js

@ -138,7 +138,9 @@ define(['underscore', 'bigscreen', 'moment', 'webrtc.adapter'], function(_, BigS @@ -138,7 +138,9 @@ define(['underscore', 'bigscreen', 'moment', 'webrtc.adapter'], function(_, BigS
$scope.incoming = null;
$scope.microphoneMute = false;
$scope.cameraMute = false;
$scope.chatEnabled = false;
$scope.autoAccept = null;
$scope.showBuddylist = true;
$scope.master = {
displayName: null,
buddyPicture: null,
@ -526,6 +528,11 @@ define(['underscore', 'bigscreen', 'moment', 'webrtc.adapter'], function(_, BigS @@ -526,6 +528,11 @@ define(['underscore', 'bigscreen', 'moment', 'webrtc.adapter'], function(_, BigS
} else {
$scope.setStatus('connected');
}
$timeout(function() {
if ($scope.peer) {
$scope.showBuddylist = false;
}
}, 1000);
});
@ -549,6 +556,7 @@ define(['underscore', 'bigscreen', 'moment', 'webrtc.adapter'], function(_, BigS @@ -549,6 +556,7 @@ define(['underscore', 'bigscreen', 'moment', 'webrtc.adapter'], function(_, BigS
if (mediaStream.connector.connected) {
$scope.setStatus("waiting");
}
$scope.showBuddylist = true;
});
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'], @@ -105,6 +105,7 @@ define(['underscore', 'text!partials/chat.html', 'text!partials/chatroom.html'],
var chat = $compile(templateChatroom);
return function(scope, iElement, iAttrs, controller) {
scope.currentRoom = null;
scope.showRoom = function(id, settings, options) {
var options = $.extend({}, options);
var subscope = controller.rooms[id];
@ -122,8 +123,6 @@ define(['underscore', 'text!partials/chat.html', 'text!partials/chatroom.html'], @@ -122,8 +123,6 @@ define(['underscore', 'text!partials/chat.html', 'text!partials/chatroom.html'],
subscope.newmessage = false;
subscope.enabled = true;
subscope.peerIsTyping = "no";
subscope.minimized = id === group_chat_id ? true : false;
subscope.maximized = false;
subscope.firstmessage = true;
subscope.p2pstate = false;
if (!subscope.isgroupchat) {
@ -139,23 +138,6 @@ define(['underscore', 'text!partials/chat.html', 'text!partials/chatroom.html'], @@ -139,23 +138,6 @@ define(['underscore', 'text!partials/chat.html', 'text!partials/chatroom.html'],
}
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() {
if (subscope.newmessage) {
subscope.newmessage = false;
@ -276,18 +258,23 @@ define(['underscore', 'text!partials/chat.html', 'text!partials/chatroom.html'], @@ -276,18 +258,23 @@ define(['underscore', 'text!partials/chat.html', 'text!partials/chatroom.html'],
controller.visibleRooms.push(id);
subscope.index = index;
subscope.visible = true;
if (options.minimized) {
subscope.minimized = true;
} else {
subscope.minimized = false;
}
}
}
if (options.autofocus && subscope.visible) {
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);
return subscope;
};
@ -301,7 +288,6 @@ define(['underscore', 'text!partials/chat.html', 'text!partials/chatroom.html'], @@ -301,7 +288,6 @@ define(['underscore', 'text!partials/chat.html', 'text!partials/chatroom.html'],
var index = subscope.index;
controller.visibleRooms.splice(index, 1);
subscope.visible=false;
subscope.maximized=false;
subscope.firstmessage=true;
// Refresh index of the rest of the rooms.
_.each(controller.visibleRooms, function(id, idx) {
@ -309,6 +295,12 @@ define(['underscore', 'text!partials/chat.html', 'text!partials/chatroom.html'], @@ -309,6 +295,12 @@ define(['underscore', 'text!partials/chat.html', 'text!partials/chatroom.html'],
//console.log("updated idx", idx, s.index);
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.hideRoom(id);
@ -324,7 +316,7 @@ define(['underscore', 'text!partials/chat.html', 'text!partials/chatroom.html'], @@ -324,7 +316,7 @@ define(['underscore', 'text!partials/chat.html', 'text!partials/chatroom.html'],
scope.$on("room", function(event, room) {
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 {
scope.hideRoom(group_chat_id);
}

2
static/partials/chat.html

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

4
static/partials/chatroom.html

@ -1,5 +1,5 @@ @@ -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 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 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 title="{{_('Close chat')}}" ng-show="id" ng-click="hide()" class="fa fa-times"></i></div></div>
<div class="outputbox">
<div class="output nicescroll"></div>
</div>

2
static/translation/messages-de.json

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