feat(localizations): add catalan
Also managed to fix some weird spanish translations.
This commit is contained in:
@@ -1,3 +1,13 @@
|
||||
## Upcoming
|
||||
|
||||
✅ Added
|
||||
|
||||
* Added support for [Catalan](https://github.com/GetStream/stream-chat-flutter/blob/master/packages/stream_chat_localizations/lib/src/stream_chat_localizations_ca.dart) locale.
|
||||
|
||||
🔄 Changed
|
||||
|
||||
* Some of the `Spanish` translations have been updated/changed for better understanding.
|
||||
|
||||
## 4.0.0
|
||||
|
||||
🔄 Changed
|
||||
|
||||
@@ -35,6 +35,7 @@ At the moment we support the following languages:
|
||||
- [Italian](https://github.com/GetStream/stream-chat-flutter/blob/master/packages/stream_chat_localizations/lib/src/stream_chat_localizations_it.dart)
|
||||
- [French](https://github.com/GetStream/stream-chat-flutter/blob/master/packages/stream_chat_localizations/lib/src/stream_chat_localizations_fr.dart)
|
||||
- [Spanish](https://github.com/GetStream/stream-chat-flutter/blob/master/packages/stream_chat_localizations/lib/src/stream_chat_localizations_es.dart)
|
||||
- [Catalan](https://github.com/GetStream/stream-chat-flutter/blob/master/packages/stream_chat_localizations/lib/src/stream_chat_localizations_ca.dart)
|
||||
- [Japanese](https://github.com/GetStream/stream-chat-flutter/blob/master/packages/stream_chat_localizations/lib/src/stream_chat_localizations_ja.dart)
|
||||
- [Korean](https://github.com/GetStream/stream-chat-flutter/blob/master/packages/stream_chat_localizations/lib/src/stream_chat_localizations_ko.dart)
|
||||
- [Portuguese](https://github.com/GetStream/stream-chat-flutter/blob/master/packages/stream_chat_localizations/lib/src/stream_chat_localizations_pt.dart)
|
||||
@@ -75,6 +76,7 @@ class MyApp extends StatelessWidget {
|
||||
Locale('fr'),
|
||||
Locale('it'),
|
||||
Locale('es'),
|
||||
Locale('ca'),
|
||||
Locale('ja'),
|
||||
Locale('ko'),
|
||||
Locale('pt'),
|
||||
@@ -123,6 +125,7 @@ Example:
|
||||
<string>fr</string>
|
||||
<string>it</string>
|
||||
<string>es</string>
|
||||
<string>ca</string>
|
||||
<string>ja</string>
|
||||
<string>ko</string>
|
||||
<string>pt</string>
|
||||
|
||||
@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_localizations/flutter_localizations.dart';
|
||||
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
|
||||
|
||||
part 'stream_chat_localizations_ca.dart';
|
||||
part 'stream_chat_localizations_de.dart';
|
||||
part 'stream_chat_localizations_en.dart';
|
||||
part 'stream_chat_localizations_es.dart';
|
||||
@@ -28,6 +29,7 @@ const kStreamChatSupportedLanguages = {
|
||||
'fr',
|
||||
'it',
|
||||
'es',
|
||||
'ca',
|
||||
'ja',
|
||||
'ko',
|
||||
'pt',
|
||||
@@ -65,6 +67,8 @@ GlobalStreamChatLocalizations? getStreamChatTranslation(Locale locale) {
|
||||
return const StreamChatLocalizationsIt();
|
||||
case 'es':
|
||||
return const StreamChatLocalizationsEs();
|
||||
case 'ca':
|
||||
return const StreamChatLocalizationsCa();
|
||||
case 'ja':
|
||||
return const StreamChatLocalizationsJa();
|
||||
case 'ko':
|
||||
|
||||
@@ -0,0 +1,452 @@
|
||||
part of 'stream_chat_localizations.dart';
|
||||
|
||||
/// The translations for Catalan (`ca`).
|
||||
class StreamChatLocalizationsCa extends GlobalStreamChatLocalizations {
|
||||
/// Create an instance of the translation bundle for Catalan.
|
||||
const StreamChatLocalizationsCa({super.localeName = 'ca'});
|
||||
|
||||
@override
|
||||
String get launchUrlError => "No s'ha pogut obrir la url";
|
||||
|
||||
@override
|
||||
String get loadingUsersError => "Error de càrrega de l'usuari";
|
||||
|
||||
@override
|
||||
String get noUsersLabel => 'Actualment no hi ha usuaris';
|
||||
|
||||
@override
|
||||
String get retryLabel => 'Torna-ho a provar';
|
||||
|
||||
@override
|
||||
String get userLastOnlineText => 'Última vegada en línia';
|
||||
|
||||
@override
|
||||
String get userOnlineText => 'En línia';
|
||||
|
||||
@override
|
||||
String userTypingText(Iterable<User> users) {
|
||||
if (users.isEmpty) return '';
|
||||
final first = users.first;
|
||||
if (users.length == 1) {
|
||||
return '${first.name} està escrivint';
|
||||
}
|
||||
return '${first.name} y ${users.length - 1} estan escrivint';
|
||||
}
|
||||
|
||||
@override
|
||||
String get threadReplyLabel => 'Respon al fil';
|
||||
|
||||
@override
|
||||
String get onlyVisibleToYouText => 'Només visible per vostè';
|
||||
|
||||
@override
|
||||
String threadReplyCountText(int count) =>
|
||||
'$count respostes al fil';
|
||||
|
||||
@override
|
||||
String attachmentsUploadProgressText({
|
||||
required int remaining,
|
||||
required int total,
|
||||
}) =>
|
||||
'Transferència en curs $remaining/$total ...';
|
||||
|
||||
@override
|
||||
String pinnedByUserText({
|
||||
required User pinnedBy,
|
||||
required User currentUser,
|
||||
}) {
|
||||
final pinnedByCurrentUser = currentUser.id == pinnedBy.id;
|
||||
if (pinnedByCurrentUser) return 'Fixat per tu';
|
||||
return 'Fixat per ${pinnedBy.name}';
|
||||
}
|
||||
|
||||
@override
|
||||
String get sendMessagePermissionError =>
|
||||
'No tens permís per enviar missatges';
|
||||
|
||||
@override
|
||||
String get emptyMessagesText => 'Actualment no hi ha missatges';
|
||||
|
||||
@override
|
||||
String get genericErrorText => 'Hi ha hagut un problema';
|
||||
|
||||
@override
|
||||
String get loadingMessagesError =>
|
||||
'Hi ha hagut un error mentres carregava el missatge';
|
||||
|
||||
@override
|
||||
String resultCountText(int count) => '$count resultats';
|
||||
|
||||
@override
|
||||
String get messageDeletedText => 'Aquest missatge ha estat esborrat.';
|
||||
|
||||
@override
|
||||
String get messageDeletedLabel => 'Missatge esborrat';
|
||||
|
||||
@override
|
||||
String get messageReactionsLabel => 'Reaccions dels missatges';
|
||||
|
||||
@override
|
||||
String get emptyChatMessagesText => 'Encara no hi ha missatges...';
|
||||
|
||||
@override
|
||||
String threadSeparatorText(int replyCount) {
|
||||
if (replyCount == 1) return '1 resposta';
|
||||
return '$replyCount respostes';
|
||||
}
|
||||
|
||||
@override
|
||||
String get connectedLabel => 'Connectat';
|
||||
|
||||
@override
|
||||
String get disconnectedLabel => 'Desconnectat';
|
||||
|
||||
@override
|
||||
String get reconnectingLabel => 'Reconnectant...';
|
||||
|
||||
@override
|
||||
String get alsoSendAsDirectMessageLabel =>
|
||||
'Enviar també com a missatge directe';
|
||||
|
||||
@override
|
||||
String get addACommentOrSendLabel => 'Afegir un comentari o enviar';
|
||||
|
||||
@override
|
||||
String get searchGifLabel => 'Cerca de GIFs';
|
||||
|
||||
@override
|
||||
String get writeAMessageLabel => 'Escriure un missatge';
|
||||
|
||||
@override
|
||||
String get instantCommandsLabel => 'Commandes instantànies';
|
||||
|
||||
@override
|
||||
String fileTooLargeAfterCompressionError(double limitInMB) =>
|
||||
'El fitxer és massa gran descargar-lo. '
|
||||
'La mida màxima del fitxer és de $limitInMB MB. '
|
||||
'Hem intentat comprimir-lo, pero ha estat suficient.';
|
||||
|
||||
@override
|
||||
String fileTooLargeError(double limitInMB) =>
|
||||
'El fitxer és massa gran per descargar-lo. '
|
||||
'El límit de mida dels fitxers és de $limitInMB MB.';
|
||||
|
||||
@override
|
||||
String get couldNotReadBytesFromFileError =>
|
||||
"No s'han pogut llegir els bytes del fitxer.";
|
||||
|
||||
@override
|
||||
String get addAFileLabel => 'Afegir un fitxer';
|
||||
|
||||
@override
|
||||
String get photoFromCameraLabel => 'Foto de la càmera';
|
||||
|
||||
@override
|
||||
String get uploadAFileLabel => 'Transferir un fitxer';
|
||||
|
||||
@override
|
||||
String get uploadAPhotoLabel => 'Pujar una foto';
|
||||
|
||||
@override
|
||||
String get uploadAVideoLabel => 'Pujar un vídeo';
|
||||
|
||||
@override
|
||||
String get videoFromCameraLabel => 'Vídeo de la càmera';
|
||||
|
||||
@override
|
||||
String get okLabel => 'Vale';
|
||||
|
||||
@override
|
||||
String get somethingWentWrongError => 'Alguna cosa ha anat malament';
|
||||
|
||||
@override
|
||||
String get addMoreFilesLabel => 'Afegir més fitxers';
|
||||
|
||||
@override
|
||||
String get enablePhotoAndVideoAccessMessage =>
|
||||
"Si us plau, permeti l'accés a les seves fotos"
|
||||
'\ni vídeos per a que pugui compartir-los.';
|
||||
|
||||
@override
|
||||
String get allowGalleryAccessMessage => "Permetre l'accés a la galeria";
|
||||
|
||||
@override
|
||||
String get flagMessageLabel => 'Reportar un missatge';
|
||||
|
||||
@override
|
||||
String get flagMessageQuestion =>
|
||||
"¿Vol enviar una còpia d'aquest missatge a un"
|
||||
'\nmoderador per una major investigació?';
|
||||
|
||||
@override
|
||||
String get flagLabel => 'REPORTAR';
|
||||
|
||||
@override
|
||||
String get cancelLabel => 'CANCELAR';
|
||||
|
||||
@override
|
||||
String get flagMessageSuccessfulLabel => 'Missatge reportat';
|
||||
|
||||
@override
|
||||
String get flagMessageSuccessfulText =>
|
||||
'Aquest missatge ha estat reportat a un moderador.';
|
||||
|
||||
@override
|
||||
String get deleteLabel => 'ESBORRAR';
|
||||
|
||||
@override
|
||||
String get deleteMessageLabel => 'Esborrar el missatge';
|
||||
|
||||
@override
|
||||
String get deleteMessageQuestion =>
|
||||
'¿Estàs segur de que vols esborrar aquest\nmissatge de forma permanent?';
|
||||
|
||||
@override
|
||||
String get operationCouldNotBeCompletedText =>
|
||||
"L'operació no s'ha pogut completar.";
|
||||
|
||||
@override
|
||||
String get replyLabel => 'Respondre';
|
||||
|
||||
@override
|
||||
String togglePinUnpinText({required bool pinned}) {
|
||||
if (pinned) return 'Desfixar de la conversa';
|
||||
return 'Fixar a la conversa';
|
||||
}
|
||||
|
||||
@override
|
||||
String toggleDeleteRetryDeleteMessageText({required bool isDeleteFailed}) {
|
||||
if (isDeleteFailed) return 'Reintentar esborrar el misssatge';
|
||||
return 'Esborrar el misssatge';
|
||||
}
|
||||
|
||||
@override
|
||||
String get copyMessageLabel => 'Copiar el misssatge';
|
||||
|
||||
@override
|
||||
String get editMessageLabel => 'Editar el misssatge';
|
||||
|
||||
@override
|
||||
String toggleResendOrResendEditedMessage({required bool isUpdateFailed}) {
|
||||
if (isUpdateFailed) return 'Reenviar el missatge modificat';
|
||||
return 'Reenviar';
|
||||
}
|
||||
|
||||
@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 'avui';
|
||||
} else if (date == yesterday) {
|
||||
return 'ahir';
|
||||
} else {
|
||||
return 'el ${Jiffy(date).MMMd}';
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
String sentAtText({required DateTime date, required DateTime time}) =>
|
||||
'''Enviat el ${_getDay(date)} a les ${Jiffy(time.toLocal()).format('HH:mm')}''';
|
||||
|
||||
@override
|
||||
String get todayLabel => 'Avui';
|
||||
|
||||
@override
|
||||
String get yesterdayLabel => 'Ahir';
|
||||
|
||||
@override
|
||||
String get channelIsMutedText => 'El canal està silenciat';
|
||||
|
||||
@override
|
||||
String get noTitleText => 'Sense títol';
|
||||
|
||||
@override
|
||||
String get letsStartChattingLabel => '¡Comencem a parlar!';
|
||||
|
||||
@override
|
||||
String get sendingFirstMessageLabel =>
|
||||
'Qué li sembla enviar el seu primer missatge a un amic?';
|
||||
|
||||
@override
|
||||
String get startAChatLabel => 'Iniciar una conversa';
|
||||
|
||||
@override
|
||||
String get loadingChannelsError => 'Error al carregar els canals';
|
||||
|
||||
@override
|
||||
String get deleteConversationLabel => 'Esborrar la conversa';
|
||||
|
||||
@override
|
||||
String get deleteConversationQuestion =>
|
||||
'Estàs segur de que vols esborrar aquesta conversa?';
|
||||
|
||||
@override
|
||||
String get streamChatLabel => 'Stream Chat';
|
||||
|
||||
@override
|
||||
String get searchingForNetworkText => 'Buscant xarxa';
|
||||
|
||||
@override
|
||||
String get offlineLabel => 'Sense connexió...';
|
||||
|
||||
@override
|
||||
String get tryAgainLabel => 'Torna-ho a provar';
|
||||
|
||||
@override
|
||||
String membersCountText(int count) {
|
||||
if (count == 1) return '1 membre';
|
||||
return '$count membres';
|
||||
}
|
||||
|
||||
@override
|
||||
String watchersCountText(int count) {
|
||||
if (count == 1) return '1 En línea';
|
||||
return '$count En línea';
|
||||
}
|
||||
|
||||
@override
|
||||
String get viewInfoLabel => 'Veure informació';
|
||||
|
||||
@override
|
||||
String get leaveGroupLabel => 'Sortir del Grup';
|
||||
|
||||
@override
|
||||
String get leaveLabel => 'SORTIR';
|
||||
|
||||
@override
|
||||
String get leaveConversationLabel => 'Sortir de la conversa';
|
||||
|
||||
@override
|
||||
String get leaveConversationQuestion =>
|
||||
"Estàs segur de que vol sortir d'aquesta conversa?";
|
||||
|
||||
@override
|
||||
String get showInChatLabel => 'Mostrar al chat';
|
||||
|
||||
@override
|
||||
String get saveImageLabel => 'Guardar la imatge';
|
||||
|
||||
@override
|
||||
String get saveVideoLabel => 'Guardar el vídeo';
|
||||
|
||||
@override
|
||||
String get uploadErrorLabel => 'ERROR DE TRANSFERENCIA';
|
||||
|
||||
@override
|
||||
String get giphyLabel => 'Giphy';
|
||||
|
||||
@override
|
||||
String get shuffleLabel => 'Remenar';
|
||||
|
||||
@override
|
||||
String get sendLabel => 'Enviar';
|
||||
|
||||
@override
|
||||
String get withText => 'amb';
|
||||
|
||||
@override
|
||||
String get inText => 'a';
|
||||
|
||||
@override
|
||||
String get youText => 'Vostè';
|
||||
|
||||
@override
|
||||
String galleryPaginationText({
|
||||
required int currentPage,
|
||||
required int totalPages,
|
||||
}) =>
|
||||
'${currentPage + 1} de $totalPages';
|
||||
|
||||
@override
|
||||
String get fileText => 'Fitxer';
|
||||
|
||||
@override
|
||||
String get replyToMessageLabel => 'Respondre al missatge';
|
||||
|
||||
@override
|
||||
String attachmentLimitExceedError(int limit) =>
|
||||
'No és possible afegir més de $limit fitxers adjunts';
|
||||
|
||||
@override
|
||||
String get viewLibrary => 'Veure llibreria';
|
||||
|
||||
@override
|
||||
String get slowModeOnLabel => 'Mode lent activat';
|
||||
|
||||
@override
|
||||
String get downloadLabel => 'Descarregar';
|
||||
|
||||
@override
|
||||
String toggleMuteUnmuteUserText({required bool isMuted}) {
|
||||
if (isMuted) {
|
||||
return "Activar so de l'usuari";
|
||||
} else {
|
||||
return 'Silenciar usuari';
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
String toggleMuteUnmuteGroupQuestion({required bool isMuted}) {
|
||||
if (isMuted) {
|
||||
return "Estàs segur de que vols activar el so d'aquest grup?";
|
||||
} else {
|
||||
return 'Estàs segur de que vols silenciar aquest grup?';
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
String toggleMuteUnmuteUserQuestion({required bool isMuted}) {
|
||||
if (isMuted) {
|
||||
return "Estàs segur de que vols activar el so d'aquest usuari";
|
||||
} else {
|
||||
return 'Estàs seguro de que vols silenciar aquest usuari?';
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
String toggleMuteUnmuteAction({required bool isMuted}) {
|
||||
if (isMuted) {
|
||||
return 'ACTIVAR SO';
|
||||
} else {
|
||||
return 'SILENCIAR';
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
String toggleMuteUnmuteGroupText({required bool isMuted}) {
|
||||
if (isMuted) {
|
||||
return 'Activar so del grup';
|
||||
} else {
|
||||
return 'Silenciar grup';
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
String get linkDisabledDetails =>
|
||||
'No es permet enviar enllaços a aquesta conversa.';
|
||||
|
||||
@override
|
||||
String get linkDisabledError => 'Els enllaços estan deshabilitats';
|
||||
|
||||
@override
|
||||
String unreadMessagesSeparatorText(int unreadCount) {
|
||||
if (unreadCount == 1) {
|
||||
return '1 missatge no llegit';
|
||||
}
|
||||
return '$unreadCount missatges no llegits';
|
||||
}
|
||||
|
||||
@override
|
||||
String get enableFileAccessMessage => "Habiliti l'accés als fitxers"
|
||||
'\nper poder compartir-los amb amics.';
|
||||
|
||||
@override
|
||||
String get allowFileAccessMessage => "Permetre l'accés als fitxers";
|
||||
}
|
||||
@@ -84,7 +84,7 @@ class StreamChatLocalizationsEs extends GlobalStreamChatLocalizations {
|
||||
String get messageDeletedLabel => 'Mensaje borrado';
|
||||
|
||||
@override
|
||||
String get messageReactionsLabel => 'Reacciones a los mensajes';
|
||||
String get messageReactionsLabel => 'Reacciones de los mensajes';
|
||||
|
||||
@override
|
||||
String get emptyChatMessagesText => 'Todavía no hay charlas aquí...';
|
||||
@@ -165,7 +165,7 @@ class StreamChatLocalizationsEs extends GlobalStreamChatLocalizations {
|
||||
@override
|
||||
String get enablePhotoAndVideoAccessMessage =>
|
||||
'Por favor, permita el acceso a sus fotos'
|
||||
'\ny vídeos para que puedas compartirlos con sus amigos.';
|
||||
'\ny vídeos para que pueda compartirlos con sus amigos.';
|
||||
|
||||
@override
|
||||
String get allowGalleryAccessMessage => 'Permitir el acceso a su galería';
|
||||
@@ -206,11 +206,11 @@ class StreamChatLocalizationsEs extends GlobalStreamChatLocalizations {
|
||||
'La operación no pudo completarse.';
|
||||
|
||||
@override
|
||||
String get replyLabel => 'Respuesta';
|
||||
String get replyLabel => 'Responder';
|
||||
|
||||
@override
|
||||
String togglePinUnpinText({required bool pinned}) {
|
||||
if (pinned) return 'Desfijar a la conversación';
|
||||
if (pinned) return 'Desfijar de la conversación';
|
||||
return 'Fijar a la conversación';
|
||||
}
|
||||
|
||||
@@ -389,14 +389,14 @@ No es posible añadir más de $limit archivos adjuntos
|
||||
if (isMuted) {
|
||||
return 'No silenciar usuario';
|
||||
} else {
|
||||
return 'Usuario mudo';
|
||||
return 'Silenciar usuario';
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
String toggleMuteUnmuteGroupQuestion({required bool isMuted}) {
|
||||
if (isMuted) {
|
||||
return '¿Estás seguro de que quieres activar el silencio de este grupo?';
|
||||
return '¿Estás seguro de que quieres activar el sonido de este grupo?';
|
||||
} else {
|
||||
return '¿Estás seguro de que quieres silenciar a este grupo?';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user