diff --git a/database/src/main/java/de/mm20/launcher2/database/AppDatabase.kt b/database/src/main/java/de/mm20/launcher2/database/AppDatabase.kt index 5a61f8f7..143cade4 100644 --- a/database/src/main/java/de/mm20/launcher2/database/AppDatabase.kt +++ b/database/src/main/java/de/mm20/launcher2/database/AppDatabase.kt @@ -35,9 +35,9 @@ abstract class AppDatabase : RoomDatabase() { override fun onCreate(db: SupportSQLiteDatabase) { super.onCreate(db) db.execSQL("INSERT INTO Websearch (urlTemplate, label, color, icon) VALUES " + - "('${context.getString(R.string.websearch_google_url)}', '${context.getString(R.string.websearch_google)}', 0, NULL )," + - "('${context.getString(R.string.websearch_youtube_url)}', '${context.getString(R.string.websearch_youtube)}', 0, NULL )," + - "('${context.getString(R.string.websearch_playstore_url)}', '${context.getString(R.string.websearch_playstore)}', 0, NULL );") + "('${context.getString(R.string.default_websearch_1_url)}', '${context.getString(R.string.default_websearch_1_name)}', 0, NULL )," + + "('${context.getString(R.string.default_websearch_2_url)}', '${context.getString(R.string.default_websearch_2_name)}', 0, NULL )," + + "('${context.getString(R.string.default_websearch_3_url)}', '${context.getString(R.string.default_websearch_3_name)}', 0, NULL );") db.execSQL("INSERT INTO Widget (type, data, height, position, label) VALUES " + "('internal', 'weather', -1, 0, '${context.getString(R.string.widget_name_weather)}')," + diff --git a/i18n/src/main/res/values-de/strings.xml b/i18n/src/main/res/values-de/strings.xml index 77295680..a1aa0b1f 100644 --- a/i18n/src/main/res/values-de/strings.xml +++ b/i18n/src/main/res/values-de/strings.xml @@ -1,17 +1,14 @@ Kvæsitso - Suchen - Wird vorbereitet… - %1$s-Link - Paketdatei + Suchen + %1$s-Link + Paketdatei Deinstallieren Teilen - Version %1$s\n%2$s Version %1$s Einstellungen Hintergrundbild - Einstellungen ganztägig Nord Nordost @@ -69,7 +66,6 @@ Datei %1$s-Datei Systemeinstellung verwenden - Keine passende Anwendung installiert! Präsentation Komprimierte Datei Text-Datei @@ -91,14 +87,14 @@ Ort: %1$s Eigentümer: %1$s Dienste - Google - YouTube - Google Play - https://google.de/search?q=${1} - https://www.youtube.com/results?search_query=${1} - https://play.google.com/store/search?q=${1} - Name - URL + Google + YouTube + Google Play + https://google.de/search?q=${1} + https://www.youtube.com/results?search_query=${1} + https://play.google.com/store/search?q=${1} + Name + URL „${1}“ wird durch den eigentlichen Suchbegriff ersetzt. In dieser URL fehlt der Platzhalter „${1}“ Symbol ersetzen @@ -119,13 +115,10 @@ Statusleiste ausblenden Navigationsleiste ausblenden Musik - In Kontakte-App anzeigen - An Favoriten anheften - Aus Favoriten entfernen + In Kontakte-App anzeigen + An Favoriten anheften + Aus Favoriten entfernen Zurück - %1$d Telefonnummern - %1$d E-Mail-Adressen - %1$d Postadressen App-Info Starten Öffnen @@ -140,73 +133,74 @@ Ausgeblendete Elemente Löschen Nicht ausblenden - In Kalender-App anzeigen + In Kalender-App anzeigen Bilder anzeigen Erhöht den Datenverbrauch signifikant Sechseck Reuleaux-Dreieck Über Google anmelden Anmelden, um Google Drive durchsuchen zu können - Wird installiert… (%1$d%%) + Wird installiert… (%1$s) Von %1$s - %1$s konnte nicht geöffnet werden + %1$s konnte nicht geöffnet werden MET Norway - Schneeregenschauer - Starker Schneeregen - Leichte Regenschauer und Gewitter - Starkregen - Leichter Schneefall und Gewitter - Leichter Regen - Leichte Regenschauer - Leichter Schnee - Starke Schneeregenschauer und Gewitter - Leichte Schneeschauer - Leichte Schneeregenschauer und Gewitter - Schneefall und Gewitter - Starke Schneeregenschauer - Starker Schneefall - Bedeckt - Leichter Regen und Gewitter - Schneefall - Hagel - Gewitter - Starke Schneeschauer - Starke Regenschauer - Regenschauer und Gewitter - Klarer Himmel - Schneeregen - Regen - Schneeregen und Gewitter - Leichte Schneeschauer und Gewitter - Starke Regenschauer und Gewitter - Heiter - Nebel - Schneeregenschauer und Gewitter - Regen und Gewitter - Leichter Schneeregen - Starker Schneeregen und Gewitter - Teilweise bewölkt - Starker Schneefall und Gewitter - Regenschauer - Light sleet and thunder - Starke Schneeschauer und Gewitter - Light sleet showers - Schneeschauer und Gewitter - Schneeschauer - Starkregen und Gewitter - Unbekannt + Schneeregenschauer + Starker Schneeregen + Leichte Regenschauer und Gewitter + Starkregen + Leichter Schneefall und Gewitter + Leichter Regen + Leichte Regenschauer + Leichter Schnee + Starke Schneeregenschauer und Gewitter + Leichte Schneeschauer + Leichte Schneeregenschauer und Gewitter + Schneefall und Gewitter + Starke Schneeregenschauer + Starker Schneefall + Bedeckt + Leichter Regen und Gewitter + Schneefall + Hagel + Gewitter + Starke Schneeschauer + Starke Regenschauer + Regenschauer und Gewitter + Klarer Himmel + Schneeregen + Regen + Schneeregen und Gewitter + Leichte Schneeschauer und Gewitter + Starke Regenschauer und Gewitter + Heiter + Nebel + Schneeregenschauer und Gewitter + Regen und Gewitter + Leichter Schneeregen + Starker Schneeregen und Gewitter + Teilweise bewölkt + Starker Schneefall und Gewitter + Regenschauer + Light sleet and thunder + Starke Schneeschauer und Gewitter + Light sleet showers + Schneeschauer und Gewitter + Schneeschauer + Starkregen und Gewitter + Wind + Unbekannt Symbol-Hintergrund Stil von Legacy-Icons Hier gibt es keine Easter Eggs, es sei denn Ihr hättet sie mitgebracht. Bitte, hör auf, du verschwendest deine Zeit Ich werde es nicht noch einmal sagen: hier sind definitiv keine Easter Eggs versteckt. Tja, da sind Sie. Herzlichen Glückwunsch. War es das wert? - Kalender-Berechtigung gewähren, um Ihre nächsten Termine hier anzuzeigen. - Kalender-Berechtigung gewähren, um Termine zu durchsuchen. - Kontakt-Berechtigung gewähren, um Kontakte zu durchsuchen. - Speicher-Berechtigung gewähren, um Fotos, Medien und Dokumente auf diesem Gerät zu durchsuchen. + Kalender-Berechtigung gewähren, um Ihre nächsten Termine hier anzuzeigen. + Kalender-Berechtigung gewähren, um Termine zu durchsuchen. + Kontakt-Berechtigung gewähren, um Kontakte zu durchsuchen. + Speicher-Berechtigung gewähren, um Fotos, Medien und Dokumente auf diesem Gerät zu durchsuchen. Schließen - Eigenes Symbol + Eigenes Symbol Höhe anpassen Entfernen Einstellungen @@ -232,18 +226,17 @@ Anmelden, um OneDrive durchsuchen zu können Bei Nextcloud anmelden Anmelden, um Ihren Nextcloud-Server durchsuchen zu können - Status wird abgerufen… Telegram-Gruppe F-Droid-Repository Favoriten bearbeiten - Nicht angeheftet – häufig genutzt - Angeheftet – automatisch sortiert - Angeheftet – manuell sortiert - Weiter - Nextcloud-Server-URL - Server-URL darf nicht leer sein. + Nicht angeheftet – häufig genutzt + Angeheftet – automatisch sortiert + Angeheftet – manuell sortiert + Weiter + Nextcloud-Server-URL + Server-URL darf nicht leer sein. Nextcloud - Diese URL verweist auf keine gültige Nextcloud-Installation + Diese URL verweist auf keine gültige Nextcloud-Installation Anmelden Owncloud-Server-URL Owncloud @@ -275,8 +268,9 @@ Termin erstellen Details anzeigen Details ausblenden - Luftfeuchte: - Niederschlag: + Luftfeuchte: %1$s + Niederschlag: %1$s + Wind: %1$s Lizenz Diese App ist freie Software. Lizenziert unter der GNU General Public License 3.0 @@ -284,11 +278,9 @@ +%1$d laufender Termin aus vergangenen Tagen +%1$d laufende Termine aus vergangenen Tagen - Wind: Eingefärbte Symbole Symbole an das Farbschema der App anpassen Keine Wetterdaten verfügbar. - Dieser Standort konnte nicht gefunden werden. Raster Spaltenanzahl @@ -296,8 +288,8 @@ Gewähren Standortzugriff wird benötigt, um den Standort automatisch zu ermitteln Benachrichtigungszugriff wird benötigt, um Medienwiedergabe zu steuern - Kontakteberechtigung ist erforderlich, um Kontakte durchsuchen zu können - Kalenderberechtigung ist erforderlich, um Kalender durchsuchen zu können + Kontakteberechtigung ist erforderlich, um Kontakte durchsuchen zu können + Kalenderberechtigung ist erforderlich, um Kalender durchsuchen zu können Standort festlegen Debug @@ -374,8 +366,8 @@ Bisher wurden keine Medien abgespielt Kalenderzugriff wird benötigt um Termine abzurufen - Speicher-Berechtigung wird benötigt um lokale Dateien zu durchsuchen - Alle Dateien verwalten-Berechtigung wird benötigt um lokale Dateien zu durchsuchen + Speicher-Berechtigung wird benötigt um lokale Dateien zu durchsuchen + Alle Dateien verwalten-Berechtigung wird benötigt um lokale Dateien zu durchsuchen Benachrichtigungszugriff wird benötigt um Benachrichtigungsplaketten anzuzeigen Websuche hinzufügen diff --git a/i18n/src/main/res/values-de/units.xml b/i18n/src/main/res/values-de/units.xml index 9a640ce9..5d1bc7bf 100644 --- a/i18n/src/main/res/values-de/units.xml +++ b/i18n/src/main/res/values-de/units.xml @@ -1,5 +1,5 @@ - + m Meter diff --git a/i18n/src/main/res/values-fr/strings.xml b/i18n/src/main/res/values-fr/strings.xml index b8f6ac5c..bd9f99a6 100644 --- a/i18n/src/main/res/values-fr/strings.xml +++ b/i18n/src/main/res/values-fr/strings.xml @@ -1,26 +1,21 @@ - + Kvæsitso - Rechercher - - Préparation... + Rechercher - Lien %1$s + Lien %1$s - Fichier du programme + Fichier du programme Désinstaller Partager - - Version %1$s\n%2$s + Version %1$s Paramètres Papier-peint - - Paramètres Journée entière @@ -102,7 +97,6 @@ Photo Fichier Fichier %1$s - Aucune application appropriée n\'est installée. Présentation Fichier compressé Fichier texte @@ -124,14 +118,14 @@ Propriétaire: %1$s Services Suivre le système - Google - YouTube - Google Play - https://google.com/search?q=${1} - https://www.youtube.com/results?search_query=${1} - https://play.google.com/store/search?q=${1} - Nom - URL + Google + YouTube + Google Play + https://google.com/search?q=${1} + https://www.youtube.com/results?search_query=${1} + https://play.google.com/store/search?q=${1} + Nom + URL \'${1}\' va être remplacé par la recherche actuelle. Le placeholder \'${1}\' est manquant dans cette URL Remplacer l\'icône @@ -154,13 +148,10 @@ Icônes de la barre de statut sombres Icônes de la barre de navigation sombres Musique - Ouvrir dans l\'application de contacts - Ajouter aux favoris - Enlever + Ouvrir dans l\'application de contacts + Ajouter aux favoris + Enlever Retour - %1$d numéros de téléphone - %1$d adresses mail - %1$d adresses postales Informations sur l\'application Gérer les comptes et les services Google @@ -174,15 +165,15 @@ Ne pas cacher Applications cachées Supprimer - Ouvrir dans l\'application de calendrier + Ouvrir dans l\'application de calendrier Voir les photos Augmente considérablement l\'utilisation des données Se connecter avec Google Se connecter pour rechercher dans Google Drive Hexagone Par %1$s - Installation en cours... (%1$d%%) - Impossible d\'ouvrir %1$s + Installation en cours… (%1$s) + Impossible d\'ouvrir %1$s Arrière-plan de l\'icône Style d\'icône legacy @@ -190,12 +181,12 @@ Merci d\'arrêter, vous perdez votre temps. Je ne vais pas le répéter: il n\'y a absoluement aucun easter easter egg caché ici. Bien, vous m\'avez trouvé. Bravo. Cela en valait-il la peine ? - Accorder la permission d\'accès au calendrier pour afficher les évènements à venir ici. - Accorder la permission pour rechercher dans le calendrier. - Accorder la permission d\'accès au stockage pour rechercher des photos, des médias et des documents sur cet appareil. - Accorder la permission d\'accès aux contacts pour rechercher dans les contacts. + Accorder la permission d\'accès au calendrier pour afficher les évènements à venir ici. + Accorder la permission pour rechercher dans le calendrier. + Accorder la permission d\'accès au stockage pour rechercher des photos, des médias et des documents sur cet appareil. + Accorder la permission d\'accès aux contacts pour rechercher dans les contacts. Fermer - Icône personnalisée + Icône personnalisée Ajuster la hauteur Retirer Paramètres @@ -220,18 +211,17 @@ Se connecter pour rechercher dans OneDrive Se connecter avec Nextcloud Se connecter pour rechercher dans votre serveur Nextcloud - Vérifie la statut... Groupe Telegram Dépôt F-Droid Éditer les favoris - Pas épinglé – utilisé fréquemment - Épinglé – trié automatiquement - Épinglé – trié manuellement - Suivant - URL du serveur Nextcloud - L\'URL ne peut pas être vide + Pas épinglé – utilisé fréquemment + Épinglé – trié automatiquement + Épinglé – trié manuellement + Suivant + URL du serveur Nextcloud + L\'URL ne peut pas être vide Nextcloud - Cette URL ne dirige pas vers une installation Nextcloud valide + Cette URL ne dirige pas vers une installation Nextcloud valide URL du serveur Owncloud Owncloud @@ -266,58 +256,57 @@ - Averses de grésil - Fort grésil - Légères averses et orage - Forte pluie - Légère neige et orage - Légère pluie - Légères averses - Légère neige - Fortes averses de grésil et orage - Légères averses de neige - Légères averses de grésil et orage - Neige et orage - Fortes averses de grésil - Forte neige - Nuageux - Légère pluie et orage - Neige - Grêle - Orage - Fortes averses de neige - Fortes averses - Averses et orage - Ciel clair - Grésil - Pluie - Grésil et orage - Légères averses de neige et orage - Fortes averses et orage - Beau temps - Brouillard - Averses de grésil et orage - Pluie et orage - Léger grésil - Fort grésil et orage - Partiellement nuageux - Forte neige et orage - Averses - Léger grésil et orage - Fortes averses de neige et orage - Légère averses de grésil - Averses de neige et orage - Averses de neige - Forte pluie et orage - Inconnu + Averses de grésil + Fort grésil + Légères averses et orage + Forte pluie + Légère neige et orage + Légère pluie + Légères averses + Légère neige + Fortes averses de grésil et orage + Légères averses de neige + Légères averses de grésil et orage + Neige et orage + Fortes averses de grésil + Forte neige + Nuageux + Légère pluie et orage + Neige + Grêle + Orage + Fortes averses de neige + Fortes averses + Averses et orage + Ciel clair + Grésil + Pluie + Grésil et orage + Légères averses de neige et orage + Fortes averses et orage + Beau temps + Brouillard + Averses de grésil et orage + Pluie et orage + Léger grésil + Fort grésil et orage + Partiellement nuageux + Forte neige et orage + Averses + Léger grésil et orage + Fortes averses de neige et orage + Légère averses de grésil + Averses de neige et orage + Averses de neige + Forte pluie et orage + Inconnu Montrer les détails Cacher les détails - Humidité : - Vent : + Humidité : %1$s + Vent : %1$s + Précipitations : %1$s Aucune donnée météo disponible. - Cette position est introuvable. - Précipitations : License Cette application est un logiciel libre. Sous la license GNU General Public License 3.0 @@ -328,11 +317,11 @@ Accorder La permission d\'accès à la position est nécessaire pour déterminer la position automatiquement La permission d\'accès aux notifications est nécessaire pour contrôler la lecture du média - La permission d\'accès aux contacts est nécessaire pour rechercher des contacts - La permission d\'accès au calendrier est nécessaire pour rechercher dans le calendrier + La permission d\'accès aux contacts est nécessaire pour rechercher des contacts + La permission d\'accès au calendrier est nécessaire pour rechercher dans le calendrier Ce widget nécessite la permission d\'accès au calendrier - La permission de gérer tous les fichiers est nécessaire pour rechercher des fichiers locaux - La permission d\'accès au stockage externe est nécessaire pour rechercher des fichiers locaux + La permission de gérer tous les fichiers est nécessaire pour rechercher des fichiers locaux + La permission d\'accès au stockage externe est nécessaire pour rechercher des fichiers locaux La permission d\'accès aux notifications est nécessaire pour afficher les badges de notification Définir la position diff --git a/i18n/src/main/res/values-fr/units.xml b/i18n/src/main/res/values-fr/units.xml index eee31bd7..b5770c5e 100644 --- a/i18n/src/main/res/values-fr/units.xml +++ b/i18n/src/main/res/values-fr/units.xml @@ -1,5 +1,5 @@ - + diff --git a/i18n/src/main/res/values/strings.xml b/i18n/src/main/res/values/strings.xml index 90ad5c5e..46164399 100644 --- a/i18n/src/main/res/values/strings.xml +++ b/i18n/src/main/res/values/strings.xml @@ -1,29 +1,46 @@ + Kvæsitso - - Search - - Preparing… - - %1$s link - - Package file + + + + Share + + %1$s link + + Package file Uninstall - - Share - - Version %1$s\n%2$s + Pin to favorites + Unpin + Back + App info + + Launch + + Open + Hide + Don\'t hide + Hidden items + + Delete + + Open in contacts app + + Open in calendar app + + + Search + + Version %1$s Settings Wallpaper - - Settings - - all-day + North @@ -58,6 +75,331 @@ North north west No precipitation + + + https://en.wikipedia.org + + From Wikipedia + + + + Title: %1$s + + Artist: %1$s + + Album: %1$s + + Duration: %1$s + + Year: %1$s + + Size: %1$s + + Path: %1$s + + Type: %1$s + + Dimensions: %1$s + + App name: %1$s + + Version: %1$s + + Package name: %1$s + + Min SDK version: %1$s + + Owner: %1$s + + Location: %1$s + + Directory + + Archive file + + Android package file + + Source code file + + Document + + Spreadsheet + + Music file + + Video + + Picture + + File + + Presentation + + Compressed file + + Text file + + E-book + + Drawing + + Form + + %1$s file + + The directory %1$s and all its content will be deleted permanently. Proceed? + + The file %1$s will be deleted permanently. Proceed? + + + + Couldn\'t open %1$s + + + Google + + https://google.com/search?q=${1} + + YouTube + + https://www.youtube.com/results?search_query=${1} + + Google Play + + https://play.google.com/store/search?q=${1} + + + Add web search + Edit web search + Name + URL + \'${1}\' will be replaced by the actual search term. + The placeholder \'${1}\' is missing in this URL + Replace icon + Delete icon + Custom icon + + Edit widgets + Weather + Calendar + Music + Add widget + + More + + By %1$s + + Installation in progress… (%1$s) + + + There are no easter eggs here, unless you brought them with you. + + Please, stop it, you are wasting your time + + I won\'t say it again: there are absolutely no easter eggs hidden here + + Well, you found me. Congratulations. Was it worth it? + + + Close + + Turn off + + Adjust height + Remove + Settings + + Edit favorites + + Not pinned – frequently used + + Pinned – automatically sorted + + Pinned – manually sorted + + + + Nextcloud server URL + + Server URL must not be empty + + This URL does not point to a valid Nextcloud installation + + Owncloud server URL + + This URL does not point to a valid Owncloud installation + + Password + + User name + + If you have two factor authentication enabled, you must use an app password here. + + Login failed: incorrect username or password. + + User name must not be empty + + Password must not be empty + + Continue + + Log in + + + Disclaimer + + "Exchange rates as published once per day by the European Central Bank. All information is provided \"as is\" without any kind of guarantee. No liability is assumed for these information.\n\nLast update: %1$s" + Show all + + + Today + + Tomorrow + + Upcoming + No events today + Open calendar app + New event + + + +%1$d running event from past days + +%1$d running events from past days + + + all-day + + + %1$s is playing media + No media has been played yet + + Sleet showers + Heavy sleet + Light rain showers and thunder + Heavy rain + Light snow and thunder + Light rain + Light rain showers + Light snow + Heavy sleet showers and thunder + Light snow showers + Lights sleet showers and thunder + Snow and thunder + Heavy sleet showers + Heavy snow + Cloudy + Light rain and thunder + Snow + Hail + Thunderstorm + Heavy snow showers + Heavy rain showers + Rain showers and thunder + Clear sky + Sleet + Rain + Sleet and thunder + Lights snow showers and thunder + Heavy rain showers and thunder + Fair + Fog + Sleet showers and thunder + Rain and thunder + Light sleet + Heavy sleet and thunder + Partly cloudy + Heavy snow and thunder + Rain showers + Light sleet and thunder + Heavy snow showers and thunder + Light sleet showers + Snow showers and thunder + Snow showers + Heavy rain and thunder + Wind + Unknown + Show details + Hide details + + Humidity: %1$s + + Wind: %1$s + + Precipitation: %1$s + No weather data available. + + Set location + + + + Location access is required to determine the location automatically + + Notification access is required to control media playback + + Contact permission is required to search contacts + + Calendar permission is required to search calendar + + This widget requires calendar permission + + External storage permission is required to search local files + + Manage all files permission is required to search local files + + Notification access is required to display notification badges + + Grant calendar permission to display upcoming appointments and events here. + + Grant calendar permission to search your calendar. + + Grant storage permission to search photos, media and document on this device. + + Grant contact permission to search your contact. + + + Grant + Appearance Theme @@ -74,6 +416,11 @@ Open website App and license information Customize the look-and-feel + Provider + MET Norway + OpenWeatherMap + Deutscher Wetterdienst (Germany only) + HERE Location Automatic location Use GPS and location services to determine location automatically @@ -81,130 +428,37 @@ Use degrees Fahrenheit and miles per hour Imperial units Debug - - https://en.wikipedia.org - From Wikipedia Icons + Cards + Customize card appearance + Corner radius + Stroke width + Opacity Shape + System default Square Rounded square Squircle Reuleaux triangle Circle + Hexagon Search bar - Directory - Archive file - Android package file - Source code file - Document - Spreadsheet - Music file - Video - Picture - File - %1$s file - No suitable app installed. - Presentation - Compressed file - Text file - The directory %1$s and all its content will be deleted permanently. Proceed? - The file %1$s will be deleted permanently. Proceed? - Title: %1$s - Artist: %1$s - Album: %1$s - Duration: %1$s - Year: %1$s - Size: %1$s - Path: %1$s - Type: %1$s - Dimensions: %1$s - App name: %1$s - Version: %1$s - Package name: %1$s - Min SDK version: %1$s - Owner: %1$s - Location: %1$s Services Follow system - Google - YouTube - Google Play - https://google.com/search?q=${1} - https://www.youtube.com/results?search_query=${1} - https://play.google.com/store/search?q=${1} - Name - URL - \'${1}\' will be replaced by the actual search term. - The placeholder \'${1}\' is missing in this URL - Replace icon - Delete icon - Provider - MET Norway - OpenWeatherMap - Deutscher Wetterdienst (Germany only) - HERE Themed icons Color icons with the application\'s color scheme Icon pack No icon packs installed - Edit widgets - Weather - Calendar - Add widget - More System bars Dark status bar icons Dark navigation bar icons Hide status bar Hide navigation bar - Music - Open in contacts app - Pin to favorites - Unpin - Back - %1$d phone numbers - %1$d email addresses - %1$d postal addresses - App info - Launch - Open Manage connected accounts and services Google Signed in as %1$s Log out You are currently not logged in - E-book - Drawing - Form - Hide - Don\'t hide - Hidden items - Delete - Open in calendar app - Show pictures - Significantly increases data usage - Sign in with Google - Sign in to search Google Drive - Hexagon - By %1$s - Installation in progress… (%1$d%%) - Couldn\'t open %1$s - Icon background - Legacy icon style - - There are no easter eggs here, unless you brought them with you. - Please, stop it, you are wasting your time - I won\'t say it again: there are absolutely no easter eggs hidden here - Well, you found me. Congratulations. Was it worth it? - Grant calendar permission to display upcoming appointments and events here. - Grant calendar permission to search your calendar. - Grant storage permission to search photos, media and document on this device. - Grant contact permission to search your contact. - Close - Custom icon - Adjust height - Remove - Settings Pentagon Wallpaper Dim wallpaper @@ -220,110 +474,19 @@ Show a badge for files that are stored in a cloud Shortcut badges Show a badge which indicates to which app a shortcut belongs - System default Microsoft Sign in with Microsoft Sign in to search OneDrive Sign in to Nextcloud Sign in to search your Nextcloud server - Checking status… - Telegram group - F-Droid repository - Edit favorites - Not pinned – frequently used - Pinned – automatically sorted - Pinned – manually sorted - Next - Nextcloud server URL - Server URL must not be empty Nextcloud - This URL does not point to a valid Nextcloud installation - - Owncloud server URL Owncloud - This URL does not point to a valid Owncloud installation - Password - User name - If you have two factor authentication enabled, you must use an app password here. - Log in - Login failed: incorrect username or password. Sign in to Owncloud Sign in to search your Owncloud server - User name must not be empty - Password must not be empty - Customize card appearance - Cards - Corner radius - Stroke width - Opacity - Disclaimer - "Exchange rates as published once per day by the European Central Bank. All information is provided \"as is\" without any kind of guarantee. No liability is assumed for these information.\n\nLast update: %1$s" - Show all - - Today - Tomorrow - Upcoming - No events today - Open calendar app - New event - - +%1$d running event from past days - +%1$d running events from past days - - - - Sleet showers - Heavy sleet - Light rain showers and thunder - Heavy rain - Light snow and thunder - Light rain - Light rain showers - Light snow - Heavy sleet showers and thunder - Light snow showers - Lights sleet showers and thunder - Snow and thunder - Heavy sleet showers - Heavy snow - Cloudy - Light rain and thunder - Snow - Hail - Thunderstorm - Heavy snow showers - Heavy rain showers - Rain showers and thunder - Clear sky - Sleet - Rain - Sleet and thunder - Lights snow showers and thunder - Heavy rain showers and thunder - Fair - Fog - Sleet showers and thunder - Rain and thunder - Light sleet - Heavy sleet and thunder - Partly cloudy - Heavy snow and thunder - Rain showers - Light sleet and thunder - Heavy snow showers and thunder - Light sleet showers - Snow showers and thunder - Snow showers - Heavy rain and thunder - Unknown - Show details - Hide details - Humidity: - Wind: - No weather data available. - This location could not be found. - - Precipitation: + Telegram group + F-Droid repository + Icon background + Legacy icon style License This app is free software. Licensed under the GNU General Public License 3.0 @@ -331,18 +494,6 @@ Grid Number of columns - Grant - Location access is required to determine the location automatically - Notification access is required to control media playback - Contact permission is required to search contacts - Calendar permission is required to search calendar - This widget requires calendar permission - Manage all files permission is required to search local files - External storage permission is required to search local files - Notification access is requried to display notification badges - - Set location - Debug Troubleshooting tools @@ -392,8 +543,11 @@ Nextcloud Search %1$s\'s files Owncloud - Calendar + Show pictures + Significantly increases data usage + Sign in with Google + Sign in to search Google Drive Calendars Hide all-day events @@ -415,18 +569,15 @@ Wikipedia URL - %1$s is playing media - - No media has been played yet - - Add web search - Edit web search - + You haven\'t connected a Nextcloud account yet + You haven\'t connected an Owncloud account yet + You haven\'t connected a Microsoft account yet + You haven\'t connected a Google account yet + Connect account - Turn off diff --git a/i18n/src/main/res/values/units.xml b/i18n/src/main/res/values/units.xml index 3060574c..c0c37db0 100644 --- a/i18n/src/main/res/values/units.xml +++ b/i18n/src/main/res/values/units.xml @@ -1,5 +1,5 @@ - + diff --git a/nextcloud/src/main/java/de/mm20/launcher2/nextcloud/LoginActivity.kt b/nextcloud/src/main/java/de/mm20/launcher2/nextcloud/LoginActivity.kt index f2623296..ebf3e9d1 100644 --- a/nextcloud/src/main/java/de/mm20/launcher2/nextcloud/LoginActivity.kt +++ b/nextcloud/src/main/java/de/mm20/launcher2/nextcloud/LoginActivity.kt @@ -29,13 +29,13 @@ class LoginActivity : AppCompatActivity() { url = "https://$url" } if (url.isBlank()) { - binding.serverUrlInputLayout.error = getString(R.string.next_cloud_server_url_empty) + binding.serverUrlInputLayout.error = getString(R.string.nextcloud_server_url_empty) return@launch } if (nextcloudClient.checkNextcloudInstallation(url)) { openLoginPage(url) } else { - binding.serverUrlInputLayout.error = getString(R.string.next_cloud_server_invalid_url) + binding.serverUrlInputLayout.error = getString(R.string.nextcloud_server_invalid_url) } } } diff --git a/nextcloud/src/main/res/layout/activity_nextcloud_login.xml b/nextcloud/src/main/res/layout/activity_nextcloud_login.xml index 1842077d..a52a7809 100644 --- a/nextcloud/src/main/res/layout/activity_nextcloud_login.xml +++ b/nextcloud/src/main/res/layout/activity_nextcloud_login.xml @@ -25,7 +25,7 @@ android:layout_height="wrap_content" android:layout_marginTop="32dp" android:layout_marginBottom="32dp" - android:hint="@string/next_cloud_server_url" + android:hint="@string/nextcloud_server_url" app:helperTextEnabled="true"> + android:text="@string/login_flow_continue" /> \ No newline at end of file diff --git a/owncloud/src/main/java/de/mm20/launcher2/owncloud/LoginActivity.kt b/owncloud/src/main/java/de/mm20/launcher2/owncloud/LoginActivity.kt index 84a6c31c..db327d1f 100644 --- a/owncloud/src/main/java/de/mm20/launcher2/owncloud/LoginActivity.kt +++ b/owncloud/src/main/java/de/mm20/launcher2/owncloud/LoginActivity.kt @@ -25,7 +25,7 @@ class LoginActivity : AppCompatActivity() { url = "https://$url" } if (url.isBlank()) { - binding.serverUrlInputLayout.error = getString(R.string.next_cloud_server_url_empty) + binding.serverUrlInputLayout.error = getString(R.string.nextcloud_server_url_empty) return@launch } if (owncloudClient.checkOwncloudInstallation(url)) { diff --git a/owncloud/src/main/res/layout/activity_owncloud_login.xml b/owncloud/src/main/res/layout/activity_owncloud_login.xml index c4f025f1..10091e60 100644 --- a/owncloud/src/main/res/layout/activity_owncloud_login.xml +++ b/owncloud/src/main/res/layout/activity_owncloud_login.xml @@ -40,7 +40,7 @@ style="@style/Widget.MaterialComponents.Button" android:layout_width="match_parent" android:layout_height="wrap_content" - android:text="@string/login_flow_next" /> + android:text="@string/login_flow_continue" /> \ No newline at end of file diff --git a/ui/src/main/AndroidManifest.xml b/ui/src/main/AndroidManifest.xml index ad741be5..6e9a9dd2 100644 --- a/ui/src/main/AndroidManifest.xml +++ b/ui/src/main/AndroidManifest.xml @@ -33,7 +33,7 @@ = 0) { - WeatherDetailRow( - title = stringResource(id = R.string.weather_humidity), - value = "${forecast.humidity.roundToInt()} %" + Text( + stringResource(id = R.string.weather_details_humidity, "${forecast.humidity.roundToInt()} %"), + style = MaterialTheme.typography.bodySmall, ) } - WeatherDetailRow( - title = stringResource(id = R.string.weather_wind), - value = formatWindSpeed(imperialUnits, forecast) + Text( + stringResource(id = R.string.weather_details_wind, formatWindSpeed(imperialUnits, forecast)), + style = MaterialTheme.typography.bodySmall, ) val precipitation = formatPrecipitation(imperialUnits, forecast) if (precipitation != null) { - WeatherDetailRow( - title = stringResource(id = R.string.weather_precipitation), - value = precipitation + Text( + stringResource(id = R.string.weather_details_precipitation, precipitation), + style = MaterialTheme.typography.bodySmall, ) } } @@ -228,7 +228,7 @@ fun WeatherDetailRow(title: String, value: String) { Row { Text( text = title, - modifier = Modifier.padding(end = 8.dp), + modifier = Modifier,//.padding(end = 8.dp), style = MaterialTheme.typography.bodySmall, ) Text( diff --git a/ui/src/main/java/de/mm20/launcher2/ui/legacy/view/ToolbarView.kt b/ui/src/main/java/de/mm20/launcher2/ui/legacy/view/ToolbarView.kt index 4ff5315a..2635d343 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/legacy/view/ToolbarView.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/legacy/view/ToolbarView.kt @@ -224,7 +224,7 @@ open class ToolbarSubaction(val title: String, var clickAction: (() -> Unit)) { class FavoriteToolbarAction(val context: Context, val item: Searchable) : ToolbarAction( R.drawable.ic_star_outline, - context.getString(R.string.favorites_menu_pin) + context.getString(R.string.menu_favorites_pin) ), KoinComponent { private val repository: FavoritesRepository by inject() @@ -232,10 +232,10 @@ class FavoriteToolbarAction(val context: Context, val item: Searchable) : Toolba set(value) { field = value if (value) { - title = context.getString(R.string.favorites_menu_unpin) + title = context.getString(R.string.menu_favorites_unpin) icon = R.drawable.ic_star_solid } else { - title = context.getString(R.string.favorites_menu_pin) + title = context.getString(R.string.menu_favorites_pin) icon = R.drawable.ic_star_outline } } diff --git a/ui/src/main/java/de/mm20/launcher2/ui/settings/filesearch/FileSearchSettingsScreen.kt b/ui/src/main/java/de/mm20/launcher2/ui/settings/filesearch/FileSearchSettingsScreen.kt index b92781eb..b24f4912 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/settings/filesearch/FileSearchSettingsScreen.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/settings/filesearch/FileSearchSettingsScreen.kt @@ -58,7 +58,7 @@ fun FileSearchSettingsScreen() { AnimatedVisibility(hasFilePermission == false) { MissingPermissionBanner( text = stringResource( - if (isAtLeastApiLevel(29)) R.string.missing_permission_file_search_android10 else R.string.missing_permission_file_search + if (isAtLeastApiLevel(29)) R.string.missing_permission_file_search_settings_android10 else R.string.missing_permission_file_search_settings ), onClick = { viewModel.requestFilePermission(context as AppCompatActivity) }, diff --git a/ui/src/main/java/de/mm20/launcher2/ui/settings/search/SearchSettingsScreen.kt b/ui/src/main/java/de/mm20/launcher2/ui/settings/search/SearchSettingsScreen.kt index ca1c3d7e..9021240e 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/settings/search/SearchSettingsScreen.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/settings/search/SearchSettingsScreen.kt @@ -53,7 +53,7 @@ fun SearchSettingsScreen() { val hasContactsPermission by viewModel.hasContactsPermission.observeAsState() AnimatedVisibility(hasContactsPermission == false) { MissingPermissionBanner( - text = stringResource(R.string.missing_permission_contact_search), + text = stringResource(R.string.missing_permission_contact_search_settings), onClick = { viewModel.requestContactsPermission(context as AppCompatActivity) }, @@ -75,7 +75,7 @@ fun SearchSettingsScreen() { val hasCalendarPermission by viewModel.hasCalendarPermission.observeAsState() AnimatedVisibility(hasCalendarPermission == false) { MissingPermissionBanner( - text = stringResource(R.string.missing_permission_calendar_search), + text = stringResource(R.string.missing_permission_calendar_search_settings), onClick = { viewModel.requestCalendarPermission(context as AppCompatActivity) }, diff --git a/ui/src/main/java/de/mm20/launcher2/ui/settings/websearch/WebSearchSettingsScreen.kt b/ui/src/main/java/de/mm20/launcher2/ui/settings/websearch/WebSearchSettingsScreen.kt index c91d43c5..b230f630 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/settings/websearch/WebSearchSettingsScreen.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/settings/websearch/WebSearchSettingsScreen.kt @@ -299,7 +299,7 @@ fun EditWebsearchDialog( .align(Alignment.End) ) { Text( - stringResource(R.string.custom_icon), + stringResource(R.string.websearch_dialog_custom_icon), style = MaterialTheme.typography.labelLarge ) } @@ -315,7 +315,7 @@ fun EditWebsearchDialog( label = it }, label = { - Text(text = stringResource(R.string.websearch_dialog_name_hint)) + Text(text = stringResource(R.string.websearch_dialog_name)) } ) OutlinedTextField( @@ -327,7 +327,7 @@ fun EditWebsearchDialog( urlTemplate = it }, label = { - Text(text = stringResource(R.string.websearch_dialog_url_hint)) + Text(text = stringResource(R.string.websearch_dialog_url)) }, ) AnimatedVisibility(showError) { diff --git a/weather/src/main/java/de/mm20/launcher2/weather/brightsky/BrightskyProvider.kt b/weather/src/main/java/de/mm20/launcher2/weather/brightsky/BrightskyProvider.kt index a577bf96..23580e20 100644 --- a/weather/src/main/java/de/mm20/launcher2/weather/brightsky/BrightskyProvider.kt +++ b/weather/src/main/java/de/mm20/launcher2/weather/brightsky/BrightskyProvider.kt @@ -94,16 +94,16 @@ class BrightskyProvider( private fun getCondition(icon: String): String? { val resId = when (icon) { - "clear-day", "clear-night" -> R.string.weather_clearsky - "partly-cloudy-day", "partly-cloudy-night" -> R.string.weather_partlycloudy - "cloudy" -> R.string.weather_cloudy - "fog" -> R.string.weather_fog - "wind" -> R.string.weather_wind - "rain" -> R.string.weather_rain - "sleet" -> R.string.weather_sleet - "snow" -> R.string.weather_snow - "hail" -> R.string.weather_hail - "thunderstorm" -> R.string.weather_thunder + "clear-day", "clear-night" -> R.string.weather_condition_clearsky + "partly-cloudy-day", "partly-cloudy-night" -> R.string.weather_condition_partlycloudy + "cloudy" -> R.string.weather_condition_cloudy + "fog" -> R.string.weather_condition_fog + "wind" -> R.string.weather_details_wind + "rain" -> R.string.weather_condition_rain + "sleet" -> R.string.weather_condition_sleet + "snow" -> R.string.weather_condition_snow + "hail" -> R.string.weather_condition_hail + "thunderstorm" -> R.string.weather_condition_thunder else -> return null } return context.getString(resId) diff --git a/weather/src/main/java/de/mm20/launcher2/weather/metno/MetNoProvider.kt b/weather/src/main/java/de/mm20/launcher2/weather/metno/MetNoProvider.kt index 05a4d4fb..e2ea8c86 100644 --- a/weather/src/main/java/de/mm20/launcher2/weather/metno/MetNoProvider.kt +++ b/weather/src/main/java/de/mm20/launcher2/weather/metno/MetNoProvider.kt @@ -52,48 +52,48 @@ class MetNoProvider(override val context: Context) : LatLonWeatherProvider() { private fun conditionForCode(code: String): String { return context.getString( when (code.substringBefore("_")) { - "sleetshowers" -> R.string.weather_sleetshowers - "heavysleet" -> R.string.weather_heavysleet - "lightrainshowersandthunder" -> R.string.weather_lightrainshowersandthunder - "heavyrain" -> R.string.weather_heavyrain - "lightsnowandthunder" -> R.string.weather_lightsnowandthunder - "lightrain" -> R.string.weather_lightrain - "lightrainshowers" -> R.string.weather_lightrainshowers - "lightsnow" -> R.string.weather_lightsnow - "heavysleetshowersandthunder" -> R.string.weather_heavysleetshowersandthunder - "lightsnowshowers" -> R.string.weather_lightsnowshowers - "lightssleetshowersandthunder" -> R.string.weather_lightssleetshowersandthunder - "snowandthunder" -> R.string.weather_snowandthunder - "heavysleetshowers" -> R.string.weather_heavysleetshowers - "heavysnow" -> R.string.weather_heavysnow - "cloudy" -> R.string.weather_cloudy - "lightrainandthunder" -> R.string.weather_lightrainandthunder - "snow" -> R.string.weather_snow - "heavysnowshowers" -> R.string.weather_heavysnowshowers - "heavyrainshowers" -> R.string.weather_heavyrainshowers - "rainshowersandthunder" -> R.string.weather_rainshowersandthunder - "clearsky" -> R.string.weather_clearsky - "sleet" -> R.string.weather_sleet - "rain" -> R.string.weather_rain - "sleetandthunder" -> R.string.weather_sleetandthunder - "lightssnowshowersandthunder" -> R.string.weather_lightssnowshowersandthunder - "heavyrainshowersandthunder" -> R.string.weather_heavyrainshowersandthunder - "fair" -> R.string.weather_fair - "fog" -> R.string.weather_fog - "sleetshowersandthunder" -> R.string.weather_sleetshowersandthunder - "rainandthunder" -> R.string.weather_rainandthunder - "lightsleet" -> R.string.weather_lightsleet - "heavysleetandthunder" -> R.string.weather_heavysleetandthunder - "partlycloudy" -> R.string.weather_partlycloudy - "heavysnowandthunder" -> R.string.weather_heavysnowandthunder - "rainshowers" -> R.string.weather_rainshowers - "lightsleetandthunder" -> R.string.weather_lightsleetandthunder - "heavysnowshowersandthunder" -> R.string.weather_heavysnowshowersandthunder - "lightsleetshowers" -> R.string.weather_lightsleetshowers - "snowshowersandthunder" -> R.string.weather_snowshowersandthunder - "snowshowers" -> R.string.weather_snowshowers - "heavyrainandthunder" -> R.string.weather_heavyrainandthunder - else -> R.string.weather_unknown + "sleetshowers" -> R.string.weather_condition_sleetshowers + "heavysleet" -> R.string.weather_condition_heavysleet + "lightrainshowersandthunder" -> R.string.weather_condition_lightrainshowersandthunder + "heavyrain" -> R.string.weather_condition_heavyrain + "lightsnowandthunder" -> R.string.weather_condition_lightsnowandthunder + "lightrain" -> R.string.weather_condition_lightrain + "lightrainshowers" -> R.string.weather_condition_lightrainshowers + "lightsnow" -> R.string.weather_condition_lightsnow + "heavysleetshowersandthunder" -> R.string.weather_condition_heavysleetshowersandthunder + "lightsnowshowers" -> R.string.weather_condition_lightsnowshowers + "lightssleetshowersandthunder" -> R.string.weather_condition_lightssleetshowersandthunder + "snowandthunder" -> R.string.weather_condition_snowandthunder + "heavysleetshowers" -> R.string.weather_condition_heavysleetshowers + "heavysnow" -> R.string.weather_condition_heavysnow + "cloudy" -> R.string.weather_condition_cloudy + "lightrainandthunder" -> R.string.weather_condition_lightrainandthunder + "snow" -> R.string.weather_condition_snow + "heavysnowshowers" -> R.string.weather_condition_heavysnowshowers + "heavyrainshowers" -> R.string.weather_condition_heavyrainshowers + "rainshowersandthunder" -> R.string.weather_condition_rainshowersandthunder + "clearsky" -> R.string.weather_condition_clearsky + "sleet" -> R.string.weather_condition_sleet + "rain" -> R.string.weather_condition_rain + "sleetandthunder" -> R.string.weather_condition_sleetandthunder + "lightssnowshowersandthunder" -> R.string.weather_condition_lightssnowshowersandthunder + "heavyrainshowersandthunder" -> R.string.weather_condition_heavyrainshowersandthunder + "fair" -> R.string.weather_condition_fair + "fog" -> R.string.weather_condition_fog + "sleetshowersandthunder" -> R.string.weather_condition_sleetshowersandthunder + "rainandthunder" -> R.string.weather_condition_rainandthunder + "lightsleet" -> R.string.weather_condition_lightsleet + "heavysleetandthunder" -> R.string.weather_condition_heavysleetandthunder + "partlycloudy" -> R.string.weather_condition_partlycloudy + "heavysnowandthunder" -> R.string.weather_condition_heavysnowandthunder + "rainshowers" -> R.string.weather_condition_rainshowers + "lightsleetandthunder" -> R.string.weather_condition_lightsleetandthunder + "heavysnowshowersandthunder" -> R.string.weather_condition_heavysnowshowersandthunder + "lightsleetshowers" -> R.string.weather_condition_lightsleetshowers + "snowshowersandthunder" -> R.string.weather_condition_snowshowersandthunder + "snowshowers" -> R.string.weather_condition_snowshowers + "heavyrainandthunder" -> R.string.weather_condition_heavyrainandthunder + else -> R.string.weather_condition_unknown } ) }