Compare commits
2 Commits
chore/tran
...
fix/notifi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
091ecaeeaf | ||
|
|
6fc1bca8c2 |
@@ -51,9 +51,6 @@
|
||||
"backup_keep_last_amount": "Колькасць папярэдніх рэзервовых копій для захавання",
|
||||
"backup_onboarding_1_description": "зняшняя копія ў воблаку або ў іншым фізічным месцы.",
|
||||
"backup_onboarding_2_description": "лакальныя копіі на іншых прыладах. Гэта ўключае ў сябе асноўныя файлы і лакальную рэзервовую копію гэтых файлаў.",
|
||||
"backup_onboarding_3_description": "поўная колькасць копій вашых данных, у тым ліку зыходных файлаў. Гэта ўключае 1 пазаштатную копію і 2 лакальныя копіі.",
|
||||
"backup_onboarding_description": "<backblaze-link> стратэгія рэзервавання 3-2-1 </backblaze-link> рэкамендавана для аховы вашых данных. Вы павінны захоўваць копіі вашых загружаных фота / відэа гэтак жа добра, як базу данных Immich для вычарпальна поўнага рэзервовага капіявання.",
|
||||
"backup_onboarding_footer": "Каб атрымаць дадатковую інфармацыю пра рэзервовае капіраванне Immich, звярніцеся да <link>дакументацыі</link>.",
|
||||
"backup_onboarding_parts_title": "Рэзервовая копія «3-2-1» уключае ў сябе:",
|
||||
"backup_onboarding_title": "Рэзервовыя копіі",
|
||||
"backup_settings": "Налады рэзервовага капіявання",
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
"backup_keep_last_amount": "Anzahl der aufzubewahrenden früheren Backups",
|
||||
"backup_onboarding_1_description": "Offsite-Kopie in der Cloud oder an einem anderen physischen Ort.",
|
||||
"backup_onboarding_2_description": "Lokale Kopien auf verschiedenen Geräten. Dazu gehören die Hauptdateien und eine lokale Sicherung dieser Dateien.",
|
||||
"backup_onboarding_3_description": "3 komplette Kopien deiner Daten, inkl. der Originaldateien. Dies umfasst 1 Kopie an einem anderen Ort und 2 lokale Kopien.",
|
||||
"backup_onboarding_3_description": "3 komplette Kopien deiner Daten, inkl. der Originaldateien. Dies umfasst 1 Kopie an einem anderen Ort und 2 lokale Kopie.",
|
||||
"backup_onboarding_description": "Eine <backblaze-link>3-2-1 Backup-Strategie</backblaze-link> wird empfohlen, um deine Daten zu schützen. Du solltest sowohl Kopien deiner hochgeladenen Fotos/Videos als auch der Immich-Datenbank aufbewahren, um eine umfassende Backup-Lösung zu haben.",
|
||||
"backup_onboarding_footer": "Weitere Informationen zum Sichern von Immich findest du in der <link>Dokumentation</link>.",
|
||||
"backup_onboarding_parts_title": "Eine 3-2-1-Sicherung umfasst:",
|
||||
|
||||
16
i18n/fi.json
16
i18n/fi.json
@@ -28,7 +28,6 @@
|
||||
"add_to_album": "Lisää albumiin",
|
||||
"add_to_album_bottom_sheet_added": "Lisätty albumiin {album}",
|
||||
"add_to_album_bottom_sheet_already_exists": "Kohde on jo albumissa {album}",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "Joitakin osia paikallisesta sisällöstä ei pystytty lisämään albumiin",
|
||||
"add_to_album_toggle": "Vaihda albumin {album} valintaa",
|
||||
"add_to_albums": "Lisää albumeihin",
|
||||
"add_to_albums_count": "Lisää albumeihin ({count})",
|
||||
@@ -504,7 +503,6 @@
|
||||
"asset_skipped": "Ohitettu",
|
||||
"asset_skipped_in_trash": "Roskakorissa",
|
||||
"asset_trashed": "Kohde poistettu",
|
||||
"asset_troubleshoot": "Sisällön vian paikannus",
|
||||
"asset_uploaded": "Lähetetty",
|
||||
"asset_uploading": "Ladataan…",
|
||||
"asset_viewer_settings_subtitle": "Galleriakatseluohjelman asetusten hallinta",
|
||||
@@ -549,7 +547,6 @@
|
||||
"backup_album_selection_page_select_albums": "Valitse albumit",
|
||||
"backup_album_selection_page_selection_info": "Valintatiedot",
|
||||
"backup_album_selection_page_total_assets": "Ainulaatuisia kohteita yhteensä",
|
||||
"backup_albums_sync": "Varmuuskopioitujen albumeiden synkronointi",
|
||||
"backup_all": "Kaikki",
|
||||
"backup_background_service_backup_failed_message": "Kohteiden varmuuskopiointi epäonnistui. Yritetään uudelleen…",
|
||||
"backup_background_service_connection_failed_message": "Palvelimeen ei saatu yhteyttä. Yritetään uudelleen…",
|
||||
@@ -599,7 +596,6 @@
|
||||
"backup_controller_page_turn_on": "Varmuuskopiointi päälle",
|
||||
"backup_controller_page_uploading_file_info": "Tiedostojen lähetystiedot",
|
||||
"backup_err_only_album": "Vähintään yhden albumin tulee olla valittuna",
|
||||
"backup_error_sync_failed": "Synkronointi epäonnistui. Varmuuskopion käsittely ei onnistu.",
|
||||
"backup_info_card_assets": "kohteet",
|
||||
"backup_manual_cancelled": "Peruutettu",
|
||||
"backup_manual_in_progress": "Lähetys palvelimelle on jo käynnissä. Kokeile myöhemmin uudelleen",
|
||||
@@ -667,8 +663,6 @@
|
||||
"change_pin_code": "Vaihda PIN-koodi",
|
||||
"change_your_password": "Vaihda salasanasi",
|
||||
"changed_visibility_successfully": "Näkyvyys vaihdettu",
|
||||
"charging": "Ladataan laitetta",
|
||||
"charging_requirement_mobile_backup": "Varmuuskopiointi taustalla vaatii laitteen latautumista",
|
||||
"check_corrupt_asset_backup": "Vioittuneiden varmuuskopioiden tarkistaminen",
|
||||
"check_corrupt_asset_backup_button": "Suorita tarkistus",
|
||||
"check_corrupt_asset_backup_description": "Suorita tämä tarkistus vain Wi-Fi-yhteyden kautta ja vasta, kun kaikki kohteet on varmuuskopioitu. Toimenpide voi kestää muutamia minuutteja.",
|
||||
@@ -755,7 +749,6 @@
|
||||
"create_user": "Luo käyttäjä",
|
||||
"created": "Luotu",
|
||||
"created_at": "Luotu",
|
||||
"creating_linked_albums": "Luodaan linkattuja albumeita...",
|
||||
"crop": "Rajaa",
|
||||
"curated_object_page_title": "Asiat",
|
||||
"current_device": "Nykyinen laite",
|
||||
@@ -905,9 +898,7 @@
|
||||
"error": "Virhe",
|
||||
"error_change_sort_album": "Albumin lajittelujärjestyksen muuttaminen epäonnistui",
|
||||
"error_delete_face": "Virhe kasvojen poistamisessa kohteesta",
|
||||
"error_getting_places": "Ongelma paikkojen haussa",
|
||||
"error_loading_image": "Kuvan lataus ei onnistunut",
|
||||
"error_loading_partners": "Ongelma partnerin haussa: {error}",
|
||||
"error_saving_image": "Virhe: {error}",
|
||||
"error_tag_face_bounding_box": "Kasvojen merkitseminen epäonnistui – rajausruudun koordinaatteja ei löydy",
|
||||
"error_title": "Virhe - Jotain meni pieleen",
|
||||
@@ -1072,7 +1063,6 @@
|
||||
"favorites_page_no_favorites": "Suosikkikohteita ei löytynyt",
|
||||
"feature_photo_updated": "Kansikuva ladattu",
|
||||
"features": "Ominaisuudet",
|
||||
"features_in_development": "Kehityksessä olevat ominaisuudet",
|
||||
"features_setting_description": "Hallitse sovelluksen ominaisuuksia",
|
||||
"file_name": "Tiedoston nimi",
|
||||
"file_name_or_extension": "Tiedostonimi tai tiedostopääte",
|
||||
@@ -1100,8 +1090,6 @@
|
||||
"go_back": "Palaa",
|
||||
"go_to_folder": "Mene kansioon",
|
||||
"go_to_search": "Siirry hakuun",
|
||||
"gps": "GPS",
|
||||
"gps_missing": "Ei GPS:ää",
|
||||
"grant_permission": "Myönnä lupa",
|
||||
"group_albums_by": "Ryhmitä albumi...",
|
||||
"group_country": "Ryhmitä maan mukaan",
|
||||
@@ -1237,7 +1225,6 @@
|
||||
"local": "Paikallinen",
|
||||
"local_asset_cast_failed": "Kohdetta, joka ei ole ladattuna palvelimelle, ei voida striimata",
|
||||
"local_assets": "Paikalliset kohteet",
|
||||
"local_media_summary": "Paikallisen median yhteenveto",
|
||||
"local_network": "Lähiverkko",
|
||||
"local_network_sheet_info": "Sovellus muodostaa yhteyden palvelimeen tämän URL-osoitteen kautta, kun käytetään määritettyä Wi-Fi-verkkoa",
|
||||
"location_permission": "Sijainnin käyttöoikeus",
|
||||
@@ -1249,7 +1236,6 @@
|
||||
"location_picker_longitude_hint": "Syötä pituusaste",
|
||||
"lock": "Lukitse",
|
||||
"locked_folder": "Lukittu kansio",
|
||||
"log_detail_title": "Lokin yksityiskohtaisuus",
|
||||
"log_out": "Kirjaudu ulos",
|
||||
"log_out_all_devices": "Kirjaudu ulos kaikilta laitteilta",
|
||||
"logged_in_as": "Kirjautunut käyttäjänä {user}",
|
||||
@@ -1280,7 +1266,6 @@
|
||||
"login_password_changed_success": "Salasan päivitetty onnistuneesti",
|
||||
"logout_all_device_confirmation": "Haluatko varmasti kirjautua ulos kaikilta laitteilta?",
|
||||
"logout_this_device_confirmation": "Haluatko varmasti kirjautua ulos näiltä laitteilta?",
|
||||
"logs": "Loki",
|
||||
"longitude": "Pituusaste",
|
||||
"look": "Tyyli",
|
||||
"loop_videos": "Toista videot uudelleen",
|
||||
@@ -1288,7 +1273,6 @@
|
||||
"main_branch_warning": "Käytät kehitysversiota; suosittelemme vahvasti käyttämään julkaisuversiota!",
|
||||
"main_menu": "Päävalikko",
|
||||
"make": "Valmistaja",
|
||||
"manage_geolocation": "Muokkaa sijaintia",
|
||||
"manage_shared_links": "Hallitse jaettuja linkkejä",
|
||||
"manage_sharing_with_partners": "Hallitse jakamista kumppaneille",
|
||||
"manage_the_app_settings": "Hallitse sovelluksen asetuksia",
|
||||
|
||||
622
i18n/gl.json
622
i18n/gl.json
File diff suppressed because it is too large
Load Diff
@@ -592,7 +592,7 @@
|
||||
"backup_controller_page_start_backup": "התחל גיבוי",
|
||||
"backup_controller_page_status_off": "גיבוי חזית אוטומטי כבוי",
|
||||
"backup_controller_page_status_on": "גיבוי חזית אוטומטי מופעל",
|
||||
"backup_controller_page_storage_format": "{used} מתוך {total} בשימוש",
|
||||
"backup_controller_page_storage_format": "{used}מתוך {total} בשימוש",
|
||||
"backup_controller_page_to_backup": "אלבומים לגבות",
|
||||
"backup_controller_page_total_sub": "כל התמונות והסרטונים הייחודיים מאלבומים שנבחרו",
|
||||
"backup_controller_page_turn_off": "כיבוי גיבוי חזית",
|
||||
|
||||
@@ -28,7 +28,6 @@
|
||||
"add_to_album": "एल्बम में डालें",
|
||||
"add_to_album_bottom_sheet_added": "{album} में डालें",
|
||||
"add_to_album_bottom_sheet_already_exists": "{album} में पहले से है",
|
||||
"add_to_albums": "एकाधिक एल्बम में डाले",
|
||||
"add_to_shared_album": "शेयर किए गए एल्बम में डालें",
|
||||
"add_url": "URL डालें",
|
||||
"added_to_archive": "संग्रहीत कर दिया गया है",
|
||||
|
||||
183
i18n/hr.json
183
i18n/hr.json
@@ -15,9 +15,9 @@
|
||||
"add_a_name": "Dodaj ime",
|
||||
"add_a_title": "Dodaj naslov",
|
||||
"add_birthday": "Dodaj rođendan",
|
||||
"add_endpoint": "Dodaj krajnju točku",
|
||||
"add_endpoint": "Dodaj krajnju točnu",
|
||||
"add_exclusion_pattern": "Dodaj uzorak izuzimanja",
|
||||
"add_import_path": "Dodaj putanju uvoza",
|
||||
"add_import_path": "Dodaj import folder",
|
||||
"add_location": "Dodaj lokaciju",
|
||||
"add_more_users": "Dodaj još korisnika",
|
||||
"add_partner": "Dodaj partnera",
|
||||
@@ -28,7 +28,6 @@
|
||||
"add_to_album": "Dodaj u album",
|
||||
"add_to_album_bottom_sheet_added": "Dodano u {album}",
|
||||
"add_to_album_bottom_sheet_already_exists": "Već u {album}",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "Neke lokalne stavke nije moguće dodati u album",
|
||||
"add_to_album_toggle": "Uključi/isključi odabir za {album}",
|
||||
"add_to_albums": "Dodaj u albume",
|
||||
"add_to_albums_count": "Dodaj u albume ({count})",
|
||||
@@ -38,26 +37,26 @@
|
||||
"added_to_favorites": "Dodano u omiljeno",
|
||||
"added_to_favorites_count": "Dodano {count, number} u omiljeno",
|
||||
"admin": {
|
||||
"add_exclusion_pattern_description": "Dodajte uzorke izuzimanja. Globiranje pomoću *, ** i ? je podržano. Za ignoriranje svih datoteka u bilo kojem direktoriju pod nazivom \"Raw\", koristite \"**/Raw/**\". Kako biste ignorirali sve datoteke koje završavaju na \".tif\", koristite \"**/*.tif\". Kako biste ignorirali apsolutnu putanju, koristite \"/putanja/za/ignoriranje/**\".",
|
||||
"add_exclusion_pattern_description": "Dodajte uzorke izuzimanja. Globiranje pomoću *, ** i ? je podržano. Za ignoriranje svih datoteka u bilo kojem direktoriju pod nazivom \"Raw\", koristite \"**/Raw/**\". Da biste zanemarili sve datoteke koje završavaju na \".tif\", koristite \"**/*.tif\". Da biste zanemarili apsolutni put, koristite \"/path/to/ignore/**\".",
|
||||
"admin_user": "Administrator",
|
||||
"asset_offline_description": "Ova stavka vanjske biblioteke nije pronađena na disku i premještena je u smeće. Ako je datoteka premještena unutar biblioteke, provjerite svoju vremensku traku za novu odgovarajuću stavku. Da biste vratili ovu stavku, provjerite može li Immich pristupiti donjoj putanji datoteke i skenirajte biblioteku.",
|
||||
"authentication_settings": "Postavke autentifikacije",
|
||||
"authentication_settings_description": "Upravljajte lozinkom, OAuthom i drugim postavkama autentifikacije",
|
||||
"authentication_settings_disable_all": "Jeste li sigurni da želite onemogućiti sve načine prijave? Prijava će biti potpuno onemogućena.",
|
||||
"authentication_settings_reenable": "Za ponovno uključivanje upotrijebite <link>naredbu servera</link>.",
|
||||
"asset_offline_description": "Ovo sredstvo vanjske knjižnice više nije pronađeno na disku i premješteno je u smeće. Ako je datoteka premještena unutar biblioteke, provjerite svoju vremensku traku za novo odgovarajuće sredstvo. Da biste vratili ovo sredstvo, provjerite može li Immich pristupiti donjoj stazi datoteke i skenirajte biblioteku.",
|
||||
"authentication_settings": "Postavke autentikacije",
|
||||
"authentication_settings_description": "Uredi lozinku, OAuth, i druge postavke autentikacije",
|
||||
"authentication_settings_disable_all": "Jeste li sigurni da želite onemogućenit sve načine prijave? Prijava će biti potpuno onemogućena.",
|
||||
"authentication_settings_reenable": "Za ponovno uključivanje upotrijebite <link>naredbu poslužitelja</link>.",
|
||||
"background_task_job": "Pozadinski zadaci",
|
||||
"backup_database": "Kreiraj sigurnosnu kopiju baze podataka",
|
||||
"backup_database_enable_description": "Omogućite sigurnosne kopije baze podataka",
|
||||
"backup_keep_last_amount": "Količina prethodnih sigurnosnih kopija za čuvanje",
|
||||
"backup_onboarding_1_description": "kopija izvan lokacije u oblaku ili na drugoj fizičkoj lokaciji.",
|
||||
"backup_onboarding_2_description": "lokalne kopije na različitim uređajima. To uključuje glavne datoteke i lokalnu sigurnosnu kopiju tih datoteka.",
|
||||
"backup_onboarding_2_description": "lokalne kopije na različitim uređajima. To uključuje glavne datoteke i sigurnosnu kopiju tih datoteka lokalno.",
|
||||
"backup_onboarding_3_description": "ukupne kopije vaših podataka, uključujući izvorne datoteke. To uključuje 1 kopiju izvan lokacije i 2 lokalne kopije.",
|
||||
"backup_onboarding_description": "Preporučuje se <backblaze-link>3-2-1 strategija sigurnosnog kopiranja</backblaze-link> za zaštitu vaših podataka. Trebali biste čuvati kopije svojih prenesenih fotografija/videozapisa kao i Immich bazu podataka za sveobuhvatno rješenje sigurnosne kopije.",
|
||||
"backup_onboarding_footer": "Za više informacija o sigurnosnom kopiranju Immicha, molimo pogledajte <link>dokumentaciju</link>.",
|
||||
"backup_onboarding_footer": "Za više informacija o sigurnosnom kopiranju Immich, molimo pogledajte <link>dokumentaciju</link>.",
|
||||
"backup_onboarding_parts_title": "3-2-1 sigurnosna kopija uključuje:",
|
||||
"backup_onboarding_title": "Sigurnosne kopije",
|
||||
"backup_settings": "Postavke sigurnosne kopije baze podataka",
|
||||
"backup_settings_description": "Upravljajte postavkama sigurnosne kopije baze podataka.",
|
||||
"backup_settings": "Postavke sigurnosne kopije",
|
||||
"backup_settings_description": "Upravljajte postavkama izvoza baze podataka.",
|
||||
"cleared_jobs": "Izbrisani poslovi za: {job}",
|
||||
"config_set_by_file": "Konfiguracija je trenutno postavljena konfiguracijskom datotekom",
|
||||
"confirm_delete_library": "Jeste li sigurni da želite izbrisati biblioteku {library}?",
|
||||
@@ -66,23 +65,23 @@
|
||||
"confirm_reprocess_all_faces": "Jeste li sigurni da želite ponovno obraditi sva lica? Ovo će također obrisati imenovane osobe.",
|
||||
"confirm_user_password_reset": "Jeste li sigurni da želite poništiti lozinku korisnika {user}?",
|
||||
"confirm_user_pin_code_reset": "Jeste li sigurni da želite resetirati PIN korisnika {user}?",
|
||||
"create_job": "Stvori posao",
|
||||
"cron_expression": "Cron izraz",
|
||||
"create_job": "Izradi zadatak",
|
||||
"cron_expression": "Cron izraz (expression)",
|
||||
"cron_expression_description": "Postavite interval skeniranja koristeći cron format. Za više informacija pogledajte npr. <link>Crontab Guru</link>",
|
||||
"cron_expression_presets": "Unaprijed postavljene postavke cron izraza",
|
||||
"cron_expression_presets": "Cron unaprijed postavljene postavke izraza",
|
||||
"disable_login": "Onemogući prijavu",
|
||||
"duplicate_detection_job_description": "Pokrenite strojno učenje na stavkama kako biste otkrili slične slike. Oslanja se na Pametno pretraživanje",
|
||||
"exclusion_pattern_description": "Uzorci izuzimanja omogućuju vam da ignorirate datoteke i mape prilikom skeniranja svoje biblioteke. Ovo je korisno ako imate mape koje sadrže datoteke koje ne želite uvesti, kao što su RAW datoteke.",
|
||||
"external_library_management": "Upravljanje vanjskom bibliotekom",
|
||||
"duplicate_detection_job_description": "Pokrenite strojno učenje na materijalima kako biste otkrili slične slike. Oslanja se na Pametno Pretraživanje",
|
||||
"exclusion_pattern_description": "Uzorci izuzimanja omogućuju vam da zanemarite datoteke i mape prilikom skeniranja svoje biblioteke. Ovo je korisno ako imate mape koje sadrže datoteke koje ne želite uvesti, kao što su RAW datoteke.",
|
||||
"external_library_management": "Upravljanje vanjskom knjižnicom",
|
||||
"face_detection": "Detekcija lica",
|
||||
"face_detection_description": "Detektirajte lica u stavkama pomoću strojnog učenja. Za videozapise se uzima u obzir samo sličica. \"Osvježi\" (ponovno) obrađuje sve stavke. \"Poništi\" dodatno briše sve trenutne podatke o licu. \"Nedostaje\" stavlja u red čekanja stavke koje još nisu obrađene. Detektirana lica bit će stavljena u red čekanja za Prepoznavanje lica nakon što se dovrši Detekcija lica, grupirajući ih u postojeće ili nove osobe.",
|
||||
"facial_recognition_job_description": "Grupirajte otkrivena lica u osobe. Ovaj korak se izvršava nakon što je Detekcija lica dovršena. \"Resetiraj\" (ponovno) grupira sva lica. \"Nedostaje\" stavlja u red lica kojima nije dodijeljena osoba.",
|
||||
"face_detection_description": "Prepoznajte lica u sredstvima pomoću strojnog učenja. Za videozapise u obzir se uzima samo minijaturni prikaz. \"Sve\" (ponovno) obrađuje svu imovinu. \"Nedostaje\" stavlja u red čekanja sredstva koja još nisu obrađena. Otkrivena lica bit će stavljena u red čekanja za prepoznavanje lica nakon dovršetka prepoznavanja lica, grupirajući ih u postojeće ili nove osobe.",
|
||||
"facial_recognition_job_description": "Grupirajte otkrivena lica u osobe. Ovaj se korak pokreće nakon dovršetka prepoznavanja lica. \"Sve\" (ponovno) grupira sva lica. \"Nedostajuća\" lica u redovima kojima nije dodijeljena osoba.",
|
||||
"failed_job_command": "Naredba {command} nije uspjela za posao: {job}",
|
||||
"force_delete_user_warning": "UPOZORENJE: Ovo će odmah ukloniti korisnika i sve pripadajuće stavke. Ovo se ne može poništiti i datoteke se ne mogu vratiti.",
|
||||
"force_delete_user_warning": "UPOZORENJE: Ovo će odmah ukloniti korisnika i sve pripadajuće podatke. Ovo se ne može poništiti i datoteke se ne mogu vratiti.",
|
||||
"image_format": "Format",
|
||||
"image_format_description": "WebP proizvodi manje datoteke od JPEG-a, ali se sporije kodira.",
|
||||
"image_fullsize_description": "Slika pune veličine bez metapodataka, koristi se prilikom zumiranja",
|
||||
"image_fullsize_enabled": "Omogući generiranje slika pune veličine",
|
||||
"image_fullsize_description": "Slika pune veličine bez meta podataka, koristi se prilikom zumiranja",
|
||||
"image_fullsize_enabled": "Omogući generiranje slike pune veličine",
|
||||
"image_fullsize_enabled_description": "Generiraj sliku pune veličine za formate koji nisu prilagođeni webu. Kada je opcija \"Preferiraj ugrađeni pregled\" omogućena, ugrađeni pregledi koriste se izravno bez konverzije. Ne utječe na formate prilagođene webu kao što je JPEG.",
|
||||
"image_fullsize_quality_description": "Kvaliteta slike pune veličine od 1 do 100. Veća vrijednost znači bolja kvaliteta, ali stvara veće datoteke.",
|
||||
"image_fullsize_title": "Postavke slike pune veličine",
|
||||
@@ -90,7 +89,7 @@
|
||||
"image_prefer_embedded_preview_setting_description": "Koristite ugrađene preglede u RAW fotografije kao ulaz za obradu slike kada su dostupni. To može proizvesti preciznije boje za neke slike, ali kvaliteta pregleda ovisi o kameri i slika može imati više artifakta kompresije.",
|
||||
"image_prefer_wide_gamut": "Preferirajte široku gamu",
|
||||
"image_prefer_wide_gamut_setting_description": "Koristite Display P3 za sličice. Ovo bolje čuva živost slika sa širokim prostorima boja, ali slike mogu izgledati drugačije na starim uređajima sa starom verzijom preglednika. sRGB slike čuvaju se kao sRGB kako bi se izbjegle promjene boja.",
|
||||
"image_preview_description": "Slika srednje veličine s uklonjenim metapodacima, koristi se prilikom pregledavanja jedne stavke i za strojno učenje",
|
||||
"image_preview_description": "Slika srednje veličine s ogoljenim metapodacima, koristi se prilikom pregledavanja jednog sredstva i za strojno učenje",
|
||||
"image_preview_quality_description": "Kvaliteta pregleda od 1-100. Više je bolje, ali proizvodi veće datoteke i može smanjiti odziv aplikacije. Postavljanje niske vrijednosti može utjecati na kvalitetu strojnog učenja.",
|
||||
"image_preview_title": "Postavke pregleda",
|
||||
"image_quality": "Kvaliteta",
|
||||
@@ -117,7 +116,7 @@
|
||||
"library_scanning_enable_description": "Omogući periodično skeniranje biblioteke",
|
||||
"library_settings": "Externa biblioteka",
|
||||
"library_settings_description": "Upravljajte postavkama vanjske biblioteke",
|
||||
"library_tasks_description": "Skeniraj vanjske biblioteke za nove i/ili promijenjene stavke",
|
||||
"library_tasks_description": "Skeniraj eksterne biblioteke za nove i/ili promijenjene resurse",
|
||||
"library_watching_enable_description": "Pratite vanjske biblioteke za promjena datoteke",
|
||||
"library_watching_settings": "Gledanje biblioteke (EKSPERIMENTALNO)",
|
||||
"library_watching_settings_description": "Automatsko praćenje promijenjenih datoteke",
|
||||
@@ -128,16 +127,16 @@
|
||||
"machine_learning_clip_model_description": "Naziv CLIP modela navedenog <link>ovdje</link>. Imajte na umu da morate ponovno pokrenuti posao 'Pametno Pretraživanje' za sve slike nakon promjene modela.",
|
||||
"machine_learning_duplicate_detection": "Detekcija Duplikata",
|
||||
"machine_learning_duplicate_detection_enabled": "Omogući detekciju duplikata",
|
||||
"machine_learning_duplicate_detection_enabled_description": "Ako je onemogućeno, potpuno identične stavke i dalje će biti deduplicirane.",
|
||||
"machine_learning_duplicate_detection_enabled_description": "Ako je onemogućeno, potpuno identična sredstva i dalje će biti deduplicirana.",
|
||||
"machine_learning_duplicate_detection_setting_description": "Upotrijebite CLIP ugradnje da biste pronašli vjerojatne duplikate",
|
||||
"machine_learning_enabled": "Uključi strojsko učenje",
|
||||
"machine_learning_enabled_description": "Ukoliko je ovo isključeno, sve funkcije strojnoga učenja biti će isključene bez obzira na postavke ispod.",
|
||||
"machine_learning_facial_recognition": "Prepoznavanje lica",
|
||||
"machine_learning_facial_recognition": "Detekcija lica",
|
||||
"machine_learning_facial_recognition_description": "Detektiraj, prepoznaj i grupiraj lica u fotografijama",
|
||||
"machine_learning_facial_recognition_model": "Model prepoznavanja lica",
|
||||
"machine_learning_facial_recognition_model_description": "Modeli su navedeni silaznim redoslijedom veličine. Veći modeli su sporiji i koriste više memorije, ali daju bolje rezultate. Imajte na umu da morate ponovno pokrenuti posao detekcije lica za sve slike nakon promjene modela.",
|
||||
"machine_learning_facial_recognition_setting": "Omogući prepoznavanje lica",
|
||||
"machine_learning_facial_recognition_setting_description": "Ako je onemogućeno, slike neće biti kodirane za prepoznavanje lica i neće popuniti odjeljak Osobe na stranici Istraži.",
|
||||
"machine_learning_facial_recognition_setting_description": "Ako je onemogućeno, slike neće biti kodirane za prepoznavanje lica i neće popuniti odjeljak Ljudi na stranici Istraživanje.",
|
||||
"machine_learning_max_detection_distance": "Maksimalna udaljenost za detektiranje",
|
||||
"machine_learning_max_detection_distance_description": "Maksimalna udaljenost između dvije slike da bi se smatrale duplikatima, u rasponu od 0,001-0,1. Više vrijednosti otkrit će više duplikata, ali mogu rezultirati netočnim rezultatima.",
|
||||
"machine_learning_max_recognition_distance": "Maksimalna udaljenost za detekciju",
|
||||
@@ -145,7 +144,7 @@
|
||||
"machine_learning_min_detection_score": "Minimalni rezultat otkrivanja",
|
||||
"machine_learning_min_detection_score_description": "Minimalni rezultat pouzdanosti za detektirano lice od 0-1. Niže vrijednosti otkrit će više lica, ali mogu dovesti do lažno pozitivnih rezultata.",
|
||||
"machine_learning_min_recognized_faces": "Minimum prepoznatih lica",
|
||||
"machine_learning_min_recognized_faces_description": "Najmanji broj prepoznatih lica za osobu koja se stvara. Povećanje toga čini Prepoznavanje lica preciznijim po cijenu povećanja šanse da lice nije dodijeljeno osobi.",
|
||||
"machine_learning_min_recognized_faces_description": "Najmanji broj prepoznatih lica za osobu koja se stvara. Povećanje toga čini prepoznavanje lica preciznijim po cijenu povećanja šanse da lice nije dodijeljeno osobi.",
|
||||
"machine_learning_settings": "Postavke strojnog učenja",
|
||||
"machine_learning_settings_description": "Upravljajte značajkama i postavkama strojnog učenja",
|
||||
"machine_learning_smart_search": "Pametna pretraga",
|
||||
@@ -171,21 +170,21 @@
|
||||
"memory_cleanup_job": "Čišćenje memorije",
|
||||
"memory_generate_job": "Generiranje memorije",
|
||||
"metadata_extraction_job": "Izdvoj metapodatke",
|
||||
"metadata_extraction_job_description": "Izdvojite metapodatke iz svake stavke, kao što su GPS, lica i rezolucija",
|
||||
"metadata_extraction_job_description": "Izdvojite podatke o metapodacima iz svakog sredstva, kao što su GPS, lica i rezolucija",
|
||||
"metadata_faces_import_setting": "Omogući uvoz lica",
|
||||
"metadata_faces_import_setting_description": "Uvezite lica iz EXIF podataka slike i sidecar datoteka",
|
||||
"metadata_settings": "Postavke Metapodataka",
|
||||
"metadata_settings_description": "Upravljanje postavkama metapodataka",
|
||||
"migration_job": "Migracija",
|
||||
"migration_job_description": "Premjestite sličice za stavke i lica u najnoviju strukturu mapa",
|
||||
"migration_job_description": "Premjestite minijature za sredstva i lica u najnoviju strukturu mapa",
|
||||
"nightly_tasks_cluster_faces_setting_description": "Pokreni prepoznavanje lica na novootkrivenim licima",
|
||||
"nightly_tasks_cluster_new_faces_setting": "Grupiraj nova lica",
|
||||
"nightly_tasks_database_cleanup_setting": "Zadaci čišćenja baze podataka",
|
||||
"nightly_tasks_database_cleanup_setting_description": "Očisti stare, istekle podatke iz baze podataka",
|
||||
"nightly_tasks_generate_memories_setting": "Generiraj uspomene",
|
||||
"nightly_tasks_generate_memories_setting_description": "Stvori nove uspomene iz stavki",
|
||||
"nightly_tasks_generate_memories_setting_description": "Stvori nove uspomene iz sadržaja",
|
||||
"nightly_tasks_missing_thumbnails_setting": "Generiraj nedostajuće sličice",
|
||||
"nightly_tasks_missing_thumbnails_setting_description": "Stavke bez sličica stavi u red čekanja za generiranje sličica",
|
||||
"nightly_tasks_missing_thumbnails_setting_description": "Stavi u red čekanja sadržaje bez sličica za generiranje sličica",
|
||||
"nightly_tasks_settings": "Postavke noćnih zadataka",
|
||||
"nightly_tasks_settings_description": "Upravljanje noćnim zadacima",
|
||||
"nightly_tasks_start_time_setting": "Vrijeme početka",
|
||||
@@ -194,7 +193,7 @@
|
||||
"nightly_tasks_sync_quota_usage_setting_description": "Ažuriraj korisničku kvotu za pohranu na temelju trenutne potrošnje",
|
||||
"no_paths_added": "Nema dodanih putanja",
|
||||
"no_pattern_added": "Nije dodan uzorak",
|
||||
"note_apply_storage_label_previous_assets": "Napomena: Da biste primijenili Oznaku pohrane na prethodno prenesene stavke, pokrenite",
|
||||
"note_apply_storage_label_previous_assets": "Napomena: da biste primijenili Oznaku Pohrane na prethodno prenesena sredstva, pokrenite",
|
||||
"note_cannot_be_changed_later": "NAPOMENA: Ovo se ne može promijeniti kasnije!",
|
||||
"notification_email_from_address": "Od adrese",
|
||||
"notification_email_from_address_description": "E-mail adresa pošiljatelja, na primjer: \"Immich Photo Server <noreply@example.com>\". Obavezno koristite adresu s koje vam je dopušteno slanje e-pošte.",
|
||||
@@ -261,21 +260,21 @@
|
||||
"sidecar_job": "Sidecar metapodaci",
|
||||
"sidecar_job_description": "Otkrijte ili sinkronizirajte sidecar metapodatke iz datotečnog sustava",
|
||||
"slideshow_duration_description": "Broj sekundi za prikaz svake slike",
|
||||
"smart_search_job_description": "Pokrenite strojno učenje na stavkama za korištenje Pametnog pretraživanja",
|
||||
"storage_template_date_time_description": "Vremenska oznaka stvaranja stavke koristi se za informacije o datumu i vremenu",
|
||||
"smart_search_job_description": "Pokrenite strojno učenje na sredstvima za podršku pametnog pretraživanja",
|
||||
"storage_template_date_time_description": "Vremenska oznaka stvaranja sredstva koristi se za informacije o datumu i vremenu",
|
||||
"storage_template_date_time_sample": "Vrijeme uzorka {date}",
|
||||
"storage_template_enable_description": "Omogući mehanizam predloška za pohranu",
|
||||
"storage_template_hash_verification_enabled": "Omogućena hash provjera",
|
||||
"storage_template_hash_verification_enabled_description": "Omogućuje hash provjeru, nemojte je onemogućiti osim ako niste sigurni u implikacije",
|
||||
"storage_template_migration": "Migracija predloška za pohranu",
|
||||
"storage_template_migration_description": "Primijenite trenutni <link>{template}</link> na prethodno prenesene stavke",
|
||||
"storage_template_migration_info": "Predložak za pohranu pretvorit će sve datotečne nastavke u mala slova. Promjene predloška primijenit će se samo na nove stavke. Da biste retroaktivno primijenili predložak na prethodno prenesene stavke, pokrenite <link>{job}<link>.",
|
||||
"storage_template_migration_description": "Primijenite trenutni <link>{template}</link> na prethodno prenesena sredstva",
|
||||
"storage_template_migration_info": "Predložak za pohranu će sve nastavke (ekstenzije) pretvoriti u mala slova. Promjene predloška primjenjivat će se samo na nova sredstva. Za retroaktivnu primjenu predloška na prethodno prenesena sredstva, pokrenite <link>{job}</link>.",
|
||||
"storage_template_migration_job": "Posao Migracije Predloška Pohrane",
|
||||
"storage_template_more_details": "Za više pojedinosti o ovoj značajci pogledajte <template-link>Predložak pohrane</template-link> i njegove <implications-link>implikacije</implications-link>",
|
||||
"storage_template_onboarding_description_v2": "Kada je omogućena, ova će značajka automatski organizira datoteke prema predlošku koji je definirao korisnik. Za više informacija pogledajte <link>dokumentaciju</link>.",
|
||||
"storage_template_path_length": "Približno ograničenje duljine putanje: <b>{length, number}</b>/{limit, number}",
|
||||
"storage_template_settings": "Predložak pohrane",
|
||||
"storage_template_settings_description": "Upravljajte strukturom mape i nazivom datoteke učitane stavke",
|
||||
"storage_template_settings_description": "Upravljajte strukturom mape i nazivom datoteke učitanog sredstva",
|
||||
"storage_template_user_label": "<code>{label}</code> je korisnička oznaka za pohranu",
|
||||
"system_settings": "Postavke Sustava",
|
||||
"tag_cleanup_job": "Čišćenje oznaka",
|
||||
@@ -293,7 +292,7 @@
|
||||
"theme_settings": "Postavke tema",
|
||||
"theme_settings_description": "Upravljajte prilagodbom Immich web sučelja",
|
||||
"thumbnail_generation_job": "Generirajte sličice",
|
||||
"thumbnail_generation_job_description": "Generirajte velike, male i zamućene sličice za svaku stavku, kao i sličice za svaku osobu",
|
||||
"thumbnail_generation_job_description": "Generirajte velike, male i zamućene sličice za svaki materijal, kao i sličice za svaku osobu",
|
||||
"transcoding_acceleration_api": "API ubrzanja",
|
||||
"transcoding_acceleration_api_description": "API koji će komunicirati s vašim uređajem radi ubrzanja transkodiranja. Ova postavka je 'najveći trud': vratit će se na softversko transkodiranje u slučaju kvara. VP9 može ili ne mora raditi ovisno o vašem hardveru.",
|
||||
"transcoding_acceleration_nvenc": "NVENC (zahtjeva NVIDIA GPU)",
|
||||
@@ -356,20 +355,20 @@
|
||||
"transcoding_video_codec_description": "VP9 ima visoku učinkovitost i web-kompatibilnost, ali treba dulje za transkodiranje. HEVC ima sličnu izvedbu, ali ima slabiju web kompatibilnost. H.264 široko je kompatibilan i brzo se transkodira, ali proizvodi mnogo veće datoteke. AV1 je najučinkovitiji kodek, ali nema podršku na starijim uređajima.",
|
||||
"trash_enabled_description": "Omogućite značajke Smeća",
|
||||
"trash_number_of_days": "Broj dana",
|
||||
"trash_number_of_days_description": "Broj dana za čuvanje stavki u smeću prije njihovog trajnog uklanjanja",
|
||||
"trash_number_of_days_description": "Broj dana za držanje sredstava u smeću prije njihovog trajnog uklanjanja",
|
||||
"trash_settings": "Postavke Smeća",
|
||||
"trash_settings_description": "Upravljanje postavkama smeća",
|
||||
"unlink_all_oauth_accounts": "Odspoji sve OAuth račune",
|
||||
"unlink_all_oauth_accounts_description": "Zapamtite da odspojite sve OAuth račune prije prelaska na novog pružatelja usluge.",
|
||||
"unlink_all_oauth_accounts_prompt": "Jeste li sigurni da želite odspojiti sve OAuth račune? Ovo će resetirati OAuth ID za svakog korisnika i ne može se poništiti.",
|
||||
"user_cleanup_job": "Čišćenje korisnika",
|
||||
"user_delete_delay": "Račun i stavke korisnika <b>{user}</b> bit će stavljeni u red čekanja trajnog brisanja za {delay, plural, one {# dan} other {# dana}}.",
|
||||
"user_delete_delay": "Račun i sredstva korisnika <b>{user}</b> bit će zakazani za trajno brisanje za {delay, plural, one {# day} other {# days}}.",
|
||||
"user_delete_delay_settings": "Brisanje odgode",
|
||||
"user_delete_delay_settings_description": "Broj dana nakon uklanjanja za trajno brisanje korisničkog računa i stavki. Posao brisanja korisnika pokreće se u ponoć kako bi se provjerili korisnici koji su spremni za brisanje. Promjene ove postavke bit će procijenjene pri sljedećem izvršavanju.",
|
||||
"user_delete_immediately": "Račun i stavke korisnika <b>{user}</b> bit će stavljeni u red čekanja za trajno brisanje <b>odmah</b>.",
|
||||
"user_delete_immediately_checkbox": "Stavite korisnika i stavke u red čekanja za trenutno brisanje",
|
||||
"user_delete_delay_settings_description": "Broj dana nakon uklanjanja za trajno brisanje korisničkog računa i imovine. Posao brisanja korisnika pokreće se u ponoć kako bi se provjerili korisnici koji su spremni za brisanje. Promjene ove postavke bit će procijenjene pri sljedećem izvršavanju.",
|
||||
"user_delete_immediately": "Račun i sredstva korisnika <b>{user}</b> bit će stavljeni u red čekanja za trajno brisanje <b>odmah</b>.",
|
||||
"user_delete_immediately_checkbox": "Stavite korisnika i imovinu u red za trenutačno brisanje",
|
||||
"user_details": "Detalji korisnika",
|
||||
"user_management": "Upravljanje korisnicima",
|
||||
"user_management": "Upravljanje Korisnicima",
|
||||
"user_password_has_been_reset": "Korisnička lozinka je poništena:",
|
||||
"user_password_reset_description": "Molimo dostavite privremenu lozinku korisniku i obavijestite ga da će morati promijeniti lozinku pri sljedećoj prijavi.",
|
||||
"user_restore_description": "Račun korisnika <b>{user}</b> bit će vraćen.",
|
||||
@@ -391,13 +390,13 @@
|
||||
"advanced_settings_enable_alternate_media_filter_subtitle": "Koristite ovu opciju za filtriranje medija tijekom sinkronizacije na temelju alternativnih kriterija. Pokušajte ovo samo ako imate problema s aplikacijom koja ne prepoznaje sve albume.",
|
||||
"advanced_settings_enable_alternate_media_filter_title": "[EKSPERIMENTALNO] Koristite alternativni filter za sinkronizaciju albuma na uređaju",
|
||||
"advanced_settings_log_level_title": "Razina zapisivanja: {level}",
|
||||
"advanced_settings_prefer_remote_subtitle": "Neki uređaji sporo učitavaju sličice s lokalnih stavki. Aktivirajte ovu postavku kako biste umjesto toga učitali slike s udaljenih izvora.",
|
||||
"advanced_settings_prefer_remote_subtitle": "Neki uređaji sporo učitavaju sličice s lokalnih resursa. Aktivirajte ovu postavku kako biste umjesto toga učitali slike s udaljenih izvora.",
|
||||
"advanced_settings_prefer_remote_title": "Preferiraj udaljene slike",
|
||||
"advanced_settings_proxy_headers_subtitle": "Definirajte zaglavlja posrednika koja Immich treba slati sa svakim mrežnim zahtjevom.",
|
||||
"advanced_settings_proxy_headers_title": "Proxy zaglavlja",
|
||||
"advanced_settings_self_signed_ssl_subtitle": "Preskoči provjeru SSL certifikata za krajnju točku poslužitelja. Potrebno za samo-potpisane certifikate.",
|
||||
"advanced_settings_self_signed_ssl_title": "Dopusti samo-potpisane SSL certifikate",
|
||||
"advanced_settings_sync_remote_deletions_subtitle": "Automatski izbriši ili obnovi stavku na ovom uređaju kada se ta radnja izvrši na webu",
|
||||
"advanced_settings_sync_remote_deletions_subtitle": "Automatski izbriši ili obnovi resurs na ovom uređaju kada se ta radnja izvrši na webu",
|
||||
"advanced_settings_sync_remote_deletions_title": "Sinkroniziraj udaljena brisanja [EKSPERIMENTALNO]",
|
||||
"advanced_settings_tile_subtitle": "Postavke za napredne korisnike",
|
||||
"advanced_settings_troubleshooting_subtitle": "Omogući dodatne značajke za rješavanje problema",
|
||||
@@ -423,13 +422,13 @@
|
||||
"album_search_not_found": "Nema albuma koji odgovaraju vašem pretraživanju",
|
||||
"album_share_no_users": "Čini se da ste podijelili ovaj album sa svim korisnicima ili nemate nijednog korisnika s kojim biste ga dijelili.",
|
||||
"album_updated": "Album ažuriran",
|
||||
"album_updated_setting_description": "Primite obavijest e-poštom kada dijeljeni album ima nove stavke",
|
||||
"album_updated_setting_description": "Primite obavijest e-poštom kada dijeljeni album ima nova sredstva",
|
||||
"album_user_left": "Napušten {album}",
|
||||
"album_user_removed": "Uklonjen {user}",
|
||||
"album_viewer_appbar_delete_confirm": "Jeste li sigurni da želite izbrisati ovaj album s vašeg računa?",
|
||||
"album_viewer_appbar_share_err_delete": "Neuspješno brisanje albuma",
|
||||
"album_viewer_appbar_share_err_leave": "Neuspješno napuštanje albuma",
|
||||
"album_viewer_appbar_share_err_remove": "Postoje problemi s uklanjanjem stavki iz albuma",
|
||||
"album_viewer_appbar_share_err_remove": "Postoje problemi s uklanjanjem resursa iz albuma",
|
||||
"album_viewer_appbar_share_err_title": "Neuspješno mijenjanje naslova albuma",
|
||||
"album_viewer_appbar_share_leave": "Napusti album",
|
||||
"album_viewer_appbar_share_to": "Podijeli s",
|
||||
@@ -438,8 +437,8 @@
|
||||
"albums": "Albumi",
|
||||
"albums_count": "{count, plural, one {{count, number} Album} other {{count, number} Albumi}}",
|
||||
"albums_default_sort_order": "Zadani redoslijed sortiranja albuma",
|
||||
"albums_default_sort_order_description": "Početni redoslijed sortiranja stavki prilikom izrade novih albuma.",
|
||||
"albums_feature_description": "Zbirke stavki koje se mogu dijeliti s drugim korisnicima.",
|
||||
"albums_default_sort_order_description": "Početni redoslijed sortiranja elemenata prilikom izrade novih albuma.",
|
||||
"albums_feature_description": "Zbirke resursa koje se mogu dijeliti s drugim korisnicima.",
|
||||
"albums_on_device_count": "Albumi na uređaju ({count})",
|
||||
"all": "Sve",
|
||||
"all_albums": "Svi albumi",
|
||||
@@ -458,60 +457,58 @@
|
||||
"app_bar_signout_dialog_content": "Jeste li sigurni da se želite odjaviti?",
|
||||
"app_bar_signout_dialog_ok": "Da",
|
||||
"app_bar_signout_dialog_title": "Odjavi se",
|
||||
"app_settings": "Postavke aplikacije",
|
||||
"app_settings": "Postavke Aplikacije",
|
||||
"appears_in": "Pojavljuje se u",
|
||||
"archive": "Arhiva",
|
||||
"archive_action_prompt": "{count} dodano u arhivu",
|
||||
"archive_or_unarchive_photo": "Arhivirajte ili dearhivirajte fotografiju",
|
||||
"archive_page_no_archived_assets": "Nema arhiviranih stavki",
|
||||
"archive_page_no_archived_assets": "Nema arhiviranih resursa",
|
||||
"archive_page_title": "Arhiviraj ({count})",
|
||||
"archive_size": "Veličina arhive",
|
||||
"archive_size_description": "Konfigurirajte veličinu arhive za preuzimanja (u GiB)",
|
||||
"archived": "Arhivirano",
|
||||
"archived": "Ahrivirano",
|
||||
"archived_count": "{count, plural, other {Archived #}}",
|
||||
"are_these_the_same_person": "Je li ovo ista osoba?",
|
||||
"are_you_sure_to_do_this": "Jeste li sigurni da to želite učiniti?",
|
||||
"asset_action_delete_err_read_only": "Nije moguće izbrisati stavke samo za čitanje, preskakanje",
|
||||
"asset_action_share_err_offline": "Nije moguće dohvatiti izvanmrežne stavke, preskakanje",
|
||||
"asset_action_delete_err_read_only": "Nije moguće izbrisati resurse samo za čitanje, preskačem",
|
||||
"asset_action_share_err_offline": "Nije moguće dohvatiti izvanmrežne resurse, preskačem",
|
||||
"asset_added_to_album": "Dodano u album",
|
||||
"asset_adding_to_album": "Dodavanje u album…",
|
||||
"asset_description_updated": "Opis stavke je ažuriran",
|
||||
"asset_filename_is_offline": "Stavka {filename} je izvan mreže",
|
||||
"asset_has_unassigned_faces": "Stavka ima nedodijeljena lica",
|
||||
"asset_hashing": "Hashiranje…",
|
||||
"asset_description_updated": "Opis imovine je ažuriran",
|
||||
"asset_filename_is_offline": "Sredstvo {filename} je izvan mreže",
|
||||
"asset_has_unassigned_faces": "Materijal ima nedodijeljena lica",
|
||||
"asset_hashing": "Sažimanje…",
|
||||
"asset_list_group_by_sub_title": "Grupiraj po",
|
||||
"asset_list_layout_settings_dynamic_layout_title": "Dinamički raspored",
|
||||
"asset_list_layout_settings_group_automatically": "Automatski",
|
||||
"asset_list_layout_settings_group_by": "Grupiraj stavke po",
|
||||
"asset_list_layout_settings_group_by": "Grupiraj resurse po",
|
||||
"asset_list_layout_settings_group_by_month_day": "Mjesec + dan",
|
||||
"asset_list_layout_sub_title": "Raspored",
|
||||
"asset_list_settings_subtitle": "Postavke izgleda Mreže fotografija",
|
||||
"asset_list_settings_title": "Mreža fotografija",
|
||||
"asset_offline": "Stavka izvan mreže",
|
||||
"asset_offline_description": "Ova vanjska stavka nije pronađena na disku. Za pomoć se obratite Immich administratoru.",
|
||||
"asset_restored_successfully": "Stavka uspješno obnovljena",
|
||||
"asset_list_settings_subtitle": "Postavke izgleda mreže fotografija",
|
||||
"asset_list_settings_title": "Mreža Fotografija",
|
||||
"asset_offline": "Sredstvo izvan mreže",
|
||||
"asset_offline_description": "Ovaj materijal je izvan mreže. Immich ne može pristupiti lokaciji datoteke. Provjerite je li sredstvo dostupno, a zatim ponovno skenirajte biblioteku.",
|
||||
"asset_restored_successfully": "Resurs uspješno obnovljen",
|
||||
"asset_skipped": "Preskočeno",
|
||||
"asset_skipped_in_trash": "U smeću",
|
||||
"asset_trashed": "Stavka premještena u smeće",
|
||||
"asset_troubleshoot": "Rješavanje problema sa stavkom",
|
||||
"asset_uploaded": "Preneseno",
|
||||
"asset_uploading": "Prenošenje…",
|
||||
"asset_viewer_settings_subtitle": "Upravljajte postavkama vašeg preglednika galerije",
|
||||
"asset_viewer_settings_title": "Preglednik stavki",
|
||||
"assets": "Stavke",
|
||||
"assets_added_count": "{count, plural, one {Dodana # stavka} few {Dodane # stavke} other {Dodano # stavki}}",
|
||||
"assets_added_to_album_count": "{count, plural, one {Dodana # stavka} few {Dodane # stavke} other {Dodano # stavki}} u album",
|
||||
"assets_added_to_albums_count": "{assetTotal, plural, one {Dodana # stavka} other {Dodano # stavki}} u {albumTotal, plural, one {# album} other {# albuma}}",
|
||||
"assets_cannot_be_added_to_album_count": "{count, plural, one {Stavka se ne može} other {Stavke se ne mogu}} dodati u album",
|
||||
"assets_cannot_be_added_to_albums": "{count, plural, one {Stavka se ne može} few {Stavke se ne mogu} other {Stavki se ne može}} dodati ni u jedan album",
|
||||
"assets_count": "{count, plural, one {# stavka} few {# stavke} other {# stavki}}",
|
||||
"assets_deleted_permanently": "Trajno {count, plural, one {izbrisana # stavka} few {izbrisane # stavke} other {izbrisano # stavki}}",
|
||||
"assets_deleted_permanently_from_server": "Trajno {count, plural, one {izbrisana # stavka} few {izbrisane # stavke} other {izbrisano # stavki}} s Immich servera",
|
||||
"assets_downloaded_failed": "{count, plural, one {Preuzeta # datoteka – {error} datoteka nije uspjela} few {Preuzete # datoteke - {error} datoteke nisu uspjele} other {Preuzeto # datoteka – {error} datoteke nisu uspjele}}",
|
||||
"assets_downloaded_successfully": "{count, plural, one {Uspješno preuzeta # datoteka} few {Uspješno preuzete # datoteke} other {Uspješno preueto # datoteka}}",
|
||||
"assets_moved_to_trash_count": "{count, plural, one {# stavka premještena} few {# stavke premještene} other {# stavk premještenoi}} u smeće",
|
||||
"assets_permanently_deleted_count": "Trajno {count, plural, one {izbrisana # stavka} few {izbrisane # stavke} other {izbrisano # stavki}}",
|
||||
"assets_removed_count": "{count, plural, one {Uklonjena # stavka} few {Uklonjene # stavke} other {Uklonjeno # stavki}}",
|
||||
"asset_uploaded": "Učitano",
|
||||
"asset_uploading": "Šaljem…",
|
||||
"asset_viewer_settings_subtitle": "Upravljajte postavkama preglednika vaše galerije",
|
||||
"asset_viewer_settings_title": "Preglednik Resursa",
|
||||
"assets": "Sredstva",
|
||||
"assets_added_count": "Dodano {count, plural, one {# asset} other {# assets}}",
|
||||
"assets_added_to_album_count": "Dodano {count, plural, one {# asset} other {# assets}} u album",
|
||||
"assets_added_to_albums_count": "Dodano je {assetTotal} datoteka u {albumTotal} albuma",
|
||||
"assets_cannot_be_added_to_album_count": "{count, plural, one {Sadržaj se ne može dodati u album} other {{count} sadržaja se ne mogu dodati u album}}",
|
||||
"assets_cannot_be_added_to_albums": "{count, plural, one {Datoteka se ne može dodati ni u jedan album} few {Datoteke se ne mogu dodati ni u jedan album} other {Datoteka se ne može dodati ni u jedan album}}",
|
||||
"assets_count": "{count, plural, one {# asset} other {# assets}}",
|
||||
"assets_deleted_permanently": "{count} resurs(i) uspješno uklonjeni",
|
||||
"assets_deleted_permanently_from_server": "{count} resurs(i) trajno obrisan(i) sa Immich poslužitelja",
|
||||
"assets_downloaded_failed": "{count, plural, one {Preuzeta # datoteka – {error} datoteka nije uspjela} other {Preuzeto je # datoteka – {error} datoteke nisu uspjele}}",
|
||||
"assets_downloaded_successfully": "{count, plural, one {Uspješno preuzeta # datoteka} other {Uspješno preuzete # datoteke}}",
|
||||
"assets_moved_to_trash_count": "{count, plural, one {# asset} other {# asset}} premješteno u smeće",
|
||||
"assets_permanently_deleted_count": "Trajno izbrisano {count, plural, one {# asset} other {# assets}}",
|
||||
"assets_removed_count": "Uklonjeno {count, plural, one {# asset} other {# assets}}",
|
||||
"assets_removed_permanently_from_device": "{count} resurs(i) trajno uklonjen(i) s vašeg uređaja",
|
||||
"assets_restore_confirmation": "Jeste li sigurni da želite obnoviti sve svoje resurse bačene u otpad? Ne možete poništiti ovu radnju! Imajte na umu da se bilo koji izvanmrežni resursi ne mogu obnoviti na ovaj način.",
|
||||
"assets_restored_count": "Vraćeno {count, plural, one {# asset} other {# assets}}",
|
||||
@@ -521,7 +518,7 @@
|
||||
"assets_trashed_from_server": "{count} resurs(i) premješten(i) u smeće s Immich poslužitelja",
|
||||
"assets_were_part_of_album_count": "{count, plural, one {Asset was} other {Assets were}} već dio albuma",
|
||||
"assets_were_part_of_albums_count": "{count, plural, one {Datoteka je već bila dio albuma} few {Datoteke su već bile dio albuma} other {Datoteka je već bila dio albuma}}",
|
||||
"authorized_devices": "Ovlašteni uređaji",
|
||||
"authorized_devices": "Ovlašteni Uređaji",
|
||||
"automatic_endpoint_switching_subtitle": "Povežite se lokalno preko naznačene Wi-Fi mreže kada je dostupna i koristite alternativne veze na drugim lokacijama",
|
||||
"automatic_endpoint_switching_title": "Automatsko prebacivanje URL-a",
|
||||
"autoplay_slideshow": "Automatsko prikazivanje slajdova",
|
||||
@@ -1037,7 +1034,7 @@
|
||||
"export_database_description": "Izvezi SQLite bazu podataka",
|
||||
"extension": "Proširenje (Extension)",
|
||||
"external": "Vanjski",
|
||||
"external_libraries": "Vanjske biblioteke",
|
||||
"external_libraries": "Vanjske Biblioteke",
|
||||
"external_network": "Vanjska mreža",
|
||||
"external_network_sheet_info": "Kada niste na željenoj Wi-Fi mreži, aplikacija će se povezati s poslužiteljem putem prve dostupne URL adrese s popisa ispod, redom od vrha prema dnu",
|
||||
"face_unassigned": "Nedodijeljeno",
|
||||
@@ -1051,7 +1048,7 @@
|
||||
"favorites": "Omiljene",
|
||||
"favorites_page_no_favorites": "Nema pronađenih omiljenih stavki",
|
||||
"feature_photo_updated": "Istaknuta fotografija ažurirana",
|
||||
"features": "Značajke",
|
||||
"features": "Značajke (Features)",
|
||||
"features_setting_description": "Upravljajte značajkama aplikacije",
|
||||
"file_name": "Naziv datoteke",
|
||||
"file_name_or_extension": "Naziv ili ekstenzija datoteke",
|
||||
@@ -1223,7 +1220,7 @@
|
||||
"location_picker_longitude_error": "Unesite valjanu geografsku dužinu",
|
||||
"location_picker_longitude_hint": "Unesite ovdje svoju geografsku dužinu",
|
||||
"lock": "Zaključaj",
|
||||
"locked_folder": "Zaključana mapa",
|
||||
"locked_folder": "Zaključana Mapa",
|
||||
"log_out": "Odjavi se",
|
||||
"log_out_all_devices": "Odjava sa svih uređaja",
|
||||
"logged_in_as": "Prijavljeni kao {user}",
|
||||
@@ -1903,8 +1900,6 @@
|
||||
"sync_albums_manual_subtitle": "Sinkroniziraj sve prenesene videozapise i fotografije u odabrane albume za sigurnosnu kopiju",
|
||||
"sync_local": "Sinkroniziraj lokalno",
|
||||
"sync_remote": "Sinkroniziraj udaljeno",
|
||||
"sync_status": "Status sinkronizacije",
|
||||
"sync_status_subtitle": "Pregledajte i upravljajte sistemom sinkronizacije",
|
||||
"sync_upload_album_setting_subtitle": "Kreiraj i prenesi svoje fotografije i videozapise u odabrane albume na Immichu",
|
||||
"tag": "Oznaka",
|
||||
"tag_assets": "Označi stavke",
|
||||
|
||||
@@ -28,7 +28,6 @@
|
||||
"add_to_album": "Tambahkan ke album",
|
||||
"add_to_album_bottom_sheet_added": "Ditambahkan ke {album}",
|
||||
"add_to_album_bottom_sheet_already_exists": "Sudah ada di {album}",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "Beberapa aset lokal tidak dapat ditambahkan ke album",
|
||||
"add_to_album_toggle": "Masukkan ke {album} / Batalkan dari {album}",
|
||||
"add_to_albums": "Tambahkan ke album",
|
||||
"add_to_albums_count": "Tambahkan ke album ({count})",
|
||||
@@ -599,7 +598,6 @@
|
||||
"backup_controller_page_turn_on": "Aktifkan pencadangan latar depan",
|
||||
"backup_controller_page_uploading_file_info": "Mengunggah info file",
|
||||
"backup_err_only_album": "Tidak dapat menghapus album",
|
||||
"backup_error_sync_failed": "Sinkronisasi gagal. Tidak dapat memproses cadangan.",
|
||||
"backup_info_card_assets": "aset",
|
||||
"backup_manual_cancelled": "Dibatalkan",
|
||||
"backup_manual_in_progress": "Dalam proses unggah. Coba lagi nanti",
|
||||
|
||||
@@ -28,7 +28,6 @@
|
||||
"add_to_album": "アルバムに追加",
|
||||
"add_to_album_bottom_sheet_added": "{album}に追加",
|
||||
"add_to_album_bottom_sheet_already_exists": "{album}に追加済み",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "いくつかの項目はまだサーバーへアップロードされていないためアルバムに追加できませんでした",
|
||||
"add_to_album_toggle": "{album}の選択を切り替え",
|
||||
"add_to_albums": "アルバムに追加",
|
||||
"add_to_albums_count": "{count}つのアルバムへ追加",
|
||||
@@ -599,7 +598,6 @@
|
||||
"backup_controller_page_turn_on": "バックアップをオンにする",
|
||||
"backup_controller_page_uploading_file_info": "アップロード中のファイル",
|
||||
"backup_err_only_album": "最低1つのアルバムを選択してください",
|
||||
"backup_error_sync_failed": "同期に失敗しました。バックアップができません。",
|
||||
"backup_info_card_assets": "写真と動画",
|
||||
"backup_manual_cancelled": "キャンセルされました",
|
||||
"backup_manual_in_progress": "アップロードが進行中です。後でもう一度試してください",
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
"add_a_location": "დაამატე ადგილი",
|
||||
"add_a_name": "დაამატე სახელი",
|
||||
"add_a_title": "დაასათაურე",
|
||||
"add_birthday": "დაბადების დღის დამატება",
|
||||
"add_exclusion_pattern": "დაამატე გამონაკლისი ნიმუში",
|
||||
"add_import_path": "დაამატე საიმპორტო მისამართი",
|
||||
"add_location": "დაამატე ადგილი",
|
||||
@@ -22,19 +21,16 @@
|
||||
"add_partner": "დაამატე პარტნიორი",
|
||||
"add_path": "დაამატე მისამართი",
|
||||
"add_photos": "დაამატე ფოტოები",
|
||||
"add_tag": "დაამატე თეგი",
|
||||
"add_to": "დაამატე ...ში",
|
||||
"add_to_album": "დაამატე ალბომში",
|
||||
"add_to_album_bottom_sheet_added": "დამატებულია {album}-ში",
|
||||
"add_to_album_bottom_sheet_already_exists": "{album}-ში უკვე არსებობს",
|
||||
"add_to_albums": "დაამატე ალბომებში",
|
||||
"add_to_shared_album": "დაამატე საზიარო ალბომში",
|
||||
"add_url": "დაამატე URL",
|
||||
"added_to_archive": "დაარქივდა",
|
||||
"added_to_favorites": "დაამატე რჩეულებში",
|
||||
"added_to_favorites_count": "{count, number} დაემატა რჩეულებში",
|
||||
"admin": {
|
||||
"admin_user": "ადმინ მომხმარებელი",
|
||||
"asset_offline_description": "ეს საგარეო ბიბლიოთეკის აქტივი დისკზე ვერ მოიძებნა და სანაგვეში იქნა მოთავსებული. თუ ფაილი ბიბლიოთეკის შიგნით მდებარეობს, შეამოწმეთ შესაბამისი აქტივი ტაიმლაინზე. ამ აქტივის აღსადგენად, დარწმუნდით რომ ქვემოთ მოცემული ფაილის მისამართი Immich-ის მიერ წვდომადია და დაასკანერეთ ბიბლიოთეკა.",
|
||||
"authentication_settings": "ავთენტიკაციის პარამეტრები",
|
||||
"authentication_settings_description": "პაროლის, OAuth-ის და სხვა ავტენთიფიკაციის პარამეტრების მართვა",
|
||||
|
||||
@@ -1639,7 +1639,7 @@
|
||||
"remove_tag": "Удалить тег",
|
||||
"remove_url": "Удалить URL",
|
||||
"remove_user": "Удалить пользователя",
|
||||
"removed_api_key": "API ключ \"{name}\" удалён",
|
||||
"removed_api_key": "Удалён API ключ {name}",
|
||||
"removed_from_archive": "Удален из архива",
|
||||
"removed_from_favorites": "Удалено из избранного",
|
||||
"removed_from_favorites_count": "{count, plural, one {# объект удалён} many {# объектов удалено} other {# объекта удалено}} из избранного",
|
||||
|
||||
34
i18n/ta.json
34
i18n/ta.json
@@ -57,7 +57,7 @@
|
||||
"backup_onboarding_parts_title": "3-2-1 காப்புப்பிரதியில் பின்வருவன அடங்கும்:",
|
||||
"backup_onboarding_title": "காப்புப்பிரதிகள்",
|
||||
"backup_settings": "தரவுத்தள திணிப்பு அமைப்புகள்",
|
||||
"backup_settings_description": "தரவுத்தள நகல் அமைப்புகளை நிர்வகி.",
|
||||
"backup_settings_description": "தரவுத்தள நகல் அமைப்புகளை நிர்வகிக்கவும்",
|
||||
"cleared_jobs": "முடித்த வேலைகள்: {job}",
|
||||
"config_set_by_file": "கட்டமைப்பு, தற்போது ஒரு கட்டமைப்பு கோப்பு மூலம் அமைக்கப்பட்டுள்ளது",
|
||||
"confirm_delete_library": "{library} படங்கள் நூலகத்தை நிச்சயமாக நீக்க விரும்புகிறீர்களா?",
|
||||
@@ -68,7 +68,7 @@
|
||||
"confirm_user_pin_code_reset": "{user} இன் பின் குறியீட்டை மீட்டமைக்க விரும்புகிறீர்களா?",
|
||||
"create_job": "வேலையை உருவாக்கு",
|
||||
"cron_expression": "க்ரோன் வெளிப்பாடு",
|
||||
"cron_expression_description": "CRON வடிவமைப்பைப் பயன்படுத்தி ச்கேனிங் இடைவெளியை அமைக்கவும். மேலும் தகவலுக்கு எ.கா.<link> க்ரோன்டாப் குரு </link>",
|
||||
"cron_expression_description": "CRON வடிவமைப்பைப் பயன்படுத்தி ச்கேனிங் இடைவெளியை அமைக்கவும். மேலும் தகவலுக்கு எ.கா. <இணைப்பு> க்ரோன்டாப் குரு </இணைப்பு>",
|
||||
"cron_expression_presets": "க்ரோன் வெளிப்பாடு முன்னமைவுகள்",
|
||||
"disable_login": "உள்நுழைவை முடக்கு",
|
||||
"duplicate_detection_job_description": "ஒத்த படங்களைக் கண்டறிய, சொத்துக்களில் இயந்திரக் கற்றலை இயக்கவும். ஸ்மார்ட் தேடலை நம்பியுள்ளது",
|
||||
@@ -117,7 +117,7 @@
|
||||
"library_scanning_enable_description": "நியமிக்கப்பட்ட புகைப்பட நூலக ஸ்கேனிங்கை இயக்கு",
|
||||
"library_settings": "வெளிப்புற புகைப்பட நூலகம்",
|
||||
"library_settings_description": "வெளிப்புற புகைப்பட நூலக அமைப்புகளை மேலாண்மை செய்யவும்",
|
||||
"library_tasks_description": "புதிய மற்றும்/அல்லது மாற்றப்பட்ட சொத்துக்களுக்கு வெளிப்புற நூலகங்களை வருடவும்",
|
||||
"library_tasks_description": "புதிய மற்றும்/அல்லது மாற்றப்பட்ட சொத்துக்களுக்கு வெளிப்புற நூலகங்களை ஸ்கேன் செய்யவும்.",
|
||||
"library_watching_enable_description": "கோப்பு மாற்றங்களுக்கு வெளிப்புற நூலகங்களைப் பாருங்கள்",
|
||||
"library_watching_settings": "நூலகப் பார்ப்பது (சோதனை)",
|
||||
"library_watching_settings_description": "மாற்றப்பட்ட புகைப்படங்களைத் தானாகவே பார்க்கவும்",
|
||||
@@ -317,7 +317,7 @@
|
||||
"transcoding_audio_codec": "ஆடியோ கோடெக்",
|
||||
"transcoding_audio_codec_description": "ஓபச் மிக உயர்ந்த தரமான விருப்பமாகும், ஆனால் பழைய சாதனங்கள் அல்லது மென்பொருளுடன் குறைந்த பொருந்தக்கூடிய தன்மையைக் கொண்டுள்ளது.",
|
||||
"transcoding_bitrate_description": "மேக்ச் பிட்ரேட்டை விட அதிகமான வீடியோக்கள் அல்லது ஏற்றுக்கொள்ளப்பட்ட வடிவத்தில் இல்லை",
|
||||
"transcoding_codecs_learn_more": "இங்கே பயன்படுத்தப்படும் சொற்களைப் பற்றி மேலும் அறிய, <h264-link> H.264 கோடெக்</h264-link>, <hevc-link>HEVC கோடெக் </hevc-link>மற்றும் <vp9-link>VP9 க்கான கோடெக் </vp9-link> FFMPEG ஆவணங்களைப் பார்க்கவும்.",
|
||||
"transcoding_codecs_learn_more": "இங்கே பயன்படுத்தப்படும் சொற்களைப் பற்றி மேலும் அறிய, <H264-LINK> H.264 கோடெக் </H264-LINK>, <HEVC-LINK> HEVC கோடெக் </HEVC-LINK> மற்றும் <VP9-LINK> VP9 க்கான FFMPEG ஆவணங்களைப் பார்க்கவும் கோடெக் </vp9-link>.",
|
||||
"transcoding_constant_quality_mode": "நிலையான தர முறை",
|
||||
"transcoding_constant_quality_mode_description": "CQP ஐ விட ICQ சிறந்தது, ஆனால் சில வன்பொருள் முடுக்கம் சாதனங்கள் இந்த பயன்முறையை ஆதரிக்கவில்லை. இந்த விருப்பத்தை அமைப்பது தர அடிப்படையிலான குறியாக்கத்தைப் பயன்படுத்தும் போது குறிப்பிட்ட பயன்முறையை விரும்புகிறது. NVENC ஆல் புறக்கணிக்கப்பட்டது, ஏனெனில் இது ICQ ஐ ஆதரிக்காது.",
|
||||
"transcoding_constant_rate_factor": "நிலையான வீத காரணி (-crf)",
|
||||
@@ -326,7 +326,7 @@
|
||||
"transcoding_encoding_options": "குறியீட்டு விருப்பங்கள்",
|
||||
"transcoding_encoding_options_description": "குறியிடப்பட்ட வீடியோக்களுக்கான கோடெக்குகள், தெளிவுத்திறன், தரம் மற்றும் பிற விருப்பங்களை அமைக்கவும்",
|
||||
"transcoding_hardware_acceleration": "வன்பொருள் முடுக்கம்",
|
||||
"transcoding_hardware_acceleration_description": "பரிசோதனை: வேகமான டிரான்ஸ்கோடிங் ஆனால் அதே பிட்ரேட்டில் தரத்தைக் குறைக்கலாம்",
|
||||
"transcoding_hardware_acceleration_description": "பரிசோதனை: வேகமான டிரான்ஸ்கோடிங் ஆனால் அதே பிட்ரேட்டில் தரத்தைக் குறைக்கலாம்.",
|
||||
"transcoding_hardware_decoding": "வன்பொருள் டிகோடிங்",
|
||||
"transcoding_hardware_decoding_setting_description": "குறியாக்கத்தை விரைவுபடுத்துவதற்கு பதிலாக இறுதி முதல் இறுதி முடுக்கம் ஆகியவற்றை செயல்படுத்துகிறது. எல்லா வீடியோக்களிலும் வேலை செய்யக்கூடாது.",
|
||||
"transcoding_max_b_frames": "அதிகபட்ச பி-பிரேம்கள்",
|
||||
@@ -620,9 +620,9 @@
|
||||
"bugs_and_feature_requests": "பிழைகள் மற்றும் அம்ச கோரிக்கைகள்",
|
||||
"build": "உருவாக்கு",
|
||||
"build_image": "படத்தை உருவாக்குங்கள்",
|
||||
"bulk_delete_duplicates_confirmation": "நீங்கள் நிச்சயமாக {count, plural, one {# நகல் சொத்து} other {# நகல் சொத்துகள்}} மொத்தமாக நீக்க விரும்புகிறீர்களா? இது ஒவ்வொரு குழுவின் மிகப்பெரிய சொத்தை வைத்திருக்கும் மற்றும் மற்ற அனைத்து நகல்களையும் நிரந்தரமாக நீக்கும். இந்தச் செயலை நீங்கள் செயல்தவிர்க்க முடியாது!",
|
||||
"bulk_keep_duplicates_confirmation": "நீங்கள் நிச்சயமாக {count, plural, one {# நகல் சொத்து} other {# நகல் சொத்துக்கள்}} வைத்திருக்க விரும்புகிறீர்களா? இது எதையும் நீக்காமல் அனைத்து நகல் குழுக்களையும் தீர்க்கும்.",
|
||||
"bulk_trash_duplicates_confirmation": "நீங்கள் நிச்சயமாக மொத்தமாகக் குப்பையில் போட விரும்புகிறீர்களா {count, plural, one {# நகல் சொத்து} other {# நகல் சொத்துக்கள்}}? இது ஒவ்வொரு குழுவின் மிகப்பெரிய சொத்தையும் வைத்திருக்கும், மற்ற அனைத்து நகல்களையும் குப்பையில் போடும்.",
|
||||
"bulk_delete_duplicates_confirmation": "{எண்ணிக்கை, பன்மை, ஒன்று {# நகல் சொத்து} பிற {# நகல் சொத்துக்கள்}}}}}}}}} {{# நகல் சொத்து ஆகியவற்றை மொத்தமாக நீக்க விரும்புகிறீர்களா? இது ஒவ்வொரு குழுவின் மிகப்பெரிய சொத்தை வைத்திருக்கும் மற்றும் மற்ற அனைத்து நகல்களையும் நிரந்தரமாக நீக்குகிறது. இந்த செயலை நீங்கள் செயல்தவிர்க்க முடியாது!",
|
||||
"bulk_keep_duplicates_confirmation": "நீங்கள் {எண்ணிக்கை, பன்மை, ஒன்று {# நகல் சொத்து} பிற {# நகல் சொத்துக்கள்} be வைக்க விரும்புகிறீர்களா? இது எதையும் நீக்காமல் அனைத்து நகல் குழுக்களையும் தீர்க்கும்.",
|
||||
"bulk_trash_duplicates_confirmation": "நீங்கள் மொத்தமாக குப்பை {எண்ணிக்கை, பன்மை, ஒன்று {# நகல் சொத்து} பிற {# நகல் சொத்துக்கள்}}}} செய்ய விரும்புகிறீர்களா? இது ஒவ்வொரு குழுவின் மிகப்பெரிய சொத்தை வைத்திருக்கும் மற்றும் மற்ற அனைத்து நகல்களையும் குப்பைத் தொட்டியாக இருக்கும்.",
|
||||
"buy": "இம்மியை வாங்கவும்",
|
||||
"cache_settings_clear_cache_button": "தெளிவான தற்காலிக சேமிப்பு",
|
||||
"cache_settings_clear_cache_button_title": "பயன்பாட்டின் தற்காலிக சேமிப்பை அழிக்கிறது. கேச் மீண்டும் கட்டப்படும் வரை இது பயன்பாட்டின் செயல்திறனை கணிசமாக பாதிக்கும்.",
|
||||
@@ -709,7 +709,7 @@
|
||||
"confirm_keep_this_delete_others": "இந்த சொத்தைத் தவிர அடுக்கில் உள்ள மற்ற அனைத்து சொத்துகளும் நீக்கப்படும். நீங்கள் தொடர விரும்புகிறீர்களா?",
|
||||
"confirm_new_pin_code": "புதிய முள் குறியீட்டை உறுதிப்படுத்தவும்",
|
||||
"confirm_password": "கடவுச்சொல்லை உறுதிப்படுத்தவும்",
|
||||
"confirm_tag_face": "இந்த முகத்தை {name} எனக் குறிக்க விரும்புகிறீர்களா?",
|
||||
"confirm_tag_face": "இந்த முகத்தை {பெயர் அச் எனக் குறிக்க விரும்புகிறீர்களா?",
|
||||
"confirm_tag_face_unnamed": "இந்த முகத்தை குறிக்க விரும்புகிறீர்களா?",
|
||||
"connected_device": "இணைக்கப்பட்ட சாதனம்",
|
||||
"connected_to": "இணைக்கப்பட்டுள்ளது",
|
||||
@@ -915,9 +915,9 @@
|
||||
"cannot_navigate_next_asset": "அடுத்த சொத்துக்கு செல்ல முடியாது",
|
||||
"cannot_navigate_previous_asset": "முந்தைய சொத்துக்கு செல்ல முடியாது",
|
||||
"cant_apply_changes": "மாற்றங்களைப் பயன்படுத்த முடியாது",
|
||||
"cant_change_activity": "செயல்பாட்டை {enabled, select, true {முடக்க} other {இயக்க}} முடியாது",
|
||||
"cant_change_activity": "{செயல்படுத்த முடியாது, தேர்ந்தெடுக்கவும், உண்மை {disable} பிற {enable}} செயல்பாடு",
|
||||
"cant_change_asset_favorite": "சொத்துக்கு பிடித்ததை மாற்ற முடியாது",
|
||||
"cant_change_metadata_assets_count": "{count, plural, one {# சொத்து} other {# சொத்துக்கள்}}இன் மீள்தரவை மாற்ற முடியாது",
|
||||
"cant_change_metadata_assets_count": "{எண்ணிக்கை, பன்மை, ஒன்று {# சொத்து} பிற {# சொத்துக்கள்}} இன் மெட்டாடேட்டாவை மாற்ற முடியாது",
|
||||
"cant_get_faces": "முகங்களைப் பெற முடியாது",
|
||||
"cant_get_number_of_comments": "கருத்துகளின் எண்ணிக்கையைப் பெற முடியாது",
|
||||
"cant_search_people": "மக்களைத் தேட முடியாது",
|
||||
@@ -946,7 +946,7 @@
|
||||
"failed_to_update_notification_status": "அறிவிப்பு நிலையைப் புதுப்பிக்கத் தவறிவிட்டது",
|
||||
"import_path_already_exists": "இந்த இறக்குமதி பாதை ஏற்கனவே உள்ளது.",
|
||||
"incorrect_email_or_password": "தவறான மின்னஞ்சல் அல்லது கடவுச்சொல்",
|
||||
"paths_validation_failed": "தோல்வியுற்ற சரிபார்ப்பு {paths, plural, one {# பாதை} other {# பாதைகள்}}",
|
||||
"paths_validation_failed": "{பாதைகள், பன்மை, ஒன்று {# பாதை} மற்ற {# பாதைகள்}} தோல்வியுற்ற சரிபார்ப்பு",
|
||||
"profile_picture_transparent_pixels": "சுயவிவரப் படங்களுக்கு வெளிப்படையான படப்புள்ளிகள் இருக்க முடியாது. தயவுசெய்து பெரிதாக்கவும்/அல்லது படத்தை நகர்த்தவும்.",
|
||||
"quota_higher_than_disk_size": "வட்டு அளவை விட அதிகமாக ஒதுக்கீட்டை அமைத்துள்ளீர்கள்",
|
||||
"something_went_wrong": "ஏதோ தவறு நடந்தது",
|
||||
@@ -956,7 +956,7 @@
|
||||
"unable_to_add_exclusion_pattern": "விலக்கு முறையைச் சேர்க்க முடியவில்லை",
|
||||
"unable_to_add_import_path": "இறக்குமதி பாதையைச் சேர்க்க முடியவில்லை",
|
||||
"unable_to_add_partners": "கூட்டாளர்களைச் சேர்க்க முடியவில்லை",
|
||||
"unable_to_add_remove_archive": "காப்பகத்தில் {archived, select, true {இருந்து சொத்தை அகற்ற} other {சொத்தைச் சேர்க்க}} முடியவில்லை",
|
||||
"unable_to_add_remove_archive": "{காப்பகப்படுத்த முடியவில்லை, தேர்ந்தெடுக்கவும், உண்மையாகவும்} பிற {remove asset from}}} காப்பகத்திற்குச் சேர்க்கவும்",
|
||||
"unable_to_add_remove_favorites": "{பிடித்த, தேர்ந்தெடுக்கவும், உண்மையாகவும்}}} பிடித்தவைகளிலிருந்து சொத்தை அகற்று",
|
||||
"unable_to_archive_unarchive": "{காப்பகப்படுத்த முடியவில்லை, தேர்ந்தெடுக்க முடியவில்லை, உண்மை {archive} பிற {unarchive}}",
|
||||
"unable_to_change_album_user_role": "ஆல்பத்தின் பயனரின் பாத்திரத்தை மாற்ற முடியவில்லை",
|
||||
@@ -1489,7 +1489,7 @@
|
||||
"permanent_deletion_warning_setting_description": "சொத்துக்களை நிரந்தரமாக நீக்கும்போது ஒரு எச்சரிக்கையைக் காட்டுங்கள்",
|
||||
"permanently_delete": "நிரந்தரமாக நீக்கு",
|
||||
"permanently_delete_assets_count": "நிரந்தரமாக நீக்கு {எண்ணிக்கை, பன்மை, ஒன்று {asset} மற்ற {assets}}",
|
||||
"permanently_delete_assets_prompt": "{count, plural, one {this asset?} other {these <b>#</b> assets?}} என்பதை நிரந்தரமாக நீக்க விரும்புகிறீர்களா? இது {count, plural, one {it from its} other {them from their}} ஆல்பத்தையும் நீக்கும்.",
|
||||
"permanently_delete_assets_prompt": "நீங்கள் நிச்சயமாக {எண்ணிக்கை, பன்மை, ஒன்று {இந்த சொத்து?} மற்ற {இந்த <b>#</b> சொத்துக்கள்?",
|
||||
"permanently_deleted_asset": "நிரந்தரமாக நீக்கப்பட்ட சொத்து",
|
||||
"permanently_deleted_assets_count": "நிரந்தரமாக நீக்கப்பட்டது {எண்ணிக்கை, பன்மை, ஒன்று {# சொத்து} பிற {# சொத்துக்கள்}}",
|
||||
"permission": "இசைவு",
|
||||
@@ -1959,7 +1959,7 @@
|
||||
"tag_assets": "குறிச்சொல் சொத்துக்கள்",
|
||||
"tag_created": "உருவாக்கப்பட்ட குறிச்சொல்: {tag}",
|
||||
"tag_feature_description": "தர்க்கரீதியான குறிச்சொல் தலைப்புகளால் தொகுக்கப்பட்ட புகைப்படங்கள் மற்றும் வீடியோக்களை உலாவுதல்",
|
||||
"tag_not_found_question": "குறிச்சொல்லைக் கண்டுபிடிக்க முடியவில்லையா?<link>புதிய குறிச்சொல்லை உருவாக்கவும்.</link>",
|
||||
"tag_not_found_question": "குறிச்சொல்லைக் கண்டுபிடிக்க முடியவில்லையா? <இணைப்பு> புதிய குறிச்சொல்லை உருவாக்கவும். </இணைப்பு>",
|
||||
"tag_people": "மக்களை குறிக்கவும்",
|
||||
"tag_updated": "புதுப்பிக்கப்பட்ட குறிச்சொல்: {tag}",
|
||||
"tagged_assets": "குறித்துள்ளார் {எண்ணிக்கை, பன்மை, ஒன்று {# சொத்து} மற்ற {# சொத்துக்கள்}}",
|
||||
@@ -1980,7 +1980,7 @@
|
||||
"theme_setting_system_primary_color_title": "கணினி நிறத்தைப் பயன்படுத்துங்கள்",
|
||||
"theme_setting_system_theme_switch": "தானியங்கி (கணினி அமைப்பைப் பின்பற்றவும்)",
|
||||
"theme_setting_theme_subtitle": "பயன்பாட்டின் கருப்பொருள் அமைப்பைத் தேர்வுசெய்க",
|
||||
"theme_setting_three_stage_loading_subtitle": "மூன்று-நிலை ஏற்றுதல் இயக்கினால் ஏற்றுதல் செயல்திறனை அதிகரிக்கக்கூடும், ஆனால் கணிசமாக மிகை பிணையச் சுமையை ஏற்படுத்துகிறது",
|
||||
"theme_setting_three_stage_loading_subtitle": "மூன்று-நிலை ஏற்றுதல் ஏற்றுதல் செயல்திறனை அதிகரிக்கக்கூடும், ஆனால் கணிசமாக அதிக பிணைய சுமையை ஏற்படுத்துகிறது",
|
||||
"theme_setting_three_stage_loading_title": "மூன்று-நிலை ஏற்றுதலை இயக்கவும்",
|
||||
"they_will_be_merged_together": "அவர்கள் ஒன்றாக இணைக்கப்படுவார்கள்",
|
||||
"third_party_resources": "மூன்றாம் தரப்பு வளங்கள்",
|
||||
@@ -2117,7 +2117,7 @@
|
||||
"viewer_remove_from_stack": "அடுக்கிலிருந்து அகற்று",
|
||||
"viewer_stack_use_as_main_asset": "பிரதான சொத்தாகப் பயன்படுத்தவும்",
|
||||
"viewer_unstack": "அடுக்கை நீக்கு",
|
||||
"visibility_changed": "{count, plural, one {# நபர்} other {# நபர்கள்}} க்கான தெரிவுநிலை மாற்றப்பட்டது",
|
||||
"visibility_changed": "{எண்ணிக்கை, பன்மை, ஒன்று {# நபர்} மற்ற {# நபர்கள்} க்கு க்கு தெரிவுநிலை மாற்றப்பட்டது",
|
||||
"waiting": "காத்திருக்கிறது",
|
||||
"warning": "எச்சரிக்கை",
|
||||
"week": "வாரம்",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -136,6 +136,7 @@ private open class BackgroundWorkerPigeonCodec : StandardMessageCodec() {
|
||||
/** Generated interface from Pigeon that represents a handler of messages from Flutter. */
|
||||
interface BackgroundWorkerFgHostApi {
|
||||
fun enable()
|
||||
fun saveNotificationMessage(title: String, body: String)
|
||||
fun configure(settings: BackgroundWorkerSettings)
|
||||
fun disable()
|
||||
|
||||
@@ -164,6 +165,25 @@ interface BackgroundWorkerFgHostApi {
|
||||
channel.setMessageHandler(null)
|
||||
}
|
||||
}
|
||||
run {
|
||||
val channel = BasicMessageChannel<Any?>(binaryMessenger, "dev.flutter.pigeon.immich_mobile.BackgroundWorkerFgHostApi.saveNotificationMessage$separatedMessageChannelSuffix", codec)
|
||||
if (api != null) {
|
||||
channel.setMessageHandler { message, reply ->
|
||||
val args = message as List<Any?>
|
||||
val titleArg = args[0] as String
|
||||
val bodyArg = args[1] as String
|
||||
val wrapped: List<Any?> = try {
|
||||
api.saveNotificationMessage(titleArg, bodyArg)
|
||||
listOf(null)
|
||||
} catch (exception: Throwable) {
|
||||
BackgroundWorkerPigeonUtils.wrapError(exception)
|
||||
}
|
||||
reply.reply(wrapped)
|
||||
}
|
||||
} else {
|
||||
channel.setMessageHandler(null)
|
||||
}
|
||||
}
|
||||
run {
|
||||
val channel = BasicMessageChannel<Any?>(binaryMessenger, "dev.flutter.pigeon.immich_mobile.BackgroundWorkerFgHostApi.configure$separatedMessageChannelSuffix", codec)
|
||||
if (api != null) {
|
||||
@@ -204,7 +224,6 @@ interface BackgroundWorkerFgHostApi {
|
||||
/** Generated interface from Pigeon that represents a handler of messages from Flutter. */
|
||||
interface BackgroundWorkerBgHostApi {
|
||||
fun onInitialized()
|
||||
fun showNotification(title: String, content: String)
|
||||
fun close()
|
||||
|
||||
companion object {
|
||||
@@ -232,25 +251,6 @@ interface BackgroundWorkerBgHostApi {
|
||||
channel.setMessageHandler(null)
|
||||
}
|
||||
}
|
||||
run {
|
||||
val channel = BasicMessageChannel<Any?>(binaryMessenger, "dev.flutter.pigeon.immich_mobile.BackgroundWorkerBgHostApi.showNotification$separatedMessageChannelSuffix", codec)
|
||||
if (api != null) {
|
||||
channel.setMessageHandler { message, reply ->
|
||||
val args = message as List<Any?>
|
||||
val titleArg = args[0] as String
|
||||
val contentArg = args[1] as String
|
||||
val wrapped: List<Any?> = try {
|
||||
api.showNotification(titleArg, contentArg)
|
||||
listOf(null)
|
||||
} catch (exception: Throwable) {
|
||||
BackgroundWorkerPigeonUtils.wrapError(exception)
|
||||
}
|
||||
reply.reply(wrapped)
|
||||
}
|
||||
} else {
|
||||
channel.setMessageHandler(null)
|
||||
}
|
||||
}
|
||||
run {
|
||||
val channel = BasicMessageChannel<Any?>(binaryMessenger, "dev.flutter.pigeon.immich_mobile.BackgroundWorkerBgHostApi.close$separatedMessageChannelSuffix", codec)
|
||||
if (api != null) {
|
||||
|
||||
@@ -73,6 +73,8 @@ class BackgroundWorker(context: Context, params: WorkerParameters) :
|
||||
NotificationManager.IMPORTANCE_LOW
|
||||
)
|
||||
notificationManager.createNotificationChannel(notificationChannel)
|
||||
val notificationConfig = BackgroundWorkerPreferences(ctx).getNotificationConfig()
|
||||
showNotification(notificationConfig.first, notificationConfig.second)
|
||||
|
||||
loader.ensureInitializationCompleteAsync(ctx, null, Handler(Looper.getMainLooper())) {
|
||||
engine = FlutterEngine(ctx)
|
||||
@@ -109,7 +111,7 @@ class BackgroundWorker(context: Context, params: WorkerParameters) :
|
||||
}
|
||||
|
||||
// TODO: Move this to a separate NotificationManager class
|
||||
override fun showNotification(title: String, content: String) {
|
||||
private fun showNotification(title: String, content: String) {
|
||||
val notification = NotificationCompat.Builder(applicationContext, NOTIFICATION_CHANNEL_ID)
|
||||
.setSmallIcon(R.drawable.notification_icon)
|
||||
.setOnlyAlertOnce(true)
|
||||
|
||||
@@ -20,6 +20,10 @@ class BackgroundWorkerApiImpl(context: Context) : BackgroundWorkerFgHostApi {
|
||||
enqueueMediaObserver(ctx)
|
||||
}
|
||||
|
||||
override fun saveNotificationMessage(title: String, body: String) {
|
||||
BackgroundWorkerPreferences(ctx).updateNotificationConfig(title, body)
|
||||
}
|
||||
|
||||
override fun configure(settings: BackgroundWorkerSettings) {
|
||||
BackgroundWorkerPreferences(ctx).updateSettings(settings)
|
||||
enqueueMediaObserver(ctx)
|
||||
|
||||
@@ -10,9 +10,13 @@ class BackgroundWorkerPreferences(private val ctx: Context) {
|
||||
private const val SHARED_PREF_MIN_DELAY_KEY = "BackgroundWorker::minDelaySeconds"
|
||||
private const val SHARED_PREF_REQUIRE_CHARGING_KEY = "BackgroundWorker::requireCharging"
|
||||
private const val SHARED_PREF_LOCK_KEY = "BackgroundWorker::isLocked"
|
||||
private const val SHARED_PREF_NOTIF_TITLE_KEY = "BackgroundWorker::notificationTitle"
|
||||
private const val SHARED_PREF_NOTIF_MSG_KEY = "BackgroundWorker::notificationMessage"
|
||||
|
||||
private const val DEFAULT_MIN_DELAY_SECONDS = 30L
|
||||
private const val DEFAULT_REQUIRE_CHARGING = false
|
||||
private const val DEFAULT_NOTIF_TITLE = "Uploading media"
|
||||
private const val DEFAULT_NOTIF_MSG = "Checking for new assets…"
|
||||
}
|
||||
|
||||
private val sp: SharedPreferences by lazy {
|
||||
@@ -38,6 +42,20 @@ class BackgroundWorkerPreferences(private val ctx: Context) {
|
||||
)
|
||||
}
|
||||
|
||||
fun updateNotificationConfig(title: String, message: String) {
|
||||
sp.edit {
|
||||
putString(SHARED_PREF_NOTIF_TITLE_KEY, title)
|
||||
putString(SHARED_PREF_NOTIF_MSG_KEY, message)
|
||||
}
|
||||
}
|
||||
|
||||
fun getNotificationConfig(): Pair<String, String> {
|
||||
val title =
|
||||
sp.getString(SHARED_PREF_NOTIF_TITLE_KEY, DEFAULT_NOTIF_TITLE) ?: DEFAULT_NOTIF_TITLE
|
||||
val message = sp.getString(SHARED_PREF_NOTIF_MSG_KEY, DEFAULT_NOTIF_MSG) ?: DEFAULT_NOTIF_MSG
|
||||
return Pair(title, message)
|
||||
}
|
||||
|
||||
fun setLocked(paused: Boolean) {
|
||||
sp.edit {
|
||||
putBoolean(SHARED_PREF_LOCK_KEY, paused)
|
||||
|
||||
@@ -182,6 +182,7 @@ class BackgroundWorkerPigeonCodec: FlutterStandardMessageCodec, @unchecked Senda
|
||||
/// Generated protocol from Pigeon that represents a handler of messages from Flutter.
|
||||
protocol BackgroundWorkerFgHostApi {
|
||||
func enable() throws
|
||||
func saveNotificationMessage(title: String, body: String) throws
|
||||
func configure(settings: BackgroundWorkerSettings) throws
|
||||
func disable() throws
|
||||
}
|
||||
@@ -205,6 +206,22 @@ class BackgroundWorkerFgHostApiSetup {
|
||||
} else {
|
||||
enableChannel.setMessageHandler(nil)
|
||||
}
|
||||
let saveNotificationMessageChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.immich_mobile.BackgroundWorkerFgHostApi.saveNotificationMessage\(channelSuffix)", binaryMessenger: binaryMessenger, codec: codec)
|
||||
if let api = api {
|
||||
saveNotificationMessageChannel.setMessageHandler { message, reply in
|
||||
let args = message as! [Any?]
|
||||
let titleArg = args[0] as! String
|
||||
let bodyArg = args[1] as! String
|
||||
do {
|
||||
try api.saveNotificationMessage(title: titleArg, body: bodyArg)
|
||||
reply(wrapResult(nil))
|
||||
} catch {
|
||||
reply(wrapError(error))
|
||||
}
|
||||
}
|
||||
} else {
|
||||
saveNotificationMessageChannel.setMessageHandler(nil)
|
||||
}
|
||||
let configureChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.immich_mobile.BackgroundWorkerFgHostApi.configure\(channelSuffix)", binaryMessenger: binaryMessenger, codec: codec)
|
||||
if let api = api {
|
||||
configureChannel.setMessageHandler { message, reply in
|
||||
@@ -238,7 +255,6 @@ class BackgroundWorkerFgHostApiSetup {
|
||||
/// Generated protocol from Pigeon that represents a handler of messages from Flutter.
|
||||
protocol BackgroundWorkerBgHostApi {
|
||||
func onInitialized() throws
|
||||
func showNotification(title: String, content: String) throws
|
||||
func close() throws
|
||||
}
|
||||
|
||||
@@ -261,22 +277,6 @@ class BackgroundWorkerBgHostApiSetup {
|
||||
} else {
|
||||
onInitializedChannel.setMessageHandler(nil)
|
||||
}
|
||||
let showNotificationChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.immich_mobile.BackgroundWorkerBgHostApi.showNotification\(channelSuffix)", binaryMessenger: binaryMessenger, codec: codec)
|
||||
if let api = api {
|
||||
showNotificationChannel.setMessageHandler { message, reply in
|
||||
let args = message as! [Any?]
|
||||
let titleArg = args[0] as! String
|
||||
let contentArg = args[1] as! String
|
||||
do {
|
||||
try api.showNotification(title: titleArg, content: contentArg)
|
||||
reply(wrapResult(nil))
|
||||
} catch {
|
||||
reply(wrapError(error))
|
||||
}
|
||||
}
|
||||
} else {
|
||||
showNotificationChannel.setMessageHandler(nil)
|
||||
}
|
||||
let closeChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.immich_mobile.BackgroundWorkerBgHostApi.close\(channelSuffix)", binaryMessenger: binaryMessenger, codec: codec)
|
||||
if let api = api {
|
||||
closeChannel.setMessageHandler { _, reply in
|
||||
|
||||
@@ -119,10 +119,6 @@ class BackgroundWorker: BackgroundWorkerBgHostApi {
|
||||
})
|
||||
}
|
||||
|
||||
func showNotification(title: String, content: String) throws {
|
||||
// No-op on iOS for the time being
|
||||
}
|
||||
|
||||
/**
|
||||
* Cancels the currently running background task, either due to timeout or external request.
|
||||
* Sends a cancel signal to the Flutter side and sets up a fallback timer to ensure
|
||||
|
||||
@@ -12,6 +12,10 @@ class BackgroundWorkerApiImpl: BackgroundWorkerFgHostApi {
|
||||
// Android only
|
||||
}
|
||||
|
||||
func saveNotificationMessage(title: String, body: String) throws {
|
||||
// Android only
|
||||
}
|
||||
|
||||
func disable() throws {
|
||||
BGTaskScheduler.shared.cancel(taskRequestWithIdentifier: BackgroundWorkerApiImpl.refreshTaskID);
|
||||
BGTaskScheduler.shared.cancel(taskRequestWithIdentifier: BackgroundWorkerApiImpl.processingTaskID);
|
||||
|
||||
@@ -11,8 +11,6 @@ import 'package:immich_mobile/domain/services/log.service.dart';
|
||||
import 'package:immich_mobile/entities/store.entity.dart';
|
||||
import 'package:immich_mobile/extensions/network_capability_extensions.dart';
|
||||
import 'package:immich_mobile/extensions/platform_extensions.dart';
|
||||
import 'package:immich_mobile/extensions/translate_extensions.dart';
|
||||
import 'package:immich_mobile/generated/intl_keys.g.dart';
|
||||
import 'package:immich_mobile/infrastructure/repositories/db.repository.dart';
|
||||
import 'package:immich_mobile/infrastructure/repositories/logger_db.repository.dart';
|
||||
import 'package:immich_mobile/platform/background_worker_api.g.dart';
|
||||
@@ -44,6 +42,9 @@ class BackgroundWorkerFgService {
|
||||
// TODO: Move this call to native side once old timeline is removed
|
||||
Future<void> enable() => _foregroundHostApi.enable();
|
||||
|
||||
Future<void> saveNotificationMessage(String title, String body) =>
|
||||
_foregroundHostApi.saveNotificationMessage(title, body);
|
||||
|
||||
Future<void> configure({int? minimumDelaySeconds, bool? requireCharging}) => _foregroundHostApi.configure(
|
||||
BackgroundWorkerSettings(
|
||||
minimumDelaySeconds:
|
||||
@@ -112,13 +113,6 @@ class BackgroundWorkerBgService extends BackgroundWorkerFlutterApi {
|
||||
|
||||
configureFileDownloaderNotifications();
|
||||
|
||||
if (Platform.isAndroid) {
|
||||
await _backgroundHostApi.showNotification(
|
||||
IntlKeys.uploading_media.t(),
|
||||
IntlKeys.backup_background_service_default_notification.t(),
|
||||
);
|
||||
}
|
||||
|
||||
// Notify the host that the background worker service has been initialized and is ready to use
|
||||
_backgroundHostApi.onInitialized();
|
||||
} catch (error, stack) {
|
||||
|
||||
@@ -15,7 +15,9 @@ import 'package:immich_mobile/constants/locales.dart';
|
||||
import 'package:immich_mobile/domain/services/background_worker.service.dart';
|
||||
import 'package:immich_mobile/entities/store.entity.dart';
|
||||
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
||||
import 'package:immich_mobile/extensions/translate_extensions.dart';
|
||||
import 'package:immich_mobile/generated/codegen_loader.g.dart';
|
||||
import 'package:immich_mobile/generated/intl_keys.g.dart';
|
||||
import 'package:immich_mobile/platform/background_worker_lock_api.g.dart';
|
||||
import 'package:immich_mobile/providers/app_life_cycle.provider.dart';
|
||||
import 'package:immich_mobile/providers/asset_viewer/share_intent_upload.provider.dart';
|
||||
@@ -210,6 +212,14 @@ class ImmichAppState extends ConsumerState<ImmichApp> with WidgetsBindingObserve
|
||||
if (Store.isBetaTimelineEnabled) {
|
||||
ref.read(backgroundServiceProvider).disableService();
|
||||
ref.read(backgroundWorkerFgServiceProvider).enable();
|
||||
if (Platform.isAndroid) {
|
||||
ref
|
||||
.read(backgroundWorkerFgServiceProvider)
|
||||
.saveNotificationMessage(
|
||||
IntlKeys.uploading_media.t(),
|
||||
IntlKeys.backup_background_service_default_notification.t(),
|
||||
);
|
||||
}
|
||||
} else {
|
||||
ref.read(backgroundWorkerFgServiceProvider).disable();
|
||||
ref.read(backgroundServiceProvider).resumeServiceIfEnabled();
|
||||
|
||||
46
mobile/lib/platform/background_worker_api.g.dart
generated
46
mobile/lib/platform/background_worker_api.g.dart
generated
@@ -138,6 +138,29 @@ class BackgroundWorkerFgHostApi {
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> saveNotificationMessage(String title, String body) async {
|
||||
final String pigeonVar_channelName =
|
||||
'dev.flutter.pigeon.immich_mobile.BackgroundWorkerFgHostApi.saveNotificationMessage$pigeonVar_messageChannelSuffix';
|
||||
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
|
||||
pigeonVar_channelName,
|
||||
pigeonChannelCodec,
|
||||
binaryMessenger: pigeonVar_binaryMessenger,
|
||||
);
|
||||
final Future<Object?> pigeonVar_sendFuture = pigeonVar_channel.send(<Object?>[title, body]);
|
||||
final List<Object?>? pigeonVar_replyList = await pigeonVar_sendFuture as List<Object?>?;
|
||||
if (pigeonVar_replyList == null) {
|
||||
throw _createConnectionError(pigeonVar_channelName);
|
||||
} else if (pigeonVar_replyList.length > 1) {
|
||||
throw PlatformException(
|
||||
code: pigeonVar_replyList[0]! as String,
|
||||
message: pigeonVar_replyList[1] as String?,
|
||||
details: pigeonVar_replyList[2],
|
||||
);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> configure(BackgroundWorkerSettings settings) async {
|
||||
final String pigeonVar_channelName =
|
||||
'dev.flutter.pigeon.immich_mobile.BackgroundWorkerFgHostApi.configure$pigeonVar_messageChannelSuffix';
|
||||
@@ -221,29 +244,6 @@ class BackgroundWorkerBgHostApi {
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> showNotification(String title, String content) async {
|
||||
final String pigeonVar_channelName =
|
||||
'dev.flutter.pigeon.immich_mobile.BackgroundWorkerBgHostApi.showNotification$pigeonVar_messageChannelSuffix';
|
||||
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
|
||||
pigeonVar_channelName,
|
||||
pigeonChannelCodec,
|
||||
binaryMessenger: pigeonVar_binaryMessenger,
|
||||
);
|
||||
final Future<Object?> pigeonVar_sendFuture = pigeonVar_channel.send(<Object?>[title, content]);
|
||||
final List<Object?>? pigeonVar_replyList = await pigeonVar_sendFuture as List<Object?>?;
|
||||
if (pigeonVar_replyList == null) {
|
||||
throw _createConnectionError(pigeonVar_channelName);
|
||||
} else if (pigeonVar_replyList.length > 1) {
|
||||
throw PlatformException(
|
||||
code: pigeonVar_replyList[0]! as String,
|
||||
message: pigeonVar_replyList[1] as String?,
|
||||
details: pigeonVar_replyList[2],
|
||||
);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> close() async {
|
||||
final String pigeonVar_channelName =
|
||||
'dev.flutter.pigeon.immich_mobile.BackgroundWorkerBgHostApi.close$pigeonVar_messageChannelSuffix';
|
||||
|
||||
@@ -22,6 +22,8 @@ class BackgroundWorkerSettings {
|
||||
abstract class BackgroundWorkerFgHostApi {
|
||||
void enable();
|
||||
|
||||
void saveNotificationMessage(String title, String body);
|
||||
|
||||
void configure(BackgroundWorkerSettings settings);
|
||||
|
||||
void disable();
|
||||
@@ -33,8 +35,6 @@ abstract class BackgroundWorkerBgHostApi {
|
||||
// required platform channels to notify the native side to start the background upload
|
||||
void onInitialized();
|
||||
|
||||
void showNotification(String title, String content);
|
||||
|
||||
// Called from the background flutter engine to request the native side to cleanup
|
||||
void close();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user