├── .drone.star ├── .github └── ISSUE_TEMPLATE.md ├── .gitignore ├── .phan └── config.php ├── .php-cs-fixer.dist.php ├── AUTHORS.md ├── CHANGELOG.md ├── COPYING ├── Makefile ├── README.md ├── appinfo ├── Migrations │ ├── Version20161122085340.php │ ├── Version20170329194544.php │ ├── Version20170724162518.php │ ├── Version20201123114127.php │ ├── Version20201126140622.php │ └── Version20220312110422.php ├── app.php ├── database.xml ├── info.xml └── routes.php ├── composer.json ├── composer.lock ├── css ├── authorization.css ├── login.css ├── main.css └── settings-admin.css ├── img └── app.svg ├── js ├── login.js ├── settings-admin.js ├── settings.js └── switch-user.js ├── l10n ├── .tx │ └── config ├── af_ZA.js ├── af_ZA.json ├── ar.js ├── ar.json ├── bg_BG.js ├── bg_BG.json ├── ca.js ├── ca.json ├── cs_CZ.js ├── cs_CZ.json ├── da.js ├── da.json ├── de.js ├── de.json ├── de_CH.js ├── de_CH.json ├── de_DE.js ├── de_DE.json ├── el.js ├── el.json ├── en_GB.js ├── en_GB.json ├── es.js ├── es.json ├── es_MX.js ├── es_MX.json ├── eu.js ├── eu.json ├── fi_FI.js ├── fi_FI.json ├── fr.js ├── fr.json ├── gl.js ├── gl.json ├── he.js ├── he.json ├── hu_HU.js ├── hu_HU.json ├── id.js ├── id.json ├── is.js ├── is.json ├── it.js ├── it.json ├── ja.js ├── ja.json ├── ko.js ├── ko.json ├── nb_NO.js ├── nb_NO.json ├── nl.js ├── nl.json ├── nn_NO.js ├── nn_NO.json ├── pl.js ├── pl.json ├── pt_BR.js ├── pt_BR.json ├── pt_PT.js ├── pt_PT.json ├── ru.js ├── ru.json ├── ru_RU.js ├── ru_RU.json ├── sl.js ├── sl.json ├── sq.js ├── sq.json ├── sv.js ├── sv.json ├── th_TH.js ├── th_TH.json ├── tr.js ├── tr.json ├── ug.js ├── ug.json ├── vi.js ├── vi.json ├── zh_CN.js ├── zh_CN.json ├── zh_TW.js └── zh_TW.json ├── lib ├── AppInfo │ └── Application.php ├── AuthModule.php ├── BackgroundJob │ └── CleanUp.php ├── Commands │ ├── AddClient.php │ ├── ListClients.php │ ├── ModifyClient.php │ └── RemoveClient.php ├── Controller │ ├── OAuthApiController.php │ ├── OpenIdConnectController.php │ ├── PageController.php │ └── SettingsController.php ├── Db │ ├── AccessToken.php │ ├── AccessTokenMapper.php │ ├── AuthorizationCode.php │ ├── AuthorizationCodeMapper.php │ ├── Client.php │ ├── ClientMapper.php │ ├── RefreshToken.php │ └── RefreshTokenMapper.php ├── Exceptions │ └── UnsupportedPkceTransformException.php ├── Hooks │ └── UserHooks.php ├── Panels │ ├── AdminPanel.php │ └── PersonalPanel.php ├── Sabre │ ├── AbstractBearer.php │ └── OAuth2.php └── Utilities.php ├── phpcs.xml ├── phpstan.neon ├── phpunit.xml ├── sonar-project.properties ├── templates ├── authorization-successful.php ├── authorize-error.php ├── authorize.php ├── client.part.php ├── settings-admin.php ├── settings-personal.php └── switch-user.php ├── tests ├── acceptance │ ├── config │ │ └── behat.yml │ └── features │ │ ├── bootstrap │ │ ├── Oauth2Context.php │ │ └── bootstrap.php │ │ ├── lib │ │ ├── Oauth2AdminSettingsPage.php │ │ ├── Oauth2AuthRequestPage.php │ │ └── Oauth2OnPersonalSecuritySettingsPage.php │ │ └── webUIOauth2 │ │ ├── enforceTokenAuth.feature │ │ ├── newClientRegistration.feature │ │ ├── obtainAccessToken.feature │ │ └── revokeAccessToken.feature └── unit │ ├── AuthModuleTest.php │ ├── BackgroundJob │ └── CleanUpTest.php │ ├── Command │ ├── ListClientsTest.php │ └── ModifyClientTest.php │ ├── Controller │ ├── OAuthApiControllerTest.php │ ├── OpenIdConnectControllerTest.php │ ├── PageControllerTest.php │ └── SettingsControllerTest.php │ ├── Db │ ├── AccessTokenMapperTest.php │ ├── AccessTokenTest.php │ ├── AuthorizationCodeMapperTest.php │ ├── AuthorizationCodeTest.php │ ├── ClientMapperTest.php │ └── RefreshTokenMapperTest.php │ ├── Hooks │ └── UserHooksTest.php │ ├── Panel │ └── AdminPanelTest.php │ ├── Sabre │ ├── AbstractBearerTest.php │ └── OAuth2Test.php │ └── UtilitiesTest.php └── vendor-bin ├── behat └── composer.json ├── owncloud-codestyle └── composer.json ├── phan └── composer.json ├── php_codesniffer └── composer.json └── phpstan └── composer.json /.gitignore: -------------------------------------------------------------------------------- 1 | /build/ 2 | /l10n/.transifexrc 3 | .php_cs.cache 4 | .php-cs-fixer.cache 5 | 6 | # Composer 7 | vendor/ 8 | vendor-bin/**/vendor 9 | vendor-bin/**/composer.lock 10 | 11 | # Tests - auto-generated files 12 | .phpunit.result.cache 13 | /tests/acceptance/output* 14 | /tests/output 15 | # SonarCloud scanner 16 | .scannerwork 17 | 18 | # Generated from .drone.star 19 | .drone.yml 20 | 21 | .idea/ 22 | -------------------------------------------------------------------------------- /.php-cs-fixer.dist.php: -------------------------------------------------------------------------------- 1 | setUsingCache(true) 7 | ->getFinder() 8 | ->exclude('l10n') 9 | ->exclude('vendor') 10 | ->exclude('vendor-bin') 11 | ->notPath('/^c3.php/') 12 | ->in(__DIR__); 13 | 14 | return $config; -------------------------------------------------------------------------------- /AUTHORS.md: -------------------------------------------------------------------------------- 1 | # Authors 2 | * Project Seminar "sciebo@Learnweb" of the University of Münster 3 | -------------------------------------------------------------------------------- /appinfo/Migrations/Version20161122085340.php: -------------------------------------------------------------------------------- 1 | hasTable("{$prefix}oauth2_clients")) { 13 | return; 14 | } 15 | 16 | // not that valid .... 17 | $schemaReader = new MDB2SchemaReader(\OC::$server->getConfig(), \OC::$server->getDatabaseConnection()->getDatabasePlatform()); 18 | $schemaReader->loadSchemaFromFile(__DIR__ . '/../database.xml', $schema); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /appinfo/Migrations/Version20170329194544.php: -------------------------------------------------------------------------------- 1 | addClient($name, $redirectUrl, $clientId, $secret); 28 | 29 | $out->info("The client <$name> has been added."); 30 | } catch (UniqueConstraintViolationException $ex) { 31 | $out->info("The client <$name> already known."); 32 | } 33 | } 34 | } 35 | 36 | /** 37 | * @param string $name 38 | * @param string $redirectUrl 39 | * @param string $clientId 40 | * @param string $secret 41 | */ 42 | protected function addClient($name, $redirectUrl, $clientId, $secret) { 43 | /** @var ClientMapper $mapper */ 44 | $mapper = \OC::$server->query(ClientMapper::class); 45 | 46 | $client = new Client(); 47 | $client->setIdentifier($clientId); 48 | $client->setSecret($secret); 49 | $client->setRedirectUri($redirectUrl); 50 | $client->setName($name); 51 | $client->setAllowSubdomains(false); 52 | 53 | $mapper->insert($client); 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /appinfo/Migrations/Version20170724162518.php: -------------------------------------------------------------------------------- 1 | getTable("{$prefix}oauth2_refresh_tokens"); 12 | if (!$table->hasColumn('access_token_id')) { 13 | $table->addColumn('access_token_id', Type::INTEGER, ['notNull' => false]); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /appinfo/Migrations/Version20201123114127.php: -------------------------------------------------------------------------------- 1 | getTable("{$prefix}oauth2_clients"); 12 | if (!$table->hasColumn('trusted')) { 13 | $table->addColumn('trusted', Types::BOOLEAN, ['notNull' => true, 'default' => false]); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /appinfo/Migrations/Version20201126140622.php: -------------------------------------------------------------------------------- 1 | getTable("{$prefix}oauth2_auth_codes"); 12 | if (!$table->hasColumn('code_challenge')) { 13 | $table->addColumn('code_challenge', Type::STRING, ['notNull' => false]); 14 | } 15 | if (!$table->hasColumn('code_challenge_method')) { 16 | $table->addColumn('code_challenge_method', Type::STRING, ['notNull' => false]); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /appinfo/Migrations/Version20220312110422.php: -------------------------------------------------------------------------------- 1 | getTable("{$prefix}oauth2_access_tokens"); 14 | if (!$table->hasIndex('oauth2_token')) { 15 | $table->addUniqueIndex(['token'], 'oauth2_token'); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /appinfo/app.php: -------------------------------------------------------------------------------- 1 | 18 | */ 19 | 20 | use OCA\OAuth2\AppInfo\Application; 21 | 22 | $app = new Application(); 23 | $app->boot(); 24 | -------------------------------------------------------------------------------- /appinfo/routes.php: -------------------------------------------------------------------------------- 1 | 18 | */ 19 | 20 | return [ 21 | 'routes' => [ 22 | # Routes for the authorize view 23 | ['name' => 'page#authorize', 'url' => '/authorize', 'verb' => 'GET'], 24 | ['name' => 'page#generate_authorization_code', 'url' => '/authorize', 'verb' => 'POST'], 25 | ['name' => 'page#logout', 'url' => '/logout', 'verb' => 'GET'], 26 | # API endpoint for requesting a token 27 | ['name' => 'o_auth_api#generate_token', 'url' => '/api/v1/token', 'verb' => 'POST'], 28 | ['name' => 'o_auth_api#preflighted_cors', 'url' => '/api/v1/{path}', 'verb' => 'OPTIONS', 'requirements' => ['path' => '.+']], 29 | # OpenID connect 30 | ['name' => 'OpenIdConnect#userinfo', 'url' => '/api/v1/userinfo', 'verb' => 'GET'], 31 | # Routes for authorization successful message 32 | ['name' => 'page#authorizationSuccessful', 'url' => '/authorization-successful', 'verb' => 'GET'], 33 | # Routes for admin settings 34 | ['name' => 'settings#addClient', 'url' => '/clients', 'verb' => 'POST'], 35 | ['name' => 'settings#deleteClient', 'url' => '/clients/{id}/delete', 'verb' => 'POST'], 36 | # Routes for personal settings 37 | ['name' => 'settings#revokeAuthorization', 'url' => '/clients/{id}/revoke', 'verb' => 'POST'] 38 | ] 39 | ]; 40 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "owncloud/oauth2", 3 | "license": "AGPL", 4 | "authors": [ 5 | { 6 | "name": "Thomas Müller", 7 | "email": "thomas.mueller@tmit.eu" 8 | } 9 | ], 10 | "config" : { 11 | "platform": { 12 | "php": "7.3" 13 | }, 14 | "allow-plugins": { 15 | "bamarni/composer-bin-plugin": true 16 | } 17 | }, 18 | "require": { 19 | "rowbot/url": "^1.1" 20 | }, 21 | "require-dev": { 22 | "bamarni/composer-bin-plugin": "^1.8" 23 | }, 24 | "extra": { 25 | "bamarni-bin": { 26 | "bin-links": false 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /css/authorization.css: -------------------------------------------------------------------------------- 1 | button { 2 | width: 100%; 3 | font-size: larger; 4 | } 5 | -------------------------------------------------------------------------------- /css/login.css: -------------------------------------------------------------------------------- 1 | #body-login .icon-info-white { 2 | display: inline; 3 | } 4 | -------------------------------------------------------------------------------- /css/main.css: -------------------------------------------------------------------------------- 1 | .form-inline { 2 | display: inline; 3 | } 4 | -------------------------------------------------------------------------------- /css/settings-admin.css: -------------------------------------------------------------------------------- 1 | #td-allow-subdomains { 2 | text-align: center; 3 | } 4 | -------------------------------------------------------------------------------- /img/app.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /js/login.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author Thomas Müller 3 | * 4 | * @copyright Copyright (c) 2017, ownCloud GmbH 5 | * @license AGPL-3.0 6 | * 7 | * This code is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU Affero General Public License, version 3, 9 | * as published by the Free Software Foundation. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Affero General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Affero General Public License, version 3, 17 | * along with this program. If not, see 18 | * 19 | */ 20 | 21 | $(document).ready(function(){ 22 | var $loginMessage = $('#body-login').find('#message'); 23 | if ($loginMessage.length) { 24 | var data = $("data[key='oauth2']"); 25 | var msg = t('oauth2', 'The application "{app}" is requesting access to your account. To authorize it, please log in first.', {app : data.attr('client')}); 26 | $loginMessage.parent().append('
'+msg+'
'); 27 | var login_hint = data.attr('login_hint'); 28 | if (login_hint) { 29 | $('#user') 30 | .val(login_hint); 31 | $('#password') 32 | .val('') 33 | .get(0).focus(); 34 | } 35 | } 36 | }); 37 | -------------------------------------------------------------------------------- /js/settings-admin.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function () { 2 | $('#oauth2').on('click', '.grid .icon-delete', function (event) { 3 | event.preventDefault(); 4 | OC.msg.startAction('#oauth2_save_msg', t('oauth2', 'Deleting...')); 5 | $.post( 6 | OC.generateUrl('apps/oauth2/clients/{id}/delete', {id: $(this).data('id')}), 7 | {}, 8 | function (data) { 9 | OC.msg.finishedAction('#oauth2_save_msg', data); 10 | if (data.errorMessage) { 11 | OC.Notification.showTemporary(data.errorMessage); 12 | } else if (data.clientIdentifier) { 13 | $('.oauth2-identifier').filter(function () { 14 | return $(this).text() === data.clientIdentifier; 15 | }).parents('tr').first().remove(); 16 | if ($('.grid .oauth2-identifier').length === 0) { 17 | $('#oauth2 .no-clients-message').removeClass('hidden'); 18 | $('#oauth2 .grid').addClass('hidden'); 19 | } 20 | } 21 | } 22 | ); 23 | }); 24 | $('#oauth2_submit').on('click', function (event){ 25 | event.preventDefault(); 26 | OC.msg.startAction('#oauth2_save_msg', t('oauth2', 'Saving...')); 27 | $.post( 28 | OC.generateUrl('apps/oauth2/clients'), 29 | $('#oauth2-new-client').serializeArray(), 30 | function (data) { 31 | OC.msg.finishedAction('#oauth2_save_msg', data); 32 | if (data.errorMessage) { 33 | OC.Notification.showTemporary(data.errorMessage); 34 | } else { 35 | $('#oauth2 .grid').removeClass('hidden'); 36 | $('#oauth2 .no-clients-message').addClass('hidden'); 37 | $('#oauth2 .grid tbody').append(data.rowHtml); 38 | $('#oauth2 input[name="name"]').val(''); 39 | $('#oauth2 input[name="redirect_uri"]').val(''); 40 | $('#oauth2 input[name="allow_subdomains"]').prop('checked', false); 41 | } 42 | } 43 | ); 44 | }); 45 | }); 46 | -------------------------------------------------------------------------------- /js/settings.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author Project Seminar "sciebo@Learnweb" of the University of Muenster 3 | * @copyright Copyright (c) 2017, University of Muenster 4 | * @license AGPL-3.0 5 | * 6 | * This code is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU Affero General Public License, version 3, 8 | * as published by the Free Software Foundation. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU Affero General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Affero General Public License, version 3, 16 | * along with this program. If not, see 17 | */ 18 | 19 | $(document).ready(function () { 20 | var elements = document.querySelectorAll('.delete'); 21 | 22 | for (var i = 0; i < elements.length; i++) { 23 | elements[i].addEventListener('submit', function (event) { 24 | event.preventDefault(); 25 | if (confirm(this.getAttribute('data-confirm'))) { 26 | this.submit(); 27 | } 28 | }, false); 29 | } 30 | }); 31 | -------------------------------------------------------------------------------- /js/switch-user.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author Thomas Müller 3 | * 4 | * @copyright Copyright (c) 2017, ownCloud GmbH 5 | * @license AGPL-3.0 6 | * 7 | * This code is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU Affero General Public License, version 3, 9 | * as published by the Free Software Foundation. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Affero General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Affero General Public License, version 3, 17 | * along with this program. If not, see 18 | * 19 | */ 20 | 21 | $(document).ready(function(){ 22 | $('.hasTooltip').tooltip(); 23 | }); 24 | -------------------------------------------------------------------------------- /l10n/.tx/config: -------------------------------------------------------------------------------- 1 | [main] 2 | host = https://www.transifex.com 3 | lang_map = ja_JP: ja 4 | 5 | [o:owncloud-org:p:owncloud:r:oauth2] 6 | file_filter = /oauth2.po 7 | source_file = templates/oauth2.pot 8 | source_lang = en 9 | type = PO 10 | -------------------------------------------------------------------------------- /l10n/af_ZA.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "Die toepassing “{app}” versoek toegang tot u rekening. Teken aan om dit te magtig.", 5 | "Saving..." : "Bewaar tans…", 6 | "The application was authorized successfully. You can now close this window." : "Die toepassing is suksesvol gemagtig. U kan hierdie venster nou sluit.", 7 | "Request not valid" : "Versoek is ongeldig", 8 | "This request is not valid. Please contact the administrator if this error persists." : "Hierdie versoek is ongeldig. Kontak die administrateur indien hierdie fout voortduur.", 9 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Hierdie versoek is ongeldig. Kontak die administrateur van “%s” indien hierdie fout voortduur.", 10 | "The “%s“ application would like permission to access your account" : "Die “%s”-toepassing versoek toestemming om toegang tot u rekening te verkry", 11 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Die toepassing sal toegang tot u gebruikersnaam verkry en sal toegelaat word om lêers, vouers en delings te bestuur.", 12 | "Authorize" : "Magtig", 13 | "Switch users to continue" : "Wissel gebruikers om voort te gaan", 14 | "OAuth 2.0" : "OAuth 2.0", 15 | "Registered clients" : "Geregistreerde kliënte", 16 | "No clients registered." : "Geen kliënte geregistreer.", 17 | "Name" : "Naam", 18 | "Redirection URI" : "Herleidings-URI", 19 | "Client Identifier" : "Kliëntidentifiseerder", 20 | "Secret" : "Geheim", 21 | "Subdomains allowed" : "Subdomeine toegestaan", 22 | "Add client" : "Voeg kliënt toe", 23 | "Allow subdomains" : "Staan subdomeine toe", 24 | "Add" : "Voeg by", 25 | "Authorized Applications" : "Gemagtigde Toepassings", 26 | "No applications authorized." : "Geen toepassings gemagtig.", 27 | "Are you sure you want to delete this item?" : "Is u seker u wil hierdie item skrap?", 28 | "Switch user" : "Wissel gebruiker", 29 | "You are logged in as %s but the application requested access for user %s." : "U is as %s aangeteken maar die toepassing versoek toegang van gebruiker %s." 30 | }, 31 | "nplurals=2; plural=(n != 1);"); 32 | -------------------------------------------------------------------------------- /l10n/af_ZA.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "Die toepassing “{app}” versoek toegang tot u rekening. Teken aan om dit te magtig.", 3 | "Saving..." : "Bewaar tans…", 4 | "The application was authorized successfully. You can now close this window." : "Die toepassing is suksesvol gemagtig. U kan hierdie venster nou sluit.", 5 | "Request not valid" : "Versoek is ongeldig", 6 | "This request is not valid. Please contact the administrator if this error persists." : "Hierdie versoek is ongeldig. Kontak die administrateur indien hierdie fout voortduur.", 7 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Hierdie versoek is ongeldig. Kontak die administrateur van “%s” indien hierdie fout voortduur.", 8 | "The “%s“ application would like permission to access your account" : "Die “%s”-toepassing versoek toestemming om toegang tot u rekening te verkry", 9 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Die toepassing sal toegang tot u gebruikersnaam verkry en sal toegelaat word om lêers, vouers en delings te bestuur.", 10 | "Authorize" : "Magtig", 11 | "Switch users to continue" : "Wissel gebruikers om voort te gaan", 12 | "OAuth 2.0" : "OAuth 2.0", 13 | "Registered clients" : "Geregistreerde kliënte", 14 | "No clients registered." : "Geen kliënte geregistreer.", 15 | "Name" : "Naam", 16 | "Redirection URI" : "Herleidings-URI", 17 | "Client Identifier" : "Kliëntidentifiseerder", 18 | "Secret" : "Geheim", 19 | "Subdomains allowed" : "Subdomeine toegestaan", 20 | "Add client" : "Voeg kliënt toe", 21 | "Allow subdomains" : "Staan subdomeine toe", 22 | "Add" : "Voeg by", 23 | "Authorized Applications" : "Gemagtigde Toepassings", 24 | "No applications authorized." : "Geen toepassings gemagtig.", 25 | "Are you sure you want to delete this item?" : "Is u seker u wil hierdie item skrap?", 26 | "Switch user" : "Wissel gebruiker", 27 | "You are logged in as %s but the application requested access for user %s." : "U is as %s aangeteken maar die toepassing versoek toegang van gebruiker %s." 28 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 29 | } -------------------------------------------------------------------------------- /l10n/ar.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "يطلب التطبيق \"{app}\" حق الوصول إلى حسابك. لمصادقته، يُرجى تسجيل الدخول أولًا.", 5 | "Deleting..." : "جارٍ الحذف...", 6 | "Saving..." : "جارٍ الحفظ...", 7 | "Name must not be empty" : "يجب ألا يكون الاسم فارغًا", 8 | "Redirect URI must not be empty" : "يجب ألا يكون عنوان URI إعادة التوجيه فارغًا", 9 | "Redirect URI must be a valid URL" : "يجب أن يكون عنوان URI إعادة التوجيه صالحًا", 10 | "Name %s already exists" : "اسم %s موجود بالفعل", 11 | "Client id must be a number" : "يجب أن يكون مُعرِّف العميل رقمًا", 12 | "The application was authorized successfully. You can now close this window." : "تمت مصادقة التطبيق بنجاح. يمكنك إغلاق هذه النافذة الآن.", 13 | "Request not valid" : "الطلب غير صالح", 14 | "This request is not valid. Please contact the administrator if this error persists." : "هذا الطلب غير صالح. يُرجى الاتصال بالمسؤول إذا استمر هذا الخطأ.", 15 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "هذا الطلب غير صالح. يُرجى الاتصال بمسؤول '%s' إذا استمر هذا الخطأ.", 16 | "The “%s“ application would like permission to access your account" : "سيطلب التطبيق '%s' الحصول على إذن للوصول إلى حسابك", 17 | "You are logged in as %s." : "أنت سجلت الدخول بصفتك %s.", 18 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "سيحصل التطبيق على حق الوصول إلى اسم المستخدم الخاص بك، وسيُسمح له بإدارة الملفات والمجلدات والمشاركات.", 19 | "Authorize" : "مصادقة", 20 | "Switch users to continue" : "تبديل المستخدمين للمتابعة", 21 | "OAuth 2.0" : "OAuth 2.0", 22 | "Registered clients" : "العملاء المسجلون", 23 | "No clients registered." : "لم يتم تسجيل أي عميل.", 24 | "Name" : "الاسم", 25 | "Redirection URI" : "عنوان URI إعادة التوجيه", 26 | "Client Identifier" : "مُعرِّف العميل", 27 | "Secret" : "سر", 28 | "Subdomains allowed" : "المجالات الفرعية المسموح بها", 29 | "Add client" : "إضافة عميل", 30 | "Allow subdomains" : "السماح بالمجالات الفرعية", 31 | "Add" : "إضافة", 32 | "Authorized Applications" : "التطبيقات التي تمت مصادقتها", 33 | "No applications authorized." : "لا توجد أي تطبيقات تمت مصادقتها.", 34 | "Are you sure you want to delete this item?" : "هل تريد بالتأكيد حذف هذا العنصر؟", 35 | "Switch user" : "تبديل المستخدم", 36 | "You are logged in as %s but the application requested access for user %s." : "لقد سجَّلت الدخول بصفة %s لكن التطبيق طلب حق الوصول للمستخدم %s." 37 | }, 38 | "nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"); 39 | -------------------------------------------------------------------------------- /l10n/ar.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "يطلب التطبيق \"{app}\" حق الوصول إلى حسابك. لمصادقته، يُرجى تسجيل الدخول أولًا.", 3 | "Deleting..." : "جارٍ الحذف...", 4 | "Saving..." : "جارٍ الحفظ...", 5 | "Name must not be empty" : "يجب ألا يكون الاسم فارغًا", 6 | "Redirect URI must not be empty" : "يجب ألا يكون عنوان URI إعادة التوجيه فارغًا", 7 | "Redirect URI must be a valid URL" : "يجب أن يكون عنوان URI إعادة التوجيه صالحًا", 8 | "Name %s already exists" : "اسم %s موجود بالفعل", 9 | "Client id must be a number" : "يجب أن يكون مُعرِّف العميل رقمًا", 10 | "The application was authorized successfully. You can now close this window." : "تمت مصادقة التطبيق بنجاح. يمكنك إغلاق هذه النافذة الآن.", 11 | "Request not valid" : "الطلب غير صالح", 12 | "This request is not valid. Please contact the administrator if this error persists." : "هذا الطلب غير صالح. يُرجى الاتصال بالمسؤول إذا استمر هذا الخطأ.", 13 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "هذا الطلب غير صالح. يُرجى الاتصال بمسؤول '%s' إذا استمر هذا الخطأ.", 14 | "The “%s“ application would like permission to access your account" : "سيطلب التطبيق '%s' الحصول على إذن للوصول إلى حسابك", 15 | "You are logged in as %s." : "أنت سجلت الدخول بصفتك %s.", 16 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "سيحصل التطبيق على حق الوصول إلى اسم المستخدم الخاص بك، وسيُسمح له بإدارة الملفات والمجلدات والمشاركات.", 17 | "Authorize" : "مصادقة", 18 | "Switch users to continue" : "تبديل المستخدمين للمتابعة", 19 | "OAuth 2.0" : "OAuth 2.0", 20 | "Registered clients" : "العملاء المسجلون", 21 | "No clients registered." : "لم يتم تسجيل أي عميل.", 22 | "Name" : "الاسم", 23 | "Redirection URI" : "عنوان URI إعادة التوجيه", 24 | "Client Identifier" : "مُعرِّف العميل", 25 | "Secret" : "سر", 26 | "Subdomains allowed" : "المجالات الفرعية المسموح بها", 27 | "Add client" : "إضافة عميل", 28 | "Allow subdomains" : "السماح بالمجالات الفرعية", 29 | "Add" : "إضافة", 30 | "Authorized Applications" : "التطبيقات التي تمت مصادقتها", 31 | "No applications authorized." : "لا توجد أي تطبيقات تمت مصادقتها.", 32 | "Are you sure you want to delete this item?" : "هل تريد بالتأكيد حذف هذا العنصر؟", 33 | "Switch user" : "تبديل المستخدم", 34 | "You are logged in as %s but the application requested access for user %s." : "لقد سجَّلت الدخول بصفة %s لكن التطبيق طلب حق الوصول للمستخدم %s." 35 | },"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;" 36 | } -------------------------------------------------------------------------------- /l10n/ca.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "La aplicació \"{app}\" demana accés al teu compte. Per autoritzar-ho, si us plau, primer entra al teu compte.", 5 | "Deleting..." : "Suprimint ...", 6 | "Saving..." : "Desant...", 7 | "Name must not be empty" : "El nom no pot estar buit", 8 | "Redirect URI must not be empty" : "L'URI de redirecció no pot estar buit", 9 | "Redirect URI must be a valid URL" : "L'URI de redirecció ha de ser un URL vàlida", 10 | "Name %s already exists" : "El nom %s ja existeix", 11 | "Client id must be a number" : "L'identificador de client ha de ser un número", 12 | "The application was authorized successfully. You can now close this window." : "L'aplicació s'ha autoritzat correctament. Ara podeu tancar aquesta finestra.", 13 | "Request not valid" : "La sol·licitud no és vàlida", 14 | "This request is not valid. Please contact the administrator if this error persists." : "Aquesta sol·licitud no és vàlida. Poseu-vos en contacte amb l'administrador si aquest error persisteix.", 15 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Aquesta sol·licitud no és vàlida. Poseu-vos en contacte amb l'administrador de “%s” si aquest error persisteix.", 16 | "The “%s“ application would like permission to access your account" : "L'aplicació “%s“ vol obtenir permís per accedir al vostre compte.", 17 | "You are logged in as %s." : "Heu iniciat la sessió com a %s.", 18 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "L'aplicació tindrà accés al vostre nom d'usuari i se li permetrà gestionar fitxers, carpetes i recursos compartits.", 19 | "Authorize" : "Autoritzar", 20 | "Switch users to continue" : "Canvieu els usuaris per continuar", 21 | "OAuth 2.0" : "OAuth 2.0", 22 | "Registered clients" : "Clients registrats", 23 | "No clients registered." : "No hi ha cap client registrat.", 24 | "Name" : "Nom", 25 | "Redirection URI" : "URI de redirecció", 26 | "Client Identifier" : "Identificador de client", 27 | "Secret" : "Secret", 28 | "Subdomains allowed" : "Subdominis permesos", 29 | "Add client" : "Afegeix client", 30 | "Allow subdomains" : "Permetre subdominis", 31 | "Add" : "Afegeix", 32 | "Authorized Applications" : "Aplicacions autoritzades", 33 | "No applications authorized." : "No hi ha cap aplicació autoritzada.", 34 | "Are you sure you want to delete this item?" : "Esteu segur que voleu suprimir aquest element?", 35 | "Switch user" : "Canviar d'usuari", 36 | "You are logged in as %s but the application requested access for user %s." : "Heu iniciat la sessió com a %s però l'aplicació sol·licitava accés a l'usuari %s." 37 | }, 38 | "nplurals=2; plural=(n != 1);"); 39 | -------------------------------------------------------------------------------- /l10n/ca.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "La aplicació \"{app}\" demana accés al teu compte. Per autoritzar-ho, si us plau, primer entra al teu compte.", 3 | "Deleting..." : "Suprimint ...", 4 | "Saving..." : "Desant...", 5 | "Name must not be empty" : "El nom no pot estar buit", 6 | "Redirect URI must not be empty" : "L'URI de redirecció no pot estar buit", 7 | "Redirect URI must be a valid URL" : "L'URI de redirecció ha de ser un URL vàlida", 8 | "Name %s already exists" : "El nom %s ja existeix", 9 | "Client id must be a number" : "L'identificador de client ha de ser un número", 10 | "The application was authorized successfully. You can now close this window." : "L'aplicació s'ha autoritzat correctament. Ara podeu tancar aquesta finestra.", 11 | "Request not valid" : "La sol·licitud no és vàlida", 12 | "This request is not valid. Please contact the administrator if this error persists." : "Aquesta sol·licitud no és vàlida. Poseu-vos en contacte amb l'administrador si aquest error persisteix.", 13 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Aquesta sol·licitud no és vàlida. Poseu-vos en contacte amb l'administrador de “%s” si aquest error persisteix.", 14 | "The “%s“ application would like permission to access your account" : "L'aplicació “%s“ vol obtenir permís per accedir al vostre compte.", 15 | "You are logged in as %s." : "Heu iniciat la sessió com a %s.", 16 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "L'aplicació tindrà accés al vostre nom d'usuari i se li permetrà gestionar fitxers, carpetes i recursos compartits.", 17 | "Authorize" : "Autoritzar", 18 | "Switch users to continue" : "Canvieu els usuaris per continuar", 19 | "OAuth 2.0" : "OAuth 2.0", 20 | "Registered clients" : "Clients registrats", 21 | "No clients registered." : "No hi ha cap client registrat.", 22 | "Name" : "Nom", 23 | "Redirection URI" : "URI de redirecció", 24 | "Client Identifier" : "Identificador de client", 25 | "Secret" : "Secret", 26 | "Subdomains allowed" : "Subdominis permesos", 27 | "Add client" : "Afegeix client", 28 | "Allow subdomains" : "Permetre subdominis", 29 | "Add" : "Afegeix", 30 | "Authorized Applications" : "Aplicacions autoritzades", 31 | "No applications authorized." : "No hi ha cap aplicació autoritzada.", 32 | "Are you sure you want to delete this item?" : "Esteu segur que voleu suprimir aquest element?", 33 | "Switch user" : "Canviar d'usuari", 34 | "You are logged in as %s but the application requested access for user %s." : "Heu iniciat la sessió com a %s però l'aplicació sol·licitava accés a l'usuari %s." 35 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 36 | } -------------------------------------------------------------------------------- /l10n/cs_CZ.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "Aplikace \"{app}\" vyžaduje přístup k Vašemu účtu. K jejímu povolení se nejprve přihlaste.", 5 | "Deleting..." : "Mažu...", 6 | "Saving..." : "Ukládám...", 7 | "Name must not be empty" : "Jméno nesmí být prázdné", 8 | "Redirect URI must not be empty" : "Adresa přesměrování nesmí být prázdná", 9 | "Redirect URI must be a valid URL" : "Adresa přesměrování musí být platnou URL adresou", 10 | "Name %s already exists" : "Jméno %s již existuje", 11 | "Client id must be a number" : "Client id musí být číslo", 12 | "The application was authorized successfully. You can now close this window." : "Aplikace byla úspěšně autorizována. Můžete nyní zavřít toto okno.", 13 | "Request not valid" : "Neplatný požadavek", 14 | "This request is not valid. Please contact the administrator if this error persists." : "Neplatný požadavek. Prosím kontaktujte administrátora, pokud chyba přetrvává.", 15 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Neplatný požadavek. Prosím kontaktujte administrátora z \"%s\", pokud chyba přetrvává.", 16 | "The “%s“ application would like permission to access your account" : "Aplikace \"%s\" vyžaduje přístup k Vašemu účtu", 17 | "You are logged in as %s." : "Jste přihlášen jako %s.", 18 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Aplikace získá přístup vaším uživatelským jménem a bude moci spravovat soubory, složky a sdílení.", 19 | "Authorize" : "Povolit", 20 | "Switch users to continue" : "Přepnout uživatele pro pokračování", 21 | "OAuth 2.0" : "OAuth 2.0", 22 | "Registered clients" : "Registrovaní klienti", 23 | "No clients registered." : "Žádní registrovaní klienti.", 24 | "Name" : "Název", 25 | "Redirection URI" : "Přesměrování URI", 26 | "Client Identifier" : "Identifikátor klienta", 27 | "Secret" : "Tajemství", 28 | "Subdomains allowed" : "Subdomény povoleny", 29 | "Add client" : "Přidat klienta", 30 | "Allow subdomains" : "Povolené subdomény", 31 | "Add" : "Přidat", 32 | "Authorized Applications" : "Povolené aplikace", 33 | "No applications authorized." : "Žádné povolené aplikace", 34 | "Are you sure you want to delete this item?" : "Jste si jistí, že chcete tyto položky smazat?", 35 | "Switch user" : "Přepnout uživatele", 36 | "You are logged in as %s but the application requested access for user %s." : "Jste přihlášen jako %s ale aplikace je vyžaduje oprávnění uživatele %s." 37 | }, 38 | "nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"); 39 | -------------------------------------------------------------------------------- /l10n/cs_CZ.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "Aplikace \"{app}\" vyžaduje přístup k Vašemu účtu. K jejímu povolení se nejprve přihlaste.", 3 | "Deleting..." : "Mažu...", 4 | "Saving..." : "Ukládám...", 5 | "Name must not be empty" : "Jméno nesmí být prázdné", 6 | "Redirect URI must not be empty" : "Adresa přesměrování nesmí být prázdná", 7 | "Redirect URI must be a valid URL" : "Adresa přesměrování musí být platnou URL adresou", 8 | "Name %s already exists" : "Jméno %s již existuje", 9 | "Client id must be a number" : "Client id musí být číslo", 10 | "The application was authorized successfully. You can now close this window." : "Aplikace byla úspěšně autorizována. Můžete nyní zavřít toto okno.", 11 | "Request not valid" : "Neplatný požadavek", 12 | "This request is not valid. Please contact the administrator if this error persists." : "Neplatný požadavek. Prosím kontaktujte administrátora, pokud chyba přetrvává.", 13 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Neplatný požadavek. Prosím kontaktujte administrátora z \"%s\", pokud chyba přetrvává.", 14 | "The “%s“ application would like permission to access your account" : "Aplikace \"%s\" vyžaduje přístup k Vašemu účtu", 15 | "You are logged in as %s." : "Jste přihlášen jako %s.", 16 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Aplikace získá přístup vaším uživatelským jménem a bude moci spravovat soubory, složky a sdílení.", 17 | "Authorize" : "Povolit", 18 | "Switch users to continue" : "Přepnout uživatele pro pokračování", 19 | "OAuth 2.0" : "OAuth 2.0", 20 | "Registered clients" : "Registrovaní klienti", 21 | "No clients registered." : "Žádní registrovaní klienti.", 22 | "Name" : "Název", 23 | "Redirection URI" : "Přesměrování URI", 24 | "Client Identifier" : "Identifikátor klienta", 25 | "Secret" : "Tajemství", 26 | "Subdomains allowed" : "Subdomény povoleny", 27 | "Add client" : "Přidat klienta", 28 | "Allow subdomains" : "Povolené subdomény", 29 | "Add" : "Přidat", 30 | "Authorized Applications" : "Povolené aplikace", 31 | "No applications authorized." : "Žádné povolené aplikace", 32 | "Are you sure you want to delete this item?" : "Jste si jistí, že chcete tyto položky smazat?", 33 | "Switch user" : "Přepnout uživatele", 34 | "You are logged in as %s but the application requested access for user %s." : "Jste přihlášen jako %s ale aplikace je vyžaduje oprávnění uživatele %s." 35 | },"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;" 36 | } -------------------------------------------------------------------------------- /l10n/da.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "Applikationen \"app\" beder om adgang til din konto. For at tillade det log venligst først ind.", 5 | "The application was authorized successfully. You can now close this window." : "Applikationen var succesfuldt autoriseret. Du kan nu lukke dette vindue.", 6 | "Request not valid" : "Andmodning ugyldig", 7 | "This request is not valid. Please contact the administrator if this error persists." : "Denne forespørgsel er ugyldig. Kontakt venligst administratoren hvis denne fejl gentager sig. ", 8 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Denne forespørgsel er ugyldig. Kontakt venligst administratoren af \"%s\" hvis denne fejl gentager sig. ", 9 | "The “%s“ application would like permission to access your account" : "\"%s\"-applikationen beder om adgang til din konto.", 10 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Applikationen vil få adgang til dit brugernavn og har tilladelse til at administrere filer, mapper og delinger.", 11 | "Authorize" : "Autoriser", 12 | "OAuth 2.0" : "OAuth 2.0", 13 | "Registered clients" : "Registreride klienter", 14 | "No clients registered." : "Ingen klienter registreret.", 15 | "Name" : "Navn", 16 | "Redirection URI" : "Omdirigerings-URL", 17 | "Client Identifier" : "Klientidentifikator", 18 | "Secret" : "Hemmelighed", 19 | "Subdomains allowed" : "underdomæner tilladt", 20 | "Are you sure you want to delete this item?" : "Er du sikker på, at du vil slette dette objekt?", 21 | "Add client" : "Tilføj klient", 22 | "Allow subdomains" : "Tillad subdomæner", 23 | "Add" : "Tilføj", 24 | "Authorized Applications" : "Autoriser Applikationer", 25 | "No applications authorized." : "Ingen applikationer autoriseret. ", 26 | "Switch user" : "Skift bruger" 27 | }, 28 | "nplurals=2; plural=(n != 1);"); 29 | -------------------------------------------------------------------------------- /l10n/da.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "Applikationen \"app\" beder om adgang til din konto. For at tillade det log venligst først ind.", 3 | "The application was authorized successfully. You can now close this window." : "Applikationen var succesfuldt autoriseret. Du kan nu lukke dette vindue.", 4 | "Request not valid" : "Andmodning ugyldig", 5 | "This request is not valid. Please contact the administrator if this error persists." : "Denne forespørgsel er ugyldig. Kontakt venligst administratoren hvis denne fejl gentager sig. ", 6 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Denne forespørgsel er ugyldig. Kontakt venligst administratoren af \"%s\" hvis denne fejl gentager sig. ", 7 | "The “%s“ application would like permission to access your account" : "\"%s\"-applikationen beder om adgang til din konto.", 8 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Applikationen vil få adgang til dit brugernavn og har tilladelse til at administrere filer, mapper og delinger.", 9 | "Authorize" : "Autoriser", 10 | "OAuth 2.0" : "OAuth 2.0", 11 | "Registered clients" : "Registreride klienter", 12 | "No clients registered." : "Ingen klienter registreret.", 13 | "Name" : "Navn", 14 | "Redirection URI" : "Omdirigerings-URL", 15 | "Client Identifier" : "Klientidentifikator", 16 | "Secret" : "Hemmelighed", 17 | "Subdomains allowed" : "underdomæner tilladt", 18 | "Are you sure you want to delete this item?" : "Er du sikker på, at du vil slette dette objekt?", 19 | "Add client" : "Tilføj klient", 20 | "Allow subdomains" : "Tillad subdomæner", 21 | "Add" : "Tilføj", 22 | "Authorized Applications" : "Autoriser Applikationer", 23 | "No applications authorized." : "Ingen applikationer autoriseret. ", 24 | "Switch user" : "Skift bruger" 25 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 26 | } -------------------------------------------------------------------------------- /l10n/de_CH.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "Die Anwendung \"{app}\" erfordert den Zugriff auf dein Konto. Zur Genehmigung bitte erst anmelden.", 5 | "Deleting..." : "Löschvorgang...", 6 | "Saving..." : "Speichervorgang…", 7 | "Name must not be empty" : "Name darf nicht leer sein.", 8 | "Redirect URI must not be empty" : "Redirect URI darf nicht leer sein", 9 | "Redirect URI must be a valid URL" : "Redirect URI muss eine valide URL sein", 10 | "Name %s already exists" : "Name %s existiert bereits", 11 | "Client id must be a number" : "Client id muss eine Nummer sein", 12 | "The application was authorized successfully. You can now close this window." : "Die Anwendung wurde erfolgreich autorisiert. Du kannst das Fenster nun schliessen.", 13 | "Request not valid" : "Anfrage nicht gültig", 14 | "This request is not valid. Please contact the administrator if this error persists." : "Diese Anfrage ist nicht gültig. Bitte kontaktiere den Administrator, wenn der Fehler weiterhin erscheint.", 15 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Diese Anfrage ist nicht gültig. Bitte kontaktiere den Administrator von \"%s\", wenn der Fehler weiterhin erscheint.", 16 | "The “%s“ application would like permission to access your account" : "Die \"%s\"-Anwendung möchte die Genehmigung zum Zugriff auf dein Konto", 17 | "You are logged in as %s." : "Du bist eingeloggt als %s.", 18 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Die Anwendung erhält Zugriff auf Ihren Benutzernamen und die Erlaubnis, Ihre Dateien, Ordner und geteilten Inhalte zu verwalten.", 19 | "Authorize" : "Autorisieren", 20 | "Switch users to continue" : "Benutzer wechseln, um fortzufahren", 21 | "OAuth 2.0" : "OAuth 2.0", 22 | "Registered clients" : "Angelegte Clients", 23 | "No clients registered." : "Keine Clients angelegt.", 24 | "Name" : "Name", 25 | "Redirection URI" : "URI weiterleiten", 26 | "Client Identifier" : "Client ID", 27 | "Secret" : "Secret", 28 | "Subdomains allowed" : "Subdomains erlaubt", 29 | "Add client" : "Client hinzufügen", 30 | "Allow subdomains" : "Subdomains erlauben", 31 | "Add" : "Hinzufügen", 32 | "Authorized Applications" : "Autorisierte Anwendungen", 33 | "No applications authorized." : "Keine Anwendungen autorisiert.", 34 | "Are you sure you want to delete this item?" : "Möchten Sie das Objekt wirklich löschen?", 35 | "Switch user" : "Benutzer wechseln", 36 | "You are logged in as %s but the application requested access for user %s." : "Du bist als %s angemeldet, die Anwendung benötigt aber Zugriff auf den Benutzer %s." 37 | }, 38 | "nplurals=2; plural=(n != 1);"); 39 | -------------------------------------------------------------------------------- /l10n/de_CH.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "Die Anwendung \"{app}\" erfordert den Zugriff auf dein Konto. Zur Genehmigung bitte erst anmelden.", 3 | "Deleting..." : "Löschvorgang...", 4 | "Saving..." : "Speichervorgang…", 5 | "Name must not be empty" : "Name darf nicht leer sein.", 6 | "Redirect URI must not be empty" : "Redirect URI darf nicht leer sein", 7 | "Redirect URI must be a valid URL" : "Redirect URI muss eine valide URL sein", 8 | "Name %s already exists" : "Name %s existiert bereits", 9 | "Client id must be a number" : "Client id muss eine Nummer sein", 10 | "The application was authorized successfully. You can now close this window." : "Die Anwendung wurde erfolgreich autorisiert. Du kannst das Fenster nun schliessen.", 11 | "Request not valid" : "Anfrage nicht gültig", 12 | "This request is not valid. Please contact the administrator if this error persists." : "Diese Anfrage ist nicht gültig. Bitte kontaktiere den Administrator, wenn der Fehler weiterhin erscheint.", 13 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Diese Anfrage ist nicht gültig. Bitte kontaktiere den Administrator von \"%s\", wenn der Fehler weiterhin erscheint.", 14 | "The “%s“ application would like permission to access your account" : "Die \"%s\"-Anwendung möchte die Genehmigung zum Zugriff auf dein Konto", 15 | "You are logged in as %s." : "Du bist eingeloggt als %s.", 16 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Die Anwendung erhält Zugriff auf Ihren Benutzernamen und die Erlaubnis, Ihre Dateien, Ordner und geteilten Inhalte zu verwalten.", 17 | "Authorize" : "Autorisieren", 18 | "Switch users to continue" : "Benutzer wechseln, um fortzufahren", 19 | "OAuth 2.0" : "OAuth 2.0", 20 | "Registered clients" : "Angelegte Clients", 21 | "No clients registered." : "Keine Clients angelegt.", 22 | "Name" : "Name", 23 | "Redirection URI" : "URI weiterleiten", 24 | "Client Identifier" : "Client ID", 25 | "Secret" : "Secret", 26 | "Subdomains allowed" : "Subdomains erlaubt", 27 | "Add client" : "Client hinzufügen", 28 | "Allow subdomains" : "Subdomains erlauben", 29 | "Add" : "Hinzufügen", 30 | "Authorized Applications" : "Autorisierte Anwendungen", 31 | "No applications authorized." : "Keine Anwendungen autorisiert.", 32 | "Are you sure you want to delete this item?" : "Möchten Sie das Objekt wirklich löschen?", 33 | "Switch user" : "Benutzer wechseln", 34 | "You are logged in as %s but the application requested access for user %s." : "Du bist als %s angemeldet, die Anwendung benötigt aber Zugriff auf den Benutzer %s." 35 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 36 | } -------------------------------------------------------------------------------- /l10n/en_GB.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "The application \"{app}\" is requesting access to your account. To authorise it, please log in first.", 5 | "Deleting..." : "Deleting...", 6 | "Saving..." : "Saving...", 7 | "Name must not be empty" : "Name must not be empty", 8 | "Redirect URI must not be empty" : "Redirect URI must not be empty", 9 | "Redirect URI must be a valid URL" : "Redirect URI must be a valid URL", 10 | "Name %s already exists" : "Name %s already exists", 11 | "Cannot set localhost as trusted." : "Cannot set localhost as trusted.", 12 | "Client id must be a number" : "Client id must be a number", 13 | "The application was authorized successfully. You can now close this window." : "The application was authorised successfully. You can now close this window.", 14 | "Request not valid" : "Request not valid", 15 | "This request is not valid. Please contact the administrator if this error persists." : "This request is not valid. Please contact the administrator if this error persists.", 16 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "This request is not valid. Please contact the administrator of “%s” if this error persists.", 17 | "The “%s“ application would like permission to access your account" : "The “%s“ application would like permission to access your account", 18 | "You are logged in as %s." : "You are logged in as %s.", 19 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "The application will gain access to your username and will be allowed to manage files, folders and shares.", 20 | "Authorize" : "Authorise", 21 | "Switch users to continue" : "Switch users to continue", 22 | "OAuth 2.0" : "OAuth 2.0", 23 | "Registered clients" : "Registered clients", 24 | "No clients registered." : "No clients registered.", 25 | "Name" : "Name", 26 | "Redirection URI" : "Redirection URI", 27 | "Client Identifier" : "Client Identifier", 28 | "Secret" : "Secret", 29 | "Subdomains allowed" : "Subdomains allowed", 30 | "Trusted client" : "Trusted client", 31 | "Add client" : "Add client", 32 | "Allow subdomains" : "Allow subdomains", 33 | "Add" : "Add", 34 | "Authorized Applications" : "Authorised Applications", 35 | "No applications authorized." : "No applications authorised.", 36 | "Are you sure you want to delete this item?" : "Are you sure you want to delete this item?", 37 | "Switch user" : "Switch user", 38 | "You are logged in as %s but the application requested access for user %s." : "You are logged in as %s but the application requested access for user %s." 39 | }, 40 | "nplurals=2; plural=(n != 1);"); 41 | -------------------------------------------------------------------------------- /l10n/en_GB.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "The application \"{app}\" is requesting access to your account. To authorise it, please log in first.", 3 | "Deleting..." : "Deleting...", 4 | "Saving..." : "Saving...", 5 | "Name must not be empty" : "Name must not be empty", 6 | "Redirect URI must not be empty" : "Redirect URI must not be empty", 7 | "Redirect URI must be a valid URL" : "Redirect URI must be a valid URL", 8 | "Name %s already exists" : "Name %s already exists", 9 | "Cannot set localhost as trusted." : "Cannot set localhost as trusted.", 10 | "Client id must be a number" : "Client id must be a number", 11 | "The application was authorized successfully. You can now close this window." : "The application was authorised successfully. You can now close this window.", 12 | "Request not valid" : "Request not valid", 13 | "This request is not valid. Please contact the administrator if this error persists." : "This request is not valid. Please contact the administrator if this error persists.", 14 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "This request is not valid. Please contact the administrator of “%s” if this error persists.", 15 | "The “%s“ application would like permission to access your account" : "The “%s“ application would like permission to access your account", 16 | "You are logged in as %s." : "You are logged in as %s.", 17 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "The application will gain access to your username and will be allowed to manage files, folders and shares.", 18 | "Authorize" : "Authorise", 19 | "Switch users to continue" : "Switch users to continue", 20 | "OAuth 2.0" : "OAuth 2.0", 21 | "Registered clients" : "Registered clients", 22 | "No clients registered." : "No clients registered.", 23 | "Name" : "Name", 24 | "Redirection URI" : "Redirection URI", 25 | "Client Identifier" : "Client Identifier", 26 | "Secret" : "Secret", 27 | "Subdomains allowed" : "Subdomains allowed", 28 | "Trusted client" : "Trusted client", 29 | "Add client" : "Add client", 30 | "Allow subdomains" : "Allow subdomains", 31 | "Add" : "Add", 32 | "Authorized Applications" : "Authorised Applications", 33 | "No applications authorized." : "No applications authorised.", 34 | "Are you sure you want to delete this item?" : "Are you sure you want to delete this item?", 35 | "Switch user" : "Switch user", 36 | "You are logged in as %s but the application requested access for user %s." : "You are logged in as %s but the application requested access for user %s." 37 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 38 | } -------------------------------------------------------------------------------- /l10n/es_MX.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "Back" : "Volver", 5 | "Do you really like to authorize the application “" : "Desea autorizar la aplicación \"", 6 | "”?" : "\"?", 7 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "La aplicación tendrá acceso a su cuenta de usuario y será capaz de administrar archivos, carpetas y elementos compartidos.", 8 | "Authorize" : "Autorizar", 9 | "Cancel" : "Cancelar", 10 | "OAuth 2.0" : "OAuth 2.0", 11 | "Registered clients" : "Clientes registrados", 12 | "No clients registered." : "No hay clientes registrados.", 13 | "Name" : "Nombre", 14 | "Client Identifier" : "Identificador del cliente", 15 | "Secret" : "Secreto", 16 | "Subdomains allowed" : "Subdominios permitidos", 17 | "Are you sure you want to delete this item?" : "¿Está seguro que desea eliminar este elemento?", 18 | "Add client" : "Agregar cliente", 19 | "Allow subdomains" : "Permitir subdominios", 20 | "Add" : "Agregar", 21 | "Authorized Applications" : "Aplicaciones autorizadas", 22 | "No applications authorized." : "No hay aplicaciones autorizadas." 23 | }, 24 | "nplurals=2; plural=(n != 1);"); 25 | -------------------------------------------------------------------------------- /l10n/es_MX.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Back" : "Volver", 3 | "Do you really like to authorize the application “" : "Desea autorizar la aplicación \"", 4 | "”?" : "\"?", 5 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "La aplicación tendrá acceso a su cuenta de usuario y será capaz de administrar archivos, carpetas y elementos compartidos.", 6 | "Authorize" : "Autorizar", 7 | "Cancel" : "Cancelar", 8 | "OAuth 2.0" : "OAuth 2.0", 9 | "Registered clients" : "Clientes registrados", 10 | "No clients registered." : "No hay clientes registrados.", 11 | "Name" : "Nombre", 12 | "Client Identifier" : "Identificador del cliente", 13 | "Secret" : "Secreto", 14 | "Subdomains allowed" : "Subdominios permitidos", 15 | "Are you sure you want to delete this item?" : "¿Está seguro que desea eliminar este elemento?", 16 | "Add client" : "Agregar cliente", 17 | "Allow subdomains" : "Permitir subdominios", 18 | "Add" : "Agregar", 19 | "Authorized Applications" : "Aplicaciones autorizadas", 20 | "No applications authorized." : "No hay aplicaciones autorizadas." 21 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 22 | } -------------------------------------------------------------------------------- /l10n/eu.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "\"{app}\" aplikazioak zure kontura atzipena eskatzen ari da. Baimena emateko saio hasi mesedez.", 5 | "Saving..." : "Gordetzen...", 6 | "The application was authorized successfully. You can now close this window." : "Aplikazioa baimendua izan da. Leiho hau itxi dezakezu.", 7 | "Request not valid" : "Eskakizun baliogabea", 8 | "This request is not valid. Please contact the administrator if this error persists." : "Eskakizun hau baliogabea da. Erroreak badirau, kudeatzailearekin harremanetan jarri mesedez.", 9 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Eskakizun hau baliogabea da. Erroreak badirau, \"%s\"-en kudeatzailearekin harremanetan jarri mesedez.", 10 | "The “%s“ application would like permission to access your account" : "\"%s\" aplikazioak zure kontua atzitzeko baimena nahi luke", 11 | "You are logged in as %s." : "%s bezala hasi duzu saioa.", 12 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Aplikazioak zure erabiltzaile baimenak lortuko ditu eta fitxategiak, karpetak eta partekatzeak kudeatu ahal izango ditu.", 13 | "Authorize" : "Baimendu", 14 | "Switch users to continue" : "Jarraitzeko erabiltzaileak aldatu", 15 | "OAuth 2.0" : "OAuth 2.0", 16 | "Registered clients" : "Bezero erregistratuak", 17 | "No clients registered." : "Ez da erregistratutako bezerorik.", 18 | "Name" : "Izena", 19 | "Redirection URI" : "Birbideratze URIa", 20 | "Client Identifier" : "Bezeroaren identifikadorea", 21 | "Secret" : "Sekretua", 22 | "Subdomains allowed" : "Azpidomeinuak onartuta", 23 | "Add client" : "Bezeroa gehitu", 24 | "Allow subdomains" : "Azpidomeinuak onartu", 25 | "Add" : "Gehitu", 26 | "Authorized Applications" : "Baimendutako Aplikazioak", 27 | "No applications authorized." : "Ez da baimendutako aplikaziorik.", 28 | "Are you sure you want to delete this item?" : "Ziur elementu hau ezabatu nahi duzula?", 29 | "Switch user" : "Erabiltzailea aldatu", 30 | "You are logged in as %s but the application requested access for user %s." : "%s bezala hasi duzu saioa baina aplikazioak %s erabiltzailearentzat eskatzen du atzipena." 31 | }, 32 | "nplurals=2; plural=(n != 1);"); 33 | -------------------------------------------------------------------------------- /l10n/eu.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "\"{app}\" aplikazioak zure kontura atzipena eskatzen ari da. Baimena emateko saio hasi mesedez.", 3 | "Saving..." : "Gordetzen...", 4 | "The application was authorized successfully. You can now close this window." : "Aplikazioa baimendua izan da. Leiho hau itxi dezakezu.", 5 | "Request not valid" : "Eskakizun baliogabea", 6 | "This request is not valid. Please contact the administrator if this error persists." : "Eskakizun hau baliogabea da. Erroreak badirau, kudeatzailearekin harremanetan jarri mesedez.", 7 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Eskakizun hau baliogabea da. Erroreak badirau, \"%s\"-en kudeatzailearekin harremanetan jarri mesedez.", 8 | "The “%s“ application would like permission to access your account" : "\"%s\" aplikazioak zure kontua atzitzeko baimena nahi luke", 9 | "You are logged in as %s." : "%s bezala hasi duzu saioa.", 10 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Aplikazioak zure erabiltzaile baimenak lortuko ditu eta fitxategiak, karpetak eta partekatzeak kudeatu ahal izango ditu.", 11 | "Authorize" : "Baimendu", 12 | "Switch users to continue" : "Jarraitzeko erabiltzaileak aldatu", 13 | "OAuth 2.0" : "OAuth 2.0", 14 | "Registered clients" : "Bezero erregistratuak", 15 | "No clients registered." : "Ez da erregistratutako bezerorik.", 16 | "Name" : "Izena", 17 | "Redirection URI" : "Birbideratze URIa", 18 | "Client Identifier" : "Bezeroaren identifikadorea", 19 | "Secret" : "Sekretua", 20 | "Subdomains allowed" : "Azpidomeinuak onartuta", 21 | "Add client" : "Bezeroa gehitu", 22 | "Allow subdomains" : "Azpidomeinuak onartu", 23 | "Add" : "Gehitu", 24 | "Authorized Applications" : "Baimendutako Aplikazioak", 25 | "No applications authorized." : "Ez da baimendutako aplikaziorik.", 26 | "Are you sure you want to delete this item?" : "Ziur elementu hau ezabatu nahi duzula?", 27 | "Switch user" : "Erabiltzailea aldatu", 28 | "You are logged in as %s but the application requested access for user %s." : "%s bezala hasi duzu saioa baina aplikazioak %s erabiltzailearentzat eskatzen du atzipena." 29 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 30 | } -------------------------------------------------------------------------------- /l10n/fi_FI.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "Back" : "Takaisin", 5 | "Do you really like to authorize the application “" : "Haluatko varmasti valtuuttaa sovelluksen “", 6 | "”?" : "”?", 7 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Sovellus saa käyttöönsä käyttäjätunnuksesi, ja se voi hallita tiedostoja, kansioita ja jakoja.", 8 | "Authorize" : "Valtuuta", 9 | "Cancel" : "Peruuta", 10 | "OAuth 2.0" : "OAuth 2.0", 11 | "Registered clients" : "Rekisteröidyt asiakkaat", 12 | "No clients registered." : "Ei rekisteröityjä asiakkaita", 13 | "Name" : "Nimi", 14 | "Client Identifier" : "Asiakkaan tunniste", 15 | "Secret" : "Salaisuus", 16 | "Subdomains allowed" : "Alidomainit sallittu", 17 | "Are you sure you want to delete this item?" : "Haluatko varmasti poistaa tämän kohteen?", 18 | "Add client" : "Lisää asiakas", 19 | "Allow subdomains" : "Salli alidomainit", 20 | "Add" : "Lisää", 21 | "Authorized Applications" : "Valtuutetut sovellukset", 22 | "No applications authorized." : "Ei valtuutettuja sovelluksia." 23 | }, 24 | "nplurals=2; plural=(n != 1);"); 25 | -------------------------------------------------------------------------------- /l10n/fi_FI.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Back" : "Takaisin", 3 | "Do you really like to authorize the application “" : "Haluatko varmasti valtuuttaa sovelluksen “", 4 | "”?" : "”?", 5 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Sovellus saa käyttöönsä käyttäjätunnuksesi, ja se voi hallita tiedostoja, kansioita ja jakoja.", 6 | "Authorize" : "Valtuuta", 7 | "Cancel" : "Peruuta", 8 | "OAuth 2.0" : "OAuth 2.0", 9 | "Registered clients" : "Rekisteröidyt asiakkaat", 10 | "No clients registered." : "Ei rekisteröityjä asiakkaita", 11 | "Name" : "Nimi", 12 | "Client Identifier" : "Asiakkaan tunniste", 13 | "Secret" : "Salaisuus", 14 | "Subdomains allowed" : "Alidomainit sallittu", 15 | "Are you sure you want to delete this item?" : "Haluatko varmasti poistaa tämän kohteen?", 16 | "Add client" : "Lisää asiakas", 17 | "Allow subdomains" : "Salli alidomainit", 18 | "Add" : "Lisää", 19 | "Authorized Applications" : "Valtuutetut sovellukset", 20 | "No applications authorized." : "Ei valtuutettuja sovelluksia." 21 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 22 | } -------------------------------------------------------------------------------- /l10n/fr.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "L'application \"{app}\" est nécessaire pour accéder à votre compte. Pour l'autoriser, veuillez d'abord vous connecter.", 5 | "Deleting..." : "Suppression en cours ...", 6 | "Saving..." : "Enregistrement...", 7 | "Name must not be empty" : "Le nom est obligatoire", 8 | "Name %s already exists" : "Le nom %s existe déjà", 9 | "The application was authorized successfully. You can now close this window." : "L'application a été autorisée avec succès. Vous pouvez maintenant fermer la fenêtre.", 10 | "Request not valid" : "Requête invalide", 11 | "This request is not valid. Please contact the administrator if this error persists." : "Cette requête est invalide. Merci de contacter l'administrateur si l'erreur persiste.", 12 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "La requête n'est pas valide. Veuillez contacter votre administrateur de \"%s\" si l'erreur persiste.", 13 | "The “%s“ application would like permission to access your account" : "L'application \"%s\" souhaiterait l'autorisation d'accéder à votre compte", 14 | "You are logged in as %s." : "Vous êtes connecté en tant que %s.", 15 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "L'application accédera à votre nom d’utilisateur et sera autorisée à gérer vos fichiers, dossiers et partages.", 16 | "Authorize" : "Autoriser", 17 | "Switch users to continue" : "Changer d'utilisateur pour continuer", 18 | "OAuth 2.0" : "OAuth 2.0", 19 | "Registered clients" : "Clients enregistrés", 20 | "No clients registered." : "Aucun client enregistré.", 21 | "Name" : "Nom", 22 | "Redirection URI" : "URI de redirection", 23 | "Client Identifier" : "Identifiant du client", 24 | "Secret" : "Secret", 25 | "Subdomains allowed" : "Sous-domaines autorisés", 26 | "Trusted client" : "Client de confiance", 27 | "Add client" : "Ajouter un client", 28 | "Allow subdomains" : "Autoriser un sous-domaine", 29 | "Add" : "Ajouter", 30 | "Authorized Applications" : "Applications autorisées", 31 | "No applications authorized." : "Aucune application autorisée.", 32 | "Are you sure you want to delete this item?" : "Êtes-vous sûr de vouloir supprimer cet élément ?", 33 | "Switch user" : "Changer d'utilisateur", 34 | "You are logged in as %s but the application requested access for user %s." : "Vous êtes connecté en tant que %s mais l'application nécessite l'accès de %s." 35 | }, 36 | "nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); 37 | -------------------------------------------------------------------------------- /l10n/fr.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "L'application \"{app}\" est nécessaire pour accéder à votre compte. Pour l'autoriser, veuillez d'abord vous connecter.", 3 | "Deleting..." : "Suppression en cours ...", 4 | "Saving..." : "Enregistrement...", 5 | "Name must not be empty" : "Le nom est obligatoire", 6 | "Name %s already exists" : "Le nom %s existe déjà", 7 | "The application was authorized successfully. You can now close this window." : "L'application a été autorisée avec succès. Vous pouvez maintenant fermer la fenêtre.", 8 | "Request not valid" : "Requête invalide", 9 | "This request is not valid. Please contact the administrator if this error persists." : "Cette requête est invalide. Merci de contacter l'administrateur si l'erreur persiste.", 10 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "La requête n'est pas valide. Veuillez contacter votre administrateur de \"%s\" si l'erreur persiste.", 11 | "The “%s“ application would like permission to access your account" : "L'application \"%s\" souhaiterait l'autorisation d'accéder à votre compte", 12 | "You are logged in as %s." : "Vous êtes connecté en tant que %s.", 13 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "L'application accédera à votre nom d’utilisateur et sera autorisée à gérer vos fichiers, dossiers et partages.", 14 | "Authorize" : "Autoriser", 15 | "Switch users to continue" : "Changer d'utilisateur pour continuer", 16 | "OAuth 2.0" : "OAuth 2.0", 17 | "Registered clients" : "Clients enregistrés", 18 | "No clients registered." : "Aucun client enregistré.", 19 | "Name" : "Nom", 20 | "Redirection URI" : "URI de redirection", 21 | "Client Identifier" : "Identifiant du client", 22 | "Secret" : "Secret", 23 | "Subdomains allowed" : "Sous-domaines autorisés", 24 | "Trusted client" : "Client de confiance", 25 | "Add client" : "Ajouter un client", 26 | "Allow subdomains" : "Autoriser un sous-domaine", 27 | "Add" : "Ajouter", 28 | "Authorized Applications" : "Applications autorisées", 29 | "No applications authorized." : "Aucune application autorisée.", 30 | "Are you sure you want to delete this item?" : "Êtes-vous sûr de vouloir supprimer cet élément ?", 31 | "Switch user" : "Changer d'utilisateur", 32 | "You are logged in as %s but the application requested access for user %s." : "Vous êtes connecté en tant que %s mais l'application nécessite l'accès de %s." 33 | },"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" 34 | } -------------------------------------------------------------------------------- /l10n/gl.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "A aplicación «{app}» está solicitando acceso á súa conta. Para autorizala, inicie sesión primeiro.", 5 | "Deleting..." : "Eliminando…", 6 | "Saving..." : "Gardando…", 7 | "Name must not be empty" : "O nome non debe estar baleiro", 8 | "Redirect URI must not be empty" : "O URI de redirección non debe estar baleiro", 9 | "Redirect URI must be a valid URL" : "O URI de redirección debe ser un URL válido", 10 | "Name %s already exists" : "Xa existe o nome %s", 11 | "Client id must be a number" : "O identificador de cliente debe ser un número", 12 | "The application was authorized successfully. You can now close this window." : "A aplicación foi autorizada satisfactoriamente. Agora pode pechar esta xanela.", 13 | "Request not valid" : "Solicitude incorrecta", 14 | "This request is not valid. Please contact the administrator if this error persists." : "Esta solicitude non é válida. Póñase en contacto co administrador se este erro persiste.", 15 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Esta solicitude non é válida. Póñase en contacto co administrador de «%s» se este erro persiste.", 16 | "The “%s“ application would like permission to access your account" : "A aplicación «%s» solicita permiso para acceder á súa conta", 17 | "You are logged in as %s." : "Vostede accedeu como %s.", 18 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "A aplicación terá acceso ao seu nome de usuario e poderá xestionar ficheiros, cartafoles e recursos compartidos.", 19 | "Authorize" : "Autorizar", 20 | "Switch users to continue" : "Cambiar de usuarios para continuar", 21 | "OAuth 2.0" : "OAuth 2.0", 22 | "Registered clients" : "Clientes rexistrados", 23 | "No clients registered." : "Non hai clientes rexistrados", 24 | "Name" : "Nome", 25 | "Redirection URI" : "URI de redireccionamento", 26 | "Client Identifier" : "Identificador do cliente", 27 | "Secret" : "Segredo", 28 | "Subdomains allowed" : "Subdominios permitidos", 29 | "Add client" : "Engadir cliente", 30 | "Allow subdomains" : "Permitir subdominios", 31 | "Add" : "Engadir", 32 | "Authorized Applications" : "Aplicacións autorizadas", 33 | "No applications authorized." : "Non hai aplicacións autorizadas", 34 | "Are you sure you want to delete this item?" : "Confirma que quere eliminar este elemento?", 35 | "Switch user" : "Cambiar de usuario", 36 | "You are logged in as %s but the application requested access for user %s." : "Está rexistrado como %s mais a aplicación solicitou acceso para o usuario %s." 37 | }, 38 | "nplurals=2; plural=(n != 1);"); 39 | -------------------------------------------------------------------------------- /l10n/gl.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "A aplicación «{app}» está solicitando acceso á súa conta. Para autorizala, inicie sesión primeiro.", 3 | "Deleting..." : "Eliminando…", 4 | "Saving..." : "Gardando…", 5 | "Name must not be empty" : "O nome non debe estar baleiro", 6 | "Redirect URI must not be empty" : "O URI de redirección non debe estar baleiro", 7 | "Redirect URI must be a valid URL" : "O URI de redirección debe ser un URL válido", 8 | "Name %s already exists" : "Xa existe o nome %s", 9 | "Client id must be a number" : "O identificador de cliente debe ser un número", 10 | "The application was authorized successfully. You can now close this window." : "A aplicación foi autorizada satisfactoriamente. Agora pode pechar esta xanela.", 11 | "Request not valid" : "Solicitude incorrecta", 12 | "This request is not valid. Please contact the administrator if this error persists." : "Esta solicitude non é válida. Póñase en contacto co administrador se este erro persiste.", 13 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Esta solicitude non é válida. Póñase en contacto co administrador de «%s» se este erro persiste.", 14 | "The “%s“ application would like permission to access your account" : "A aplicación «%s» solicita permiso para acceder á súa conta", 15 | "You are logged in as %s." : "Vostede accedeu como %s.", 16 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "A aplicación terá acceso ao seu nome de usuario e poderá xestionar ficheiros, cartafoles e recursos compartidos.", 17 | "Authorize" : "Autorizar", 18 | "Switch users to continue" : "Cambiar de usuarios para continuar", 19 | "OAuth 2.0" : "OAuth 2.0", 20 | "Registered clients" : "Clientes rexistrados", 21 | "No clients registered." : "Non hai clientes rexistrados", 22 | "Name" : "Nome", 23 | "Redirection URI" : "URI de redireccionamento", 24 | "Client Identifier" : "Identificador do cliente", 25 | "Secret" : "Segredo", 26 | "Subdomains allowed" : "Subdominios permitidos", 27 | "Add client" : "Engadir cliente", 28 | "Allow subdomains" : "Permitir subdominios", 29 | "Add" : "Engadir", 30 | "Authorized Applications" : "Aplicacións autorizadas", 31 | "No applications authorized." : "Non hai aplicacións autorizadas", 32 | "Are you sure you want to delete this item?" : "Confirma que quere eliminar este elemento?", 33 | "Switch user" : "Cambiar de usuario", 34 | "You are logged in as %s but the application requested access for user %s." : "Está rexistrado como %s mais a aplicación solicitou acceso para o usuario %s." 35 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 36 | } -------------------------------------------------------------------------------- /l10n/he.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "היישום \"{app}\" מבקש גישה לחשבון שלך. לאישור, יש להתחבר תחילה.", 5 | "Deleting..." : "במחיקה...", 6 | "Saving..." : "שמירה…", 7 | "Name must not be empty" : "שדה שם אינו יכול להיות ריק", 8 | "Redirect URI must not be empty" : "שדה URI אינו יכול להיות ריק", 9 | "Redirect URI must be a valid URL" : "שדה URI חייב להיות נתיב אינטרנט חוקי", 10 | "Name %s already exists" : "השם %s כבר קיים", 11 | "Client id must be a number" : "מזהה לקוח חייב להיות מספר", 12 | "The application was authorized successfully. You can now close this window." : "היישום אושר בהצלחה. ניתן לסגור עכשיו את החלון.", 13 | "Request not valid" : "הבקשה אינה חוקית", 14 | "This request is not valid. Please contact the administrator if this error persists." : "הבקשה אינה חוקית. יש ליצור קשר עם מנהל המערכת אם שגיאה זו תמשך.", 15 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "הבקשה אינה חוקית. יש ליצור קשר עם מנהל המערכת של “%s” אם שגיאה זו חוזרת.", 16 | "The “%s“ application would like permission to access your account" : "היישום “%s“ מבקש הרשאה לגישה אל חשבונך", 17 | "You are logged in as %s." : "הנך מחובר כ- %s.", 18 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "היישום יקבל גישה לשם המשתמש שלך ויהיה רשאי לנהל קבצים, תיקיות ושיתופים.", 19 | "Authorize" : "הרשאה", 20 | "Switch users to continue" : "יש להחליף משתמש להמשך", 21 | "OAuth 2.0" : "OAuth 2.0", 22 | "Registered clients" : "לקוחות רשומים", 23 | "No clients registered." : "אין לקוחות רשומים.", 24 | "Name" : "שם", 25 | "Redirection URI" : "הפניה מחדש של URI", 26 | "Client Identifier" : "מזהה לקוח", 27 | "Secret" : "סוד", 28 | "Subdomains allowed" : "תיקיות משנה מאופשרות", 29 | "Add client" : "הוספת לקוח", 30 | "Allow subdomains" : "לאפשר תיקיות משנה", 31 | "Add" : "הוספה", 32 | "Authorized Applications" : "הרשאת יישום", 33 | "No applications authorized." : "אין יישומים מאושרים.", 34 | "Are you sure you want to delete this item?" : "האם באמת למחוק פריט זה?", 35 | "Switch user" : "החלפת משתמש", 36 | "You are logged in as %s but the application requested access for user %s." : "הנך מחובר כ- %s אבל היישום מבקש הרשאת גישה עבור משתמש %s." 37 | }, 38 | "nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;"); 39 | -------------------------------------------------------------------------------- /l10n/he.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "היישום \"{app}\" מבקש גישה לחשבון שלך. לאישור, יש להתחבר תחילה.", 3 | "Deleting..." : "במחיקה...", 4 | "Saving..." : "שמירה…", 5 | "Name must not be empty" : "שדה שם אינו יכול להיות ריק", 6 | "Redirect URI must not be empty" : "שדה URI אינו יכול להיות ריק", 7 | "Redirect URI must be a valid URL" : "שדה URI חייב להיות נתיב אינטרנט חוקי", 8 | "Name %s already exists" : "השם %s כבר קיים", 9 | "Client id must be a number" : "מזהה לקוח חייב להיות מספר", 10 | "The application was authorized successfully. You can now close this window." : "היישום אושר בהצלחה. ניתן לסגור עכשיו את החלון.", 11 | "Request not valid" : "הבקשה אינה חוקית", 12 | "This request is not valid. Please contact the administrator if this error persists." : "הבקשה אינה חוקית. יש ליצור קשר עם מנהל המערכת אם שגיאה זו תמשך.", 13 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "הבקשה אינה חוקית. יש ליצור קשר עם מנהל המערכת של “%s” אם שגיאה זו חוזרת.", 14 | "The “%s“ application would like permission to access your account" : "היישום “%s“ מבקש הרשאה לגישה אל חשבונך", 15 | "You are logged in as %s." : "הנך מחובר כ- %s.", 16 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "היישום יקבל גישה לשם המשתמש שלך ויהיה רשאי לנהל קבצים, תיקיות ושיתופים.", 17 | "Authorize" : "הרשאה", 18 | "Switch users to continue" : "יש להחליף משתמש להמשך", 19 | "OAuth 2.0" : "OAuth 2.0", 20 | "Registered clients" : "לקוחות רשומים", 21 | "No clients registered." : "אין לקוחות רשומים.", 22 | "Name" : "שם", 23 | "Redirection URI" : "הפניה מחדש של URI", 24 | "Client Identifier" : "מזהה לקוח", 25 | "Secret" : "סוד", 26 | "Subdomains allowed" : "תיקיות משנה מאופשרות", 27 | "Add client" : "הוספת לקוח", 28 | "Allow subdomains" : "לאפשר תיקיות משנה", 29 | "Add" : "הוספה", 30 | "Authorized Applications" : "הרשאת יישום", 31 | "No applications authorized." : "אין יישומים מאושרים.", 32 | "Are you sure you want to delete this item?" : "האם באמת למחוק פריט זה?", 33 | "Switch user" : "החלפת משתמש", 34 | "You are logged in as %s but the application requested access for user %s." : "הנך מחובר כ- %s אבל היישום מבקש הרשאת גישה עבור משתמש %s." 35 | },"pluralForm" :"nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;" 36 | } -------------------------------------------------------------------------------- /l10n/hu_HU.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "\"{app}\" alkalmazás hozzáférést kér fiókjához. Engedélyezéséhez jelentkezzen be először.", 5 | "Deleting..." : "Törlés...", 6 | "Saving..." : "Mentés...", 7 | "Name must not be empty" : "A név nem lehet üres", 8 | "Redirect URI must not be empty" : "Az átirányítási URI nem lehet üres", 9 | "Redirect URI must be a valid URL" : "Az átirányítási URI érvényes URL kell legyen", 10 | "Name %s already exists" : "%s név már létezik", 11 | "Client id must be a number" : "Ügyfél id csak szám lehet", 12 | "The application was authorized successfully. You can now close this window." : "Az alkalmazás sikeresen engedélyezett. Most bezárhatja ezt az ablakot.", 13 | "Request not valid" : "Kérelem érvénytelen", 14 | "This request is not valid. Please contact the administrator if this error persists." : "Ez a kérés nem érvényes. Ha a hiba továbbra is fennáll, lépjen kapcsolatba a rendszergazdával.", 15 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Ez a kérés nem érvényes. Ha a hiba továbbra is fennáll, lépjen kapcsolatba \"%s\" rendszergazdájával.", 16 | "The “%s“ application would like permission to access your account" : "\"%s\" alkalmazás engedélyt kér a fiók elérésére", 17 | "You are logged in as %s." : "Belépve mint %s.", 18 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Az alkalmazás ezáltal hozzá fog férni a felhasználónevéhez, és engedélyt kap a fájlok, mappák és megosztások kezelésére.", 19 | "Authorize" : "Engedélyezés", 20 | "Switch users to continue" : "Kapcsolja át a felhasználókat a folytatáshoz", 21 | "OAuth 2.0" : "OAuth 2.0", 22 | "Registered clients" : "Regisztrált kliensek", 23 | "No clients registered." : "Nincs regisztrált kliens.", 24 | "Name" : "Név", 25 | "Redirection URI" : "Átirányítási URI", 26 | "Client Identifier" : "Kliensazonosító", 27 | "Secret" : "Titok", 28 | "Subdomains allowed" : "Al-domain-ek engedélyezve", 29 | "Add client" : "Kliens hozzáadása", 30 | "Allow subdomains" : "Al-domain-ek engedélyezése", 31 | "Add" : "Hozzáadás", 32 | "Authorized Applications" : "Engedélyezett alkalmazások", 33 | "No applications authorized." : "Nincs engedélyezett alkalmazás.", 34 | "Are you sure you want to delete this item?" : "Biztos benne, hogy törli ezt a tételt?", 35 | "Switch user" : "Felhasználó váltás", 36 | "You are logged in as %s but the application requested access for user %s." : "%s-ként jelentkezett be, de az alkalmazás %s felhasználóhoz hozzáférést kért." 37 | }, 38 | "nplurals=2; plural=(n != 1);"); 39 | -------------------------------------------------------------------------------- /l10n/hu_HU.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "\"{app}\" alkalmazás hozzáférést kér fiókjához. Engedélyezéséhez jelentkezzen be először.", 3 | "Deleting..." : "Törlés...", 4 | "Saving..." : "Mentés...", 5 | "Name must not be empty" : "A név nem lehet üres", 6 | "Redirect URI must not be empty" : "Az átirányítási URI nem lehet üres", 7 | "Redirect URI must be a valid URL" : "Az átirányítási URI érvényes URL kell legyen", 8 | "Name %s already exists" : "%s név már létezik", 9 | "Client id must be a number" : "Ügyfél id csak szám lehet", 10 | "The application was authorized successfully. You can now close this window." : "Az alkalmazás sikeresen engedélyezett. Most bezárhatja ezt az ablakot.", 11 | "Request not valid" : "Kérelem érvénytelen", 12 | "This request is not valid. Please contact the administrator if this error persists." : "Ez a kérés nem érvényes. Ha a hiba továbbra is fennáll, lépjen kapcsolatba a rendszergazdával.", 13 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Ez a kérés nem érvényes. Ha a hiba továbbra is fennáll, lépjen kapcsolatba \"%s\" rendszergazdájával.", 14 | "The “%s“ application would like permission to access your account" : "\"%s\" alkalmazás engedélyt kér a fiók elérésére", 15 | "You are logged in as %s." : "Belépve mint %s.", 16 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Az alkalmazás ezáltal hozzá fog férni a felhasználónevéhez, és engedélyt kap a fájlok, mappák és megosztások kezelésére.", 17 | "Authorize" : "Engedélyezés", 18 | "Switch users to continue" : "Kapcsolja át a felhasználókat a folytatáshoz", 19 | "OAuth 2.0" : "OAuth 2.0", 20 | "Registered clients" : "Regisztrált kliensek", 21 | "No clients registered." : "Nincs regisztrált kliens.", 22 | "Name" : "Név", 23 | "Redirection URI" : "Átirányítási URI", 24 | "Client Identifier" : "Kliensazonosító", 25 | "Secret" : "Titok", 26 | "Subdomains allowed" : "Al-domain-ek engedélyezve", 27 | "Add client" : "Kliens hozzáadása", 28 | "Allow subdomains" : "Al-domain-ek engedélyezése", 29 | "Add" : "Hozzáadás", 30 | "Authorized Applications" : "Engedélyezett alkalmazások", 31 | "No applications authorized." : "Nincs engedélyezett alkalmazás.", 32 | "Are you sure you want to delete this item?" : "Biztos benne, hogy törli ezt a tételt?", 33 | "Switch user" : "Felhasználó váltás", 34 | "You are logged in as %s but the application requested access for user %s." : "%s-ként jelentkezett be, de az alkalmazás %s felhasználóhoz hozzáférést kért." 35 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 36 | } -------------------------------------------------------------------------------- /l10n/id.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application was authorized successfully. You can now close this window." : "Aplikasi telah berhasil diotorisasi. Anda dapat menutup halaman ini sekarang", 5 | "Request not valid" : "Permintaan tidak valid", 6 | "This request is not valid. Please contact the administrator if this error persists." : "Permintaan tidak valid. Silakan hubungi administrator jika kesalahan ini terus berlanjut.", 7 | "The “%s“ application would like permission to access your account" : "Aplikasi %s meminta ijin untuk mengakses akun anda", 8 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Aplikasi ini akan memperoleh nama pengguna Anda dan akan diizinkan untuk mengelola berkas, folder dan berbagi.", 9 | "Authorize" : "Otorisasi", 10 | "OAuth 2.0" : "OAuth 2.0", 11 | "Registered clients" : "Klien terdaftar", 12 | "No clients registered." : "Tidak ada klien yang terdaftar.", 13 | "Name" : "Nama", 14 | "Redirection URI" : "URI Pengalihan", 15 | "Client Identifier" : "Pengenal Klien", 16 | "Secret" : "Rahasia", 17 | "Subdomains allowed" : "Subdomain diizinkan", 18 | "Are you sure you want to delete this item?" : "Apakah Anda yakin ingin menghapus item ini?", 19 | "Add client" : "Tambah klien", 20 | "Allow subdomains" : "Izinkan subdomain", 21 | "Add" : "Tambah", 22 | "Authorized Applications" : "Aplikasi Terotorisasi", 23 | "No applications authorized." : "Tidak ada aplikasi yang terotorisasi.", 24 | "Switch user" : "Ganti pengguna" 25 | }, 26 | "nplurals=1; plural=0;"); 27 | -------------------------------------------------------------------------------- /l10n/id.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application was authorized successfully. You can now close this window." : "Aplikasi telah berhasil diotorisasi. Anda dapat menutup halaman ini sekarang", 3 | "Request not valid" : "Permintaan tidak valid", 4 | "This request is not valid. Please contact the administrator if this error persists." : "Permintaan tidak valid. Silakan hubungi administrator jika kesalahan ini terus berlanjut.", 5 | "The “%s“ application would like permission to access your account" : "Aplikasi %s meminta ijin untuk mengakses akun anda", 6 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Aplikasi ini akan memperoleh nama pengguna Anda dan akan diizinkan untuk mengelola berkas, folder dan berbagi.", 7 | "Authorize" : "Otorisasi", 8 | "OAuth 2.0" : "OAuth 2.0", 9 | "Registered clients" : "Klien terdaftar", 10 | "No clients registered." : "Tidak ada klien yang terdaftar.", 11 | "Name" : "Nama", 12 | "Redirection URI" : "URI Pengalihan", 13 | "Client Identifier" : "Pengenal Klien", 14 | "Secret" : "Rahasia", 15 | "Subdomains allowed" : "Subdomain diizinkan", 16 | "Are you sure you want to delete this item?" : "Apakah Anda yakin ingin menghapus item ini?", 17 | "Add client" : "Tambah klien", 18 | "Allow subdomains" : "Izinkan subdomain", 19 | "Add" : "Tambah", 20 | "Authorized Applications" : "Aplikasi Terotorisasi", 21 | "No applications authorized." : "Tidak ada aplikasi yang terotorisasi.", 22 | "Switch user" : "Ganti pengguna" 23 | },"pluralForm" :"nplurals=1; plural=0;" 24 | } -------------------------------------------------------------------------------- /l10n/is.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "Forritið \"{app}\" er að biðja um aðgang að notandaaðganginum þínum. Til að heimila það þarftu fyrst að skrá þig inn.", 5 | "Saving..." : "Er að vista ...", 6 | "The application was authorized successfully. You can now close this window." : "Það tókst að heimila forritið. Þú getur núna lokað þessum glugga.", 7 | "Request not valid" : "Beiðni ekki gild", 8 | "This request is not valid. Please contact the administrator if this error persists." : "Þessi beiðni er ógild. Hafðu samband við kerfisstjóra ef þessi villa kemur áfram upp.", 9 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Þessi beiðni er ógild. Hafðu samband við kerfisstjóra \"%s \" ef þessi villa kemur áfram upp.", 10 | "The “%s“ application would like permission to access your account" : "Forritið \"%s \" vill fá að tengjast aðganginum þínum", 11 | "You are logged in as %s." : "Þú ert skráður inn sem %s.", 12 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Forritið mun fá aðgang að notandanafninu þínu og vera keyft að sýsla með skrár, möppur og sameignir.", 13 | "Authorize" : "Heimila", 14 | "Switch users to continue" : "Skiptu um notanda til að halda áfram", 15 | "OAuth 2.0" : "OAuth 2.0", 16 | "Registered clients" : "Skráð biðlaraforrit", 17 | "No clients registered." : "Engir biðlarar skráðir.", 18 | "Name" : "Heiti", 19 | "Redirection URI" : "Slóð endurbeiningar", 20 | "Client Identifier" : "Auðkenni biðlara", 21 | "Secret" : "Leynilykill", 22 | "Subdomains allowed" : "Undirlén leyfileg", 23 | "Add client" : "Bæta við biðlara", 24 | "Allow subdomains" : "Leyfa undirlén", 25 | "Add" : "Bæta við", 26 | "Authorized Applications" : "Heimiluð forrit", 27 | "No applications authorized." : "Engin forrit heimiluð.", 28 | "Are you sure you want to delete this item?" : "Ertu viss um að þú viljir eyða þessu atriði?", 29 | "Switch user" : "Skipta um notanda", 30 | "You are logged in as %s but the application requested access for user %s." : "Þú ert skráð(ur) inn sem %s en forritið er að biðja um aðgang að notandanum %s." 31 | }, 32 | "nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"); 33 | -------------------------------------------------------------------------------- /l10n/is.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "Forritið \"{app}\" er að biðja um aðgang að notandaaðganginum þínum. Til að heimila það þarftu fyrst að skrá þig inn.", 3 | "Saving..." : "Er að vista ...", 4 | "The application was authorized successfully. You can now close this window." : "Það tókst að heimila forritið. Þú getur núna lokað þessum glugga.", 5 | "Request not valid" : "Beiðni ekki gild", 6 | "This request is not valid. Please contact the administrator if this error persists." : "Þessi beiðni er ógild. Hafðu samband við kerfisstjóra ef þessi villa kemur áfram upp.", 7 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Þessi beiðni er ógild. Hafðu samband við kerfisstjóra \"%s \" ef þessi villa kemur áfram upp.", 8 | "The “%s“ application would like permission to access your account" : "Forritið \"%s \" vill fá að tengjast aðganginum þínum", 9 | "You are logged in as %s." : "Þú ert skráður inn sem %s.", 10 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Forritið mun fá aðgang að notandanafninu þínu og vera keyft að sýsla með skrár, möppur og sameignir.", 11 | "Authorize" : "Heimila", 12 | "Switch users to continue" : "Skiptu um notanda til að halda áfram", 13 | "OAuth 2.0" : "OAuth 2.0", 14 | "Registered clients" : "Skráð biðlaraforrit", 15 | "No clients registered." : "Engir biðlarar skráðir.", 16 | "Name" : "Heiti", 17 | "Redirection URI" : "Slóð endurbeiningar", 18 | "Client Identifier" : "Auðkenni biðlara", 19 | "Secret" : "Leynilykill", 20 | "Subdomains allowed" : "Undirlén leyfileg", 21 | "Add client" : "Bæta við biðlara", 22 | "Allow subdomains" : "Leyfa undirlén", 23 | "Add" : "Bæta við", 24 | "Authorized Applications" : "Heimiluð forrit", 25 | "No applications authorized." : "Engin forrit heimiluð.", 26 | "Are you sure you want to delete this item?" : "Ertu viss um að þú viljir eyða þessu atriði?", 27 | "Switch user" : "Skipta um notanda", 28 | "You are logged in as %s but the application requested access for user %s." : "Þú ert skráð(ur) inn sem %s en forritið er að biðja um aðgang að notandanum %s." 29 | },"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);" 30 | } -------------------------------------------------------------------------------- /l10n/it.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "L'applicazione \"{app}\" richiede accesso al tuo account. Per autorizzarlo, effettuare il login prima.", 5 | "Saving..." : "Salvataggio in corso...", 6 | "The application was authorized successfully. You can now close this window." : "Applicazione autorizzata con successo. Puoi chiudere questa finestra.", 7 | "Request not valid" : "Richiesta non valida", 8 | "This request is not valid. Please contact the administrator if this error persists." : "Questa richiesta non e' valida. Per favore contatta l'Amministratore se l'errore persiste.", 9 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "La richiesta non è valida. Contatta l'amministratore di \"%s\" se l'errore persiste.", 10 | "The “%s“ application would like permission to access your account" : "L'applicazione \"%s\" vorrebbe avere il permesso di accedere al tuo account.", 11 | "You are logged in as %s." : "Sei connesso come %s.", 12 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "L'applicazione accedera' al tuo nome utente e sara' autorizzata a gestire i file, le cartelle e le condivisioni.", 13 | "Authorize" : "Autorizza", 14 | "Switch users to continue" : "Cambia utente per proseguire", 15 | "OAuth 2.0" : "OAuth 2.0", 16 | "Registered clients" : "Client registrati", 17 | "No clients registered." : "Nessun client registrato.", 18 | "Name" : "Nome", 19 | "Redirection URI" : "Reindirizzamento dell'URL", 20 | "Client Identifier" : "Identificatore client", 21 | "Secret" : "Segreto", 22 | "Subdomains allowed" : "Sottodomini consentiti", 23 | "Trusted client" : "Client fidato", 24 | "Add client" : "Aggiungi client", 25 | "Allow subdomains" : "Consenti sottodomini", 26 | "Add" : "Aggiungi", 27 | "Authorized Applications" : "Applicazioni autorizzate", 28 | "No applications authorized." : "Nessuna applicazione autorizzata.", 29 | "Are you sure you want to delete this item?" : "Sei sicuro di voler eliminare questo elemento?", 30 | "Switch user" : "Cambia utente", 31 | "You are logged in as %s but the application requested access for user %s." : "Sei connesso come %s ma l'applicazione chiede l'accesso per l'utente %s." 32 | }, 33 | "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); 34 | -------------------------------------------------------------------------------- /l10n/it.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "L'applicazione \"{app}\" richiede accesso al tuo account. Per autorizzarlo, effettuare il login prima.", 3 | "Saving..." : "Salvataggio in corso...", 4 | "The application was authorized successfully. You can now close this window." : "Applicazione autorizzata con successo. Puoi chiudere questa finestra.", 5 | "Request not valid" : "Richiesta non valida", 6 | "This request is not valid. Please contact the administrator if this error persists." : "Questa richiesta non e' valida. Per favore contatta l'Amministratore se l'errore persiste.", 7 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "La richiesta non è valida. Contatta l'amministratore di \"%s\" se l'errore persiste.", 8 | "The “%s“ application would like permission to access your account" : "L'applicazione \"%s\" vorrebbe avere il permesso di accedere al tuo account.", 9 | "You are logged in as %s." : "Sei connesso come %s.", 10 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "L'applicazione accedera' al tuo nome utente e sara' autorizzata a gestire i file, le cartelle e le condivisioni.", 11 | "Authorize" : "Autorizza", 12 | "Switch users to continue" : "Cambia utente per proseguire", 13 | "OAuth 2.0" : "OAuth 2.0", 14 | "Registered clients" : "Client registrati", 15 | "No clients registered." : "Nessun client registrato.", 16 | "Name" : "Nome", 17 | "Redirection URI" : "Reindirizzamento dell'URL", 18 | "Client Identifier" : "Identificatore client", 19 | "Secret" : "Segreto", 20 | "Subdomains allowed" : "Sottodomini consentiti", 21 | "Trusted client" : "Client fidato", 22 | "Add client" : "Aggiungi client", 23 | "Allow subdomains" : "Consenti sottodomini", 24 | "Add" : "Aggiungi", 25 | "Authorized Applications" : "Applicazioni autorizzate", 26 | "No applications authorized." : "Nessuna applicazione autorizzata.", 27 | "Are you sure you want to delete this item?" : "Sei sicuro di voler eliminare questo elemento?", 28 | "Switch user" : "Cambia utente", 29 | "You are logged in as %s but the application requested access for user %s." : "Sei connesso come %s ma l'applicazione chiede l'accesso per l'utente %s." 30 | },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" 31 | } -------------------------------------------------------------------------------- /l10n/ja.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "Deleting..." : "削除中…", 5 | "Saving..." : "保存中...", 6 | "Name must not be empty" : "名前は空にできません", 7 | "Redirect URI must not be empty" : "リダイレクトURIは空にできません", 8 | "Redirect URI must be a valid URL" : "リダイレクトURIは有効なURLである必要があります", 9 | "Name %s already exists" : "%sはすでに存在する名前です", 10 | "Client id must be a number" : "クライアントidは数字である必要があります", 11 | "The application was authorized successfully. You can now close this window." : "アプリケーションの認証に成功しました。このウインドウは閉じることができます。", 12 | "Request not valid" : "リクエストは無効です", 13 | "This request is not valid. Please contact the administrator if this error persists." : "不正なリクエストです。繰り返しエラーが表示される場合は管理者に問い合わせてください。", 14 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "不正なリクエストです。繰り返しエラーが表示される場合は%sの管理者に問い合わせてください。", 15 | "You are logged in as %s." : "%sとしてログインしました。", 16 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "アプリケーションがあなたのユーザー名に対してアクセスを得れば、ファイル、フォルダー、共有を管理できるようになります。", 17 | "Authorize" : "許可", 18 | "OAuth 2.0" : "OAuth2.0", 19 | "Registered clients" : "登録クライアント", 20 | "No clients registered." : "クライアント未登録", 21 | "Name" : "名前", 22 | "Redirection URI" : "URIのリダイレクト", 23 | "Client Identifier" : "クライアント識別子", 24 | "Secret" : "シークレットキー", 25 | "Subdomains allowed" : "サブドメイン許可", 26 | "Trusted client" : "信頼できるクライアント", 27 | "Add client" : "クライアント追加", 28 | "Allow subdomains" : "サブドメイン許可", 29 | "Add" : "追加", 30 | "Authorized Applications" : "認可済みアプリケーション", 31 | "No applications authorized." : "許可されたアプリケーションはありません。", 32 | "Are you sure you want to delete this item?" : "このアイテムを完全に削除しますか?", 33 | "Switch user" : "ユーザーの変更" 34 | }, 35 | "nplurals=1; plural=0;"); 36 | -------------------------------------------------------------------------------- /l10n/ja.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Deleting..." : "削除中…", 3 | "Saving..." : "保存中...", 4 | "Name must not be empty" : "名前は空にできません", 5 | "Redirect URI must not be empty" : "リダイレクトURIは空にできません", 6 | "Redirect URI must be a valid URL" : "リダイレクトURIは有効なURLである必要があります", 7 | "Name %s already exists" : "%sはすでに存在する名前です", 8 | "Client id must be a number" : "クライアントidは数字である必要があります", 9 | "The application was authorized successfully. You can now close this window." : "アプリケーションの認証に成功しました。このウインドウは閉じることができます。", 10 | "Request not valid" : "リクエストは無効です", 11 | "This request is not valid. Please contact the administrator if this error persists." : "不正なリクエストです。繰り返しエラーが表示される場合は管理者に問い合わせてください。", 12 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "不正なリクエストです。繰り返しエラーが表示される場合は%sの管理者に問い合わせてください。", 13 | "You are logged in as %s." : "%sとしてログインしました。", 14 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "アプリケーションがあなたのユーザー名に対してアクセスを得れば、ファイル、フォルダー、共有を管理できるようになります。", 15 | "Authorize" : "許可", 16 | "OAuth 2.0" : "OAuth2.0", 17 | "Registered clients" : "登録クライアント", 18 | "No clients registered." : "クライアント未登録", 19 | "Name" : "名前", 20 | "Redirection URI" : "URIのリダイレクト", 21 | "Client Identifier" : "クライアント識別子", 22 | "Secret" : "シークレットキー", 23 | "Subdomains allowed" : "サブドメイン許可", 24 | "Trusted client" : "信頼できるクライアント", 25 | "Add client" : "クライアント追加", 26 | "Allow subdomains" : "サブドメイン許可", 27 | "Add" : "追加", 28 | "Authorized Applications" : "認可済みアプリケーション", 29 | "No applications authorized." : "許可されたアプリケーションはありません。", 30 | "Are you sure you want to delete this item?" : "このアイテムを完全に削除しますか?", 31 | "Switch user" : "ユーザーの変更" 32 | },"pluralForm" :"nplurals=1; plural=0;" 33 | } -------------------------------------------------------------------------------- /l10n/ko.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "\"{app}\" 앱에서 내 계정에 접근하려고 합니다. 인증하려면 먼저 로그인하십시오.", 5 | "Deleting..." : "삭제 중...", 6 | "Saving..." : "저장 중...", 7 | "Name must not be empty" : "이름을 비울 수 없음", 8 | "Redirect URI must not be empty" : "리다이렉트 URI를 비울 수 없음", 9 | "Redirect URI must be a valid URL" : "리다이렉트 URI은 유효한 URL이어야 함", 10 | "Name %s already exists" : "%s 이름이 이미 존재함", 11 | "Cannot set localhost as trusted." : "로컬호스트를 신뢰 관계로 지정할 수 없습니다.", 12 | "Client id must be a number" : "클라이언트 ID는 숫자여야 함", 13 | "The application was authorized successfully. You can now close this window." : "앱을 인증했습니다. 이 창을 닫아도 됩니다.", 14 | "Request not valid" : "요청이 올바르지 않음", 15 | "This request is not valid. Please contact the administrator if this error persists." : "이 요청이 올바르지 않습니다. 오류가 계속 발생하면 관리자에게 연락하십시오.", 16 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "이 요청이 올바르지 않습니다. 오류가 계속 발생하면 \"%s\" 관리자에게 연락하십시오.", 17 | "The “%s“ application would like permission to access your account" : "\"%s\" 앱에서 내 계정에 접근하려고 합니다", 18 | "You are logged in as %s." : "%s(으)로 로그인했습니다.", 19 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "이 앱이 내 권한을 사용할 수 있으며, 파일, 폴더 및 공유를 관리할 수 있습니다.", 20 | "Authorize" : "인증", 21 | "Switch users to continue" : "계속하려면 사용자 전환", 22 | "OAuth 2.0" : "OAuth 2.0", 23 | "Registered clients" : "등록된 클라이언트", 24 | "No clients registered." : "등록된 클라이언트가 없습니다.", 25 | "Name" : "이름", 26 | "Redirection URI" : "전환될 URI", 27 | "Client Identifier" : "클라이언트 식별자", 28 | "Secret" : "비밀 값", 29 | "Subdomains allowed" : "하위 도메인 허용됨", 30 | "Trusted client" : "신뢰 클라이언트", 31 | "Add client" : "클라이언트 추가", 32 | "Allow subdomains" : "하위 도메인 허용", 33 | "Add" : "추가", 34 | "Authorized Applications" : "인증된 앱", 35 | "No applications authorized." : "인증된 앱이 없습니다.", 36 | "Are you sure you want to delete this item?" : "이 항목을 삭제하시겠습니까?", 37 | "Switch user" : "사용자 전환", 38 | "You are logged in as %s but the application requested access for user %s." : "%s 님으로 로그인되어 있지만 앱에서 %s 사용자 접근을 요청했습니다." 39 | }, 40 | "nplurals=1; plural=0;"); 41 | -------------------------------------------------------------------------------- /l10n/ko.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "\"{app}\" 앱에서 내 계정에 접근하려고 합니다. 인증하려면 먼저 로그인하십시오.", 3 | "Deleting..." : "삭제 중...", 4 | "Saving..." : "저장 중...", 5 | "Name must not be empty" : "이름을 비울 수 없음", 6 | "Redirect URI must not be empty" : "리다이렉트 URI를 비울 수 없음", 7 | "Redirect URI must be a valid URL" : "리다이렉트 URI은 유효한 URL이어야 함", 8 | "Name %s already exists" : "%s 이름이 이미 존재함", 9 | "Cannot set localhost as trusted." : "로컬호스트를 신뢰 관계로 지정할 수 없습니다.", 10 | "Client id must be a number" : "클라이언트 ID는 숫자여야 함", 11 | "The application was authorized successfully. You can now close this window." : "앱을 인증했습니다. 이 창을 닫아도 됩니다.", 12 | "Request not valid" : "요청이 올바르지 않음", 13 | "This request is not valid. Please contact the administrator if this error persists." : "이 요청이 올바르지 않습니다. 오류가 계속 발생하면 관리자에게 연락하십시오.", 14 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "이 요청이 올바르지 않습니다. 오류가 계속 발생하면 \"%s\" 관리자에게 연락하십시오.", 15 | "The “%s“ application would like permission to access your account" : "\"%s\" 앱에서 내 계정에 접근하려고 합니다", 16 | "You are logged in as %s." : "%s(으)로 로그인했습니다.", 17 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "이 앱이 내 권한을 사용할 수 있으며, 파일, 폴더 및 공유를 관리할 수 있습니다.", 18 | "Authorize" : "인증", 19 | "Switch users to continue" : "계속하려면 사용자 전환", 20 | "OAuth 2.0" : "OAuth 2.0", 21 | "Registered clients" : "등록된 클라이언트", 22 | "No clients registered." : "등록된 클라이언트가 없습니다.", 23 | "Name" : "이름", 24 | "Redirection URI" : "전환될 URI", 25 | "Client Identifier" : "클라이언트 식별자", 26 | "Secret" : "비밀 값", 27 | "Subdomains allowed" : "하위 도메인 허용됨", 28 | "Trusted client" : "신뢰 클라이언트", 29 | "Add client" : "클라이언트 추가", 30 | "Allow subdomains" : "하위 도메인 허용", 31 | "Add" : "추가", 32 | "Authorized Applications" : "인증된 앱", 33 | "No applications authorized." : "인증된 앱이 없습니다.", 34 | "Are you sure you want to delete this item?" : "이 항목을 삭제하시겠습니까?", 35 | "Switch user" : "사용자 전환", 36 | "You are logged in as %s but the application requested access for user %s." : "%s 님으로 로그인되어 있지만 앱에서 %s 사용자 접근을 요청했습니다." 37 | },"pluralForm" :"nplurals=1; plural=0;" 38 | } -------------------------------------------------------------------------------- /l10n/nb_NO.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "Programmet \"[app]\" ber om tilgang til kontoen din. Vennligst logg inn for å autorisere programmet. ", 5 | "Saving..." : "Lagrer...", 6 | "The application was authorized successfully. You can now close this window." : "Programmet ble autorisert. Du kan nå lukke dette vinduet. ", 7 | "Request not valid" : "Forespørsel ikke gyldig", 8 | "This request is not valid. Please contact the administrator if this error persists." : "Denne forespørselen er ikke gyldig. Kontakt administratoren hvis feilen vedvarer.", 9 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Denne forespørselen er ikke gyldig. Kontakt administratoren av \"%s\" hvis feilen vedvarer. ", 10 | "The “%s“ application would like permission to access your account" : "Programmet \"%s\" ber om tilgangstillatelse til kontoen din. ", 11 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Applikasjonen vil få tilgang til ditt brukernavn og vil kunne administrere filer, lokale mapper og delte mapper.", 12 | "Authorize" : "Autoriser", 13 | "Switch users to continue" : "Bytt bruker for å fortsette", 14 | "OAuth 2.0" : "OAuth 2.0", 15 | "Registered clients" : "Registrerte klienter", 16 | "No clients registered." : "Ingen klienter er registrert", 17 | "Name" : "Navn", 18 | "Redirection URI" : "Omdirigerings-URL", 19 | "Client Identifier" : "Klient id", 20 | "Secret" : "Secret", 21 | "Subdomains allowed" : "Underdomener tillatt", 22 | "Add client" : "Legg til klient", 23 | "Allow subdomains" : "Tillat underdomener", 24 | "Add" : "Legg til", 25 | "Authorized Applications" : "Autoriser applikasjon", 26 | "No applications authorized." : "Ingen applikasjoner er autorisert.", 27 | "Are you sure you want to delete this item?" : "Er du sikker på at du vil slette dette elementet?", 28 | "Switch user" : "Bytt bruker", 29 | "You are logged in as %s but the application requested access for user %s." : "Du er logget in som %smen applikasjonen forespurte tilgang for bruker %s." 30 | }, 31 | "nplurals=2; plural=(n != 1);"); 32 | -------------------------------------------------------------------------------- /l10n/nb_NO.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "Programmet \"[app]\" ber om tilgang til kontoen din. Vennligst logg inn for å autorisere programmet. ", 3 | "Saving..." : "Lagrer...", 4 | "The application was authorized successfully. You can now close this window." : "Programmet ble autorisert. Du kan nå lukke dette vinduet. ", 5 | "Request not valid" : "Forespørsel ikke gyldig", 6 | "This request is not valid. Please contact the administrator if this error persists." : "Denne forespørselen er ikke gyldig. Kontakt administratoren hvis feilen vedvarer.", 7 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Denne forespørselen er ikke gyldig. Kontakt administratoren av \"%s\" hvis feilen vedvarer. ", 8 | "The “%s“ application would like permission to access your account" : "Programmet \"%s\" ber om tilgangstillatelse til kontoen din. ", 9 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Applikasjonen vil få tilgang til ditt brukernavn og vil kunne administrere filer, lokale mapper og delte mapper.", 10 | "Authorize" : "Autoriser", 11 | "Switch users to continue" : "Bytt bruker for å fortsette", 12 | "OAuth 2.0" : "OAuth 2.0", 13 | "Registered clients" : "Registrerte klienter", 14 | "No clients registered." : "Ingen klienter er registrert", 15 | "Name" : "Navn", 16 | "Redirection URI" : "Omdirigerings-URL", 17 | "Client Identifier" : "Klient id", 18 | "Secret" : "Secret", 19 | "Subdomains allowed" : "Underdomener tillatt", 20 | "Add client" : "Legg til klient", 21 | "Allow subdomains" : "Tillat underdomener", 22 | "Add" : "Legg til", 23 | "Authorized Applications" : "Autoriser applikasjon", 24 | "No applications authorized." : "Ingen applikasjoner er autorisert.", 25 | "Are you sure you want to delete this item?" : "Er du sikker på at du vil slette dette elementet?", 26 | "Switch user" : "Bytt bruker", 27 | "You are logged in as %s but the application requested access for user %s." : "Du er logget in som %smen applikasjonen forespurte tilgang for bruker %s." 28 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 29 | } -------------------------------------------------------------------------------- /l10n/nl.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "De applicatie \"{app}\" vraagt toegang tot je account. Om dit toe te staan, gelieve eerst aan te melden.", 5 | "Deleting..." : "Verwijderen...", 6 | "Saving..." : "Opslaan", 7 | "The application was authorized successfully. You can now close this window." : "De applicatie is geauthenticeerd. U kunt dit venster nu sluiten.", 8 | "Request not valid" : "Ongeldige aanvraag", 9 | "This request is not valid. Please contact the administrator if this error persists." : "De aanvraag is niet geldig. Neem contact op met de beheerder als de fout aanhoudt.", 10 | "The “%s“ application would like permission to access your account" : "De applicatie \"%s\" verzoekt toestemming tot uw account", 11 | "You are logged in as %s." : "U bent ingelogd als %s.", 12 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "De applicatie krijgt toegang tot je gebruikersnaam en mag bestanden, mappen en shares beheren.", 13 | "Authorize" : "Toestaan", 14 | "Switch users to continue" : "Omschakelen gebruiker", 15 | "OAuth 2.0" : "OAuth 2.0", 16 | "Registered clients" : "Geregistreerde clients", 17 | "No clients registered." : "Geen clients geregistreerd.", 18 | "Name" : "Naam", 19 | "Redirection URI" : "Doorverwijzings-URI", 20 | "Client Identifier" : "Client identificator", 21 | "Secret" : "Geheim", 22 | "Subdomains allowed" : "Sub-domeinen toegestaan", 23 | "Add client" : "Client toevoegen", 24 | "Allow subdomains" : "Toestaan sub-domeinen", 25 | "Add" : "Toevoegen", 26 | "Authorized Applications" : "Geautoriseerde applicaties", 27 | "No applications authorized." : "Geen applicaties geautoriseerd.", 28 | "Are you sure you want to delete this item?" : "Weet u zeker dat u dit item wilt verwijderen?", 29 | "Switch user" : "Omschakelen gebruiker", 30 | "You are logged in as %s but the application requested access for user %s." : "U bent aangemeld als %s, maar de applicatie verzoekt toegang als %s." 31 | }, 32 | "nplurals=2; plural=(n != 1);"); 33 | -------------------------------------------------------------------------------- /l10n/nl.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "De applicatie \"{app}\" vraagt toegang tot je account. Om dit toe te staan, gelieve eerst aan te melden.", 3 | "Deleting..." : "Verwijderen...", 4 | "Saving..." : "Opslaan", 5 | "The application was authorized successfully. You can now close this window." : "De applicatie is geauthenticeerd. U kunt dit venster nu sluiten.", 6 | "Request not valid" : "Ongeldige aanvraag", 7 | "This request is not valid. Please contact the administrator if this error persists." : "De aanvraag is niet geldig. Neem contact op met de beheerder als de fout aanhoudt.", 8 | "The “%s“ application would like permission to access your account" : "De applicatie \"%s\" verzoekt toestemming tot uw account", 9 | "You are logged in as %s." : "U bent ingelogd als %s.", 10 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "De applicatie krijgt toegang tot je gebruikersnaam en mag bestanden, mappen en shares beheren.", 11 | "Authorize" : "Toestaan", 12 | "Switch users to continue" : "Omschakelen gebruiker", 13 | "OAuth 2.0" : "OAuth 2.0", 14 | "Registered clients" : "Geregistreerde clients", 15 | "No clients registered." : "Geen clients geregistreerd.", 16 | "Name" : "Naam", 17 | "Redirection URI" : "Doorverwijzings-URI", 18 | "Client Identifier" : "Client identificator", 19 | "Secret" : "Geheim", 20 | "Subdomains allowed" : "Sub-domeinen toegestaan", 21 | "Add client" : "Client toevoegen", 22 | "Allow subdomains" : "Toestaan sub-domeinen", 23 | "Add" : "Toevoegen", 24 | "Authorized Applications" : "Geautoriseerde applicaties", 25 | "No applications authorized." : "Geen applicaties geautoriseerd.", 26 | "Are you sure you want to delete this item?" : "Weet u zeker dat u dit item wilt verwijderen?", 27 | "Switch user" : "Omschakelen gebruiker", 28 | "You are logged in as %s but the application requested access for user %s." : "U bent aangemeld als %s, maar de applicatie verzoekt toegang als %s." 29 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 30 | } -------------------------------------------------------------------------------- /l10n/nn_NO.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "Programmet \"{app}\" spør om tilgang til din konto. Ver venleg å logge inn for å godkjenne tilgang.", 5 | "Saving..." : "Lagrar …", 6 | "The application was authorized successfully. You can now close this window." : "Programmet er godkjend for tilgang. Du kan stenge dette vindauget.", 7 | "Request not valid" : "Førespurnad er ikkje gyldig", 8 | "This request is not valid. Please contact the administrator if this error persists." : "Førespurnad er ikkje gyldig. Ver venleg å kontakte administrator om feilen oppstår att.", 9 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Førespurnad er ikkje gyldig. Ver venleg å kontakte administrator på “%s” om feilen oppstår att.", 10 | "The “%s“ application would like permission to access your account" : "Programmet “%s” ber om tilgang til din konto", 11 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Applikasjonen vil få tilgang til brukarnamn og kan administrere filer, katalogar og deling.", 12 | "Authorize" : "Autoriser", 13 | "Switch users to continue" : "Bytt brukar for å fortsette", 14 | "OAuth 2.0" : "OAuth 2.0", 15 | "Registered clients" : "Registrerte klientar", 16 | "No clients registered." : "Ingen klientar registrert", 17 | "Name" : "Namn", 18 | "Redirection URI" : "URI for ny adresse", 19 | "Client Identifier" : "Klient identifikator", 20 | "Secret" : "Hemmeleg", 21 | "Subdomains allowed" : "Under domene tillatt", 22 | "Add client" : "Legg til klient", 23 | "Allow subdomains" : "Tillat under domene", 24 | "Add" : "Legg til", 25 | "Authorized Applications" : "Autoriserte applikasjonar", 26 | "No applications authorized." : "Ingen applikasjonar er autorisert", 27 | "Are you sure you want to delete this item?" : "Er du sikker på at du vil slette dette?", 28 | "Switch user" : "Bytt brukar", 29 | "You are logged in as %s but the application requested access for user %s." : "Du er logga inn som %s men programmet ynskjer tilgang for brukar %s." 30 | }, 31 | "nplurals=2; plural=(n != 1);"); 32 | -------------------------------------------------------------------------------- /l10n/nn_NO.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "Programmet \"{app}\" spør om tilgang til din konto. Ver venleg å logge inn for å godkjenne tilgang.", 3 | "Saving..." : "Lagrar …", 4 | "The application was authorized successfully. You can now close this window." : "Programmet er godkjend for tilgang. Du kan stenge dette vindauget.", 5 | "Request not valid" : "Førespurnad er ikkje gyldig", 6 | "This request is not valid. Please contact the administrator if this error persists." : "Førespurnad er ikkje gyldig. Ver venleg å kontakte administrator om feilen oppstår att.", 7 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Førespurnad er ikkje gyldig. Ver venleg å kontakte administrator på “%s” om feilen oppstår att.", 8 | "The “%s“ application would like permission to access your account" : "Programmet “%s” ber om tilgang til din konto", 9 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Applikasjonen vil få tilgang til brukarnamn og kan administrere filer, katalogar og deling.", 10 | "Authorize" : "Autoriser", 11 | "Switch users to continue" : "Bytt brukar for å fortsette", 12 | "OAuth 2.0" : "OAuth 2.0", 13 | "Registered clients" : "Registrerte klientar", 14 | "No clients registered." : "Ingen klientar registrert", 15 | "Name" : "Namn", 16 | "Redirection URI" : "URI for ny adresse", 17 | "Client Identifier" : "Klient identifikator", 18 | "Secret" : "Hemmeleg", 19 | "Subdomains allowed" : "Under domene tillatt", 20 | "Add client" : "Legg til klient", 21 | "Allow subdomains" : "Tillat under domene", 22 | "Add" : "Legg til", 23 | "Authorized Applications" : "Autoriserte applikasjonar", 24 | "No applications authorized." : "Ingen applikasjonar er autorisert", 25 | "Are you sure you want to delete this item?" : "Er du sikker på at du vil slette dette?", 26 | "Switch user" : "Bytt brukar", 27 | "You are logged in as %s but the application requested access for user %s." : "Du er logga inn som %s men programmet ynskjer tilgang for brukar %s." 28 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 29 | } -------------------------------------------------------------------------------- /l10n/pl.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "Aplikacja \"{app}\" żąda dostępu do Twojego konta. Zaloguj się aby ją potwierdzić.", 5 | "Deleting..." : "Usuwanie...", 6 | "Saving..." : "Zapisywanie...", 7 | "Name must not be empty" : "Nazwa nie może być pusta", 8 | "Redirect URI must not be empty" : "Adres URI przekierowania nie może być pusty", 9 | "Redirect URI must be a valid URL" : "Adres URI przekierowania musi być prawidłowym adresem URL", 10 | "Name %s already exists" : "Nazwa %s już istnieje", 11 | "Client id must be a number" : "Client id musi być liczbą", 12 | "Request not valid" : "Nieprawidłowe żądanie", 13 | "This request is not valid. Please contact the administrator if this error persists." : "To żądanie jest nieprawidłowe. Skontaktuj się z administratorem, jeśli problem będzie się powtarzał.", 14 | "You are logged in as %s." : "Jesteś zalogowany jako %s.", 15 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Aplikacja uzyska dostęp do nazwy użytkownika i będzie mogła zarządzać plikami, katalogami i współdzielonymi zasobami.", 16 | "Authorize" : "Uwierzytelnij", 17 | "Switch users to continue" : "Przełącz użytkowników aby kontynuować", 18 | "OAuth 2.0" : "OAuth 2.0", 19 | "Registered clients" : "Zarejestrowani klienci", 20 | "No clients registered." : "Brak zarejestrowanych klientów", 21 | "Name" : "Nazwa", 22 | "Redirection URI" : "Adres URI przekierowania", 23 | "Client Identifier" : "Identyfikator klienta", 24 | "Secret" : "Hasło", 25 | "Subdomains allowed" : "Subdomeny dopuszczone", 26 | "Add client" : "Dodaj klienta", 27 | "Allow subdomains" : "Dopuść subdomeny", 28 | "Add" : "Dodaj", 29 | "Authorized Applications" : "Uwierzytelnione aplikacje", 30 | "No applications authorized." : "Brak uwierzytelnionych aplikacji", 31 | "Are you sure you want to delete this item?" : "Usunąć ten element?", 32 | "Switch user" : "Przełącz użytkownika", 33 | "You are logged in as %s but the application requested access for user %s." : "Jesteś zalogowany jako %s ale aplikacja wymaga dostępu dla użytkownika %s." 34 | }, 35 | "nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"); 36 | -------------------------------------------------------------------------------- /l10n/pl.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "Aplikacja \"{app}\" żąda dostępu do Twojego konta. Zaloguj się aby ją potwierdzić.", 3 | "Deleting..." : "Usuwanie...", 4 | "Saving..." : "Zapisywanie...", 5 | "Name must not be empty" : "Nazwa nie może być pusta", 6 | "Redirect URI must not be empty" : "Adres URI przekierowania nie może być pusty", 7 | "Redirect URI must be a valid URL" : "Adres URI przekierowania musi być prawidłowym adresem URL", 8 | "Name %s already exists" : "Nazwa %s już istnieje", 9 | "Client id must be a number" : "Client id musi być liczbą", 10 | "Request not valid" : "Nieprawidłowe żądanie", 11 | "This request is not valid. Please contact the administrator if this error persists." : "To żądanie jest nieprawidłowe. Skontaktuj się z administratorem, jeśli problem będzie się powtarzał.", 12 | "You are logged in as %s." : "Jesteś zalogowany jako %s.", 13 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Aplikacja uzyska dostęp do nazwy użytkownika i będzie mogła zarządzać plikami, katalogami i współdzielonymi zasobami.", 14 | "Authorize" : "Uwierzytelnij", 15 | "Switch users to continue" : "Przełącz użytkowników aby kontynuować", 16 | "OAuth 2.0" : "OAuth 2.0", 17 | "Registered clients" : "Zarejestrowani klienci", 18 | "No clients registered." : "Brak zarejestrowanych klientów", 19 | "Name" : "Nazwa", 20 | "Redirection URI" : "Adres URI przekierowania", 21 | "Client Identifier" : "Identyfikator klienta", 22 | "Secret" : "Hasło", 23 | "Subdomains allowed" : "Subdomeny dopuszczone", 24 | "Add client" : "Dodaj klienta", 25 | "Allow subdomains" : "Dopuść subdomeny", 26 | "Add" : "Dodaj", 27 | "Authorized Applications" : "Uwierzytelnione aplikacje", 28 | "No applications authorized." : "Brak uwierzytelnionych aplikacji", 29 | "Are you sure you want to delete this item?" : "Usunąć ten element?", 30 | "Switch user" : "Przełącz użytkownika", 31 | "You are logged in as %s but the application requested access for user %s." : "Jesteś zalogowany jako %s ale aplikacja wymaga dostępu dla użytkownika %s." 32 | },"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);" 33 | } -------------------------------------------------------------------------------- /l10n/pt_PT.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "A aplicação \"{app}\" está a solicitar acesso à sua conta. Para autorizá-la, por favor, inicie a sessão primeiro.", 5 | "Deleting..." : "A eliminar...", 6 | "Saving..." : "A guardar...", 7 | "Name must not be empty" : "Nome não deve estar em branco", 8 | "Request not valid" : "Pedido inválido", 9 | "This request is not valid. Please contact the administrator if this error persists." : "Este pedido não é válido. Por favor, contacte o administrador se o erro persistir.", 10 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Este pedido não é válido. Por favor, contacte o administrador do \"%s\" se este erro persistir.", 11 | "The “%s“ application would like permission to access your account" : "A aplicação \"%s\" gostaria de permissão para aceder à sua conta", 12 | "You are logged in as %s." : "Está autenticado como %s.", 13 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "A aplicação terá acesso ao seu nome de utilizador e será permitido que controle os ficheiros, pastas e partilhas.", 14 | "Authorize" : "Autorizar", 15 | "Switch users to continue" : "Mude os utilizadores para continuar", 16 | "OAuth 2.0" : "OAuth 2.0", 17 | "Registered clients" : "Clientes registados", 18 | "No clients registered." : "Sem clientes registados.", 19 | "Name" : "Nome", 20 | "Redirection URI" : "URl de Redireção", 21 | "Client Identifier" : "Identificador de Cliente", 22 | "Secret" : "Segredo", 23 | "Subdomains allowed" : "Permitidos subdomínios", 24 | "Trusted client" : "Cliente confiável", 25 | "Add client" : "Adicionar cliente", 26 | "Allow subdomains" : "Permitir subdomínios", 27 | "Add" : "Adicionar", 28 | "Authorized Applications" : "Aplicações Autorizadas", 29 | "No applications authorized." : "Sem aplicações autorizadas.", 30 | "Are you sure you want to delete this item?" : "Tem a certeza que deseja eliminar este item?", 31 | "Switch user" : "Mudar de utilizador", 32 | "You are logged in as %s but the application requested access for user %s." : "Está autenticado como %s mas a aplicação solicitou acesso para o utilizador %s." 33 | }, 34 | "nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); 35 | -------------------------------------------------------------------------------- /l10n/pt_PT.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "A aplicação \"{app}\" está a solicitar acesso à sua conta. Para autorizá-la, por favor, inicie a sessão primeiro.", 3 | "Deleting..." : "A eliminar...", 4 | "Saving..." : "A guardar...", 5 | "Name must not be empty" : "Nome não deve estar em branco", 6 | "Request not valid" : "Pedido inválido", 7 | "This request is not valid. Please contact the administrator if this error persists." : "Este pedido não é válido. Por favor, contacte o administrador se o erro persistir.", 8 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Este pedido não é válido. Por favor, contacte o administrador do \"%s\" se este erro persistir.", 9 | "The “%s“ application would like permission to access your account" : "A aplicação \"%s\" gostaria de permissão para aceder à sua conta", 10 | "You are logged in as %s." : "Está autenticado como %s.", 11 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "A aplicação terá acesso ao seu nome de utilizador e será permitido que controle os ficheiros, pastas e partilhas.", 12 | "Authorize" : "Autorizar", 13 | "Switch users to continue" : "Mude os utilizadores para continuar", 14 | "OAuth 2.0" : "OAuth 2.0", 15 | "Registered clients" : "Clientes registados", 16 | "No clients registered." : "Sem clientes registados.", 17 | "Name" : "Nome", 18 | "Redirection URI" : "URl de Redireção", 19 | "Client Identifier" : "Identificador de Cliente", 20 | "Secret" : "Segredo", 21 | "Subdomains allowed" : "Permitidos subdomínios", 22 | "Trusted client" : "Cliente confiável", 23 | "Add client" : "Adicionar cliente", 24 | "Allow subdomains" : "Permitir subdomínios", 25 | "Add" : "Adicionar", 26 | "Authorized Applications" : "Aplicações Autorizadas", 27 | "No applications authorized." : "Sem aplicações autorizadas.", 28 | "Are you sure you want to delete this item?" : "Tem a certeza que deseja eliminar este item?", 29 | "Switch user" : "Mudar de utilizador", 30 | "You are logged in as %s but the application requested access for user %s." : "Está autenticado como %s mas a aplicação solicitou acesso para o utilizador %s." 31 | },"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" 32 | } -------------------------------------------------------------------------------- /l10n/sl.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "Request not valid" : "Zahteva ni veljavna", 5 | "This request is not valid. Please contact the administrator if this error persists." : "Zahteva ni veljavna! Stopite v stik s skrbnikom, če se napaka pojavlja pogosto.", 6 | "Back" : "Nazaj", 7 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Po overitvi pridobi program dovoljenje za uporabo uporabniškega imena, s čimer je omogočen dostop do upravljanja datotek, map in souporabe.", 8 | "Authorize" : "Overi", 9 | "OAuth 2.0" : "OAuth 2.0", 10 | "Registered clients" : "Vpisani odjemalci", 11 | "No clients registered." : "Ni vpisanih odjemalcev.", 12 | "Name" : "Ime", 13 | "Redirection URI" : "Preusmeritveni naslov URI", 14 | "Client Identifier" : "Določilo odjemalca", 15 | "Secret" : "Skrivni ključ", 16 | "Subdomains allowed" : "Uporaba poddomen je dovoljena", 17 | "Are you sure you want to delete this item?" : "Ali ste prepričani, da želite izbrisati predmet?", 18 | "Add client" : "Dodaj odjemalca", 19 | "Allow subdomains" : "Dovoli poddomene", 20 | "Add" : "Dodaj", 21 | "Authorized Applications" : "Overjeni programi", 22 | "No applications authorized." : "Ni overjenih programov.", 23 | "Switch user" : "Preklopi uporabnika" 24 | }, 25 | "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"); 26 | -------------------------------------------------------------------------------- /l10n/sl.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Request not valid" : "Zahteva ni veljavna", 3 | "This request is not valid. Please contact the administrator if this error persists." : "Zahteva ni veljavna! Stopite v stik s skrbnikom, če se napaka pojavlja pogosto.", 4 | "Back" : "Nazaj", 5 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Po overitvi pridobi program dovoljenje za uporabo uporabniškega imena, s čimer je omogočen dostop do upravljanja datotek, map in souporabe.", 6 | "Authorize" : "Overi", 7 | "OAuth 2.0" : "OAuth 2.0", 8 | "Registered clients" : "Vpisani odjemalci", 9 | "No clients registered." : "Ni vpisanih odjemalcev.", 10 | "Name" : "Ime", 11 | "Redirection URI" : "Preusmeritveni naslov URI", 12 | "Client Identifier" : "Določilo odjemalca", 13 | "Secret" : "Skrivni ključ", 14 | "Subdomains allowed" : "Uporaba poddomen je dovoljena", 15 | "Are you sure you want to delete this item?" : "Ali ste prepričani, da želite izbrisati predmet?", 16 | "Add client" : "Dodaj odjemalca", 17 | "Allow subdomains" : "Dovoli poddomene", 18 | "Add" : "Dodaj", 19 | "Authorized Applications" : "Overjeni programi", 20 | "No applications authorized." : "Ni overjenih programov.", 21 | "Switch user" : "Preklopi uporabnika" 22 | },"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);" 23 | } -------------------------------------------------------------------------------- /l10n/sq.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "Aplikacioni “{app}” po kërkon hyrje në llogarinë tuaj. Që ta autorizoni, ju lutemi, së pari bëni hyrjen në të.", 5 | "Deleting..." : "Po fshihet…", 6 | "Saving..." : "Po ruhet …", 7 | "Name must not be empty" : "Emri s’duhet të jetë i zbrazët", 8 | "Redirect URI must not be empty" : "URI ridrejtimi s’duhet të jetë e zbrazët", 9 | "Redirect URI must be a valid URL" : "URI ridrejtimi duhet të jetë një URL e vlefshme", 10 | "Name %s already exists" : "Emri %s ekziston tashmë", 11 | "Cannot set localhost as trusted." : "S’ujdiset dot localhost-i si i besuar.", 12 | "Client id must be a number" : "ID-ja e klientit duhet të jetë një numër", 13 | "The application was authorized successfully. You can now close this window." : "Aplikacioni u autorizua me sukses. Tani mund ta mbyllni këtë dritare.", 14 | "Request not valid" : "Kërkesë jo e vlefshme", 15 | "This request is not valid. Please contact the administrator if this error persists." : "Kjo kërkesë s’është e vlefshme. Ju lutemi, lidhuni me përgjegjësin, nëse vazhdon ky gabim.", 16 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Kjo kërkesë s’është e vlefshme. Ju lutemi, nëse ky gabim vazhdon, lidhuni me përgjegjësin e “%s”.", 17 | "The “%s“ application would like permission to access your account" : "Aplikacioni “%s“ do të donte leje të hynte në llogarinë tuaj", 18 | "You are logged in as %s." : "Jeni i futur si %s.", 19 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Aplikacioni do të mund të përdorë emrin tuaj të përdoruesit dhe do të lejohet të administrojë kartela, dosje dhe pjesë.", 20 | "Authorize" : "Autorizoje", 21 | "Switch users to continue" : "Që të vazhdohet, këmbeni përdorues", 22 | "OAuth 2.0" : "OAuth 2.0", 23 | "Registered clients" : "Klientë të regjistruar", 24 | "No clients registered." : "S’ka klientë të regjistruar.", 25 | "Name" : "Emër", 26 | "Redirection URI" : "URI Ridrejtimi", 27 | "Client Identifier" : "Identifikues Klienti", 28 | "Secret" : "E fshehtë", 29 | "Subdomains allowed" : "Nënpërkatësi të lejuara", 30 | "Trusted client" : "Klient i besuar", 31 | "Add client" : "Shtoni klient", 32 | "Allow subdomains" : "Lejo nënpërkatësi", 33 | "Add" : "Shtoje", 34 | "Authorized Applications" : "Aplikacione të Autorizuar", 35 | "No applications authorized." : "S’ka aplikacione të autorizuar.", 36 | "Are you sure you want to delete this item?" : "Jeni i sigurt se doni të fshihet ky objekt?", 37 | "Switch user" : "Këmbe përdorues", 38 | "You are logged in as %s but the application requested access for user %s." : "Keni bërë hyrjen si %s, por aplikacioni kërkoi hyrje për përdoruesin %s." 39 | }, 40 | "nplurals=2; plural=(n != 1);"); 41 | -------------------------------------------------------------------------------- /l10n/sq.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "Aplikacioni “{app}” po kërkon hyrje në llogarinë tuaj. Që ta autorizoni, ju lutemi, së pari bëni hyrjen në të.", 3 | "Deleting..." : "Po fshihet…", 4 | "Saving..." : "Po ruhet …", 5 | "Name must not be empty" : "Emri s’duhet të jetë i zbrazët", 6 | "Redirect URI must not be empty" : "URI ridrejtimi s’duhet të jetë e zbrazët", 7 | "Redirect URI must be a valid URL" : "URI ridrejtimi duhet të jetë një URL e vlefshme", 8 | "Name %s already exists" : "Emri %s ekziston tashmë", 9 | "Cannot set localhost as trusted." : "S’ujdiset dot localhost-i si i besuar.", 10 | "Client id must be a number" : "ID-ja e klientit duhet të jetë një numër", 11 | "The application was authorized successfully. You can now close this window." : "Aplikacioni u autorizua me sukses. Tani mund ta mbyllni këtë dritare.", 12 | "Request not valid" : "Kërkesë jo e vlefshme", 13 | "This request is not valid. Please contact the administrator if this error persists." : "Kjo kërkesë s’është e vlefshme. Ju lutemi, lidhuni me përgjegjësin, nëse vazhdon ky gabim.", 14 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Kjo kërkesë s’është e vlefshme. Ju lutemi, nëse ky gabim vazhdon, lidhuni me përgjegjësin e “%s”.", 15 | "The “%s“ application would like permission to access your account" : "Aplikacioni “%s“ do të donte leje të hynte në llogarinë tuaj", 16 | "You are logged in as %s." : "Jeni i futur si %s.", 17 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Aplikacioni do të mund të përdorë emrin tuaj të përdoruesit dhe do të lejohet të administrojë kartela, dosje dhe pjesë.", 18 | "Authorize" : "Autorizoje", 19 | "Switch users to continue" : "Që të vazhdohet, këmbeni përdorues", 20 | "OAuth 2.0" : "OAuth 2.0", 21 | "Registered clients" : "Klientë të regjistruar", 22 | "No clients registered." : "S’ka klientë të regjistruar.", 23 | "Name" : "Emër", 24 | "Redirection URI" : "URI Ridrejtimi", 25 | "Client Identifier" : "Identifikues Klienti", 26 | "Secret" : "E fshehtë", 27 | "Subdomains allowed" : "Nënpërkatësi të lejuara", 28 | "Trusted client" : "Klient i besuar", 29 | "Add client" : "Shtoni klient", 30 | "Allow subdomains" : "Lejo nënpërkatësi", 31 | "Add" : "Shtoje", 32 | "Authorized Applications" : "Aplikacione të Autorizuar", 33 | "No applications authorized." : "S’ka aplikacione të autorizuar.", 34 | "Are you sure you want to delete this item?" : "Jeni i sigurt se doni të fshihet ky objekt?", 35 | "Switch user" : "Këmbe përdorues", 36 | "You are logged in as %s but the application requested access for user %s." : "Keni bërë hyrjen si %s, por aplikacioni kërkoi hyrje për përdoruesin %s." 37 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 38 | } -------------------------------------------------------------------------------- /l10n/sv.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "Deleting..." : "Raderar...", 5 | "Saving..." : "Sparar...", 6 | "Name must not be empty" : "Namnet får inte vara tomt", 7 | "Name %s already exists" : "Namnet %s finns redan", 8 | "Cannot set localhost as trusted." : "Kan inte sätta localhost som betrodd.", 9 | "Client id must be a number" : "Klient id måste vara ett nummer", 10 | "Request not valid" : "Förfrågan ej giltig", 11 | "This request is not valid. Please contact the administrator if this error persists." : "Förfrågningen är inte giltig. Var vänlig kontakta administratören om det här felet kvarstår.", 12 | "You are logged in as %s." : "Du är inloggad som %s.", 13 | "Authorize" : "Autentisera", 14 | "Switch users to continue" : "Byt användare för att fortsätta", 15 | "OAuth 2.0" : "OAuth 2.0", 16 | "Registered clients" : "Registrerade klienter", 17 | "No clients registered." : "Inga registrerade klienter", 18 | "Name" : "Namn", 19 | "Redirection URI" : "Omdirigerings-URI", 20 | "Client Identifier" : "Klientidentifierare", 21 | "Secret" : "Hemlig", 22 | "Subdomains allowed" : "Subdomäner tillåtna", 23 | "Trusted client" : "Betrodd klient", 24 | "Add client" : "Lägg till klient", 25 | "Allow subdomains" : "Tillåt subdomäner", 26 | "Add" : "Lägg till", 27 | "Authorized Applications" : "Autentiserade applikationer", 28 | "No applications authorized." : "Inga autentiserade applikationer.", 29 | "Are you sure you want to delete this item?" : "Vill du ta bort objektet?", 30 | "Switch user" : "Byt användare" 31 | }, 32 | "nplurals=2; plural=(n != 1);"); 33 | -------------------------------------------------------------------------------- /l10n/sv.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Deleting..." : "Raderar...", 3 | "Saving..." : "Sparar...", 4 | "Name must not be empty" : "Namnet får inte vara tomt", 5 | "Name %s already exists" : "Namnet %s finns redan", 6 | "Cannot set localhost as trusted." : "Kan inte sätta localhost som betrodd.", 7 | "Client id must be a number" : "Klient id måste vara ett nummer", 8 | "Request not valid" : "Förfrågan ej giltig", 9 | "This request is not valid. Please contact the administrator if this error persists." : "Förfrågningen är inte giltig. Var vänlig kontakta administratören om det här felet kvarstår.", 10 | "You are logged in as %s." : "Du är inloggad som %s.", 11 | "Authorize" : "Autentisera", 12 | "Switch users to continue" : "Byt användare för att fortsätta", 13 | "OAuth 2.0" : "OAuth 2.0", 14 | "Registered clients" : "Registrerade klienter", 15 | "No clients registered." : "Inga registrerade klienter", 16 | "Name" : "Namn", 17 | "Redirection URI" : "Omdirigerings-URI", 18 | "Client Identifier" : "Klientidentifierare", 19 | "Secret" : "Hemlig", 20 | "Subdomains allowed" : "Subdomäner tillåtna", 21 | "Trusted client" : "Betrodd klient", 22 | "Add client" : "Lägg till klient", 23 | "Allow subdomains" : "Tillåt subdomäner", 24 | "Add" : "Lägg till", 25 | "Authorized Applications" : "Autentiserade applikationer", 26 | "No applications authorized." : "Inga autentiserade applikationer.", 27 | "Are you sure you want to delete this item?" : "Vill du ta bort objektet?", 28 | "Switch user" : "Byt användare" 29 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 30 | } -------------------------------------------------------------------------------- /l10n/th_TH.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "แอปฯ \"{app}\" ต้องการขอสิทธิ์การเข้าถึงบัญชีของคุณ หากต้องการให้สิทธิ์โปรดเข้าสู่ระบบก่อน", 5 | "Deleting..." : "กำลังลบ...", 6 | "Saving..." : "กำลังบันทึกข้อมูล...", 7 | "Name must not be empty" : "ห้ามเว้นว่างชื่อ", 8 | "Redirect URI must not be empty" : "URL การเปลี่ยนเส้นทางจะต้องไม่ว่างเปล่า", 9 | "Redirect URI must be a valid URL" : "URL สำหรับเปลี่ยนเส้นทางไม่ถูกต้อง", 10 | "Name %s already exists" : "ชื่อ %s ถูกใช้แล้ว", 11 | "Cannot set localhost as trusted." : "ไม่สามารถตั้งค่า localhost เป็น trusted", 12 | "Client id must be a number" : "รหัสไคลเอนต์จะต้องเป็นตัวเลข", 13 | "The application was authorized successfully. You can now close this window." : "แอปฯได้รับอนุญาตเรียบร้อยแล้ว ขณะนี้คุณสามารถปิดหน้าต่างนี้ได้เลย", 14 | "Request not valid" : "คำร้องขอไม่ถูกต้อง", 15 | "This request is not valid. Please contact the administrator if this error persists." : "คำร้องขอนี้ไม่ถูกต้อง โปรดติดต่อผู้ดูแลระบบหากยังพบข้อผิดพลาดนี้อยู่", 16 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "คำขอนี้ไม่ถูกต้อง โปรดติดต่อผู้ดูแลระบบ “%s” ถ้ายังพบข้อผิดพลาดนี้อยู่", 17 | "The “%s“ application would like permission to access your account" : "แอปฯ “%s” ต้องการสิทธิ์ในการเข้าถึงบัญชีของคุณ", 18 | "You are logged in as %s." : "คุณเข้าสู่ระบบในฐานะ %s", 19 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "แอปพลิเคชันจะเข้าถึงชื่อผู้ใช้ของคุณและจะได้รับอนุญาตให้จัดการไฟล์ โฟลเดอร์และการแชร์ด้วย", 20 | "Authorize" : "การอนุญาต", 21 | "Switch users to continue" : "เปลี่ยนผู้ใช้เพื่อดำเนินการต่อ", 22 | "OAuth 2.0" : "OAuth 2.0", 23 | "Registered clients" : "ไคลเอนต์ที่ลงทะเบียนแล้ว", 24 | "No clients registered." : "ไม่มีไคลเอนต์ที่ลงทะเบียน", 25 | "Name" : "ชื่อ", 26 | "Redirection URI" : "การเปลี่ยนเส้นทาง URL", 27 | "Client Identifier" : "รหัสประจำตัวไคลเอนต์", 28 | "Secret" : "ความลับ", 29 | "Subdomains allowed" : "โดเมนย่อยได้รับอนุญาตแล้ว", 30 | "Trusted client" : "เชื่อถือไคลเอ็นต์แล้ว", 31 | "Add client" : "เพิ่มไคลเอนต์", 32 | "Allow subdomains" : "อนุญาตให้ใช้โดเมนย่อย", 33 | "Add" : "เพิ่ม", 34 | "Authorized Applications" : "แอปพลิเคชันที่ได้รับอนุญาตแล้ว", 35 | "No applications authorized." : "ไม่มีแอปพลิเคชันที่ได้รับอนุญาต", 36 | "Are you sure you want to delete this item?" : "คุณแน่ใจหรือว่าต้องการลบรายการนี้?", 37 | "Switch user" : "เปลี่ยนผู้ใช้", 38 | "You are logged in as %s but the application requested access for user %s." : "คุณเข้าสู่ระบบในชื่อ %s แต่แอปพลิเคชันให้สิทธิการเข้าถึงสำหรับผู้ใช้ %s เท่านั้น" 39 | }, 40 | "nplurals=1; plural=0;"); 41 | -------------------------------------------------------------------------------- /l10n/th_TH.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "แอปฯ \"{app}\" ต้องการขอสิทธิ์การเข้าถึงบัญชีของคุณ หากต้องการให้สิทธิ์โปรดเข้าสู่ระบบก่อน", 3 | "Deleting..." : "กำลังลบ...", 4 | "Saving..." : "กำลังบันทึกข้อมูล...", 5 | "Name must not be empty" : "ห้ามเว้นว่างชื่อ", 6 | "Redirect URI must not be empty" : "URL การเปลี่ยนเส้นทางจะต้องไม่ว่างเปล่า", 7 | "Redirect URI must be a valid URL" : "URL สำหรับเปลี่ยนเส้นทางไม่ถูกต้อง", 8 | "Name %s already exists" : "ชื่อ %s ถูกใช้แล้ว", 9 | "Cannot set localhost as trusted." : "ไม่สามารถตั้งค่า localhost เป็น trusted", 10 | "Client id must be a number" : "รหัสไคลเอนต์จะต้องเป็นตัวเลข", 11 | "The application was authorized successfully. You can now close this window." : "แอปฯได้รับอนุญาตเรียบร้อยแล้ว ขณะนี้คุณสามารถปิดหน้าต่างนี้ได้เลย", 12 | "Request not valid" : "คำร้องขอไม่ถูกต้อง", 13 | "This request is not valid. Please contact the administrator if this error persists." : "คำร้องขอนี้ไม่ถูกต้อง โปรดติดต่อผู้ดูแลระบบหากยังพบข้อผิดพลาดนี้อยู่", 14 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "คำขอนี้ไม่ถูกต้อง โปรดติดต่อผู้ดูแลระบบ “%s” ถ้ายังพบข้อผิดพลาดนี้อยู่", 15 | "The “%s“ application would like permission to access your account" : "แอปฯ “%s” ต้องการสิทธิ์ในการเข้าถึงบัญชีของคุณ", 16 | "You are logged in as %s." : "คุณเข้าสู่ระบบในฐานะ %s", 17 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "แอปพลิเคชันจะเข้าถึงชื่อผู้ใช้ของคุณและจะได้รับอนุญาตให้จัดการไฟล์ โฟลเดอร์และการแชร์ด้วย", 18 | "Authorize" : "การอนุญาต", 19 | "Switch users to continue" : "เปลี่ยนผู้ใช้เพื่อดำเนินการต่อ", 20 | "OAuth 2.0" : "OAuth 2.0", 21 | "Registered clients" : "ไคลเอนต์ที่ลงทะเบียนแล้ว", 22 | "No clients registered." : "ไม่มีไคลเอนต์ที่ลงทะเบียน", 23 | "Name" : "ชื่อ", 24 | "Redirection URI" : "การเปลี่ยนเส้นทาง URL", 25 | "Client Identifier" : "รหัสประจำตัวไคลเอนต์", 26 | "Secret" : "ความลับ", 27 | "Subdomains allowed" : "โดเมนย่อยได้รับอนุญาตแล้ว", 28 | "Trusted client" : "เชื่อถือไคลเอ็นต์แล้ว", 29 | "Add client" : "เพิ่มไคลเอนต์", 30 | "Allow subdomains" : "อนุญาตให้ใช้โดเมนย่อย", 31 | "Add" : "เพิ่ม", 32 | "Authorized Applications" : "แอปพลิเคชันที่ได้รับอนุญาตแล้ว", 33 | "No applications authorized." : "ไม่มีแอปพลิเคชันที่ได้รับอนุญาต", 34 | "Are you sure you want to delete this item?" : "คุณแน่ใจหรือว่าต้องการลบรายการนี้?", 35 | "Switch user" : "เปลี่ยนผู้ใช้", 36 | "You are logged in as %s but the application requested access for user %s." : "คุณเข้าสู่ระบบในชื่อ %s แต่แอปพลิเคชันให้สิทธิการเข้าถึงสำหรับผู้ใช้ %s เท่านั้น" 37 | },"pluralForm" :"nplurals=1; plural=0;" 38 | } -------------------------------------------------------------------------------- /l10n/tr.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "\"{app}\" uygulaması hesabınıza erişim istiyor. Yetkilendirmek için lütfen önce giriş yapın.", 5 | "Deleting..." : "Siliniyor...", 6 | "Saving..." : "Kaydediliyor...", 7 | "Name must not be empty" : "İsim boş olmamalı", 8 | "Redirect URI must not be empty" : "Yönlendırme URI'ı boş olmamalı", 9 | "Redirect URI must be a valid URL" : "Yönlendırme URI'ı geçerli bir URL olmalı", 10 | "Name %s already exists" : "%s ismi zaten mevcut", 11 | "Cannot set localhost as trusted." : "Localhost güvenilir olarak ayarlanamıyor.", 12 | "Client id must be a number" : "İstemci kimliği bir sayı olmalıdır", 13 | "The application was authorized successfully. You can now close this window." : "Uygulama başarıyla yetkilendirildi. Şimdi bu pencereyi kapatabilirsiniz.", 14 | "Request not valid" : "İstek geçerli değil", 15 | "This request is not valid. Please contact the administrator if this error persists." : "Bu istek geçerli değil. Bu hata devam ederse lütfen yöneticiyle iletişime geçin.", 16 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Bu istek geçerli değil. Bu hata devam ederse lütfen \"%s\" yöneticisine başvurun.", 17 | "The “%s“ application would like permission to access your account" : "\"%s\" uygulaması hesabınıza erişme izni istiyor", 18 | "You are logged in as %s." : "%s olarak oturum açtınız.", 19 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Uygulama kullanıcı adınıza erişir ve dosyaları, klasörleri ve paylaşımları yönetmesine izin verilir.", 20 | "Authorize" : "Yetkilendir", 21 | "Switch users to continue" : "Devam etmek için kullanıcı değiştir", 22 | "OAuth 2.0" : "OAuth 2.0", 23 | "Registered clients" : "Kayıtlı istemciler", 24 | "No clients registered." : "Hiçbir istemci kayıtlı değil.", 25 | "Name" : "Ad", 26 | "Redirection URI" : "Yönlendirme URI'ı", 27 | "Client Identifier" : "İstemci Kimliği", 28 | "Secret" : "Parola", 29 | "Subdomains allowed" : "Alt alan adlarına izin verilmiştir", 30 | "Trusted client" : "Güvenilir istemci", 31 | "Add client" : "İstemci ekle", 32 | "Allow subdomains" : "Alt alan adlarına izin ver", 33 | "Add" : "Ekle", 34 | "Authorized Applications" : "Yetkilendirilmiş Uygulamalar", 35 | "No applications authorized." : "Hiçbir uygulama yetkilendirilmedi.", 36 | "Are you sure you want to delete this item?" : "Bu ögeyi silmek istediğinize emin misiniz?", 37 | "Switch user" : "Kullanıcı değiştir", 38 | "You are logged in as %s but the application requested access for user %s." : "%s olarak giriş yaptınız ancak uygulama %s kullanıcısı için erişim istedi." 39 | }, 40 | "nplurals=2; plural=(n > 1);"); 41 | -------------------------------------------------------------------------------- /l10n/tr.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "\"{app}\" uygulaması hesabınıza erişim istiyor. Yetkilendirmek için lütfen önce giriş yapın.", 3 | "Deleting..." : "Siliniyor...", 4 | "Saving..." : "Kaydediliyor...", 5 | "Name must not be empty" : "İsim boş olmamalı", 6 | "Redirect URI must not be empty" : "Yönlendırme URI'ı boş olmamalı", 7 | "Redirect URI must be a valid URL" : "Yönlendırme URI'ı geçerli bir URL olmalı", 8 | "Name %s already exists" : "%s ismi zaten mevcut", 9 | "Cannot set localhost as trusted." : "Localhost güvenilir olarak ayarlanamıyor.", 10 | "Client id must be a number" : "İstemci kimliği bir sayı olmalıdır", 11 | "The application was authorized successfully. You can now close this window." : "Uygulama başarıyla yetkilendirildi. Şimdi bu pencereyi kapatabilirsiniz.", 12 | "Request not valid" : "İstek geçerli değil", 13 | "This request is not valid. Please contact the administrator if this error persists." : "Bu istek geçerli değil. Bu hata devam ederse lütfen yöneticiyle iletişime geçin.", 14 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "Bu istek geçerli değil. Bu hata devam ederse lütfen \"%s\" yöneticisine başvurun.", 15 | "The “%s“ application would like permission to access your account" : "\"%s\" uygulaması hesabınıza erişme izni istiyor", 16 | "You are logged in as %s." : "%s olarak oturum açtınız.", 17 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Uygulama kullanıcı adınıza erişir ve dosyaları, klasörleri ve paylaşımları yönetmesine izin verilir.", 18 | "Authorize" : "Yetkilendir", 19 | "Switch users to continue" : "Devam etmek için kullanıcı değiştir", 20 | "OAuth 2.0" : "OAuth 2.0", 21 | "Registered clients" : "Kayıtlı istemciler", 22 | "No clients registered." : "Hiçbir istemci kayıtlı değil.", 23 | "Name" : "Ad", 24 | "Redirection URI" : "Yönlendirme URI'ı", 25 | "Client Identifier" : "İstemci Kimliği", 26 | "Secret" : "Parola", 27 | "Subdomains allowed" : "Alt alan adlarına izin verilmiştir", 28 | "Trusted client" : "Güvenilir istemci", 29 | "Add client" : "İstemci ekle", 30 | "Allow subdomains" : "Alt alan adlarına izin ver", 31 | "Add" : "Ekle", 32 | "Authorized Applications" : "Yetkilendirilmiş Uygulamalar", 33 | "No applications authorized." : "Hiçbir uygulama yetkilendirilmedi.", 34 | "Are you sure you want to delete this item?" : "Bu ögeyi silmek istediğinize emin misiniz?", 35 | "Switch user" : "Kullanıcı değiştir", 36 | "You are logged in as %s but the application requested access for user %s." : "%s olarak giriş yaptınız ancak uygulama %s kullanıcısı için erişim istedi." 37 | },"pluralForm" :"nplurals=2; plural=(n > 1);" 38 | } -------------------------------------------------------------------------------- /l10n/ug.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "«{App}» دېتالى ھېساباتىڭىزنى زىيارەت قىلىشنى تەلەپ قىلىدۇ. ھوقۇق بېرىش ئۈچۈن ، ئالدى بىلەن كىرىڭ.", 5 | "Deleting..." : "ئۆچۈرۈش ...", 6 | "Saving..." : "ساقلاۋاتىدۇ…", 7 | "Name must not be empty" : "ئىسىم قۇرۇق بولماسلىقى كېرەك", 8 | "Redirect URI must not be empty" : "URI نى قايتا نىشانلاش كېرەك", 9 | "Redirect URI must be a valid URL" : "URI نى قايتا نىشانلاش چوقۇم ئۈنۈملۈك URL بولۇشى كېرەك", 10 | "Name %s already exists" : "ئىسمى% s ئاللىبۇرۇن مەۋجۇت", 11 | "Cannot set localhost as trusted." : "Localhost نى ئىشەنچلىك قىلىپ تەڭشىيەلمەيدۇ.", 12 | "Client id must be a number" : "Client id چوقۇم بىر سان بولۇشى كېرەك", 13 | "The application was authorized successfully. You can now close this window." : "بۇ ئىلتىماس مۇۋەپپەقىيەتلىك ھوقۇق بېرىلگەن. سىز ھازىر بۇ كۆزنەكنى ياپالايسىز.", 14 | "Request not valid" : "تەلەپ ئىناۋەتلىك ئەمەس", 15 | "This request is not valid. Please contact the administrator if this error persists." : "بۇ تەلەپ ئىناۋەتلىك ئەمەس. ئەگەر بۇ خاتالىق داۋاملاشسا باشقۇرغۇچى بىلەن ئالاقىلىشىڭ.", 16 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "بۇ تەلەپ ئىناۋەتلىك ئەمەس. ئەگەر بۇ خاتالىق داۋاملاشسا «% s» نىڭ باشقۇرغۇچىسى بىلەن ئالاقىلىشىڭ.", 17 | "The “%s“ application would like permission to access your account" : "«% S» ئىلتىماسى ھېساباتىڭىزغا كىرىشكە رۇخسەت قىلىدۇ", 18 | "You are logged in as %s." : "سىز% s دەپ تىزىملىتىسىز.", 19 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "بۇ پروگرامما ئىشلەتكۈچى ئىسمىڭىزنى زىيارەت قىلىدۇ ھەمدە ھۆججەت ، ھۆججەت قىسقۇچ ۋە ئورتاقلىشىشنى باشقۇرىدۇ.", 20 | "Authorize" : "ھوقۇق بېرىش", 21 | "Switch users to continue" : "ئىشلەتكۈچىلەرنى ئالماشتۇرۇڭ", 22 | "OAuth 2.0" : "OAuth 2.0", 23 | "Registered clients" : "تىزىملاتقان خېرىدارلار", 24 | "No clients registered." : "ھېچقانداق خېرىدار تىزىملاتمىغان.", 25 | "Name" : "ئاتى", 26 | "Redirection URI" : "قايتا نىشانلاش URI", 27 | "Client Identifier" : "Client Identifier", 28 | "Secret" : "مەخپىي", 29 | "Subdomains allowed" : "تارماق تور بېكەت رۇخسەت قىلىندى", 30 | "Trusted client" : "ئىشەنچلىك خېرىدار", 31 | "Add client" : "خېرىدار قوشۇڭ", 32 | "Allow subdomains" : "تارماق تور بېكەتكە يول قويۇڭ", 33 | "Add" : "قوش", 34 | "Authorized Applications" : "ھوقۇق بېرىلگەن پروگراممىلار", 35 | "No applications authorized." : "ئىجازەتنامە يوق.", 36 | "Are you sure you want to delete this item?" : "بۇ تۈرنى ئۆچۈرمەكچىمۇ؟", 37 | "Switch user" : "ئىشلەتكۈچىنى ئالماشتۇرۇڭ", 38 | "You are logged in as %s but the application requested access for user %s." : "سىز% s دەپ تىزىملىتىپ كىردىڭىز ، ئەمما قوللىنىشچان پروگرامما% s نى زىيارەت قىلىشنى تەلەپ قىلدى." 39 | }, 40 | "nplurals=2; plural=(n != 1);"); 41 | -------------------------------------------------------------------------------- /l10n/ug.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "«{App}» دېتالى ھېساباتىڭىزنى زىيارەت قىلىشنى تەلەپ قىلىدۇ. ھوقۇق بېرىش ئۈچۈن ، ئالدى بىلەن كىرىڭ.", 3 | "Deleting..." : "ئۆچۈرۈش ...", 4 | "Saving..." : "ساقلاۋاتىدۇ…", 5 | "Name must not be empty" : "ئىسىم قۇرۇق بولماسلىقى كېرەك", 6 | "Redirect URI must not be empty" : "URI نى قايتا نىشانلاش كېرەك", 7 | "Redirect URI must be a valid URL" : "URI نى قايتا نىشانلاش چوقۇم ئۈنۈملۈك URL بولۇشى كېرەك", 8 | "Name %s already exists" : "ئىسمى% s ئاللىبۇرۇن مەۋجۇت", 9 | "Cannot set localhost as trusted." : "Localhost نى ئىشەنچلىك قىلىپ تەڭشىيەلمەيدۇ.", 10 | "Client id must be a number" : "Client id چوقۇم بىر سان بولۇشى كېرەك", 11 | "The application was authorized successfully. You can now close this window." : "بۇ ئىلتىماس مۇۋەپپەقىيەتلىك ھوقۇق بېرىلگەن. سىز ھازىر بۇ كۆزنەكنى ياپالايسىز.", 12 | "Request not valid" : "تەلەپ ئىناۋەتلىك ئەمەس", 13 | "This request is not valid. Please contact the administrator if this error persists." : "بۇ تەلەپ ئىناۋەتلىك ئەمەس. ئەگەر بۇ خاتالىق داۋاملاشسا باشقۇرغۇچى بىلەن ئالاقىلىشىڭ.", 14 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "بۇ تەلەپ ئىناۋەتلىك ئەمەس. ئەگەر بۇ خاتالىق داۋاملاشسا «% s» نىڭ باشقۇرغۇچىسى بىلەن ئالاقىلىشىڭ.", 15 | "The “%s“ application would like permission to access your account" : "«% S» ئىلتىماسى ھېساباتىڭىزغا كىرىشكە رۇخسەت قىلىدۇ", 16 | "You are logged in as %s." : "سىز% s دەپ تىزىملىتىسىز.", 17 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "بۇ پروگرامما ئىشلەتكۈچى ئىسمىڭىزنى زىيارەت قىلىدۇ ھەمدە ھۆججەت ، ھۆججەت قىسقۇچ ۋە ئورتاقلىشىشنى باشقۇرىدۇ.", 18 | "Authorize" : "ھوقۇق بېرىش", 19 | "Switch users to continue" : "ئىشلەتكۈچىلەرنى ئالماشتۇرۇڭ", 20 | "OAuth 2.0" : "OAuth 2.0", 21 | "Registered clients" : "تىزىملاتقان خېرىدارلار", 22 | "No clients registered." : "ھېچقانداق خېرىدار تىزىملاتمىغان.", 23 | "Name" : "ئاتى", 24 | "Redirection URI" : "قايتا نىشانلاش URI", 25 | "Client Identifier" : "Client Identifier", 26 | "Secret" : "مەخپىي", 27 | "Subdomains allowed" : "تارماق تور بېكەت رۇخسەت قىلىندى", 28 | "Trusted client" : "ئىشەنچلىك خېرىدار", 29 | "Add client" : "خېرىدار قوشۇڭ", 30 | "Allow subdomains" : "تارماق تور بېكەتكە يول قويۇڭ", 31 | "Add" : "قوش", 32 | "Authorized Applications" : "ھوقۇق بېرىلگەن پروگراممىلار", 33 | "No applications authorized." : "ئىجازەتنامە يوق.", 34 | "Are you sure you want to delete this item?" : "بۇ تۈرنى ئۆچۈرمەكچىمۇ؟", 35 | "Switch user" : "ئىشلەتكۈچىنى ئالماشتۇرۇڭ", 36 | "You are logged in as %s but the application requested access for user %s." : "سىز% s دەپ تىزىملىتىپ كىردىڭىز ، ئەمما قوللىنىشچان پروگرامما% s نى زىيارەت قىلىشنى تەلەپ قىلدى." 37 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 38 | } -------------------------------------------------------------------------------- /l10n/vi.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "Do you really like to authorize the application “" : "Bạn có thật sự cho phép ứng dụng này", 5 | "”?" : "?", 6 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Ứng dụng sẽ truy cập tên đăng nhập của bạn và sẽ được phép quản lý các tệp, thư mục và chia sẻ.", 7 | "Authorize" : "Cho phép", 8 | "Cancel" : "Hủy", 9 | "Registered clients" : "Khách đã đãng kí", 10 | "No clients registered." : "Không có khách đăng kí", 11 | "Name" : "Tên", 12 | "Client Identifier" : "ID khách hàng", 13 | "Secret" : "Bí mật", 14 | "Are you sure you want to delete this item?" : "Bạn có chắc chắn muốn xóa ?", 15 | "Add client" : "Thêm khách", 16 | "Add" : "Thêm", 17 | "Authorized Applications" : "Ứng dụng được cho phép", 18 | "No applications authorized." : "Không có ứng dụng được cho phép" 19 | }, 20 | "nplurals=1; plural=0;"); 21 | -------------------------------------------------------------------------------- /l10n/vi.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Do you really like to authorize the application “" : "Bạn có thật sự cho phép ứng dụng này", 3 | "”?" : "?", 4 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "Ứng dụng sẽ truy cập tên đăng nhập của bạn và sẽ được phép quản lý các tệp, thư mục và chia sẻ.", 5 | "Authorize" : "Cho phép", 6 | "Cancel" : "Hủy", 7 | "Registered clients" : "Khách đã đãng kí", 8 | "No clients registered." : "Không có khách đăng kí", 9 | "Name" : "Tên", 10 | "Client Identifier" : "ID khách hàng", 11 | "Secret" : "Bí mật", 12 | "Are you sure you want to delete this item?" : "Bạn có chắc chắn muốn xóa ?", 13 | "Add client" : "Thêm khách", 14 | "Add" : "Thêm", 15 | "Authorized Applications" : "Ứng dụng được cho phép", 16 | "No applications authorized." : "Không có ứng dụng được cho phép" 17 | },"pluralForm" :"nplurals=1; plural=0;" 18 | } -------------------------------------------------------------------------------- /l10n/zh_CN.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "应用程序“{app}”正在请求访问您的账户。请登录后授予其权限。", 5 | "Deleting..." : "正在删除...", 6 | "Saving..." : "保存中...", 7 | "Name must not be empty" : "名称不能为空", 8 | "Redirect URI must not be empty" : "名称不能为空", 9 | "Redirect URI must be a valid URL" : "重定向 URI 必须是有效的 URL", 10 | "Name %s already exists" : "名称%s已存在", 11 | "Cannot set localhost as trusted." : "无法将 localhost 设置为受信任。", 12 | "Client id must be a number" : "客户端 ID 必须是数字", 13 | "The application was authorized successfully. You can now close this window." : "应用程序已被成功授权。现在您可以关掉这个窗口了。", 14 | "Request not valid" : "无效的请求", 15 | "This request is not valid. Please contact the administrator if this error persists." : "该请求无效。如果此错误仍然存在,请联系管理员。", 16 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "该请求无效。如果此错误仍然存在,请与“%s”的管理员联系。", 17 | "The “%s“ application would like permission to access your account" : "应用程序 “%s”想要访问您的帐户", 18 | "You are logged in as %s." : "你已登入为%s。", 19 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "该应用程序将访问您的用户名,并将被允许管理文件、文件夹和共享。", 20 | "Authorize" : "授权", 21 | "Switch users to continue" : "变更用户以继续", 22 | "OAuth 2.0" : "OAuth 2.0", 23 | "Registered clients" : "已注册的客户端", 24 | "No clients registered." : "没有已注册的客户端", 25 | "Name" : "名称", 26 | "Redirection URI" : "重定向URI", 27 | "Client Identifier" : "客户端标识符", 28 | "Secret" : "密码", 29 | "Subdomains allowed" : "允许子域名", 30 | "Trusted client" : "已信任的客户端", 31 | "Add client" : "增加客户端", 32 | "Allow subdomains" : "允许子域名", 33 | "Add" : "增加", 34 | "Authorized Applications" : "已授权的应用", 35 | "No applications authorized." : "没有被授权的应用。", 36 | "Are you sure you want to delete this item?" : "确定删除该项?", 37 | "Switch user" : "切换用户", 38 | "You are logged in as %s but the application requested access for user %s." : "您已登录%s但是应用要求访问用户%s。" 39 | }, 40 | "nplurals=1; plural=0;"); 41 | -------------------------------------------------------------------------------- /l10n/zh_CN.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "应用程序“{app}”正在请求访问您的账户。请登录后授予其权限。", 3 | "Deleting..." : "正在删除...", 4 | "Saving..." : "保存中...", 5 | "Name must not be empty" : "名称不能为空", 6 | "Redirect URI must not be empty" : "名称不能为空", 7 | "Redirect URI must be a valid URL" : "重定向 URI 必须是有效的 URL", 8 | "Name %s already exists" : "名称%s已存在", 9 | "Cannot set localhost as trusted." : "无法将 localhost 设置为受信任。", 10 | "Client id must be a number" : "客户端 ID 必须是数字", 11 | "The application was authorized successfully. You can now close this window." : "应用程序已被成功授权。现在您可以关掉这个窗口了。", 12 | "Request not valid" : "无效的请求", 13 | "This request is not valid. Please contact the administrator if this error persists." : "该请求无效。如果此错误仍然存在,请联系管理员。", 14 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "该请求无效。如果此错误仍然存在,请与“%s”的管理员联系。", 15 | "The “%s“ application would like permission to access your account" : "应用程序 “%s”想要访问您的帐户", 16 | "You are logged in as %s." : "你已登入为%s。", 17 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "该应用程序将访问您的用户名,并将被允许管理文件、文件夹和共享。", 18 | "Authorize" : "授权", 19 | "Switch users to continue" : "变更用户以继续", 20 | "OAuth 2.0" : "OAuth 2.0", 21 | "Registered clients" : "已注册的客户端", 22 | "No clients registered." : "没有已注册的客户端", 23 | "Name" : "名称", 24 | "Redirection URI" : "重定向URI", 25 | "Client Identifier" : "客户端标识符", 26 | "Secret" : "密码", 27 | "Subdomains allowed" : "允许子域名", 28 | "Trusted client" : "已信任的客户端", 29 | "Add client" : "增加客户端", 30 | "Allow subdomains" : "允许子域名", 31 | "Add" : "增加", 32 | "Authorized Applications" : "已授权的应用", 33 | "No applications authorized." : "没有被授权的应用。", 34 | "Are you sure you want to delete this item?" : "确定删除该项?", 35 | "Switch user" : "切换用户", 36 | "You are logged in as %s but the application requested access for user %s." : "您已登录%s但是应用要求访问用户%s。" 37 | },"pluralForm" :"nplurals=1; plural=0;" 38 | } -------------------------------------------------------------------------------- /l10n/zh_TW.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "oauth2", 3 | { 4 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "應用程式“ {app}”正在請求訪問您的帳號。 要對其進行授權,請先登入。", 5 | "Deleting..." : "刪除中...", 6 | "Saving..." : "儲存中...", 7 | "Name must not be empty" : "名稱不能為空", 8 | "Redirect URI must not be empty" : "重定向URI不能為空", 9 | "Redirect URI must be a valid URL" : "重定向URI必須是有效的超連結", 10 | "Name %s already exists" : "名稱%s已經存在", 11 | "Client id must be a number" : "客戶端編號必須是數字", 12 | "The application was authorized successfully. You can now close this window." : "該應用程式已成功授權。 您現在可以關閉此窗口。", 13 | "Request not valid" : "要求無效", 14 | "This request is not valid. Please contact the administrator if this error persists." : "此請求無效。如果此錯誤仍然存在,請與管理員聯繫。", 15 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "此請求無效。 請聯繫管理員“%s”如果此錯誤仍然存在。", 16 | "The “%s“ application would like permission to access your account" : "的“%s”應用程式想要訪問您的帳號的權限", 17 | "You are logged in as %s." : "您登錄為%s。", 18 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "此應用程式將會得到您的帳號存取和允許管理檔案,資料夾和分享。", 19 | "Authorize" : "驗證", 20 | "Switch users to continue" : "切換用戶以繼續", 21 | "OAuth 2.0" : "OAuth 2.0", 22 | "Registered clients" : "已註冊用戶", 23 | "No clients registered." : "沒有用戶註冊。", 24 | "Name" : "名稱", 25 | "Redirection URI" : "URI重定向", 26 | "Client Identifier" : "用戶身份", 27 | "Secret" : "密鑰", 28 | "Subdomains allowed" : "子網域已允許", 29 | "Add client" : "新增用戶", 30 | "Allow subdomains" : "允許子網域", 31 | "Add" : "增加", 32 | "Authorized Applications" : "驗證應用程式", 33 | "No applications authorized." : "沒有應用程式已驗證。", 34 | "Are you sure you want to delete this item?" : "您確定要刪除這個項目嗎?", 35 | "Switch user" : "開關使用者", 36 | "You are logged in as %s but the application requested access for user %s." : "您登錄為%s但應用程式請求使用者訪問%s。" 37 | }, 38 | "nplurals=1; plural=0;"); 39 | -------------------------------------------------------------------------------- /l10n/zh_TW.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "The application \"{app}\" is requesting access to your account. To authorize it, please log in first." : "應用程式“ {app}”正在請求訪問您的帳號。 要對其進行授權,請先登入。", 3 | "Deleting..." : "刪除中...", 4 | "Saving..." : "儲存中...", 5 | "Name must not be empty" : "名稱不能為空", 6 | "Redirect URI must not be empty" : "重定向URI不能為空", 7 | "Redirect URI must be a valid URL" : "重定向URI必須是有效的超連結", 8 | "Name %s already exists" : "名稱%s已經存在", 9 | "Client id must be a number" : "客戶端編號必須是數字", 10 | "The application was authorized successfully. You can now close this window." : "該應用程式已成功授權。 您現在可以關閉此窗口。", 11 | "Request not valid" : "要求無效", 12 | "This request is not valid. Please contact the administrator if this error persists." : "此請求無效。如果此錯誤仍然存在,請與管理員聯繫。", 13 | "This request is not valid. Please contact the administrator of “%s” if this error persists." : "此請求無效。 請聯繫管理員“%s”如果此錯誤仍然存在。", 14 | "The “%s“ application would like permission to access your account" : "的“%s”應用程式想要訪問您的帳號的權限", 15 | "You are logged in as %s." : "您登錄為%s。", 16 | "The application will gain access to your username and will be allowed to manage files, folders and shares." : "此應用程式將會得到您的帳號存取和允許管理檔案,資料夾和分享。", 17 | "Authorize" : "驗證", 18 | "Switch users to continue" : "切換用戶以繼續", 19 | "OAuth 2.0" : "OAuth 2.0", 20 | "Registered clients" : "已註冊用戶", 21 | "No clients registered." : "沒有用戶註冊。", 22 | "Name" : "名稱", 23 | "Redirection URI" : "URI重定向", 24 | "Client Identifier" : "用戶身份", 25 | "Secret" : "密鑰", 26 | "Subdomains allowed" : "子網域已允許", 27 | "Add client" : "新增用戶", 28 | "Allow subdomains" : "允許子網域", 29 | "Add" : "增加", 30 | "Authorized Applications" : "驗證應用程式", 31 | "No applications authorized." : "沒有應用程式已驗證。", 32 | "Are you sure you want to delete this item?" : "您確定要刪除這個項目嗎?", 33 | "Switch user" : "開關使用者", 34 | "You are logged in as %s but the application requested access for user %s." : "您登錄為%s但應用程式請求使用者訪問%s。" 35 | },"pluralForm" :"nplurals=1; plural=0;" 36 | } -------------------------------------------------------------------------------- /lib/BackgroundJob/CleanUp.php: -------------------------------------------------------------------------------- 1 | 18 | */ 19 | 20 | namespace OCA\OAuth2\BackgroundJob; 21 | 22 | use OC\BackgroundJob\TimedJob; 23 | use OCA\OAuth2\Db\AccessTokenMapper; 24 | use OCA\OAuth2\Db\AuthorizationCodeMapper; 25 | 26 | class CleanUp extends TimedJob { 27 | /** 28 | * @var AccessTokenMapper 29 | */ 30 | protected $accessTokenMapper; 31 | /** 32 | * @var AuthorizationCodeMapper 33 | */ 34 | protected $authorizationCodeMapper; 35 | 36 | /** 37 | * Cron interval in seconds 38 | */ 39 | protected $interval = 86400; 40 | 41 | public function __construct( 42 | AuthorizationCodeMapper $authorizationCodeMapper, 43 | AccessTokenMapper $accessTokenMapper 44 | ) { 45 | $this->authorizationCodeMapper = $authorizationCodeMapper; 46 | $this->accessTokenMapper = $accessTokenMapper; 47 | } 48 | 49 | /** 50 | * Cleans up expired authorization codes and access tokens. 51 | * @param string $argument 52 | */ 53 | public function run($argument) { 54 | $this->authorizationCodeMapper->cleanUp(); 55 | $this->accessTokenMapper->cleanUp(); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /lib/Commands/ListClients.php: -------------------------------------------------------------------------------- 1 | 4 | * @author Jannik Stehle 5 | * 6 | * @copyright Copyright (c) 2021, ownCloud GmbH 7 | * @license AGPL-3.0 8 | * 9 | * This code is free software: you can redistribute it and/or modify 10 | * it under the terms of the GNU Affero General Public License, version 3, 11 | * as published by the Free Software Foundation. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU Affero General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU Affero General Public License, version 3, 19 | * along with this program. If not, see 20 | * 21 | */ 22 | 23 | namespace OCA\OAuth2\Commands; 24 | 25 | use OC\Core\Command\Base; 26 | use OCA\OAuth2\Db\ClientMapper; 27 | use Symfony\Component\Console\Input\InputInterface; 28 | use Symfony\Component\Console\Output\OutputInterface; 29 | 30 | class ListClients extends Base { 31 | /** @var ClientMapper */ 32 | private $clientMapper; 33 | 34 | public function __construct(ClientMapper $clientMapper) { 35 | parent::__construct(); 36 | 37 | $this->clientMapper = $clientMapper; 38 | } 39 | 40 | protected function configure() { 41 | parent::configure(); 42 | $this 43 | ->setName('oauth2:list-clients') 44 | ->setDescription('Lists OAuth2 clients'); 45 | } 46 | 47 | /** 48 | * @param InputInterface $input 49 | * @param OutputInterface $output 50 | * @return int 51 | * @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException 52 | */ 53 | protected function execute(InputInterface $input, OutputInterface $output): int { 54 | $clients = $this->clientMapper->findAll(); 55 | $clientsOutput = []; 56 | 57 | /** @var \OCA\OAuth2\Db\Client $client */ 58 | foreach ($clients as $client) { 59 | $clientsOutput[$client->getName()] = [ 60 | 'name' => $client->getName(), 61 | 'redirect-url' => $client->getRedirectUri(), 62 | 'client-id' => $client->getIdentifier(), 63 | 'client-secret' => $client->getSecret(), 64 | 'allow-sub-domains' => $client->getAllowSubdomains(), 65 | 'trusted' => $client->getTrusted(), 66 | ]; 67 | } 68 | parent::writeArrayInOutputFormat($input, $output, $clientsOutput, self::DEFAULT_OUTPUT_PREFIX, true); 69 | return 0; 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /lib/Commands/RemoveClient.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2018, ownCloud GmbH 6 | * @license AGPL-3.0 7 | * 8 | * This code is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Affero General Public License, version 3, 10 | * as published by the Free Software Foundation. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU Affero General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Affero General Public License, version 3, 18 | * along with this program. If not, see 19 | * 20 | */ 21 | 22 | namespace OCA\OAuth2\Commands; 23 | 24 | use OCA\OAuth2\Db\ClientMapper; 25 | use OCP\AppFramework\Db\DoesNotExistException; 26 | use Symfony\Component\Console\Command\Command; 27 | use Symfony\Component\Console\Input\InputArgument; 28 | use Symfony\Component\Console\Input\InputInterface; 29 | use Symfony\Component\Console\Output\OutputInterface; 30 | 31 | class RemoveClient extends Command { 32 | /** @var ClientMapper */ 33 | private $clientMapper; 34 | 35 | public function __construct(ClientMapper $clientMapper) { 36 | parent::__construct(); 37 | 38 | $this->clientMapper = $clientMapper; 39 | } 40 | 41 | protected function configure() { 42 | $this 43 | ->setName('oauth2:remove-client') 44 | ->setDescription('Removes an OAuth2 client') 45 | ->addArgument( 46 | 'client-id', 47 | InputArgument::REQUIRED, 48 | 'identifier of the client - used by the client during the implicit and authorization code flow' 49 | ); 50 | } 51 | 52 | /** 53 | * @param InputInterface $input 54 | * @param OutputInterface $output 55 | * 56 | * @return int 57 | * @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException 58 | */ 59 | protected function execute(InputInterface $input, OutputInterface $output): int { 60 | $id = $input->getArgument('client-id'); 61 | try { 62 | $client = $this->clientMapper->findByIdentifier($id); 63 | $this->clientMapper->delete($client); 64 | $output->writeln("Client <$id> has been deleted"); 65 | } catch (DoesNotExistException $ex) { 66 | $output->writeln("Client <$id> is unknown"); 67 | return 1; 68 | } 69 | return 0; 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /lib/Db/AccessToken.php: -------------------------------------------------------------------------------- 1 | 18 | */ 19 | 20 | namespace OCA\OAuth2\Db; 21 | 22 | use OCP\AppFramework\Db\Entity; 23 | 24 | /** 25 | * @method string getToken() 26 | * @method void setToken(string $token) 27 | * @method int getClientId() 28 | * @method void setClientId(int $clientId) 29 | * @method string getUserId() 30 | * @method void setUserId(string $userId) 31 | * @method int getExpires() 32 | * @method void setExpires(int $value) 33 | */ 34 | class AccessToken extends Entity { 35 | public const EXPIRATION_TIME = 3600; 36 | 37 | protected $token; 38 | protected $clientId; 39 | protected $userId; 40 | protected $expires; 41 | 42 | /** 43 | * AccessToken constructor. 44 | */ 45 | public function __construct() { 46 | $this->addType('id', 'int'); 47 | $this->addType('token', 'string'); 48 | $this->addType('client_id', 'int'); 49 | $this->addType('user_id', 'string'); 50 | $this->addType('expires', 'int'); 51 | } 52 | 53 | /** 54 | * Resets the expiry time to EXPIRATION_TIME seconds from now. 55 | */ 56 | public function resetExpires() { 57 | $this->setExpires(\time() + self::EXPIRATION_TIME); 58 | } 59 | 60 | /** 61 | * Determines if an access token has expired. 62 | * 63 | * @return boolean true if the access token has expired, false otherwise. 64 | */ 65 | public function hasExpired() { 66 | return \time() >= $this->getExpires(); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /lib/Db/Client.php: -------------------------------------------------------------------------------- 1 | 18 | */ 19 | 20 | namespace OCA\OAuth2\Db; 21 | 22 | use Doctrine\DBAL\Platforms\OraclePlatform; 23 | use OCP\AppFramework\Db\Entity; 24 | 25 | /** 26 | * @method string getIdentifier() 27 | * @method void setIdentifier(string $identifier) 28 | * @method string getSecret() 29 | * @method void setSecret(string $secret) 30 | * @method string getRedirectUri() 31 | * @method void setRedirectUri(string $redirectUri) 32 | * @method string getName() 33 | * @method void setName(string $name) 34 | * @method boolean getAllowSubdomains() 35 | * @method boolean getTrusted() 36 | */ 37 | class Client extends Entity { 38 | protected $identifier; 39 | protected $secret; 40 | protected $redirectUri; 41 | protected $name; 42 | protected $allowSubdomains; 43 | protected $trusted; 44 | 45 | /** 46 | * Client constructor. 47 | */ 48 | public function __construct() { 49 | $this->addType('id', 'int'); 50 | $this->addType('identifier', 'string'); 51 | $this->addType('secret', 'string'); 52 | $this->addType('redirect_uri', 'string'); 53 | $this->addType('name', 'string'); 54 | $this->addType('allow_subdomains', 'boolean'); 55 | $this->addType('trusted', 'boolean'); 56 | } 57 | 58 | public function setAllowSubdomains(bool $value): void { 59 | if (\OC::$server->getDatabaseConnection()->getDatabasePlatform() instanceof OraclePlatform) { 60 | $this->setter('allowSubdomains', [$value ? 1 : 0]); 61 | } else { 62 | $this->setter('allowSubdomains', [$value]); 63 | } 64 | } 65 | 66 | public function setTrusted(bool $value): void { 67 | if (\OC::$server->getDatabaseConnection()->getDatabasePlatform() instanceof OraclePlatform) { 68 | $this->setter('trusted', [$value ? 1 : 0]); 69 | } else { 70 | $this->setter('trusted', [$value]); 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /lib/Db/RefreshToken.php: -------------------------------------------------------------------------------- 1 | 18 | */ 19 | 20 | namespace OCA\OAuth2\Db; 21 | 22 | use OCP\AppFramework\Db\Entity; 23 | 24 | /** 25 | * @method string getToken() 26 | * @method void setToken(string $token) 27 | * @method int getClientId() 28 | * @method void setClientId(int $clientId) 29 | * @method string getUserId() 30 | * @method void setUserId(string $userId) 31 | * @method int getAccessTokenId() 32 | * @method void setAccessTokenId(int $accessTokenId) 33 | */ 34 | class RefreshToken extends Entity { 35 | protected $token; 36 | protected $clientId; 37 | protected $userId; 38 | protected $accessTokenId; 39 | 40 | public function __construct() { 41 | $this->addType('id', 'int'); 42 | $this->addType('token', 'string'); 43 | $this->addType('client_id', 'int'); 44 | $this->addType('user_id', 'string'); 45 | $this->addType('access_token_id', 'int'); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /lib/Exceptions/UnsupportedPkceTransformException.php: -------------------------------------------------------------------------------- 1 | 4 | * @copyright Copyright (c) 2020, ownCloud GmbH 5 | * @license AGPL-3.0 6 | * 7 | * This code is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU Affero General Public License, version 3, 9 | * as published by the Free Software Foundation. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Affero General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Affero General Public License, version 3, 17 | * along with this program. If not, see 18 | */ 19 | 20 | namespace OCA\OAuth2\Exceptions; 21 | 22 | class UnsupportedPkceTransformException extends \Exception { 23 | } 24 | -------------------------------------------------------------------------------- /lib/Panels/AdminPanel.php: -------------------------------------------------------------------------------- 1 | 18 | */ 19 | 20 | namespace OCA\OAuth2\Panels; 21 | 22 | use OCA\OAuth2\Db\ClientMapper; 23 | use OCP\Settings\ISettings; 24 | use OCP\Template; 25 | 26 | class AdminPanel implements ISettings { 27 | /** 28 | * @var \OCA\OAuth2\Db\ClientMapper 29 | */ 30 | protected $clientMapper; 31 | 32 | public function __construct(ClientMapper $clientMapper) { 33 | $this->clientMapper = $clientMapper; 34 | } 35 | 36 | public function getSectionID() { 37 | return 'authentication'; 38 | } 39 | 40 | /** 41 | * @return Template 42 | */ 43 | public function getPanel() { 44 | $t = new Template('oauth2', 'settings-admin'); 45 | $t->assign('clients', $this->clientMapper->findAll()); 46 | return $t; 47 | } 48 | 49 | public function getPriority() { 50 | return 20; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /lib/Panels/PersonalPanel.php: -------------------------------------------------------------------------------- 1 | 18 | */ 19 | 20 | namespace OCA\OAuth2\Panels; 21 | 22 | use OCA\OAuth2\Db\ClientMapper; 23 | use OCP\IURLGenerator; 24 | use OCP\IUserSession; 25 | use OCP\Settings\ISettings; 26 | use OCP\Template; 27 | 28 | class PersonalPanel implements ISettings { 29 | /** 30 | * @var \OCA\OAuth2\Db\ClientMapper 31 | */ 32 | protected $clientMapper; 33 | /** 34 | * @var IUserSession 35 | */ 36 | protected $userSession; 37 | 38 | /** 39 | * @var IURLGenerator 40 | */ 41 | protected $urlGenerator; 42 | 43 | public function __construct( 44 | ClientMapper $clientMapper, 45 | IUserSession $userSession, 46 | IURLGenerator $urlGenerator 47 | ) { 48 | $this->clientMapper = $clientMapper; 49 | $this->userSession = $userSession; 50 | $this->urlGenerator = $urlGenerator; 51 | } 52 | 53 | public function getSectionID() { 54 | return 'security'; 55 | } 56 | 57 | /** 58 | * @return Template 59 | */ 60 | public function getPanel() { 61 | $userId = $this->userSession->getUser()->getUID(); 62 | $t = new Template('oauth2', 'settings-personal'); 63 | $t->assign('clients', $this->clientMapper->findByUser($userId)); 64 | $t->assign('user_id', $userId); 65 | /** @phan-suppress-next-line PhanTypeMismatchArgument */ 66 | $t->assign('urlGenerator', $this->urlGenerator); 67 | return $t; 68 | } 69 | 70 | public function getPriority() { 71 | return 20; 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /phpstan.neon: -------------------------------------------------------------------------------- 1 | parameters: 2 | inferPrivatePropertyTypeFromConstructor: true 3 | treatPhpDocTypesAsCertain: false 4 | bootstrapFiles: 5 | - %currentWorkingDirectory%/../../lib/base.php 6 | excludePaths: 7 | - %currentWorkingDirectory%/appinfo/Migrations/*.php 8 | ignoreErrors: 9 | -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | ./tests/unit 9 | 10 | 11 | 12 | 13 | ./appinfo 14 | ./lib 15 | ./templates 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /sonar-project.properties: -------------------------------------------------------------------------------- 1 | # Organization and project keys are displayed in the right sidebar of the project homepage 2 | sonar.organization=owncloud-1 3 | sonar.projectKey=owncloud_oauth2 4 | sonar.projectVersion=0.6.1 5 | sonar.host.url=https://sonarcloud.io 6 | 7 | # ===================================================== 8 | # Meta-data for the project 9 | # ===================================================== 10 | 11 | sonar.links.homepage=https://github.com/owncloud/oauth2 12 | sonar.links.ci=https://drone.owncloud.com/owncloud/oauth2/ 13 | sonar.links.scm=https://github.com/owncloud/oauth2 14 | sonar.links.issue=https://github.com/owncloud/oauth2/issues 15 | 16 | # ===================================================== 17 | # Properties that will be shared amongst all modules 18 | # ===================================================== 19 | 20 | # Just look in these directories for code 21 | sonar.sources=. 22 | sonar.inclusions=appinfo/**,lib/** 23 | 24 | # Pull Requests 25 | sonar.pullrequest.provider=GitHub 26 | sonar.pullrequest.github.repository=owncloud/oauth2 27 | sonar.pullrequest.base=${env.SONAR_PULL_REQUEST_BASE} 28 | sonar.pullrequest.branch=${env.SONAR_PULL_REQUEST_BRANCH} 29 | sonar.pullrequest.key=${env.SONAR_PULL_REQUEST_KEY} 30 | 31 | # Properties specific to language plugins: 32 | sonar.php.coverage.reportPaths=results/clover-phpunit-php7.3-mariadb10.2.xml,results/clover-phpunit-php7.3-mysql8.0.xml,results/clover-phpunit-php7.3-postgres9.4.xml,results/clover-phpunit-php7.3-oracle.xml,results/clover-phpunit-php7.3-sqlite.xml 33 | sonar.javascript.lcov.reportPaths=results/lcov.info 34 | -------------------------------------------------------------------------------- /templates/authorization-successful.php: -------------------------------------------------------------------------------- 1 | 18 | */ 19 | 20 | style('oauth2', 'authorization'); 21 | ?> 22 | 23 | 24 |

25 | t('The application was authorized successfully. You can now close this window.')); ?> 26 |

27 |
28 | -------------------------------------------------------------------------------- /templates/authorize-error.php: -------------------------------------------------------------------------------- 1 | 18 | */ 19 | 20 | style('oauth2', 'authorization'); 21 | ?> 22 | 23 |
24 |

t('Request not valid')); ?>

25 |
26 | 28 |

t('This request is not valid. Please contact the administrator if this error persists.')); ?>

29 | 32 |

t('This request is not valid. Please contact the administrator of “%s” if this error persists.', [$_['client_name']])); ?>

33 | 35 |
36 | -------------------------------------------------------------------------------- /templates/authorize.php: -------------------------------------------------------------------------------- 1 | 18 | */ 19 | 20 | style('oauth2', 'authorization'); 21 | ?> 22 | 23 | 24 |
25 |

26 | t('The “%s“ application would like permission to access your account', [$_['client_name']])); ?> 27 |

28 |
29 |

t('You are logged in as %s.', [$_['current_user']])); ?>

30 |
31 |

t('The application will gain access to your username and will be allowed to manage files, folders and shares.')); ?>

32 |
33 | 34 | 35 |
36 | 37 | 38 | 39 |
40 | -------------------------------------------------------------------------------- /templates/client.part.php: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | getName()); ?> 8 | getRedirectUri()); ?> 9 | getIdentifier()); ?> 10 | getSecret()); ?> 11 | getAllowSubdomains()): ?> 12 | 13 | 14 | 15 | 16 | getTrusted()): ?> 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /templates/settings-personal.php: -------------------------------------------------------------------------------- 1 | 18 | */ 19 | 20 | /** @var \OCA\OAuth2\Db\Client $client */ 21 | script('oauth2', 'settings'); 22 | style('oauth2', 'main'); 23 | ?> 24 | 25 |
26 |

t('OAuth 2.0')); ?>

27 | 28 |

t('Authorized Applications')); ?>

29 | t('No applications authorized.')); 31 | } else { 32 | ?> 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 43 | 44 | 45 | 51 | 52 | 54 | 55 |
t('Name')); ?> 
getName()); ?> 46 |
47 | 48 | 49 |
50 |
56 | 58 |
59 | -------------------------------------------------------------------------------- /templates/switch-user.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2017, ownCloud GmbH 6 | * @license AGPL-3.0 7 | * 8 | * This code is free software: you can redistribute it and/or modify 9 | * it under the terms of the GNU Affero General Public License, version 3, 10 | * as published by the Free Software Foundation. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU Affero General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Affero General Public License, version 3, 18 | * along with this program. If not, see 19 | */ 20 | 21 | style('oauth2', 'authorization'); 22 | script('oauth2', 'switch-user'); 23 | ?> 24 | 25 |
26 |

t('Switch user')); ?>

27 |
28 |

t( 30 | 'You are logged in as %s but the application requested access for user %s.', 31 | [$_['current_user'], $_['requested_user']] 32 | )); ?> 33 |

34 |
35 | 36 | 37 | 38 |
39 | -------------------------------------------------------------------------------- /tests/acceptance/config/behat.yml: -------------------------------------------------------------------------------- 1 | default: 2 | autoload: 3 | '': '%paths.base%/../features/bootstrap' 4 | 5 | suites: 6 | webUIOauth2: 7 | paths: 8 | - '%paths.base%/../features/webUIOauth2' 9 | contexts: 10 | - Oauth2Context: 11 | - FeatureContext: 12 | baseUrl: http://localhost:8080 13 | adminUsername: admin 14 | adminPassword: admin 15 | regularUserPassword: 123456 16 | ocPath: apps/testing/api/v1/occ 17 | - AuthContext: 18 | - OCSContext: 19 | - WebUIGeneralContext: 20 | - WebUILoginContext: 21 | - WebUIUserContext: 22 | - WebUIPersonalSecuritySettingsContext: 23 | 24 | extensions: 25 | Cjm\Behat\StepThroughExtension: ~ 26 | -------------------------------------------------------------------------------- /tests/acceptance/features/bootstrap/bootstrap.php: -------------------------------------------------------------------------------- 1 | 6 | * @copyright Copyright (c) 2018 Artur Neumann info@jankaritech.com 7 | * 8 | * This library is free software; you can redistribute it and/or 9 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE 10 | * License as published by the Free Software Foundation; either 11 | * version 3 of the License, or any later version. 12 | * 13 | * This library is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details. 17 | * 18 | * You should have received a copy of the GNU Affero General Public 19 | * License along with this library. If not, see . 20 | * 21 | */ 22 | 23 | require_once __DIR__ . '/../../../../../../tests/acceptance/features/bootstrap/bootstrap.php'; 24 | 25 | $classLoader = new \Composer\Autoload\ClassLoader(); 26 | $classLoader->addPsr4( 27 | "", 28 | __DIR__ . "/../../../../../../tests/acceptance/features/bootstrap", 29 | true 30 | ); 31 | $classLoader->addPsr4("Page\\", __DIR__ . "/../lib", true); 32 | $classLoader->addPsr4( 33 | "Page\\", 34 | __DIR__ . "/../../../../../../tests/acceptance/features/lib", 35 | true 36 | ); 37 | 38 | $classLoader->register(); 39 | -------------------------------------------------------------------------------- /tests/acceptance/features/lib/Oauth2OnPersonalSecuritySettingsPage.php: -------------------------------------------------------------------------------- 1 | 7 | * @copyright Copyright (c) 2018 Artur Neumann artur@jankaritech.com 8 | * 9 | * This code is free software: you can redistribute it and/or modify 10 | * it under the terms of the GNU Affero General Public License, 11 | * as published by the Free Software Foundation; 12 | * either version 3 of the License, or any later version. 13 | * 14 | * This program is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | * GNU Affero General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU Affero General Public License 20 | * along with this program. If not, see 21 | * 22 | */ 23 | namespace Page; 24 | 25 | use Behat\Mink\Session; 26 | use SensioLabs\Behat\PageObjectExtension\PageObject\Exception\ElementNotFoundException; 27 | 28 | /** 29 | * Oauth2-specific items on the Personal Security Settings page. 30 | */ 31 | class Oauth2OnPersonalSecuritySettingsPage extends OwncloudPage { 32 | private $deleteBtnByAppNameXpath 33 | = '//td[text()="%s"]/..//input[contains(@class,"delete")]'; 34 | 35 | /** 36 | * 37 | * @param Session $session 38 | * @param string $app 39 | * 40 | * @throws ElementNotFoundException 41 | * 42 | * @return void 43 | */ 44 | public function revokeApp(Session $session, string $app): void { 45 | $xpath = \sprintf($this->deleteBtnByAppNameXpath, $app); 46 | $revokeBtn = $this->find("xpath", $xpath); 47 | if ($revokeBtn === null) { 48 | throw new ElementNotFoundException( 49 | __METHOD__ . 50 | " xpath $xpath " . 51 | "could not find revoke button" 52 | ); 53 | } 54 | $revokeBtn->click(); 55 | $session->getDriver()->getWebDriverSession()->accept_alert(); 56 | $this->waitForAjaxCallsToStartAndFinish($session); 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /tests/acceptance/features/webUIOauth2/enforceTokenAuth.feature: -------------------------------------------------------------------------------- 1 | @webUI @insulated @disablePreviews 2 | Feature: enforce token auth 3 | 4 | As an administrator 5 | I want to be able to enforce token based auth 6 | So that I can improve the security of the system by forbidding basic auth with username & password 7 | 8 | Background: 9 | Given these users have been created with large skeleton files: 10 | | username | password | displayname | email | 11 | | Alice | 1234 | Alice Hansen | alice@example.org | 12 | And token auth has been enforced 13 | And user "Alice" has correctly established an oauth session 14 | 15 | 16 | Scenario: access files app with oauth when token auth is enforced 17 | When user "Alice" requests "/index.php/apps/files" with "GET" using basic auth 18 | Then the HTTP status code should be "401" 19 | When the user requests "/index.php/apps/files" with "GET" using oauth 20 | Then the HTTP status code should be "200" 21 | 22 | 23 | Scenario: using WebDAV with oauth when token auth is enforced 24 | When user "Alice" requests "/remote.php/webdav" with "PROPFIND" using basic auth 25 | Then the HTTP status code should be "401" 26 | When the user requests "/remote.php/webdav" with "PROPFIND" using oauth 27 | Then the HTTP status code should be "207" 28 | 29 | 30 | Scenario: using OCS with oauth when token auth is enforced 31 | When user "Alice" requests "/ocs/v1.php/apps/files_sharing/api/v1/remote_shares" with "GET" using basic auth 32 | Then the OCS status code should be "997" 33 | And the HTTP status code should be "401" 34 | When the user requests "/ocs/v1.php/apps/files_sharing/api/v1/remote_shares" with "GET" using oauth 35 | Then the OCS status code should be "100" 36 | And the HTTP status code should be "200" 37 | 38 | @skip @issue_core_32068 39 | Scenario: using OCS with oauth when token auth is enforced 40 | When user "Alice" requests "/ocs/v2.php/apps/files_sharing/api/v1/remote_shares" with "GET" using basic auth 41 | Then the OCS status code should be "401" 42 | And the HTTP status code should be "401" 43 | When the user requests "/ocs/v2.php/apps/files_sharing/api/v1/remote_shares" with "GET" using oauth 44 | Then the OCS status code should be "200" 45 | And the HTTP status code should be "200" 46 | 47 | 48 | Scenario Outline: download a file with oauth when token auth is enforced 49 | Given using DAV path 50 | When user "Alice" downloads file "/lorem.txt" using the WebDAV API 51 | Then the HTTP status code should be "401" 52 | But the client app should be able to download the file "lorem.txt" of "Alice" using the access token for authentication 53 | Examples: 54 | | dav_version | 55 | | old | 56 | | new | 57 | -------------------------------------------------------------------------------- /tests/acceptance/features/webUIOauth2/newClientRegistration.feature: -------------------------------------------------------------------------------- 1 | @webUI @insulated @disablePreviews 2 | Feature: register a new client 3 | As an admin 4 | I want to be able to register new clients 5 | So that private set of client_ids and client_secrets can be used 6 | 7 | 8 | Scenario: register a new client on the webUI 9 | Given user admin has logged in using the webUI 10 | And the administrator has browsed to the oauth admin settings page 11 | When the administrator adds a new oauth client with the name "new client" and the uri "http://localhost:*" using the webUI 12 | Then a new client with the name "new client" and the uri "http://localhost:*" should be listed on the webUI 13 | 14 | 15 | Scenario: oauth authorization with a new client 16 | Given these users have been created with large skeleton files: 17 | | username | password | displayname | email | 18 | | Alice | 1234 | Alice Hansen | alice@example.org | 19 | | Brian | 1234 | Brian Murphy | brian@example.org | 20 | And the administrator has added a new oauth client with the name "client1" and the uri "http://localhost:*" 21 | When the user sends an oauth2 authorization request with the new client-id using the webUI 22 | And the user logs in with username "Alice" and password "1234" using the webUI after a redirect from the oauth2AuthRequest page 23 | And the user authorizes the oauth app using the webUI 24 | And the client app requests an access token with the new client-id and client-secret 25 | Then the client app should be able to download the file "lorem.txt" of "Alice" using the access token for authentication 26 | But the client app should not be able to download the file "lorem.txt" of "Brian" using the access token for authentication 27 | -------------------------------------------------------------------------------- /tests/acceptance/features/webUIOauth2/revokeAccessToken.feature: -------------------------------------------------------------------------------- 1 | @webUI @insulated @disablePreviews 2 | Feature: revoke an access token 3 | As a user 4 | I want to be able to revoke an oauth token 5 | So that I can stop a previous permitted application accessing my data 6 | 7 | Background: 8 | Given these users have been created with large skeleton files: 9 | | username | password | displayname | email | 10 | | Alice | 1234 | Alice Hansen | alice@example.org | 11 | 12 | 13 | Scenario: revoke an access token by webUI 14 | Given user "Alice" has correctly established an oauth session 15 | And the user has browsed to the personal security settings page 16 | When the user revokes the oauth app "Desktop Client" using the webUI 17 | Then the client app should not be able to download the file "lorem.txt" of "Alice" using the access token for authentication 18 | 19 | 20 | Scenario: receiving a new access token by using the refresh token should not work after revoking the app 21 | Given user "Alice" has correctly established an oauth session 22 | And the user has browsed to the personal security settings page 23 | When the user revokes the oauth app "Desktop Client" using the webUI 24 | Then the client app should not be able to refresh the access token 25 | -------------------------------------------------------------------------------- /tests/unit/BackgroundJob/CleanUpTest.php: -------------------------------------------------------------------------------- 1 | 18 | */ 19 | 20 | namespace OCA\OAuth2\Tests\Unit\BackgroundJob; 21 | 22 | use OCA\OAuth2\BackgroundJob\CleanUp; 23 | use PHPUnit\Framework\TestCase; 24 | 25 | class CleanUpTest extends TestCase { 26 | public function testRun() { 27 | $c = \OC::$server->query(CleanUp::class); 28 | $this->assertNull($c->run('')); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /tests/unit/Db/AccessTokenTest.php: -------------------------------------------------------------------------------- 1 | 18 | */ 19 | 20 | namespace OCA\OAuth2\Tests\Unit\Db; 21 | 22 | use OCA\OAuth2\Db\AccessToken; 23 | use PHPUnit\Framework\TestCase; 24 | 25 | class AccessTokenTest extends TestCase { 26 | /** @var AccessToken $accessToken */ 27 | private $accessToken; 28 | 29 | public function setUp(): void { 30 | parent::setUp(); 31 | 32 | $this->accessToken = new AccessToken(); 33 | } 34 | 35 | public function testResetExpires() { 36 | $expected = \time() + AccessToken::EXPIRATION_TIME; 37 | $this->accessToken->resetExpires(); 38 | $this->assertEqualsWithDelta($expected, $this->accessToken->getExpires(), 1); 39 | } 40 | 41 | public function testHasExpired() { 42 | $this->assertTrue($this->accessToken->hasExpired()); 43 | $this->accessToken->setExpires(10); 44 | $this->assertTrue($this->accessToken->hasExpired()); 45 | $this->accessToken->resetExpires(); 46 | $this->assertFalse($this->accessToken->hasExpired()); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /tests/unit/Hooks/UserHooksTest.php: -------------------------------------------------------------------------------- 1 | 18 | */ 19 | 20 | namespace OCA\OAuth2\Tests\Unit\Hooks; 21 | 22 | use OCA\OAuth2\AppInfo\Application; 23 | use OCA\OAuth2\Hooks\UserHooks; 24 | use PHPUnit\Framework\TestCase; 25 | 26 | class UserHooksTest extends TestCase { 27 | /** @var UserHooks $userHooks */ 28 | private $userHooks; 29 | 30 | public function setUp(): void { 31 | parent::setUp(); 32 | 33 | $app = new Application(); 34 | $container = $app->getContainer(); 35 | 36 | $this->userHooks = new UserHooks( 37 | $container->query('ServerContainer')->getUserManager(), 38 | $container->query('OCA\OAuth2\Db\AuthorizationCodeMapper'), 39 | $container->query('OCA\OAuth2\Db\AccessTokenMapper'), 40 | $container->query('OCA\OAuth2\Db\RefreshTokenMapper'), 41 | $container->query('Logger'), 42 | $container->query('AppName') 43 | ); 44 | } 45 | 46 | public function testRegister() { 47 | // Calling the register() function to check for exceptions. 48 | $this->assertNull($this->userHooks->register()); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /tests/unit/Panel/AdminPanelTest.php: -------------------------------------------------------------------------------- 1 | clientMapper = $this->createMock(ClientMapper::class); 19 | $this->panel = new AdminPanel($this->clientMapper); 20 | } 21 | 22 | public function testPanel() { 23 | $this->clientMapper->method('findAll')->willReturn([]); 24 | $page = $this->panel->getPanel()->fetchPage(); 25 | $this->assertStringContainsString('No clients registered.', $page); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /tests/unit/Sabre/AbstractBearerTest.php: -------------------------------------------------------------------------------- 1 | assertFalse( 21 | $backend->check($request, $response)[0] 22 | ); 23 | } 24 | 25 | public function testCheckInvalidToken() { 26 | $request = new HTTP\Request('GET', '/', [ 27 | 'Authorization' => 'Bearer foo', 28 | ]); 29 | $response = new HTTP\Response(); 30 | 31 | $backend = new AbstractBearerMock(); 32 | 33 | $this->assertFalse( 34 | $backend->check($request, $response)[0] 35 | ); 36 | } 37 | 38 | public function testCheckSuccess() { 39 | $request = new HTTP\Request('GET', '/', [ 40 | 'Authorization' => 'Bearer valid', 41 | ]); 42 | $response = new HTTP\Response(); 43 | 44 | $backend = new AbstractBearerMock(); 45 | $this->assertEquals( 46 | [true, 'principals/username'], 47 | $backend->check($request, $response) 48 | ); 49 | } 50 | 51 | public function testRequireAuth() { 52 | $request = new HTTP\Request('GET', '/'); 53 | $response = new HTTP\Response(); 54 | 55 | $backend = new AbstractBearerMock(); 56 | $backend->setRealm('writing unittests on a saturday night'); 57 | $backend->challenge($request, $response); 58 | 59 | $this->assertEquals( 60 | 'Bearer realm="writing unittests on a saturday night"', 61 | $response->getHeader('WWW-Authenticate') 62 | ); 63 | } 64 | } 65 | 66 | class AbstractBearerMock extends AbstractBearer { 67 | /** 68 | * Validates a bearer token. 69 | * 70 | * This method should return true or false depending on if login 71 | * succeeded. 72 | * 73 | * @param string $bearerToken 74 | * 75 | * @return bool 76 | */ 77 | public function validateBearerToken($bearerToken) { 78 | return $bearerToken === 'valid' ? 'principals/username' : false; 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /vendor-bin/behat/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "config" : { 3 | "platform": { 4 | "php": "7.4" 5 | } 6 | }, 7 | "require": { 8 | "behat/behat": "^3.13", 9 | "behat/gherkin": "^4.9", 10 | "behat/mink": "1.7.1", 11 | "friends-of-behat/mink-extension": "^2.7", 12 | "behat/mink-selenium2-driver": "^1.5", 13 | "ciaranmcnulty/behat-stepthroughextension" : "dev-master", 14 | "rdx/behat-variables": "^1.2", 15 | "sensiolabs/behat-page-object-extension": "^2.3", 16 | "symfony/translation": "^5.4", 17 | "sabre/xml": "^2.2", 18 | "guzzlehttp/guzzle": "^7.7", 19 | "phpunit/phpunit": "^9.6", 20 | "helmich/phpunit-json-assert": "^3.4" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /vendor-bin/owncloud-codestyle/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": { 3 | "owncloud/coding-standard": "^4.1" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /vendor-bin/phan/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": { 3 | "phan/phan": "^5.4" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /vendor-bin/php_codesniffer/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": { 3 | "squizlabs/php_codesniffer": "^3.7" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /vendor-bin/phpstan/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": { 3 | "phpstan/phpstan": "^1.10" 4 | } 5 | } 6 | --------------------------------------------------------------------------------