Updated translations

This commit is contained in:
Emanuel Schütze 2020-05-11 15:33:58 +02:00
parent 3e19840b08
commit 9938a68865
8 changed files with 96 additions and 27 deletions

View File

@ -1,23 +1,20 @@
<button type="button" mat-button (click)="countUsers()" *ngIf="!this.token"> <button type="button" mat-stroked-button (click)="countUsers()" *ngIf="!this.token">
<span>{{ 'Count active users' | translate }}</span> {{ 'Count active users' | translate }}
</button> </button>
<button type="button" mat-button (click)="stopCounting()" *ngIf="this.token"> <button type="button" mat-stroked-button (click)="stopCounting()" *ngIf="this.token">
<span>{{ 'Stop counting' | translate }}</span> {{ 'Stop counting' | translate }}
</button> </button>
<div *ngIf="stats"> <div *ngIf="stats">
<p> <p>
{{ userIds().length }} <span>{{ 'active users' | translate }}</span> ({{ stats.activeUserHandles }} {{ userIds().length }} {{ 'active users' | translate }}
<span>{{ 'connections' | translate }}</span ({{ stats.activeUserHandles }} {{ 'connections' | translate }})
>)
</p> </p>
<h3>{{ 'Groups' | translate }}</h3> {{ 'Groups' | translate }}:
<ul> <ul>
<li *ngFor="let groupId of groupIds()"> <li *ngFor="let groupId of groupIds()">
<strong>{{ stats.groups[groupId].name }}</strong> <strong>{{ stats.groups[groupId].name }}:</strong>
<span> : {{ userInGroupIds(groupId).length }} </span> {{ userInGroupIds(groupId).length }} {{ 'active users' | translate }}
<span>{{ 'active users' | translate }}</span> ({{ stats.groups[groupId].userHandleCount }} {{ 'connections' | translate }})
(<span>{{ stats.groups[groupId].userHandleCount }}</span> <span>{{ 'connections' | translate }}</span
>)
</li> </li>
</ul> </ul>
</div> </div>

View File

@ -35,13 +35,13 @@
</mat-card> </mat-card>
<mat-card class="os-card" *osPerms="'users.can_manage'"> <mat-card class="os-card" *osPerms="'users.can_manage'">
<h3>{{ 'Statistics' | translate }}</h3> <h2>{{ 'Statistics' | translate }}</h2>
<div> <div>
<h4>{{ 'Count active users' | translate }}</h4> <h3>{{ 'Active users' | translate }}</h3>
<os-count-users></os-count-users> <os-count-users></os-count-users>
</div> </div>
<div> <div>
<h4>{{ 'Count active word requests' | translate }}</h4> <h3>{{ 'Requests to speak' | translate }}</h3>
<os-user-statistics></os-user-statistics> <os-user-statistics></os-user-statistics>
</div> </div>
</mat-card> </mat-card>

View File

@ -1,13 +1,13 @@
<button mat-button *ngIf="!openedStatistics" (click)="changeViewOfStatistics()"> <button mat-stroked-button *ngIf="!openedStatistics" (click)="changeViewOfStatistics()">
{{ 'Count active word requests' | translate }} {{ 'Count completed requests to speak' | translate }}
</button> </button>
<button mat-button *ngIf="openedStatistics" (click)="changeViewOfStatistics()"> <button mat-stroked-button *ngIf="openedStatistics" (click)="changeViewOfStatistics()">
{{ 'Stop counting' | translate }} {{ 'Stop counting' | translate }}
</button> </button>
<ng-container *ngIf="openedStatistics"> <ng-container *ngIf="openedStatistics">
<table class="user-statistics-table"> <table class="user-statistics-table">
<tr> <tr>
<td>{{ 'Total number of word requests' | translate }}</td> <td>{{ 'Number of all requests to speak' | translate }}</td>
<td>{{ numberOfWordRequests }}</td> <td>{{ numberOfWordRequests }}</td>
</tr> </tr>
<tr> <tr>
@ -15,7 +15,7 @@
<td>{{ numberOfUniqueSpeakers }}</td> <td>{{ numberOfUniqueSpeakers }}</td>
</tr> </tr>
<tr> <tr>
<td>{{ 'Total duration of word requests' | translate }}</td> <td>{{ 'Duration of all requests to speak' | translate }}</td>
<td>{{ totalDuration }}</td> <td>{{ totalDuration }}</td>
</tr> </tr>
</table> </table>

View File

@ -40,7 +40,7 @@ export class UserStatisticsComponent extends BaseViewComponent {
/** /**
* Returns an observable containing a list. This list contains objects separated by the structure-level of speakers. * Returns an observable containing a list. This list contains objects separated by the structure-level of speakers.
* *
* Those objects hold information about number of word requests and duration of word requests for a given * Those objects hold information about number and duration of requests to speak for a given
* structure-level. * structure-level.
*/ */
public get statisticsByStructureLevelObservable(): Observable<SpeakingTimeStructureLevelObject[]> { public get statisticsByStructureLevelObservable(): Observable<SpeakingTimeStructureLevelObject[]> {
@ -63,19 +63,19 @@ export class UserStatisticsComponent extends BaseViewComponent {
{ {
prop: 'durationOfWordRequests', prop: 'durationOfWordRequests',
width: 'auto', width: 'auto',
label: 'Duration of word requests' label: this.translate.instant('Duration of requests to speak')
}, },
{ {
prop: 'numberOfWordRequests', prop: 'numberOfWordRequests',
width: 'auto', width: 'auto',
label: 'Number of word requests' label: this.translate.instant('Number of requests to speak')
} }
]; ];
public readonly filterProps: string[] = ['structureLevel']; public readonly filterProps: string[] = ['structureLevel'];
/** /**
* Holds information about hours, minutes and seconds for the total duration of word requests. * Holds information about hours, minutes and seconds for the total duration of requests to speak.
*/ */
private speakingTimeAsNumber = 0; private speakingTimeAsNumber = 0;

View File

@ -466,7 +466,7 @@
<br> <br>
<mat-checkbox [(ngModel)]="showAllAmendments" *ngIf="isRecoMode(ChangeRecoMode.Diff)"> <mat-checkbox [(ngModel)]="showAllAmendments" *ngIf="isRecoMode(ChangeRecoMode.Diff)">
{{ 'Temporarily show all in text' | translate }} {{ 'Show all changes' | translate }}
</mat-checkbox> </mat-checkbox>
</div> </div>

File diff suppressed because one or more lines are too long

View File

@ -82,6 +82,9 @@ msgstr "Aktiv"
msgid "Active filters" msgid "Active filters"
msgstr "Aktive Filter" msgstr "Aktive Filter"
msgid "Active users"
msgstr "Aktive Nutzer"
msgid "Add" msgid "Add"
msgstr "Hinzufügen" msgstr "Hinzufügen"
@ -689,6 +692,9 @@ msgstr "Kopieren Sie die Name Ihrer Teilnehmer/innen in diese Textbox."
msgid "Count active users" msgid "Count active users"
msgstr "Aktive Nutzer zählen" msgstr "Aktive Nutzer zählen"
msgid "Count completed requests to speak"
msgstr "Abgeschlossene Wortmeldungen zählen"
msgid "Countdown" msgid "Countdown"
msgstr "Countdown" msgstr "Countdown"
@ -737,6 +743,9 @@ msgstr "Aktuelles Datum"
msgid "Current list of speakers" msgid "Current list of speakers"
msgstr "Aktuelle Redeliste" msgstr "Aktuelle Redeliste"
msgid "Currently projected"
msgstr "Aktuell projiziert"
msgid "Custom aspect ratio" msgid "Custom aspect ratio"
msgstr "Eigenes Seitenverhältnis" msgstr "Eigenes Seitenverhältnis"
@ -918,6 +927,12 @@ msgstr "Duplizieren"
msgid "Duration" msgid "Duration"
msgstr "Dauer" msgstr "Dauer"
msgid "Duration of all requests to speak"
msgstr "Dauer aller Wortmeldungen"
msgid "Duration of requests to speak"
msgstr "Dauer der Wortmeldungen"
msgid "" msgid ""
"During non-nominal voting OpenSlides does NOT store the individual user ID " "During non-nominal voting OpenSlides does NOT store the individual user ID "
"of the voter. This in no way means that a non-nominal vote is completely " "of the voter. This in no way means that a non-nominal vote is completely "
@ -1750,6 +1765,9 @@ msgstr "Anzahl aller Delegierten"
msgid "Number of all participants" msgid "Number of all participants"
msgstr "Anzahl aller Teilnehmenden" msgstr "Anzahl aller Teilnehmenden"
msgid "Number of all requests to speak"
msgstr "Anzahl aller Wortmeldungen"
msgid "Number of ballot papers" msgid "Number of ballot papers"
msgstr "Stimmzettelanzahl" msgstr "Stimmzettelanzahl"
@ -1768,6 +1786,9 @@ msgstr "Minimale Anzahl an Ziffern im Bezeichner"
msgid "Number of persons to be elected" msgid "Number of persons to be elected"
msgstr "Anzahl der zu wählenden Personen" msgstr "Anzahl der zu wählenden Personen"
msgid "Number of requests to speak"
msgstr "Anzahl der Wortmeldungen"
msgid "Number of the next speakers to be shown on the projector" msgid "Number of the next speakers to be shown on the projector"
msgstr "Anzahl der dargestellten nächsten Render/innen auf dem Projektor" msgstr "Anzahl der dargestellten nächsten Render/innen auf dem Projektor"
@ -2140,6 +2161,9 @@ msgstr "Ersetzung"
msgid "Reply address" msgid "Reply address"
msgstr "Antwortadresse" msgstr "Antwortadresse"
msgid "Requests to speak"
msgstr "Wortmeldungen"
msgid "Required" msgid "Required"
msgstr "Erforderlich" msgstr "Erforderlich"
@ -2319,6 +2343,12 @@ msgstr "Kurzbeschreibung der Veranstaltung"
msgid "Show all" msgid "Show all"
msgstr "Alle anzeigen" msgstr "Alle anzeigen"
msgid "Show all changes"
msgstr "Alle Änderungen anzeigen"
msgid "Show amendment"
msgstr "Änderungsantrag anzeigen"
msgid "Show amendment in parent motion" msgid "Show amendment in parent motion"
msgstr "Änderungsantrag im Hauptantrag anzeigen" msgstr "Änderungsantrag im Hauptantrag anzeigen"
@ -2463,6 +2493,9 @@ msgstr "Status"
msgid "State set to {arg1}" msgid "State set to {arg1}"
msgstr "Status gesetzt auf {arg1}" msgstr "Status gesetzt auf {arg1}"
msgid "Statistics"
msgstr "Statistiken"
msgid "Statute" msgid "Statute"
msgstr "Satzung" msgstr "Satzung"
@ -2779,6 +2812,9 @@ msgstr "Typ"
msgid "Undone" msgid "Undone"
msgstr "unerledigt" msgstr "unerledigt"
msgid "Unique speakers"
msgstr "Eindeutige Redner/innen"
msgid "Unknown user" msgid "Unknown user"
msgstr "Unbekannter Nutzer" msgstr "Unbekannter Nutzer"

View File

@ -70,6 +70,9 @@ msgstr ""
msgid "Active filters" msgid "Active filters"
msgstr "" msgstr ""
msgid "Active users"
msgstr ""
msgid "Add" msgid "Add"
msgstr "" msgstr ""
@ -650,6 +653,9 @@ msgstr ""
msgid "Count active users" msgid "Count active users"
msgstr "" msgstr ""
msgid "Count completed requests to speak"
msgstr ""
msgid "Countdown" msgid "Countdown"
msgstr "" msgstr ""
@ -698,6 +704,9 @@ msgstr ""
msgid "Current list of speakers" msgid "Current list of speakers"
msgstr "" msgstr ""
msgid "Currently projected"
msgstr ""
msgid "Custom aspect ratio" msgid "Custom aspect ratio"
msgstr "" msgstr ""
@ -861,6 +870,12 @@ msgstr ""
msgid "Duration" msgid "Duration"
msgstr "" msgstr ""
msgid "Duration of all requests to speak"
msgstr ""
msgid "Duration of requests to speak"
msgstr ""
msgid "" msgid ""
"During non-nominal voting OpenSlides does NOT store the individual user ID " "During non-nominal voting OpenSlides does NOT store the individual user ID "
"of the voter. This in no way means that a non-nominal vote is completely " "of the voter. This in no way means that a non-nominal vote is completely "
@ -1673,6 +1688,9 @@ msgstr ""
msgid "Number of all participants" msgid "Number of all participants"
msgstr "" msgstr ""
msgid "Number of all requests to speak"
msgstr ""
msgid "Number of ballot papers" msgid "Number of ballot papers"
msgstr "" msgstr ""
@ -1691,6 +1709,9 @@ msgstr ""
msgid "Number of persons to be elected" msgid "Number of persons to be elected"
msgstr "" msgstr ""
msgid "Number of requests to speak"
msgstr ""
msgid "Number of the next speakers to be shown on the projector" msgid "Number of the next speakers to be shown on the projector"
msgstr "" msgstr ""
@ -2058,6 +2079,9 @@ msgstr ""
msgid "Reply address" msgid "Reply address"
msgstr "" msgstr ""
msgid "Requests to speak"
msgstr ""
msgid "Required" msgid "Required"
msgstr "" msgstr ""
@ -2234,6 +2258,12 @@ msgstr ""
msgid "Show all" msgid "Show all"
msgstr "" msgstr ""
msgid "Show all changes"
msgstr ""
msgid "Show amendment"
msgstr ""
msgid "Show amendment in parent motion" msgid "Show amendment in parent motion"
msgstr "" msgstr ""
@ -2375,6 +2405,9 @@ msgstr ""
msgid "State set to {arg1}" msgid "State set to {arg1}"
msgstr "" msgstr ""
msgid "Statistics"
msgstr ""
msgid "Statute" msgid "Statute"
msgstr "" msgstr ""
@ -2653,6 +2686,9 @@ msgstr ""
msgid "Undone" msgid "Undone"
msgstr "" msgstr ""
msgid "Unique speakers"
msgstr ""
msgid "Unknown user" msgid "Unknown user"
msgstr "" msgstr ""