diff --git a/appinfo/routes.php b/appinfo/routes.php index 422e04141..9a43ac1b1 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -320,6 +320,8 @@ // Tile endpoints ['name' => 'tileApi#index', 'url' => '/api/tiles', 'verb' => 'GET'], + // REQ-DISC-001: the apps in the caller's own app menu, to place as tiles. + ['name' => 'tileApi#discover', 'url' => '/api/tiles/discover', 'verb' => 'GET'], ['name' => 'tileApi#create', 'url' => '/api/tiles', 'verb' => 'POST'], ['name' => 'tileApi#update', 'url' => '/api/tiles/{id}', 'verb' => 'PUT'], ['name' => 'tileApi#destroy', 'url' => '/api/tiles/{id}', 'verb' => 'DELETE'], diff --git a/l10n/be.js b/l10n/be.js index e5c4e5c00..4d50e737e 100644 --- a/l10n/be.js +++ b/l10n/be.js @@ -1356,6 +1356,9 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Знойдзена на гэтым серверы", + "Apps this server runs for you. One click places one as a tile." : "Праграмы, якія гэты сервер запускае для вас. Адзін клік робіць з іх плітку.", + "On this dashboard" : "На гэтай панэлі" }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/l10n/be.json b/l10n/be.json index 80c821e84..c7b18e4e4 100644 --- a/l10n/be.json +++ b/l10n/be.json @@ -1333,6 +1333,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Знойдзена на гэтым серверы", + "Apps this server runs for you. One click places one as a tile.": "Праграмы, якія гэты сервер запускае для вас. Адзін клік робіць з іх плітку.", + "On this dashboard": "На гэтай панэлі" } } diff --git a/l10n/bg.js b/l10n/bg.js index fa031aff4..c61554189 100644 --- a/l10n/bg.js +++ b/l10n/bg.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Открити на този сървър", + "Apps this server runs for you. One click places one as a tile." : "Приложения, които този сървър изпълнява за вас. Едно щракване ги превръща в плочка.", + "On this dashboard" : "На това табло" }, "nplurals=2; plural=(n != 1);" ); diff --git a/l10n/bg.json b/l10n/bg.json index f2b03d839..abfde9fae 100644 --- a/l10n/bg.json +++ b/l10n/bg.json @@ -1332,6 +1332,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Открити на този сървър", + "Apps this server runs for you. One click places one as a tile.": "Приложения, които този сървър изпълнява за вас. Едно щракване ги превръща в плочка.", + "On this dashboard": "На това табло" } } diff --git a/l10n/bs.js b/l10n/bs.js index d58b87bd5..15a32bcfd 100644 --- a/l10n/bs.js +++ b/l10n/bs.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Pronađeno na ovom serveru", + "Apps this server runs for you. One click places one as a tile." : "Aplikacije koje ovaj server pokreće za vas. Jednim klikom postaju pločica.", + "On this dashboard" : "Na ovoj kontrolnoj ploči" }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" ); diff --git a/l10n/bs.json b/l10n/bs.json index 74cbf5e5f..8884df768 100644 --- a/l10n/bs.json +++ b/l10n/bs.json @@ -1333,6 +1333,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Pronađeno na ovom serveru", + "Apps this server runs for you. One click places one as a tile.": "Aplikacije koje ovaj server pokreće za vas. Jednim klikom postaju pločica.", + "On this dashboard": "Na ovoj kontrolnoj ploči" } } diff --git a/l10n/ca.js b/l10n/ca.js index eb4c90671..20366b830 100644 --- a/l10n/ca.js +++ b/l10n/ca.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Trobat en aquest servidor", + "Apps this server runs for you. One click places one as a tile." : "Aplicacions que aquest servidor executa per a vostè. Un clic en fa una rajola.", + "On this dashboard" : "En aquest tauler" }, "nplurals=2; plural=(n != 1);" ); diff --git a/l10n/ca.json b/l10n/ca.json index bbccacb67..66ddfbc64 100644 --- a/l10n/ca.json +++ b/l10n/ca.json @@ -1332,6 +1332,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Trobat en aquest servidor", + "Apps this server runs for you. One click places one as a tile.": "Aplicacions que aquest servidor executa per a vostè. Un clic en fa una rajola.", + "On this dashboard": "En aquest tauler" } } diff --git a/l10n/cs.js b/l10n/cs.js index cf9e7c0c1..ab43c2cc7 100644 --- a/l10n/cs.js +++ b/l10n/cs.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Nalezeno na tomto serveru", + "Apps this server runs for you. One click places one as a tile." : "Aplikace, které pro vás tento server provozuje. Jedním kliknutím z nich uděláte dlaždici.", + "On this dashboard" : "Na této nástěnce" }, "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" ); diff --git a/l10n/cs.json b/l10n/cs.json index 582dcc8fb..8b3a4f5cc 100644 --- a/l10n/cs.json +++ b/l10n/cs.json @@ -1333,6 +1333,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Nalezeno na tomto serveru", + "Apps this server runs for you. One click places one as a tile.": "Aplikace, které pro vás tento server provozuje. Jedním kliknutím z nich uděláte dlaždici.", + "On this dashboard": "Na této nástěnce" } } diff --git a/l10n/da.js b/l10n/da.js index 1d063c09f..81f69cdab 100644 --- a/l10n/da.js +++ b/l10n/da.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Fundet på denne server", + "Apps this server runs for you. One click places one as a tile." : "Apps, som denne server kører for dig. Ét klik gør en til en flise.", + "On this dashboard" : "På dette dashboard" }, "nplurals=2; plural=(n != 1);" ); diff --git a/l10n/da.json b/l10n/da.json index f11811fe5..73fecc45d 100644 --- a/l10n/da.json +++ b/l10n/da.json @@ -1332,6 +1332,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Fundet på denne server", + "Apps this server runs for you. One click places one as a tile.": "Apps, som denne server kører for dig. Ét klik gør en til en flise.", + "On this dashboard": "På dette dashboard" } } diff --git a/l10n/de.js b/l10n/de.js index a29a4c7a0..62b638d0c 100644 --- a/l10n/de.js +++ b/l10n/de.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Auf diesem Server gefunden", + "Apps this server runs for you. One click places one as a tile." : "Apps, die dieser Server für Sie ausführt. Ein Klick macht daraus eine Kachel.", + "On this dashboard" : "Auf diesem Dashboard" }, "nplurals=2; plural=(n != 1);" ); diff --git a/l10n/de.json b/l10n/de.json index 14213c779..ae82a5a14 100644 --- a/l10n/de.json +++ b/l10n/de.json @@ -1332,6 +1332,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Auf diesem Server gefunden", + "Apps this server runs for you. One click places one as a tile.": "Apps, die dieser Server für Sie ausführt. Ein Klick macht daraus eine Kachel.", + "On this dashboard": "Auf diesem Dashboard" } } diff --git a/l10n/el.js b/l10n/el.js index b239cd700..4c504866f 100644 --- a/l10n/el.js +++ b/l10n/el.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Βρέθηκαν σε αυτόν τον διακομιστή", + "Apps this server runs for you. One click places one as a tile." : "Εφαρμογές που εκτελεί αυτός ο διακομιστής για εσάς. Ένα κλικ τις κάνει πλακίδιο.", + "On this dashboard" : "Σε αυτόν τον πίνακα" }, "nplurals=2; plural=(n != 1);" ); diff --git a/l10n/el.json b/l10n/el.json index c42c201d9..c7adb5b02 100644 --- a/l10n/el.json +++ b/l10n/el.json @@ -1332,6 +1332,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Βρέθηκαν σε αυτόν τον διακομιστή", + "Apps this server runs for you. One click places one as a tile.": "Εφαρμογές που εκτελεί αυτός ο διακομιστής για εσάς. Ένα κλικ τις κάνει πλακίδιο.", + "On this dashboard": "Σε αυτόν τον πίνακα" } } diff --git a/l10n/en.js b/l10n/en.js index bd911c289..5d440b4ed 100644 --- a/l10n/en.js +++ b/l10n/en.js @@ -1345,7 +1345,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Discovered on this server", + "Apps this server runs for you. One click places one as a tile." : "Apps this server runs for you. One click places one as a tile.", + "On this dashboard" : "On this dashboard" }, "nplurals=2; plural=(n != 1);" ); diff --git a/l10n/en.json b/l10n/en.json index 251226a96..e641b08a0 100644 --- a/l10n/en.json +++ b/l10n/en.json @@ -1310,6 +1310,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Discovered on this server", + "Apps this server runs for you. One click places one as a tile.": "Apps this server runs for you. One click places one as a tile.", + "On this dashboard": "On this dashboard" } } diff --git a/l10n/es.js b/l10n/es.js index da07e0859..6f7a0b8bc 100644 --- a/l10n/es.js +++ b/l10n/es.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Encontrado en este servidor", + "Apps this server runs for you. One click places one as a tile." : "Aplicaciones que este servidor ejecuta para usted. Un clic las convierte en un mosaico.", + "On this dashboard" : "En este panel" }, "nplurals=2; plural=(n != 1);" ); diff --git a/l10n/es.json b/l10n/es.json index 3c37eacaf..013e9ec42 100644 --- a/l10n/es.json +++ b/l10n/es.json @@ -1332,6 +1332,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Encontrado en este servidor", + "Apps this server runs for you. One click places one as a tile.": "Aplicaciones que este servidor ejecuta para usted. Un clic las convierte en un mosaico.", + "On this dashboard": "En este panel" } } diff --git a/l10n/et.js b/l10n/et.js index 5f62dd240..efc18db0d 100644 --- a/l10n/et.js +++ b/l10n/et.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Leitud sellest serverist", + "Apps this server runs for you. One click places one as a tile." : "Rakendused, mida see server sinu jaoks käitab. Üks klõps teeb neist paani.", + "On this dashboard" : "Sellel töölaual" }, "nplurals=2; plural=(n != 1);" ); diff --git a/l10n/et.json b/l10n/et.json index 466a6834e..95c5f48ec 100644 --- a/l10n/et.json +++ b/l10n/et.json @@ -1332,6 +1332,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Leitud sellest serverist", + "Apps this server runs for you. One click places one as a tile.": "Rakendused, mida see server sinu jaoks käitab. Üks klõps teeb neist paani.", + "On this dashboard": "Sellel töölaual" } } diff --git a/l10n/fi.js b/l10n/fi.js index 76a61fa01..79d9f0757 100644 --- a/l10n/fi.js +++ b/l10n/fi.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Löytyi tältä palvelimelta", + "Apps this server runs for you. One click places one as a tile." : "Sovellukset, joita tämä palvelin ajaa sinulle. Yksi napsautus tekee niistä ruudun.", + "On this dashboard" : "Tällä kojelaudalla" }, "nplurals=2; plural=(n != 1);" ); diff --git a/l10n/fi.json b/l10n/fi.json index b46e4d804..6c44f2272 100644 --- a/l10n/fi.json +++ b/l10n/fi.json @@ -1332,6 +1332,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Löytyi tältä palvelimelta", + "Apps this server runs for you. One click places one as a tile.": "Sovellukset, joita tämä palvelin ajaa sinulle. Yksi napsautus tekee niistä ruudun.", + "On this dashboard": "Tällä kojelaudalla" } } diff --git a/l10n/fr.js b/l10n/fr.js index b852ba2b7..b03d38fd4 100644 --- a/l10n/fr.js +++ b/l10n/fr.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Trouvé sur ce serveur", + "Apps this server runs for you. One click places one as a tile." : "Les applications que ce serveur exécute pour vous. Un clic en fait une tuile.", + "On this dashboard" : "Sur ce tableau de bord" }, "nplurals=2; plural=(n > 1);" ); diff --git a/l10n/fr.json b/l10n/fr.json index c21a6f9ca..691ce24fa 100644 --- a/l10n/fr.json +++ b/l10n/fr.json @@ -1332,6 +1332,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Trouvé sur ce serveur", + "Apps this server runs for you. One click places one as a tile.": "Les applications que ce serveur exécute pour vous. Un clic en fait une tuile.", + "On this dashboard": "Sur ce tableau de bord" } } diff --git a/l10n/ga.js b/l10n/ga.js index a4cb61762..88fd7a088 100644 --- a/l10n/ga.js +++ b/l10n/ga.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Aimsithe ar an bhfreastalaí seo", + "Apps this server runs for you. One click places one as a tile." : "Aipeanna a ritheann an freastalaí seo duit. Cuireann cliceáil amháin ina tíl iad.", + "On this dashboard" : "Ar an deais seo" }, "nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);" ); diff --git a/l10n/ga.json b/l10n/ga.json index 7afcd864a..f48ae6820 100644 --- a/l10n/ga.json +++ b/l10n/ga.json @@ -1335,6 +1335,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Aimsithe ar an bhfreastalaí seo", + "Apps this server runs for you. One click places one as a tile.": "Aipeanna a ritheann an freastalaí seo duit. Cuireann cliceáil amháin ina tíl iad.", + "On this dashboard": "Ar an deais seo" } } diff --git a/l10n/hr.js b/l10n/hr.js index a0db5ced9..05f2759f4 100644 --- a/l10n/hr.js +++ b/l10n/hr.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Pronađeno na ovom poslužitelju", + "Apps this server runs for you. One click places one as a tile." : "Aplikacije koje ovaj poslužitelj pokreće za vas. Jednim klikom postaju pločica.", + "On this dashboard" : "Na ovoj nadzornoj ploči" }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" ); diff --git a/l10n/hr.json b/l10n/hr.json index 7b60e3169..8f27137f0 100644 --- a/l10n/hr.json +++ b/l10n/hr.json @@ -1333,6 +1333,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Pronađeno na ovom poslužitelju", + "Apps this server runs for you. One click places one as a tile.": "Aplikacije koje ovaj poslužitelj pokreće za vas. Jednim klikom postaju pločica.", + "On this dashboard": "Na ovoj nadzornoj ploči" } } diff --git a/l10n/hu.js b/l10n/hu.js index 97fdb3a1d..0c0ad5349 100644 --- a/l10n/hu.js +++ b/l10n/hu.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Ezen a szerveren található", + "Apps this server runs for you. One click places one as a tile." : "Alkalmazások, amelyeket ez a szerver futtat Önnek. Egy kattintással csempe lesz belőlük.", + "On this dashboard" : "Ezen az irányítópulton" }, "nplurals=2; plural=(n != 1);" ); diff --git a/l10n/hu.json b/l10n/hu.json index 8c0bc79e3..24ed3fda9 100644 --- a/l10n/hu.json +++ b/l10n/hu.json @@ -1332,6 +1332,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Ezen a szerveren található", + "Apps this server runs for you. One click places one as a tile.": "Alkalmazások, amelyeket ez a szerver futtat Önnek. Egy kattintással csempe lesz belőlük.", + "On this dashboard": "Ezen az irányítópulton" } } diff --git a/l10n/is.js b/l10n/is.js index fee331188..1ffb73a10 100644 --- a/l10n/is.js +++ b/l10n/is.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Fundið á þessum þjóni", + "Apps this server runs for you. One click places one as a tile." : "Forrit sem þessi þjónn keyrir fyrir þig. Einn smellur gerir reit úr því.", + "On this dashboard" : "Á þessu stjórnborði" }, "nplurals=2; plural=(n%10!=1 || n%100==11);" ); diff --git a/l10n/is.json b/l10n/is.json index 83ec25f8e..a8371a827 100644 --- a/l10n/is.json +++ b/l10n/is.json @@ -1332,6 +1332,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Fundið á þessum þjóni", + "Apps this server runs for you. One click places one as a tile.": "Forrit sem þessi þjónn keyrir fyrir þig. Einn smellur gerir reit úr því.", + "On this dashboard": "Á þessu stjórnborði" } } diff --git a/l10n/it.js b/l10n/it.js index aaf48aee6..7f13fd38f 100644 --- a/l10n/it.js +++ b/l10n/it.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Trovate su questo server", + "Apps this server runs for you. One click places one as a tile." : "App che questo server esegue per te. Un clic le trasforma in un riquadro.", + "On this dashboard" : "Su questa dashboard" }, "nplurals=2; plural=(n != 1);" ); diff --git a/l10n/it.json b/l10n/it.json index 0116ae598..37897cf79 100644 --- a/l10n/it.json +++ b/l10n/it.json @@ -1332,6 +1332,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Trovate su questo server", + "Apps this server runs for you. One click places one as a tile.": "App che questo server esegue per te. Un clic le trasforma in un riquadro.", + "On this dashboard": "Su questa dashboard" } } diff --git a/l10n/lb.js b/l10n/lb.js index d639067d4..d2ea990bf 100644 --- a/l10n/lb.js +++ b/l10n/lb.js @@ -1356,7 +1356,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Op dësem Server fonnt", + "Apps this server runs for you. One click places one as a tile." : "Apps, déi dësen Server fir Iech leeft. Ee Klick mécht eng Kachel draus.", + "On this dashboard" : "Op dësem Dashboard" }, "nplurals=2; plural=(n != 1);" ); diff --git a/l10n/lb.json b/l10n/lb.json index 2c6791abc..4f0fd6633 100644 --- a/l10n/lb.json +++ b/l10n/lb.json @@ -1332,6 +1332,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Op dësem Server fonnt", + "Apps this server runs for you. One click places one as a tile.": "Apps, déi dësen Server fir Iech leeft. Ee Klick mécht eng Kachel draus.", + "On this dashboard": "Op dësem Dashboard" } } diff --git a/l10n/lt.js b/l10n/lt.js index 06ac39ec7..0293743ab 100644 --- a/l10n/lt.js +++ b/l10n/lt.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Rasta šiame serveryje", + "Apps this server runs for you. One click places one as a tile." : "Programos, kurias šis serveris paleidžia jums. Vienu spustelėjimu iš jų padaroma plytelė.", + "On this dashboard" : "Šiame skydelyje" }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);" ); diff --git a/l10n/lt.json b/l10n/lt.json index a6f6ebdf2..0998da459 100644 --- a/l10n/lt.json +++ b/l10n/lt.json @@ -1333,6 +1333,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Rasta šiame serveryje", + "Apps this server runs for you. One click places one as a tile.": "Programos, kurias šis serveris paleidžia jums. Vienu spustelėjimu iš jų padaroma plytelė.", + "On this dashboard": "Šiame skydelyje" } } diff --git a/l10n/lv.js b/l10n/lv.js index d80714be3..e1a2bebd6 100644 --- a/l10n/lv.js +++ b/l10n/lv.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Atrasts šajā serverī", + "Apps this server runs for you. One click places one as a tile." : "Lietotnes, ko šis serveris darbina jums. Viens klikšķis padara to par flīzi.", + "On this dashboard" : "Šajā informācijas panelī" }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);" ); diff --git a/l10n/lv.json b/l10n/lv.json index 71d5b7fe4..139c61200 100644 --- a/l10n/lv.json +++ b/l10n/lv.json @@ -1333,6 +1333,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Atrasts šajā serverī", + "Apps this server runs for you. One click places one as a tile.": "Lietotnes, ko šis serveris darbina jums. Viens klikšķis padara to par flīzi.", + "On this dashboard": "Šajā informācijas panelī" } } diff --git a/l10n/mk.js b/l10n/mk.js index 91e32f560..824f4525e 100644 --- a/l10n/mk.js +++ b/l10n/mk.js @@ -1356,7 +1356,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Пронајдено на овој сервер", + "Apps this server runs for you. One click places one as a tile." : "Апликации што овој сервер ги извршува за вас. Еден клик ги прави плочка.", + "On this dashboard" : "На оваа контролна табла" }, "nplurals=2; plural=(n%10==1 && n%100!=11 ? 0 : 1);" ); diff --git a/l10n/mk.json b/l10n/mk.json index 0a211c6e9..d1f2eb2ff 100644 --- a/l10n/mk.json +++ b/l10n/mk.json @@ -1332,6 +1332,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Пронајдено на овој сервер", + "Apps this server runs for you. One click places one as a tile.": "Апликации што овој сервер ги извршува за вас. Еден клик ги прави плочка.", + "On this dashboard": "На оваа контролна табла" } } diff --git a/l10n/mt.js b/l10n/mt.js index d25281d80..ea847d601 100644 --- a/l10n/mt.js +++ b/l10n/mt.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Instab fuq dan is-server", + "Apps this server runs for you. One click places one as a tile." : "Apps li dan is-server iħaddem għalik. Klikk wieħed jagħmilhom madum.", + "On this dashboard" : "Fuq dan id-dashboard" }, "nplurals=4; plural=(n==1 ? 0 : n==0 || (n%100>1 && n%100<11) ? 1 : (n%100>10 && n%100<20) ? 2 : 3);" ); diff --git a/l10n/mt.json b/l10n/mt.json index cf721f220..54d72b59d 100644 --- a/l10n/mt.json +++ b/l10n/mt.json @@ -1334,6 +1334,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Instab fuq dan is-server", + "Apps this server runs for you. One click places one as a tile.": "Apps li dan is-server iħaddem għalik. Klikk wieħed jagħmilhom madum.", + "On this dashboard": "Fuq dan id-dashboard" } } diff --git a/l10n/nb.js b/l10n/nb.js index ae1068861..ffab2b345 100644 --- a/l10n/nb.js +++ b/l10n/nb.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Funnet på denne serveren", + "Apps this server runs for you. One click places one as a tile." : "Apper denne serveren kjører for deg. Ett klikk gjør en til en flis.", + "On this dashboard" : "På dette dashbordet" }, "nplurals=2; plural=(n != 1);" ); diff --git a/l10n/nb.json b/l10n/nb.json index ca931e191..7a5acfb84 100644 --- a/l10n/nb.json +++ b/l10n/nb.json @@ -1332,6 +1332,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Funnet på denne serveren", + "Apps this server runs for you. One click places one as a tile.": "Apper denne serveren kjører for deg. Ett klikk gjør en til en flis.", + "On this dashboard": "På dette dashbordet" } } diff --git a/l10n/nl.js b/l10n/nl.js index 3c8ca2665..6a06d4018 100644 --- a/l10n/nl.js +++ b/l10n/nl.js @@ -1627,7 +1627,10 @@ OC.L10N.register( "Opening the administration settings…" : "Beheerinstellingen openen…", "Versions of {name}" : "Versies van {name}", "Launchpad administration: {tab}" : "Launchpad-beheer: {tab}", - "applies to the whole organisation" : "geldt voor de hele organisatie" + "applies to the whole organisation" : "geldt voor de hele organisatie", + "Discovered on this server" : "Gevonden op deze server", + "Apps this server runs for you. One click places one as a tile." : "Apps die deze server voor u draait. Met één klik wordt er een tegel van.", + "On this dashboard" : "Op dit dashboard" }, "nplurals=2; plural=(n != 1);" ); diff --git a/l10n/nl.json b/l10n/nl.json index 2ed96feee..cfd601353 100644 --- a/l10n/nl.json +++ b/l10n/nl.json @@ -1641,6 +1641,9 @@ "Opening the administration settings…": "Beheerinstellingen openen…", "Versions of {name}": "Versies van {name}", "Launchpad administration: {tab}": "Launchpad-beheer: {tab}", - "applies to the whole organisation": "geldt voor de hele organisatie" + "applies to the whole organisation": "geldt voor de hele organisatie", + "Discovered on this server": "Gevonden op deze server", + "Apps this server runs for you. One click places one as a tile.": "Apps die deze server voor u draait. Met één klik wordt er een tegel van.", + "On this dashboard": "Op dit dashboard" } } diff --git a/l10n/pl.js b/l10n/pl.js index e0ee46265..1bfd7579a 100644 --- a/l10n/pl.js +++ b/l10n/pl.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Znalezione na tym serwerze", + "Apps this server runs for you. One click places one as a tile." : "Aplikacje, które ten serwer uruchamia dla Ciebie. Jedno kliknięcie zamienia je w kafelek.", + "On this dashboard" : "Na tym pulpicie" }, "nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" ); diff --git a/l10n/pl.json b/l10n/pl.json index a157f2755..55188b66b 100644 --- a/l10n/pl.json +++ b/l10n/pl.json @@ -1333,6 +1333,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Znalezione na tym serwerze", + "Apps this server runs for you. One click places one as a tile.": "Aplikacje, które ten serwer uruchamia dla Ciebie. Jedno kliknięcie zamienia je w kafelek.", + "On this dashboard": "Na tym pulpicie" } } diff --git a/l10n/pt.js b/l10n/pt.js index 65eb861de..5a0b819a5 100644 --- a/l10n/pt.js +++ b/l10n/pt.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Encontrado neste servidor", + "Apps this server runs for you. One click places one as a tile." : "Aplicações que este servidor executa para si. Um clique transforma-as num mosaico.", + "On this dashboard" : "Neste painel" }, "nplurals=2; plural=(n != 1);" ); diff --git a/l10n/pt.json b/l10n/pt.json index 490ca03dc..84b8a459b 100644 --- a/l10n/pt.json +++ b/l10n/pt.json @@ -1332,6 +1332,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Encontrado neste servidor", + "Apps this server runs for you. One click places one as a tile.": "Aplicações que este servidor executa para si. Um clique transforma-as num mosaico.", + "On this dashboard": "Neste painel" } } diff --git a/l10n/rm.js b/l10n/rm.js index 4ebe3e96f..862eeacc6 100644 --- a/l10n/rm.js +++ b/l10n/rm.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Chattà sin quest server", + "Apps this server runs for you. One click places one as a tile." : "Apps che quest server exequescha per Vus. In clic fa ina plattina.", + "On this dashboard" : "Sin quest dashboard" }, "nplurals=2; plural=(n != 1);" ); diff --git a/l10n/rm.json b/l10n/rm.json index fd151222c..bd464e3da 100644 --- a/l10n/rm.json +++ b/l10n/rm.json @@ -1332,6 +1332,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Chattà sin quest server", + "Apps this server runs for you. One click places one as a tile.": "Apps che quest server exequescha per Vus. In clic fa ina plattina.", + "On this dashboard": "Sin quest dashboard" } } diff --git a/l10n/ro.js b/l10n/ro.js index 24a8e9900..bd68397ef 100644 --- a/l10n/ro.js +++ b/l10n/ro.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Găsite pe acest server", + "Apps this server runs for you. One click places one as a tile." : "Aplicații pe care acest server le rulează pentru dvs. Un clic le transformă într-o dală.", + "On this dashboard" : "Pe acest panou" }, "nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100>0 && n%100<20)) ? 1 : 2);" ); diff --git a/l10n/ro.json b/l10n/ro.json index 642f5d48c..b4ff00a56 100644 --- a/l10n/ro.json +++ b/l10n/ro.json @@ -1333,6 +1333,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Găsite pe acest server", + "Apps this server runs for you. One click places one as a tile.": "Aplicații pe care acest server le rulează pentru dvs. Un clic le transformă într-o dală.", + "On this dashboard": "Pe acest panou" } } diff --git a/l10n/ru.js b/l10n/ru.js index 3602bb9bd..daa276ee2 100644 --- a/l10n/ru.js +++ b/l10n/ru.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Найдено на этом сервере", + "Apps this server runs for you. One click places one as a tile." : "Приложения, которые этот сервер запускает для вас. Один щелчок превращает их в плитку.", + "On this dashboard" : "На этой панели" }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" ); diff --git a/l10n/ru.json b/l10n/ru.json index 0e6d21668..f8a601b56 100644 --- a/l10n/ru.json +++ b/l10n/ru.json @@ -1333,6 +1333,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Найдено на этом сервере", + "Apps this server runs for you. One click places one as a tile.": "Приложения, которые этот сервер запускает для вас. Один щелчок превращает их в плитку.", + "On this dashboard": "На этой панели" } } diff --git a/l10n/sk.js b/l10n/sk.js index 064e6d751..b471b97c4 100644 --- a/l10n/sk.js +++ b/l10n/sk.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Nájdené na tomto serveri", + "Apps this server runs for you. One click places one as a tile." : "Aplikácie, ktoré pre vás tento server prevádzkuje. Jedným kliknutím z nich urobíte dlaždicu.", + "On this dashboard" : "Na tejto nástenke" }, "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" ); diff --git a/l10n/sk.json b/l10n/sk.json index f3ae63623..1d33aa11f 100644 --- a/l10n/sk.json +++ b/l10n/sk.json @@ -1333,6 +1333,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Nájdené na tomto serveri", + "Apps this server runs for you. One click places one as a tile.": "Aplikácie, ktoré pre vás tento server prevádzkuje. Jedným kliknutím z nich urobíte dlaždicu.", + "On this dashboard": "Na tejto nástenke" } } diff --git a/l10n/sl.js b/l10n/sl.js index c48df985e..1e5835e03 100644 --- a/l10n/sl.js +++ b/l10n/sl.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Najdeno na tem strežniku", + "Apps this server runs for you. One click places one as a tile." : "Aplikacije, ki jih ta strežnik poganja za vas. En klik naredi iz njih ploščico.", + "On this dashboard" : "Na tej nadzorni plošči" }, "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);" ); diff --git a/l10n/sl.json b/l10n/sl.json index 267374e12..c3fffe8a5 100644 --- a/l10n/sl.json +++ b/l10n/sl.json @@ -1334,6 +1334,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Najdeno na tem strežniku", + "Apps this server runs for you. One click places one as a tile.": "Aplikacije, ki jih ta strežnik poganja za vas. En klik naredi iz njih ploščico.", + "On this dashboard": "Na tej nadzorni plošči" } } diff --git a/l10n/sq.js b/l10n/sq.js index 56354edef..7c6d416f4 100644 --- a/l10n/sq.js +++ b/l10n/sq.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Gjetur në këtë server", + "Apps this server runs for you. One click places one as a tile." : "Aplikacione që ky server i ekzekuton për ju. Një klikim i bën pllakë.", + "On this dashboard" : "Në këtë panel" }, "nplurals=2; plural=(n != 1);" ); diff --git a/l10n/sq.json b/l10n/sq.json index 66a6ac55b..14a4bcc28 100644 --- a/l10n/sq.json +++ b/l10n/sq.json @@ -1332,6 +1332,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Gjetur në këtë server", + "Apps this server runs for you. One click places one as a tile.": "Aplikacione që ky server i ekzekuton për ju. Një klikim i bën pllakë.", + "On this dashboard": "Në këtë panel" } } diff --git a/l10n/sr.js b/l10n/sr.js index b6bfa42c8..e712229a1 100644 --- a/l10n/sr.js +++ b/l10n/sr.js @@ -1356,6 +1356,9 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Пронађено на овом серверу", + "Apps this server runs for you. One click places one as a tile." : "Апликације које овај сервер покреће за вас. Један клик их претвара у плочицу.", + "On this dashboard" : "На овој контролној табли" }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/l10n/sr.json b/l10n/sr.json index d76369702..755f9acd8 100644 --- a/l10n/sr.json +++ b/l10n/sr.json @@ -1333,6 +1333,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Пронађено на овом серверу", + "Apps this server runs for you. One click places one as a tile.": "Апликације које овај сервер покреће за вас. Један клик их претвара у плочицу.", + "On this dashboard": "На овој контролној табли" } } diff --git a/l10n/sv.js b/l10n/sv.js index 03d79683d..5493c64fd 100644 --- a/l10n/sv.js +++ b/l10n/sv.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Hittat på den här servern", + "Apps this server runs for you. One click places one as a tile." : "Appar som den här servern kör åt dig. Ett klick gör en till en ruta.", + "On this dashboard" : "På den här instrumentpanelen" }, "nplurals=2; plural=(n != 1);" ); diff --git a/l10n/sv.json b/l10n/sv.json index e94a17196..75370ec03 100644 --- a/l10n/sv.json +++ b/l10n/sv.json @@ -1332,6 +1332,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Hittat på den här servern", + "Apps this server runs for you. One click places one as a tile.": "Appar som den här servern kör åt dig. Ett klick gör en till en ruta.", + "On this dashboard": "På den här instrumentpanelen" } } diff --git a/l10n/tr.js b/l10n/tr.js index b6f909427..12b52c549 100644 --- a/l10n/tr.js +++ b/l10n/tr.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Bu sunucuda bulundu", + "Apps this server runs for you. One click places one as a tile." : "Bu sunucunun sizin için çalıştırdığı uygulamalar. Tek tıklama onları bir kutucuğa dönüştürür.", + "On this dashboard" : "Bu panoda" }, "nplurals=2; plural=(n != 1);" ); diff --git a/l10n/tr.json b/l10n/tr.json index 3c06bffbe..9c9c7764c 100644 --- a/l10n/tr.json +++ b/l10n/tr.json @@ -1332,6 +1332,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Bu sunucuda bulundu", + "Apps this server runs for you. One click places one as a tile.": "Bu sunucunun sizin için çalıştırdığı uygulamalar. Tek tıklama onları bir kutucuğa dönüştürür.", + "On this dashboard": "Bu panoda" } } diff --git a/l10n/uk.js b/l10n/uk.js index 2f9b20802..74fe4050f 100644 --- a/l10n/uk.js +++ b/l10n/uk.js @@ -1365,7 +1365,10 @@ OC.L10N.register( "My profile" : "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets." : "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}" : "Launchpad administration: {tab}", - "applies to the whole organisation" : "applies to the whole organisation" + "applies to the whole organisation" : "applies to the whole organisation", + "Discovered on this server" : "Знайдено на цьому сервері", + "Apps this server runs for you. One click places one as a tile." : "Застосунки, які цей сервер запускає для вас. Один клік робить із них плитку.", + "On this dashboard" : "На цій панелі" }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" ); diff --git a/l10n/uk.json b/l10n/uk.json index eac212516..65ef9f8ed 100644 --- a/l10n/uk.json +++ b/l10n/uk.json @@ -1333,6 +1333,9 @@ "My profile": "My profile", "Fields your organisation adds to your profile. Colleagues see them in profile widgets.": "Fields your organisation adds to your profile. Colleagues see them in profile widgets.", "Launchpad administration: {tab}": "Launchpad administration: {tab}", - "applies to the whole organisation": "applies to the whole organisation" + "applies to the whole organisation": "applies to the whole organisation", + "Discovered on this server": "Знайдено на цьому сервері", + "Apps this server runs for you. One click places one as a tile.": "Застосунки, які цей сервер запускає для вас. Один клік робить із них плитку.", + "On this dashboard": "На цій панелі" } } diff --git a/lib/Controller/TileApiController.php b/lib/Controller/TileApiController.php index 156cb0477..0ce524738 100644 --- a/lib/Controller/TileApiController.php +++ b/lib/Controller/TileApiController.php @@ -27,6 +27,7 @@ use OCA\LaunchPad\AppInfo\Application; use OCA\LaunchPad\Service\ActionAuthService; +use OCA\LaunchPad\Service\ServiceDiscoveryService; use OCA\LaunchPad\Service\TileService; use OCP\AppFramework\Controller; use OCP\AppFramework\Http; @@ -59,6 +60,7 @@ class TileApiController extends Controller { * @param ActionAuthService $actionAuth ADR-023 action authorization. * @param IUserSession $userSession User session (IUser resolution). * @param IL10N $l10n The localisation helper. + * @param ServiceDiscoveryService $discovery The apps in the user's app menu. * @param string|null $userId The user ID. */ public function __construct( @@ -67,6 +69,7 @@ public function __construct( private readonly ActionAuthService $actionAuth, private readonly IUserSession $userSession, private readonly IL10N $l10n, + private readonly ServiceDiscoveryService $discovery, private readonly ?string $userId, ) { parent::__construct( @@ -112,6 +115,34 @@ public function index(): JSONResponse { ); }//end index() + /** + * The apps this server runs for the caller, to place as tiles. + * + * Answers only the caller's own app menu: there is no id parameter, so + * nothing to point at someone else (REQ-DISC-001). Placing a tile still + * goes through the dashboard's own add-tile check. + * + * @return JSONResponse `{apps: [{appId, name, href, icon}]}`. + * + * @spec openspec/changes/launcher-discover-server-services/specs/tiles/spec.md#requirement-the-add-flow-lists-the-apps-this-server-runs-for-the-user-req-disc-001 + */ + #[NoAdminRequired] + #[NoCSRFRequired] + public function discover(): JSONResponse { + $user = $this->userSession->getUser(); + if ($this->userId === null || $user === null) { + return new JSONResponse(['error' => 'Not authenticated'], Http::STATUS_UNAUTHORIZED); + } + + try { + $this->actionAuth->requireAction($user, 'tile.discover'); + } catch (OCSForbiddenException) { + return new JSONResponse(['error' => 'Forbidden'], Http::STATUS_FORBIDDEN); + } + + return new JSONResponse(['apps' => $this->discovery->discover()]); + }//end discover() + /** * Create a new tile. * diff --git a/lib/Service/ServiceDiscoveryService.php b/lib/Service/ServiceDiscoveryService.php new file mode 100644 index 000000000..53eec621c --- /dev/null +++ b/lib/Service/ServiceDiscoveryService.php @@ -0,0 +1,71 @@ + + * @copyright 2026 Conduction b.v. + * @license EUPL-1.2 https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * @version GIT:auto + * @link https://conduction.nl + * + * @spec openspec/changes/launcher-discover-server-services/specs/tiles/spec.md + */ + +declare(strict_types=1); + +namespace OCA\LaunchPad\Service; + +use OCA\LaunchPad\AppInfo\Application; +use OCP\INavigationManager; + +/** + * Lists the apps in the current user's Nextcloud app menu. + */ +class ServiceDiscoveryService { + /** + * Constructor + * + * @param INavigationManager $navigationManager The current user's app menu. + */ + public function __construct( + private readonly INavigationManager $navigationManager, + ) { + }//end __construct() + + /** + * The apps in the current user's app menu, LaunchPad itself left out. + * + * @return array The apps, in menu order. + * + * @spec openspec/changes/launcher-discover-server-services/specs/tiles/spec.md#requirement-the-add-flow-lists-the-apps-this-server-runs-for-the-user-req-disc-001 + */ + public function discover(): array { + $apps = []; + foreach ($this->navigationManager->getAll(type: 'link') as $entry) { + $appId = (string)($entry['id'] ?? ''); + if ($appId === '' || $appId === Application::APP_ID) { + continue; + } + + $apps[] = [ + 'appId' => $appId, + 'name' => (string)($entry['name'] ?? $appId), + 'href' => (string)($entry['href'] ?? ''), + 'icon' => (string)($entry['icon'] ?? ''), + ]; + } + + return $apps; + }//end discover() +}//end class diff --git a/lib/actions.seed.json b/lib/actions.seed.json index f3c39cf91..2f8084b04 100644 --- a/lib/actions.seed.json +++ b/lib/actions.seed.json @@ -72,6 +72,7 @@ "rule.delete-rule": ["admin"], "template.gallery": ["admin", "@all"], "tile.index": ["admin", "@all"], + "tile.discover": ["admin", "@all"], "tile.create": ["admin"], "tile.update": ["admin"], "tile.destroy": ["admin"], diff --git a/openspec/changes/launcher-discover-server-services/tasks.md b/openspec/changes/launcher-discover-server-services/tasks.md index e32a5cc20..41e4fee8e 100644 --- a/openspec/changes/launcher-discover-server-services/tasks.md +++ b/openspec/changes/launcher-discover-server-services/tasks.md @@ -1,8 +1,8 @@ # Tasks: launcher-discover-server-services -- [ ] 1. Add `lib/Service/ServiceDiscoveryService.php` over `INavigationManager::getAll('link')`, excluding LaunchPad. Verify: PHPUnit with a stubbed manager. -- [ ] 2. Seed `tile.discover` in `lib/actions.seed.json` and add `GET /api/tiles/discover` with `#[NoAdminRequired]` and the action check. Verify: PHPUnit and route-reachability. -- [ ] 3. Add the "Discovered on this server" section to `src/modals/WidgetPickerModal.vue`, searchable with the existing box, with the "On this dashboard" mark. Verify: Vitest. -- [ ] 4. Place the tile through the existing tile call with the mapping in D2. Verify: Vitest on the payload. +- [x] 1. Add `lib/Service/ServiceDiscoveryService.php` over `INavigationManager::getAll('link')`, excluding LaunchPad. Verify: PHPUnit with a stubbed manager. +- [x] 2. Seed `tile.discover` in `lib/actions.seed.json` and add `GET /api/tiles/discover` with `#[NoAdminRequired]` and the action check. Verify: PHPUnit and route-reachability. +- [x] 3. Add the "Discovered on this server" section to `src/modals/WidgetPickerModal.vue`, searchable with the existing box, with the "On this dashboard" mark. Verify: Vitest. +- [x] 4. Place the tile through the existing tile call with the mapping in D2. Verify: Vitest on the payload. - [ ] 5. Playwright: discover Deck and place it. - [ ] 6. Add `nl` and `en` strings, fold the delta into `openspec/specs/tiles/spec.md` on archive, and set tile-discover-containers to `built` in the parity matrix with evidence lines. diff --git a/src/modals/WidgetPickerModal.vue b/src/modals/WidgetPickerModal.vue index 87fd23b08..3e65f0a76 100644 --- a/src/modals/WidgetPickerModal.vue +++ b/src/modals/WidgetPickerModal.vue @@ -65,8 +65,41 @@ class="widget-picker__widget-action widget-picker__widget-action--check" /> +
+

+ {{ t('launchpad', 'Discovered on this server') }} +

+

+ {{ t('launchpad', 'Apps this server runs for you. One click places one as a tile.') }} +

+ +
+