Updated translation strings and German translation.

This commit is contained in:
Emanuel Schütze 2020-03-15 23:56:49 +01:00 committed by FinnStutzenstein
parent ee4c6aa0bf
commit d15c9892ed
32 changed files with 538 additions and 321 deletions

View File

@ -1,5 +1,6 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { _ } from 'app/core/translate/translation-marker';
import { TranslateService } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core';
import { BehaviorSubject, Observable } from 'rxjs'; import { BehaviorSubject, Observable } from 'rxjs';
@ -20,7 +21,7 @@ export class OfflineService {
*/ */
private offline = new BehaviorSubject<boolean>(false); private offline = new BehaviorSubject<boolean>(false);
private bannerDefinition: BannerDefinition = { private bannerDefinition: BannerDefinition = {
text: 'Offline mode', text: _('Offline mode'),
icon: 'cloud_off' icon: 'cloud_off'
}; };

View File

@ -99,7 +99,9 @@ _('Only main agenda items');
_('Topics'); _('Topics');
_('Open requests to speak'); _('Open requests to speak');
// Motions config strings
// ** Motions **
// config strings
// subgroup general // subgroup general
_('General'); _('General');
_('Workflow of new motions'); _('Workflow of new motions');
@ -155,7 +157,7 @@ _('Choose 0 to disable the supporting system.');
_('Remove all supporters of a motion if a submitter edits his motion in early state'); _('Remove all supporters of a motion if a submitter edits his motion in early state');
// subgroup Voting and ballot papers // subgroup Voting and ballot papers
_('Voting and ballot papers'); _('Voting and ballot papers');
_('The 100 % base of a voting result consists of'); _('Default 100 % base of a voting result');
_('Yes/No/Abstain'); _('Yes/No/Abstain');
_('Yes/No'); _('Yes/No');
_('All valid ballots'); _('All valid ballots');
@ -173,17 +175,12 @@ _('Number of all participants');
_('Use the following custom number'); _('Use the following custom number');
_('Custom number of ballot papers'); _('Custom number of ballot papers');
_('Voting'); _('Voting');
_('Click here to vote');
// subgroup PDF export // subgroup PDF export
_('PDF export'); _('PDF export');
_('Title for PDF documents of motions'); _('Title for PDF documents of motions');
_('Preamble text for PDF documents of motions'); _('Preamble text for PDF documents of motions');
_('Show submitters and recommendation/state in table of contents'); _('Show submitters and recommendation/state in table of contents');
_('Show checkbox to record decision'); _('Show checkbox to record decision');
// misc motion strings
_('Amendment');
_('Statute amendment for');
_('Statute paragraphs');
// motion workflow 1 // motion workflow 1
_('Simple Workflow'); _('Simple Workflow');
@ -226,46 +223,7 @@ _('Needs review');
_('rejected (not authorized)'); _('rejected (not authorized)');
_('Reject (not authorized)'); _('Reject (not authorized)');
_('Rejection (not authorized)'); _('Rejection (not authorized)');
// misc for motions // motion workflow manager
_('Called');
_('Called with');
_('Recommendation');
_('Motion block');
_('The text field may not be blank.');
_('The reason field may not be blank.');
// Assignment config strings
_('Election method');
_('Automatic assign of method');
_('Always one option per candidate');
_('Always Yes-No-Abstain per candidate');
_('Always Yes/No per candidate');
_('Elections');
_('Ballot and ballot papers');
_('The 100-%-base of an election result consists of');
_(
'For Yes/No/Abstain per candidate and Yes/No per candidate the 100-%-base depends on the election method: If there is only one option per candidate, the sum of all votes of all candidates is 100 %. Otherwise for each candidate the sum of all votes is 100 %.'
);
_('Yes/No/Abstain per candidate');
_('Yes/No per candidate');
_('All valid ballots');
_('All casted ballots');
_('Disabled (no percents)');
_('Number of ballot papers (selection)');
_('Number of all delegates');
_('Number of all participants');
_('Use the following custom number');
_('Custom number of ballot papers');
_('Required majority');
_('Default method to check whether a candidate has reached the required majority.');
_('Simple majority');
_('Two-thirds majority');
_('Three-quarters majority');
_('Disabled');
_('Put all candidates on the list of speakers');
_('Title for PDF document (all elections)');
_('Preamble text for PDF document (all elections)');
// motion workflow
_('Recommendation label'); _('Recommendation label');
_('Allow support'); _('Allow support');
_('Allow create poll'); _('Allow create poll');
@ -277,12 +235,63 @@ _('Show amendment in parent motion');
_('Restrictions'); _('Restrictions');
_('Label color'); _('Label color');
_('Next states'); _('Next states');
// misc for motions
_('Amendment');
_('Statute amendment for');
_('Statute paragraphs');
_('Called');
_('Called with');
_('Recommendation');
_('Motion block');
_('The text field may not be blank.');
_('The reason field may not be blank.');
// other translations
// ** Assignments **
// Assignment config strings
_('Elections');
// subgroup ballot
_('Default election method');
_('Default 100 % base of an election result');
_('All valid ballots');
_('All casted ballots');
_('Disabled (no percents)');
_('Default groups with voting rights');
_('Sort election results by amount of votes')
_('Put all candidates on the list of speakers');
// subgroup ballot papers
_('Ballot papers');
_('Number of ballot papers');
_('Number of all delegates');
_('Number of all participants');
_('Use the following custom number');
_('Custom number of ballot papers');
_('Required majority');
_('Default method to check whether a candidate has reached the required majority.');
_('Simple majority');
_('Two-thirds majority');
_('Three-quarters majority');
_('Disabled');
_('Title for PDF document (all elections)');
_('Preamble text for PDF document (all elections)');
// misc for assignments
_('Searching for candidates'); _('Searching for candidates');
_('Finished'); _('Finished');
_('In the election process'); _('In the election process');
// Voting strings
_('Voting type');
_('analog');
_('nominal');
_('non-nominal');
_('Start voting');
_('Stop voting');
_('Publish');
_('Entitled to vote');
_('Voting method');
_('Amount of votes');
// ** Users ** // ** Users **
// permission strings (see models.py of each Django app) // permission strings (see models.py of each Django app)
// agenda // agenda

View File

@ -1,5 +1,6 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { _ } from 'app/core/translate/translation-marker';
import { TranslateService } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core';
import { ViewAssignmentPoll } from 'app/site/assignments/models/view-assignment-poll'; import { ViewAssignmentPoll } from 'app/site/assignments/models/view-assignment-poll';
@ -16,7 +17,7 @@ import { VotingService } from './voting.service';
export class VotingBannerService { export class VotingBannerService {
private currentBanner: BannerDefinition; private currentBanner: BannerDefinition;
private subText = 'Click here to vote'; private subText = _('Click here to vote!');
public constructor( public constructor(
pollListObservableService: PollListObservableService, pollListObservableService: PollListObservableService,
@ -44,7 +45,7 @@ export class VotingBannerService {
pollsToVote.length === 1 pollsToVote.length === 1
? this.createBanner(this.getTextForPoll(pollsToVote[0]), pollsToVote[0].parentLink) ? this.createBanner(this.getTextForPoll(pollsToVote[0]), pollsToVote[0].parentLink)
: this.createBanner( : this.createBanner(
`${this.translate.instant('You have polls to vote on')}: ${pollsToVote.length}`, `${pollsToVote.length} ${this.translate.instant('open votes')}`,
'/polls/' '/polls/'
); );
this.sliceBanner(banner); this.sliceBanner(banner);
@ -81,7 +82,7 @@ export class VotingBannerService {
'Voting opened' 'Voting opened'
)}`; )}`;
} else if (poll instanceof ViewAssignmentPoll) { } else if (poll instanceof ViewAssignmentPoll) {
return `${poll.assignment.getTitle()}: ${this.translate.instant('Ballot openened!')}`; return `${poll.assignment.getTitle()}: ${this.translate.instant('Ballot opened')}`;
} }
} }

View File

@ -9,8 +9,8 @@ const PollValues = {
yes: 'Yes', yes: 'Yes',
no: 'No', no: 'No',
abstain: 'Abstain', abstain: 'Abstain',
amount_global_abstain: 'Global abstain', amount_global_abstain: 'General abstain',
amount_global_no: 'Global no' amount_global_no: 'General no'
}; };
/** /**

View File

@ -279,19 +279,19 @@
type="number" type="number"
required required
/> />
<mat-error *ngIf="assignmentForm.get('open_posts').hasError('required')">{{ <mat-error *ngIf="assignmentForm.get('open_posts').hasError('required')">
'This field is required.' | translate {{ 'This field is required.' | translate }}
}}</mat-error> </mat-error>
<mat-error *ngIf="assignmentForm.get('open_posts').hasError('min')">{{ <mat-error *ngIf="assignmentForm.get('open_posts').hasError('min')">
'The number has to be greater than 0.' | translate {{ 'The number has to be greater than 0.' | translate }}
}}</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
</div> </div>
<!-- Number poll candidates --> <!-- Number candidates -->
<div> <div>
<mat-checkbox formControlName="number_poll_candidates"> <mat-checkbox formControlName="number_poll_candidates">
<span translate>Number poll candidates</span> <span translate>Number candidates</span>
</mat-checkbox> </mat-checkbox>
</div> </div>
</form> </form>

View File

@ -18,7 +18,15 @@
<ng-template #viewTemplate> <ng-template #viewTemplate>
<div *ngIf="isReady"> <div *ngIf="isReady">
<h1>{{ poll.title }}</h1> <h1>{{ poll.title }}</h1>
<span *ngIf="poll.type !== 'analog'">{{ poll.typeVerbose | translate }}</span> <div>
<!-- Voting type -->
<span *ngIf="poll.type !== 'analog'"> {{ poll.typeVerbose | translate }} &middot; </span>
<!-- State -->
<span>
{{ poll.stateVerbose | translate }}
</span>
</div>
<div class="assignment-result-wrapper" *ngIf="poll.stateHasVotes"> <div class="assignment-result-wrapper" *ngIf="poll.stateHasVotes">
<!-- Result Table --> <!-- Result Table -->

View File

@ -13,7 +13,7 @@
<div *ngFor="let option of options" class="votes-grid"> <div *ngFor="let option of options" class="votes-grid">
<div> <div>
<span *ngIf="option.user">{{ option.user.getFullName() }}</span> <span *ngIf="option.user">{{ option.user.getFullName() }}</span>
<span *ngIf="!option.user">{{ 'Unknown User' | translate }}</span> <span *ngIf="!option.user">{{ 'Unknown user' | translate }}</span>
</div> </div>
<div> <div>
@ -46,7 +46,7 @@
<div> <div>
<os-check-input <os-check-input
*ngIf="globalNoEnabled" *ngIf="globalNoEnabled"
placeholder="{{ 'Global No' | translate }}" placeholder="{{ 'General No' | translate }}"
[checkboxValue]="-1" [checkboxValue]="-1"
inputType="number" inputType="number"
[checkboxLabel]="'majority' | translate" [checkboxLabel]="'majority' | translate"
@ -55,7 +55,7 @@
<os-check-input <os-check-input
*ngIf="globalAbstainEnabled" *ngIf="globalAbstainEnabled"
placeholder="{{ 'Global Abstain' | translate }}" placeholder="{{ 'General Abstain' | translate }}"
[checkboxValue]="-1" [checkboxValue]="-1"
inputType="number" inputType="number"
[checkboxLabel]="'majority' | translate" [checkboxLabel]="'majority' | translate"
@ -70,7 +70,7 @@
<span translate>Publish immediately</span> <span translate>Publish immediately</span>
</mat-checkbox> </mat-checkbox>
<mat-error *ngIf="!dialogVoteForm.valid" translate> <mat-error *ngIf="!dialogVoteForm.valid" translate>
If you want to publish after creating, you have to fill at least one of the fields. Error in form field.
</mat-error> </mat-error>
</div> </div>
</ng-container> </ng-container>

View File

@ -9,7 +9,7 @@
<h4 <h4
*ngIf="poll.pollmethod === AssignmentPollMethod.Votes && poll.votes_amount > 1" *ngIf="poll.pollmethod === AssignmentPollMethod.Votes && poll.votes_amount > 1"
> >
{{ 'Votes for this poll' | translate }}: {{ getVotesCount() }}/{{ poll.votes_amount }} {{ 'Available votes' | translate }}: {{ getVotesCount() }}/{{ poll.votes_amount }}
</h4> </h4>
<!-- Options and Actions --> <!-- Options and Actions -->
@ -69,7 +69,7 @@
<mat-icon> thumb_down </mat-icon> <mat-icon> thumb_down </mat-icon>
</button> </button>
<span class="vote-label"> <span class="vote-label">
{{ 'No to all' | translate }} {{ 'General No' | translate }}
</span> </span>
</div> </div>
@ -82,7 +82,7 @@
<mat-icon> trip_origin</mat-icon> <mat-icon> trip_origin</mat-icon>
</button> </button>
<span class="vote-label"> <span class="vote-label">
{{ 'Abstain' | translate }} {{ 'General Abstain' | translate }}
</span> </span>
</div> </div>
</div> </div>
@ -105,7 +105,7 @@
check_circle check_circle
</mat-icon> </mat-icon>
<br /> <br />
<span>{{ 'You already voted on this poll.' | translate }}</span> <span>{{ 'Voting successful.' | translate }}</span>
</div> </div>
</div> </div>
</ng-template> </ng-template>

View File

@ -43,7 +43,7 @@ export class AssignmentPollVoteComponent extends BasePollVoteComponent<ViewAssig
public constructor( public constructor(
title: Title, title: Title,
translate: TranslateService, protected translate: TranslateService,
matSnackbar: MatSnackBar, matSnackbar: MatSnackBar,
vmanager: VotingService, vmanager: VotingService,
operator: OperatorService, operator: OperatorService,
@ -102,8 +102,8 @@ export class AssignmentPollVoteComponent extends BasePollVoteComponent<ViewAssig
} }
public submitVote(): void { public submitVote(): void {
const title = this.translate.instant('Are you sure?'); const title = this.translate.instant('Submit selection now?');
const content = this.translate.instant('Your decision cannot be changed afterwards'); const content = this.translate.instant('Your decision cannot be changed afterwards.');
this.promptService.open(title, content).then(confirmed => { this.promptService.open(title, content).then(confirmed => {
if (confirmed) { if (confirmed) {
this.pollRepo this.pollRepo

View File

@ -9,7 +9,14 @@
</mat-card-title> </mat-card-title>
<!-- Type and State --> <!-- Type and State -->
<div> <div class="italic spacer-bottom-20">
<span *osPerms="'assignments.can_manage'; and: poll.type === 'pseudoanonymous'">
<button mat-icon-button color="warn" (click)="openVotingWarning()">
<mat-icon>
warning
</mat-icon>
</button>
</span>
<span *ngIf="poll.type !== 'analog'"> {{ poll.typeVerbose | translate }} &middot; </span> <span *ngIf="poll.type !== 'analog'"> {{ poll.typeVerbose | translate }} &middot; </span>
<span> <span>
{{ poll.stateVerbose | translate }} {{ poll.stateVerbose | translate }}
@ -65,7 +72,7 @@
<!-- Cannot see unpublished --> <!-- Cannot see unpublished -->
<div *osPerms="'assignments.can_manage'; complement: true"> <div *osPerms="'assignments.can_manage'; complement: true">
<span *ngIf="poll.isFinished"> <span *ngIf="poll.isFinished">
{{ 'Counting is in progress' | translate }} {{ 'Counting of votes is in progress ...' | translate }}
</span> </span>
</div> </div>
</div> </div>
@ -107,7 +114,7 @@
<div *osPerms="'assignments.can_manage'"> <div *osPerms="'assignments.can_manage'">
<button mat-menu-item (click)="printBallot()"> <button mat-menu-item (click)="printBallot()">
<mat-icon>picture_as_pdf</mat-icon> <mat-icon>picture_as_pdf</mat-icon>
<span translate>Ballot paper</span> <span translate>Ballot papers</span>
</button> </button>
<mat-divider></mat-divider> <mat-divider></mat-divider>
<!-- Reset Button --> <!-- Reset Button -->

View File

@ -1,5 +1,6 @@
import { BehaviorSubject } from 'rxjs'; import { BehaviorSubject } from 'rxjs';
import { _ } from 'app/core/translate/translation-marker';
import { ChartData } from 'app/shared/components/charts/charts.component'; import { ChartData } from 'app/shared/components/charts/charts.component';
import { import {
AssignmentPoll, AssignmentPoll,
@ -17,18 +18,18 @@ export interface AssignmentPollTitleInformation {
} }
export const AssignmentPollMethodVerbose = { export const AssignmentPollMethodVerbose = {
votes: 'Yes per candidate', votes: _('Yes per candidate'),
YN: 'Yes/No per candidate', YN: _('Yes/No per candidate'),
YNA: 'Yes/No/Abstain per candidate' YNA: _('Yes/No/Abstain per candidate')
}; };
export const AssignmentPollPercentBaseVerbose = { export const AssignmentPollPercentBaseVerbose = {
YN: 'Yes/No per candidate', YN: _('Yes/No per candidate'),
YNA: 'Yes/No/Abstain per candidate', YNA: _('Yes/No/Abstain per candidate'),
votes: 'Sum of votes inclusive global ones', votes: _('Sum of votes including general No/Abstain'),
valid: 'All valid ballots', valid: _('All valid ballots'),
cast: 'All cast ballots', cast: _('All casted ballots'),
disabled: 'Disabled (no percents)' disabled: _('Disabled (no percents)')
}; };
export class ViewAssignmentPoll extends ViewBasePoll<AssignmentPoll, AssignmentPollMethod, AssignmentPollPercentBase> export class ViewAssignmentPoll extends ViewBasePoll<AssignmentPoll, AssignmentPollMethod, AssignmentPollPercentBase>

View File

@ -20,16 +20,16 @@
<h1>{{ poll.title | translate }}</h1> <h1>{{ poll.title | translate }}</h1>
<div> <div>
<!-- Subtitle --> <!-- Voting type -->
<span *ngIf="poll.type !== 'analog'"> {{ poll.typeVerbose | translate }} &middot; </span> <span *ngIf="poll.type !== 'analog'"> {{ poll.typeVerbose | translate }} &middot; </span>
<!-- State chip --> <!-- State -->
<span> <span>
{{ poll.stateVerbose | translate }} {{ poll.stateVerbose | translate }}
</span> </span>
</div> </div>
<div *ngIf="!poll.hasVotes || !poll.stateHasVotes">{{ 'No results to show' | translate }}</div> <p *ngIf="!poll.hasVotes || !poll.stateHasVotes">{{ 'No results yet.' | translate }}</p>
<div *ngIf="poll.stateHasVotes && (hasPerms() || poll.isPublished)"> <div *ngIf="poll.stateHasVotes && (hasPerms() || poll.isPublished)">
<os-motion-poll-detail-content [poll]="poll" [chartData]="chartDataSubject"> <os-motion-poll-detail-content [poll]="poll" [chartData]="chartDataSubject">

View File

@ -47,7 +47,7 @@
<span translate>Publish immediately</span> <span translate>Publish immediately</span>
</mat-checkbox> </mat-checkbox>
<mat-error *ngIf="!dialogVoteForm.valid" translate> <mat-error *ngIf="!dialogVoteForm.valid" translate>
If you want to publish after creating, you have to fill at least one of the fields. Error in form field.
</mat-error> </mat-error>
</div> </div>
</ng-container> </ng-container>

View File

@ -1,5 +1,5 @@
<os-head-bar> <os-head-bar>
<div class="title-slot" translate>Motions poll list</div> <div class="title-slot">Motions poll list</div>
<!-- Menu --> <!-- Menu -->
<div class="menu-slot"> <div class="menu-slot">

View File

@ -24,7 +24,7 @@
check_circle check_circle
</mat-icon> </mat-icon>
<br /> <br />
<span>{{ 'You already voted on this poll.' | translate }}</span> <span>{{ 'Voting successful.' | translate }}</span>
</div> </div>
</div> </div>
</ng-template> </ng-template>

View File

@ -63,8 +63,8 @@ export class MotionPollVoteComponent extends BasePollVoteComponent<ViewMotionPol
*/ */
public saveVote(vote: 'Y' | 'N' | 'A'): void { public saveVote(vote: 'Y' | 'N' | 'A'): void {
this.currentVote.vote = vote; this.currentVote.vote = vote;
const title = this.translate.instant('Are you sure?'); const title = this.translate.instant('Submit selection now?');
const content = this.translate.instant('Your decision cannot be changed afterwards'); const content = this.translate.instant('Your decision cannot be changed afterwards.');
this.promptService.open(title, content).then(confirmed => { this.promptService.open(title, content).then(confirmed => {
if (confirmed) { if (confirmed) {
this.pollRepo.vote(vote, this.poll.id).catch(this.raiseError); this.pollRepo.vote(vote, this.poll.id).catch(this.raiseError);

View File

@ -2,7 +2,7 @@
<!-- Poll Infos --> <!-- Poll Infos -->
<div class="poll-title-wrapper"> <div class="poll-title-wrapper">
<!-- Title Area --> <!-- Title Area -->
<div class="poll-title-area"> <div class="poll-title-area spacer-bottom-20">
<!-- Title --> <!-- Title -->
<span class="poll-title"> <span class="poll-title">
<a [routerLink]="pollLink"> <a [routerLink]="pollLink">
@ -10,7 +10,7 @@
</a> </a>
</span> </span>
<div> <div class="italic">
<span *osPerms="'motions.can_manage_polls'; and: poll.type === 'pseudoanonymous'"> <span *osPerms="'motions.can_manage_polls'; and: poll.type === 'pseudoanonymous'">
<button mat-icon-button color="warn" (click)="openVotingWarning()"> <button mat-icon-button color="warn" (click)="openVotingWarning()">
<mat-icon> <mat-icon>
@ -100,7 +100,7 @@
<!-- In Progress hint --> <!-- In Progress hint -->
<div class="motion-couting-in-progress-hint" *osPerms="'motions.can_manage_polls'; complement: true"> <div class="motion-couting-in-progress-hint" *osPerms="'motions.can_manage_polls'; complement: true">
<span *ngIf="poll.isFinished"> <span *ngIf="poll.isFinished">
{{ 'Counting is in progress' | translate }} {{ 'Counting of votes is in progress ...' | translate }}
</span> </span>
</div> </div>
</ng-template> </ng-template>
@ -120,7 +120,7 @@
<os-projector-button [menuItem]="true" [object]="poll" *osPerms="'core.can_manage_projector'"></os-projector-button> <os-projector-button [menuItem]="true" [object]="poll" *osPerms="'core.can_manage_projector'"></os-projector-button>
<button mat-menu-item (click)="downloadPdf()"> <button mat-menu-item (click)="downloadPdf()">
<mat-icon>picture_as_pdf</mat-icon> <mat-icon>picture_as_pdf</mat-icon>
<span translate>Ballot paper</span> <span translate>Ballot papers</span>
</button> </button>
<div *osPerms="'motions.can_manage_polls'"> <div *osPerms="'motions.can_manage_polls'">
<mat-divider></mat-divider> <mat-divider></mat-divider>

View File

@ -11,10 +11,10 @@
<!-- TODO: rather disable forms than duplicate them --> <!-- TODO: rather disable forms than duplicate them -->
<div *ngIf="data && data.state" class="poll-preview-meta-info"> <div *ngIf="data && data.state" class="poll-preview-meta-info">
<span class="short-description" *ngFor="let value of pollValues"> <span class="short-description" *ngFor="let value of pollValues">
<span class="short-description-label subtitle" translate> <span class="short-description-label subtitle">
{{ value[0] }} {{ value[0] }}
</span> </span>
<span class="short-description-value" translate> <span class="short-description-value">
{{ value[1] }} {{ value[1] }}
</span> </span>
</span> </span>
@ -28,7 +28,7 @@
{{ option.value | translate }} {{ option.value | translate }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error translate>This field is required</mat-error> <mat-error translate>This field is required.</mat-error>
<mat-hint (click)="openVotingWarning()" *ngIf="showNonNominalWarning"> {{ 'Not suitable for formal secret voting!' | translate }}</mat-hint> <mat-hint (click)="openVotingWarning()" *ngIf="showNonNominalWarning"> {{ 'Not suitable for formal secret voting!' | translate }}</mat-hint>
</mat-form-field> </mat-form-field>
@ -52,10 +52,10 @@
required required
> >
<mat-option *ngFor="let option of pollMethods | keyvalue: keepEntryOrder" [value]="option.key"> <mat-option *ngFor="let option of pollMethods | keyvalue: keepEntryOrder" [value]="option.key">
{{ option.value }} {{ option.value | translate }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error translate>This field is required</mat-error> <mat-error translate>This field is required.</mat-error>
</mat-form-field> </mat-form-field>
</ng-container> </ng-container>

View File

@ -1,10 +1,5 @@
<os-head-bar> <os-head-bar>
<div class="title-slot" translate>Poll list</div> <div class="title-slot" translate>List of votes</div>
<!-- Menu -->
<div class="menu-slot">
<button type="button" mat-icon-button [matMenuTriggerFor]="pollMenu"><mat-icon>more_vert</mat-icon></button>
</div>
</os-head-bar> </os-head-bar>
<os-list-view-table <os-list-view-table
@ -25,18 +20,10 @@
</div> </div>
<div *pblNgridCellDef="'state'; row as poll;" class="cell-slot fill"> <div *pblNgridCellDef="'state'; row as poll;" class="cell-slot fill">
<a class="detail-link" [routerLink]="poll.parentLink" *ngIf="!isMultiSelect"></a> <a class="detail-link" [routerLink]="poll.parentLink" *ngIf="!isMultiSelect"></a>
<span>{{ poll.stateVerbose }}</span> <span>{{ poll.stateVerbose | translate }}</span>
</div> </div>
<div *pblNgridCellDef="'votability'; row as poll;" class="cell-slot fill"> <div *pblNgridCellDef="'votability'; row as poll;" class="cell-slot fill">
<mat-icon *ngIf="poll.user_has_voted_valid" color="accent" matTooltip="{{ 'You have already voted on this poll. Good job!' | translate }}">check_circle</mat-icon> <mat-icon *ngIf="poll.user_has_voted_valid" color="accent" matTooltip="{{ 'You have already voted.' | translate }}">check_circle</mat-icon>
<mat-icon *ngIf="!poll.user_has_voted_valid && poll.canBeVotedFor" color="warn" matTooltip="{{ 'You still have to vote on this poll.' | translate }}">warning</mat-icon> <mat-icon *ngIf="!poll.user_has_voted_valid && poll.canBeVotedFor" color="warn" matTooltip="{{ 'Voting is currently in progress.' | translate }}">warning</mat-icon>
</div> </div>
</os-list-view-table> </os-list-view-table>
<mat-menu #pollMenu="matMenu">
<!-- Settings -->
<button mat-menu-item *osPerms="'core.can_manage_config'" routerLink="/settings/polls">
<mat-icon>settings</mat-icon>
<span translate>Settings</span>
</button>
</mat-menu>

View File

@ -48,5 +48,6 @@ export class PollListComponent extends BaseListViewComponent<ViewBasePoll> {
snackbar: MatSnackBar snackbar: MatSnackBar
) { ) {
super(title, translate, snackbar, storage); super(title, translate, snackbar, storage);
super.setTitle('List of votes');
} }
} }

View File

@ -44,8 +44,8 @@ export const PollPropertyVerbose = {
state: 'State', state: 'State',
groups: 'Entitled to vote', groups: 'Entitled to vote',
votes_amount: 'Amount of votes', votes_amount: 'Amount of votes',
global_no: 'general "No"', global_no: 'General No',
global_abstain: 'general "Abstain"' global_abstain: 'General Abstain'
}; };
export const MajorityMethodVerbose = { export const MajorityMethodVerbose = {

View File

@ -38,15 +38,15 @@ export class PollFilterListService extends BaseFilterListService<ViewBasePoll> {
}, },
{ {
property: 'canBeVotedFor', property: 'canBeVotedFor',
label: this.translate.instant('Votability'), label: this.translate.instant('Vote'),
options: [ options: [
{ condition: true, label: this.translate.instant('Can be voted for') }, { condition: true, label: this.translate.instant('Vote currently possible') },
{ condition: false, label: this.translate.instant('Cannot be voted for') } { condition: false, label: this.translate.instant('Vote not possible') }
] ]
}, },
{ {
property: 'user_has_voted', property: 'user_has_voted',
label: this.translate.instant('Vote state'), label: this.translate.instant('Vote finished'),
options: [ options: [
{ condition: true, label: this.translate.instant('Has been voted for') }, { condition: true, label: this.translate.instant('Has been voted for') },
{ condition: false, label: this.translate.instant('Has not been voted for') } { condition: false, label: this.translate.instant('Has not been voted for') }

View File

@ -12,8 +12,4 @@
[pieChartOptions]="options" [pieChartOptions]="options"
></os-charts> ></os-charts>
</div> </div>
<div *ngIf="data.data.poll.state !== PollState.Published">
<!-- TODO -->
{{ "Nothing to see here!" | translate }}
</div>
</ng-container> </ng-container>

View File

@ -9,8 +9,4 @@
<div *ngIf="data.data.poll.state === PollState.Published"> <div *ngIf="data.data.poll.state === PollState.Published">
<os-motion-poll-detail-content [poll]="pollData" [chartData]="chartDataSubject"> </os-motion-poll-detail-content> <os-motion-poll-detail-content [poll]="pollData" [chartData]="chartDataSubject"> </os-motion-poll-detail-content>
</div> </div>
<div *ngIf="data.data.poll.state !== PollState.Published">
<!-- TODO -->
{{ 'Nothing to see here!' | translate }}
</div>
</ng-container> </ng-container>

File diff suppressed because one or more lines are too long

View File

@ -14,6 +14,9 @@ msgstr ""
msgid "%num% emails were send sucessfully." msgid "%num% emails were send sucessfully."
msgstr "%num% E-Mails wurden erfolgreich versandt." msgstr "%num% E-Mails wurden erfolgreich versandt."
msgid "100% base"
msgstr "100-%-Basis"
msgid "" msgid ""
"<a href=\"http://www.openslides.org\">OpenSlides</a> is a free web based " "<a href=\"http://www.openslides.org\">OpenSlides</a> is a free web based "
"presentation and assembly system for visualizing and controlling agenda, " "presentation and assembly system for visualizing and controlling agenda, "
@ -140,6 +143,9 @@ msgstr "Alle Themen werden gelöscht und sind danach nicht mehr zugänglich."
msgid "All valid ballots" msgid "All valid ballots"
msgstr "Alle gültigen Stimmzettel" msgstr "Alle gültigen Stimmzettel"
msgid "All votes will be lost."
msgstr "Alle Stimmen gehen verloren."
msgid "All your changes are saved immediately." msgid "All your changes are saved immediately."
msgstr "Alle Änderungen werden sofort gespeichert." msgstr "Alle Änderungen werden sofort gespeichert."
@ -167,15 +173,6 @@ msgstr "Zulässige Zugriffsgruppen für dieses Verzeichnis"
msgid "Always" msgid "Always"
msgstr "Immer" msgstr "Immer"
msgid "Always Yes-No-Abstain per candidate"
msgstr "Ja/Nein/Enthaltung pro Kandidat/in"
msgid "Always Yes/No per candidate"
msgstr "Ja/Nein pro Kandidat/in"
msgid "Always one option per candidate"
msgstr "Eine Stimme pro Kandidat/in"
msgid "Amendment" msgid "Amendment"
msgstr "Änderungsantrag" msgstr "Änderungsantrag"
@ -197,22 +194,31 @@ msgstr "Änderungsanträge können mehrere Absätze ändern"
msgid "Amendments to" msgid "Amendments to"
msgstr "Änderungsanträge zu" msgstr "Änderungsanträge zu"
msgid "Amount of votes"
msgstr "Anzahl der Stimmen"
msgid "An email with a password reset link was send!" msgid "An email with a password reset link was send!"
msgstr "Es wurde eine E-Mail mit Link zum Passwort-Zurücksetzen gesendet." msgstr "Es wurde eine E-Mail mit Link zum Passwort-Zurücksetzen gesendet."
msgid "An unknown error occurred." msgid "An unknown error occurred."
msgstr "Ein unbekannter Fehler ist aufgetreten." msgstr "Ein unbekannter Fehler ist aufgetreten."
msgid "Anonymize votes"
msgstr "Stimmen anonymisieren"
msgid "Anonymous"
msgstr "Anonym"
msgid "Apply" msgid "Apply"
msgstr "Übernehmen" msgstr "Übernehmen"
msgid "Arabic" msgid "Arabic"
msgstr "Arabisch" msgstr "Arabisch"
msgid "Are you sure you want to copy the final version to the print template?" msgid "Are you sure you want to anonymize all votes? This cannot be undone."
msgstr "" msgstr ""
"Soll die Beschlussfassung weiter bearbeitet und eine Beschluss-Druckvorlage " "Sollen alle Stimmen wirklich anonymisiert werden? Dies kann nicht rückgängig"
"erstellt werden?" " gemacht werden."
msgid "Are you sure you want to delete all selected elections?" msgid "Are you sure you want to delete all selected elections?"
msgstr "Sollen alle ausgewählten Wahlen wirklich gelöscht werden?" msgstr "Sollen alle ausgewählten Wahlen wirklich gelöscht werden?"
@ -234,9 +240,6 @@ msgstr "Sollen wirklich alle Redner/innen von dieser Liste entfernt werden?"
msgid "Are you sure you want to delete the print template?" msgid "Are you sure you want to delete the print template?"
msgstr "Soll die Beschluss-Druckvorlage wirklich gelöscht werden?" msgstr "Soll die Beschluss-Druckvorlage wirklich gelöscht werden?"
msgid "Are you sure you want to delete this ballot?"
msgstr "Soll dieser Wahlgang wirklich gelöscht werden?"
msgid "Are you sure you want to delete this category and all subcategories?" msgid "Are you sure you want to delete this category and all subcategories?"
msgstr "" msgstr ""
"Soll dieses Sachgebiet und deren Untersachgebiete wirklich gelöscht werden?" "Soll dieses Sachgebiet und deren Untersachgebiete wirklich gelöscht werden?"
@ -284,6 +287,9 @@ msgstr "Soll dieses Schlagwort wirklich gelöscht werden?"
msgid "Are you sure you want to delete this topic?" msgid "Are you sure you want to delete this topic?"
msgstr "Soll dieses Thema wirklich gelöscht werden?" msgstr "Soll dieses Thema wirklich gelöscht werden?"
msgid "Are you sure you want to delete this vote?"
msgstr "Soll diese Abstimmung wirklich gelöscht werden?"
msgid "Are you sure you want to delete this workflow?" msgid "Are you sure you want to delete this workflow?"
msgstr "Soll dieser Arbeitsablauf wirklich gelöscht werden?" msgstr "Soll dieser Arbeitsablauf wirklich gelöscht werden?"
@ -341,6 +347,9 @@ msgstr ""
"Sollen wirklich alle Passwörter auf die initialen Passwörter zurückgesetzt " "Sollen wirklich alle Passwörter auf die initialen Passwörter zurückgesetzt "
"werden?" "werden?"
msgid "Are you sure you want to reset this vote?"
msgstr "Soll diese Abstimmung wirklich zurückgesetzt werden?"
msgid "Are you sure you want to send an invitation email to the user?" msgid "Are you sure you want to send an invitation email to the user?"
msgstr "Soll wirklich eine E-Mail den diesen Nutzer gesendet werden?" msgstr "Soll wirklich eine E-Mail den diesen Nutzer gesendet werden?"
@ -363,8 +372,8 @@ msgstr "Nachfragen, voreingestellt ja"
msgid "Attachments" msgid "Attachments"
msgstr "Anhänge" msgstr "Anhänge"
msgid "Automatic assign of method" msgid "Available votes"
msgstr "Automatische Zuordnung der Methode" msgstr "Verfügbare Stimmen"
msgid "Back" msgid "Back"
msgstr "Zurück" msgstr "Zurück"
@ -375,8 +384,11 @@ msgstr "Zurück zur Anmeldung"
msgid "Ballot" msgid "Ballot"
msgstr "Wahlgang" msgstr "Wahlgang"
msgid "Ballot and ballot papers" msgid "Ballot opened"
msgstr "Wahlgang und Stimmzettel" msgstr "Wahlgang eröffnet"
msgid "Ballot papers"
msgstr "Stimmzettel"
msgid "Base folder" msgid "Base folder"
msgstr "Basisverzeichnis" msgstr "Basisverzeichnis"
@ -588,6 +600,9 @@ msgstr "Antragsblock löschen"
msgid "Clear tags" msgid "Clear tags"
msgstr "Schlagwörter löschen" msgstr "Schlagwörter löschen"
msgid "Click here to vote!"
msgstr "Zur Stimmabgabe hier klicken!"
msgid "Close" msgid "Close"
msgstr "Schließen" msgstr "Schließen"
@ -655,6 +670,9 @@ msgstr "Countdown-Titel"
msgid "Countdowns" msgid "Countdowns"
msgstr "Countdowns" msgstr "Countdowns"
msgid "Counting of votes is in progress ..."
msgstr "Die Auszählung der Stimmen läuft ..."
msgid "Couple countdown with the list of speakers" msgid "Couple countdown with the list of speakers"
msgstr "Countdown mit der Redeliste verkoppeln" msgstr "Countdown mit der Redeliste verkoppeln"
@ -715,8 +733,14 @@ msgstr "Entscheidung"
msgid "Default" msgid "Default"
msgstr "Standard" msgstr "Standard"
msgid "Default comment on the ballot paper" msgid "Default 100 % base of a voting result"
msgstr "Voreingestellter Hinweis auf Stimmzettel" msgstr "Voreingestellte 100-%-Basis eines Abstimmungsergebnisses"
msgid "Default 100 % base of an election result"
msgstr "Voreingestellte 100-%-Basis eines Wahlergebnisses"
msgid "Default election method"
msgstr "Voreingestellte Wahlmethode"
msgid "Default encoding for all csv exports" msgid "Default encoding for all csv exports"
msgstr "Voreingestelltes Encoding für alle CSV-Exporte" msgstr "Voreingestelltes Encoding für alle CSV-Exporte"
@ -724,6 +748,9 @@ msgstr "Voreingestelltes Encoding für alle CSV-Exporte"
msgid "Default group" msgid "Default group"
msgstr "Vorgegebene Gruppen" msgstr "Vorgegebene Gruppen"
msgid "Default groups with voting rights"
msgstr "Voreingestellte Gruppen mit Stimmrecht"
msgid "Default line numbering" msgid "Default line numbering"
msgstr "Voreingestellte Zeilennummerierung" msgstr "Voreingestellte Zeilennummerierung"
@ -848,6 +875,13 @@ msgstr ""
msgid "Duration" msgid "Duration"
msgstr "Dauer" msgstr "Dauer"
msgid ""
"During voting, OpenSlides does not store the individual user ID of the voter. This in no way means that a\n"
" non-nominal vote is completely anonymous and secure. You cannot track the decisions of your voters after the\n"
" data has been submitted. The validity of the data cannot always be guaranteed, especially if you use OpenSlides\n"
" in a distributed online setup. You are responsible for your own actions."
msgstr ""
msgid "Edit" msgid "Edit"
msgstr "Bearbeiten" msgstr "Bearbeiten"
@ -872,24 +906,18 @@ msgstr "Schlagwort bearbeiten"
msgid "Edit the whole motion text" msgid "Edit the whole motion text"
msgstr "Vollständigen Antragstext bearbeiten" msgstr "Vollständigen Antragstext bearbeiten"
msgid "Edit to enter votes."
msgstr "Bearbeiten, um Stimmen einzugeben."
msgid "Edit topic" msgid "Edit topic"
msgstr "Thema bearbeiten" msgstr "Thema bearbeiten"
msgid "Elected"
msgstr "Gewählt"
msgid "Election" msgid "Election"
msgstr "Wahl" msgstr "Wahl"
msgid "Election documents" msgid "Election documents"
msgstr "Wahlunterlagen" msgstr "Wahlunterlagen"
msgid "Election method"
msgstr "Wahlmethode"
msgid "Election result"
msgstr "Wahlergebnis"
msgid "Elections" msgid "Elections"
msgstr "Wahlen" msgstr "Wahlen"
@ -944,14 +972,14 @@ msgstr ""
msgid "Enter participant number" msgid "Enter participant number"
msgstr "Teilnehmernummer eingeben" msgstr "Teilnehmernummer eingeben"
msgid "Enter votes"
msgstr "Stimmen eingeben"
msgid "Enter your email to send the password reset link" msgid "Enter your email to send the password reset link"
msgstr "" msgstr ""
"Geben Sie Ihre E-Mail-Adresse ein um eine Link zum Zurücksetzen des " "Geben Sie Ihre E-Mail-Adresse ein um eine Link zum Zurücksetzen des "
"Passworts zu erhalten." "Passworts zu erhalten."
msgid "Entitled to vote"
msgstr "Stimmberechtigte"
msgid "Error" msgid "Error"
msgstr "Fehler" msgstr "Fehler"
@ -961,6 +989,9 @@ msgstr "Fehler bei der PDF-Erstellung der Wahl:"
msgid "Error during PDF creation of motion:" msgid "Error during PDF creation of motion:"
msgstr "Fehler bei der PDF-Erstellung in Antrag" msgstr "Fehler bei der PDF-Erstellung in Antrag"
msgid "Error in form field."
msgstr "Fehler im Formularfeld."
msgid "Error: The new passwords do not match." msgid "Error: The new passwords do not match."
msgstr "Fehler: Die neuen Passwörter stimmen nicht überein." msgstr "Fehler: Die neuen Passwörter stimmen nicht überein."
@ -1054,17 +1085,6 @@ msgstr "Empfehlungen für alle Anträge folgen"
msgid "Following users are currently editing this motion:" msgid "Following users are currently editing this motion:"
msgstr "Folgende Nutzer bearbeiten aktuell diesen Antrag:" msgstr "Folgende Nutzer bearbeiten aktuell diesen Antrag:"
msgid ""
"For Yes/No/Abstain per candidate and Yes/No per candidate the 100-%-base "
"depends on the election method: If there is only one option per candidate, "
"the sum of all votes of all candidates is 100 %. Otherwise for each "
"candidate the sum of all votes is 100 %."
msgstr ""
"Für Ja/Nein/Enthaltung pro Kandidat und Ja/Nein pro Kandidat hängt die "
"100%-Basis von der Wahlmethode ab: Wenn es nur eine Option pro Kandidat "
"gibt, ist 100% die Summe aller Stimmen von allen Kandidaten. Andernfalls ist"
" 100% die Summe aller Stimmen pro Kandidat."
msgid "Forgot Password?" msgid "Forgot Password?"
msgstr "Passwort vergessen?" msgstr "Passwort vergessen?"
@ -1086,6 +1106,12 @@ msgstr "Geschlecht"
msgid "General" msgid "General"
msgstr "Allgemein" msgstr "Allgemein"
msgid "General Abstain"
msgstr "Generelle Enthaltung"
msgid "General No"
msgstr "Generelles Nein"
msgid "Generate new passwords" msgid "Generate new passwords"
msgstr "Neue Passwörter generieren" msgstr "Neue Passwörter generieren"
@ -1116,9 +1142,15 @@ msgstr "Gast"
msgid "Has amendments" msgid "Has amendments"
msgstr "Hat Änderungsanträge" msgstr "Hat Änderungsanträge"
msgid "Has been voted for"
msgstr ""
msgid "Has no speakers" msgid "Has no speakers"
msgstr "Keine Wortmeldungen vorhanden" msgstr "Keine Wortmeldungen vorhanden"
msgid "Has not been voted for"
msgstr ""
msgid "Has notes" msgid "Has notes"
msgstr "Hat Notizen" msgstr "Hat Notizen"
@ -1156,8 +1188,8 @@ msgid "Hide the amount of speakers in subtitle of list of speakers slide"
msgstr "" msgstr ""
"Anzahl der Redner/innen im Untertitel der Redelistenprojektion ausblenden" "Anzahl der Redner/innen im Untertitel der Redelistenprojektion ausblenden"
msgid "Hint for ballot paper" msgid "Hint on voting"
msgstr "Hinweis auf dem Stimmzettel" msgstr "Hinweis zur Stimmabgabe"
msgid "History" msgid "History"
msgstr "Chronik" msgstr "Chronik"
@ -1168,6 +1200,9 @@ msgstr "Startseite"
msgid "How to create new amendments" msgid "How to create new amendments"
msgstr "Erstellung von Änderungsanträgen" msgstr "Erstellung von Änderungsanträgen"
msgid "I know the risk"
msgstr "Ich kenne das Risiko"
msgid "Identifier" msgid "Identifier"
msgstr "Bezeichner" msgstr "Bezeichner"
@ -1196,6 +1231,9 @@ msgstr "Themen importieren"
msgid "In motion list, motion detail and PDF." msgid "In motion list, motion detail and PDF."
msgstr "In Antragsliste, Detailansicht und PDF." msgstr "In Antragsliste, Detailansicht und PDF."
msgid "In the election process"
msgstr "Im Wahlvorgang"
msgid "Inactive" msgid "Inactive"
msgstr "Inaktiv" msgstr "Inaktiv"
@ -1337,6 +1375,9 @@ msgstr "Redeliste"
msgid "List of speakers overlay" msgid "List of speakers overlay"
msgstr "Redelisten-Einblendung" msgstr "Redelisten-Einblendung"
msgid "List of votes"
msgstr "Stimmabgaben"
msgid "List view" msgid "List view"
msgstr "Listenansicht" msgstr "Listenansicht"
@ -1355,8 +1396,8 @@ msgstr "Abmelden"
msgid "Main motion and line number" msgid "Main motion and line number"
msgstr "Hauptantrag und Zeilennummer" msgstr "Hauptantrag und Zeilennummer"
msgid "Mark as elected" msgid "Mark as personal favorite"
msgstr "Als gewählt markieren" msgstr "Als persönlichen Favorit markieren"
msgid "Mark speaker" msgid "Mark speaker"
msgstr "Redner/in markieren" msgstr "Redner/in markieren"
@ -1373,6 +1414,9 @@ msgstr "Mitteilungen"
msgid "Meta information" msgid "Meta information"
msgstr "Metainformationen" msgstr "Metainformationen"
msgid "More"
msgstr "Mehr"
msgid "Motion" msgid "Motion"
msgstr "Antrag" msgstr "Antrag"
@ -1577,6 +1621,9 @@ msgstr "Keine persönliche Notiz"
msgid "No recommendation" msgid "No recommendation"
msgstr "keine Empfehlung gesetzt" msgstr "keine Empfehlung gesetzt"
msgid "No results yet."
msgstr "Noch keine Ergebnisse."
msgid "No search result found" msgid "No search result found"
msgstr "Keine Suchergebnisse gefunden" msgstr "Keine Suchergebnisse gefunden"
@ -1595,6 +1642,9 @@ msgstr "Nr."
msgid "None" msgid "None"
msgstr "aus" msgstr "aus"
msgid "Not suitable for formal secret voting!"
msgstr "Nicht geeignet für förmliche, geheime Stimmabgaben!"
msgid "" msgid ""
"Note, that the default password will be changed to the new generated one." "Note, that the default password will be changed to the new generated one."
msgstr "" msgstr ""
@ -1611,6 +1661,9 @@ msgstr ""
msgid "Notes" msgid "Notes"
msgstr "Notizen" msgstr "Notizen"
msgid "Number candidates"
msgstr "Kandidat/innen nummerieren"
msgid "Number motions" msgid "Number motions"
msgstr "Anträge nummerieren" msgstr "Anträge nummerieren"
@ -1623,6 +1676,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 ballot papers"
msgstr "Stimmzettelanzahl"
msgid "Number of ballot papers (selection)" msgid "Number of ballot papers (selection)"
msgstr "Anzahl der Stimmzettel (Vorauswahl)" msgstr "Anzahl der Stimmzettel (Vorauswahl)"
@ -1675,8 +1731,8 @@ msgstr ""
"Mindestens Vor- oder Nachname muss angegeben werden. Alle übrigen Felder " "Mindestens Vor- oder Nachname muss angegeben werden. Alle übrigen Felder "
"sind optional und dürfen leer sein." "sind optional und dürfen leer sein."
msgid "One vote per candidate" msgid "Online voting is impossible to secure"
msgstr "Eine Stimme pro Kandidat/in" msgstr ""
msgid "Only countdown" msgid "Only countdown"
msgstr "Nur Countdown" msgstr "Nur Countdown"
@ -1844,12 +1900,6 @@ msgstr "Bitte geben Sie eine gültige E-Mail-Adresse ein!"
msgid "Please enter your new password" msgid "Please enter your new password"
msgstr "Bitte geben Sie Ihr neues Passwort ein" msgstr "Bitte geben Sie Ihr neues Passwort ein"
msgid "Please fill in all required values"
msgstr "Bitte füllen Sie alle erforderlichen Felder aus."
msgid "Please fill in the values for each candidate"
msgstr "Bitte füllen Sie die Werte aller Kandidat/innen aus."
msgid "Please select the directory:" msgid "Please select the directory:"
msgstr "Bitte wählen Sie das Verzeichnis aus:" msgstr "Bitte wählen Sie das Verzeichnis aus:"
@ -1886,12 +1936,6 @@ msgstr "Zurück"
msgid "Previous slides" msgid "Previous slides"
msgstr "Letzte Folien" msgstr "Letzte Folien"
msgid "Print ballot paper"
msgstr "Stimmzettel drucken"
msgid "Print ballot papers"
msgstr "Stimmzettel drucken"
msgid "Privacy Policy" msgid "Privacy Policy"
msgstr "Datenschutzerklärung" msgstr "Datenschutzerklärung"
@ -1931,15 +1975,15 @@ msgstr "Öffentlicher Eintrag"
msgid "Publish" msgid "Publish"
msgstr "Veröffentlichen" msgstr "Veröffentlichen"
msgid "Publish immediately"
msgstr "Direkt veröffentlichen"
msgid "Put all candidates on the list of speakers" msgid "Put all candidates on the list of speakers"
msgstr "Alle Kandidaten auf die Redeliste setzen" msgstr "Alle Kandidaten auf die Redeliste setzen"
msgid "Queue" msgid "Queue"
msgstr "Warteliste" msgstr "Warteliste"
msgid "Quorum"
msgstr "Quorum"
msgid "Re-add last speaker" msgid "Re-add last speaker"
msgstr "Letzte/n Redner/in zurückholen" msgstr "Letzte/n Redner/in zurückholen"
@ -1949,6 +1993,9 @@ msgstr "Begründung"
msgid "Reason required for creating new motion" msgid "Reason required for creating new motion"
msgstr "Begründung erforderlich zur Erstellung neuer Anträge" msgstr "Begründung erforderlich zur Erstellung neuer Anträge"
msgid "Received votes"
msgstr "Empfangene Stimmen"
msgid "Recommendation" msgid "Recommendation"
msgstr "Empfehlung" msgstr "Empfehlung"
@ -2266,6 +2313,9 @@ msgstr "Einfacher Arbeitsablauf"
msgid "Simple majority" msgid "Simple majority"
msgstr "Einfache Mehrheit" msgstr "Einfache Mehrheit"
msgid "Single votes"
msgstr "Einzelstimmen"
msgid "Slide" msgid "Slide"
msgstr "Folie" msgstr "Folie"
@ -2284,6 +2334,9 @@ msgstr "Sachgebiete sortieren"
msgid "Sort comments" msgid "Sort comments"
msgstr "Kommentare sortieren" msgstr "Kommentare sortieren"
msgid "Sort election results by amount of votes"
msgstr "Wahlergebnisse nach Stimmanzahl sortieren"
msgid "Sort list of speakers" msgid "Sort list of speakers"
msgstr "Redeliste sortieren" msgstr "Redeliste sortieren"
@ -2299,9 +2352,6 @@ msgstr "Namen der Teilnehmenden sortieren nach"
msgid "Speakers" msgid "Speakers"
msgstr "Redner/innen" msgstr "Redner/innen"
msgid "Special values"
msgstr "Spezielle Werte"
msgid "Staff" msgid "Staff"
msgstr "Mitarbeitende" msgstr "Mitarbeitende"
@ -2314,6 +2364,9 @@ msgstr "Standard-PDF-Papierformat"
msgid "Start time" msgid "Start time"
msgstr "Startzeit" msgstr "Startzeit"
msgid "Start voting"
msgstr "Stimmabgabe starten"
msgid "State" msgid "State"
msgstr "Status" msgstr "Status"
@ -2348,18 +2401,30 @@ msgid "Stop submitting new motions by non-staff users"
msgstr "" msgstr ""
"Einreichen von neuen Anträgen stoppen für Nutzer ohne Verwaltungsrechte" "Einreichen von neuen Anträgen stoppen für Nutzer ohne Verwaltungsrechte"
msgid "Stop voting"
msgstr "Stimmabgabe beenden"
msgid "Structure level" msgid "Structure level"
msgstr "Gliederungsebene" msgstr "Gliederungsebene"
msgid "Subcategory" msgid "Subcategory"
msgstr "Untersachgebiet" msgstr "Untersachgebiet"
msgid "Submit selection now?"
msgstr "Auswahl jetzt senden?"
msgid "Submit vote now"
msgstr "Stimme(n) jetzt senden"
msgid "Submitters" msgid "Submitters"
msgstr "Antragsteller/in" msgstr "Antragsteller/in"
msgid "Submitters changed" msgid "Submitters changed"
msgstr "Antragsteller/in geändert" msgstr "Antragsteller/in geändert"
msgid "Sum of votes including general No/Abstain"
msgstr "Summe der Stimmen einschließlich generelles Nein/Enthaltung"
msgid "Summary of changes" msgid "Summary of changes"
msgstr "Zusammenfassung der Änderungen" msgstr "Zusammenfassung der Änderungen"
@ -2402,12 +2467,6 @@ msgstr "Textimport"
msgid "Text separator" msgid "Text separator"
msgstr "Texttrenner" msgstr "Texttrenner"
msgid "The 100 % base of a voting result consists of"
msgstr "Die 100%-Basis eines Abstimmungsergebnisses besteht aus"
msgid "The 100-%-base of an election result consists of"
msgstr "Die 100%-Basis eines Wahlergebnisses besteht aus"
msgid "The assembly may decide:" msgid "The assembly may decide:"
msgstr "Die Versammlung möge beschließen:" msgstr "Die Versammlung möge beschließen:"
@ -2430,6 +2489,9 @@ msgstr ""
"Die Datei scheint einige ausgelassene Spalten zu haben. Sie werden als leer " "Die Datei scheint einige ausgelassene Spalten zu haben. Sie werden als leer "
"betrachtet." "betrachtet."
msgid "The individual votes were anonymized."
msgstr "Die individuellen Stimmen wurden anonymisiert."
msgid "The link is broken. Please contact your system administrator." msgid "The link is broken. Please contact your system administrator."
msgstr "" msgstr ""
"Der Link ist defekt. Bitte kontaktieren Sie den zuständigen Administrator." "Der Link ist defekt. Bitte kontaktieren Sie den zuständigen Administrator."
@ -2628,8 +2690,8 @@ msgstr "Typ"
msgid "Undone" msgid "Undone"
msgstr "unerledigt" msgstr "unerledigt"
msgid "Unpublish" msgid "Unknown user"
msgstr "Nicht veröffentlichen" msgstr "Unbekannter Nutzer"
msgid "Unsupport" msgid "Unsupport"
msgstr "Unterstützung zurückziehen" msgstr "Unterstützung zurückziehen"
@ -2692,9 +2754,18 @@ msgstr "Abstimmung"
msgid "Vote created" msgid "Vote created"
msgstr "Abstimmung erstellt" msgstr "Abstimmung erstellt"
msgid "Vote currently possible"
msgstr "Stimmabgabe aktuell möglich"
msgid "Vote deleted" msgid "Vote deleted"
msgstr "Abstimmung gelöscht" msgstr "Abstimmung gelöscht"
msgid "Vote finished"
msgstr "Stimmabgabe abgeschlossen"
msgid "Vote not possible"
msgstr "Stimmabgabe nicht möglich"
msgid "Vote updated" msgid "Vote updated"
msgstr "Abstimmung aktualisiert" msgstr "Abstimmung aktualisiert"
@ -2707,9 +2778,24 @@ msgstr "Im Wahlvorgang"
msgid "Voting and ballot papers" msgid "Voting and ballot papers"
msgstr "Abstimmung und Stimmzettel" msgstr "Abstimmung und Stimmzettel"
msgid "Voting is currently in progress."
msgstr "Stimmabgabe läuft aktuell "
msgid "Voting method"
msgstr "Wahlmethode"
msgid "Voting opened"
msgstr "Abstimmung eröffnet"
msgid "Voting result" msgid "Voting result"
msgstr "Abstimmungsergebnis" msgstr "Abstimmungsergebnis"
msgid "Voting successful."
msgstr "Stimmabgabe erfolgreich."
msgid "Voting type"
msgstr "Art der Stimmabgabe"
msgid "WEP" msgid "WEP"
msgstr "WEP" msgstr "WEP"
@ -2728,9 +2814,6 @@ msgstr "WLAN-Passwort"
msgid "WPA/WPA2" msgid "WPA/WPA2"
msgstr "WPA/WPA2" msgstr "WPA/WPA2"
msgid "Waiting for results"
msgstr "Auf Ergebnisse wartend ..."
msgid "Web interface header logo" msgid "Web interface header logo"
msgstr "Web-Interface-Kopfzeilen-Logo" msgstr "Web-Interface-Kopfzeilen-Logo"
@ -2772,6 +2855,9 @@ msgstr "Arbeitsabläufe"
msgid "Yes" msgid "Yes"
msgstr "Ja" msgstr "Ja"
msgid "Yes per candidate"
msgstr "Ja pro Kandidat"
msgid "Yes/No" msgid "Yes/No"
msgstr "Ja/Nein" msgstr "Ja/Nein"
@ -2808,6 +2894,9 @@ msgstr ""
msgid "You do not have the required permission to see that page!" msgid "You do not have the required permission to see that page!"
msgstr "Sie haben leider keine Berechtigung diese Seite zu sehen." msgstr "Sie haben leider keine Berechtigung diese Seite zu sehen."
msgid "You have already voted."
msgstr "Sie haben bereits Ihre Stimme abgegeben."
msgid "You have to fill this field." msgid "You have to fill this field."
msgstr "Sie müssen diese Feld ausfüllen." msgstr "Sie müssen diese Feld ausfüllen."
@ -2817,6 +2906,14 @@ msgstr "Sie haben Änderungen vorgenommen."
msgid "You override the personally set password!" msgid "You override the personally set password!"
msgstr "Sie überschreiben hiermit das persönlich gesetzte Passwort!" msgstr "Sie überschreiben hiermit das persönlich gesetzte Passwort!"
msgid "You reached the maximum amount of votes. Deselect somebody first."
msgstr ""
"Sie haben die maximale Anzahl von Stimmen erreicht. Deselektieren Sie zuerst"
" eine Auswahl."
msgid "Your decision cannot be changed afterwards."
msgstr "Ihre Stimmabgabe kann anschließend nicht mehr geändert werden."
msgid "Your password was resetted successfully!" msgid "Your password was resetted successfully!"
msgstr "Ihr Passwort wurde erfolgreich zurückgesetzt!" msgstr "Ihr Passwort wurde erfolgreich zurückgesetzt!"
@ -2854,6 +2951,9 @@ msgstr "Gruppe(n) hinzufügen"
msgid "adjourned" msgid "adjourned"
msgstr "vertagt" msgstr "vertagt"
msgid "analog"
msgstr "analog"
msgid "and" msgid "and"
msgstr "und" msgstr "und"
@ -2872,6 +2972,9 @@ msgstr "Verbindungen"
msgid "contribution" msgid "contribution"
msgstr "Wortmeldung" msgstr "Wortmeldung"
msgid "created"
msgstr "erstellt"
msgid "custom" msgid "custom"
msgstr "benutzerdefiniert" msgstr "benutzerdefiniert"
@ -2896,6 +2999,9 @@ msgstr "Beispiel"
msgid "female" msgid "female"
msgstr "weiblich" msgstr "weiblich"
msgid "finished (unpublished)"
msgstr "abgeschlossen (unveröffentlicht)"
msgid "fullscreen" msgid "fullscreen"
msgstr "Vollbild" msgstr "Vollbild"
@ -2917,9 +3023,6 @@ msgstr "innerhalb"
msgid "internal" msgid "internal"
msgstr "intern" msgstr "intern"
msgid "is elected"
msgstr "gewählt"
msgid "is now" msgid "is now"
msgstr "ist jetzt" msgstr "ist jetzt"
@ -2953,6 +3056,12 @@ msgstr "benötigt Überprüfung"
msgid "no committee" msgid "no committee"
msgstr "kein Gremium" msgstr "kein Gremium"
msgid "nominal"
msgstr "namentlich"
msgid "non-nominal"
msgstr "nicht-namentlich"
msgid "none" msgid "none"
msgstr "aus" msgstr "aus"
@ -2962,15 +3071,12 @@ msgstr "nicht befasst"
msgid "not decided" msgid "not decided"
msgstr "nicht entschieden" msgstr "nicht entschieden"
msgid "not reached"
msgstr "nicht erreicht"
msgid "not reached."
msgstr "nicht erreicht."
msgid "of" msgid "of"
msgstr "von" msgstr "von"
msgid "open votes"
msgstr "offene Stimmabgaben"
msgid "outside" msgid "outside"
msgstr "außerhalb" msgstr "außerhalb"
@ -2989,12 +3095,6 @@ msgstr "öffentlich"
msgid "published" msgid "published"
msgstr "veröffentlicht" msgstr "veröffentlicht"
msgid "reached"
msgstr "erreicht"
msgid "reached."
msgstr "erreicht."
msgid "refered to committee" msgid "refered to committee"
msgstr "in Ausschuss verwiesen" msgstr "in Ausschuss verwiesen"
@ -3016,6 +3116,9 @@ msgstr "Ergebnisse"
msgid "selected" msgid "selected"
msgstr "ausgewählt" msgstr "ausgewählt"
msgid "started"
msgstr "gestartet"
msgid "statute paragraphs have been imported." msgid "statute paragraphs have been imported."
msgstr "Satzungsabschnitte wurden importiert." msgstr "Satzungsabschnitte wurden importiert."
@ -3034,9 +3137,6 @@ msgstr "bis"
msgid "undocumented" msgid "undocumented"
msgstr "nicht erfasst" msgstr "nicht erfasst"
msgid "unpublished"
msgstr "unveröffentlicht"
msgid "with filter" msgid "with filter"
msgstr "mit Filter" msgstr "mit Filter"

View File

@ -7,6 +7,9 @@ msgstr ""
msgid "%num% emails were send sucessfully." msgid "%num% emails were send sucessfully."
msgstr "" msgstr ""
msgid "100% base"
msgstr ""
msgid "" msgid ""
"<a href=\"http://www.openslides.org\">OpenSlides</a> is a free web based " "<a href=\"http://www.openslides.org\">OpenSlides</a> is a free web based "
"presentation and assembly system for visualizing and controlling agenda, " "presentation and assembly system for visualizing and controlling agenda, "
@ -126,6 +129,9 @@ msgstr ""
msgid "All valid ballots" msgid "All valid ballots"
msgstr "" msgstr ""
msgid "All votes will be lost."
msgstr ""
msgid "All your changes are saved immediately." msgid "All your changes are saved immediately."
msgstr "" msgstr ""
@ -153,15 +159,6 @@ msgstr ""
msgid "Always" msgid "Always"
msgstr "" msgstr ""
msgid "Always Yes-No-Abstain per candidate"
msgstr ""
msgid "Always Yes/No per candidate"
msgstr ""
msgid "Always one option per candidate"
msgstr ""
msgid "Amendment" msgid "Amendment"
msgstr "" msgstr ""
@ -183,19 +180,28 @@ msgstr ""
msgid "Amendments to" msgid "Amendments to"
msgstr "" msgstr ""
msgid "Amount of votes"
msgstr ""
msgid "An email with a password reset link was send!" msgid "An email with a password reset link was send!"
msgstr "" msgstr ""
msgid "An unknown error occurred." msgid "An unknown error occurred."
msgstr "" msgstr ""
msgid "Anonymize votes"
msgstr ""
msgid "Anonymous"
msgstr ""
msgid "Apply" msgid "Apply"
msgstr "" msgstr ""
msgid "Arabic" msgid "Arabic"
msgstr "" msgstr ""
msgid "Are you sure you want to copy the final version to the print template?" msgid "Are you sure you want to anonymize all votes? This cannot be undone."
msgstr "" msgstr ""
msgid "Are you sure you want to delete all selected elections?" msgid "Are you sure you want to delete all selected elections?"
@ -216,9 +222,6 @@ msgstr ""
msgid "Are you sure you want to delete the print template?" msgid "Are you sure you want to delete the print template?"
msgstr "" msgstr ""
msgid "Are you sure you want to delete this ballot?"
msgstr ""
msgid "Are you sure you want to delete this category and all subcategories?" msgid "Are you sure you want to delete this category and all subcategories?"
msgstr "" msgstr ""
@ -264,6 +267,9 @@ msgstr ""
msgid "Are you sure you want to delete this topic?" msgid "Are you sure you want to delete this topic?"
msgstr "" msgstr ""
msgid "Are you sure you want to delete this vote?"
msgstr ""
msgid "Are you sure you want to delete this workflow?" msgid "Are you sure you want to delete this workflow?"
msgstr "" msgstr ""
@ -308,6 +314,9 @@ msgstr ""
msgid "Are you sure you want to reset all passwords to the default ones?" msgid "Are you sure you want to reset all passwords to the default ones?"
msgstr "" msgstr ""
msgid "Are you sure you want to reset this vote?"
msgstr ""
msgid "Are you sure you want to send an invitation email to the user?" msgid "Are you sure you want to send an invitation email to the user?"
msgstr "" msgstr ""
@ -329,7 +338,7 @@ msgstr ""
msgid "Attachments" msgid "Attachments"
msgstr "" msgstr ""
msgid "Automatic assign of method" msgid "Available votes"
msgstr "" msgstr ""
msgid "Back" msgid "Back"
@ -341,7 +350,10 @@ msgstr ""
msgid "Ballot" msgid "Ballot"
msgstr "" msgstr ""
msgid "Ballot and ballot papers" msgid "Ballot opened"
msgstr ""
msgid "Ballot papers"
msgstr "" msgstr ""
msgid "Base folder" msgid "Base folder"
@ -551,6 +563,9 @@ msgstr ""
msgid "Clear tags" msgid "Clear tags"
msgstr "" msgstr ""
msgid "Click here to vote!"
msgstr ""
msgid "Close" msgid "Close"
msgstr "" msgstr ""
@ -617,6 +632,9 @@ msgstr ""
msgid "Countdowns" msgid "Countdowns"
msgstr "" msgstr ""
msgid "Counting of votes is in progress ..."
msgstr ""
msgid "Couple countdown with the list of speakers" msgid "Couple countdown with the list of speakers"
msgstr "" msgstr ""
@ -668,7 +686,13 @@ msgstr ""
msgid "Default" msgid "Default"
msgstr "" msgstr ""
msgid "Default comment on the ballot paper" msgid "Default 100 % base of a voting result"
msgstr ""
msgid "Default 100 % base of an election result"
msgstr ""
msgid "Default election method"
msgstr "" msgstr ""
msgid "Default encoding for all csv exports" msgid "Default encoding for all csv exports"
@ -677,6 +701,9 @@ msgstr ""
msgid "Default group" msgid "Default group"
msgstr "" msgstr ""
msgid "Default groups with voting rights"
msgstr ""
msgid "Default line numbering" msgid "Default line numbering"
msgstr "" msgstr ""
@ -792,6 +819,17 @@ msgstr ""
msgid "Duration" msgid "Duration"
msgstr "" msgstr ""
msgid ""
"During voting, OpenSlides does not store the individual user ID of the "
"voter. This in no way means that a\n"
" non-nominal vote is completely anonymous and secure. You cannot "
"track the decisions of your voters after the\n"
" data has been submitted. The validity of the data cannot always be "
"guaranteed, especially if you use OpenSlides\n"
" in a distributed online setup. You are responsible for your own "
"actions."
msgstr ""
msgid "Edit" msgid "Edit"
msgstr "" msgstr ""
@ -816,10 +854,10 @@ msgstr ""
msgid "Edit the whole motion text" msgid "Edit the whole motion text"
msgstr "" msgstr ""
msgid "Edit topic" msgid "Edit to enter votes."
msgstr "" msgstr ""
msgid "Elected" msgid "Edit topic"
msgstr "" msgstr ""
msgid "Election" msgid "Election"
@ -828,12 +866,6 @@ msgstr ""
msgid "Election documents" msgid "Election documents"
msgstr "" msgstr ""
msgid "Election method"
msgstr ""
msgid "Election result"
msgstr ""
msgid "Elections" msgid "Elections"
msgstr "" msgstr ""
@ -884,10 +916,10 @@ msgstr ""
msgid "Enter participant number" msgid "Enter participant number"
msgstr "" msgstr ""
msgid "Enter votes" msgid "Enter your email to send the password reset link"
msgstr "" msgstr ""
msgid "Enter your email to send the password reset link" msgid "Entitled to vote"
msgstr "" msgstr ""
msgid "Error" msgid "Error"
@ -899,6 +931,9 @@ msgstr ""
msgid "Error during PDF creation of motion:" msgid "Error during PDF creation of motion:"
msgstr "" msgstr ""
msgid "Error in form field."
msgstr ""
msgid "Error: The new passwords do not match." msgid "Error: The new passwords do not match."
msgstr "" msgstr ""
@ -992,13 +1027,6 @@ msgstr ""
msgid "Following users are currently editing this motion:" msgid "Following users are currently editing this motion:"
msgstr "" msgstr ""
msgid ""
"For Yes/No/Abstain per candidate and Yes/No per candidate the 100-%-base "
"depends on the election method: If there is only one option per candidate, "
"the sum of all votes of all candidates is 100 %. Otherwise for each "
"candidate the sum of all votes is 100 %."
msgstr ""
msgid "Forgot Password?" msgid "Forgot Password?"
msgstr "" msgstr ""
@ -1020,6 +1048,12 @@ msgstr ""
msgid "General" msgid "General"
msgstr "" msgstr ""
msgid "General Abstain"
msgstr ""
msgid "General No"
msgstr ""
msgid "Generate new passwords" msgid "Generate new passwords"
msgstr "" msgstr ""
@ -1050,9 +1084,15 @@ msgstr ""
msgid "Has amendments" msgid "Has amendments"
msgstr "" msgstr ""
msgid "Has been voted for"
msgstr ""
msgid "Has no speakers" msgid "Has no speakers"
msgstr "" msgstr ""
msgid "Has not been voted for"
msgstr ""
msgid "Has notes" msgid "Has notes"
msgstr "" msgstr ""
@ -1089,7 +1129,7 @@ msgstr ""
msgid "Hide the amount of speakers in subtitle of list of speakers slide" msgid "Hide the amount of speakers in subtitle of list of speakers slide"
msgstr "" msgstr ""
msgid "Hint for ballot paper" msgid "Hint on voting"
msgstr "" msgstr ""
msgid "History" msgid "History"
@ -1101,6 +1141,9 @@ msgstr ""
msgid "How to create new amendments" msgid "How to create new amendments"
msgstr "" msgstr ""
msgid "I know the risk"
msgstr ""
msgid "Identifier" msgid "Identifier"
msgstr "" msgstr ""
@ -1127,6 +1170,9 @@ msgstr ""
msgid "In motion list, motion detail and PDF." msgid "In motion list, motion detail and PDF."
msgstr "" msgstr ""
msgid "In the election process"
msgstr ""
msgid "Inactive" msgid "Inactive"
msgstr "" msgstr ""
@ -1268,6 +1314,9 @@ msgstr ""
msgid "List of speakers overlay" msgid "List of speakers overlay"
msgstr "" msgstr ""
msgid "List of votes"
msgstr ""
msgid "List view" msgid "List view"
msgstr "" msgstr ""
@ -1286,7 +1335,7 @@ msgstr ""
msgid "Main motion and line number" msgid "Main motion and line number"
msgstr "" msgstr ""
msgid "Mark as elected" msgid "Mark as personal favorite"
msgstr "" msgstr ""
msgid "Mark speaker" msgid "Mark speaker"
@ -1304,6 +1353,9 @@ msgstr ""
msgid "Meta information" msgid "Meta information"
msgstr "" msgstr ""
msgid "More"
msgstr ""
msgid "Motion" msgid "Motion"
msgstr "" msgstr ""
@ -1508,6 +1560,9 @@ msgstr ""
msgid "No recommendation" msgid "No recommendation"
msgstr "" msgstr ""
msgid "No results yet."
msgstr ""
msgid "No search result found" msgid "No search result found"
msgstr "" msgstr ""
@ -1526,6 +1581,9 @@ msgstr ""
msgid "None" msgid "None"
msgstr "" msgstr ""
msgid "Not suitable for formal secret voting!"
msgstr ""
msgid "Note, that the default password will be changed to the new generated one." msgid "Note, that the default password will be changed to the new generated one."
msgstr "" msgstr ""
@ -1537,6 +1595,9 @@ msgstr ""
msgid "Notes" msgid "Notes"
msgstr "" msgstr ""
msgid "Number candidates"
msgstr ""
msgid "Number motions" msgid "Number motions"
msgstr "" msgstr ""
@ -1549,6 +1610,9 @@ msgstr ""
msgid "Number of all participants" msgid "Number of all participants"
msgstr "" msgstr ""
msgid "Number of ballot papers"
msgstr ""
msgid "Number of ballot papers (selection)" msgid "Number of ballot papers (selection)"
msgstr "" msgstr ""
@ -1599,7 +1663,7 @@ msgid ""
"fields are optional and may be empty." "fields are optional and may be empty."
msgstr "" msgstr ""
msgid "One vote per candidate" msgid "Online voting is impossible to secure"
msgstr "" msgstr ""
msgid "Only countdown" msgid "Only countdown"
@ -1767,12 +1831,6 @@ msgstr ""
msgid "Please enter your new password" msgid "Please enter your new password"
msgstr "" msgstr ""
msgid "Please fill in all required values"
msgstr ""
msgid "Please fill in the values for each candidate"
msgstr ""
msgid "Please select the directory:" msgid "Please select the directory:"
msgstr "" msgstr ""
@ -1809,12 +1867,6 @@ msgstr ""
msgid "Previous slides" msgid "Previous slides"
msgstr "" msgstr ""
msgid "Print ballot paper"
msgstr ""
msgid "Print ballot papers"
msgstr ""
msgid "Privacy Policy" msgid "Privacy Policy"
msgstr "" msgstr ""
@ -1854,15 +1906,15 @@ msgstr ""
msgid "Publish" msgid "Publish"
msgstr "" msgstr ""
msgid "Publish immediately"
msgstr ""
msgid "Put all candidates on the list of speakers" msgid "Put all candidates on the list of speakers"
msgstr "" msgstr ""
msgid "Queue" msgid "Queue"
msgstr "" msgstr ""
msgid "Quorum"
msgstr ""
msgid "Re-add last speaker" msgid "Re-add last speaker"
msgstr "" msgstr ""
@ -1872,6 +1924,9 @@ msgstr ""
msgid "Reason required for creating new motion" msgid "Reason required for creating new motion"
msgstr "" msgstr ""
msgid "Received votes"
msgstr ""
msgid "Recommendation" msgid "Recommendation"
msgstr "" msgstr ""
@ -2182,6 +2237,9 @@ msgstr ""
msgid "Simple majority" msgid "Simple majority"
msgstr "" msgstr ""
msgid "Single votes"
msgstr ""
msgid "Slide" msgid "Slide"
msgstr "" msgstr ""
@ -2200,6 +2258,9 @@ msgstr ""
msgid "Sort comments" msgid "Sort comments"
msgstr "" msgstr ""
msgid "Sort election results by amount of votes"
msgstr ""
msgid "Sort list of speakers" msgid "Sort list of speakers"
msgstr "" msgstr ""
@ -2215,9 +2276,6 @@ msgstr ""
msgid "Speakers" msgid "Speakers"
msgstr "" msgstr ""
msgid "Special values"
msgstr ""
msgid "Staff" msgid "Staff"
msgstr "" msgstr ""
@ -2230,6 +2288,9 @@ msgstr ""
msgid "Start time" msgid "Start time"
msgstr "" msgstr ""
msgid "Start voting"
msgstr ""
msgid "State" msgid "State"
msgstr "" msgstr ""
@ -2263,18 +2324,30 @@ msgstr ""
msgid "Stop submitting new motions by non-staff users" msgid "Stop submitting new motions by non-staff users"
msgstr "" msgstr ""
msgid "Stop voting"
msgstr ""
msgid "Structure level" msgid "Structure level"
msgstr "" msgstr ""
msgid "Subcategory" msgid "Subcategory"
msgstr "" msgstr ""
msgid "Submit selection now?"
msgstr ""
msgid "Submit vote now"
msgstr ""
msgid "Submitters" msgid "Submitters"
msgstr "" msgstr ""
msgid "Submitters changed" msgid "Submitters changed"
msgstr "" msgstr ""
msgid "Sum of votes including general No/Abstain"
msgstr ""
msgid "Summary of changes" msgid "Summary of changes"
msgstr "" msgstr ""
@ -2317,12 +2390,6 @@ msgstr ""
msgid "Text separator" msgid "Text separator"
msgstr "" msgstr ""
msgid "The 100 % base of a voting result consists of"
msgstr ""
msgid "The 100-%-base of an election result consists of"
msgstr ""
msgid "The assembly may decide:" msgid "The assembly may decide:"
msgstr "" msgstr ""
@ -2341,6 +2408,9 @@ msgstr ""
msgid "The file seems to have some ommitted columns. They will be considered empty." msgid "The file seems to have some ommitted columns. They will be considered empty."
msgstr "" msgstr ""
msgid "The individual votes were anonymized."
msgstr ""
msgid "The link is broken. Please contact your system administrator." msgid "The link is broken. Please contact your system administrator."
msgstr "" msgstr ""
@ -2505,7 +2575,7 @@ msgstr ""
msgid "Undone" msgid "Undone"
msgstr "" msgstr ""
msgid "Unpublish" msgid "Unknown user"
msgstr "" msgstr ""
msgid "Unsupport" msgid "Unsupport"
@ -2563,9 +2633,18 @@ msgstr ""
msgid "Vote created" msgid "Vote created"
msgstr "" msgstr ""
msgid "Vote currently possible"
msgstr ""
msgid "Vote deleted" msgid "Vote deleted"
msgstr "" msgstr ""
msgid "Vote finished"
msgstr ""
msgid "Vote not possible"
msgstr ""
msgid "Vote updated" msgid "Vote updated"
msgstr "" msgstr ""
@ -2578,9 +2657,24 @@ msgstr ""
msgid "Voting and ballot papers" msgid "Voting and ballot papers"
msgstr "" msgstr ""
msgid "Voting is currently in progress."
msgstr ""
msgid "Voting method"
msgstr ""
msgid "Voting opened"
msgstr ""
msgid "Voting result" msgid "Voting result"
msgstr "" msgstr ""
msgid "Voting successful."
msgstr ""
msgid "Voting type"
msgstr ""
msgid "WEP" msgid "WEP"
msgstr "" msgstr ""
@ -2599,9 +2693,6 @@ msgstr ""
msgid "WPA/WPA2" msgid "WPA/WPA2"
msgstr "" msgstr ""
msgid "Waiting for results"
msgstr ""
msgid "Web interface header logo" msgid "Web interface header logo"
msgstr "" msgstr ""
@ -2639,6 +2730,9 @@ msgstr ""
msgid "Yes" msgid "Yes"
msgstr "" msgstr ""
msgid "Yes per candidate"
msgstr ""
msgid "Yes/No" msgid "Yes/No"
msgstr "" msgstr ""
@ -2669,6 +2763,9 @@ msgstr ""
msgid "You do not have the required permission to see that page!" msgid "You do not have the required permission to see that page!"
msgstr "" msgstr ""
msgid "You have already voted."
msgstr ""
msgid "You have to fill this field." msgid "You have to fill this field."
msgstr "" msgstr ""
@ -2678,6 +2775,12 @@ msgstr ""
msgid "You override the personally set password!" msgid "You override the personally set password!"
msgstr "" msgstr ""
msgid "You reached the maximum amount of votes. Deselect somebody first."
msgstr ""
msgid "Your decision cannot be changed afterwards."
msgstr ""
msgid "Your password was resetted successfully!" msgid "Your password was resetted successfully!"
msgstr "" msgstr ""
@ -2714,6 +2817,9 @@ msgstr ""
msgid "adjourned" msgid "adjourned"
msgstr "" msgstr ""
msgid "analog"
msgstr ""
msgid "and" msgid "and"
msgstr "" msgstr ""
@ -2732,6 +2838,9 @@ msgstr ""
msgid "contribution" msgid "contribution"
msgstr "" msgstr ""
msgid "created"
msgstr ""
msgid "custom" msgid "custom"
msgstr "" msgstr ""
@ -2756,6 +2865,9 @@ msgstr ""
msgid "female" msgid "female"
msgstr "" msgstr ""
msgid "finished (unpublished)"
msgstr ""
msgid "fullscreen" msgid "fullscreen"
msgstr "" msgstr ""
@ -2777,9 +2889,6 @@ msgstr ""
msgid "internal" msgid "internal"
msgstr "" msgstr ""
msgid "is elected"
msgstr ""
msgid "is now" msgid "is now"
msgstr "" msgstr ""
@ -2813,6 +2922,12 @@ msgstr ""
msgid "no committee" msgid "no committee"
msgstr "" msgstr ""
msgid "nominal"
msgstr ""
msgid "non-nominal"
msgstr ""
msgid "none" msgid "none"
msgstr "" msgstr ""
@ -2822,15 +2937,12 @@ msgstr ""
msgid "not decided" msgid "not decided"
msgstr "" msgstr ""
msgid "not reached"
msgstr ""
msgid "not reached."
msgstr ""
msgid "of" msgid "of"
msgstr "" msgstr ""
msgid "open votes"
msgstr ""
msgid "outside" msgid "outside"
msgstr "" msgstr ""
@ -2849,12 +2961,6 @@ msgstr ""
msgid "published" msgid "published"
msgstr "" msgstr ""
msgid "reached"
msgstr ""
msgid "reached."
msgstr ""
msgid "refered to committee" msgid "refered to committee"
msgstr "" msgstr ""
@ -2876,6 +2982,9 @@ msgstr ""
msgid "selected" msgid "selected"
msgstr "" msgstr ""
msgid "started"
msgstr ""
msgid "statute paragraphs have been imported." msgid "statute paragraphs have been imported."
msgstr "" msgstr ""
@ -2894,9 +3003,6 @@ msgstr ""
msgid "undocumented" msgid "undocumented"
msgstr "" msgstr ""
msgid "unpublished"
msgstr ""
msgid "with filter" msgid "with filter"
msgstr "" msgstr ""

View File

@ -290,6 +290,10 @@ b,
font-weight: 500; font-weight: 500;
} }
.italic {
font-style: italic;
}
.generic-mini-button { .generic-mini-button {
bottom: -28px; bottom: -28px;
z-index: 100; z-index: 100;

View File

@ -15,7 +15,7 @@ def get_config_variables():
name="assignment_poll_method", name="assignment_poll_method",
default_value="votes", default_value="votes",
input_type="choice", input_type="choice",
label="Preselected election method", label="Default election method",
choices=tuple( choices=tuple(
{"value": method[0], "display_name": method[1]} {"value": method[0], "display_name": method[1]}
for method in AssignmentPoll.POLLMETHODS for method in AssignmentPoll.POLLMETHODS
@ -29,7 +29,7 @@ def get_config_variables():
name="assignment_poll_default_100_percent_base", name="assignment_poll_default_100_percent_base",
default_value="valid", default_value="valid",
input_type="choice", input_type="choice",
label="The 100-%-base of an election result consists of", label="Default 100 % base of an election result",
choices=tuple( choices=tuple(
{"value": base[0], "display_name": base[1]} {"value": base[0], "display_name": base[1]}
for base in AssignmentPoll.PERCENT_BASES for base in AssignmentPoll.PERCENT_BASES
@ -90,7 +90,7 @@ def get_config_variables():
name="assignments_pdf_ballot_papers_selection", name="assignments_pdf_ballot_papers_selection",
default_value="CUSTOM_NUMBER", default_value="CUSTOM_NUMBER",
input_type="choice", input_type="choice",
label="Number of ballot papers (selection)", label="Number of ballot papers",
choices=( choices=(
{"value": "NUMBER_OF_DELEGATES", "display_name": "Number of all delegates"}, {"value": "NUMBER_OF_DELEGATES", "display_name": "Number of all delegates"},
{ {

View File

@ -141,7 +141,7 @@ class Migration(migrations.Migration):
choices=[ choices=[
("YN", "Yes/No per candidate"), ("YN", "Yes/No per candidate"),
("YNA", "Yes/No/Abstain per candidate"), ("YNA", "Yes/No/Abstain per candidate"),
("votes", "Sum of votes inclusive global ones"), ("votes", "Sum of votes including general No/Abstain"),
("valid", "All valid ballots"), ("valid", "All valid ballots"),
("cast", "All casted ballots"), ("cast", "All casted ballots"),
("disabled", "Disabled (no percents)"), ("disabled", "Disabled (no percents)"),

View File

@ -335,7 +335,7 @@ class AssignmentPoll(RESTModelMixin, BasePoll):
PERCENT_BASES = ( PERCENT_BASES = (
(PERCENT_BASE_YN, "Yes/No per candidate"), (PERCENT_BASE_YN, "Yes/No per candidate"),
(PERCENT_BASE_YNA, "Yes/No/Abstain per candidate"), (PERCENT_BASE_YNA, "Yes/No/Abstain per candidate"),
(PERCENT_BASE_VOTES, "Sum of votes inclusive global ones"), (PERCENT_BASE_VOTES, "Sum of votes including general No/Abstain"),
(PERCENT_BASE_VALID, "All valid ballots"), (PERCENT_BASE_VALID, "All valid ballots"),
(PERCENT_BASE_CAST, "All casted ballots"), (PERCENT_BASE_CAST, "All casted ballots"),
(PERCENT_BASE_DISABLED, "Disabled (no percents)"), (PERCENT_BASE_DISABLED, "Disabled (no percents)"),

View File

@ -335,7 +335,7 @@ def get_config_variables():
name="motion_poll_default_100_percent_base", name="motion_poll_default_100_percent_base",
default_value="YNA", default_value="YNA",
input_type="choice", input_type="choice",
label="The 100 % base of a voting result consists of", label="Default 100 % base of a voting result",
choices=tuple( choices=tuple(
{"value": base[0], "display_name": base[1]} {"value": base[0], "display_name": base[1]}
for base in MotionPoll.PERCENT_BASES for base in MotionPoll.PERCENT_BASES
@ -375,7 +375,7 @@ def get_config_variables():
name="motions_pdf_ballot_papers_selection", name="motions_pdf_ballot_papers_selection",
default_value="CUSTOM_NUMBER", default_value="CUSTOM_NUMBER",
input_type="choice", input_type="choice",
label="Number of ballot papers (selection)", label="Number of ballot papers",
choices=( choices=(
{"value": "NUMBER_OF_DELEGATES", "display_name": "Number of all delegates"}, {"value": "NUMBER_OF_DELEGATES", "display_name": "Number of all delegates"},
{ {