diff --git a/CHANGELOG.md b/CHANGELOG.md
index b2d6762b2..0e681d487 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
## [Unreleased]
+### Added
+
+- Catalan translation (thanks Marc Amorós)
+
## [v1.10.4] - 2024-02-07
### Fixed
diff --git a/fastlane/metadata/android/ca/images/featureGraphic.png b/fastlane/metadata/android/ca/images/featureGraphic.png
new file mode 100644
index 000000000..ad29dfe39
Binary files /dev/null and b/fastlane/metadata/android/ca/images/featureGraphic.png differ
diff --git a/fastlane/metadata/android/ca/images/phoneScreenshots/1.png b/fastlane/metadata/android/ca/images/phoneScreenshots/1.png
new file mode 100644
index 000000000..ae462818a
Binary files /dev/null and b/fastlane/metadata/android/ca/images/phoneScreenshots/1.png differ
diff --git a/fastlane/metadata/android/ca/images/phoneScreenshots/2.png b/fastlane/metadata/android/ca/images/phoneScreenshots/2.png
new file mode 100644
index 000000000..78175c595
Binary files /dev/null and b/fastlane/metadata/android/ca/images/phoneScreenshots/2.png differ
diff --git a/fastlane/metadata/android/ca/images/phoneScreenshots/3.png b/fastlane/metadata/android/ca/images/phoneScreenshots/3.png
new file mode 100644
index 000000000..7e38caa67
Binary files /dev/null and b/fastlane/metadata/android/ca/images/phoneScreenshots/3.png differ
diff --git a/fastlane/metadata/android/ca/images/phoneScreenshots/4.png b/fastlane/metadata/android/ca/images/phoneScreenshots/4.png
new file mode 100644
index 000000000..494b4c6de
Binary files /dev/null and b/fastlane/metadata/android/ca/images/phoneScreenshots/4.png differ
diff --git a/fastlane/metadata/android/ca/images/phoneScreenshots/5.png b/fastlane/metadata/android/ca/images/phoneScreenshots/5.png
new file mode 100644
index 000000000..4e5ca98f5
Binary files /dev/null and b/fastlane/metadata/android/ca/images/phoneScreenshots/5.png differ
diff --git a/fastlane/metadata/android/ca/images/phoneScreenshots/6.png b/fastlane/metadata/android/ca/images/phoneScreenshots/6.png
new file mode 100644
index 000000000..95bd8f9e5
Binary files /dev/null and b/fastlane/metadata/android/ca/images/phoneScreenshots/6.png differ
diff --git a/fastlane/metadata/android/ca/images/phoneScreenshots/7.png b/fastlane/metadata/android/ca/images/phoneScreenshots/7.png
new file mode 100644
index 000000000..60adcc959
Binary files /dev/null and b/fastlane/metadata/android/ca/images/phoneScreenshots/7.png differ
diff --git a/lib/l10n/app_ca.arb b/lib/l10n/app_ca.arb
index 2cc9d43d2..e34d3a686 100644
--- a/lib/l10n/app_ca.arb
+++ b/lib/l10n/app_ca.arb
@@ -19,7 +19,7 @@
"count": {}
}
},
- "cancelTooltip": "Cancel·lar",
+ "cancelTooltip": "Canceŀlar",
"@cancelTooltip": {},
"changeTooltip": "Canviar",
"@changeTooltip": {},
@@ -323,7 +323,7 @@
"@setCoverDialogAuto": {},
"setCoverDialogCustom": "Personalitzat",
"@setCoverDialogCustom": {},
- "hideFilterConfirmationDialogMessage": "Les fotos i els vídeos coincidents s’amagaran de la teva col·lecció. Podeu tornar-los a mostrar des de la configuració de «Privadesa».\n\nEsteu segur que voleu amagar-los?",
+ "hideFilterConfirmationDialogMessage": "Les fotos i els vídeos coincidents s’amagaran de la teva coŀlecció. Podeu tornar-los a mostrar des de la configuració de «Privadesa».\n\nEsteu segur que voleu amagar-los?",
"@hideFilterConfirmationDialogMessage": {},
"newAlbumDialogTitle": "Àlbum nou",
"@newAlbumDialogTitle": {},
@@ -477,7 +477,7 @@
"@aboutLicensesShowAllButtonLabel": {},
"policyPageTitle": "Política de Privacitat",
"@policyPageTitle": {},
- "collectionPageTitle": "Col·lecció",
+ "collectionPageTitle": "Coŀlecció",
"@collectionPageTitle": {},
"timeSeconds": "{seconds, plural, =1{1 segon} other{{seconds} segons}}",
"@timeSeconds": {
@@ -566,7 +566,7 @@
"@viewerActionLock": {},
"slideshowActionResume": "Reprèn",
"@slideshowActionResume": {},
- "slideshowActionShowInCollection": "Mostrar a Col·lecció",
+ "slideshowActionShowInCollection": "Mostrar a Coŀlecció",
"@slideshowActionShowInCollection": {},
"entryInfoActionEditDate": "Edita la data i l’hora",
"@entryInfoActionEditDate": {},
@@ -607,7 +607,7 @@
},
"newAlbumDialogNameLabelAlreadyExistsHelper": "El directori ja existeix",
"@newAlbumDialogNameLabelAlreadyExistsHelper": {},
- "newVaultWarningDialogMessage": "Els elements en caixes fortes només son disponibles des d’aquesta aplicació.\n\nSi desinstal·les aquesta aplicació o en borres les dades, perdràs aquests elements.",
+ "newVaultWarningDialogMessage": "Els elements en caixes fortes només son disponibles des d’aquesta aplicació.\n\nSi desinstaŀles aquesta aplicació o en borres les dades, perdràs aquests elements.",
"@newVaultWarningDialogMessage": {},
"vaultDialogLockModeWhenScreenOff": "Bloqueja quan la pantalla s’apagui",
"@vaultDialogLockModeWhenScreenOff": {},
@@ -753,7 +753,7 @@
"@widgetOpenPageViewer": {},
"widgetTapUpdateWidget": "Actualitzar giny",
"@widgetTapUpdateWidget": {},
- "restrictedAccessDialogMessage": "Aquesta aplicació no té permís per modificar arxius de {directory} a «{volume}».\n\nSi us plau, feu servir un gestor d’arxius o l’aplicació de galeria preinstal·lada per moure els elements a un altre directori.",
+ "restrictedAccessDialogMessage": "Aquesta aplicació no té permís per modificar arxius de {directory} a «{volume}».\n\nSi us plau, feu servir un gestor d’arxius o l’aplicació de galeria preinstaŀlada per moure els elements a un altre directori.",
"@restrictedAccessDialogMessage": {
"placeholders": {
"directory": {
@@ -793,9 +793,9 @@
"@videoPlaybackWithSound": {},
"videoResumptionModeAlways": "Sempre",
"@videoResumptionModeAlways": {},
- "viewerTransitionParallax": "Paral·laxi",
+ "viewerTransitionParallax": "Paraŀlaxi",
"@viewerTransitionParallax": {},
- "widgetOpenPageCollection": "Obrir col·lecció",
+ "widgetOpenPageCollection": "Obrir coŀlecció",
"@widgetOpenPageCollection": {},
"themeBrightnessLight": "Llum",
"@themeBrightnessLight": {},
@@ -973,7 +973,7 @@
"@tagEmpty": {},
"binPageTitle": "Paperera de Reciclatge",
"@binPageTitle": {},
- "searchCollectionFieldHint": "Buscar a col·lecció",
+ "searchCollectionFieldHint": "Buscar a coŀlecció",
"@searchCollectionFieldHint": {},
"searchRecentSectionTitle": "Recent",
"@searchRecentSectionTitle": {},
@@ -1173,7 +1173,7 @@
"@settingsHiddenItemsPageTitle": {},
"settingsHiddenItemsTabFilters": "Filtres Amagats",
"@settingsHiddenItemsTabFilters": {},
- "settingsHiddenFiltersBanner": "Les fotos i els vídeos que coincideixin amb filtres amagats no apareixeran a la teva col·lecció.",
+ "settingsHiddenFiltersBanner": "Les fotos i els vídeos que coincideixin amb filtres amagats no apareixeran a la teva coŀlecció.",
"@settingsHiddenFiltersBanner": {},
"addPathTooltip": "Afegeix ruta",
"@addPathTooltip": {},
@@ -1233,7 +1233,7 @@
"@settingsWidgetOpenPage": {},
"settingsWidgetDisplayedItem": "Element mostrat",
"@settingsWidgetDisplayedItem": {},
- "settingsCollectionTile": "Col·lecció",
+ "settingsCollectionTile": "Coŀlecció",
"@settingsCollectionTile": {},
"statsPageTitle": "Estadístiques",
"@statsPageTitle": {},
@@ -1357,7 +1357,7 @@
"@settingsHiddenFiltersEmpty": {},
"settingsHiddenItemsTabPaths": "Rutes Amagades",
"@settingsHiddenItemsTabPaths": {},
- "settingsHiddenPathsBanner": "Les fotos i vídeos d’aquestes carpetes, o a les seves subcarpetes, no apareixeran a la teva col·lecció.",
+ "settingsHiddenPathsBanner": "Les fotos i vídeos d’aquestes carpetes, o a les seves subcarpetes, no apareixeran a la teva coŀlecció.",
"@settingsHiddenPathsBanner": {},
"settingsStorageAccessTile": "Accés d’emmagatzematge",
"@settingsStorageAccessTile": {},
@@ -1385,7 +1385,7 @@
"@drawerAboutButton": {},
"drawerSettingsButton": "Configuració",
"@drawerSettingsButton": {},
- "drawerCollectionAll": "Tota la col·lecció",
+ "drawerCollectionAll": "Tota la coŀlecció",
"@drawerCollectionAll": {},
"drawerCollectionFavourites": "Preferits",
"@drawerCollectionFavourites": {},
@@ -1471,7 +1471,7 @@
"@tagPlaceholderState": {},
"tagPlaceholderPlace": "Lloc",
"@tagPlaceholderPlace": {},
- "setHomeCustomCollection": "Col·lecció personalitzada",
+ "setHomeCustomCollection": "Coŀlecció personalitzada",
"@setHomeCustomCollection": {},
"settingsConfirmationBeforeMoveToBinItems": "Pregunta abans de moure elements a la paperera de reciclatge",
"@settingsConfirmationBeforeMoveToBinItems": {},
diff --git a/lib/model/app/contributors.dart b/lib/model/app/contributors.dart
index a2eed236e..aedff6cf6 100644
--- a/lib/model/app/contributors.dart
+++ b/lib/model/app/contributors.dart
@@ -77,6 +77,7 @@ class Contributors {
Contributor('fuzfyy', 'egeozce35@gmail.com'),
Contributor('minh', 'teaminh@skiff.com'),
Contributor('luckris25', 'lk1thebestl@gmail.com'),
+ Contributor('Marc Amorós', 'marquitus99@gmail.com'),
// Contributor('Alvi Khan', 'aveenalvi@gmail.com'), // Bengali
// Contributor('Htet Oo Hlaing', 'htetoh2006@outlook.com'), // Burmese
// Contributor('Khant', 'khant@users.noreply.hosted.weblate.org'), // Burmese
diff --git a/lib/widgets/settings/language/locales.dart b/lib/widgets/settings/language/locales.dart
index 88d8c72c4..37800c7b2 100644
--- a/lib/widgets/settings/language/locales.dart
+++ b/lib/widgets/settings/language/locales.dart
@@ -5,6 +5,7 @@ class SupportedLocales {
static const languagesByLanguageCode = {
'ar': 'العربية',
'be': 'Беларуская мова',
+ 'ca': 'Català',
'cs': 'Čeština',
'de': 'Deutsch',
'el': 'Ελληνικά',