Merge pull request #4163 from emanuelschuetze/translations
Updated translation strings and German translation.
This commit is contained in:
commit
c67aef68d9
@ -31,12 +31,12 @@
|
||||
<mat-dialog-actions>
|
||||
<div *ngIf="data.actionButtons">
|
||||
<button *ngFor="let button of data.actionButtons" mat-button (click)="closeDialog(true, button)">
|
||||
<span translate>{{ button }}</span>
|
||||
<span>{{ button | translate }}</span>
|
||||
</button>
|
||||
</div>
|
||||
<div *ngIf="!data.actionButtons">
|
||||
<button *ngIf="!data.multiSelect || data.choices.length" mat-button (click)="closeDialog(true)">
|
||||
<span translate>Ok</span>
|
||||
<span>OK</span>
|
||||
</button>
|
||||
</div>
|
||||
<button mat-button (click)="closeDialog(false)"><span translate>Cancel</span></button>
|
||||
|
@ -5,7 +5,7 @@
|
||||
<mat-icon>
|
||||
{{ filter.count ? 'checked' : ''}}
|
||||
</mat-icon>
|
||||
<span translate>{{ service.getFilterName(filter) }}</span>
|
||||
<span>{{ service.getFilterName(filter) | translate }}</span>
|
||||
</mat-panel-title>
|
||||
</mat-expansion-panel-header>
|
||||
<div class="indent" *ngIf="filter.options && filter.options.length">
|
||||
@ -18,7 +18,7 @@
|
||||
</div>
|
||||
<div class="filter-subtitle" *ngIf="!isFilter(option)">
|
||||
<mat-divider *ngIf="option === '-'"></mat-divider>
|
||||
<span *ngIf="option !== '-'" translate> {{option}}</span>
|
||||
<span *ngIf="option !== '-'"> {{ option | translate }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</mat-action-list>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<mat-list-item *ngFor="let option of this.data.sortOptions.options" (click)="clickedOption(option.property)">
|
||||
<button mat-menu-item>
|
||||
<mat-icon>{{ data.getSortIcon(option) }}</mat-icon>
|
||||
<span translate>{{ data.getSortLabel(option) }}</span>
|
||||
<span>{{ data.getSortLabel(option) | translate}}</span>
|
||||
</button>
|
||||
</mat-list-item>
|
||||
</mat-nav-list>
|
||||
|
@ -16,7 +16,7 @@
|
||||
<div *ngFor="let filter of filterService.filterDefinitions">
|
||||
<button mat-button *ngIf="filter.count" (click)="filterService.clearFilter(filter)">
|
||||
<mat-icon inline>close</mat-icon>
|
||||
<span translate>{{ filterService.getFilterName(filter) }}</span>
|
||||
<span>{{ filterService.getFilterName(filter) | translate }}</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@ -55,7 +55,7 @@
|
||||
<mat-drawer #filterMenu mode="push" position="end">
|
||||
<div class="custom-table-header filter-menu" (click)="this.filterMenu.toggle()">
|
||||
<span><mat-icon>keyboard_arrow_right</mat-icon></span>
|
||||
<span class="right-with-margin" translate>Filter options:</span>
|
||||
<span class="right-with-margin" translate>Filter options</span>
|
||||
</div>
|
||||
<os-filter-menu *ngIf="filterService" (dismissed)="this.filterMenu.close()" [service]="filterService">
|
||||
</os-filter-menu>
|
||||
@ -70,7 +70,7 @@
|
||||
>
|
||||
<button mat-menu-item>
|
||||
<mat-icon>{{ sortService.getSortIcon(option) }}</mat-icon>
|
||||
<span translate> {{ sortService.getSortLabel(option) }}</span>
|
||||
<span>{{ sortService.getSortLabel(option) | translate }}</span>
|
||||
</button>
|
||||
</mat-list-item>
|
||||
</div>
|
||||
|
@ -43,7 +43,7 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<mat-label translate> Column Separator</mat-label>
|
||||
<mat-label translate>Column separator</mat-label>
|
||||
<mat-select class="selection" (selectionChange)="selectColSep($event)" value="">
|
||||
<mat-option *ngFor="let option of columnSeparators" [value]="option.value">
|
||||
{{ option.label | translate }}
|
||||
@ -70,7 +70,7 @@
|
||||
(change)="onSelectFile($event)"
|
||||
/>
|
||||
<button mat-button onclick="document.getElementById('agenda-import-file-input').click()">
|
||||
<span translate> Select file</span>
|
||||
<span translate>Select file</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@ -127,14 +127,13 @@
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="newCount">
|
||||
<span translate>Click on 'import' (right top corner) to import the new topics.
|
||||
</span>
|
||||
<span translate>After verifiy the preview click on 'import' please (see top right).</span>
|
||||
</div>
|
||||
<div>
|
||||
<mat-select *ngIf="nonImportableCount" class="filter-imports" [(value)]="shown" (selectionChange)="setFilter()">
|
||||
<mat-option value="all" translate> Show all </mat-option>
|
||||
<mat-option value="error" translate> Show errors only </mat-option>
|
||||
<mat-option value="noerror" translate> Show correct entries </mat-option>
|
||||
<mat-option value="all" translate>Show all</mat-option>
|
||||
<mat-option value="error" translate>Show errors only</mat-option>
|
||||
<mat-option value="noerror" translate>Show correct entries only</mat-option>
|
||||
</mat-select>
|
||||
</div>
|
||||
<div class="table-container">
|
||||
@ -189,7 +188,7 @@
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="text">
|
||||
<mat-header-cell *matHeaderCellDef translate>Item text</mat-header-cell>
|
||||
<mat-header-cell *matHeaderCellDef translate>Text</mat-header-cell>
|
||||
<mat-cell *matCellDef="let entry" matTooltip="{{ getLongPreview(entry.newEntry.text) }}">
|
||||
{{ getShortPreview(entry.newEntry.text) }}
|
||||
</mat-cell>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<h1 mat-dialog-title>{{ 'Change values for' | translate }} {{ item.getTitle() }}</h1>
|
||||
<h1 mat-dialog-title>{{ 'Edit details for' | translate }} {{ item.getTitle() }}</h1>
|
||||
<div mat-dialog-content>
|
||||
<form class="itemDialogForm" [formGroup]="agendaInfoForm" (keydown)="onKeyDown($event)" (ngSubmit)="saveItemInfo()">
|
||||
<!-- Visibility -->
|
||||
|
@ -66,7 +66,7 @@
|
||||
<ng-template let-item>
|
||||
<span *osPerms="'agenda.can_manage_list_of_speakers'">
|
||||
<span *ngIf="hasSpokenCount(item)" class="red-warning-text speaker-warning">
|
||||
<span translate>Call</span><span> {{ hasSpokenCount(item) + 1 }}</span>
|
||||
{{ hasSpokenCount(item) + 1 }}. <span translate>contribution</span>
|
||||
</span>
|
||||
</span>
|
||||
<mat-button-toggle-group *osPerms="'agenda.can_manage_list_of_speakers'">
|
||||
|
@ -101,7 +101,7 @@
|
||||
[formControl]="topicForm.get('agenda_parent_id')"
|
||||
[multiple]="false"
|
||||
[includeNone]="true"
|
||||
listname="{{ 'Parent Item' | translate }}"
|
||||
listname="{{ 'Parent item' | translate }}"
|
||||
[InputListValues]="agendaItemObserver"
|
||||
></os-search-value-selector>
|
||||
</div>
|
||||
|
@ -20,7 +20,7 @@
|
||||
<mat-menu #menu="matMenu">
|
||||
<button mat-menu-item *ngFor="let registeredModel of registeredModels" (click)="toggleModel(registeredModel)">
|
||||
<mat-checkbox [checked]="registeredModel.enabled" (click)="$event.preventDefault()">
|
||||
<span translate>{{ registeredModel.verboseNamePlural }}</span>
|
||||
<span>{{ registeredModel.verboseNamePlural | translate }}</span>
|
||||
</mat-checkbox>
|
||||
</button>
|
||||
</mat-menu>
|
||||
@ -31,7 +31,7 @@
|
||||
|
||||
<ng-container *ngIf="searchResultCount > 0">
|
||||
<h3>
|
||||
<span translate>Found</span> {{ searchResultCount }}
|
||||
{{ searchResultCount }}
|
||||
<span *ngIf="searchResultCount === 1" translate>result</span>
|
||||
<span *ngIf="searchResultCount > 1" translate>results</span>
|
||||
</h3>
|
||||
|
@ -122,7 +122,7 @@ export class HistoryListComponent extends ListViewBaseComponent<ViewHistory> imp
|
||||
if (information.length > 1) {
|
||||
argument_string = this.translate.instant(information[1]);
|
||||
}
|
||||
return base_string.replace(/{arg1}/g, argument_string);
|
||||
return base_string.replace(/\\{arg1\\}/g, argument_string);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -28,7 +28,7 @@
|
||||
<p>
|
||||
<os-search-value-selector
|
||||
ngDefaultControl
|
||||
listname="{{ 'Parent Item' | translate }}"
|
||||
listname="{{ 'Parent item' | translate }}"
|
||||
[form]="createBlockForm"
|
||||
[formControl]="createBlockForm.get('agenda_parent_id')"
|
||||
[multiple]="false"
|
||||
|
@ -337,7 +337,7 @@
|
||||
<div class="create-poll-button" *ngIf="perms.isAllowed('createpoll', motion)">
|
||||
<button mat-button (click)="createPoll()">
|
||||
<mat-icon class="main-nav-color">poll</mat-icon>
|
||||
<span translate>Create poll</span>
|
||||
<span translate>New vote</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@ -533,7 +533,7 @@
|
||||
[formControl]="contentForm.get('agenda_parent_id')"
|
||||
[multiple]="false"
|
||||
[includeNone]="true"
|
||||
listname="{{ 'Parent Item' | translate }}"
|
||||
listname="{{ 'Parent item' | translate }}"
|
||||
[InputListValues]="agendaItemObserver"
|
||||
></os-search-value-selector>
|
||||
</div>
|
||||
|
@ -10,7 +10,7 @@
|
||||
</os-head-bar>
|
||||
|
||||
<mat-card class="os-form-card import-table">
|
||||
<span translate>Requires comma or semicolon separated values with these column header names in the first row</span>:
|
||||
<span translate>Required comma or semicolon separated values with these column header names in the first row:</span>
|
||||
<br />
|
||||
<div class="code red-warning-text">
|
||||
<span translate>Identifier</span>, <span translate>Title</span>, <span translate>Text</span>,
|
||||
@ -39,7 +39,7 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<mat-label translate> Column Separator</mat-label>
|
||||
<mat-label translate>Column separator</mat-label>
|
||||
<mat-select class="selection" (selectionChange)="selectColSep($event)" value="">
|
||||
<mat-option *ngFor="let option of columnSeparators" [value]="option.value">
|
||||
{{ option.label | translate }}
|
||||
@ -96,8 +96,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="newCount">
|
||||
<span translate>Click on 'import' (right top corner) to import the new motions.
|
||||
</span>
|
||||
<span translate>After verifiy the preview click on 'import' please (see top right).</span>
|
||||
</div>
|
||||
<div>
|
||||
<mat-select *ngIf="nonImportableCount" class="filter-imports" [(value)]="shown" (selectionChange)="setFilter()">
|
||||
|
@ -1,4 +1,4 @@
|
||||
<h2><span translate>Vote form</span></h2>
|
||||
<h2><span translate>Voting result</span></h2>
|
||||
<div class="meta-text">
|
||||
<span translate>Special values</span>:<br />
|
||||
<mat-chip>-1</mat-chip> =
|
||||
@ -8,7 +8,7 @@
|
||||
</div>
|
||||
<div *ngFor="let key of pollKeys">
|
||||
<mat-form-field>
|
||||
<mat-label translate>{{ getLabel(key) | translate }}</mat-label>
|
||||
<mat-label>{{ getLabel(key) | translate }}</mat-label>
|
||||
<input type="number" matInput [(ngModel)]="data[key]" />
|
||||
<!-- TODO mark required fields -->
|
||||
</mat-form-field>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<os-meta-text-block showActionRow="true">
|
||||
<ng-container class="meta-text-block-title">
|
||||
<span translate>Poll</span> <span *ngIf="pollIndex"> {{ pollIndex + 1 }}</span>
|
||||
<span translate>Voting result</span> <span *ngIf="pollIndex"> ({{ pollIndex + 1 }})</span>
|
||||
</ng-container>
|
||||
<ng-container class="meta-text-block-content">
|
||||
<div *ngIf="poll.has_votes" class="on-transition-fade poll-result">
|
||||
@ -11,7 +11,7 @@
|
||||
</mat-icon>
|
||||
<div class="progress-container">
|
||||
<div>
|
||||
<span translate>{{ getLabel(key) }}</span
|
||||
<span>{{ getLabel(key) | translate }}</span
|
||||
>: {{ getNumber(key) }}
|
||||
<span *ngIf="!isAbstractValue(key)">({{ getPercent(key) }}%)</span>
|
||||
</div>
|
||||
@ -29,7 +29,6 @@
|
||||
</div>
|
||||
<!-- quorum -->
|
||||
<div *osPerms="'motions.can_manage'">
|
||||
<div *ngIf="abstractPoll"><span translate>Quorum not calculable.</span></div>
|
||||
<div class="poll-quorum-line" *ngIf="!abstractPoll">
|
||||
<span>
|
||||
<span *ngIf="yesQuorum">
|
||||
@ -37,7 +36,7 @@
|
||||
<mat-icon color="primary" *ngIf="quorumYesReached"> thumb_up </mat-icon>
|
||||
</span>
|
||||
<button mat-button [matMenuTriggerFor]="majorityMenu">
|
||||
<span translate>{{ getQuorumLabel() }}</span> <span
|
||||
<span>{{ getQuorumLabel() | translate }}</span> <span
|
||||
*ngIf="majorityChoice !== 'disabled'"
|
||||
>({{ yesQuorum }})</span
|
||||
>
|
||||
@ -46,22 +45,19 @@
|
||||
<span *ngIf="quorumYesReached" translate> reached.</span>
|
||||
<span *ngIf="!quorumYesReached" translate> not reached.</span>
|
||||
</span>
|
||||
<span *ngIf="majorityChoice === 'disabled'"
|
||||
> — <span translate>No quorum calculated</span>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ng-container>
|
||||
<ng-container class="meta-text-block-action-row" *osPerms="'motions.can_manage_metadata'">
|
||||
<button mat-icon-button class="main-nav-color" matTooltip="{{ 'Edit poll' | translate }}" (click)="editPoll()">
|
||||
<button mat-icon-button class="main-nav-color" matTooltip="{{ 'Edit' | translate }}" (click)="editPoll()">
|
||||
<mat-icon inline>edit</mat-icon>
|
||||
</button>
|
||||
<button
|
||||
mat-icon-button
|
||||
class="main-nav-color"
|
||||
matTooltip="{{ 'Print ballots' | translate }}"
|
||||
matTooltip="{{ 'Print ballot papers' | translate }}"
|
||||
(click)="printBallots()"
|
||||
>
|
||||
<mat-icon inline>local_printshop</mat-icon>
|
||||
@ -69,7 +65,7 @@
|
||||
<button
|
||||
mat-icon-button
|
||||
class="main-nav-color"
|
||||
matTooltip="{{ 'Delete poll' | translate }}"
|
||||
matTooltip="{{ 'Delete' | translate }}"
|
||||
(click)="deletePoll()"
|
||||
>
|
||||
<mat-icon inline>delete</mat-icon>
|
||||
@ -79,6 +75,6 @@
|
||||
|
||||
<mat-menu #majorityMenu="matMenu">
|
||||
<button mat-menu-item *ngFor="let option of majorityChoices" (click)="majorityChoice = option.value">
|
||||
<span translate>{{ option.display_name }}</span>
|
||||
<span>{{ option.display_name | translate }}</span>
|
||||
</button>
|
||||
</mat-menu>
|
||||
|
@ -113,8 +113,8 @@ export class MotionPollComponent implements OnInit {
|
||||
* Sends a delete request for this poll after a confirmation dialog has been accepted.
|
||||
*/
|
||||
public async deletePoll(): Promise<void> {
|
||||
const content = this.translate.instant('The current poll will be deleted!');
|
||||
if (await this.promptService.open('Are you sure?', content)) {
|
||||
const content = this.translate.instant('Are you sure you want to delete this vote?');
|
||||
if (await this.promptService.open('Delete vote?', content)) {
|
||||
this.motionRepo.deletePoll(this.poll);
|
||||
}
|
||||
}
|
||||
|
@ -80,6 +80,6 @@ export class MotionCsvExportService {
|
||||
'B1,Title 2,Text 2,Reason 2,Submitter B, Category B,, Block A',
|
||||
',Title 3, Text 3,,,,,'
|
||||
];
|
||||
this.fileExport.saveFile(rows.join('\n'), this.translate.instant('Motion example') + '.csv');
|
||||
this.fileExport.saveFile(rows.join('\n'), this.translate.instant('motions-example') + '.csv');
|
||||
}
|
||||
}
|
||||
|
@ -88,7 +88,7 @@ export class MotionMultiselectService {
|
||||
* @param motions The motions to change
|
||||
*/
|
||||
public async setStateOfMultiple(motions: ViewMotion[]): Promise<void> {
|
||||
const title = this.translate.instant('This will set the state of all selected motions to:');
|
||||
const title = this.translate.instant('This will set the following state for all selected motions:');
|
||||
const choices = this.workflowRepo.getWorkflowStatesForMotions(motions).map(workflowState => ({
|
||||
id: workflowState.id,
|
||||
label: workflowState.name
|
||||
@ -105,7 +105,7 @@ export class MotionMultiselectService {
|
||||
* @param motions The motions to change
|
||||
*/
|
||||
public async setRecommendation(motions: ViewMotion[]): Promise<void> {
|
||||
const title = this.translate.instant('This will set the recommendation for all selected motions to:');
|
||||
const title = this.translate.instant('This will set the following recommendation for all selected motions:');
|
||||
const choices = this.workflowRepo
|
||||
.getWorkflowStatesForMotions(motions)
|
||||
.filter(workflowState => !!workflowState.recommendation_label)
|
||||
@ -132,7 +132,7 @@ export class MotionMultiselectService {
|
||||
* @param motions The motions to change
|
||||
*/
|
||||
public async setCategory(motions: ViewMotion[]): Promise<void> {
|
||||
const title = this.translate.instant('This will set the category of all selected motions to:');
|
||||
const title = this.translate.instant('This will set the following category for all selected motions:');
|
||||
const clearChoice = 'No category';
|
||||
const selectedChoice = await this.choiceService.open(
|
||||
title,
|
||||
@ -231,7 +231,7 @@ export class MotionMultiselectService {
|
||||
* @param motions The motions for which to change the motionBlock
|
||||
*/
|
||||
public async setMotionBlock(motions: ViewMotion[]): Promise<void> {
|
||||
const title = this.translate.instant('This will change the motion Block for all selected motions:');
|
||||
const title = this.translate.instant('This will set the following motion block for all selected motions:');
|
||||
const clearChoice = 'Clear motion block';
|
||||
const selectedChoice = await this.choiceService.open(
|
||||
title,
|
||||
|
@ -240,7 +240,7 @@ export class MotionPdfService {
|
||||
|
||||
metaTableBody.push([
|
||||
{
|
||||
text: this.translate.instant('Summary of change recommendations'),
|
||||
text: this.translate.instant('Summary of changes'),
|
||||
style: 'boldText'
|
||||
},
|
||||
{
|
||||
|
@ -1,7 +1,7 @@
|
||||
<os-head-bar [nav]="false" [goBack]="true">
|
||||
<!-- Title -->
|
||||
<div class="title-slot">
|
||||
<h2 translate>{{ projector?.name | translate }}</h2>
|
||||
<h2>{{ projector?.name | translate }}</h2>
|
||||
</div>
|
||||
</os-head-bar>
|
||||
|
||||
|
@ -1,16 +1,17 @@
|
||||
<os-head-bar (mainEvent)="goBack()" [mainButton]="true" [nav]="false" [editMode]="true" (saveEvent)="save()">a
|
||||
<!-- Title -->
|
||||
<div class="title-slot"><h2 translate>Change Password</h2></div>
|
||||
<div class="title-slot"><h2 translate>Change password</h2></div>
|
||||
</os-head-bar>
|
||||
<mat-card class="os-card">
|
||||
<div *ngIf="!this.canManage && !this.ownPage">
|
||||
<!-- no Admin, cannot Manage (a.k.a Attack Prevention) -->
|
||||
<span translate>You are not supposed to be here please leave...</span>
|
||||
<span translate>You are not supposed to be here...</span>
|
||||
</div>
|
||||
<div *ngIf="this.canManage && !this.ownPage">
|
||||
<!-- can Manage, but not own Page (a.k.a. Admin) -->
|
||||
<div *ngIf="user">
|
||||
<mat-icon>warning</mat-icon> <span translate>You are changing the password for the user:</span> {{user.full_name}}
|
||||
<h1><span translate>Change password for</span> {{ user.full_name }}</h1>
|
||||
<mat-icon>warning</mat-icon> <span translate>You override the personally set password!</span>
|
||||
</div>
|
||||
<br>
|
||||
<form [formGroup]="adminPasswordForm" (keydown)="onKeyDown($event)">
|
||||
@ -19,7 +20,7 @@
|
||||
[type]="hide_admin_newPassword ? 'password' : 'text'"
|
||||
matInput
|
||||
formControlName="admin_newPassword"
|
||||
placeholder="{{ 'New Password' | translate }}"
|
||||
placeholder="{{ 'New password' | translate }}"
|
||||
/>
|
||||
<mat-icon
|
||||
matSuffix
|
||||
@ -31,19 +32,20 @@
|
||||
</form>
|
||||
<br>
|
||||
<div *ngIf="user">
|
||||
<span translate>Initial Password:</span> {{user.default_password}}
|
||||
<span translate>Initial password</span>: {{ user.default_password }}<br>
|
||||
<span translate>Username</span>: {{ user.username }}
|
||||
</div>
|
||||
<br>
|
||||
<button
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
(click)="hide_admin_newPassword = !hide_admin_newPassword">
|
||||
<span translate>Show Password</span>
|
||||
<mat-icon
|
||||
matSuffix
|
||||
mat-icon-button>
|
||||
{{hide_admin_newPassword ? 'visibility_off' : 'visibility'}}
|
||||
</mat-icon>
|
||||
<span translate>Show password</span>
|
||||
</button>
|
||||
</div>
|
||||
<div *ngIf="this.ownPage">
|
||||
@ -54,7 +56,7 @@
|
||||
[type]="hide_user_password ? 'password' : 'text'"
|
||||
matInput
|
||||
formControlName="user_oldPassword"
|
||||
placeholder="{{ 'Old Password' | translate }}"
|
||||
placeholder="{{ 'Old password' | translate }}"
|
||||
/>
|
||||
</mat-form-field><br>
|
||||
<mat-form-field>
|
||||
@ -62,7 +64,7 @@
|
||||
[type]="hide_user_password ? 'password' : 'text'"
|
||||
matInput
|
||||
formControlName="user_newPassword1"
|
||||
placeholder="{{ 'New Password' | translate }}"
|
||||
placeholder="{{ 'New password' | translate }}"
|
||||
/>
|
||||
<mat-icon
|
||||
mat-button matSuffix mat-icon-button
|
||||
@ -75,7 +77,7 @@
|
||||
[type]="hide_user_password ? 'password' : 'text'"
|
||||
matInput
|
||||
formControlName="user_newPassword2"
|
||||
placeholder="{{ 'Confirm New Password' | translate }}"
|
||||
placeholder="{{ 'Confirm new password' | translate }}"
|
||||
/>
|
||||
</mat-form-field>
|
||||
</form>
|
||||
@ -83,12 +85,12 @@
|
||||
mat-raised-button
|
||||
color="primary"
|
||||
(click)="hide_user_password = !hide_user_password">
|
||||
<span translate>Show Password</span>
|
||||
<mat-icon
|
||||
matSuffix
|
||||
mat-icon-button>
|
||||
{{ hide_user_password ? 'visibility_off' : 'visibility' }}
|
||||
</mat-icon>
|
||||
<span translate>Show password</span>
|
||||
</button>
|
||||
</div>
|
||||
</mat-card>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<os-head-bar [nav]="false">
|
||||
<!-- Title -->
|
||||
<div class="title-slot"><h2 translate>Import users</h2></div>
|
||||
<div class="title-slot"><h2 translate>Import participants</h2></div>
|
||||
|
||||
<div class="menu-slot">
|
||||
<button *ngIf="hasFile && newCount" mat-button (click)="doImport()">
|
||||
@ -12,7 +12,7 @@
|
||||
<mat-tab-group (selectedTabChange)="onTabChange()">
|
||||
<mat-tab label="{{ 'CSV import' | translate }}">
|
||||
<span translate
|
||||
>Requires comma or semicolon separated values with these column header names in the first row</span
|
||||
>Required comma or semicolon separated values with these column header names in the first row:</span
|
||||
>: <br />
|
||||
<div class="code red-warning-text">
|
||||
<span translate>Title</span>, <span translate>Given name</span>, <span translate>Surname</span> ,
|
||||
@ -47,7 +47,7 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<mat-label translate> Column Separator</mat-label>
|
||||
<mat-label translate>Column separator</mat-label>
|
||||
<mat-select class="selection" (selectionChange)="selectColSep($event)" value="">
|
||||
<mat-option *ngFor="let option of columnSeparators" [value]="option.value">
|
||||
{{ option.label | translate }}
|
||||
@ -73,7 +73,11 @@
|
||||
#fileInput
|
||||
(change)="onSelectFile($event)"
|
||||
/>
|
||||
<button mat-button color="accent" onclick="document.getElementById('user-import-file-input').click()">
|
||||
<button
|
||||
mat-button
|
||||
color="accent"
|
||||
onclick="document.getElementById('user-import-file-input').click()"
|
||||
>
|
||||
<span translate> Select file</span>
|
||||
</button>
|
||||
</div>
|
||||
@ -82,18 +86,15 @@
|
||||
<mat-tab label="{{ 'Text import' | translate }}">
|
||||
<div [formGroup]="textAreaForm">
|
||||
<div>
|
||||
<span translate>
|
||||
Copy and paste your participant names in this textbox.</span>
|
||||
<span translate>
|
||||
Keep each person in a single line.
|
||||
</span><br />
|
||||
<span translate> Comma separated names will be read as 'Surname(s), given name(s)'. </span>
|
||||
<span translate> Copy and paste your participant names in this textbox.</span>
|
||||
<span translate> Keep each person in a single line. </span><br />
|
||||
<span translate> Comma separated names will be read as 'Surname, given name(s)'. </span>
|
||||
</div>
|
||||
<mat-form-field>
|
||||
<textarea
|
||||
matInput
|
||||
formControlName="inputtext"
|
||||
placeholder="{{ 'Insert users here' | translate }}"
|
||||
placeholder="{{ 'Insert participants here' | translate }}"
|
||||
cdkTextareaAutosize
|
||||
cdkAutosizeMinRows="3"
|
||||
cdkAutosizeMaxRows="10"
|
||||
@ -109,13 +110,13 @@
|
||||
|
||||
<!-- preview table -->
|
||||
<mat-card *ngIf="hasFile" class="os-form-card import-table">
|
||||
<h3 translate> Preview</h3>
|
||||
<h3 translate>Preview</h3>
|
||||
<div class="summary">
|
||||
<!-- new entries -->
|
||||
<div *ngIf="newCount">
|
||||
|
||||
<mat-icon inline>playlist_add</mat-icon>
|
||||
<span> {{ newCount }} </span> <span translate>User(s) will be imported.</span>
|
||||
<span> {{ newCount }} </span> <span translate>Participant(s) will be imported.</span>
|
||||
</div>
|
||||
<!-- errors/duplicates -->
|
||||
<div *ngIf="nonImportableCount" class="red-warning-text">
|
||||
@ -127,23 +128,21 @@
|
||||
<div *ngIf="doneCount" class="green-text">
|
||||
|
||||
<mat-icon inline>done</mat-icon>
|
||||
<span> {{ doneCount }} </span> <span translate>Users have been imported.</span>
|
||||
<span> {{ doneCount }} </span> <span translate>Participants have been imported.</span>
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="newCount">
|
||||
<span translate>Click on 'import' (right top corner) to import the new users.
|
||||
</span>
|
||||
<span translate>After verifiy the preview click on 'import' please (see top right).</span>
|
||||
</div>
|
||||
<mat-select *ngIf="nonImportableCount" class="filter-imports" [(value)]="shown" (selectionChange)="setFilter()">
|
||||
<mat-option value="all" translate> Show all </mat-option>
|
||||
<mat-option value="error" translate> Show errors only </mat-option>
|
||||
<mat-option value="noerror" translate> Show correct entries </mat-option>
|
||||
<mat-option value="all" translate>Show all</mat-option>
|
||||
<mat-option value="error" translate>Show errors only</mat-option>
|
||||
<mat-option value="noerror" translate>Show correct entries only</mat-option>
|
||||
</mat-select>
|
||||
<div class="table-container">
|
||||
<table mat-table class="on-transition-fade" [dataSource]="dataSource" matSort>
|
||||
<!-- Status column -->
|
||||
<ng-container matColumnDef="status" sticky>
|
||||
|
||||
<mat-header-cell *matHeaderCellDef class="first-column"></mat-header-cell>
|
||||
<mat-cell *matCellDef="let entry" class="first-column">
|
||||
<div *ngIf="entry.status === 'error'">
|
||||
@ -162,12 +161,12 @@
|
||||
</mat-icon>
|
||||
</div>
|
||||
<div *ngIf="entry.status === 'new'">
|
||||
<mat-icon matTooltip="{{ 'User will be imported' | translate }}">
|
||||
<mat-icon matTooltip="{{ 'Participant will be imported' | translate }}">
|
||||
{{ getActionIcon(entry) }}
|
||||
</mat-icon>
|
||||
</div>
|
||||
<div *ngIf="entry.status === 'done'">
|
||||
<mat-icon matTooltip="{{ 'User has been imported' | translate }}">
|
||||
<mat-icon matTooltip="{{ 'Participant has been imported' | translate }}">
|
||||
{{ getActionIcon(entry) }}
|
||||
</mat-icon>
|
||||
</div>
|
||||
@ -231,7 +230,7 @@
|
||||
<mat-cell *matCellDef="let entry">
|
||||
<div *ngIf="entry.newEntry.csvGroups.length">
|
||||
<span *ngIf="hasError(entry, 'Groups')">
|
||||
<mat-icon color="warn"matTooltip="{{ getVerboseError('Groups') | translate }}">
|
||||
<mat-icon color="warn" matTooltip="{{ getVerboseError('Groups') | translate }}">
|
||||
warning
|
||||
</mat-icon>
|
||||
</span>
|
||||
@ -250,19 +249,19 @@
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="is_active">
|
||||
<mat-header-cell *matHeaderCellDef translate>Is Active</mat-header-cell>
|
||||
<mat-header-cell *matHeaderCellDef translate>Is active</mat-header-cell>
|
||||
<mat-cell *matCellDef="let entry">
|
||||
<mat-checkbox disabled [checked]="entry.newEntry.is_active"> </mat-checkbox>
|
||||
</mat-cell>
|
||||
</ng-container>
|
||||
<ng-container matColumnDef="is_present">
|
||||
<mat-header-cell *matHeaderCellDef translate>Is Present</mat-header-cell>
|
||||
<mat-header-cell *matHeaderCellDef translate>Is present</mat-header-cell>
|
||||
<mat-cell *matCellDef="let entry">
|
||||
<mat-checkbox disabled [checked]="entry.newEntry.is_present"> </mat-checkbox>
|
||||
</mat-cell>
|
||||
</ng-container>
|
||||
<ng-container matColumnDef="is_committee">
|
||||
<mat-header-cell *matHeaderCellDef translate>Is Committee</mat-header-cell>
|
||||
<mat-header-cell *matHeaderCellDef translate>Is committee</mat-header-cell>
|
||||
<mat-cell *matCellDef="let entry">
|
||||
<mat-checkbox disabled [checked]="entry.newEntry.is_committee"> </mat-checkbox>
|
||||
</mat-cell>
|
||||
|
@ -69,7 +69,7 @@ export class UserImportListComponent extends BaseImportListComponent<ViewUser> {
|
||||
',Fred,Bloggs,London,,,,,,,,',
|
||||
',,Executive Board,,,,,,,1,,'
|
||||
];
|
||||
this.exporter.saveFile(rows.join('\n'), this.translate.instant('User example') + '.csv');
|
||||
this.exporter.saveFile(rows.join('\n'), this.translate.instant('participants-example') + '.csv');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -118,21 +118,21 @@
|
||||
<mat-divider></mat-divider>
|
||||
<button mat-menu-item (click)="setGroupSelected()">
|
||||
<mat-icon>people</mat-icon>
|
||||
<span translate>Add/remove groups</span>
|
||||
<span translate>Add/remove groups ...</span>
|
||||
</button>
|
||||
|
||||
<button mat-menu-item (click)="setActiveSelected()">
|
||||
<mat-icon>add_circle</mat-icon>
|
||||
<span translate>Set/unset active</span>
|
||||
<mat-icon>block</mat-icon>
|
||||
<span translate>Enable/disable account ...</span>
|
||||
</button>
|
||||
|
||||
<button mat-menu-item (click)="setPresentSelected()">
|
||||
<mat-icon>check_box</mat-icon>
|
||||
<span translate>Set/unset presence</span>
|
||||
<span translate>Set presence ...</span>
|
||||
</button>
|
||||
<button mat-menu-item (click)="setCommitteeSelected()">
|
||||
<mat-icon>account_balance</mat-icon>
|
||||
<span translate>Set/unset committee</span>
|
||||
<span translate>Set committee ...</span>
|
||||
</button>
|
||||
|
||||
<mat-divider></mat-divider>
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@ -34,16 +34,24 @@ msgstr ""
|
||||
msgid "Activate statute amendments"
|
||||
msgstr ""
|
||||
|
||||
msgid "Add groups"
|
||||
msgid "Active filters"
|
||||
msgstr ""
|
||||
|
||||
msgid "Add me"
|
||||
msgstr ""
|
||||
|
||||
msgid "Add submitters"
|
||||
msgid "Add/remove groups ..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Add tags"
|
||||
msgid "Add/remove submitters"
|
||||
msgstr ""
|
||||
|
||||
msgid "Add/remove tags"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Additional columns after the required ones may be present and won't affect "
|
||||
"the import."
|
||||
msgstr ""
|
||||
|
||||
msgid "Adjourn"
|
||||
@ -55,6 +63,9 @@ msgstr ""
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
msgid "After verifiy the preview click on 'import' please (see top right)."
|
||||
msgstr ""
|
||||
|
||||
msgid "Agenda"
|
||||
msgstr ""
|
||||
|
||||
@ -109,6 +120,14 @@ msgstr ""
|
||||
msgid "Arabic"
|
||||
msgstr ""
|
||||
|
||||
msgid "Are you sure you want to delete this vote?"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"At least given name or surname have to be filled in. All other fields are "
|
||||
"optional and may be empty."
|
||||
msgstr ""
|
||||
|
||||
msgid "Attachments"
|
||||
msgstr ""
|
||||
|
||||
@ -133,6 +152,9 @@ msgstr ""
|
||||
msgid "Begin speech"
|
||||
msgstr ""
|
||||
|
||||
msgid "CSV import"
|
||||
msgstr ""
|
||||
|
||||
msgid "Call list"
|
||||
msgstr ""
|
||||
|
||||
@ -250,30 +272,48 @@ msgstr ""
|
||||
msgid "Change password"
|
||||
msgstr ""
|
||||
|
||||
msgid "Change password for"
|
||||
msgstr ""
|
||||
|
||||
msgid "Change recommendation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Change recommendations"
|
||||
msgstr ""
|
||||
|
||||
msgid "Changed by"
|
||||
msgstr ""
|
||||
|
||||
msgid "Changed version"
|
||||
msgstr ""
|
||||
|
||||
msgid "Choose 0 to disable the supporting system."
|
||||
msgstr ""
|
||||
|
||||
msgid "Clear all"
|
||||
msgstr ""
|
||||
|
||||
msgid "Clear list"
|
||||
msgstr ""
|
||||
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
msgid "Close list of speakers"
|
||||
msgstr ""
|
||||
|
||||
msgid "Collapse all"
|
||||
msgstr ""
|
||||
|
||||
msgid "Color for blanked projector"
|
||||
msgstr ""
|
||||
|
||||
msgid "Column separator"
|
||||
msgstr ""
|
||||
|
||||
msgid "Comma separated names will be read as 'Surname, given name(s)'."
|
||||
msgstr ""
|
||||
|
||||
msgid "Comment"
|
||||
msgstr ""
|
||||
|
||||
@ -286,7 +326,13 @@ msgstr ""
|
||||
msgid "Complex Workflow"
|
||||
msgstr ""
|
||||
|
||||
msgid "Content"
|
||||
msgid "Confirm new password"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy and paste your participant names in this textbox."
|
||||
msgstr ""
|
||||
|
||||
msgid "Countdowns"
|
||||
msgstr ""
|
||||
|
||||
msgid "Couple countdown with the list of speakers"
|
||||
@ -354,6 +400,12 @@ msgstr ""
|
||||
msgid "Delete whole history"
|
||||
msgstr ""
|
||||
|
||||
msgid "Deletion"
|
||||
msgstr ""
|
||||
|
||||
msgid "Deselect all"
|
||||
msgstr ""
|
||||
|
||||
msgid "Designates whether this user is in the room."
|
||||
msgstr ""
|
||||
|
||||
@ -386,18 +438,33 @@ msgstr ""
|
||||
msgid "Do you want to delete this file?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download CSV example file"
|
||||
msgstr ""
|
||||
|
||||
msgid "Drop files into this area OR select files"
|
||||
msgstr ""
|
||||
|
||||
msgid "Duration"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit category:"
|
||||
msgid "Edit category"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit comment field:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit details"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit details for"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit profile"
|
||||
msgstr ""
|
||||
|
||||
@ -407,12 +474,21 @@ msgstr ""
|
||||
msgid "Edit the whole motion text"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit title"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit topic"
|
||||
msgstr ""
|
||||
|
||||
msgid "Election method"
|
||||
msgstr ""
|
||||
|
||||
msgid "Elections"
|
||||
msgstr ""
|
||||
|
||||
msgid "Element"
|
||||
msgstr ""
|
||||
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
@ -434,6 +510,12 @@ msgstr ""
|
||||
msgid "Enable participant presence view"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable/disable account ..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Encoding of the file"
|
||||
msgstr ""
|
||||
|
||||
msgid "End speech"
|
||||
msgstr ""
|
||||
|
||||
@ -467,9 +549,6 @@ msgstr ""
|
||||
msgid "Exit"
|
||||
msgstr ""
|
||||
|
||||
msgid "Exit multiselect"
|
||||
msgstr ""
|
||||
|
||||
msgid "Expand all"
|
||||
msgstr ""
|
||||
|
||||
@ -482,9 +561,6 @@ msgstr ""
|
||||
msgid "Export as CSV"
|
||||
msgstr ""
|
||||
|
||||
msgid "FILTER"
|
||||
msgstr ""
|
||||
|
||||
msgid "File information"
|
||||
msgstr ""
|
||||
|
||||
@ -494,12 +570,27 @@ msgstr ""
|
||||
msgid "Files"
|
||||
msgstr ""
|
||||
|
||||
msgid "Filter"
|
||||
msgstr ""
|
||||
|
||||
msgid "Filter options"
|
||||
msgstr ""
|
||||
|
||||
msgid "Filters"
|
||||
msgstr ""
|
||||
|
||||
msgid "Final version"
|
||||
msgstr ""
|
||||
|
||||
msgid "Finished"
|
||||
msgstr ""
|
||||
|
||||
msgid "Follow recommendation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Follow recommendations for all motions"
|
||||
msgstr ""
|
||||
|
||||
msgid "Font color of projector header and footer"
|
||||
msgstr ""
|
||||
|
||||
@ -566,7 +657,21 @@ msgstr ""
|
||||
msgid "Identifier"
|
||||
msgstr ""
|
||||
|
||||
msgid "Import ..."
|
||||
msgid ""
|
||||
"Identifier, reason, submitter, category, origin and motion block are "
|
||||
"optional and may be empty."
|
||||
msgstr ""
|
||||
|
||||
msgid "Import"
|
||||
msgstr ""
|
||||
|
||||
msgid "Import motions"
|
||||
msgstr ""
|
||||
|
||||
msgid "Import participants"
|
||||
msgstr ""
|
||||
|
||||
msgid "Import topics"
|
||||
msgstr ""
|
||||
|
||||
msgid "Include the sequential number in PDF and DOCX"
|
||||
@ -578,6 +683,15 @@ msgstr ""
|
||||
msgid "Input format: DD.MM.YYYY HH:MM"
|
||||
msgstr ""
|
||||
|
||||
msgid "Insert participants here"
|
||||
msgstr ""
|
||||
|
||||
msgid "Insert topics here"
|
||||
msgstr ""
|
||||
|
||||
msgid "Insertion"
|
||||
msgstr ""
|
||||
|
||||
msgid "Installed plugins"
|
||||
msgstr ""
|
||||
|
||||
@ -596,18 +710,18 @@ msgstr ""
|
||||
msgid "Is committee"
|
||||
msgstr ""
|
||||
|
||||
msgid "Is inactive"
|
||||
msgstr ""
|
||||
|
||||
msgid "Is no committee"
|
||||
msgstr ""
|
||||
|
||||
msgid "Is not present"
|
||||
msgstr ""
|
||||
|
||||
msgid "Is present"
|
||||
msgstr ""
|
||||
|
||||
msgid "Item number"
|
||||
msgstr ""
|
||||
|
||||
msgid "Keep each item in a single line."
|
||||
msgstr ""
|
||||
|
||||
msgid "Keep each person in a single line."
|
||||
msgstr ""
|
||||
|
||||
msgid "Last speakers"
|
||||
msgstr ""
|
||||
|
||||
@ -647,21 +761,45 @@ msgstr ""
|
||||
msgid "Mark speaker"
|
||||
msgstr ""
|
||||
|
||||
msgid "Meta information"
|
||||
msgstr ""
|
||||
|
||||
msgid "Motion"
|
||||
msgstr ""
|
||||
|
||||
msgid "Motion block"
|
||||
msgstr ""
|
||||
|
||||
msgid "Motion blocks"
|
||||
msgstr ""
|
||||
|
||||
msgid "Motion deleted"
|
||||
msgstr ""
|
||||
|
||||
msgid "Motion has been imported"
|
||||
msgstr ""
|
||||
|
||||
msgid "Motion log"
|
||||
msgstr ""
|
||||
|
||||
msgid "Motion preamble"
|
||||
msgstr ""
|
||||
|
||||
msgid "Motion text"
|
||||
msgstr ""
|
||||
|
||||
msgid "Motion updated"
|
||||
msgstr ""
|
||||
|
||||
msgid "Motion will be imported"
|
||||
msgstr ""
|
||||
|
||||
msgid "Motion(s) will be imported."
|
||||
msgstr ""
|
||||
|
||||
msgid "Motions"
|
||||
msgstr ""
|
||||
|
||||
msgid "Motions have been imported."
|
||||
msgstr ""
|
||||
|
||||
msgid "Move to agenda item"
|
||||
msgstr ""
|
||||
|
||||
@ -680,7 +818,7 @@ msgstr ""
|
||||
msgid "Needs review"
|
||||
msgstr ""
|
||||
|
||||
msgid "New"
|
||||
msgid "New Projector"
|
||||
msgstr ""
|
||||
|
||||
msgid "New amendment"
|
||||
@ -698,6 +836,12 @@ msgstr ""
|
||||
msgid "New motion"
|
||||
msgstr ""
|
||||
|
||||
msgid "New motion block"
|
||||
msgstr ""
|
||||
|
||||
msgid "New participant"
|
||||
msgstr ""
|
||||
|
||||
msgid "New password"
|
||||
msgstr ""
|
||||
|
||||
@ -707,6 +851,12 @@ msgstr ""
|
||||
msgid "New tag name"
|
||||
msgstr ""
|
||||
|
||||
msgid "New topic"
|
||||
msgstr ""
|
||||
|
||||
msgid "New vote"
|
||||
msgstr ""
|
||||
|
||||
msgid "Next"
|
||||
msgstr ""
|
||||
|
||||
@ -716,9 +866,6 @@ msgstr ""
|
||||
msgid "No changes at the text."
|
||||
msgstr ""
|
||||
|
||||
msgid "No choices available"
|
||||
msgstr ""
|
||||
|
||||
msgid "No comment"
|
||||
msgstr ""
|
||||
|
||||
@ -743,6 +890,9 @@ msgstr ""
|
||||
msgid "No personal note"
|
||||
msgstr ""
|
||||
|
||||
msgid "No search result found for"
|
||||
msgstr ""
|
||||
|
||||
msgid "No statute paragraphs"
|
||||
msgstr ""
|
||||
|
||||
@ -769,9 +919,15 @@ msgstr ""
|
||||
msgid "Number of last speakers to be shown on the projector"
|
||||
msgstr ""
|
||||
|
||||
msgid "Number set"
|
||||
msgstr ""
|
||||
|
||||
msgid "Numbered per category"
|
||||
msgstr ""
|
||||
|
||||
msgid "Numbering"
|
||||
msgstr ""
|
||||
|
||||
msgid "Numbering prefix for agenda items"
|
||||
msgstr ""
|
||||
|
||||
@ -784,7 +940,7 @@ msgstr ""
|
||||
msgid "Offline mode: You can use OpenSlides but changes are not saved."
|
||||
msgstr ""
|
||||
|
||||
msgid "Ok"
|
||||
msgid "Old password"
|
||||
msgstr ""
|
||||
|
||||
msgid "One email was send sucessfully."
|
||||
@ -796,6 +952,9 @@ msgstr ""
|
||||
msgid "Open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Open list of speakers"
|
||||
msgstr ""
|
||||
|
||||
msgid "Origin"
|
||||
msgstr ""
|
||||
|
||||
@ -829,12 +988,30 @@ msgstr ""
|
||||
msgid "Parallel upload"
|
||||
msgstr ""
|
||||
|
||||
msgid "Parent item"
|
||||
msgstr ""
|
||||
|
||||
msgid "Participant has been imported"
|
||||
msgstr ""
|
||||
|
||||
msgid "Participant number"
|
||||
msgstr ""
|
||||
|
||||
msgid "Participant will be imported"
|
||||
msgstr ""
|
||||
|
||||
msgid "Participant(s) will be imported."
|
||||
msgstr ""
|
||||
|
||||
msgid "Participants"
|
||||
msgstr ""
|
||||
|
||||
msgid "Participants have been imported."
|
||||
msgstr ""
|
||||
|
||||
msgid "Paste/write your topics in this textbox."
|
||||
msgstr ""
|
||||
|
||||
msgid "Permission"
|
||||
msgstr ""
|
||||
|
||||
@ -853,6 +1030,9 @@ msgstr ""
|
||||
msgid "Please enter your new password"
|
||||
msgstr ""
|
||||
|
||||
msgid "Please fill in all required values"
|
||||
msgstr ""
|
||||
|
||||
msgid "Preamble text for PDF and DOCX documents (all motions)"
|
||||
msgstr ""
|
||||
|
||||
@ -874,6 +1054,12 @@ msgstr ""
|
||||
msgid "Presentation and assembly system"
|
||||
msgstr ""
|
||||
|
||||
msgid "Preview"
|
||||
msgstr ""
|
||||
|
||||
msgid "Print ballot papers"
|
||||
msgstr ""
|
||||
|
||||
msgid "Privacy Policy"
|
||||
msgstr ""
|
||||
|
||||
@ -895,6 +1081,12 @@ msgstr ""
|
||||
msgid "Projector logo"
|
||||
msgstr ""
|
||||
|
||||
msgid "Projector messages"
|
||||
msgstr ""
|
||||
|
||||
msgid "Projectors"
|
||||
msgstr ""
|
||||
|
||||
msgid "Public"
|
||||
msgstr ""
|
||||
|
||||
@ -910,6 +1102,9 @@ msgstr ""
|
||||
msgid "Recommendation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Recommendation set to {arg1}"
|
||||
msgstr ""
|
||||
|
||||
msgid "Refer to committee"
|
||||
msgstr ""
|
||||
|
||||
@ -939,21 +1134,29 @@ msgid ""
|
||||
"state"
|
||||
msgstr ""
|
||||
|
||||
msgid "Remove groups"
|
||||
msgid "Remove from motion block"
|
||||
msgstr ""
|
||||
|
||||
msgid "Remove me"
|
||||
msgstr ""
|
||||
|
||||
msgid "Remove tags"
|
||||
msgid "Replacement"
|
||||
msgstr ""
|
||||
|
||||
msgid "Required"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Required comma or semicolon separated values with these column header names "
|
||||
"in the first row:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Required majority"
|
||||
msgstr ""
|
||||
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Reset password"
|
||||
msgstr ""
|
||||
|
||||
@ -969,18 +1172,33 @@ msgstr ""
|
||||
msgid "Roman"
|
||||
msgstr ""
|
||||
|
||||
msgid "SORT"
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
msgid "Save"
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
msgid "Search player"
|
||||
msgstr ""
|
||||
|
||||
msgid "Search results"
|
||||
msgstr ""
|
||||
|
||||
msgid "Searching for candidates"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select all"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select file"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select or search new speaker ..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Select or search new submitter ..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Select paragraph"
|
||||
msgstr ""
|
||||
|
||||
@ -993,45 +1211,78 @@ msgstr ""
|
||||
msgid "Separator used for all csv exports and examples"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sequential number"
|
||||
msgstr ""
|
||||
|
||||
msgid "Serially numbered"
|
||||
msgstr ""
|
||||
|
||||
msgid "Set category"
|
||||
msgstr ""
|
||||
|
||||
msgid "Set invisible"
|
||||
msgid "Set committee ..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Set hidden"
|
||||
msgstr ""
|
||||
|
||||
msgid "Set internal"
|
||||
msgstr ""
|
||||
|
||||
msgid "Set it manually"
|
||||
msgstr ""
|
||||
|
||||
msgid "Set motion block"
|
||||
msgstr ""
|
||||
|
||||
msgid "Set presence ..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Set public"
|
||||
msgstr ""
|
||||
|
||||
msgid "Set recommendation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Set status"
|
||||
msgstr ""
|
||||
|
||||
msgid "Set visible"
|
||||
msgstr ""
|
||||
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid "Short description of event"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show all"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show amendments together with motions"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show correct entries"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show correct entries only"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show entire motion text"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show errors only"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show logo on projector"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show motion log"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show orange countdown in the last x seconds of speaking time"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show password"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show the clock on projector"
|
||||
msgstr ""
|
||||
|
||||
@ -1047,6 +1298,12 @@ msgstr ""
|
||||
msgid "Simple majority"
|
||||
msgstr ""
|
||||
|
||||
msgid "Slide options"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sort"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sort ..."
|
||||
msgstr ""
|
||||
|
||||
@ -1056,6 +1313,9 @@ msgstr ""
|
||||
msgid "Sort name of participants by"
|
||||
msgstr ""
|
||||
|
||||
msgid "Special values"
|
||||
msgstr ""
|
||||
|
||||
msgid "Staff"
|
||||
msgstr ""
|
||||
|
||||
@ -1071,6 +1331,9 @@ msgstr ""
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
msgid "State set to {arg1}"
|
||||
msgstr ""
|
||||
|
||||
msgid "Statute"
|
||||
msgstr ""
|
||||
|
||||
@ -1092,9 +1355,15 @@ msgstr ""
|
||||
msgid "Structure level"
|
||||
msgstr ""
|
||||
|
||||
msgid "Submitter"
|
||||
msgstr ""
|
||||
|
||||
msgid "Submitters"
|
||||
msgstr ""
|
||||
|
||||
msgid "Submitters changed"
|
||||
msgstr ""
|
||||
|
||||
msgid "Summary of changes"
|
||||
msgstr ""
|
||||
|
||||
@ -1104,6 +1373,9 @@ msgstr ""
|
||||
msgid "Supporters"
|
||||
msgstr ""
|
||||
|
||||
msgid "Supporters changed"
|
||||
msgstr ""
|
||||
|
||||
msgid "Surname"
|
||||
msgstr ""
|
||||
|
||||
@ -1116,6 +1388,15 @@ msgstr ""
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
msgid "Text"
|
||||
msgstr ""
|
||||
|
||||
msgid "Text import"
|
||||
msgstr ""
|
||||
|
||||
msgid "Text separator"
|
||||
msgstr ""
|
||||
|
||||
msgid "The 100 % base of a voting result consists of"
|
||||
msgstr ""
|
||||
|
||||
@ -1128,6 +1409,15 @@ msgstr ""
|
||||
msgid "The event manager hasn't set up a privacy policy yet."
|
||||
msgstr ""
|
||||
|
||||
msgid "The file has too few columns to be parsed properly."
|
||||
msgstr ""
|
||||
|
||||
msgid "The file seems to have additional columns. They will be ignored."
|
||||
msgstr ""
|
||||
|
||||
msgid "The file seems to have some ommitted columns. They will be considered empty."
|
||||
msgstr ""
|
||||
|
||||
msgid "The link is broken. Please contact your system administrator."
|
||||
msgstr ""
|
||||
|
||||
@ -1160,10 +1450,10 @@ msgstr ""
|
||||
msgid "This prefix will be set if you run the automatic agenda numbering."
|
||||
msgstr ""
|
||||
|
||||
msgid "This will add the following submitters of all selected motions:"
|
||||
msgid "This will add or remove the following submitters for all selected motions:"
|
||||
msgstr ""
|
||||
|
||||
msgid "This will add the following tags to all selected motions:"
|
||||
msgid "This will add or remove the following tags for all selected motions:"
|
||||
msgstr ""
|
||||
|
||||
msgid "This will delete all selected motions."
|
||||
@ -1172,24 +1462,24 @@ msgstr ""
|
||||
msgid "This will move all selected motions as childs to:"
|
||||
msgstr ""
|
||||
|
||||
msgid "This will remove the following submitters from all selected motions:"
|
||||
msgid "This will set the following category for all selected motions:"
|
||||
msgstr ""
|
||||
|
||||
msgid "This will remove the following tags from all selected motions:"
|
||||
msgid "This will set the following motion block for all selected motions:"
|
||||
msgstr ""
|
||||
|
||||
msgid "This will set the category of all selected motions to:"
|
||||
msgid "This will set the following recommendation for all selected motions:"
|
||||
msgstr ""
|
||||
|
||||
msgid "This will set the recommendation for all selected motions to:"
|
||||
msgstr ""
|
||||
|
||||
msgid "This will set the state of all selected motions to:"
|
||||
msgid "This will set the following state for all selected motions:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Three-quarters majority"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timestamp"
|
||||
msgstr ""
|
||||
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
|
||||
@ -1202,12 +1492,30 @@ msgstr ""
|
||||
msgid "Title for access data and welcome PDF"
|
||||
msgstr ""
|
||||
|
||||
msgid "Title is required. All other fields are optional and may be empty."
|
||||
msgstr ""
|
||||
|
||||
msgid "Topic"
|
||||
msgstr ""
|
||||
|
||||
msgid "Topic has been imported"
|
||||
msgstr ""
|
||||
|
||||
msgid "Topic will be imported"
|
||||
msgstr ""
|
||||
|
||||
msgid "Topics have been imported."
|
||||
msgstr ""
|
||||
|
||||
msgid "Topics(s) will be imported."
|
||||
msgstr ""
|
||||
|
||||
msgid "Two-thirds majority"
|
||||
msgstr ""
|
||||
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgid "Unsupport"
|
||||
msgstr ""
|
||||
|
||||
@ -1240,12 +1548,24 @@ msgstr ""
|
||||
msgid "Visible"
|
||||
msgstr ""
|
||||
|
||||
msgid "Vote created"
|
||||
msgstr ""
|
||||
|
||||
msgid "Vote deleted"
|
||||
msgstr ""
|
||||
|
||||
msgid "Vote updated"
|
||||
msgstr ""
|
||||
|
||||
msgid "Voting"
|
||||
msgstr ""
|
||||
|
||||
msgid "Voting and ballot papers"
|
||||
msgstr ""
|
||||
|
||||
msgid "Voting result"
|
||||
msgstr ""
|
||||
|
||||
msgid "WEP"
|
||||
msgstr ""
|
||||
|
||||
@ -1289,6 +1609,9 @@ msgstr ""
|
||||
msgid "Workflow of new statute amendments"
|
||||
msgstr ""
|
||||
|
||||
msgid "Wrong file type detected. Import failed."
|
||||
msgstr ""
|
||||
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
|
||||
@ -1304,6 +1627,9 @@ msgstr ""
|
||||
msgid "Yes/No/Abstain per candidate"
|
||||
msgstr ""
|
||||
|
||||
msgid "You are not supposed to be here..."
|
||||
msgstr ""
|
||||
|
||||
msgid "You are using the history mode of OpenSlides. Changes will not be saved."
|
||||
msgstr ""
|
||||
|
||||
@ -1315,6 +1641,9 @@ msgstr ""
|
||||
msgid "You can use {event_name} as a placeholder."
|
||||
msgstr ""
|
||||
|
||||
msgid "You override the personally set password!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Your login for {event_name}"
|
||||
msgstr ""
|
||||
|
||||
@ -1342,12 +1671,27 @@ msgstr ""
|
||||
msgid "by"
|
||||
msgstr ""
|
||||
|
||||
msgid "contribution"
|
||||
msgstr ""
|
||||
|
||||
msgid "disabled"
|
||||
msgstr ""
|
||||
|
||||
msgid "entries will be ommitted."
|
||||
msgstr ""
|
||||
|
||||
msgid "errors"
|
||||
msgstr ""
|
||||
|
||||
msgid "inline"
|
||||
msgstr ""
|
||||
|
||||
msgid "majority"
|
||||
msgstr ""
|
||||
|
||||
msgid "motions-example"
|
||||
msgstr ""
|
||||
|
||||
msgid "needed"
|
||||
msgstr ""
|
||||
|
||||
@ -1363,18 +1707,30 @@ msgstr ""
|
||||
msgid "not decided"
|
||||
msgstr ""
|
||||
|
||||
msgid "not reached."
|
||||
msgstr ""
|
||||
|
||||
msgid "not set"
|
||||
msgstr ""
|
||||
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
msgid "outside"
|
||||
msgstr ""
|
||||
|
||||
msgid "participants-example"
|
||||
msgstr ""
|
||||
|
||||
msgid "permitted"
|
||||
msgstr ""
|
||||
|
||||
msgid "published"
|
||||
msgstr ""
|
||||
|
||||
msgid "reached."
|
||||
msgstr ""
|
||||
|
||||
msgid "refered to committee"
|
||||
msgstr ""
|
||||
|
||||
@ -1384,7 +1740,10 @@ msgstr ""
|
||||
msgid "rejected (not authorized)"
|
||||
msgstr ""
|
||||
|
||||
msgid "remove submitters"
|
||||
msgid "result"
|
||||
msgstr ""
|
||||
|
||||
msgid "results"
|
||||
msgstr ""
|
||||
|
||||
msgid "selected"
|
||||
@ -1396,5 +1755,8 @@ msgstr ""
|
||||
msgid "supporters"
|
||||
msgstr ""
|
||||
|
||||
msgid "undocumented"
|
||||
msgstr ""
|
||||
|
||||
msgid "withdrawed"
|
||||
msgstr ""
|
@ -988,7 +988,7 @@ class MotionPollViewSet(UpdateModelMixin, DestroyModelMixin, GenericViewSet):
|
||||
|
||||
# Fire autoupdate again to save information to OpenSlides history.
|
||||
inform_changed_data(
|
||||
poll.motion, information=["Poll updated"], user_id=self.request.user.pk
|
||||
poll.motion, information=["Vote updated"], user_id=self.request.user.pk
|
||||
)
|
||||
|
||||
return response
|
||||
@ -1003,7 +1003,7 @@ class MotionPollViewSet(UpdateModelMixin, DestroyModelMixin, GenericViewSet):
|
||||
|
||||
# Fire autoupdate again to save information to OpenSlides history.
|
||||
inform_changed_data(
|
||||
poll.motion, information=["Poll deleted"], user_id=self.request.user.pk
|
||||
poll.motion, information=["Vote deleted"], user_id=self.request.user.pk
|
||||
)
|
||||
|
||||
return result
|
||||
|
Loading…
Reference in New Issue
Block a user