Update translations
This commit is contained in:
parent
4025e27e4a
commit
ff407468f0
@ -6,6 +6,7 @@ import { ViewMediafile } from '../models/view-mediafile';
|
||||
import { StorageService } from 'app/core/core-services/storage.service';
|
||||
import { MediafileRepositoryService } from 'app/core/repositories/mediafiles/mediafile-repository.service';
|
||||
import { OperatorService } from 'app/core/core-services/operator.service';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
@ -18,15 +19,15 @@ export class MediafileFilterListService extends BaseFilterListService<Mediafile,
|
||||
*/
|
||||
public pdfOption: OsFilter = {
|
||||
property: 'type',
|
||||
label: 'Is PDF',
|
||||
label: 'PDF',
|
||||
options: [
|
||||
{
|
||||
condition: 'application/pdf',
|
||||
label: 'Is PDF file'
|
||||
label: this.translate.instant('Is PDF file')
|
||||
},
|
||||
{
|
||||
condition: null,
|
||||
label: 'Is no PDF file'
|
||||
label: this.translate.instant('Is no PDF file')
|
||||
}
|
||||
]
|
||||
};
|
||||
@ -36,8 +37,11 @@ export class MediafileFilterListService extends BaseFilterListService<Mediafile,
|
||||
*/
|
||||
public hiddenOptions: OsFilter = {
|
||||
property: 'is_hidden',
|
||||
label: 'Hidden',
|
||||
options: [{ condition: true, label: 'is hidden' }, { condition: false, label: 'is not hidden', isActive: true }]
|
||||
label: this.translate.instant('Hidden'),
|
||||
options: [
|
||||
{ condition: true, label: this.translate.instant('is hidden') },
|
||||
{ condition: false, label: this.translate.instant('is not hidden'), isActive: true }
|
||||
]
|
||||
};
|
||||
|
||||
/**
|
||||
@ -45,8 +49,14 @@ export class MediafileFilterListService extends BaseFilterListService<Mediafile,
|
||||
* @param store
|
||||
* @param repo
|
||||
* @param operator
|
||||
* @param translate
|
||||
*/
|
||||
public constructor(store: StorageService, repo: MediafileRepositoryService, operator: OperatorService) {
|
||||
public constructor(
|
||||
store: StorageService,
|
||||
repo: MediafileRepositoryService,
|
||||
operator: OperatorService,
|
||||
private translate: TranslateService
|
||||
) {
|
||||
super(store, repo);
|
||||
const filterOptions = operator.hasPerms('mediafiles.can_see_hidden')
|
||||
? [this.hiddenOptions, this.pdfOption]
|
||||
|
@ -58,7 +58,7 @@
|
||||
</mat-button-toggle-group>
|
||||
</div>
|
||||
<div *ngIf="commentsToExport.length && exportForm.get('format').value === 'pdf'">
|
||||
<p class="toggle-group-head" translate>Comments information</p>
|
||||
<p class="toggle-group-head" translate>Comments</p>
|
||||
<mat-button-toggle-group
|
||||
class="smaller-buttons"
|
||||
multiple
|
||||
|
@ -171,7 +171,7 @@ export class MotionFilterListService extends BaseFilterListService<Motion, ViewM
|
||||
motionBlockOptions.push('-');
|
||||
motionBlockOptions.push({
|
||||
condition: null,
|
||||
label: 'No motion block set',
|
||||
label: this.translate.instant('No motion block set'),
|
||||
isActive: false
|
||||
});
|
||||
}
|
||||
@ -196,7 +196,7 @@ export class MotionFilterListService extends BaseFilterListService<Motion, ViewM
|
||||
if (categories.length) {
|
||||
categoryOptions.push('-');
|
||||
categoryOptions.push({
|
||||
label: 'No category set',
|
||||
label: this.translate.instant('No category set'),
|
||||
condition: null
|
||||
});
|
||||
}
|
||||
@ -275,14 +275,14 @@ export class MotionFilterListService extends BaseFilterListService<Motion, ViewM
|
||||
condition: finalStates
|
||||
});
|
||||
workflowOptions.push({
|
||||
label: 'Undone',
|
||||
label: this.translate.instant('Undone'),
|
||||
condition: nonFinalStates
|
||||
});
|
||||
}
|
||||
if (recommendationOptions.length) {
|
||||
recommendationOptions.push('-');
|
||||
recommendationOptions.push({
|
||||
label: 'No recommendation',
|
||||
label: this.translate.instant('No recommendation'),
|
||||
condition: null
|
||||
});
|
||||
}
|
||||
@ -307,7 +307,7 @@ export class MotionFilterListService extends BaseFilterListService<Motion, ViewM
|
||||
if (comments.length) {
|
||||
commentOptions.push('-');
|
||||
commentOptions.push({
|
||||
label: 'No comment',
|
||||
label: this.translate.instant('No comment'),
|
||||
condition: null
|
||||
});
|
||||
}
|
||||
|
@ -104,7 +104,7 @@
|
||||
<button type="button" mat-icon-button (click)="project(message)">
|
||||
<mat-icon>videocam</mat-icon>
|
||||
</button>
|
||||
<span translate>{{ message.getPreview(40) }}</span>
|
||||
<span>{{ message.getPreview(40) }}</span>
|
||||
</mat-list-item>
|
||||
</mat-list>
|
||||
</div>
|
||||
|
@ -54,7 +54,7 @@
|
||||
</form>
|
||||
<ng-container *ngIf="editId !== message.id">
|
||||
<div class="message" *ngIf="message.message" [innerHTML]="getSafeMessage(message)"></div>
|
||||
<div *ngIf="!message.message" class="no-content" translate>No message</div>
|
||||
<div *ngIf="!message.message" class="no-content" translate>No messages</div>
|
||||
</ng-container>
|
||||
<mat-action-row>
|
||||
<button *ngIf="editId !== message.id" mat-button class="on-transition-fade" (click)="onEditButton(message)"
|
||||
|
@ -59,11 +59,10 @@
|
||||
</div>
|
||||
</mat-nav-list>
|
||||
</mat-expansion-panel>
|
||||
<!-- TODO: Could use translate.getLangs() to fetch available languages -->
|
||||
<mat-menu #languageMenu="matMenu">
|
||||
<button mat-menu-item (click)="selectLang('en')" translate>English</button>
|
||||
<button mat-menu-item (click)="selectLang('de')" translate>German</button>
|
||||
<button mat-menu-item (click)="selectLang('cs')" translate>Czech</button>
|
||||
<button mat-menu-item (click)="selectLang('en')">{{ getLangName('en') }}</button>
|
||||
<button mat-menu-item (click)="selectLang('de')">{{ getLangName('de') }}</button>
|
||||
<button mat-menu-item (click)="selectLang('cs')">{{ getLangName('cs') }}</button>
|
||||
</mat-menu>
|
||||
|
||||
<!-- navigation -->
|
||||
|
@ -142,11 +142,11 @@ export class SiteComponent extends BaseComponent implements OnInit {
|
||||
*/
|
||||
public getLangName(abbreviation: string): string {
|
||||
if (abbreviation === 'en') {
|
||||
return this.translate.instant('English');
|
||||
return 'English';
|
||||
} else if (abbreviation === 'de') {
|
||||
return this.translate.instant('German');
|
||||
return 'Deutsch';
|
||||
} else if (abbreviation === 'cs') {
|
||||
return this.translate.instant('Czech');
|
||||
return 'Čeština';
|
||||
}
|
||||
}
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
@ -119,9 +119,6 @@ msgstr "Alle abgegebenen Stimmzettel"
|
||||
msgid "All selected files will be deleted!"
|
||||
msgstr "Alle ausgewählten Dateien werden gelöscht!"
|
||||
|
||||
msgid "All users"
|
||||
msgstr ""
|
||||
|
||||
msgid "All valid ballots"
|
||||
msgstr "Alle gültigen Stimmzettel"
|
||||
|
||||
@ -407,6 +404,9 @@ msgstr "Kommentar"
|
||||
msgid "Comment fields"
|
||||
msgstr "Kommentarfelder"
|
||||
|
||||
msgid "Comments"
|
||||
msgstr "Kommentare"
|
||||
|
||||
msgid "Committees"
|
||||
msgstr "Gremien"
|
||||
|
||||
@ -467,9 +467,6 @@ msgstr "Benutzerdefinierte Anzahl von Stimmzetteln"
|
||||
msgid "Custom translations"
|
||||
msgstr "Benutzerdefinierte Übersetzungen"
|
||||
|
||||
msgid "Czech"
|
||||
msgstr "Tschechisch"
|
||||
|
||||
msgid ""
|
||||
"Dear {name},\n"
|
||||
"\n"
|
||||
@ -597,6 +594,13 @@ msgstr ""
|
||||
"Verschieben Sie Einträge, um die Reihenfolge der Tagesordnung zu ändern. "
|
||||
"Ihre Änderungen werden sofort gespeichert."
|
||||
|
||||
msgid ""
|
||||
"Drag and drop motions to reorder the category. Then click the button to "
|
||||
"renumber."
|
||||
msgstr ""
|
||||
"Verschieben Sie die Anträge um das Sachgebiet neu zu ordnen. Klicken Sie "
|
||||
"anschließend auf die Schaltfläche um neu zu nummerieren."
|
||||
|
||||
msgid "Drop files into this area OR select files"
|
||||
msgstr "Dateien auf diesen Bereich ziehen ODER Dateien auswählen"
|
||||
|
||||
@ -606,9 +610,6 @@ msgstr "Dauer"
|
||||
msgid "Edit"
|
||||
msgstr "Bearbeiten"
|
||||
|
||||
msgid "Edit category"
|
||||
msgstr "Sachgebiet bearbeiten"
|
||||
|
||||
msgid "Edit comment field:"
|
||||
msgstr "Kommentarfeld bearbeiten:"
|
||||
|
||||
@ -621,6 +622,9 @@ msgstr "Details bearbeiten"
|
||||
msgid "Edit details for"
|
||||
msgstr "Details bearbeiten für"
|
||||
|
||||
msgid "Edit message"
|
||||
msgstr "Mitteilung bearbeiten"
|
||||
|
||||
msgid "Edit statute paragraph:"
|
||||
msgstr "Satzungsabschnitt bearbeiten:"
|
||||
|
||||
@ -672,9 +676,6 @@ msgstr "Encoding der Datei"
|
||||
msgid "End speech"
|
||||
msgstr "Rede beenden"
|
||||
|
||||
msgid "English"
|
||||
msgstr "Englisch"
|
||||
|
||||
msgid "Enter duration in seconds. Choose 0 to disable warning color."
|
||||
msgstr ""
|
||||
"Geben Sie die Dauer in Sekunden an. Zum Deaktivieren der Warn-Farbe 0 "
|
||||
@ -724,6 +725,9 @@ msgstr "Exportieren als CSV"
|
||||
msgid "Export as PDF"
|
||||
msgstr "Als PDF exportieren"
|
||||
|
||||
msgid "Export comment"
|
||||
msgstr "Kommentar exportieren"
|
||||
|
||||
msgid "Export motions"
|
||||
msgstr "Anträge exportieren"
|
||||
|
||||
@ -802,9 +806,6 @@ msgstr "Neue Passwörter generieren"
|
||||
msgid "Generate password"
|
||||
msgstr "Passwort generieren"
|
||||
|
||||
msgid "German"
|
||||
msgstr "Deutsch"
|
||||
|
||||
msgid "Given name"
|
||||
msgstr "Vorname"
|
||||
|
||||
@ -917,6 +918,9 @@ msgstr "Ungültige Eingabe."
|
||||
msgid "Invalid line number"
|
||||
msgstr "Ungültige Zeilennummer"
|
||||
|
||||
msgid "Is PDF file"
|
||||
msgstr "Ist eine PDF-Datei"
|
||||
|
||||
msgid "Is a committee"
|
||||
msgstr "Ist ein Gremium"
|
||||
|
||||
@ -929,6 +933,9 @@ msgstr "Ist Gremium"
|
||||
msgid "Is favorite"
|
||||
msgstr "Ist Favorit"
|
||||
|
||||
msgid "Is no PDF file"
|
||||
msgstr "Ist keine PDF-Datei"
|
||||
|
||||
msgid "Is not favorite"
|
||||
msgstr "Ist kein Favorit"
|
||||
|
||||
@ -995,9 +1002,6 @@ msgstr "Redeliste verwalten für..."
|
||||
msgid "Mark speaker"
|
||||
msgstr "Redner/in markieren"
|
||||
|
||||
msgid "Message"
|
||||
msgstr "Mitteilung"
|
||||
|
||||
msgid "Messages"
|
||||
msgstr "Mitteilungen"
|
||||
|
||||
@ -1085,6 +1089,9 @@ msgstr "Neuer Dateiname"
|
||||
msgid "New group name"
|
||||
msgstr "Neuer Gruppenname"
|
||||
|
||||
msgid "New message"
|
||||
msgstr "Neue Mitteilung"
|
||||
|
||||
msgid "New motion"
|
||||
msgstr "Neuer Antrag"
|
||||
|
||||
@ -1121,6 +1128,9 @@ msgstr "Nein"
|
||||
msgid "No category"
|
||||
msgstr "Kein Sachgebiet"
|
||||
|
||||
msgid "No category set"
|
||||
msgstr "Kein Sachgebiet gesetzt"
|
||||
|
||||
msgid "No change recommendations yet"
|
||||
msgstr "Bisher keine Änderungsempfehlungen"
|
||||
|
||||
@ -1136,6 +1146,9 @@ msgstr "Nichtbefassung"
|
||||
msgid "No countdowns"
|
||||
msgstr "Keine Countdowns"
|
||||
|
||||
msgid "No data"
|
||||
msgstr "Keine Daten"
|
||||
|
||||
msgid "No decision"
|
||||
msgstr "Keine Entscheidung"
|
||||
|
||||
@ -1151,9 +1164,18 @@ msgstr "Keine Gruppen ausgewählt"
|
||||
msgid "No information available"
|
||||
msgstr "Keine Informationen verfügbar"
|
||||
|
||||
msgid "No messages"
|
||||
msgstr "Keine Mitteilungen"
|
||||
|
||||
msgid "No motion block set"
|
||||
msgstr "Kein Antragsblock gesetzt"
|
||||
|
||||
msgid "No personal note"
|
||||
msgstr "Keine persönliche Notiz"
|
||||
|
||||
msgid "No recommendation"
|
||||
msgstr "Keine Empfehlung gesetzt"
|
||||
|
||||
msgid "No search result found for"
|
||||
msgstr "Keine Suchergebnisse gefunden für"
|
||||
|
||||
@ -1163,6 +1185,9 @@ msgstr "Keine Satzungsabschnitte vorhanden"
|
||||
msgid "None"
|
||||
msgstr "aus"
|
||||
|
||||
msgid "Number motions"
|
||||
msgstr "Anträgg nummerieren"
|
||||
|
||||
msgid "Number of (minimum) required supporters for a motion"
|
||||
msgstr "Mindestanzahl erforderlicher Unterstützer/innen für einen Antrag"
|
||||
|
||||
@ -1361,15 +1386,9 @@ msgstr "Datenschutzerklärung"
|
||||
msgid "Project"
|
||||
msgstr "Projizieren"
|
||||
|
||||
msgid "Project motion {{ projectorElementBuildDescriptor.getTitle() }}?"
|
||||
msgstr "Antrag {{ projectorElementBuildDescriptor.getTitle() }} projizieren?"
|
||||
|
||||
msgid "Project now"
|
||||
msgstr "Jetzt projizieren"
|
||||
|
||||
msgid "Project {{ projectorElementBuildDescriptor.getTitle() }}?"
|
||||
msgstr "{{ projectorElementBuildDescriptor.getTitle() }} projizieren?"
|
||||
|
||||
msgid "Projector"
|
||||
msgstr "Projektor"
|
||||
|
||||
@ -1655,6 +1674,9 @@ msgstr "Tagesordnung sortieren"
|
||||
msgid "Sort categories by"
|
||||
msgstr "Sachgebiete sortieren nach"
|
||||
|
||||
msgid "Sort motions"
|
||||
msgstr "Anträge sortieren"
|
||||
|
||||
msgid "Sort name of participants by"
|
||||
msgstr "Namen der Teilnehmenden sortieren nach"
|
||||
|
||||
@ -1908,6 +1930,9 @@ msgstr "Zweidrittelmehrheit"
|
||||
msgid "Type"
|
||||
msgstr "Typ"
|
||||
|
||||
msgid "Undone"
|
||||
msgstr "unerledigt"
|
||||
|
||||
msgid "Unsupport"
|
||||
msgstr "Unterstützung zurückziehen"
|
||||
|
||||
@ -2121,6 +2146,12 @@ msgstr "Beispiel"
|
||||
msgid "inline"
|
||||
msgstr "innerhalb"
|
||||
|
||||
msgid "is hidden"
|
||||
msgstr "ist versteckt"
|
||||
|
||||
msgid "is not hidden"
|
||||
msgstr "ist nicht versteckt"
|
||||
|
||||
msgid "is now"
|
||||
msgstr "ist jetzt"
|
||||
|
||||
@ -2151,9 +2182,6 @@ msgstr "abwesend"
|
||||
msgid "not reached."
|
||||
msgstr "nicht erreicht."
|
||||
|
||||
msgid "not set"
|
||||
msgstr "nicht gesetzt"
|
||||
|
||||
msgid "of"
|
||||
msgstr "von"
|
||||
|
||||
|
@ -108,9 +108,6 @@ msgstr ""
|
||||
msgid "All selected files will be deleted!"
|
||||
msgstr ""
|
||||
|
||||
msgid "All users"
|
||||
msgstr ""
|
||||
|
||||
msgid "All valid ballots"
|
||||
msgstr ""
|
||||
|
||||
@ -389,6 +386,9 @@ msgstr ""
|
||||
msgid "Comment fields"
|
||||
msgstr ""
|
||||
|
||||
msgid "Comments"
|
||||
msgstr ""
|
||||
|
||||
msgid "Committees"
|
||||
msgstr ""
|
||||
|
||||
@ -449,9 +449,6 @@ msgstr ""
|
||||
msgid "Custom translations"
|
||||
msgstr ""
|
||||
|
||||
msgid "Czech"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Dear {name},\n"
|
||||
"\n"
|
||||
@ -560,6 +557,11 @@ msgid ""
|
||||
"will be saved immediately."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Drag and drop motions to reorder the category. Then click the button to "
|
||||
"renumber."
|
||||
msgstr ""
|
||||
|
||||
msgid "Drop files into this area OR select files"
|
||||
msgstr ""
|
||||
|
||||
@ -569,9 +571,6 @@ msgstr ""
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit category"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit comment field:"
|
||||
msgstr ""
|
||||
|
||||
@ -584,6 +583,9 @@ msgstr ""
|
||||
msgid "Edit details for"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit message"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit statute paragraph:"
|
||||
msgstr ""
|
||||
|
||||
@ -635,9 +637,6 @@ msgstr ""
|
||||
msgid "End speech"
|
||||
msgstr ""
|
||||
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter duration in seconds. Choose 0 to disable warning color."
|
||||
msgstr ""
|
||||
|
||||
@ -683,6 +682,9 @@ msgstr ""
|
||||
msgid "Export as PDF"
|
||||
msgstr ""
|
||||
|
||||
msgid "Export comment"
|
||||
msgstr ""
|
||||
|
||||
msgid "Export motions"
|
||||
msgstr ""
|
||||
|
||||
@ -761,9 +763,6 @@ msgstr ""
|
||||
msgid "Generate password"
|
||||
msgstr ""
|
||||
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
msgid "Given name"
|
||||
msgstr ""
|
||||
|
||||
@ -874,6 +873,9 @@ msgstr ""
|
||||
msgid "Invalid line number"
|
||||
msgstr ""
|
||||
|
||||
msgid "Is PDF file"
|
||||
msgstr ""
|
||||
|
||||
msgid "Is a committee"
|
||||
msgstr ""
|
||||
|
||||
@ -886,6 +888,9 @@ msgstr ""
|
||||
msgid "Is favorite"
|
||||
msgstr ""
|
||||
|
||||
msgid "Is no PDF file"
|
||||
msgstr ""
|
||||
|
||||
msgid "Is not favorite"
|
||||
msgstr ""
|
||||
|
||||
@ -952,9 +957,6 @@ msgstr ""
|
||||
msgid "Mark speaker"
|
||||
msgstr ""
|
||||
|
||||
msgid "Message"
|
||||
msgstr ""
|
||||
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
|
||||
@ -1042,6 +1044,9 @@ msgstr ""
|
||||
msgid "New group name"
|
||||
msgstr ""
|
||||
|
||||
msgid "New message"
|
||||
msgstr ""
|
||||
|
||||
msgid "New motion"
|
||||
msgstr ""
|
||||
|
||||
@ -1078,6 +1083,9 @@ msgstr ""
|
||||
msgid "No category"
|
||||
msgstr ""
|
||||
|
||||
msgid "No category set"
|
||||
msgstr ""
|
||||
|
||||
msgid "No change recommendations yet"
|
||||
msgstr ""
|
||||
|
||||
@ -1093,6 +1101,9 @@ msgstr ""
|
||||
msgid "No countdowns"
|
||||
msgstr ""
|
||||
|
||||
msgid "No data"
|
||||
msgstr ""
|
||||
|
||||
msgid "No decision"
|
||||
msgstr ""
|
||||
|
||||
@ -1108,9 +1119,18 @@ msgstr ""
|
||||
msgid "No information available"
|
||||
msgstr ""
|
||||
|
||||
msgid "No messages"
|
||||
msgstr ""
|
||||
|
||||
msgid "No motion block set"
|
||||
msgstr ""
|
||||
|
||||
msgid "No personal note"
|
||||
msgstr ""
|
||||
|
||||
msgid "No recommendation"
|
||||
msgstr ""
|
||||
|
||||
msgid "No search result found for"
|
||||
msgstr ""
|
||||
|
||||
@ -1120,6 +1140,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
msgid "Number motions"
|
||||
msgstr ""
|
||||
|
||||
msgid "Number of (minimum) required supporters for a motion"
|
||||
msgstr ""
|
||||
|
||||
@ -1315,15 +1338,9 @@ msgstr ""
|
||||
msgid "Project"
|
||||
msgstr ""
|
||||
|
||||
msgid "Project motion {{ projectorElementBuildDescriptor.getTitle() }}?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Project now"
|
||||
msgstr ""
|
||||
|
||||
msgid "Project {{ projectorElementBuildDescriptor.getTitle() }}?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Projector"
|
||||
msgstr ""
|
||||
|
||||
@ -1604,6 +1621,9 @@ msgstr ""
|
||||
msgid "Sort categories by"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sort motions"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sort name of participants by"
|
||||
msgstr ""
|
||||
|
||||
@ -1830,6 +1850,9 @@ msgstr ""
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgid "Undone"
|
||||
msgstr ""
|
||||
|
||||
msgid "Unsupport"
|
||||
msgstr ""
|
||||
|
||||
@ -2029,6 +2052,12 @@ msgstr ""
|
||||
msgid "inline"
|
||||
msgstr ""
|
||||
|
||||
msgid "is hidden"
|
||||
msgstr ""
|
||||
|
||||
msgid "is not hidden"
|
||||
msgstr ""
|
||||
|
||||
msgid "is now"
|
||||
msgstr ""
|
||||
|
||||
@ -2059,9 +2088,6 @@ msgstr ""
|
||||
msgid "not reached."
|
||||
msgstr ""
|
||||
|
||||
msgid "not set"
|
||||
msgstr ""
|
||||
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user