feat(localization): add German localization

This commit is contained in:
Markus Koehne
2022-05-04 02:01:45 +02:00
parent 9204a6213a
commit 2a61dd0515
2 changed files with 376 additions and 0 deletions
@@ -19,6 +19,8 @@ part 'stream_chat_localizations_hi.dart';
part 'stream_chat_localizations_pt.dart';
part 'stream_chat_localizations_de.dart';
/// The set of supported languages, as language code strings.
///
/// The [GlobalStreamChatLocalizations.delegate] can generate localizations for
@@ -36,6 +38,7 @@ const kStreamChatSupportedLanguages = {
'ja',
'ko',
'pt',
'de',
};
/// Creates a [GlobalStreamChatLocalizations] instance for the given `locale`.
@@ -74,6 +77,8 @@ GlobalStreamChatLocalizations? getStreamChatTranslation(Locale locale) {
return const StreamChatLocalizationsKo();
case 'pt':
return const StreamChatLocalizationsPt();
case 'de':
return const StreamChatLocalizationsDe();
default:
return null;
}
@@ -0,0 +1,371 @@
part of 'stream_chat_localizations.dart';
/// The translations for German (`de`).
class StreamChatLocalizationsDE extends GlobalStreamChatLocalizations {
/// Create an instance of the translation bundle for German.
const StreamChatLocalizationsDe({String localeName = 'de'})
: super(localeName: localeName);
@override
String get launchUrlError => 'Kann die Url nicht geöffnet werden';
@override
String get loadingUsersError => 'Fehler beim Laden von Benutzern';
@override
String get noUsersLabel => 'Derzeit gibt es keine Benutzer';
@override
String get retryLabel => 'Wiederholen';
@override
String get userLastOnlineText => 'Zuletzt online';
@override
String get userOnlineText => 'Online';
@override
String userTypingText(Iterable<User> users) {
if (users.isEmpty) return '';
final first = users.first;
if (users.length == 1) {
return '${first.name} tippt';
}
return '${first.name} und ${users.length - 1} mehr tippen';
}
@override
String get threadReplyLabel => 'Thread Antwort';
@override
String get onlyVisibleToYouText => 'Nur für dich sichtbar';
@override
String threadReplyCountText(int count) => '$count Thread Antworten';
@override
String attachmentsUploadProgressText({
required int remaining,
required int total,
}) =>
'Hochladen $remaining/$total ...';
@override
String pinnedByUserText({
required User pinnedBy,
required User currentUser,
}) {
final pinnedByCurrentUser = currentUser.id == pinnedBy.id;
if (pinnedByCurrentUser) return 'Angeheftet von Dir';
return 'Angeheftet von ${pinnedBy.name}';
}
@override
String get emptyMessagesText => 'Derzeit sind keine Nachrichten vorhanden';
@override
String get genericErrorText => 'Etwas ist schief gelaufen';
@override
String get loadingMessagesError => 'Fehler beim Laden der Nachrichten';
@override
String resultCountText(int count) => '$count Ergebnisse';
@override
String get messageDeletedText => 'Diese Nachricht ist gelöscht.';
@override
String get messageDeletedLabel => 'Nachricht gelöscht';
@override
String get messageReactionsLabel => 'Nachricht Reaktionen';
@override
String get emptyChatMessagesText => 'Noch keine Unterhaltung hier...';
@override
String threadSeparatorText(int replyCount) {
if (replyCount == 1) return '1 Antwort';
return '$replyCount Antworten';
}
@override
String get connectedLabel => 'Verbunden';
@override
String get disconnectedLabel => 'Getrennt';
@override
String get reconnectingLabel => 'Wiederherstellung der Verbindung...';
@override
String get alsoSendAsDirectMessageLabel => 'Auch als Direktnachricht senden';
@override
String get addACommentOrSendLabel => 'Einen Kommentar hinzufügen oder senden';
@override
String get searchGifLabel => 'GIFs suchen';
@override
String get writeAMessageLabel => 'Eine Nachricht schreiben';
@override
String get instantCommandsLabel => 'Sofortige Befehle';
@override
String fileTooLargeAfterCompressionError(double limitInMB) =>
'Die Datei ist zu groß zum Hochladen. '
'Die maximale Dateigröße beträgt $limitInMB MB. '
'Wir haben versucht, sie zu komprimieren, aber das war nicht genug.';
@override
String fileTooLargeError(double limitInMB) =>
'Die Datei ist zu groß zum Hochladen. Die Dateigröße ist begrenzt auf $limitInMB MB.';
@override
String emojiMatchingQueryText(String query) => 'Emoji-Abgleich "$query"';
@override
String get addAFileLabel => 'Eine Datei hinzufügen';
@override
String get photoFromCameraLabel => 'Foto von der Kamera';
@override
String get uploadAFileLabel => 'Eine Datei hochladen';
@override
String get uploadAPhotoLabel => 'Ein Foto hochladen';
@override
String get uploadAVideoLabel => 'Ein Video hochladen';
@override
String get videoFromCameraLabel => 'Video von der Kamera';
@override
String get okLabel => 'OK';
@override
String get somethingWentWrongError => 'Etwas ist schief gelaufen';
@override
String get addMoreFilesLabel => 'Weitere Dateien hinzufügen';
@override
String get enablePhotoAndVideoAccessMessage =>
'Bitte aktivieren Sie den Zugriff auf Ihre Fotos'
'\nund Videos, damit Sie sie mit Freunden teilen können.';
@override
String get allowGalleryAccessMessage => 'Zugang zu Ihrer Galerie gewähren';
@override
String get flagMessageLabel => 'Markierte-Nachricht';
@override
String get flagMessageQuestion =>
'Möchten Sie eine Kopie dieser Nachricht an einen'
'\nModerator für weitere Untersuchungen senden?';
@override
String get flagLabel => 'MARKIEREN';
@override
String get cancelLabel => 'ABBRECHEN';
@override
String get flagMessageSuccessfulLabel => 'Nachricht markiert';
@override
String get flagMessageSuccessfulText =>
'Die Nachricht wurde an einen Moderator weitergeleitet.';
@override
String get deleteLabel => 'LÖSCHEN';
@override
String get deleteMessageLabel => 'Nachricht löschen';
@override
String get deleteMessageQuestion =>
'Sind Sie sicher, dass Sie diese Nachricht endgültig löschen wollen?';
@override
String get operationCouldNotBeCompletedText =>
'Die Operation konnte nicht abgeschlossen werden.';
@override
String get replyLabel => 'Antwort';
@override
String togglePinUnpinText({required bool pinned}) {
if (pinned) return 'Aus der Unterhaltung lösen';
return 'Anheften an die Unterhaltung';
}
@override
String toggleDeleteRetryDeleteMessageText({required bool isDeleteFailed}) {
if (isDeleteFailed) return 'Wiederholen Löschen der Nachricht';
return 'Nachricht löschen';
}
@override
String get copyMessageLabel => 'Nachricht kopieren';
@override
String get editMessageLabel => 'Nachricht bearbeiten';
@override
String toggleResendOrResendEditedMessage({required bool isUpdateFailed}) {
if (isUpdateFailed) return 'Bearbeitete Nachricht erneut senden';
return 'Erneut senden';
}
@override
String get photosLabel => 'Fotos';
String _getDay(DateTime dateTime) {
final now = DateTime.now();
final today = DateTime(now.year, now.month, now.day);
final yesterday = DateTime(now.year, now.month, now.day - 1);
final date = DateTime(dateTime.year, dateTime.month, dateTime.day);
if (date == today) {
return 'Heute';
} else if (date == yesterday) {
return 'Gestern';
} else {
return 'am ${Jiffy(date).MMMd}';
}
}
@override
String sentAtText({required DateTime date, required DateTime time}) =>
'Gesendet ${_getDay(date)} am ${Jiffy(time.toLocal()).format('HH:mm')}';
@override
String get todayLabel => 'Heute';
@override
String get yesterdayLabel => 'Gestern';
@override
String get channelIsMutedText => 'Kanal ist stummgeschaltet';
@override
String get noTitleText => 'Kein Titel';
@override
String get letsStartChattingLabel => 'Lass uns anfangen zu chatten!';
@override
String get sendingFirstMessageLabel =>
'Wie wäre es, wenn Sie Ihre erste Nachricht an einen Freund senden würden?';
@override
String get startAChatLabel => 'Einen Chat beginnen';
@override
String get loadingChannelsError => 'Fehler beim Laden der Kanäle';
@override
String get deleteConversationLabel => 'Unterhaltung löschen';
@override
String get deleteConversationQuestion =>
'Sind Sie sicher, dass Sie diese Unterhaltung löschen wollen?';
@override
String get streamChatLabel => 'Stream Chat';
@override
String get searchingForNetworkText => 'Searching for Network';
@override
String get offlineLabel => 'Offline...';
@override
String get tryAgainLabel => 'Erneut versuchen';
@override
String membersCountText(int count) {
if (count == 1) return '1 Mitglied';
return '$count Mitglieder';
}
@override
String watchersCountText(int count) {
if (count == 1) return '1 Online';
return '$count Online';
}
@override
String get viewInfoLabel => 'Infos anzeigen';
@override
String get leaveGroupLabel => 'Gruppe verlassen';
@override
String get leaveLabel => 'VERLASSEN';
@override
String get leaveConversationLabel => 'Unterhaltung verlassen';
@override
String get leaveConversationQuestion =>
'Sind Sie sicher, dass Sie diese Unterhaltung verlassen wollen?';
@override
String get showInChatLabel => 'Im Chat anzeigen';
@override
String get saveImageLabel => 'Bild speichern';
@override
String get saveVideoLabel => 'Video speichern';
@override
String get uploadErrorLabel => 'UPLOAD-FEHLER';
@override
String get giphyLabel => 'Giphy';
@override
String get shuffleLabel => 'Mischen';
@override
String get sendLabel => 'Senden';
@override
String get withText => 'mit';
@override
String get inText => 'in';
@override
String get youText => 'Du';
@override
String galleryPaginationText({
required int currentPage,
required int totalPages,
}) =>
'${currentPage + 1} von $totalPages';
@override
String get fileText => 'Datei';
@override
String get replyToMessageLabel => 'Nachricht antworten';
@override
String attachmentLimitExceedError(int limit) =>
'Dateigröße überschritten, Grenze: $limit';
@override
String get slowModeOnLabel => 'Langsam-Modus EIN';
}