├── .babelrc ├── .drone.star ├── .github └── dependabot.yml ├── .gitignore ├── .phan └── config.php ├── .php-cs-fixer.dist.php ├── .scrutinizer.yml ├── .snyk ├── CHANGELOG.md ├── LICENSE ├── Makefile ├── README.md ├── appinfo ├── app.php ├── info.xml └── routes.php ├── composer.json ├── composer.lock ├── img └── market.svg ├── l10n ├── .tx │ └── config ├── Makefile ├── 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 ├── et_EE.js ├── et_EE.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 ├── is.js ├── is.json ├── it.js ├── it.json ├── ja.js ├── ja.json ├── ko.js ├── ko.json ├── lt_LT.js ├── lt_LT.json ├── lv.js ├── lv.json ├── mk.js ├── mk.json ├── nb_NO.js ├── nb_NO.json ├── nl.js ├── nl.json ├── oc.js ├── oc.json ├── pl.js ├── pl.json ├── pt_BR.js ├── pt_BR.json ├── pt_PT.js ├── pt_PT.json ├── ru.js ├── ru.json ├── si.js ├── si.json ├── sl.js ├── sl.json ├── sq.js ├── sq.json ├── sv.js ├── sv.json ├── th_TH.js ├── th_TH.json ├── tr.js ├── tr.json ├── translations.json ├── uk.js ├── uk.json ├── zh_CN.js ├── zh_CN.json ├── zh_TW.js └── zh_TW.json ├── lib ├── Application.php ├── CheckUpdateBackgroundJob.php ├── Command │ ├── InstallApp.php │ ├── ListApps.php │ ├── UnInstallApp.php │ └── UpgradeApp.php ├── Controller │ ├── LocalAppsController.php │ ├── MarketController.php │ └── PageController.php ├── Exception │ ├── LicenseKeyAlreadyAvailableException.php │ └── MarketException.php ├── HttpService.php ├── Listener.php ├── MarketService.php ├── Notifier.php └── VersionHelper.php ├── package-lock.json ├── package.json ├── phpstan.neon ├── phpunit.xml ├── sonar-project.properties ├── src ├── App.vue ├── components │ ├── ApiForm.vue │ ├── BundleTile.vue │ ├── BundlesList.vue │ ├── Details.vue │ ├── List.vue │ ├── Navigation.vue │ ├── Rating.vue │ ├── Tile.vue │ └── UpdateList.vue ├── default.js ├── mixins.js ├── store.js └── styles │ ├── theme.scss │ └── variables-theme.scss ├── templates └── index.php ├── tests ├── acceptance │ ├── config │ │ └── behat.yml │ └── features │ │ ├── bootstrap │ │ ├── MarketContext.php │ │ └── bootstrap.php │ │ └── cliMain │ │ ├── marketInstallUpgradeUninstall.feature │ │ └── marketList.feature └── unit │ ├── CheckUpdateBackgroundJobTest.php │ ├── Command │ ├── InstallAppTest.php │ ├── ListAppsTest.php │ ├── UnInstallAppTest.php │ └── UpgradeAppTest.php │ ├── HttpServiceTest.php │ ├── MarketControllerTest.php │ ├── MarketServiceTest.php │ ├── NotifierTest.php │ ├── PageControllerTest.php │ └── VersionHelperTest.php ├── vendor-bin ├── behat │ └── composer.json ├── owncloud-codestyle │ └── composer.json ├── phan │ └── composer.json └── phpstan │ └── composer.json └── webpack.config.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | [ 4 | "@babel/preset-env", 5 | { 6 | "modules": false 7 | } 8 | ] 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: composer 4 | directory: "/" 5 | schedule: 6 | interval: daily 7 | time: "22:00" 8 | open-pull-requests-limit: 10 9 | ignore: 10 | - dependency-name: scrutinizer/ocular 11 | versions: 12 | - 1.8.0 13 | - package-ecosystem: npm 14 | directory: "/" 15 | schedule: 16 | interval: daily 17 | time: "22:00" 18 | open-pull-requests-limit: 10 19 | ignore: 20 | - dependency-name: uikit 21 | versions: 22 | - 3.6.14 23 | - 3.6.15 24 | - 3.6.16 25 | - 3.6.17 26 | - 3.6.18 27 | - 3.6.19 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /js/ 2 | /l10n/.transifexrc 3 | /vendor/ 4 | /build/ 5 | /node_modules/ 6 | *.bundle.js 7 | /l10n/template.pot 8 | /l10n/locale/ 9 | .php_cs.cache 10 | .php-cs-fixer.cache 11 | *.po 12 | *.pl 13 | 14 | # Composer 15 | vendor/ 16 | vendor-bin/**/vendor 17 | vendor-bin/**/composer.lock 18 | 19 | # Tests - auto-generated files 20 | /tests/acceptance/output 21 | /tests/output 22 | .phpunit.result.cache 23 | 24 | # SonarCloud scanner 25 | .scannerwork 26 | 27 | # Generated from .drone.star 28 | .drone.yml 29 | .idea/ 30 | -------------------------------------------------------------------------------- /.php-cs-fixer.dist.php: -------------------------------------------------------------------------------- 1 | setUsingCache(true) 5 | ->getFinder() 6 | ->exclude('vendor') 7 | ->exclude('vendor-bin') 8 | ->exclude('l10n') 9 | ->in(__DIR__); 10 | return $config; 11 | -------------------------------------------------------------------------------- /.scrutinizer.yml: -------------------------------------------------------------------------------- 1 | filter: 2 | excluded_paths: 3 | - '3rdparty/*' 4 | - 'js/jquery*' 5 | 6 | imports: 7 | - javascript 8 | - php 9 | 10 | tools: 11 | external_code_coverage: true 12 | 13 | -------------------------------------------------------------------------------- /.snyk: -------------------------------------------------------------------------------- 1 | # Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities. 2 | version: v1.14.0 3 | ignore: {} 4 | # patches apply the minimum changes required to fix a vulnerability 5 | patch: 6 | 'npm:hoek:20180212': 7 | - node-sass > node-gyp > request > hawk > hoek: 8 | patched: '2018-07-25T13:36:18.141Z' 9 | - node-sass > node-gyp > request > hawk > boom > hoek: 10 | patched: '2018-07-25T13:36:18.141Z' 11 | - node-sass > node-gyp > request > hawk > sntp > hoek: 12 | patched: '2018-07-25T13:36:18.141Z' 13 | - node-sass > node-gyp > request > hawk > cryptiles > boom > hoek: 14 | patched: '2018-07-25T13:36:18.141Z' 15 | 'npm:uglify-js:20151024': 16 | - easygettext > jade > transformers > uglify-js: 17 | patched: '2018-07-25T13:36:18.141Z' 18 | SNYK-JS-LODASH-450202: 19 | - snyk > @snyk/snyk-cocoapods-plugin > @snyk/dep-graph > lodash: 20 | patched: '2019-12-31T01:34:06.075Z' 21 | - snyk > snyk-nuget-plugin > dotnet-deps-parser > lodash: 22 | patched: '2019-12-31T01:34:06.075Z' 23 | - snyk > @snyk/snyk-cocoapods-plugin > @snyk/cocoapods-lockfile-parser > @snyk/dep-graph > lodash: 24 | patched: '2019-12-31T01:34:06.075Z' 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # market 2 | :convenience_store: MarketPlace/AppStore integration 3 | 4 | [![Build Status](https://drone.owncloud.com/api/badges/owncloud/market/status.svg?branch=master)](https://drone.owncloud.com/owncloud/market) 5 | [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=owncloud_market&metric=alert_status)](https://sonarcloud.io/dashboard?id=owncloud_market) 6 | [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=owncloud_market&metric=security_rating)](https://sonarcloud.io/dashboard?id=owncloud_market) 7 | [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=owncloud_market&metric=coverage)](https://sonarcloud.io/dashboard?id=owncloud_market) 8 | 9 | See the [Frontend development](https://github.com/owncloud/market/wiki/Frontend-development-(WIP)) document to get going. 10 | -------------------------------------------------------------------------------- /appinfo/app.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2016, 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 | $app = new OCA\Market\Application(); 23 | -------------------------------------------------------------------------------- /appinfo/info.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | market 4 | Market 5 | Integrate the ownCloud marketplace into your ownCloud 6 | Easily manage ownCloud apps from within your ownCloud web interface. It connects your ownCloud with your marketplace account and lets you browse, install and update any apps from inside your ownCloud instance. 7 | 8 | Please note: Since ownCloud X (10.0) every instance gets shipped with this app included. You do not need to install it separately. 9 | To use this application click on "Files" in the top left corner and click on "Market" (cart icon) (Administrator privileges required) 10 | AGPL 11 | Thomas Müller, Felix Heidecke, Thomas Börger, Philipp Schaffrath, Viktar Dubiniuk 12 | 0.9.0 13 | 14 | tools 15 | https://raw.githubusercontent.com/owncloud/screenshots/master/market/ownCloud-market-app.jpg 16 | 17 | 18 | 19 | 20 | 21 | OCA\Market\CheckUpdateBackgroundJob 22 | 23 | 24 | OCA\Market\Command\InstallApp 25 | OCA\Market\Command\UnInstallApp 26 | OCA\Market\Command\ListApps 27 | OCA\Market\Command\UpgradeApp 28 | 29 | 30 | market.page.index 31 | 100 32 | 33 | 34 | -------------------------------------------------------------------------------- /appinfo/routes.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2016, 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 | return [ 23 | 'routes' => [ 24 | // ui controller 25 | ['name' => 'page#index', 'url' => '/', 'verb' => 'GET'], 26 | ['name' => 'page#indexHash', 'url' => '#/', 'verb' => 'GET'], 27 | // market controller 28 | ['name' => 'market#categories', 'url' => '/categories', 'verb' => 'GET'], 29 | ['name' => 'market#bundles', 'url' => '/bundles', 'verb' => 'GET'], 30 | ['name' => 'market#index', 'url' => '/apps', 'verb' => 'GET'], 31 | ['name' => 'market#app', 'url' => '/apps/{appId}', 'verb' => 'GET'], 32 | ['name' => 'market#install', 'url' => '/apps/{appId}/install', 'verb' => 'POST'], 33 | ['name' => 'market#update', 'url' => '/apps/{appId}/update', 'verb' => 'POST'], 34 | ['name' => 'market#uninstall', 'url' => '/apps/{appId}/uninstall', 'verb' => 'POST'], 35 | ['name' => 'market#getApiKey', 'url' => '/apikey', 'verb' => 'GET'], 36 | ['name' => 'market#changeApiKey', 'url' => '/apikey', 'verb' => 'PUT'], 37 | ['name' => 'market#getConfig', 'url' => '/config', 'verb' => 'GET'], 38 | ['name' => 'market#requestDemoLicenseKeyFromMarket', 'url' => '/request-license-key-from-market', 'verb' => 'GET'], 39 | ['name' => 'market#invalidateCache', 'url' => '/cache/invalidate', 'verb' => 'POST'], 40 | ['name' => 'localApps#index', 'url' => '/installed-apps/{state}', 'verb' => 'GET', 'defaults' => ['state' => 'enabled']], 41 | ], 42 | 'resources' => [] 43 | ]; 44 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "owncloud/market", 3 | "config" : { 4 | "platform": { 5 | "php": "7.3" 6 | }, 7 | "allow-plugins": { 8 | "bamarni/composer-bin-plugin": true 9 | } 10 | }, 11 | "require": { 12 | "php": ">=7.3" 13 | }, 14 | "require-dev": { 15 | "bamarni/composer-bin-plugin": "^1.8" 16 | }, 17 | "extra": { 18 | "bamarni-bin": { 19 | "bin-links": false 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", 5 | "This file is @generated automatically" 6 | ], 7 | "content-hash": "45939701975cf8ec8b421e1288bf2a2c", 8 | "packages": [], 9 | "packages-dev": [ 10 | { 11 | "name": "bamarni/composer-bin-plugin", 12 | "version": "1.8.2", 13 | "source": { 14 | "type": "git", 15 | "url": "https://github.com/bamarni/composer-bin-plugin.git", 16 | "reference": "92fd7b1e6e9cdae19b0d57369d8ad31a37b6a880" 17 | }, 18 | "dist": { 19 | "type": "zip", 20 | "url": "https://api.github.com/repos/bamarni/composer-bin-plugin/zipball/92fd7b1e6e9cdae19b0d57369d8ad31a37b6a880", 21 | "reference": "92fd7b1e6e9cdae19b0d57369d8ad31a37b6a880", 22 | "shasum": "" 23 | }, 24 | "require": { 25 | "composer-plugin-api": "^2.0", 26 | "php": "^7.2.5 || ^8.0" 27 | }, 28 | "require-dev": { 29 | "composer/composer": "^2.0", 30 | "ext-json": "*", 31 | "phpstan/extension-installer": "^1.1", 32 | "phpstan/phpstan": "^1.8", 33 | "phpstan/phpstan-phpunit": "^1.1", 34 | "phpunit/phpunit": "^8.5 || ^9.5", 35 | "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", 36 | "symfony/finder": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", 37 | "symfony/process": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0" 38 | }, 39 | "type": "composer-plugin", 40 | "extra": { 41 | "class": "Bamarni\\Composer\\Bin\\BamarniBinPlugin" 42 | }, 43 | "autoload": { 44 | "psr-4": { 45 | "Bamarni\\Composer\\Bin\\": "src" 46 | } 47 | }, 48 | "notification-url": "https://packagist.org/downloads/", 49 | "license": [ 50 | "MIT" 51 | ], 52 | "description": "No conflicts for your bin dependencies", 53 | "keywords": [ 54 | "composer", 55 | "conflict", 56 | "dependency", 57 | "executable", 58 | "isolation", 59 | "tool" 60 | ], 61 | "support": { 62 | "issues": "https://github.com/bamarni/composer-bin-plugin/issues", 63 | "source": "https://github.com/bamarni/composer-bin-plugin/tree/1.8.2" 64 | }, 65 | "time": "2022-10-31T08:38:03+00:00" 66 | } 67 | ], 68 | "aliases": [], 69 | "minimum-stability": "stable", 70 | "stability-flags": [], 71 | "prefer-stable": false, 72 | "prefer-lowest": false, 73 | "platform": { 74 | "php": ">=7.3" 75 | }, 76 | "platform-dev": [], 77 | "platform-overrides": { 78 | "php": "7.3" 79 | }, 80 | "plugin-api-version": "2.1.0" 81 | } 82 | -------------------------------------------------------------------------------- /img/market.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /l10n/.tx/config: -------------------------------------------------------------------------------- 1 | [main] 2 | host = https://www.transifex.com 3 | lang_map = ja_JP: ja 4 | 5 | [owncloud.market] 6 | file_filter = /market.po 7 | source_file = template.pot 8 | source_lang = en 9 | type = PO 10 | 11 | -------------------------------------------------------------------------------- /l10n/Makefile: -------------------------------------------------------------------------------- 1 | NODE_BINDIR = ../node_modules/.bin 2 | export PATH := $(NODE_BINDIR):$(PATH) 3 | 4 | # Available locales for the app. 5 | LOCALES = af_ZA bg_BG ca cs_CZ da de de_DE el en_GB es et_EE fi_FI fr he hu_HU is it ja ko lt_LT nb_NO nl pl pt_BR pt_PT ru sl sq sv th_TH tr uk zh_CN 6 | 7 | 8 | # Name of the generated .po files for each available locale. 9 | LOCALE_FILES ?= $(patsubst %,%/market.po,$(LOCALES)) 10 | 11 | GETTEXT_JS_SOURCES = $(shell find ../src -name '*.vue' -o -name '*.js') 12 | GETTEXT_PHP_SOURCES = $(shell find .. -name '*.php') 13 | 14 | # Makefile Targets 15 | .PHONY: clean makemessages translations push pull 16 | 17 | clean: 18 | rm -rf l10n/l10n.pl 19 | find l10n -type f -name \*.po -or -name \*.pot | xargs rm -f 20 | find l10n -type f -name uz.\* -or -name yo.\* -or -name ne.\* -or -name or_IN.\* | xargs git rm -f || true 21 | rm -rf template.pot translations.json 22 | 23 | makemessages: 24 | touch template.pot 25 | xgettext --language=JavaScript --keyword=t \ 26 | --from-code=utf-8 --join-existing --no-wrap \ 27 | --package-name=Market \ 28 | --package-version=0.0.1 \ 29 | --output=template.pot $(GETTEXT_JS_SOURCES) 30 | xgettext --language=PHP --keyword=t --keyword=n:1,2 \ 31 | --from-code=utf-8 --join-existing --no-wrap \ 32 | --package-name=Market \ 33 | --package-version=0.0.1 \ 34 | --output=template.pot $(GETTEXT_PHP_SOURCES) 35 | 36 | translations: 37 | gettext-compile --output translations.json $(LOCALE_FILES) 38 | 39 | push: 40 | tx -d push -s 41 | pull: 42 | tx -d pull -a --minimum-perc=15 43 | 44 | transifex-sync: clean makemessages push pull translations write 45 | 46 | .PHONY: write 47 | write: l10n.pl 48 | perl l10n.pl market write 49 | 50 | l10n.pl: 51 | wget -qO l10n.pl https://raw.githubusercontent.com/owncloud-ci/transifex/d1c63674d791fe8812216b29da9d8f2f26e7e138/rootfs/usr/bin/l10n 52 | -------------------------------------------------------------------------------- /l10n/af_ZA.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "No Bundles" : "Geen Bondels", 5 | "Developer" : "Ontwikkelaar", 6 | "Version" : "Weergawe", 7 | "License" : "Lisensie", 8 | "loading" : "laai tans", 9 | "view in marketplace" : "bekyk in markplein", 10 | "install" : "installeer", 11 | "uninstall" : "deïnstalleer", 12 | "update" : "werk by", 13 | "Are you sure you want to remove %{appName} from your system?" : "Is u seker u wil %{appName} van u stelsel af verwyder?", 14 | "Update available" : "Bywerking beskikbaar", 15 | "Installed" : "Geïnstalleer", 16 | "Market" : "Mark", 17 | "Show all" : "Toon alle", 18 | "App Bundles" : "Toepbondels", 19 | "Categories" : "Kategorieë", 20 | "Updates" : "Bywerkings", 21 | "Settings" : "Instellings", 22 | "Clear cache" : "Wis kasgeheue", 23 | "App" : "Toep", 24 | "Info" : "Inligting", 25 | "installed" : "geïnstalleer", 26 | "install bundle" : "installeer bondel", 27 | "No apps in %{category}" : "Geen toeps in %{category}", 28 | "Update Info" : "Werk Inligting By", 29 | "updating" : "werk tans by", 30 | "All apps are up to date" : "Alle toeps is opdatum", 31 | "Please enter a license-key in to config.php" : "Voer asb. ’n lisensiesleutel vir config.php in", 32 | "Please install and enable the enterprise_key app and enter a license-key in config.php first." : "Installeer en aktiveer eers die enterprise_key-toep en voer ’n lisensiesleutel by config.php in.", 33 | "Your license-key is not valid." : "U lisensiesleutel is ongeldig.", 34 | "App %s is already installed" : "Toep %s is reeds geïnstalleer", 35 | "Shipped apps cannot be uninstalled" : "Ingeboude toeps kan nie gedeïnstalleer word nie", 36 | "App (%s) could not be uninstalled. Please check the server logs." : "Toep (%s) kon nie gedeïnstalleer word nie. Gaan die bedienerlog na.", 37 | "App (%s) is not installed" : "Toep (%s) is nie geïnstalleer nie", 38 | "App (%s) is not known at the marketplace." : "Toep (%s) is nie bekend in die markplein nie.", 39 | "Unknown app (%s)" : "Onbekende toep (%s)", 40 | "No compatible version for %s" : "Geen versoenbare weergawe vir %s", 41 | "App %s installed successfully" : "Toep %s suksesvol geïnstalleer", 42 | "The api key is not valid." : "die api-sleutel is ongeldig.", 43 | "Can not change api key because it is configured in config.php" : "Kan nie api-sleutel verander nie omdat dit in config.php opgestel is", 44 | "App %s uninstalled successfully" : "Toep %s suksesvol gedeïnstalleer", 45 | "App %s updated successfully" : "Toep %s suksesvol bygewerk", 46 | "Update for %1$s to version %2$s is available." : "Bywerking vir %1$s na weergawe %2$s is beskikbaar.", 47 | "The Internet connection is disabled." : "Die Internetverbinding is afgeskakel." 48 | }, 49 | "nplurals=2; plural=(n != 1);"); 50 | -------------------------------------------------------------------------------- /l10n/af_ZA.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "No Bundles" : "Geen Bondels", 3 | "Developer" : "Ontwikkelaar", 4 | "Version" : "Weergawe", 5 | "License" : "Lisensie", 6 | "loading" : "laai tans", 7 | "view in marketplace" : "bekyk in markplein", 8 | "install" : "installeer", 9 | "uninstall" : "deïnstalleer", 10 | "update" : "werk by", 11 | "Are you sure you want to remove %{appName} from your system?" : "Is u seker u wil %{appName} van u stelsel af verwyder?", 12 | "Update available" : "Bywerking beskikbaar", 13 | "Installed" : "Geïnstalleer", 14 | "Market" : "Mark", 15 | "Show all" : "Toon alle", 16 | "App Bundles" : "Toepbondels", 17 | "Categories" : "Kategorieë", 18 | "Updates" : "Bywerkings", 19 | "Settings" : "Instellings", 20 | "Clear cache" : "Wis kasgeheue", 21 | "App" : "Toep", 22 | "Info" : "Inligting", 23 | "installed" : "geïnstalleer", 24 | "install bundle" : "installeer bondel", 25 | "No apps in %{category}" : "Geen toeps in %{category}", 26 | "Update Info" : "Werk Inligting By", 27 | "updating" : "werk tans by", 28 | "All apps are up to date" : "Alle toeps is opdatum", 29 | "Please enter a license-key in to config.php" : "Voer asb. ’n lisensiesleutel vir config.php in", 30 | "Please install and enable the enterprise_key app and enter a license-key in config.php first." : "Installeer en aktiveer eers die enterprise_key-toep en voer ’n lisensiesleutel by config.php in.", 31 | "Your license-key is not valid." : "U lisensiesleutel is ongeldig.", 32 | "App %s is already installed" : "Toep %s is reeds geïnstalleer", 33 | "Shipped apps cannot be uninstalled" : "Ingeboude toeps kan nie gedeïnstalleer word nie", 34 | "App (%s) could not be uninstalled. Please check the server logs." : "Toep (%s) kon nie gedeïnstalleer word nie. Gaan die bedienerlog na.", 35 | "App (%s) is not installed" : "Toep (%s) is nie geïnstalleer nie", 36 | "App (%s) is not known at the marketplace." : "Toep (%s) is nie bekend in die markplein nie.", 37 | "Unknown app (%s)" : "Onbekende toep (%s)", 38 | "No compatible version for %s" : "Geen versoenbare weergawe vir %s", 39 | "App %s installed successfully" : "Toep %s suksesvol geïnstalleer", 40 | "The api key is not valid." : "die api-sleutel is ongeldig.", 41 | "Can not change api key because it is configured in config.php" : "Kan nie api-sleutel verander nie omdat dit in config.php opgestel is", 42 | "App %s uninstalled successfully" : "Toep %s suksesvol gedeïnstalleer", 43 | "App %s updated successfully" : "Toep %s suksesvol bygewerk", 44 | "Update for %1$s to version %2$s is available." : "Bywerking vir %1$s na weergawe %2$s is beskikbaar.", 45 | "The Internet connection is disabled." : "Die Internetverbinding is afgeskakel." 46 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 47 | } -------------------------------------------------------------------------------- /l10n/ca.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "Version" : "Versió", 5 | "License" : "Llicència", 6 | "update" : "actualitza", 7 | "Update available" : "Actualització disponible", 8 | "Installed" : "Instal·lat", 9 | "Market" : "Botiga", 10 | "Show all" : "Mostra tot", 11 | "Categories" : "Categories", 12 | "Updates" : "Actualitzacions", 13 | "Settings" : "Configuració", 14 | "Clear cache" : "Esborra la memòria cau", 15 | "Update for %1$s to version %2$s is available." : "L'actualització per %1$s a la versió %2$s està disponible." 16 | }, 17 | "nplurals=2; plural=(n != 1);"); 18 | -------------------------------------------------------------------------------- /l10n/ca.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Version" : "Versió", 3 | "License" : "Llicència", 4 | "update" : "actualitza", 5 | "Update available" : "Actualització disponible", 6 | "Installed" : "Instal·lat", 7 | "Market" : "Botiga", 8 | "Show all" : "Mostra tot", 9 | "Categories" : "Categories", 10 | "Updates" : "Actualitzacions", 11 | "Settings" : "Configuració", 12 | "Clear cache" : "Esborra la memòria cau", 13 | "Update for %1$s to version %2$s is available." : "L'actualització per %1$s a la versió %2$s està disponible." 14 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 15 | } -------------------------------------------------------------------------------- /l10n/cs_CZ.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "Edit API Key" : "Upravit API klíč", 5 | "Add API Key" : "Přidat API klíč", 6 | "Version" : "Verze", 7 | "Release date" : "Datum vydání", 8 | "License" : "Licence", 9 | "published on " : "publikováno", 10 | "Get more info" : "Podrobnosti", 11 | "loading" : "načítání", 12 | "update" : "aktualizovat", 13 | "Are you sure you want to remove %{appName} from your system?" : "Opravdu chcete odstranit %{appName} z Vašeho systému?", 14 | "Update available" : "Dostupná aktualizace", 15 | "Installed" : "Nainstalováno", 16 | "Market" : "Obchod", 17 | "Show all" : "Zobrazit vše", 18 | "Categories" : "Kategorie", 19 | "Updates" : "Aktualizace", 20 | "Settings" : "Nastavení", 21 | "Clear cache" : "Vyprázdnit mezipaměť", 22 | "Info" : "Info", 23 | "No apps in %{category}" : "Žádné aplikace v %{category}", 24 | "App %s is already installed" : "Aplikace %s je již nainstalována", 25 | "App (%s) is not installed" : "Aplikace (%s) není nainstalována", 26 | "Unknown app (%s)" : "Neznámá aplikace (%s)", 27 | "App %s installed successfully" : "Aplikace %s nainstalována úspěšně", 28 | "No license key configured." : "Není nastaven licenční klíč.", 29 | "A license key is already configured." : "Licenční klíč je již nastaven.", 30 | "Cache cleared." : "Cache vyčištěna.", 31 | "Update for %1$s to version %2$s is available." : "Je dostupná aktualizace pro %1$s na verzi %2$s." 32 | }, 33 | "nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"); 34 | -------------------------------------------------------------------------------- /l10n/cs_CZ.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Edit API Key" : "Upravit API klíč", 3 | "Add API Key" : "Přidat API klíč", 4 | "Version" : "Verze", 5 | "Release date" : "Datum vydání", 6 | "License" : "Licence", 7 | "published on " : "publikováno", 8 | "Get more info" : "Podrobnosti", 9 | "loading" : "načítání", 10 | "update" : "aktualizovat", 11 | "Are you sure you want to remove %{appName} from your system?" : "Opravdu chcete odstranit %{appName} z Vašeho systému?", 12 | "Update available" : "Dostupná aktualizace", 13 | "Installed" : "Nainstalováno", 14 | "Market" : "Obchod", 15 | "Show all" : "Zobrazit vše", 16 | "Categories" : "Kategorie", 17 | "Updates" : "Aktualizace", 18 | "Settings" : "Nastavení", 19 | "Clear cache" : "Vyprázdnit mezipaměť", 20 | "Info" : "Info", 21 | "No apps in %{category}" : "Žádné aplikace v %{category}", 22 | "App %s is already installed" : "Aplikace %s je již nainstalována", 23 | "App (%s) is not installed" : "Aplikace (%s) není nainstalována", 24 | "Unknown app (%s)" : "Neznámá aplikace (%s)", 25 | "App %s installed successfully" : "Aplikace %s nainstalována úspěšně", 26 | "No license key configured." : "Není nastaven licenční klíč.", 27 | "A license key is already configured." : "Licenční klíč je již nastaven.", 28 | "Cache cleared." : "Cache vyčištěna.", 29 | "Update for %1$s to version %2$s is available." : "Je dostupná aktualizace pro %1$s na verzi %2$s." 30 | },"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;" 31 | } -------------------------------------------------------------------------------- /l10n/da.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "No Bundles" : "Ingen bundter", 5 | "Developer" : "Udvikler", 6 | "Version" : "Version", 7 | "License" : "Licens", 8 | "loading" : "Loader", 9 | "view in marketplace" : "Se i markedsplads", 10 | "install" : "Installer", 11 | "uninstall" : "Afinstaller", 12 | "update" : "opdater", 13 | "Are you sure you want to remove %{appName} from your system?" : "Er du sikker på, at du vil slette %{appName} fra dit system?", 14 | "Update available" : "Opdatering tilgængelig", 15 | "Installed" : "Installeret", 16 | "Market" : "Marked", 17 | "Show all" : "Vis alt", 18 | "App Bundles" : "App-grupperinger", 19 | "Categories" : "Kategorier", 20 | "Updates" : "Opdateringer", 21 | "Settings" : "Indstillinger", 22 | "Clear cache" : "Ryd mellemlageret", 23 | "App" : "App", 24 | "Info" : "Information", 25 | "installed" : "installeret", 26 | "install bundle" : "installer bundt", 27 | "No apps in %{category}" : "Ingen apps i %{kategori}", 28 | "Update Info" : "Opdateringsinformation", 29 | "updating" : "Opdaterer", 30 | "All apps are up to date" : "Alle apps er opdateret", 31 | "Please enter a license-key in to config.php" : "Indsæt venligst en licensnøgle i config.php", 32 | "Please install and enable the enterprise_key app and enter a license-key in config.php first." : "Installer og aktiver venligst enterprise-key-appen og intast først en licens-nøgl i config.php", 33 | "Your license-key is not valid." : "Din licensnøgle er ikke gyldig.", 34 | "App %s is already installed" : "App %s er allerede installeret", 35 | "Shipped apps cannot be uninstalled" : "Medsendte apps kan ikke afinstalleres. ", 36 | "App (%s) could not be uninstalled. Please check the server logs." : "App (%s) kunne ikke afinstalleres. Se venligst i server-loggene.", 37 | "App (%s) is not installed" : "App (%s) ikke installeret", 38 | "App (%s) is not known at the marketplace." : "App (%s) er ikke kendt i markedspladsen.", 39 | "Unknown app (%s)" : "Ukendt app (%s)", 40 | "No compatible version for %s" : "Ingen kompatibel version for %s", 41 | "App %s installed successfully" : "App %s succesfuldt installeret", 42 | "The api key is not valid." : "Api-nøglen er ikke gyldig.", 43 | "Can not change api key because it is configured in config.php" : "Kan ikke ændre api-nøglen da den er konfigureret i config.php", 44 | "App %s uninstalled successfully" : "App %s succesfuldt afinstalleret ", 45 | "App %s updated successfully" : "App %s succesfuldt opdateret", 46 | "Update for %1$s to version %2$s is available." : "Opdatering fra %1$s til version %2$s er tilgængelig", 47 | "The Internet connection is disabled." : "Internet forbindelsen er slået fra." 48 | }, 49 | "nplurals=2; plural=(n != 1);"); 50 | -------------------------------------------------------------------------------- /l10n/da.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "No Bundles" : "Ingen bundter", 3 | "Developer" : "Udvikler", 4 | "Version" : "Version", 5 | "License" : "Licens", 6 | "loading" : "Loader", 7 | "view in marketplace" : "Se i markedsplads", 8 | "install" : "Installer", 9 | "uninstall" : "Afinstaller", 10 | "update" : "opdater", 11 | "Are you sure you want to remove %{appName} from your system?" : "Er du sikker på, at du vil slette %{appName} fra dit system?", 12 | "Update available" : "Opdatering tilgængelig", 13 | "Installed" : "Installeret", 14 | "Market" : "Marked", 15 | "Show all" : "Vis alt", 16 | "App Bundles" : "App-grupperinger", 17 | "Categories" : "Kategorier", 18 | "Updates" : "Opdateringer", 19 | "Settings" : "Indstillinger", 20 | "Clear cache" : "Ryd mellemlageret", 21 | "App" : "App", 22 | "Info" : "Information", 23 | "installed" : "installeret", 24 | "install bundle" : "installer bundt", 25 | "No apps in %{category}" : "Ingen apps i %{kategori}", 26 | "Update Info" : "Opdateringsinformation", 27 | "updating" : "Opdaterer", 28 | "All apps are up to date" : "Alle apps er opdateret", 29 | "Please enter a license-key in to config.php" : "Indsæt venligst en licensnøgle i config.php", 30 | "Please install and enable the enterprise_key app and enter a license-key in config.php first." : "Installer og aktiver venligst enterprise-key-appen og intast først en licens-nøgl i config.php", 31 | "Your license-key is not valid." : "Din licensnøgle er ikke gyldig.", 32 | "App %s is already installed" : "App %s er allerede installeret", 33 | "Shipped apps cannot be uninstalled" : "Medsendte apps kan ikke afinstalleres. ", 34 | "App (%s) could not be uninstalled. Please check the server logs." : "App (%s) kunne ikke afinstalleres. Se venligst i server-loggene.", 35 | "App (%s) is not installed" : "App (%s) ikke installeret", 36 | "App (%s) is not known at the marketplace." : "App (%s) er ikke kendt i markedspladsen.", 37 | "Unknown app (%s)" : "Ukendt app (%s)", 38 | "No compatible version for %s" : "Ingen kompatibel version for %s", 39 | "App %s installed successfully" : "App %s succesfuldt installeret", 40 | "The api key is not valid." : "Api-nøglen er ikke gyldig.", 41 | "Can not change api key because it is configured in config.php" : "Kan ikke ændre api-nøglen da den er konfigureret i config.php", 42 | "App %s uninstalled successfully" : "App %s succesfuldt afinstalleret ", 43 | "App %s updated successfully" : "App %s succesfuldt opdateret", 44 | "Update for %1$s to version %2$s is available." : "Opdatering fra %1$s til version %2$s er tilgængelig", 45 | "The Internet connection is disabled." : "Internet forbindelsen er slået fra." 46 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 47 | } -------------------------------------------------------------------------------- /l10n/en_GB.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "Installing and updating Apps is not supported!" : "Installing and updating Apps is not supported!", 5 | "This is a clustered setup or the web server has no permissions to write to the apps folder." : "This is a clustered setup or the web server has no permissions to write to the apps folder.", 6 | "Edit API Key" : "Edit API Key", 7 | "Add API Key" : "Add API Key", 8 | "No Bundles" : "No Bundles", 9 | "Developer" : "Developer", 10 | "Version" : "Version", 11 | "Release date" : "Release date", 12 | "License" : "Licence", 13 | "Version %{version} available" : "Version %{version} available", 14 | "published on " : "published on ", 15 | "Get more info" : "Get more info", 16 | "loading" : "loading", 17 | "view in marketplace" : "view in marketplace", 18 | "install" : "install", 19 | "uninstall" : "uninstall", 20 | "update" : "update", 21 | "Are you sure you want to remove %{appName} from your system?" : "Are you sure you want to remove %{appName} from your system?", 22 | "Update available" : "Update available", 23 | "Installed" : "Installed", 24 | "Market" : "Market", 25 | "Show all" : "Show all", 26 | "App Bundles" : "App Bundles", 27 | "Categories" : "Categories", 28 | "Updates" : "Updates", 29 | "Settings" : "Settings", 30 | "Clear cache" : "Clear cache", 31 | "App" : "App", 32 | "Info" : "Info", 33 | "installed" : "installed", 34 | "install bundle" : "install bundle", 35 | "enterprise_key installation failed!" : "enterprise_key installation failed!", 36 | "No apps in %{category}" : "No apps in %{category}", 37 | "Update Info" : "Update Info", 38 | "updating" : "updating", 39 | "All apps are up to date" : "All apps are up to date", 40 | "Market notifications" : "Market notifications", 41 | "Please enter a license-key in to config.php" : "Please enter a licence-key in to config.php", 42 | "Please install and enable the enterprise_key app and enter a license-key in config.php first." : "Please install and enable the enterprise_key app and enter a licence-key in config.php first.", 43 | "Your license-key is not valid." : "Your licence-key is not valid.", 44 | "App %s is already installed" : "App %s is already installed", 45 | "Shipped apps cannot be uninstalled" : "Shipped apps cannot be uninstalled", 46 | "App (%s) could not be uninstalled. Please check the server logs." : "App (%s) could not be uninstalled. Please check the server logs.", 47 | "App (%s) is not installed" : "App (%s) is not installed", 48 | "App (%s) is not known at the marketplace." : "App (%s) is not known at the marketplace.", 49 | "Unknown app (%s)" : "Unknown app (%s)", 50 | "No compatible version for %s" : "No compatible version for %s", 51 | "App %s installed successfully" : "App %s installed successfully", 52 | "The api key is not valid." : "The API key is not valid.", 53 | "Can not change api key because it is configured in config.php" : "Can not change API key because it is configured in config.php", 54 | "App %s uninstalled successfully" : "App %s uninstalled successfully", 55 | "App %s updated successfully" : "App %s updated successfully", 56 | "License key available." : "Licence key available.", 57 | "No license key configured." : "No licence key configured.", 58 | "Demo license key successfully fetched from the marketplace." : "Demo licence key successfully fetched from the marketplace.", 59 | "A license key is already configured." : "A licence key is already configured.", 60 | "Could not request the license key." : "Could not request the licence key.", 61 | "Cache cleared." : "Cache cleared.", 62 | "Update for %1$s to version %2$s is available." : "Update for %1$s to version %2$s is available.", 63 | "The Internet connection is disabled." : "The Internet connection is disabled.", 64 | "Invalid marketplace API key provided" : "Invalid marketplace API key provided", 65 | "Marketplace API key missing" : "Marketplace API key missing", 66 | "Active subscription on marketplace required" : "Active subscription on marketplace required" 67 | }, 68 | "nplurals=2; plural=(n != 1);"); 69 | -------------------------------------------------------------------------------- /l10n/en_GB.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Installing and updating Apps is not supported!" : "Installing and updating Apps is not supported!", 3 | "This is a clustered setup or the web server has no permissions to write to the apps folder." : "This is a clustered setup or the web server has no permissions to write to the apps folder.", 4 | "Edit API Key" : "Edit API Key", 5 | "Add API Key" : "Add API Key", 6 | "No Bundles" : "No Bundles", 7 | "Developer" : "Developer", 8 | "Version" : "Version", 9 | "Release date" : "Release date", 10 | "License" : "Licence", 11 | "Version %{version} available" : "Version %{version} available", 12 | "published on " : "published on ", 13 | "Get more info" : "Get more info", 14 | "loading" : "loading", 15 | "view in marketplace" : "view in marketplace", 16 | "install" : "install", 17 | "uninstall" : "uninstall", 18 | "update" : "update", 19 | "Are you sure you want to remove %{appName} from your system?" : "Are you sure you want to remove %{appName} from your system?", 20 | "Update available" : "Update available", 21 | "Installed" : "Installed", 22 | "Market" : "Market", 23 | "Show all" : "Show all", 24 | "App Bundles" : "App Bundles", 25 | "Categories" : "Categories", 26 | "Updates" : "Updates", 27 | "Settings" : "Settings", 28 | "Clear cache" : "Clear cache", 29 | "App" : "App", 30 | "Info" : "Info", 31 | "installed" : "installed", 32 | "install bundle" : "install bundle", 33 | "enterprise_key installation failed!" : "enterprise_key installation failed!", 34 | "No apps in %{category}" : "No apps in %{category}", 35 | "Update Info" : "Update Info", 36 | "updating" : "updating", 37 | "All apps are up to date" : "All apps are up to date", 38 | "Market notifications" : "Market notifications", 39 | "Please enter a license-key in to config.php" : "Please enter a licence-key in to config.php", 40 | "Please install and enable the enterprise_key app and enter a license-key in config.php first." : "Please install and enable the enterprise_key app and enter a licence-key in config.php first.", 41 | "Your license-key is not valid." : "Your licence-key is not valid.", 42 | "App %s is already installed" : "App %s is already installed", 43 | "Shipped apps cannot be uninstalled" : "Shipped apps cannot be uninstalled", 44 | "App (%s) could not be uninstalled. Please check the server logs." : "App (%s) could not be uninstalled. Please check the server logs.", 45 | "App (%s) is not installed" : "App (%s) is not installed", 46 | "App (%s) is not known at the marketplace." : "App (%s) is not known at the marketplace.", 47 | "Unknown app (%s)" : "Unknown app (%s)", 48 | "No compatible version for %s" : "No compatible version for %s", 49 | "App %s installed successfully" : "App %s installed successfully", 50 | "The api key is not valid." : "The API key is not valid.", 51 | "Can not change api key because it is configured in config.php" : "Can not change API key because it is configured in config.php", 52 | "App %s uninstalled successfully" : "App %s uninstalled successfully", 53 | "App %s updated successfully" : "App %s updated successfully", 54 | "License key available." : "Licence key available.", 55 | "No license key configured." : "No licence key configured.", 56 | "Demo license key successfully fetched from the marketplace." : "Demo licence key successfully fetched from the marketplace.", 57 | "A license key is already configured." : "A licence key is already configured.", 58 | "Could not request the license key." : "Could not request the licence key.", 59 | "Cache cleared." : "Cache cleared.", 60 | "Update for %1$s to version %2$s is available." : "Update for %1$s to version %2$s is available.", 61 | "The Internet connection is disabled." : "The Internet connection is disabled.", 62 | "Invalid marketplace API key provided" : "Invalid marketplace API key provided", 63 | "Marketplace API key missing" : "Marketplace API key missing", 64 | "Active subscription on marketplace required" : "Active subscription on marketplace required" 65 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 66 | } -------------------------------------------------------------------------------- /l10n/et_EE.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "Edit API Key" : "Muuda API võtit", 5 | "Add API Key" : "Lisa API võti", 6 | "Developer" : "Arendaja", 7 | "Version" : "Versioon", 8 | "Release date" : "Väljalaske kuupäev", 9 | "License" : "Litsents", 10 | "Get more info" : "Hangi lisainfot", 11 | "loading" : "laadimine", 12 | "install" : "paigalda", 13 | "uninstall" : "eemalda", 14 | "update" : "uuenda", 15 | "Update available" : "Saadaval on uuendus", 16 | "Installed" : "Paigaldatud", 17 | "Market" : "Pood", 18 | "Show all" : "Näita kõiki", 19 | "Categories" : "Kategooriad", 20 | "Updates" : "Uuendused", 21 | "Settings" : "Seaded", 22 | "Clear cache" : "Tühjenda puhver", 23 | "App" : "Rakendus", 24 | "Info" : "Info", 25 | "installed" : "paigaldatud", 26 | "Update Info" : "Uuenduse info", 27 | "updating" : "uuendamine", 28 | "All apps are up to date" : "KÕik rakendused on ajakohased", 29 | "The api key is not valid." : "API võti pole korrektne", 30 | "Cache cleared." : "Vahemälu on tühjendatud.", 31 | "Update for %1$s to version %2$s is available." : "Saadaval on uuendus %1$s versioonile %2$s." 32 | }, 33 | "nplurals=2; plural=(n != 1);"); 34 | -------------------------------------------------------------------------------- /l10n/et_EE.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Edit API Key" : "Muuda API võtit", 3 | "Add API Key" : "Lisa API võti", 4 | "Developer" : "Arendaja", 5 | "Version" : "Versioon", 6 | "Release date" : "Väljalaske kuupäev", 7 | "License" : "Litsents", 8 | "Get more info" : "Hangi lisainfot", 9 | "loading" : "laadimine", 10 | "install" : "paigalda", 11 | "uninstall" : "eemalda", 12 | "update" : "uuenda", 13 | "Update available" : "Saadaval on uuendus", 14 | "Installed" : "Paigaldatud", 15 | "Market" : "Pood", 16 | "Show all" : "Näita kõiki", 17 | "Categories" : "Kategooriad", 18 | "Updates" : "Uuendused", 19 | "Settings" : "Seaded", 20 | "Clear cache" : "Tühjenda puhver", 21 | "App" : "Rakendus", 22 | "Info" : "Info", 23 | "installed" : "paigaldatud", 24 | "Update Info" : "Uuenduse info", 25 | "updating" : "uuendamine", 26 | "All apps are up to date" : "KÕik rakendused on ajakohased", 27 | "The api key is not valid." : "API võti pole korrektne", 28 | "Cache cleared." : "Vahemälu on tühjendatud.", 29 | "Update for %1$s to version %2$s is available." : "Saadaval on uuendus %1$s versioonile %2$s." 30 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 31 | } -------------------------------------------------------------------------------- /l10n/fi_FI.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "Version" : "Versio", 5 | "License" : "Lisenssi", 6 | "update" : "päivitä", 7 | "Installed" : "Asennettu", 8 | "Market" : "Kauppa", 9 | "Show all" : "Näytä kaikki", 10 | "Categories" : "Luokat", 11 | "Updates" : "Päivitykset", 12 | "Settings" : "Asetukset", 13 | "Clear cache" : "Tyhjennä välimuisti", 14 | "updating" : "päivitetään", 15 | "Update for %1$s to version %2$s is available." : "Kohteen %1$s päivitys versioon %2$s on saatavilla." 16 | }, 17 | "nplurals=2; plural=(n != 1);"); 18 | -------------------------------------------------------------------------------- /l10n/fi_FI.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Version" : "Versio", 3 | "License" : "Lisenssi", 4 | "update" : "päivitä", 5 | "Installed" : "Asennettu", 6 | "Market" : "Kauppa", 7 | "Show all" : "Näytä kaikki", 8 | "Categories" : "Luokat", 9 | "Updates" : "Päivitykset", 10 | "Settings" : "Asetukset", 11 | "Clear cache" : "Tyhjennä välimuisti", 12 | "updating" : "päivitetään", 13 | "Update for %1$s to version %2$s is available." : "Kohteen %1$s päivitys versioon %2$s on saatavilla." 14 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 15 | } -------------------------------------------------------------------------------- /l10n/fr.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "No Bundles" : "Aucun regroupement", 5 | "Developer" : "Développeur", 6 | "Version" : "Version", 7 | "License" : "Licence", 8 | "loading" : "Chargement", 9 | "view in marketplace" : "voir sur le marketplace", 10 | "install" : "Installer", 11 | "uninstall" : "Désinstaller", 12 | "update" : "mettre à jour", 13 | "Are you sure you want to remove %{appName} from your system?" : "Êtes vous sûr de vouloir désinstaller %{appName} de votre système ? ", 14 | "Update available" : "Des mises à jour sont disponibles", 15 | "Installed" : "Installé", 16 | "Market" : "Marché", 17 | "Show all" : "Tout afficher", 18 | "App Bundles" : "Lot d'applications", 19 | "Categories" : "Catégories", 20 | "Updates" : "Mises à jour", 21 | "Settings" : "Paramètres", 22 | "Clear cache" : "Vider le cache", 23 | "App" : "Application", 24 | "Info" : "Info", 25 | "installed" : "Installé", 26 | "install bundle" : "Installer un pack", 27 | "No apps in %{category}" : "Pas d'application dans %{category}", 28 | "Update Info" : "Information de mise à jour", 29 | "updating" : "En cours de mise à jour", 30 | "All apps are up to date" : "Toutes les applications sont à jour", 31 | "Market notifications" : "Notifications du marketplace", 32 | "Please enter a license-key in to config.php" : "Veuillez entrer une clé de licence dans config.php", 33 | "Please install and enable the enterprise_key app and enter a license-key in config.php first." : "Veuillez installer et activer l'application enterprise_key et entrer une clé de licence dans config.php en premier.", 34 | "Your license-key is not valid." : "Votre clé de licence est invalide", 35 | "App %s is already installed" : "L'application %s est déjà installée", 36 | "Shipped apps cannot be uninstalled" : "Les applications expédiées ne peuvent pas être désinstallées", 37 | "App (%s) could not be uninstalled. Please check the server logs." : "L'application (%s) n'a pas pu être être installée. Veuillez vérifier les logs serveur.", 38 | "App (%s) is not installed" : "L'application (%s) n'est pas installée", 39 | "App (%s) is not known at the marketplace." : "L'application (%s) est inconnue sur le marketplace.", 40 | "Unknown app (%s)" : "Application inconnue (%s)", 41 | "No compatible version for %s" : "Pas de version compatible pour %s", 42 | "App %s installed successfully" : "L'application %s a été installée avec succès", 43 | "The api key is not valid." : "La clé API est invalide.", 44 | "Can not change api key because it is configured in config.php" : "Impossible de changer la clé API car elle est configurée dans config.php", 45 | "App %s uninstalled successfully" : "L'application %s a été désinstallée avec succès", 46 | "App %s updated successfully" : "L'application %s a été mise à jour avec succès", 47 | "License key available." : "Clé de licence disponible.", 48 | "No license key configured." : "Aucune clé de licence configurée.", 49 | "Demo license key successfully fetched from the marketplace." : "Clé de licence \"démo\" récupérée avec succès sur le marketplace.", 50 | "A license key is already configured." : "Une clé de licence est déjà configurée.", 51 | "Could not request the license key." : "Impossible de demander la clé de licence.", 52 | "Update for %1$s to version %2$s is available." : "Une mise à jour de %1$s vers la version %2$s est disponible.", 53 | "The Internet connection is disabled." : "La connexion internet est désactivée.", 54 | "Invalid marketplace API key provided" : "Clé API non valide", 55 | "Marketplace API key missing" : "Clé d'API marketplace manquante", 56 | "Active subscription on marketplace required" : "Abonnement actif sur le marketplace requis" 57 | }, 58 | "nplurals=2; plural=(n > 1);"); 59 | -------------------------------------------------------------------------------- /l10n/fr.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "No Bundles" : "Aucun regroupement", 3 | "Developer" : "Développeur", 4 | "Version" : "Version", 5 | "License" : "Licence", 6 | "loading" : "Chargement", 7 | "view in marketplace" : "voir sur le marketplace", 8 | "install" : "Installer", 9 | "uninstall" : "Désinstaller", 10 | "update" : "mettre à jour", 11 | "Are you sure you want to remove %{appName} from your system?" : "Êtes vous sûr de vouloir désinstaller %{appName} de votre système ? ", 12 | "Update available" : "Des mises à jour sont disponibles", 13 | "Installed" : "Installé", 14 | "Market" : "Marché", 15 | "Show all" : "Tout afficher", 16 | "App Bundles" : "Lot d'applications", 17 | "Categories" : "Catégories", 18 | "Updates" : "Mises à jour", 19 | "Settings" : "Paramètres", 20 | "Clear cache" : "Vider le cache", 21 | "App" : "Application", 22 | "Info" : "Info", 23 | "installed" : "Installé", 24 | "install bundle" : "Installer un pack", 25 | "No apps in %{category}" : "Pas d'application dans %{category}", 26 | "Update Info" : "Information de mise à jour", 27 | "updating" : "En cours de mise à jour", 28 | "All apps are up to date" : "Toutes les applications sont à jour", 29 | "Market notifications" : "Notifications du marketplace", 30 | "Please enter a license-key in to config.php" : "Veuillez entrer une clé de licence dans config.php", 31 | "Please install and enable the enterprise_key app and enter a license-key in config.php first." : "Veuillez installer et activer l'application enterprise_key et entrer une clé de licence dans config.php en premier.", 32 | "Your license-key is not valid." : "Votre clé de licence est invalide", 33 | "App %s is already installed" : "L'application %s est déjà installée", 34 | "Shipped apps cannot be uninstalled" : "Les applications expédiées ne peuvent pas être désinstallées", 35 | "App (%s) could not be uninstalled. Please check the server logs." : "L'application (%s) n'a pas pu être être installée. Veuillez vérifier les logs serveur.", 36 | "App (%s) is not installed" : "L'application (%s) n'est pas installée", 37 | "App (%s) is not known at the marketplace." : "L'application (%s) est inconnue sur le marketplace.", 38 | "Unknown app (%s)" : "Application inconnue (%s)", 39 | "No compatible version for %s" : "Pas de version compatible pour %s", 40 | "App %s installed successfully" : "L'application %s a été installée avec succès", 41 | "The api key is not valid." : "La clé API est invalide.", 42 | "Can not change api key because it is configured in config.php" : "Impossible de changer la clé API car elle est configurée dans config.php", 43 | "App %s uninstalled successfully" : "L'application %s a été désinstallée avec succès", 44 | "App %s updated successfully" : "L'application %s a été mise à jour avec succès", 45 | "License key available." : "Clé de licence disponible.", 46 | "No license key configured." : "Aucune clé de licence configurée.", 47 | "Demo license key successfully fetched from the marketplace." : "Clé de licence \"démo\" récupérée avec succès sur le marketplace.", 48 | "A license key is already configured." : "Une clé de licence est déjà configurée.", 49 | "Could not request the license key." : "Impossible de demander la clé de licence.", 50 | "Update for %1$s to version %2$s is available." : "Une mise à jour de %1$s vers la version %2$s est disponible.", 51 | "The Internet connection is disabled." : "La connexion internet est désactivée.", 52 | "Invalid marketplace API key provided" : "Clé API non valide", 53 | "Marketplace API key missing" : "Clé d'API marketplace manquante", 54 | "Active subscription on marketplace required" : "Abonnement actif sur le marketplace requis" 55 | },"pluralForm" :"nplurals=2; plural=(n > 1);" 56 | } -------------------------------------------------------------------------------- /l10n/he.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "Installing and updating Apps is not supported!" : "התקנת ועדכון יישומים אינם נתמכים!", 5 | "This is a clustered setup or the web server has no permissions to write to the apps folder." : "זוהי התקנת אשכולות או שלשרת האינטרנט אין הרשאות לכתוב לתיקיית היישומים.", 6 | "Edit API Key" : "עריכת מפתח API", 7 | "Add API Key" : "הוספת מפתח API", 8 | "No Bundles" : "אין חבילות", 9 | "Developer" : "מפתח", 10 | "Version" : "גרסה", 11 | "Release date" : "תאריך שחרור", 12 | "License" : "רישיון", 13 | "Version %{version} available" : "גרסה %{version} זמינה", 14 | "published on " : "פורסם ב-", 15 | "Get more info" : "קבלת מידע נוסף", 16 | "loading" : "בטעינה", 17 | "view in marketplace" : "הצגה בחנות יישומים", 18 | "install" : "התקנה", 19 | "uninstall" : "הסרת התקנה", 20 | "update" : "עדכון", 21 | "Are you sure you want to remove %{appName} from your system?" : "האם באמת להסיר %{appName} מהמערכת שלך?", 22 | "Update available" : "עדכון זמין", 23 | "Installed" : "מותקן", 24 | "Market" : "חנות", 25 | "Show all" : "הצגה של הכול", 26 | "App Bundles" : "חבילות יישומים", 27 | "Categories" : "קטגוריות", 28 | "Updates" : "עדכונים", 29 | "Settings" : "הגדרות", 30 | "Clear cache" : "מחיקת זכרון מטמון", 31 | "App" : "יישום", 32 | "Info" : "מידע", 33 | "installed" : "מותקן", 34 | "install bundle" : "התקנת חבילה", 35 | "enterprise_key installation failed!" : "נכשלה התקנת enterprise_key !", 36 | "No apps in %{category}" : "אין יישומים ב- %{category}", 37 | "Update Info" : "מידע עדכון", 38 | "updating" : "מעדכן", 39 | "All apps are up to date" : "כל היישומים מעודכנים", 40 | "Market notifications" : "הודעת חנות היישומים", 41 | "Please enter a license-key in to config.php" : "יש להכניס קוד-רישיון לקובץ config.php", 42 | "Please install and enable the enterprise_key app and enter a license-key in config.php first." : "יש להתקין ולאפשר תחילה את יישום enterprise_key ולהכניס את קוד-הרישיון לקובץ config.php.", 43 | "Your license-key is not valid." : "קוד-הרישיון שלך אינו תקין.", 44 | "App %s is already installed" : "יישום %s כבר מותקן", 45 | "Shipped apps cannot be uninstalled" : "לא ניתן להסיר יישומים שנשלחו", 46 | "App (%s) could not be uninstalled. Please check the server logs." : "לא ניתן היה להסיר את היישום (%s). יש לבדוק את רישומי השרת.", 47 | "App (%s) is not installed" : "היישום (%s) אינו מותקן", 48 | "App (%s) is not known at the marketplace." : "היישום (%s) אינו מוכר בחנות היישומים.", 49 | "Unknown app (%s)" : "יישום לא מוכר (%s)", 50 | "No compatible version for %s" : "אין גרסה נתמכת עבור %s", 51 | "App %s installed successfully" : "יישום%s הותקן בהצלחה", 52 | "The api key is not valid." : "מפתח ה- API אינו תקין.", 53 | "Can not change api key because it is configured in config.php" : "לא ניתן לשנות מפתח API כיוון שהוא מוגדר בקובץ config.php", 54 | "App %s uninstalled successfully" : "יישום%s הוסר בהצלחה", 55 | "App %s updated successfully" : "יישום %s עודכן בהצלחה", 56 | "License key available." : "מפתח רישיון קיים.", 57 | "No license key configured." : "לא הוגדר מפתח רישיון.", 58 | "Demo license key successfully fetched from the marketplace." : "מפתח רישיון בגרסת הדגמה אוחזר בהצלחה מחנות היישומים.", 59 | "A license key is already configured." : "מפתח רישיון כבר הוגדר.", 60 | "Could not request the license key." : "לא ניתן היה לבקש את מפתח הרישיון.", 61 | "Cache cleared." : "זכרון המטמון נוקה.", 62 | "Update for %1$s to version %2$s is available." : "עדכון של %1$s לגרסה %2$s זמין.", 63 | "The Internet connection is disabled." : "חיבור האינטרנט מנוטרל.", 64 | "Invalid marketplace API key provided" : "סופק מפתח API לא חוקי לחנות היישומים", 65 | "Marketplace API key missing" : "חסר מפתח API לחנות היישומים", 66 | "Active subscription on marketplace required" : "נדרש מנוי פעיל לחנות היישומים" 67 | }, 68 | "nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;"); 69 | -------------------------------------------------------------------------------- /l10n/he.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Installing and updating Apps is not supported!" : "התקנת ועדכון יישומים אינם נתמכים!", 3 | "This is a clustered setup or the web server has no permissions to write to the apps folder." : "זוהי התקנת אשכולות או שלשרת האינטרנט אין הרשאות לכתוב לתיקיית היישומים.", 4 | "Edit API Key" : "עריכת מפתח API", 5 | "Add API Key" : "הוספת מפתח API", 6 | "No Bundles" : "אין חבילות", 7 | "Developer" : "מפתח", 8 | "Version" : "גרסה", 9 | "Release date" : "תאריך שחרור", 10 | "License" : "רישיון", 11 | "Version %{version} available" : "גרסה %{version} זמינה", 12 | "published on " : "פורסם ב-", 13 | "Get more info" : "קבלת מידע נוסף", 14 | "loading" : "בטעינה", 15 | "view in marketplace" : "הצגה בחנות יישומים", 16 | "install" : "התקנה", 17 | "uninstall" : "הסרת התקנה", 18 | "update" : "עדכון", 19 | "Are you sure you want to remove %{appName} from your system?" : "האם באמת להסיר %{appName} מהמערכת שלך?", 20 | "Update available" : "עדכון זמין", 21 | "Installed" : "מותקן", 22 | "Market" : "חנות", 23 | "Show all" : "הצגה של הכול", 24 | "App Bundles" : "חבילות יישומים", 25 | "Categories" : "קטגוריות", 26 | "Updates" : "עדכונים", 27 | "Settings" : "הגדרות", 28 | "Clear cache" : "מחיקת זכרון מטמון", 29 | "App" : "יישום", 30 | "Info" : "מידע", 31 | "installed" : "מותקן", 32 | "install bundle" : "התקנת חבילה", 33 | "enterprise_key installation failed!" : "נכשלה התקנת enterprise_key !", 34 | "No apps in %{category}" : "אין יישומים ב- %{category}", 35 | "Update Info" : "מידע עדכון", 36 | "updating" : "מעדכן", 37 | "All apps are up to date" : "כל היישומים מעודכנים", 38 | "Market notifications" : "הודעת חנות היישומים", 39 | "Please enter a license-key in to config.php" : "יש להכניס קוד-רישיון לקובץ config.php", 40 | "Please install and enable the enterprise_key app and enter a license-key in config.php first." : "יש להתקין ולאפשר תחילה את יישום enterprise_key ולהכניס את קוד-הרישיון לקובץ config.php.", 41 | "Your license-key is not valid." : "קוד-הרישיון שלך אינו תקין.", 42 | "App %s is already installed" : "יישום %s כבר מותקן", 43 | "Shipped apps cannot be uninstalled" : "לא ניתן להסיר יישומים שנשלחו", 44 | "App (%s) could not be uninstalled. Please check the server logs." : "לא ניתן היה להסיר את היישום (%s). יש לבדוק את רישומי השרת.", 45 | "App (%s) is not installed" : "היישום (%s) אינו מותקן", 46 | "App (%s) is not known at the marketplace." : "היישום (%s) אינו מוכר בחנות היישומים.", 47 | "Unknown app (%s)" : "יישום לא מוכר (%s)", 48 | "No compatible version for %s" : "אין גרסה נתמכת עבור %s", 49 | "App %s installed successfully" : "יישום%s הותקן בהצלחה", 50 | "The api key is not valid." : "מפתח ה- API אינו תקין.", 51 | "Can not change api key because it is configured in config.php" : "לא ניתן לשנות מפתח API כיוון שהוא מוגדר בקובץ config.php", 52 | "App %s uninstalled successfully" : "יישום%s הוסר בהצלחה", 53 | "App %s updated successfully" : "יישום %s עודכן בהצלחה", 54 | "License key available." : "מפתח רישיון קיים.", 55 | "No license key configured." : "לא הוגדר מפתח רישיון.", 56 | "Demo license key successfully fetched from the marketplace." : "מפתח רישיון בגרסת הדגמה אוחזר בהצלחה מחנות היישומים.", 57 | "A license key is already configured." : "מפתח רישיון כבר הוגדר.", 58 | "Could not request the license key." : "לא ניתן היה לבקש את מפתח הרישיון.", 59 | "Cache cleared." : "זכרון המטמון נוקה.", 60 | "Update for %1$s to version %2$s is available." : "עדכון של %1$s לגרסה %2$s זמין.", 61 | "The Internet connection is disabled." : "חיבור האינטרנט מנוטרל.", 62 | "Invalid marketplace API key provided" : "סופק מפתח API לא חוקי לחנות היישומים", 63 | "Marketplace API key missing" : "חסר מפתח API לחנות היישומים", 64 | "Active subscription on marketplace required" : "נדרש מנוי פעיל לחנות היישומים" 65 | },"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;" 66 | } -------------------------------------------------------------------------------- /l10n/hu_HU.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "No Bundles" : "Nincs csomag", 5 | "Developer" : "Fejlesztő", 6 | "Version" : "Verzió", 7 | "License" : "Licenc", 8 | "loading" : "Betöltés", 9 | "view in marketplace" : "Piac megtekintése", 10 | "install" : "Telepítés", 11 | "uninstall" : "eltávolítás", 12 | "update" : "frissítés", 13 | "Are you sure you want to remove %{appName} from your system?" : "Biztosan eltávolítja a % {appName} rendszert a rendszerből?", 14 | "Update available" : "Frissítés elérhető", 15 | "Installed" : "Telepítve", 16 | "Market" : "Piac", 17 | "Show all" : "Mutassuk mindet", 18 | "App Bundles" : "Alkalmazáscsomagok", 19 | "Categories" : "Kategóriák", 20 | "Updates" : "Frissítések", 21 | "Settings" : "Beállítások", 22 | "Clear cache" : "Gyorsítótár törlése", 23 | "App" : "App", 24 | "Info" : "Infó", 25 | "installed" : "telepítve", 26 | "install bundle" : "telepítse a csomagot", 27 | "No apps in %{category}" : "Nincsenek alkalmazások %{category}", 28 | "Update Info" : "információ frissítése", 29 | "updating" : "frissítve", 30 | "All apps are up to date" : "Minden alkalmazás naprakész", 31 | "Market notifications" : "Piac értesítések", 32 | "Please enter a license-key in to config.php" : "Adja meg a licenckulcsot a config.php fájlba", 33 | "Please install and enable the enterprise_key app and enter a license-key in config.php first." : "Telepítse és engedélyezze a enterprise_key alkalmazást, és adja meg először a config.php licenckulcsot.", 34 | "Your license-key is not valid." : "A licenckulcs érvénytelen.", 35 | "App %s is already installed" : "App %s már telepítve van", 36 | "Shipped apps cannot be uninstalled" : "Az elküldött alkalmazások nem kell eltávolítani", 37 | "App (%s) could not be uninstalled. Please check the server logs." : "App (%s) nem lehet eltávolítani. Ellenőrizze a szerver naplóit.", 38 | "App (%s) is not installed" : "App (%s) nincs telepítve", 39 | "App (%s) is not known at the marketplace." : "App (%s) nem ismert a piacon.", 40 | "Unknown app (%s)" : "Ismeretlen app (%s)", 41 | "No compatible version for %s" : "Nem kompatibilis verzió %s", 42 | "App %s installed successfully" : "App %s sikeresen telepítve", 43 | "The api key is not valid." : "Az api kulcs nem érvényes.", 44 | "Can not change api key because it is configured in config.php" : "Nem lehet megváltoztatni az api kulcsot, mert konfigurálva van a config.php-ban ", 45 | "App %s uninstalled successfully" : "App %s sikeresen eltávolítva", 46 | "App %s updated successfully" : "App %s Sikeresen frissítve", 47 | "License key available." : "Licenckulcs elérhető.", 48 | "No license key configured." : "Nincs beállítva licencfájl.", 49 | "Demo license key successfully fetched from the marketplace." : "A demo licenckulcs sikeresen érkezett piacról.", 50 | "A license key is already configured." : "Egy licenckulcs már beállított.", 51 | "Could not request the license key." : "A licenckulcs nem kérhető.", 52 | "Update for %1$s to version %2$s is available." : "%1$s frissíthető %2$s verzióra.", 53 | "The Internet connection is disabled." : "Az internetkapcsolat le van tiltva", 54 | "Invalid marketplace API key provided" : "Érvénytelen piaci API-kulcs", 55 | "Marketplace API key missing" : "A Marketplace API-kulcs hiányzik", 56 | "Active subscription on marketplace required" : "Aktív előfizetés szükséges a piacon" 57 | }, 58 | "nplurals=2; plural=(n != 1);"); 59 | -------------------------------------------------------------------------------- /l10n/hu_HU.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "No Bundles" : "Nincs csomag", 3 | "Developer" : "Fejlesztő", 4 | "Version" : "Verzió", 5 | "License" : "Licenc", 6 | "loading" : "Betöltés", 7 | "view in marketplace" : "Piac megtekintése", 8 | "install" : "Telepítés", 9 | "uninstall" : "eltávolítás", 10 | "update" : "frissítés", 11 | "Are you sure you want to remove %{appName} from your system?" : "Biztosan eltávolítja a % {appName} rendszert a rendszerből?", 12 | "Update available" : "Frissítés elérhető", 13 | "Installed" : "Telepítve", 14 | "Market" : "Piac", 15 | "Show all" : "Mutassuk mindet", 16 | "App Bundles" : "Alkalmazáscsomagok", 17 | "Categories" : "Kategóriák", 18 | "Updates" : "Frissítések", 19 | "Settings" : "Beállítások", 20 | "Clear cache" : "Gyorsítótár törlése", 21 | "App" : "App", 22 | "Info" : "Infó", 23 | "installed" : "telepítve", 24 | "install bundle" : "telepítse a csomagot", 25 | "No apps in %{category}" : "Nincsenek alkalmazások %{category}", 26 | "Update Info" : "információ frissítése", 27 | "updating" : "frissítve", 28 | "All apps are up to date" : "Minden alkalmazás naprakész", 29 | "Market notifications" : "Piac értesítések", 30 | "Please enter a license-key in to config.php" : "Adja meg a licenckulcsot a config.php fájlba", 31 | "Please install and enable the enterprise_key app and enter a license-key in config.php first." : "Telepítse és engedélyezze a enterprise_key alkalmazást, és adja meg először a config.php licenckulcsot.", 32 | "Your license-key is not valid." : "A licenckulcs érvénytelen.", 33 | "App %s is already installed" : "App %s már telepítve van", 34 | "Shipped apps cannot be uninstalled" : "Az elküldött alkalmazások nem kell eltávolítani", 35 | "App (%s) could not be uninstalled. Please check the server logs." : "App (%s) nem lehet eltávolítani. Ellenőrizze a szerver naplóit.", 36 | "App (%s) is not installed" : "App (%s) nincs telepítve", 37 | "App (%s) is not known at the marketplace." : "App (%s) nem ismert a piacon.", 38 | "Unknown app (%s)" : "Ismeretlen app (%s)", 39 | "No compatible version for %s" : "Nem kompatibilis verzió %s", 40 | "App %s installed successfully" : "App %s sikeresen telepítve", 41 | "The api key is not valid." : "Az api kulcs nem érvényes.", 42 | "Can not change api key because it is configured in config.php" : "Nem lehet megváltoztatni az api kulcsot, mert konfigurálva van a config.php-ban ", 43 | "App %s uninstalled successfully" : "App %s sikeresen eltávolítva", 44 | "App %s updated successfully" : "App %s Sikeresen frissítve", 45 | "License key available." : "Licenckulcs elérhető.", 46 | "No license key configured." : "Nincs beállítva licencfájl.", 47 | "Demo license key successfully fetched from the marketplace." : "A demo licenckulcs sikeresen érkezett piacról.", 48 | "A license key is already configured." : "Egy licenckulcs már beállított.", 49 | "Could not request the license key." : "A licenckulcs nem kérhető.", 50 | "Update for %1$s to version %2$s is available." : "%1$s frissíthető %2$s verzióra.", 51 | "The Internet connection is disabled." : "Az internetkapcsolat le van tiltva", 52 | "Invalid marketplace API key provided" : "Érvénytelen piaci API-kulcs", 53 | "Marketplace API key missing" : "A Marketplace API-kulcs hiányzik", 54 | "Active subscription on marketplace required" : "Aktív előfizetés szükséges a piacon" 55 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 56 | } -------------------------------------------------------------------------------- /l10n/is.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "Edit API Key" : "Breyta API-forrritsviðmótslykli", 5 | "Add API Key" : "Bæta við API-forrritsviðmótslykli", 6 | "No Bundles" : "Engir forritavöndlar", 7 | "Developer" : "Hönnuður", 8 | "Version" : "Útgáfa", 9 | "Release date" : "Útgáfudagur", 10 | "License" : "Notkunarleyfi", 11 | "Version %{version} available" : "Útgáfa %{version} er tiltæk", 12 | "published on " : "gefið út þann", 13 | "Get more info" : "Sjáðu nánari upplýsingar", 14 | "loading" : "hleð inn", 15 | "view in marketplace" : "Skoða á forritamarkaði", 16 | "install" : "setja upp", 17 | "uninstall" : "taka út uppsetningu", 18 | "update" : "uppfæra", 19 | "Are you sure you want to remove %{appName} from your system?" : "Ertu viss um að þú viljir fjarlægja %{appName} af kerfinu þínu?", 20 | "Update available" : "Uppfærsla er tiltæk", 21 | "Installed" : "Uppsett", 22 | "Market" : "Markaður", 23 | "Show all" : "Birta allt", 24 | "App Bundles" : "Forritavöndlar", 25 | "Categories" : "Flokkar", 26 | "Updates" : "Uppfærslur", 27 | "Settings" : "Stillingar", 28 | "Clear cache" : "Hreinsa skyndiminni", 29 | "App" : "Forrit", 30 | "Info" : "Upplýsingar", 31 | "installed" : "uppsett", 32 | "install bundle" : "Setja upp vöndul", 33 | "No apps in %{category}" : "Engin forrit í %{category}", 34 | "Update Info" : "Uppfærsluupplýsingar", 35 | "updating" : "uppfæri", 36 | "All apps are up to date" : "Öll forrit eru af nýjustu útgáfu", 37 | "Please enter a license-key in to config.php" : "Settu leyfislykil inn í config.php", 38 | "Your license-key is not valid." : "Leyfislykilinn þinn er ekki gildur.", 39 | "App %s is already installed" : "Forritið %s er þegar uppsett", 40 | "App (%s) is not installed" : "Forritið (%s) er ekki uppsett", 41 | "Unknown app (%s)" : "Óþekkt forrit (%s)", 42 | "No compatible version for %s" : "Engin samhæfð útgáfa fyrir %s", 43 | "License key available." : "Leyfislykill tiltækur.", 44 | "No license key configured." : "Enginn leyfislykill er uppsettur.", 45 | "A license key is already configured." : "Leyfislykill er þegar uppsettur.", 46 | "Could not request the license key." : "Gat ekki beðið um leyfislykilinn.", 47 | "Cache cleared." : "Skyndiminni hreinsað.", 48 | "Update for %1$s to version %2$s is available." : "Upfærsla %1$s í útgáfu %2$s er tiltæk." 49 | }, 50 | "nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"); 51 | -------------------------------------------------------------------------------- /l10n/is.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Edit API Key" : "Breyta API-forrritsviðmótslykli", 3 | "Add API Key" : "Bæta við API-forrritsviðmótslykli", 4 | "No Bundles" : "Engir forritavöndlar", 5 | "Developer" : "Hönnuður", 6 | "Version" : "Útgáfa", 7 | "Release date" : "Útgáfudagur", 8 | "License" : "Notkunarleyfi", 9 | "Version %{version} available" : "Útgáfa %{version} er tiltæk", 10 | "published on " : "gefið út þann", 11 | "Get more info" : "Sjáðu nánari upplýsingar", 12 | "loading" : "hleð inn", 13 | "view in marketplace" : "Skoða á forritamarkaði", 14 | "install" : "setja upp", 15 | "uninstall" : "taka út uppsetningu", 16 | "update" : "uppfæra", 17 | "Are you sure you want to remove %{appName} from your system?" : "Ertu viss um að þú viljir fjarlægja %{appName} af kerfinu þínu?", 18 | "Update available" : "Uppfærsla er tiltæk", 19 | "Installed" : "Uppsett", 20 | "Market" : "Markaður", 21 | "Show all" : "Birta allt", 22 | "App Bundles" : "Forritavöndlar", 23 | "Categories" : "Flokkar", 24 | "Updates" : "Uppfærslur", 25 | "Settings" : "Stillingar", 26 | "Clear cache" : "Hreinsa skyndiminni", 27 | "App" : "Forrit", 28 | "Info" : "Upplýsingar", 29 | "installed" : "uppsett", 30 | "install bundle" : "Setja upp vöndul", 31 | "No apps in %{category}" : "Engin forrit í %{category}", 32 | "Update Info" : "Uppfærsluupplýsingar", 33 | "updating" : "uppfæri", 34 | "All apps are up to date" : "Öll forrit eru af nýjustu útgáfu", 35 | "Please enter a license-key in to config.php" : "Settu leyfislykil inn í config.php", 36 | "Your license-key is not valid." : "Leyfislykilinn þinn er ekki gildur.", 37 | "App %s is already installed" : "Forritið %s er þegar uppsett", 38 | "App (%s) is not installed" : "Forritið (%s) er ekki uppsett", 39 | "Unknown app (%s)" : "Óþekkt forrit (%s)", 40 | "No compatible version for %s" : "Engin samhæfð útgáfa fyrir %s", 41 | "License key available." : "Leyfislykill tiltækur.", 42 | "No license key configured." : "Enginn leyfislykill er uppsettur.", 43 | "A license key is already configured." : "Leyfislykill er þegar uppsettur.", 44 | "Could not request the license key." : "Gat ekki beðið um leyfislykilinn.", 45 | "Cache cleared." : "Skyndiminni hreinsað.", 46 | "Update for %1$s to version %2$s is available." : "Upfærsla %1$s í útgáfu %2$s er tiltæk." 47 | },"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);" 48 | } -------------------------------------------------------------------------------- /l10n/ja.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "Edit API Key" : "APIキーを編集する", 5 | "Add API Key" : "APIキーを追加する", 6 | "Developer" : "開発者", 7 | "Version" : "バージョン", 8 | "Release date" : "リリース日", 9 | "License" : "ライセンス", 10 | "Version %{version} available" : "バージョン%{version}が利用可能です", 11 | "Get more info" : "もっと情報を得る", 12 | "loading" : "読込中", 13 | "view in marketplace" : "マーケットプレイスを見る", 14 | "install" : "インストール", 15 | "uninstall" : "アンインストール", 16 | "update" : "アップデート", 17 | "Update available" : "アップデートが利用できます", 18 | "Installed" : "インストール済", 19 | "Market" : "マーケット", 20 | "Show all" : "全て表示", 21 | "Categories" : "カテゴリ", 22 | "Updates" : "アップデート", 23 | "Settings" : "設定", 24 | "Clear cache" : "キャッシュをクリア", 25 | "App" : "アプリ", 26 | "Info" : "情報", 27 | "installed" : "インストール済み", 28 | "No apps in %{category}" : "%{category}にはアプリケーションがありません。", 29 | "Update Info" : "更新情報", 30 | "updating" : "更新中", 31 | "All apps are up to date" : "すべてのアプリは最新です", 32 | "Market notifications" : "マーケット通知", 33 | "Please enter a license-key in to config.php" : "ライセンスキーをconfig.phpに入力してください", 34 | "Your license-key is not valid." : "ライセンスキーが無効です", 35 | "App %s is already installed" : "アプリ %s はすでにインストールされています", 36 | "App (%s) is not installed" : "アプリ(%s)はインストールされていません", 37 | "App (%s) is not known at the marketplace." : "アプリ(%s)はマーケットプレイスにありません。", 38 | "Unknown app (%s)" : "不明なアプリ(%s)", 39 | "App %s installed successfully" : "アプリ %s のインストールに成功しました", 40 | "The api key is not valid." : "APIキーが無効です", 41 | "App %s uninstalled successfully" : "アプリ %s のアンインストールに成功しました", 42 | "App %s updated successfully" : "アプリ %s のアップデートに成功しました", 43 | "License key available." : "ライセンスキーは利用可能です。", 44 | "No license key configured." : "ライセンスキーは設定されていません。", 45 | "Demo license key successfully fetched from the marketplace." : "マーケットプレイスからデモ用ライセンスキーの取得に成功しました", 46 | "A license key is already configured." : "ライセンスキーが既に設定されています。", 47 | "Cache cleared." : "キャッシュを削除しました。", 48 | "Update for %1$s to version %2$s is available." : "%1$s に対するバージョン %2$s へアップデートが利用可能です。", 49 | "The Internet connection is disabled." : "インターネットに接続出来ません", 50 | "Marketplace API key missing" : "マーケットプレイスのAPIキーが見つかりません" 51 | }, 52 | "nplurals=1; plural=0;"); 53 | -------------------------------------------------------------------------------- /l10n/ja.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Edit API Key" : "APIキーを編集する", 3 | "Add API Key" : "APIキーを追加する", 4 | "Developer" : "開発者", 5 | "Version" : "バージョン", 6 | "Release date" : "リリース日", 7 | "License" : "ライセンス", 8 | "Version %{version} available" : "バージョン%{version}が利用可能です", 9 | "Get more info" : "もっと情報を得る", 10 | "loading" : "読込中", 11 | "view in marketplace" : "マーケットプレイスを見る", 12 | "install" : "インストール", 13 | "uninstall" : "アンインストール", 14 | "update" : "アップデート", 15 | "Update available" : "アップデートが利用できます", 16 | "Installed" : "インストール済", 17 | "Market" : "マーケット", 18 | "Show all" : "全て表示", 19 | "Categories" : "カテゴリ", 20 | "Updates" : "アップデート", 21 | "Settings" : "設定", 22 | "Clear cache" : "キャッシュをクリア", 23 | "App" : "アプリ", 24 | "Info" : "情報", 25 | "installed" : "インストール済み", 26 | "No apps in %{category}" : "%{category}にはアプリケーションがありません。", 27 | "Update Info" : "更新情報", 28 | "updating" : "更新中", 29 | "All apps are up to date" : "すべてのアプリは最新です", 30 | "Market notifications" : "マーケット通知", 31 | "Please enter a license-key in to config.php" : "ライセンスキーをconfig.phpに入力してください", 32 | "Your license-key is not valid." : "ライセンスキーが無効です", 33 | "App %s is already installed" : "アプリ %s はすでにインストールされています", 34 | "App (%s) is not installed" : "アプリ(%s)はインストールされていません", 35 | "App (%s) is not known at the marketplace." : "アプリ(%s)はマーケットプレイスにありません。", 36 | "Unknown app (%s)" : "不明なアプリ(%s)", 37 | "App %s installed successfully" : "アプリ %s のインストールに成功しました", 38 | "The api key is not valid." : "APIキーが無効です", 39 | "App %s uninstalled successfully" : "アプリ %s のアンインストールに成功しました", 40 | "App %s updated successfully" : "アプリ %s のアップデートに成功しました", 41 | "License key available." : "ライセンスキーは利用可能です。", 42 | "No license key configured." : "ライセンスキーは設定されていません。", 43 | "Demo license key successfully fetched from the marketplace." : "マーケットプレイスからデモ用ライセンスキーの取得に成功しました", 44 | "A license key is already configured." : "ライセンスキーが既に設定されています。", 45 | "Cache cleared." : "キャッシュを削除しました。", 46 | "Update for %1$s to version %2$s is available." : "%1$s に対するバージョン %2$s へアップデートが利用可能です。", 47 | "The Internet connection is disabled." : "インターネットに接続出来ません", 48 | "Marketplace API key missing" : "マーケットプレイスのAPIキーが見つかりません" 49 | },"pluralForm" :"nplurals=1; plural=0;" 50 | } -------------------------------------------------------------------------------- /l10n/ko.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "Edit API Key" : "API 키 수정", 5 | "Add API Key" : "API 키 추가", 6 | "No Bundles" : "번들 없음", 7 | "Developer" : "개발자", 8 | "Version" : "버전", 9 | "Release date" : "출시일", 10 | "License" : "라이선스", 11 | "loading" : "불러오는 중", 12 | "view in marketplace" : "마켓플레이스에서 보기", 13 | "install" : "설치", 14 | "uninstall" : "삭제", 15 | "update" : "업데이트", 16 | "Are you sure you want to remove %{appName} from your system?" : "시스템에서 %{appName}을(를) 삭제하시겠습니까?", 17 | "Update available" : "업데이트 사용 가능", 18 | "Installed" : "설치됨", 19 | "Market" : "마켓", 20 | "Show all" : "모두 보기", 21 | "App Bundles" : "앱 번들", 22 | "Categories" : "분류", 23 | "Updates" : "업데이트", 24 | "Settings" : "설정", 25 | "Clear cache" : "캐시 비우기", 26 | "App" : "앱", 27 | "Info" : "정보", 28 | "installed" : "설치됨", 29 | "install bundle" : "번들 설치", 30 | "No apps in %{category}" : "%{category}에 앱 없음", 31 | "Update Info" : "업데이트 정보", 32 | "updating" : "업데이트 중", 33 | "All apps are up to date" : "모든 앱이 최신 상태임", 34 | "Market notifications" : "마켓 알림", 35 | "Please enter a license-key in to config.php" : "config.php에 license-key를 입력하십시오", 36 | "Please install and enable the enterprise_key app and enter a license-key in config.php first." : "enterprise_key 앱을 설치 및 활성화한 다음 config.php에 license-key를 입력하십시오.", 37 | "Your license-key is not valid." : "license-key가 올바르지 않습니다.", 38 | "App %s is already installed" : "%s 앱이 이미 설치됨", 39 | "Shipped apps cannot be uninstalled" : "포함된 앱을 삭제할 수 없음", 40 | "App (%s) could not be uninstalled. Please check the server logs." : "앱(%s)을 삭제할 수 없습니다. 서버 로그를 확인하십시오.", 41 | "App (%s) is not installed" : "앱(%s)이 설치되지 않았음", 42 | "App (%s) is not known at the marketplace." : "앱(%s)이 마켓플레이스에 등록되지 않았습니다.", 43 | "Unknown app (%s)" : "알 수 없는 앱(%s)", 44 | "No compatible version for %s" : "%s 호환 버전이 없음", 45 | "App %s installed successfully" : "%s 앱이 설치됨", 46 | "The api key is not valid." : "API 키가 올바르지 않습니다.", 47 | "Can not change api key because it is configured in config.php" : "config.php에 설정되어 있는 API 키를 변경할 수 없음", 48 | "App %s uninstalled successfully" : "%s 앱이 삭제됨", 49 | "App %s updated successfully" : "%s 앱이 업데이트됨", 50 | "License key available." : "라이선스 키를 사용할 수 있습니다.", 51 | "No license key configured." : "라이선스 키가 설정되지 않았습니다.", 52 | "Demo license key successfully fetched from the marketplace." : "마켓플레이스에서 데모 라이선스 키를 가져왔습니다.", 53 | "A license key is already configured." : "라이선스 키가 이미 설정되어 있습니다.", 54 | "Could not request the license key." : "라이선스 키를 요청할 수 없습니다.", 55 | "Cache cleared." : "캐시 지워짐.", 56 | "Update for %1$s to version %2$s is available." : "%1$s을(를) 버전 %2$s(으)로 업데이트할 수 있습니다.", 57 | "The Internet connection is disabled." : "인터넷 연결이 비활성화되어 있습니다.", 58 | "Invalid marketplace API key provided" : "잘못된 마켓플레이스 API 키를 입력함", 59 | "Marketplace API key missing" : "마켓플레이스 API 키가 없음", 60 | "Active subscription on marketplace required" : "마켓플레이스 활성 구독이 필요함" 61 | }, 62 | "nplurals=1; plural=0;"); 63 | -------------------------------------------------------------------------------- /l10n/ko.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Edit API Key" : "API 키 수정", 3 | "Add API Key" : "API 키 추가", 4 | "No Bundles" : "번들 없음", 5 | "Developer" : "개발자", 6 | "Version" : "버전", 7 | "Release date" : "출시일", 8 | "License" : "라이선스", 9 | "loading" : "불러오는 중", 10 | "view in marketplace" : "마켓플레이스에서 보기", 11 | "install" : "설치", 12 | "uninstall" : "삭제", 13 | "update" : "업데이트", 14 | "Are you sure you want to remove %{appName} from your system?" : "시스템에서 %{appName}을(를) 삭제하시겠습니까?", 15 | "Update available" : "업데이트 사용 가능", 16 | "Installed" : "설치됨", 17 | "Market" : "마켓", 18 | "Show all" : "모두 보기", 19 | "App Bundles" : "앱 번들", 20 | "Categories" : "분류", 21 | "Updates" : "업데이트", 22 | "Settings" : "설정", 23 | "Clear cache" : "캐시 비우기", 24 | "App" : "앱", 25 | "Info" : "정보", 26 | "installed" : "설치됨", 27 | "install bundle" : "번들 설치", 28 | "No apps in %{category}" : "%{category}에 앱 없음", 29 | "Update Info" : "업데이트 정보", 30 | "updating" : "업데이트 중", 31 | "All apps are up to date" : "모든 앱이 최신 상태임", 32 | "Market notifications" : "마켓 알림", 33 | "Please enter a license-key in to config.php" : "config.php에 license-key를 입력하십시오", 34 | "Please install and enable the enterprise_key app and enter a license-key in config.php first." : "enterprise_key 앱을 설치 및 활성화한 다음 config.php에 license-key를 입력하십시오.", 35 | "Your license-key is not valid." : "license-key가 올바르지 않습니다.", 36 | "App %s is already installed" : "%s 앱이 이미 설치됨", 37 | "Shipped apps cannot be uninstalled" : "포함된 앱을 삭제할 수 없음", 38 | "App (%s) could not be uninstalled. Please check the server logs." : "앱(%s)을 삭제할 수 없습니다. 서버 로그를 확인하십시오.", 39 | "App (%s) is not installed" : "앱(%s)이 설치되지 않았음", 40 | "App (%s) is not known at the marketplace." : "앱(%s)이 마켓플레이스에 등록되지 않았습니다.", 41 | "Unknown app (%s)" : "알 수 없는 앱(%s)", 42 | "No compatible version for %s" : "%s 호환 버전이 없음", 43 | "App %s installed successfully" : "%s 앱이 설치됨", 44 | "The api key is not valid." : "API 키가 올바르지 않습니다.", 45 | "Can not change api key because it is configured in config.php" : "config.php에 설정되어 있는 API 키를 변경할 수 없음", 46 | "App %s uninstalled successfully" : "%s 앱이 삭제됨", 47 | "App %s updated successfully" : "%s 앱이 업데이트됨", 48 | "License key available." : "라이선스 키를 사용할 수 있습니다.", 49 | "No license key configured." : "라이선스 키가 설정되지 않았습니다.", 50 | "Demo license key successfully fetched from the marketplace." : "마켓플레이스에서 데모 라이선스 키를 가져왔습니다.", 51 | "A license key is already configured." : "라이선스 키가 이미 설정되어 있습니다.", 52 | "Could not request the license key." : "라이선스 키를 요청할 수 없습니다.", 53 | "Cache cleared." : "캐시 지워짐.", 54 | "Update for %1$s to version %2$s is available." : "%1$s을(를) 버전 %2$s(으)로 업데이트할 수 있습니다.", 55 | "The Internet connection is disabled." : "인터넷 연결이 비활성화되어 있습니다.", 56 | "Invalid marketplace API key provided" : "잘못된 마켓플레이스 API 키를 입력함", 57 | "Marketplace API key missing" : "마켓플레이스 API 키가 없음", 58 | "Active subscription on marketplace required" : "마켓플레이스 활성 구독이 필요함" 59 | },"pluralForm" :"nplurals=1; plural=0;" 60 | } -------------------------------------------------------------------------------- /l10n/lt_LT.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "No Bundles" : "Nėra sąsajų", 5 | "Developer" : "Kūrėjas", 6 | "Version" : "Versija", 7 | "License" : "Licencija", 8 | "loading" : "įkeliama", 9 | "view in marketplace" : "žiūrėti turguje", 10 | "install" : "įdiegti", 11 | "uninstall" : "išdiegti", 12 | "update" : "atnaujinti", 13 | "Are you sure you want to remove %{appName} from your system?" : "Ar tikrai norite ištrinti %{appName}?", 14 | "Update available" : "Galimas atnaujinimas", 15 | "Installed" : "Įdiegta", 16 | "Market" : "Parduotuvė", 17 | "Show all" : "Rodyti visus", 18 | "App Bundles" : "App komplektai", 19 | "Categories" : "Kategorijos", 20 | "Updates" : "Atnaujinimai", 21 | "Settings" : "Parinktys", 22 | "Clear cache" : "Išvalyti talpyklą", 23 | "App" : "App", 24 | "Info" : "Informacija", 25 | "installed" : "įdiegta", 26 | "install bundle" : "įdiegti komplektą", 27 | "No apps in %{category}" : "Nėra applikacijų %{category}", 28 | "Update Info" : "Atnaujinti Informaciją", 29 | "updating" : "atnaujina", 30 | "All apps are up to date" : "Viskas naujausia", 31 | "Market notifications" : "Turgaus pranešimai", 32 | "Please enter a license-key in to config.php" : "Įveskite licenzijos raktą į config.php", 33 | "Please install and enable the enterprise_key app and enter a license-key in config.php first." : "Įdiekite ir įjunkite enterprise_key ir licenzijos raktą config.php konfigūracijoje.", 34 | "Your license-key is not valid." : "licenzijos raktas negalioja.", 35 | "App %s is already installed" : "App %sjau įdiegta", 36 | "Shipped apps cannot be uninstalled" : "Pristatytos applikacijos negali būti įdiegtos", 37 | "App (%s) could not be uninstalled. Please check the server logs." : "Aplikacija (%s) negali būti įdiegta. Peržiūrėkite žurnalus.", 38 | "App (%s) is not installed" : "Applikacija (%s) neįdiegta", 39 | "App (%s) is not known at the marketplace." : "Aplikacija (%s) nežinoma turgelyje.", 40 | "Unknown app (%s)" : "Nežinoma applikacija (%s)", 41 | "No compatible version for %s" : "Nėra suderinamos versijos %s", 42 | "App %s installed successfully" : "Aplikacija %sįdiegta", 43 | "The api key is not valid." : "api raktas negalioja", 44 | "Can not change api key because it is configured in config.php" : "Nepavyko pakeisti api rakto nes jis įvestas config.php", 45 | "App %s uninstalled successfully" : "Aplikacija %sišdiegta sėkmingai", 46 | "App %s updated successfully" : "Aplikacija %ssėkmingai atnaujinta", 47 | "License key available." : "Licenzijos raktas galimas", 48 | "No license key configured." : "Nėra sukonfigūruoto licenzijos rakto.", 49 | "Demo license key successfully fetched from the marketplace." : "Demo licenzijos raktas gautas iš turgaus.", 50 | "A license key is already configured." : "Licenzijos raktas sukonfigūruotas.", 51 | "Could not request the license key." : "Nepavyko užklausti licenzijos rakto.", 52 | "Update for %1$s to version %2$s is available." : "Išleisti %1$s versijos atnaujinimai į %2$s versiją.", 53 | "The Internet connection is disabled." : "Interneto prieiga išjungta.", 54 | "Invalid marketplace API key provided" : "Negaliojantis turgaus API raktas", 55 | "Marketplace API key missing" : "Turgaus API raktas nerastas", 56 | "Active subscription on marketplace required" : "Veikiantis užsakymas turguje reikalingas" 57 | }, 58 | "nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);"); 59 | -------------------------------------------------------------------------------- /l10n/lt_LT.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "No Bundles" : "Nėra sąsajų", 3 | "Developer" : "Kūrėjas", 4 | "Version" : "Versija", 5 | "License" : "Licencija", 6 | "loading" : "įkeliama", 7 | "view in marketplace" : "žiūrėti turguje", 8 | "install" : "įdiegti", 9 | "uninstall" : "išdiegti", 10 | "update" : "atnaujinti", 11 | "Are you sure you want to remove %{appName} from your system?" : "Ar tikrai norite ištrinti %{appName}?", 12 | "Update available" : "Galimas atnaujinimas", 13 | "Installed" : "Įdiegta", 14 | "Market" : "Parduotuvė", 15 | "Show all" : "Rodyti visus", 16 | "App Bundles" : "App komplektai", 17 | "Categories" : "Kategorijos", 18 | "Updates" : "Atnaujinimai", 19 | "Settings" : "Parinktys", 20 | "Clear cache" : "Išvalyti talpyklą", 21 | "App" : "App", 22 | "Info" : "Informacija", 23 | "installed" : "įdiegta", 24 | "install bundle" : "įdiegti komplektą", 25 | "No apps in %{category}" : "Nėra applikacijų %{category}", 26 | "Update Info" : "Atnaujinti Informaciją", 27 | "updating" : "atnaujina", 28 | "All apps are up to date" : "Viskas naujausia", 29 | "Market notifications" : "Turgaus pranešimai", 30 | "Please enter a license-key in to config.php" : "Įveskite licenzijos raktą į config.php", 31 | "Please install and enable the enterprise_key app and enter a license-key in config.php first." : "Įdiekite ir įjunkite enterprise_key ir licenzijos raktą config.php konfigūracijoje.", 32 | "Your license-key is not valid." : "licenzijos raktas negalioja.", 33 | "App %s is already installed" : "App %sjau įdiegta", 34 | "Shipped apps cannot be uninstalled" : "Pristatytos applikacijos negali būti įdiegtos", 35 | "App (%s) could not be uninstalled. Please check the server logs." : "Aplikacija (%s) negali būti įdiegta. Peržiūrėkite žurnalus.", 36 | "App (%s) is not installed" : "Applikacija (%s) neįdiegta", 37 | "App (%s) is not known at the marketplace." : "Aplikacija (%s) nežinoma turgelyje.", 38 | "Unknown app (%s)" : "Nežinoma applikacija (%s)", 39 | "No compatible version for %s" : "Nėra suderinamos versijos %s", 40 | "App %s installed successfully" : "Aplikacija %sįdiegta", 41 | "The api key is not valid." : "api raktas negalioja", 42 | "Can not change api key because it is configured in config.php" : "Nepavyko pakeisti api rakto nes jis įvestas config.php", 43 | "App %s uninstalled successfully" : "Aplikacija %sišdiegta sėkmingai", 44 | "App %s updated successfully" : "Aplikacija %ssėkmingai atnaujinta", 45 | "License key available." : "Licenzijos raktas galimas", 46 | "No license key configured." : "Nėra sukonfigūruoto licenzijos rakto.", 47 | "Demo license key successfully fetched from the marketplace." : "Demo licenzijos raktas gautas iš turgaus.", 48 | "A license key is already configured." : "Licenzijos raktas sukonfigūruotas.", 49 | "Could not request the license key." : "Nepavyko užklausti licenzijos rakto.", 50 | "Update for %1$s to version %2$s is available." : "Išleisti %1$s versijos atnaujinimai į %2$s versiją.", 51 | "The Internet connection is disabled." : "Interneto prieiga išjungta.", 52 | "Invalid marketplace API key provided" : "Negaliojantis turgaus API raktas", 53 | "Marketplace API key missing" : "Turgaus API raktas nerastas", 54 | "Active subscription on marketplace required" : "Veikiantis užsakymas turguje reikalingas" 55 | },"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);" 56 | } -------------------------------------------------------------------------------- /l10n/lv.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "Developer" : "Izstrādātājs", 5 | "Version" : "Versija", 6 | "Release date" : "Izdošanas datums", 7 | "License" : "Licence", 8 | "Version %{version} available" : "Ir pieejama %{version} versija", 9 | "published on " : "publicēts", 10 | "Get more info" : "Vairāk informācijas", 11 | "loading" : "Ielāde", 12 | "view in marketplace" : "Skatīt veikalā", 13 | "install" : "Instalēt", 14 | "uninstall" : "Atinstalēt", 15 | "update" : "atjaunināt", 16 | "Are you sure you want to remove %{appName} from your system?" : "Vai tiešām vēlaties noņemt lietotni %{appName}? no jūsu sistēmas?", 17 | "Update available" : "Pieejams atjauninājums", 18 | "Installed" : "Instalētie", 19 | "Market" : "Veikals", 20 | "Show all" : "Rādīt visu", 21 | "App Bundles" : "Lietotņu paketes", 22 | "Categories" : "Kategorijas", 23 | "Updates" : "Atjauninājumi", 24 | "Settings" : "Iestatījumi", 25 | "Clear cache" : "Iztīrīt kešatmiņu", 26 | "App" : "Lietotne", 27 | "Info" : "Informācija", 28 | "installed" : "instalēta", 29 | "No apps in %{category}" : "%{category} nav lietotņu", 30 | "updating" : "atjaunina", 31 | "App %s is already installed" : "%s lietotne jau ir instalēta", 32 | "Unknown app (%s)" : "Nezināma lietotne (%s)", 33 | "Cache cleared." : "Kešatmiņa ir notīrīta.", 34 | "Update for %1$s to version %2$s is available." : "Atjauninājums no %1$s uz %2$s ir pieejams", 35 | "The Internet connection is disabled." : "Nav Interneta savienojuma." 36 | }, 37 | "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"); 38 | -------------------------------------------------------------------------------- /l10n/lv.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Developer" : "Izstrādātājs", 3 | "Version" : "Versija", 4 | "Release date" : "Izdošanas datums", 5 | "License" : "Licence", 6 | "Version %{version} available" : "Ir pieejama %{version} versija", 7 | "published on " : "publicēts", 8 | "Get more info" : "Vairāk informācijas", 9 | "loading" : "Ielāde", 10 | "view in marketplace" : "Skatīt veikalā", 11 | "install" : "Instalēt", 12 | "uninstall" : "Atinstalēt", 13 | "update" : "atjaunināt", 14 | "Are you sure you want to remove %{appName} from your system?" : "Vai tiešām vēlaties noņemt lietotni %{appName}? no jūsu sistēmas?", 15 | "Update available" : "Pieejams atjauninājums", 16 | "Installed" : "Instalētie", 17 | "Market" : "Veikals", 18 | "Show all" : "Rādīt visu", 19 | "App Bundles" : "Lietotņu paketes", 20 | "Categories" : "Kategorijas", 21 | "Updates" : "Atjauninājumi", 22 | "Settings" : "Iestatījumi", 23 | "Clear cache" : "Iztīrīt kešatmiņu", 24 | "App" : "Lietotne", 25 | "Info" : "Informācija", 26 | "installed" : "instalēta", 27 | "No apps in %{category}" : "%{category} nav lietotņu", 28 | "updating" : "atjaunina", 29 | "App %s is already installed" : "%s lietotne jau ir instalēta", 30 | "Unknown app (%s)" : "Nezināma lietotne (%s)", 31 | "Cache cleared." : "Kešatmiņa ir notīrīta.", 32 | "Update for %1$s to version %2$s is available." : "Atjauninājums no %1$s uz %2$s ir pieejams", 33 | "The Internet connection is disabled." : "Nav Interneta savienojuma." 34 | },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);" 35 | } -------------------------------------------------------------------------------- /l10n/mk.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "Developer" : "Развивач", 5 | "Version" : "Верзија", 6 | "Release date" : "Датум на издавање", 7 | "License" : "Лиценца", 8 | "Version %{version} available" : "Верзија %{version} достапна", 9 | "published on " : "Release date", 10 | "Get more info" : "Повеќе информации", 11 | "loading" : "вчитување", 12 | "install" : "инсталирај", 13 | "uninstall" : "деинсталирај", 14 | "update" : "ажурирај", 15 | "Are you sure you want to remove %{appName} from your system?" : "Дали сте сигурни дека сакате да ја отстраните %{appName} од системот?", 16 | "Update available" : "Достапно ажурирање", 17 | "Installed" : "Инсталирана", 18 | "Show all" : "Покажи се", 19 | "Categories" : "Категории", 20 | "Updates" : "Ажурирања", 21 | "Settings" : "Подесувања", 22 | "Clear cache" : "Избриши го кешот", 23 | "Info" : "Инфо", 24 | "installed" : "инсталиран", 25 | "No apps in %{category}" : "Нема апликации во %{category}", 26 | "updating" : "ажурирање", 27 | "All apps are up to date" : "Сите апликации се ажурирани", 28 | "Please enter a license-key in to config.php" : "Ве молиме внесете го клучот за лиценца во config.php", 29 | "App %s is already installed" : "Апликацијата %s е веќе инсталирана", 30 | "App (%s) is not installed" : "Апликацијата (%s) не е инсталирана", 31 | "Unknown app (%s)" : "Непозната апликација (%s)", 32 | "App %s installed successfully" : "Апикацијата %s е успешно инсталирана", 33 | "App %s uninstalled successfully" : "Апликацијата %s е успешно деинсталирана", 34 | "App %s updated successfully" : "Апликацијата %s е успешно ажурирана", 35 | "Update for %1$s to version %2$s is available." : "Ажурирање за %1$s во верзија%2$s е достапно." 36 | }, 37 | "nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"); 38 | -------------------------------------------------------------------------------- /l10n/mk.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Developer" : "Развивач", 3 | "Version" : "Верзија", 4 | "Release date" : "Датум на издавање", 5 | "License" : "Лиценца", 6 | "Version %{version} available" : "Верзија %{version} достапна", 7 | "published on " : "Release date", 8 | "Get more info" : "Повеќе информации", 9 | "loading" : "вчитување", 10 | "install" : "инсталирај", 11 | "uninstall" : "деинсталирај", 12 | "update" : "ажурирај", 13 | "Are you sure you want to remove %{appName} from your system?" : "Дали сте сигурни дека сакате да ја отстраните %{appName} од системот?", 14 | "Update available" : "Достапно ажурирање", 15 | "Installed" : "Инсталирана", 16 | "Show all" : "Покажи се", 17 | "Categories" : "Категории", 18 | "Updates" : "Ажурирања", 19 | "Settings" : "Подесувања", 20 | "Clear cache" : "Избриши го кешот", 21 | "Info" : "Инфо", 22 | "installed" : "инсталиран", 23 | "No apps in %{category}" : "Нема апликации во %{category}", 24 | "updating" : "ажурирање", 25 | "All apps are up to date" : "Сите апликации се ажурирани", 26 | "Please enter a license-key in to config.php" : "Ве молиме внесете го клучот за лиценца во config.php", 27 | "App %s is already installed" : "Апликацијата %s е веќе инсталирана", 28 | "App (%s) is not installed" : "Апликацијата (%s) не е инсталирана", 29 | "Unknown app (%s)" : "Непозната апликација (%s)", 30 | "App %s installed successfully" : "Апикацијата %s е успешно инсталирана", 31 | "App %s uninstalled successfully" : "Апликацијата %s е успешно деинсталирана", 32 | "App %s updated successfully" : "Апликацијата %s е успешно ажурирана", 33 | "Update for %1$s to version %2$s is available." : "Ажурирање за %1$s во верзија%2$s е достапно." 34 | },"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;" 35 | } -------------------------------------------------------------------------------- /l10n/nb_NO.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "No Bundles" : "Ingen pakker", 5 | "Developer" : "Utvikler", 6 | "Version" : "Versjon", 7 | "License" : "Lisens", 8 | "loading" : "laster", 9 | "view in marketplace" : "se på markedsplass", 10 | "install" : "installer", 11 | "uninstall" : "avinstaller", 12 | "update" : "oppdatere", 13 | "Are you sure you want to remove %{appName} from your system?" : "Er du sikker på at du vil fjerne %{appName} fra systemet?", 14 | "Update available" : "Oppdatering tilgjengelig", 15 | "Installed" : "installert", 16 | "Market" : "Marked", 17 | "Show all" : "Vis alle", 18 | "App Bundles" : "App-pakker", 19 | "Categories" : "Kategorier", 20 | "Updates" : "Oppdateringer", 21 | "Settings" : "Innstillinger", 22 | "Clear cache" : "Slett hurtiglager", 23 | "App" : "program", 24 | "Info" : "Info", 25 | "installed" : "Installert", 26 | "install bundle" : "installer pakke", 27 | "No apps in %{category}" : "Ingen program i %(category)", 28 | "Update Info" : "Oppdateringsinformasjon", 29 | "updating" : "Oppdaterer", 30 | "All apps are up to date" : "Alle program er oppdatert", 31 | "Market notifications" : "Varsel fra markedsplass", 32 | "Please enter a license-key in to config.php" : "Oppgi lisens nøkkel i config.php", 33 | "Please install and enable the enterprise_key app and enter a license-key in config.php first." : "Vennligst installer og aktiver enterprise_key program og oppgi lisens nøkkel i config.php først.", 34 | "Your license-key is not valid." : "Lisensnøkkel er ikke gyldig.", 35 | "App %s is already installed" : "Program %ser allerede installert", 36 | "Shipped apps cannot be uninstalled" : "Sendte program kan ikke avinstalleres", 37 | "App (%s) could not be uninstalled. Please check the server logs." : "Program (%s) kan ikke avinstalleres. Se server logg for mer info.", 38 | "App (%s) is not installed" : "Program (%s) er ikke installert", 39 | "App (%s) is not known at the marketplace." : "Program(%s) er ukjent for markedsplass.", 40 | "Unknown app (%s)" : "Ukjent program (%s)", 41 | "No compatible version for %s" : "Ingen kompatibel versjon for %s", 42 | "App %s installed successfully" : "Program %sinstallert korrekt", 43 | "The api key is not valid." : "Api-nøkkelen er ikke gyldig", 44 | "Can not change api key because it is configured in config.php" : "Kan ikke endre api nøkkel da denne er konfigurert i config.php", 45 | "App %s uninstalled successfully" : "Program %ser avinstallert", 46 | "App %s updated successfully" : "Program %ser oppdatert", 47 | "License key available." : "Lisens nøkkel tilgjengelig.", 48 | "No license key configured." : "Ingen lisensnøkkel er konfigurert.", 49 | "Demo license key successfully fetched from the marketplace." : "Demo lisens nøkkel er hentet fra markedsplassen.", 50 | "A license key is already configured." : "En lisens nøkkel er allerede konfigurert.", 51 | "Could not request the license key." : "Kunne ikke forespørre om lisens nøkkel.", 52 | "Update for %1$s to version %2$s is available." : "Oppdatering for %1$s til versjon %2$s er tilgjengelig.", 53 | "The Internet connection is disabled." : "Kobling til internett er deaktivert.", 54 | "Invalid marketplace API key provided" : "Ugyldig API nøkkel for markedsplass er oppgitt", 55 | "Marketplace API key missing" : "API nøkkel for markedsplass mangler", 56 | "Active subscription on marketplace required" : "Aktivt abonnement for markedsplass er nødvendig" 57 | }, 58 | "nplurals=2; plural=(n != 1);"); 59 | -------------------------------------------------------------------------------- /l10n/nb_NO.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "No Bundles" : "Ingen pakker", 3 | "Developer" : "Utvikler", 4 | "Version" : "Versjon", 5 | "License" : "Lisens", 6 | "loading" : "laster", 7 | "view in marketplace" : "se på markedsplass", 8 | "install" : "installer", 9 | "uninstall" : "avinstaller", 10 | "update" : "oppdatere", 11 | "Are you sure you want to remove %{appName} from your system?" : "Er du sikker på at du vil fjerne %{appName} fra systemet?", 12 | "Update available" : "Oppdatering tilgjengelig", 13 | "Installed" : "installert", 14 | "Market" : "Marked", 15 | "Show all" : "Vis alle", 16 | "App Bundles" : "App-pakker", 17 | "Categories" : "Kategorier", 18 | "Updates" : "Oppdateringer", 19 | "Settings" : "Innstillinger", 20 | "Clear cache" : "Slett hurtiglager", 21 | "App" : "program", 22 | "Info" : "Info", 23 | "installed" : "Installert", 24 | "install bundle" : "installer pakke", 25 | "No apps in %{category}" : "Ingen program i %(category)", 26 | "Update Info" : "Oppdateringsinformasjon", 27 | "updating" : "Oppdaterer", 28 | "All apps are up to date" : "Alle program er oppdatert", 29 | "Market notifications" : "Varsel fra markedsplass", 30 | "Please enter a license-key in to config.php" : "Oppgi lisens nøkkel i config.php", 31 | "Please install and enable the enterprise_key app and enter a license-key in config.php first." : "Vennligst installer og aktiver enterprise_key program og oppgi lisens nøkkel i config.php først.", 32 | "Your license-key is not valid." : "Lisensnøkkel er ikke gyldig.", 33 | "App %s is already installed" : "Program %ser allerede installert", 34 | "Shipped apps cannot be uninstalled" : "Sendte program kan ikke avinstalleres", 35 | "App (%s) could not be uninstalled. Please check the server logs." : "Program (%s) kan ikke avinstalleres. Se server logg for mer info.", 36 | "App (%s) is not installed" : "Program (%s) er ikke installert", 37 | "App (%s) is not known at the marketplace." : "Program(%s) er ukjent for markedsplass.", 38 | "Unknown app (%s)" : "Ukjent program (%s)", 39 | "No compatible version for %s" : "Ingen kompatibel versjon for %s", 40 | "App %s installed successfully" : "Program %sinstallert korrekt", 41 | "The api key is not valid." : "Api-nøkkelen er ikke gyldig", 42 | "Can not change api key because it is configured in config.php" : "Kan ikke endre api nøkkel da denne er konfigurert i config.php", 43 | "App %s uninstalled successfully" : "Program %ser avinstallert", 44 | "App %s updated successfully" : "Program %ser oppdatert", 45 | "License key available." : "Lisens nøkkel tilgjengelig.", 46 | "No license key configured." : "Ingen lisensnøkkel er konfigurert.", 47 | "Demo license key successfully fetched from the marketplace." : "Demo lisens nøkkel er hentet fra markedsplassen.", 48 | "A license key is already configured." : "En lisens nøkkel er allerede konfigurert.", 49 | "Could not request the license key." : "Kunne ikke forespørre om lisens nøkkel.", 50 | "Update for %1$s to version %2$s is available." : "Oppdatering for %1$s til versjon %2$s er tilgjengelig.", 51 | "The Internet connection is disabled." : "Kobling til internett er deaktivert.", 52 | "Invalid marketplace API key provided" : "Ugyldig API nøkkel for markedsplass er oppgitt", 53 | "Marketplace API key missing" : "API nøkkel for markedsplass mangler", 54 | "Active subscription on marketplace required" : "Aktivt abonnement for markedsplass er nødvendig" 55 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 56 | } -------------------------------------------------------------------------------- /l10n/oc.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "Installed" : "Installat", 5 | "Version" : "Version", 6 | "License" : "Licéncia", 7 | "update" : "met a jorn", 8 | "Market" : "Market", 9 | "Categories" : "Categorias", 10 | "Updates" : "Mesas a jorn", 11 | "Settings" : "Paramètres", 12 | "Clear cache" : "Voidar l'escondedor", 13 | "Update for %1$s to version %2$s is available." : "Una mesa a jorn de %1$s cap a la version %2$s es disponibla." 14 | }, 15 | "nplurals=2; plural=(n > 1);"); 16 | -------------------------------------------------------------------------------- /l10n/oc.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Installed" : "Installat", 3 | "Version" : "Version", 4 | "License" : "Licéncia", 5 | "update" : "met a jorn", 6 | "Market" : "Market", 7 | "Categories" : "Categorias", 8 | "Updates" : "Mesas a jorn", 9 | "Settings" : "Paramètres", 10 | "Clear cache" : "Voidar l'escondedor", 11 | "Update for %1$s to version %2$s is available." : "Una mesa a jorn de %1$s cap a la version %2$s es disponibla." 12 | },"pluralForm" :"nplurals=2; plural=(n > 1);" 13 | } -------------------------------------------------------------------------------- /l10n/pl.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "Installing and updating Apps is not supported!" : "Instalowanie i aktualizowanie aplikacji nie jest wspierane!", 5 | "Edit API Key" : "Edycja klucza API", 6 | "Add API Key" : "Dodawanie klucza API", 7 | "No Bundles" : "Brak pakietów", 8 | "Developer" : "Programista", 9 | "Version" : "Wersja", 10 | "Release date" : "Data wydania", 11 | "License" : "Licencja", 12 | "Version %{version} available" : "Wersja %{version} dostępna", 13 | "published on " : "opublikowane", 14 | "Get more info" : "Uzyskaj więcej informacji", 15 | "loading" : "Ładuję", 16 | "view in marketplace" : "zobacz w sklepie", 17 | "install" : "Zainstaluj", 18 | "uninstall" : "Odinstaluj", 19 | "update" : "uaktualnij", 20 | "Are you sure you want to remove %{appName} from your system?" : "Czy na pewno chcesz usunąć %{appName} z systemu?", 21 | "Update available" : "Aktualizacja jest dostępna", 22 | "Installed" : "Zainstalowane", 23 | "Market" : "Sklep", 24 | "Show all" : "Pokaż wszystko", 25 | "Categories" : "Kategorie", 26 | "Updates" : "Aktualizacje", 27 | "Settings" : "Ustawienia", 28 | "Clear cache" : "Czyść pamięć podręczną", 29 | "App" : "Aplikacja", 30 | "Info" : "Info", 31 | "installed" : "zainstalowano", 32 | "No apps in %{category}" : "Brak aplikacji w kategorii %{category}", 33 | "Update Info" : "Informacja o aktualizacji", 34 | "updating" : "aktualizowane", 35 | "All apps are up to date" : "Wszystkie aplikacje są aktualne", 36 | "Market notifications" : "Powiadomienia Marketu", 37 | "Please enter a license-key in to config.php" : "Umieść klucz licencyjny w pliku config.php", 38 | "Your license-key is not valid." : "Klucz licencyjny jest nieprawidłowy.", 39 | "App %s is already installed" : "Aplikacja %s jest już zainstalowana", 40 | "App (%s) is not installed" : "Aplikacja (%s) nie jest zainstalowana", 41 | "No compatible version for %s" : "Brak kompatybilnej wersji dla %s", 42 | "App %s installed successfully" : "Aplikacja %s została pomyślnie zainstalowana", 43 | "The api key is not valid." : "Klucz api jest nieprawidłowy.", 44 | "App %s uninstalled successfully" : "Aplikacja %s została pomyślnie odinstalowana", 45 | "App %s updated successfully" : "Aplikacja %s została pomyślnie zaktualizowana", 46 | "License key available." : "Klucz licencji dostępny.", 47 | "No license key configured." : "Klucz licencji nie został skonfigurowany.", 48 | "A license key is already configured." : "Klucz licencji jest już skonfigurowany.", 49 | "Update for %1$s to version %2$s is available." : "Jest dostępna aktualizacja dla %1$s do wersji %2$s", 50 | "The Internet connection is disabled." : "Połączenie internetowe jest wyłączone." 51 | }, 52 | "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);"); 53 | -------------------------------------------------------------------------------- /l10n/pl.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Installing and updating Apps is not supported!" : "Instalowanie i aktualizowanie aplikacji nie jest wspierane!", 3 | "Edit API Key" : "Edycja klucza API", 4 | "Add API Key" : "Dodawanie klucza API", 5 | "No Bundles" : "Brak pakietów", 6 | "Developer" : "Programista", 7 | "Version" : "Wersja", 8 | "Release date" : "Data wydania", 9 | "License" : "Licencja", 10 | "Version %{version} available" : "Wersja %{version} dostępna", 11 | "published on " : "opublikowane", 12 | "Get more info" : "Uzyskaj więcej informacji", 13 | "loading" : "Ładuję", 14 | "view in marketplace" : "zobacz w sklepie", 15 | "install" : "Zainstaluj", 16 | "uninstall" : "Odinstaluj", 17 | "update" : "uaktualnij", 18 | "Are you sure you want to remove %{appName} from your system?" : "Czy na pewno chcesz usunąć %{appName} z systemu?", 19 | "Update available" : "Aktualizacja jest dostępna", 20 | "Installed" : "Zainstalowane", 21 | "Market" : "Sklep", 22 | "Show all" : "Pokaż wszystko", 23 | "Categories" : "Kategorie", 24 | "Updates" : "Aktualizacje", 25 | "Settings" : "Ustawienia", 26 | "Clear cache" : "Czyść pamięć podręczną", 27 | "App" : "Aplikacja", 28 | "Info" : "Info", 29 | "installed" : "zainstalowano", 30 | "No apps in %{category}" : "Brak aplikacji w kategorii %{category}", 31 | "Update Info" : "Informacja o aktualizacji", 32 | "updating" : "aktualizowane", 33 | "All apps are up to date" : "Wszystkie aplikacje są aktualne", 34 | "Market notifications" : "Powiadomienia Marketu", 35 | "Please enter a license-key in to config.php" : "Umieść klucz licencyjny w pliku config.php", 36 | "Your license-key is not valid." : "Klucz licencyjny jest nieprawidłowy.", 37 | "App %s is already installed" : "Aplikacja %s jest już zainstalowana", 38 | "App (%s) is not installed" : "Aplikacja (%s) nie jest zainstalowana", 39 | "No compatible version for %s" : "Brak kompatybilnej wersji dla %s", 40 | "App %s installed successfully" : "Aplikacja %s została pomyślnie zainstalowana", 41 | "The api key is not valid." : "Klucz api jest nieprawidłowy.", 42 | "App %s uninstalled successfully" : "Aplikacja %s została pomyślnie odinstalowana", 43 | "App %s updated successfully" : "Aplikacja %s została pomyślnie zaktualizowana", 44 | "License key available." : "Klucz licencji dostępny.", 45 | "No license key configured." : "Klucz licencji nie został skonfigurowany.", 46 | "A license key is already configured." : "Klucz licencji jest już skonfigurowany.", 47 | "Update for %1$s to version %2$s is available." : "Jest dostępna aktualizacja dla %1$s do wersji %2$s", 48 | "The Internet connection is disabled." : "Połączenie internetowe jest wyłączone." 49 | },"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);" 50 | } -------------------------------------------------------------------------------- /l10n/pt_PT.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "No Bundles" : "Nenhum pacote", 5 | "Developer" : "Programador", 6 | "Version" : "Versão", 7 | "License" : "Licença", 8 | "loading" : "a carregar", 9 | "install" : "instalar", 10 | "uninstall" : "desinstalar", 11 | "update" : "atualizar", 12 | "Are you sure you want to remove %{appName} from your system?" : "Tem a certeza que deseja remover %{appName} do seu sistema?", 13 | "Update available" : "Update disponível", 14 | "Installed" : "Instalado", 15 | "Market" : "Mercado", 16 | "Show all" : "Mostrar todos", 17 | "Categories" : "Categorias", 18 | "Updates" : "Atualizações", 19 | "Settings" : "Configurações", 20 | "Clear cache" : "Limpar cache", 21 | "App" : "Aplicação", 22 | "Info" : "Informação", 23 | "installed" : "Instalada", 24 | "install bundle" : "instalar pacote", 25 | "No apps in %{category}" : "Nenhuma aplicação em %{category}", 26 | "Update Info" : "Atualizar Informação", 27 | "updating" : "a atualizar", 28 | "All apps are up to date" : "Todas as aplicações estão atualizadas", 29 | "Your license-key is not valid." : "A sua licença/código não é válido.", 30 | "App %s is already installed" : "A Aplicação %s já está instalada", 31 | "App (%s) could not be uninstalled. Please check the server logs." : "Não foi possível desinstalar a aplicação (%s) . Por favor, verifique os registos do servidor.", 32 | "App (%s) is not installed" : "Aplicação (%s) não está instalada", 33 | "Unknown app (%s)" : "Aplicação desconhecida (%s)", 34 | "No compatible version for %s" : "Nenhuma versão compatível para %s", 35 | "App %s installed successfully" : "Aplicação %s instalada com sucesso", 36 | "The api key is not valid." : "A chave api não é válida.", 37 | "App %s uninstalled successfully" : "Aplicação %s desinstalada com sucesso", 38 | "App %s updated successfully" : "Aplicação %s atualizada com sucesso", 39 | "Update for %1$s to version %2$s is available." : "Está disponível uma atualização para %1$s, para a versão %2$s.", 40 | "The Internet connection is disabled." : "A ligação à Internet está desativada." 41 | }, 42 | "nplurals=2; plural=(n != 1);"); 43 | -------------------------------------------------------------------------------- /l10n/pt_PT.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "No Bundles" : "Nenhum pacote", 3 | "Developer" : "Programador", 4 | "Version" : "Versão", 5 | "License" : "Licença", 6 | "loading" : "a carregar", 7 | "install" : "instalar", 8 | "uninstall" : "desinstalar", 9 | "update" : "atualizar", 10 | "Are you sure you want to remove %{appName} from your system?" : "Tem a certeza que deseja remover %{appName} do seu sistema?", 11 | "Update available" : "Update disponível", 12 | "Installed" : "Instalado", 13 | "Market" : "Mercado", 14 | "Show all" : "Mostrar todos", 15 | "Categories" : "Categorias", 16 | "Updates" : "Atualizações", 17 | "Settings" : "Configurações", 18 | "Clear cache" : "Limpar cache", 19 | "App" : "Aplicação", 20 | "Info" : "Informação", 21 | "installed" : "Instalada", 22 | "install bundle" : "instalar pacote", 23 | "No apps in %{category}" : "Nenhuma aplicação em %{category}", 24 | "Update Info" : "Atualizar Informação", 25 | "updating" : "a atualizar", 26 | "All apps are up to date" : "Todas as aplicações estão atualizadas", 27 | "Your license-key is not valid." : "A sua licença/código não é válido.", 28 | "App %s is already installed" : "A Aplicação %s já está instalada", 29 | "App (%s) could not be uninstalled. Please check the server logs." : "Não foi possível desinstalar a aplicação (%s) . Por favor, verifique os registos do servidor.", 30 | "App (%s) is not installed" : "Aplicação (%s) não está instalada", 31 | "Unknown app (%s)" : "Aplicação desconhecida (%s)", 32 | "No compatible version for %s" : "Nenhuma versão compatível para %s", 33 | "App %s installed successfully" : "Aplicação %s instalada com sucesso", 34 | "The api key is not valid." : "A chave api não é válida.", 35 | "App %s uninstalled successfully" : "Aplicação %s desinstalada com sucesso", 36 | "App %s updated successfully" : "Aplicação %s atualizada com sucesso", 37 | "Update for %1$s to version %2$s is available." : "Está disponível uma atualização para %1$s, para a versão %2$s.", 38 | "The Internet connection is disabled." : "A ligação à Internet está desativada." 39 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 40 | } -------------------------------------------------------------------------------- /l10n/si.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "Edit API Key" : "යෙ.ක්‍ර.මු. යතුර සංස්කරණය", 5 | "Developer" : "සංවර්ධක", 6 | "Version" : "අනුවාදය", 7 | "Release date" : "නිකුතු දිනය", 8 | "License" : "බලපත්‍රය", 9 | "Get more info" : "තව තොරතුරු ගන්න", 10 | "loading" : "පූරණය වෙමින්", 11 | "install" : "ස්ථාපනය", 12 | "uninstall" : "අස්ථාපනය", 13 | "update" : "යාවත්කාල", 14 | "Installed" : "ස්ථාපිතයි", 15 | "Show all" : "සියල්ල පෙන්වන්න", 16 | "Categories" : "ප්‍රවර්ග", 17 | "Updates" : "යාවත්කාල", 18 | "Settings" : "සැකසුම්", 19 | "App" : "යෙදුම", 20 | "Info" : "තොරතුරු", 21 | "installed" : "ස්ථාපිතයි", 22 | "No apps in %{category}" : "%{category} හි යෙදුම් නැත", 23 | "Update Info" : "යාවත්කාල තොරතුරු", 24 | "updating" : "යාවත්කාල වෙමින්", 25 | "App %s is already installed" : "%s යෙදුම දැනටමත් ස්ථාපිතයි", 26 | "Unknown app (%s)" : "යෙදුම (%s) නොදනී", 27 | "App %s installed successfully" : "%s යෙදුම සාර්ථකව ස්ථාපිත විය", 28 | "App %s uninstalled successfully" : "%s යෙදුම සාර්ථකව අස්ථාපනය විය", 29 | "App %s updated successfully" : "%s යෙදුම සාර්ථකව ස්ථාපිත විය", 30 | "The Internet connection is disabled." : "අන්තර්ජාල සම්බන්ධතාවය අබල කර ඇත." 31 | }, 32 | "nplurals=2; plural=(n != 1);"); 33 | -------------------------------------------------------------------------------- /l10n/si.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Edit API Key" : "යෙ.ක්‍ර.මු. යතුර සංස්කරණය", 3 | "Developer" : "සංවර්ධක", 4 | "Version" : "අනුවාදය", 5 | "Release date" : "නිකුතු දිනය", 6 | "License" : "බලපත්‍රය", 7 | "Get more info" : "තව තොරතුරු ගන්න", 8 | "loading" : "පූරණය වෙමින්", 9 | "install" : "ස්ථාපනය", 10 | "uninstall" : "අස්ථාපනය", 11 | "update" : "යාවත්කාල", 12 | "Installed" : "ස්ථාපිතයි", 13 | "Show all" : "සියල්ල පෙන්වන්න", 14 | "Categories" : "ප්‍රවර්ග", 15 | "Updates" : "යාවත්කාල", 16 | "Settings" : "සැකසුම්", 17 | "App" : "යෙදුම", 18 | "Info" : "තොරතුරු", 19 | "installed" : "ස්ථාපිතයි", 20 | "No apps in %{category}" : "%{category} හි යෙදුම් නැත", 21 | "Update Info" : "යාවත්කාල තොරතුරු", 22 | "updating" : "යාවත්කාල වෙමින්", 23 | "App %s is already installed" : "%s යෙදුම දැනටමත් ස්ථාපිතයි", 24 | "Unknown app (%s)" : "යෙදුම (%s) නොදනී", 25 | "App %s installed successfully" : "%s යෙදුම සාර්ථකව ස්ථාපිත විය", 26 | "App %s uninstalled successfully" : "%s යෙදුම සාර්ථකව අස්ථාපනය විය", 27 | "App %s updated successfully" : "%s යෙදුම සාර්ථකව ස්ථාපිත විය", 28 | "The Internet connection is disabled." : "අන්තර්ජාල සම්බන්ධතාවය අබල කර ඇත." 29 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 30 | } -------------------------------------------------------------------------------- /l10n/sl.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "No Bundles" : "Ni programskih paketov", 5 | "Developer" : "Razvijalec", 6 | "Version" : "Različica", 7 | "License" : "Dovoljenje", 8 | "loading" : "poteka nalaganje", 9 | "install" : "namesti", 10 | "uninstall" : "odstrani namestitev", 11 | "update" : "posodobi", 12 | "Are you sure you want to remove %{appName} from your system?" : "Ali ste prepričani, da želite odstraniti %{appName} iz sistema?", 13 | "Update available" : "Na voljo so posodobitve", 14 | "Installed" : "Nameščeno", 15 | "Market" : "Market", 16 | "Show all" : "Pokaži vse", 17 | "App Bundles" : "Programski paketi", 18 | "Categories" : "Kategorije", 19 | "Updates" : "Posodobitve", 20 | "Settings" : "Nastavitve", 21 | "Clear cache" : "Počisti predpomnilnik", 22 | "App" : "Program", 23 | "Info" : "Podrobnosti", 24 | "installed" : "nameščeno", 25 | "install bundle" : "namesti programski paket", 26 | "No apps in %{category}" : "Ni programov v kategoriji %{category}", 27 | "Update Info" : "Podrobnosti posodobitve", 28 | "updating" : "poteka posodabljanje", 29 | "All apps are up to date" : "Vsi programi so posodobljeni", 30 | "App %s is already installed" : "Program %s je že nameščen", 31 | "Unknown app (%s)" : "Neznan program (%s)", 32 | "Update for %1$s to version %2$s is available." : "Na voljo je posodobitev za %1$s na različico %2$s." 33 | }, 34 | "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"); 35 | -------------------------------------------------------------------------------- /l10n/sl.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "No Bundles" : "Ni programskih paketov", 3 | "Developer" : "Razvijalec", 4 | "Version" : "Različica", 5 | "License" : "Dovoljenje", 6 | "loading" : "poteka nalaganje", 7 | "install" : "namesti", 8 | "uninstall" : "odstrani namestitev", 9 | "update" : "posodobi", 10 | "Are you sure you want to remove %{appName} from your system?" : "Ali ste prepričani, da želite odstraniti %{appName} iz sistema?", 11 | "Update available" : "Na voljo so posodobitve", 12 | "Installed" : "Nameščeno", 13 | "Market" : "Market", 14 | "Show all" : "Pokaži vse", 15 | "App Bundles" : "Programski paketi", 16 | "Categories" : "Kategorije", 17 | "Updates" : "Posodobitve", 18 | "Settings" : "Nastavitve", 19 | "Clear cache" : "Počisti predpomnilnik", 20 | "App" : "Program", 21 | "Info" : "Podrobnosti", 22 | "installed" : "nameščeno", 23 | "install bundle" : "namesti programski paket", 24 | "No apps in %{category}" : "Ni programov v kategoriji %{category}", 25 | "Update Info" : "Podrobnosti posodobitve", 26 | "updating" : "poteka posodabljanje", 27 | "All apps are up to date" : "Vsi programi so posodobljeni", 28 | "App %s is already installed" : "Program %s je že nameščen", 29 | "Unknown app (%s)" : "Neznan program (%s)", 30 | "Update for %1$s to version %2$s is available." : "Na voljo je posodobitev za %1$s na različico %2$s." 31 | },"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);" 32 | } -------------------------------------------------------------------------------- /l10n/sv.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "No Bundles" : "Inga paket", 5 | "Developer" : "Utvecklare", 6 | "Version" : "Version", 7 | "License" : "Licens", 8 | "loading" : "laddar", 9 | "view in marketplace" : "visa på marknaden", 10 | "install" : "installera", 11 | "uninstall" : "avinstallera", 12 | "update" : "uppdatera", 13 | "Update available" : "Uppdatering tillgänglig", 14 | "Installed" : "Installerad", 15 | "Market" : "Marknad", 16 | "Show all" : "Visa alla", 17 | "App Bundles" : "Appaket", 18 | "Categories" : "Kategorier", 19 | "Updates" : "Uppdateringar", 20 | "Settings" : "Inställningar", 21 | "Clear cache" : "Rensa cache", 22 | "App" : "App", 23 | "Info" : "Info", 24 | "installed" : "installerad", 25 | "install bundle" : "installera paket", 26 | "No apps in %{category}" : "Inga appar i %{category}", 27 | "Update Info" : "Uppdateringsinfo", 28 | "updating" : "uppdaterar", 29 | "All apps are up to date" : "Alla appar är uppdaterade", 30 | "Your license-key is not valid." : "Din licensnyckel är inte giltig.", 31 | "App %s is already installed" : "Appen %s är redan installerad", 32 | "App (%s) is not installed" : "Appen %s är inte installerad", 33 | "App (%s) is not known at the marketplace." : "Appen %s finns inte på marknaden.", 34 | "Unknown app (%s)" : "%s är en okänd app", 35 | "No compatible version for %s" : "Ingen kompatibel version för %s", 36 | "App %s installed successfully" : "App %s installerades", 37 | "The api key is not valid." : "API-nyckeln är inte giltig.", 38 | "App %s uninstalled successfully" : "Appen%s avinstallerades", 39 | "App %s updated successfully" : "Appen %s uppdaterades", 40 | "Update for %1$s to version %2$s is available." : "Uppdatering för %1$s till version %2$s finns tillgänglig.", 41 | "The Internet connection is disabled." : "Internetanslutningen är avaktiverad." 42 | }, 43 | "nplurals=2; plural=(n != 1);"); 44 | -------------------------------------------------------------------------------- /l10n/sv.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "No Bundles" : "Inga paket", 3 | "Developer" : "Utvecklare", 4 | "Version" : "Version", 5 | "License" : "Licens", 6 | "loading" : "laddar", 7 | "view in marketplace" : "visa på marknaden", 8 | "install" : "installera", 9 | "uninstall" : "avinstallera", 10 | "update" : "uppdatera", 11 | "Update available" : "Uppdatering tillgänglig", 12 | "Installed" : "Installerad", 13 | "Market" : "Marknad", 14 | "Show all" : "Visa alla", 15 | "App Bundles" : "Appaket", 16 | "Categories" : "Kategorier", 17 | "Updates" : "Uppdateringar", 18 | "Settings" : "Inställningar", 19 | "Clear cache" : "Rensa cache", 20 | "App" : "App", 21 | "Info" : "Info", 22 | "installed" : "installerad", 23 | "install bundle" : "installera paket", 24 | "No apps in %{category}" : "Inga appar i %{category}", 25 | "Update Info" : "Uppdateringsinfo", 26 | "updating" : "uppdaterar", 27 | "All apps are up to date" : "Alla appar är uppdaterade", 28 | "Your license-key is not valid." : "Din licensnyckel är inte giltig.", 29 | "App %s is already installed" : "Appen %s är redan installerad", 30 | "App (%s) is not installed" : "Appen %s är inte installerad", 31 | "App (%s) is not known at the marketplace." : "Appen %s finns inte på marknaden.", 32 | "Unknown app (%s)" : "%s är en okänd app", 33 | "No compatible version for %s" : "Ingen kompatibel version för %s", 34 | "App %s installed successfully" : "App %s installerades", 35 | "The api key is not valid." : "API-nyckeln är inte giltig.", 36 | "App %s uninstalled successfully" : "Appen%s avinstallerades", 37 | "App %s updated successfully" : "Appen %s uppdaterades", 38 | "Update for %1$s to version %2$s is available." : "Uppdatering för %1$s till version %2$s finns tillgänglig.", 39 | "The Internet connection is disabled." : "Internetanslutningen är avaktiverad." 40 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 41 | } -------------------------------------------------------------------------------- /l10n/th_TH.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "Installing and updating Apps is not supported!" : "การติดตั้งและอัปเดตแอปฯไม่ได้รับการสนับสนุน!", 5 | "This is a clustered setup or the web server has no permissions to write to the apps folder." : "นี่คือการตั้งค่าแบบคลัสเตอร์หรือเว็บเซิร์ฟเวอร์ไม่มีสิทธิ์เขียนลงในโฟลเดอร์แอปพลิเคชัน", 6 | "Edit API Key" : "แก้ไขคีย์ API", 7 | "Add API Key" : "เพิ่มคีย์ API", 8 | "No Bundles" : "ไม่มีชุดข้อมูล", 9 | "Developer" : "ผู้พัฒนา", 10 | "Version" : "เวอร์ชัน", 11 | "Release date" : "วันที่เผยแพร่", 12 | "License" : "License", 13 | "Version %{version} available" : "มีเวอร์ชัน %{version} พร้อมใช้งานแล้ว", 14 | "published on " : "เผยแพร่เมื่อ", 15 | "Get more info" : "ดูข้อมูลเพิ่มเติม", 16 | "loading" : "กำลังโหลด", 17 | "view in marketplace" : "ดูในตลาด", 18 | "install" : "ติดตั้ง", 19 | "uninstall" : "ถอนการติดตั้ง", 20 | "update" : "อัปเดต", 21 | "Are you sure you want to remove %{appName} from your system?" : "คุณแน่ใจหรือว่าต้องการลบ %{appName} ออกจากระบบของคุณ?", 22 | "Update available" : "มีอัปเดตพร้อมใช้งาน", 23 | "Installed" : "ติดตั้งแล้ว", 24 | "Market" : "ตลาด", 25 | "Show all" : "แสดงทั้งหมด", 26 | "App Bundles" : "ชุดข้อมูลของแอป", 27 | "Categories" : "หมวดหมู่", 28 | "Updates" : "อัปเดต", 29 | "Settings" : "ตั้งค่า", 30 | "Clear cache" : "ล้างแคช", 31 | "App" : "แอปฯ", 32 | "Info" : "ข้อมูล", 33 | "installed" : "ติดตั้งแล้ว", 34 | "install bundle" : "ติดตั้งชุดข้อมูล", 35 | "enterprise_key installation failed!" : "ติดตั้ง enterprise_key ล้มเหลว!", 36 | "No apps in %{category}" : "ไม่มีแอปฯใน %{category}", 37 | "Update Info" : "ข้อมูลการอัปเดต", 38 | "updating" : "กำลังอัปเดต", 39 | "All apps are up to date" : "แอปทั้งหมดเป็นเวอร์ชันแล้ว", 40 | "Market notifications" : "การแจ้งเตือนของตลาด", 41 | "Please enter a license-key in to config.php" : "โปรดป้อน License key ใน config.php", 42 | "Please install and enable the enterprise_key app and enter a license-key in config.php first." : "โปรดติดตั้งและเปิดใช้งาน Enterprise key ของแอปฯ และป้อน License key ใน config.php ก่อน", 43 | "Your license-key is not valid." : "License key ของคุณไม่ถูกต้อง", 44 | "App %s is already installed" : "ติดตั้งแอปฯ %s เรียบร้อยแล้ว", 45 | "Shipped apps cannot be uninstalled" : "ไม่สามารถถอนการติดตั้งแอปฯที่เลือก", 46 | "App (%s) could not be uninstalled. Please check the server logs." : "ไม่สามารถถอนการติดตั้งแอปฯ (%s) ได้ โปรดตรวจสอบไฟล์ log ของเซิร์ฟเวอร์", 47 | "App (%s) is not installed" : "ยังไม่ได้ติดตั้งแอปฯ (%s)", 48 | "App (%s) is not known at the marketplace." : "แอปฯ (%s) ไม่เป็นที่รู้จักในตลาด", 49 | "Unknown app (%s)" : "แอปฯที่ไม่รู้จัก (%s)", 50 | "No compatible version for %s" : "ไม่มีเวอร์ชันที่รองรับสำหรับ %s", 51 | "App %s installed successfully" : "ติตั้งแอป %s เรียบร้อยแล้ว", 52 | "The api key is not valid." : "คีย์ API ไม่ถูกต้อง", 53 | "Can not change api key because it is configured in config.php" : "ไม่สามารถเปลี่ยนคีย์ api ได้เนื่องจากมีการกำหนดค่าใน config.php", 54 | "App %s uninstalled successfully" : "ถอนการติดตั้งแอปฯ %s เรียบร้อยแล้ว", 55 | "App %s updated successfully" : "อัปเดตแอป %s เรียบร้อยแล้ว", 56 | "License key available." : "มี License key แล้ว", 57 | "No license key configured." : "ไม่พบ License key", 58 | "Demo license key successfully fetched from the marketplace." : "สร้าง License key สำหรับทดลองใช้เรียบร้อยแล้ว", 59 | "A license key is already configured." : "มีการกำหนดค่า License key แล้ว", 60 | "Could not request the license key." : "ไม่สามารถร้องขอ License key", 61 | "Cache cleared." : "ล้างแคช", 62 | "Update for %1$s to version %2$s is available." : "มีอัปเดตสำหรับ %1$s ไปยังเวอร์ชัน %2$s ที่พร้อมใช้งานแล้ว", 63 | "The Internet connection is disabled." : "การเชื่อมต่ออินเทอร์เน็ตถูกปิดใช้งาน", 64 | "Invalid marketplace API key provided" : "ระบุคีย์ API ของตลาดไม่ถูกต้อง", 65 | "Marketplace API key missing" : "ไม่พบคีย์ API ของตลาด", 66 | "Active subscription on marketplace required" : "จำเป็นต้องสมัครสมาชิกเพื่อใช้งานตลาด" 67 | }, 68 | "nplurals=1; plural=0;"); 69 | -------------------------------------------------------------------------------- /l10n/th_TH.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Installing and updating Apps is not supported!" : "การติดตั้งและอัปเดตแอปฯไม่ได้รับการสนับสนุน!", 3 | "This is a clustered setup or the web server has no permissions to write to the apps folder." : "นี่คือการตั้งค่าแบบคลัสเตอร์หรือเว็บเซิร์ฟเวอร์ไม่มีสิทธิ์เขียนลงในโฟลเดอร์แอปพลิเคชัน", 4 | "Edit API Key" : "แก้ไขคีย์ API", 5 | "Add API Key" : "เพิ่มคีย์ API", 6 | "No Bundles" : "ไม่มีชุดข้อมูล", 7 | "Developer" : "ผู้พัฒนา", 8 | "Version" : "เวอร์ชัน", 9 | "Release date" : "วันที่เผยแพร่", 10 | "License" : "License", 11 | "Version %{version} available" : "มีเวอร์ชัน %{version} พร้อมใช้งานแล้ว", 12 | "published on " : "เผยแพร่เมื่อ", 13 | "Get more info" : "ดูข้อมูลเพิ่มเติม", 14 | "loading" : "กำลังโหลด", 15 | "view in marketplace" : "ดูในตลาด", 16 | "install" : "ติดตั้ง", 17 | "uninstall" : "ถอนการติดตั้ง", 18 | "update" : "อัปเดต", 19 | "Are you sure you want to remove %{appName} from your system?" : "คุณแน่ใจหรือว่าต้องการลบ %{appName} ออกจากระบบของคุณ?", 20 | "Update available" : "มีอัปเดตพร้อมใช้งาน", 21 | "Installed" : "ติดตั้งแล้ว", 22 | "Market" : "ตลาด", 23 | "Show all" : "แสดงทั้งหมด", 24 | "App Bundles" : "ชุดข้อมูลของแอป", 25 | "Categories" : "หมวดหมู่", 26 | "Updates" : "อัปเดต", 27 | "Settings" : "ตั้งค่า", 28 | "Clear cache" : "ล้างแคช", 29 | "App" : "แอปฯ", 30 | "Info" : "ข้อมูล", 31 | "installed" : "ติดตั้งแล้ว", 32 | "install bundle" : "ติดตั้งชุดข้อมูล", 33 | "enterprise_key installation failed!" : "ติดตั้ง enterprise_key ล้มเหลว!", 34 | "No apps in %{category}" : "ไม่มีแอปฯใน %{category}", 35 | "Update Info" : "ข้อมูลการอัปเดต", 36 | "updating" : "กำลังอัปเดต", 37 | "All apps are up to date" : "แอปทั้งหมดเป็นเวอร์ชันแล้ว", 38 | "Market notifications" : "การแจ้งเตือนของตลาด", 39 | "Please enter a license-key in to config.php" : "โปรดป้อน License key ใน config.php", 40 | "Please install and enable the enterprise_key app and enter a license-key in config.php first." : "โปรดติดตั้งและเปิดใช้งาน Enterprise key ของแอปฯ และป้อน License key ใน config.php ก่อน", 41 | "Your license-key is not valid." : "License key ของคุณไม่ถูกต้อง", 42 | "App %s is already installed" : "ติดตั้งแอปฯ %s เรียบร้อยแล้ว", 43 | "Shipped apps cannot be uninstalled" : "ไม่สามารถถอนการติดตั้งแอปฯที่เลือก", 44 | "App (%s) could not be uninstalled. Please check the server logs." : "ไม่สามารถถอนการติดตั้งแอปฯ (%s) ได้ โปรดตรวจสอบไฟล์ log ของเซิร์ฟเวอร์", 45 | "App (%s) is not installed" : "ยังไม่ได้ติดตั้งแอปฯ (%s)", 46 | "App (%s) is not known at the marketplace." : "แอปฯ (%s) ไม่เป็นที่รู้จักในตลาด", 47 | "Unknown app (%s)" : "แอปฯที่ไม่รู้จัก (%s)", 48 | "No compatible version for %s" : "ไม่มีเวอร์ชันที่รองรับสำหรับ %s", 49 | "App %s installed successfully" : "ติตั้งแอป %s เรียบร้อยแล้ว", 50 | "The api key is not valid." : "คีย์ API ไม่ถูกต้อง", 51 | "Can not change api key because it is configured in config.php" : "ไม่สามารถเปลี่ยนคีย์ api ได้เนื่องจากมีการกำหนดค่าใน config.php", 52 | "App %s uninstalled successfully" : "ถอนการติดตั้งแอปฯ %s เรียบร้อยแล้ว", 53 | "App %s updated successfully" : "อัปเดตแอป %s เรียบร้อยแล้ว", 54 | "License key available." : "มี License key แล้ว", 55 | "No license key configured." : "ไม่พบ License key", 56 | "Demo license key successfully fetched from the marketplace." : "สร้าง License key สำหรับทดลองใช้เรียบร้อยแล้ว", 57 | "A license key is already configured." : "มีการกำหนดค่า License key แล้ว", 58 | "Could not request the license key." : "ไม่สามารถร้องขอ License key", 59 | "Cache cleared." : "ล้างแคช", 60 | "Update for %1$s to version %2$s is available." : "มีอัปเดตสำหรับ %1$s ไปยังเวอร์ชัน %2$s ที่พร้อมใช้งานแล้ว", 61 | "The Internet connection is disabled." : "การเชื่อมต่ออินเทอร์เน็ตถูกปิดใช้งาน", 62 | "Invalid marketplace API key provided" : "ระบุคีย์ API ของตลาดไม่ถูกต้อง", 63 | "Marketplace API key missing" : "ไม่พบคีย์ API ของตลาด", 64 | "Active subscription on marketplace required" : "จำเป็นต้องสมัครสมาชิกเพื่อใช้งานตลาด" 65 | },"pluralForm" :"nplurals=1; plural=0;" 66 | } -------------------------------------------------------------------------------- /l10n/uk.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "Version" : "Версія", 5 | "License" : "Ліцензія", 6 | "update" : "оновити", 7 | "Installed" : "Встановлено", 8 | "Show all" : "Показати все", 9 | "Categories" : "Категорії", 10 | "Updates" : "Оновлення", 11 | "Settings" : "Налаштування", 12 | "Clear cache" : "Очистити кеш", 13 | "Info" : "інформація", 14 | "Update for %1$s to version %2$s is available." : "Доступне оновлення з версії %1$s до %2$s." 15 | }, 16 | "nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);"); 17 | -------------------------------------------------------------------------------- /l10n/uk.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Version" : "Версія", 3 | "License" : "Ліцензія", 4 | "update" : "оновити", 5 | "Installed" : "Встановлено", 6 | "Show all" : "Показати все", 7 | "Categories" : "Категорії", 8 | "Updates" : "Оновлення", 9 | "Settings" : "Налаштування", 10 | "Clear cache" : "Очистити кеш", 11 | "Info" : "інформація", 12 | "Update for %1$s to version %2$s is available." : "Доступне оновлення з версії %1$s до %2$s." 13 | },"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);" 14 | } -------------------------------------------------------------------------------- /l10n/zh_CN.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "Edit API Key" : "编辑 API Key", 5 | "Add API Key" : "添加 API Key", 6 | "Developer" : "开发者", 7 | "Version" : "版本", 8 | "Release date" : "发布日期", 9 | "License" : "许可", 10 | "Version %{version} available" : "有新版本 %{version} 可用", 11 | "Get more info" : "获取更多信息", 12 | "loading" : "加载中", 13 | "install" : "安装", 14 | "uninstall" : "卸载", 15 | "update" : "更新", 16 | "Are you sure you want to remove %{appName} from your system?" : "确实要从系统中删除 %{appName} 吗?", 17 | "Update available" : "可用更新", 18 | "Installed" : "已安装", 19 | "Market" : "市场", 20 | "Show all" : "显示所有", 21 | "Categories" : "分类", 22 | "Updates" : "更新", 23 | "Settings" : "设置", 24 | "Clear cache" : "清除缓存", 25 | "App" : "应用", 26 | "Info" : "信息", 27 | "No apps in %{category}" : "%{category} 中没有应用", 28 | "Update Info" : "更新说明", 29 | "updating" : "更新中", 30 | "All apps are up to date" : "所有应用都是最新的", 31 | "Unknown app (%s)" : "未知应用(%s)", 32 | "The api key is not valid." : " \nAPI密钥无效", 33 | "Can not change api key because it is configured in config.php" : "无法更改API密钥,因为它是在config.php中配置的", 34 | "Cache cleared." : "缓存已清空。", 35 | "Update for %1$s to version %2$s is available." : "%1$s的版本%2$s的更新可用。", 36 | "The Internet connection is disabled." : "Internet连接已禁用。" 37 | }, 38 | "nplurals=1; plural=0;"); 39 | -------------------------------------------------------------------------------- /l10n/zh_CN.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Edit API Key" : "编辑 API Key", 3 | "Add API Key" : "添加 API Key", 4 | "Developer" : "开发者", 5 | "Version" : "版本", 6 | "Release date" : "发布日期", 7 | "License" : "许可", 8 | "Version %{version} available" : "有新版本 %{version} 可用", 9 | "Get more info" : "获取更多信息", 10 | "loading" : "加载中", 11 | "install" : "安装", 12 | "uninstall" : "卸载", 13 | "update" : "更新", 14 | "Are you sure you want to remove %{appName} from your system?" : "确实要从系统中删除 %{appName} 吗?", 15 | "Update available" : "可用更新", 16 | "Installed" : "已安装", 17 | "Market" : "市场", 18 | "Show all" : "显示所有", 19 | "Categories" : "分类", 20 | "Updates" : "更新", 21 | "Settings" : "设置", 22 | "Clear cache" : "清除缓存", 23 | "App" : "应用", 24 | "Info" : "信息", 25 | "No apps in %{category}" : "%{category} 中没有应用", 26 | "Update Info" : "更新说明", 27 | "updating" : "更新中", 28 | "All apps are up to date" : "所有应用都是最新的", 29 | "Unknown app (%s)" : "未知应用(%s)", 30 | "The api key is not valid." : " \nAPI密钥无效", 31 | "Can not change api key because it is configured in config.php" : "无法更改API密钥,因为它是在config.php中配置的", 32 | "Cache cleared." : "缓存已清空。", 33 | "Update for %1$s to version %2$s is available." : "%1$s的版本%2$s的更新可用。", 34 | "The Internet connection is disabled." : "Internet连接已禁用。" 35 | },"pluralForm" :"nplurals=1; plural=0;" 36 | } -------------------------------------------------------------------------------- /l10n/zh_TW.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "market", 3 | { 4 | "Installing and updating Apps is not supported!" : "不支持安裝和更新應用程序!", 5 | "This is a clustered setup or the web server has no permissions to write to the apps folder." : "這是群集設置,或者Web伺服器無權寫入apps目錄。", 6 | "Edit API Key" : "編輯API Key", 7 | "Add API Key" : "增加API Key", 8 | "No Bundles" : "沒有捆綁", 9 | "Developer" : "開發者", 10 | "Version" : "版本", 11 | "Release date" : "發布日期", 12 | "License" : "執照", 13 | "Version %{version} available" : "版本%{version}可用的", 14 | "published on " : "發表於", 15 | "Get more info" : "獲取更多信息", 16 | "loading" : "裝貨", 17 | "view in marketplace" : "在市場上查看", 18 | "install" : "安裝", 19 | "uninstall" : "卸載", 20 | "update" : "更新", 21 | "Are you sure you want to remove %{appName} from your system?" : "您確定您要移除嗎%{appName}from your system?", 22 | "Update available" : "更新可用的", 23 | "Installed" : "已安裝", 24 | "Market" : "市場", 25 | "Show all" : "顯示全部", 26 | "App Bundles" : "應用軟體", 27 | "Categories" : "分類", 28 | "Updates" : "更新", 29 | "Settings" : "設定", 30 | "Clear cache" : "清除快取", 31 | "App" : "軟體", 32 | "Info" : "信息", 33 | "installed" : "已安裝", 34 | "install bundle" : "安裝捆綁", 35 | "enterprise_key installation failed!" : "enterprise_key安裝失敗!", 36 | "No apps in %{category}" : "%{category}中沒有應用", 37 | "Update Info" : "更新信息", 38 | "updating" : "更新中", 39 | "All apps are up to date" : "所有軟體都是最新的", 40 | "Market notifications" : "市場通知", 41 | "Please enter a license-key in to config.php" : "請在config.php中配置許可證密鑰", 42 | "Please install and enable the enterprise_key app and enter a license-key in config.php first." : "請安裝並啟用enterprise_key軟體,然後首先在config.php中配置許可證密鑰。", 43 | "Your license-key is not valid." : "您的許可證密鑰無效。", 44 | "App %s is already installed" : "軟體%s已經安裝", 45 | "Shipped apps cannot be uninstalled" : "附帶的應用程序無法卸載", 46 | "App (%s) could not be uninstalled. Please check the server logs." : "軟體(%s)無法卸載。 請檢查伺服器記錄。", 47 | "App (%s) is not installed" : "軟體(%s)未安裝", 48 | "App (%s) is not known at the marketplace." : "軟體(%s)在市場上未知。", 49 | "Unknown app (%s)" : "未知軟體(%s)", 50 | "No compatible version for %s" : "沒有兼容的版本 %s", 51 | "App %s installed successfully" : "軟體%s安裝成功", 52 | "The api key is not valid." : "api密鑰無效。", 53 | "Can not change api key because it is configured in config.php" : "無法更改api密鑰,因為它是在config.php中配置的", 54 | "App %s uninstalled successfully" : "軟體%s成功卸載", 55 | "App %s updated successfully" : "軟體%s更新成功", 56 | "License key available." : "許可證密鑰可用的。", 57 | "No license key configured." : "未配置許可證密鑰。", 58 | "Demo license key successfully fetched from the marketplace." : "演示許可證密鑰已成功從市場上獲取。", 59 | "A license key is already configured." : "許可證密鑰已配置。", 60 | "Could not request the license key." : "無法請求許可證密鑰。", 61 | "Cache cleared." : "快取已清除。", 62 | "Update for %1$s to version %2$s is available." : "更新對於%1$s到版本%2$s是可用的", 63 | "The Internet connection is disabled." : "Internet連接被已停用。", 64 | "Invalid marketplace API key provided" : "提供了無效的市場API密鑰", 65 | "Marketplace API key missing" : "Marketplace API密鑰丟失", 66 | "Active subscription on marketplace required" : "需要在市場上進行必要的訂閱" 67 | }, 68 | "nplurals=1; plural=0;"); 69 | -------------------------------------------------------------------------------- /l10n/zh_TW.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Installing and updating Apps is not supported!" : "不支持安裝和更新應用程序!", 3 | "This is a clustered setup or the web server has no permissions to write to the apps folder." : "這是群集設置,或者Web伺服器無權寫入apps目錄。", 4 | "Edit API Key" : "編輯API Key", 5 | "Add API Key" : "增加API Key", 6 | "No Bundles" : "沒有捆綁", 7 | "Developer" : "開發者", 8 | "Version" : "版本", 9 | "Release date" : "發布日期", 10 | "License" : "執照", 11 | "Version %{version} available" : "版本%{version}可用的", 12 | "published on " : "發表於", 13 | "Get more info" : "獲取更多信息", 14 | "loading" : "裝貨", 15 | "view in marketplace" : "在市場上查看", 16 | "install" : "安裝", 17 | "uninstall" : "卸載", 18 | "update" : "更新", 19 | "Are you sure you want to remove %{appName} from your system?" : "您確定您要移除嗎%{appName}from your system?", 20 | "Update available" : "更新可用的", 21 | "Installed" : "已安裝", 22 | "Market" : "市場", 23 | "Show all" : "顯示全部", 24 | "App Bundles" : "應用軟體", 25 | "Categories" : "分類", 26 | "Updates" : "更新", 27 | "Settings" : "設定", 28 | "Clear cache" : "清除快取", 29 | "App" : "軟體", 30 | "Info" : "信息", 31 | "installed" : "已安裝", 32 | "install bundle" : "安裝捆綁", 33 | "enterprise_key installation failed!" : "enterprise_key安裝失敗!", 34 | "No apps in %{category}" : "%{category}中沒有應用", 35 | "Update Info" : "更新信息", 36 | "updating" : "更新中", 37 | "All apps are up to date" : "所有軟體都是最新的", 38 | "Market notifications" : "市場通知", 39 | "Please enter a license-key in to config.php" : "請在config.php中配置許可證密鑰", 40 | "Please install and enable the enterprise_key app and enter a license-key in config.php first." : "請安裝並啟用enterprise_key軟體,然後首先在config.php中配置許可證密鑰。", 41 | "Your license-key is not valid." : "您的許可證密鑰無效。", 42 | "App %s is already installed" : "軟體%s已經安裝", 43 | "Shipped apps cannot be uninstalled" : "附帶的應用程序無法卸載", 44 | "App (%s) could not be uninstalled. Please check the server logs." : "軟體(%s)無法卸載。 請檢查伺服器記錄。", 45 | "App (%s) is not installed" : "軟體(%s)未安裝", 46 | "App (%s) is not known at the marketplace." : "軟體(%s)在市場上未知。", 47 | "Unknown app (%s)" : "未知軟體(%s)", 48 | "No compatible version for %s" : "沒有兼容的版本 %s", 49 | "App %s installed successfully" : "軟體%s安裝成功", 50 | "The api key is not valid." : "api密鑰無效。", 51 | "Can not change api key because it is configured in config.php" : "無法更改api密鑰,因為它是在config.php中配置的", 52 | "App %s uninstalled successfully" : "軟體%s成功卸載", 53 | "App %s updated successfully" : "軟體%s更新成功", 54 | "License key available." : "許可證密鑰可用的。", 55 | "No license key configured." : "未配置許可證密鑰。", 56 | "Demo license key successfully fetched from the marketplace." : "演示許可證密鑰已成功從市場上獲取。", 57 | "A license key is already configured." : "許可證密鑰已配置。", 58 | "Could not request the license key." : "無法請求許可證密鑰。", 59 | "Cache cleared." : "快取已清除。", 60 | "Update for %1$s to version %2$s is available." : "更新對於%1$s到版本%2$s是可用的", 61 | "The Internet connection is disabled." : "Internet連接被已停用。", 62 | "Invalid marketplace API key provided" : "提供了無效的市場API密鑰", 63 | "Marketplace API key missing" : "Marketplace API密鑰丟失", 64 | "Active subscription on marketplace required" : "需要在市場上進行必要的訂閱" 65 | },"pluralForm" :"nplurals=1; plural=0;" 66 | } -------------------------------------------------------------------------------- /lib/Application.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2016, 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\Market; 23 | 24 | use OCA\Market\Notifier; 25 | use OCP\AppFramework\App; 26 | use OCP\Migration\IRepairStep; 27 | use Symfony\Component\EventDispatcher\GenericEvent; 28 | 29 | class Application extends App { 30 | /** 31 | * @param array $urlParams 32 | */ 33 | public function __construct(array $urlParams = []) { 34 | parent::__construct('market', $urlParams); 35 | // needed for translation 36 | // t('Market') 37 | 38 | $listener = $this->getContainer()->query(Listener::class); 39 | $dispatcher = $this->getContainer()->getServer()->getEventDispatcher(); 40 | $dispatcher->addListener( 41 | IRepairStep::class . '::upgradeAppStoreApp', 42 | function ($event) use ($listener) { 43 | if ($event instanceof GenericEvent) { 44 | try { 45 | $isMajorUpdate = $event->getArgument('isMajorUpdate'); 46 | } catch (\InvalidArgumentException $e) { 47 | $isMajorUpdate = false; 48 | } 49 | $listener->upgradeAppStoreApp( 50 | $event->getSubject(), 51 | $isMajorUpdate 52 | ); 53 | } 54 | } 55 | ); 56 | $dispatcher->addListener( 57 | IRepairStep::class . '::reinstallAppStoreApp', 58 | function ($event) use ($listener) { 59 | if ($event instanceof GenericEvent) { 60 | $listener->reinstallAppStoreApp($event->getSubject()); 61 | } 62 | } 63 | ); 64 | 65 | $manager = \OC::$server->getNotificationManager(); 66 | $manager->registerNotifier(function () use ($manager) { 67 | return new Notifier( 68 | $manager, 69 | \OC::$server->getAppManager(), 70 | \OC::$server->getL10NFactory() 71 | ); 72 | }, function () { 73 | $l = \OC::$server->getL10N('market'); 74 | return [ 75 | 'id' => 'market', 76 | 'name' => $l->t('Market notifications'), 77 | ]; 78 | }); 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /lib/Command/ListApps.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2016, 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\Market\Command; 23 | 24 | use OCA\Market\MarketService; 25 | use Symfony\Component\Console\Command\Command; 26 | use Symfony\Component\Console\Input\InputInterface; 27 | use Symfony\Component\Console\Output\OutputInterface; 28 | 29 | class ListApps extends Command { 30 | private $marketService; 31 | 32 | public function __construct(MarketService $marketService) { 33 | parent::__construct(); 34 | $this->marketService = $marketService; 35 | } 36 | 37 | protected function configure() { 38 | $this 39 | ->setName('market:list') 40 | ->setDescription('Lists apps as available on the marketplace.'); 41 | } 42 | 43 | protected function execute(InputInterface $input, OutputInterface $output): int { 44 | try { 45 | $apps = $this->marketService->listApps(); 46 | } catch (\Exception $ex) { 47 | $output->writeln("{$ex->getMessage()} "); 48 | return 1; 49 | } 50 | 51 | \usort($apps, function ($a, $b) { 52 | return \strcmp($a['id'], $b['id']); 53 | }); 54 | 55 | foreach ($apps as $app) { 56 | $output->writeln("{$app['id']}"); 57 | } 58 | return 0; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /lib/Command/UnInstallApp.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2016, 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\Market\Command; 23 | 24 | use OCA\Market\MarketService; 25 | use Symfony\Component\Console\Command\Command; 26 | use Symfony\Component\Console\Input\InputArgument; 27 | use Symfony\Component\Console\Input\InputInterface; 28 | use Symfony\Component\Console\Output\OutputInterface; 29 | 30 | class UnInstallApp extends Command { 31 | /** @var MarketService */ 32 | private $marketService; 33 | 34 | /** @var int */ 35 | private $exitCode = 0; 36 | 37 | public function __construct(MarketService $marketService) { 38 | parent::__construct(); 39 | $this->marketService = $marketService; 40 | } 41 | 42 | protected function configure() { 43 | $this 44 | ->setName('market:uninstall') 45 | ->setDescription('Un-Install apps.') 46 | ->addArgument( 47 | 'ids', 48 | InputArgument::OPTIONAL | InputArgument::IS_ARRAY, 49 | 'Ids of the apps' 50 | ); 51 | } 52 | 53 | protected function execute(InputInterface $input, OutputInterface $output): int { 54 | if (!$this->marketService->canInstall()) { 55 | throw new \Exception("Un-Installing apps is not supported because the app folder is not writable."); 56 | } 57 | 58 | $appIds = $input->getArgument('ids'); 59 | $appIds = \array_unique($appIds); 60 | 61 | if (!\count($appIds)) { 62 | $output->writeln("No appIds specified. Nothing to do."); 63 | return 0; 64 | } 65 | 66 | foreach ($appIds as $appId) { 67 | try { 68 | $output->writeln("$appId: Un-Installing ..."); 69 | $this->marketService->uninstallApp($appId); 70 | $output->writeln("$appId: App uninstalled."); 71 | } catch (\Exception $ex) { 72 | $output->writeln("$appId: {$ex->getMessage()}"); 73 | $this->exitCode = 1; 74 | } 75 | } 76 | return $this->exitCode; 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /lib/Controller/LocalAppsController.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 | 22 | namespace OCA\Market\Controller; 23 | 24 | use OC\App\DependencyAnalyzer; 25 | use OC\App\Platform; 26 | use OCP\App\IAppManager; 27 | use OCP\AppFramework\Controller; 28 | use OCP\IRequest; 29 | 30 | class LocalAppsController extends Controller { 31 | /** @var IAppManager */ 32 | private $appManager; 33 | 34 | public function __construct($appName, IRequest $request, IAppManager $appManager) { 35 | parent::__construct($appName, $request); 36 | $this->appManager = $appManager; 37 | } 38 | 39 | /** 40 | * @NoCSRFRequired 41 | * 42 | * @return array|mixed 43 | */ 44 | public function index($state = 'enabled') { 45 | $apps = \OC_App::listAllApps(); 46 | $apps = \array_filter($apps, function ($app) use ($state) { 47 | if ($state === 'enabled') { 48 | return $app['active']; 49 | } 50 | return !$app['active']; 51 | }); 52 | 53 | return \array_values(\array_map(function ($app) { 54 | $missing = $this->getMissingDependencies($app); 55 | $app['canInstall'] = empty($missing); 56 | $app['missingDependencies'] = $missing; 57 | $app['installed'] = true; 58 | $app['updateInfo'] = []; 59 | 60 | return $app; 61 | }, $apps)); 62 | } 63 | 64 | private function getMissingDependencies($appInfo) { 65 | // bad hack - should use OCP 66 | $l10n = \OC::$server->getL10N('settings'); 67 | $config = \OC::$server->getConfig(); 68 | $dependencyAnalyzer = new DependencyAnalyzer(new Platform($config), $l10n); 69 | 70 | return $dependencyAnalyzer->analyze($appInfo); 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /lib/Controller/PageController.php: -------------------------------------------------------------------------------- 1 | 5 | * 6 | * @copyright Copyright (c) 2016, 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\Market\Controller; 24 | 25 | use OCP\AppFramework\Controller; 26 | use OCP\AppFramework\Http\ContentSecurityPolicy; 27 | use OCP\AppFramework\Http\TemplateResponse; 28 | 29 | class PageController extends Controller { 30 | /** 31 | * @NoCSRFRequired 32 | * 33 | * Required for marketplace login to generate a callbackurl with 34 | * hash sign, or else login token will be attached before it resulting 35 | * in a broken url. 36 | */ 37 | public function indexHash() { 38 | return $this->index(); 39 | } 40 | 41 | /** 42 | * @NoCSRFRequired 43 | */ 44 | public function index() { 45 | $templateResponse = new TemplateResponse($this->appName, 'index', []); 46 | $policy = new ContentSecurityPolicy(); 47 | // live storage 48 | $policy->addAllowedImageDomain('https://marketplace-storage.owncloud.com'); 49 | // staging - for internal testing 50 | $policy->addAllowedImageDomain('https://marketplace-storage.staging.owncloud.services'); 51 | // local dev storage 52 | $policy->addAllowedImageDomain('http://minio:9000'); 53 | $templateResponse->setContentSecurityPolicy($policy); 54 | 55 | return $templateResponse; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /lib/Exception/LicenseKeyAlreadyAvailableException.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2016, 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 | namespace OCA\Market\Exception; 22 | 23 | /** 24 | * exception that is thrown when a license key is already set. 25 | * @package OCA\Market\Exception 26 | */ 27 | class LicenseKeyAlreadyAvailableException extends MarketException { 28 | } 29 | -------------------------------------------------------------------------------- /lib/Exception/MarketException.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2016, 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 | namespace OCA\Market\Exception; 22 | 23 | /** 24 | * base exception for market app 25 | * @package OCA\Market\Exception 26 | */ 27 | class MarketException extends \Exception { 28 | } 29 | -------------------------------------------------------------------------------- /lib/Listener.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 | 22 | namespace OCA\Market; 23 | 24 | use OCP\App\AppUpdateNotFoundException; 25 | 26 | class Listener { 27 | /** @var MarketService */ 28 | private $marketService; 29 | 30 | public function __construct(MarketService $marketService) { 31 | $this->marketService = $marketService; 32 | } 33 | 34 | public function upgradeAppStoreApp($app, $isMajorUpdate) { 35 | $updateVersions = $this->marketService->getAvailableUpdateVersions($app); 36 | $updateVersion = $this->marketService->chooseCandidate( 37 | $updateVersions, 38 | $isMajorUpdate 39 | ); 40 | if ($updateVersion !== false) { 41 | $this->marketService->updateApp($app, $updateVersion); 42 | } else { 43 | throw new AppUpdateNotFoundException(); 44 | } 45 | } 46 | 47 | public function reinstallAppStoreApp($app) { 48 | // only reinstall the code, do not run migrations 49 | $this->marketService->installApp($app, true); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /lib/Notifier.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 | 22 | namespace OCA\Market; 23 | 24 | use OCP\App\IAppManager; 25 | use OCP\L10N\IFactory; 26 | use OCP\Notification\IManager; 27 | use OCP\Notification\INotification; 28 | use OCP\Notification\INotifier; 29 | 30 | class Notifier implements INotifier { 31 | /** @var IManager */ 32 | protected $notificationManager; 33 | 34 | /** @var IAppManager */ 35 | protected $appManager; 36 | 37 | /** @var IFactory */ 38 | protected $l10NFactory; 39 | 40 | /** 41 | * Notifier constructor. 42 | * 43 | * @param IManager $notificationManager 44 | * @param IAppManager $appManager 45 | * @param IFactory $l10NFactory 46 | */ 47 | public function __construct(IManager $notificationManager, IAppManager $appManager, IFactory $l10NFactory) { 48 | $this->notificationManager = $notificationManager; 49 | $this->appManager = $appManager; 50 | $this->l10NFactory = $l10NFactory; 51 | } 52 | 53 | /** 54 | * @param INotification $notification 55 | * @param string $languageCode The code of the language that should be used to prepare the notification 56 | * @return INotification 57 | * @throws \InvalidArgumentException When the notification was not prepared by a notifier 58 | */ 59 | public function prepare(INotification $notification, $languageCode) { 60 | if ( 61 | $notification->getApp() !== 'market' 62 | || $notification->getObjectType() === 'core' 63 | ) { 64 | throw new \InvalidArgumentException(); 65 | } 66 | 67 | $l = $this->l10NFactory->get('market', $languageCode); 68 | /** 69 | * @var array|null $appInfo 70 | */ 71 | $appInfo = $this->getAppInfo($notification->getObjectType()); 72 | $appName = ($appInfo === null) ? $notification->getObjectType() : $appInfo['name']; 73 | $appVersions = $this->getAppVersions(); 74 | if (isset($appVersions[$notification->getObjectType()])) { 75 | $this->updateAlreadyInstalledCheck($notification, $appVersions[$notification->getObjectType()]); 76 | } else { 77 | throw new \InvalidArgumentException(); 78 | } 79 | 80 | $notification->setParsedSubject( 81 | $l->t( 82 | 'Update for %1$s to version %2$s is available.', 83 | [$appName, $notification->getObjectId()] 84 | ) 85 | ); 86 | return $notification; 87 | } 88 | 89 | /** 90 | * Remove the notification and prevent rendering, 91 | * when either the update is installed or app was removed 92 | * 93 | * @param INotification $notification 94 | * @param string $installedVersion 95 | * @throws \InvalidArgumentException When the update is already installed 96 | */ 97 | protected function updateAlreadyInstalledCheck(INotification $notification, $installedVersion) { 98 | if ( 99 | $this->appManager->getAppPath($notification->getObjectType()) === false 100 | || \version_compare($notification->getObjectId(), $installedVersion, '<=') 101 | ) { 102 | $this->notificationManager->markProcessed($notification); 103 | throw new \InvalidArgumentException(); 104 | } 105 | } 106 | 107 | protected function getAppVersions() { 108 | return \OC_App::getAppVersions(); 109 | } 110 | 111 | /** 112 | * @param string $appId 113 | * @return string[] 114 | */ 115 | protected function getAppInfo($appId) { 116 | return $this->appManager->getAppInfo($appId); 117 | } 118 | } 119 | -------------------------------------------------------------------------------- /lib/VersionHelper.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\Market; 23 | 24 | use OCP\Util; 25 | 26 | /** 27 | * Class VersionHelper 28 | * 29 | * @package OCA\Market 30 | */ 31 | class VersionHelper { 32 | /** 33 | * Get the current ownCloud version 34 | * 35 | * @param int $cutTo 36 | * 37 | * @return string 38 | */ 39 | public function getPlatformVersion($cutTo = null) { 40 | $v = Util::getVersion(); 41 | if ($cutTo !== null) { 42 | $v = \array_slice($v, 0, $cutTo); 43 | } 44 | return \join('.', $v); 45 | } 46 | 47 | /** 48 | * Check if both versions has the same major part 49 | * 50 | * @param string $first 51 | * @param string $second 52 | * 53 | * @return bool 54 | */ 55 | public function isSameMajorVersion($first, $second) { 56 | $firstMajor = $this->getMajorVersion($first); 57 | $secondMajor = $this->getMajorVersion($second); 58 | return $firstMajor === $secondMajor; 59 | } 60 | 61 | /** 62 | * @param string $first 63 | * @param string $second 64 | * @return mixed 65 | */ 66 | public function lessThanOrEqualTo($first, $second) { 67 | return \version_compare($first, $second, '<='); 68 | } 69 | 70 | /** 71 | * Parameters will be normalized and then passed into version_compare 72 | * in the same order they are specified in the method header 73 | * 74 | * @param string|null $first 75 | * @param string|null $second 76 | * @param string $operator 77 | * 78 | * @return bool result similar to version_compare 79 | */ 80 | public function compare($first, $second, $operator) { 81 | // we can't normalize versions if one of the given parameters is not a 82 | // version string but null. In case one parameter is null normalization 83 | // will therefore be skipped 84 | if ($first !== null && $second !== null) { 85 | list($first, $second) = $this->normalizeVersions($first, $second); 86 | } 87 | return \version_compare($first, $second, $operator); 88 | } 89 | 90 | /** 91 | * Truncates both versions to the lowest common version, e.g. 92 | * 5.1.2.3 and 5.1 will be turned into 5.1 and 5.1, 93 | * 5.2.6.5 and 5.1 will be turned into 5.2 and 5.1 94 | * 95 | * @param string $first 96 | * @param string $second 97 | * 98 | * @return string[] first element is the first version, second element is the 99 | * second version 100 | */ 101 | private function normalizeVersions($first, $second) { 102 | $first = \explode('.', $first); 103 | $second = \explode('.', $second); 104 | 105 | // get both arrays to the same minimum size 106 | $length = \min(\count($second), \count($first)); 107 | $first = \array_slice($first, 0, $length); 108 | $second = \array_slice($second, 0, $length); 109 | 110 | return [\implode('.', $first), \implode('.', $second)]; 111 | } 112 | 113 | /** 114 | * Get major version digits 115 | * 116 | * @param string $version 117 | * 118 | * @return int|null 119 | */ 120 | private function getMajorVersion($version) { 121 | $versionArray = \explode('.', $version); 122 | return isset($versionArray[0]) ? (int) $versionArray[0] : null; 123 | } 124 | } 125 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "market", 3 | "version": "0.2.0", 4 | "description": "MarketPlace/AppStore integration", 5 | "main": "app.js", 6 | "directories": { 7 | "test": "tests" 8 | }, 9 | "scripts": { 10 | "test": "echo \"Error: no test specified\" && exit 1", 11 | "dev": "webpack --progress --colors --watch", 12 | "build-dev": "webpack", 13 | "build": "NODE_ENV=production webpack" 14 | }, 15 | "repository": { 16 | "type": "git", 17 | "url": "git+https://github.com/owncloud/market.git" 18 | }, 19 | "keywords": [ 20 | "ownCloud", 21 | "Marketplace" 22 | ], 23 | "author": "Felix Heidecke", 24 | "license": "AGPL-3.0", 25 | "dependencies": { 26 | "@babel/cli": "^7.0.0", 27 | "@babel/core": "^7.23.2", 28 | "@babel/preset-env": "^7.0.0", 29 | "axios": "1.6.8", 30 | "babel-loader": "^9.0.0", 31 | "core-js": "^3.33.1", 32 | "css-loader": "^6.8.1", 33 | "easygettext": "^2.17.0", 34 | "expose-loader": "^4.1.0", 35 | "jquery": "3.6.0", 36 | "less": "^4.2.0", 37 | "less-loader": "^11.1.3", 38 | "node-sass": "^9.0.0", 39 | "pug": "3.0.3", 40 | "sass-loader": "^13.3.2", 41 | "showdown": "^2.1.0", 42 | "style-loader": "^3.3.3", 43 | "uglify-js": "3.17.4", 44 | "uikit": "3.21.5", 45 | "underscore": "1.13.6", 46 | "vue": "2.5.21", 47 | "vue-gettext": "2.1.12", 48 | "vue-loader": "^15.11.1", 49 | "vue-pug-loader": "^1.1.29", 50 | "vue-router": "3.5.2", 51 | "vue-style-loader": "^4.1.3", 52 | "vue-template-compiler": "2.5.21", 53 | "vuex": "3.6.2", 54 | "webpack": "^5.89.0" 55 | }, 56 | "devDependencies": { 57 | "acorn": "5.7.4", 58 | "ansi-regex": "4.1.1", 59 | "glob-parent": "5.1.2", 60 | "json-schema": "0.4.0", 61 | "json5": "2.2.3", 62 | "kind-of": "6.0.3", 63 | "loader-utils": "1.4.2", 64 | "minimist": "1.2.8", 65 | "scss-tokenizer": "0.4.3", 66 | "set-value": "2.0.1", 67 | "webpack-cli": "^5.1.4" 68 | }, 69 | "engines": { 70 | "node": ">=6.9 <=8" 71 | }, 72 | "bugs": { 73 | "url": "https://github.com/owncloud/market/issues" 74 | }, 75 | "homepage": "https://github.com/owncloud/market#readme", 76 | "snyk": true 77 | } 78 | -------------------------------------------------------------------------------- /phpstan.neon: -------------------------------------------------------------------------------- 1 | parameters: 2 | inferPrivatePropertyTypeFromConstructor: true 3 | bootstrapFiles: 4 | - %currentWorkingDirectory%/../../lib/base.php 5 | excludePaths: 6 | - %currentWorkingDirectory%/appinfo/Migrations/*.php 7 | - %currentWorkingDirectory%/appinfo/routes.php 8 | ignoreErrors: 9 | - 10 | message: '#Property OCA\\Market\\Controller\\LocalAppsController::\$appManager is never read, only written.#' 11 | path: lib/Controller/LocalAppsController.php 12 | count: 1 13 | -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | ./tests/unit 13 | 14 | 15 | 16 | 17 | . 18 | 19 | 20 | ./l10n 21 | ./tests 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /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_market 4 | sonar.projectVersion=0.9.0 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/market 12 | sonar.links.ci=https://drone.owncloud.com/owncloud/market/ 13 | sonar.links.scm=https://github.com/owncloud/market 14 | sonar.links.issue=https://github.com/owncloud/market/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/market 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 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 53 | 54 | 63 | -------------------------------------------------------------------------------- /src/components/ApiForm.vue: -------------------------------------------------------------------------------- 1 | 24 | 25 | 68 | 69 | 74 | -------------------------------------------------------------------------------- /src/components/BundleTile.vue: -------------------------------------------------------------------------------- 1 | 31 | 32 | 85 | 86 | 104 | -------------------------------------------------------------------------------- /src/components/BundlesList.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /src/components/List.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 41 | 42 | 53 | -------------------------------------------------------------------------------- /src/components/Navigation.vue: -------------------------------------------------------------------------------- 1 | 31 | 32 | 70 | 71 | 84 | -------------------------------------------------------------------------------- /src/components/Rating.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 27 | 28 | 43 | -------------------------------------------------------------------------------- /src/components/Tile.vue: -------------------------------------------------------------------------------- 1 | 25 | 26 | 45 | 46 | 64 | -------------------------------------------------------------------------------- /src/components/UpdateList.vue: -------------------------------------------------------------------------------- 1 | 47 | 48 | 83 | 84 | 87 | -------------------------------------------------------------------------------- /src/default.js: -------------------------------------------------------------------------------- 1 | import "core-js/stable"; 2 | require('./styles/theme.scss'); 3 | 4 | // -------------------------------------------------------- Uikit components --- 5 | import UIkit from 'uikit'; 6 | import Icons from 'uikit/dist/js/uikit-icons'; 7 | 8 | UIkit.use(Icons); 9 | 10 | // ------------------------------------------------------------- Vue plugins --- 11 | 12 | import Vue from 'vue' 13 | import VueRouter from 'vue-router'; 14 | 15 | Vue.use(VueRouter); 16 | 17 | import GetTextPlugin from 'vue-gettext' 18 | import translations from '../l10n/translations.json' 19 | 20 | Vue.use(GetTextPlugin, {translations: translations}) 21 | Vue.config.language = OC.getLocale() 22 | 23 | // TODO: Write plugin for global t() method 24 | 25 | // --------------------------------------------------------------- Vue setup --- 26 | 27 | import App from './App.vue' 28 | import Details from './components/Details.vue' 29 | import List from './components/List.vue' 30 | import BundlesList from './components/BundlesList.vue' 31 | import UpdateList from './components/UpdateList.vue' 32 | 33 | // Store 34 | import store from './store' 35 | 36 | // Routing 37 | const routes = [ 38 | { 39 | path: '/app/:id', 40 | component: Details, 41 | name: 'details' 42 | }, { 43 | path: '/by/category/:category', 44 | component: List, 45 | name: 'byCategory' 46 | }, { 47 | path: '/bundles', 48 | component: BundlesList, 49 | name: 'Bundles' 50 | }, { 51 | path: '/updates', 52 | component: UpdateList, 53 | name: 'UpdateList' 54 | }, { 55 | path: '/', 56 | component: List, 57 | name: 'index' 58 | } 59 | ]; 60 | 61 | const router = new VueRouter({ 62 | routes 63 | }); 64 | 65 | // The App itself 66 | const MarketApp = new Vue({ 67 | router, 68 | store, 69 | render: h => h(App) 70 | }); 71 | 72 | // --------------------------------------------------------------- Vue mount --- 73 | 74 | // Need to wait for window to load 75 | window.onload = () => MarketApp.$mount('.app-market'); 76 | -------------------------------------------------------------------------------- /src/mixins.js: -------------------------------------------------------------------------------- 1 | import showdown from "showdown"; 2 | 3 | export default { 4 | methods: { 5 | t (string, interpolation) { 6 | if (!interpolation) { 7 | return this.$gettext(string); 8 | } 9 | else { 10 | // %{interplate} with object 11 | return this.$gettextInterpolate(string, interpolation); 12 | } 13 | }, 14 | markdown (string) { 15 | let converter = new showdown.Converter(); 16 | let markdown = converter.makeHtml(string); 17 | 18 | return markdown; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/styles/theme.scss: -------------------------------------------------------------------------------- 1 | @import "variables-theme.scss"; 2 | 3 | #market-app { 4 | font-family: "Open Sans", Frutiger, Calibri, sans-serif; 5 | @extend .uk-background-muted; 6 | 7 | .uk-button * { 8 | cursor: pointer; 9 | } 10 | } 11 | 12 | @import "../../node_modules/uikit/src/scss/uikit-theme.scss"; 13 | 14 | // Animations 15 | 16 | .fade-enter-active, .fade-leave-active { 17 | transition: transform .5s, opacity .45s 18 | } 19 | 20 | .fade-enter { 21 | transform: translateY(-10px); 22 | opacity: 0; 23 | } 24 | 25 | .fade-leave-to { 26 | transform: translateY(10px); 27 | opacity: 0; 28 | } 29 | 30 | // Reset overwritten core css styles 31 | 32 | #expanddiv ul, 33 | #apps ul { 34 | margin-bottom: 0; 35 | padding-left: 0; 36 | 37 | a:hover { 38 | text-decoration: none; 39 | } 40 | 41 | img { 42 | max-width: inherit; 43 | } 44 | } 45 | 46 | .article { 47 | ul { 48 | @extend .uk-list; 49 | @extend .uk-list-bullet; 50 | } 51 | } -------------------------------------------------------------------------------- /src/styles/variables-theme.scss: -------------------------------------------------------------------------------- 1 | // 1. Your custom variables and variable overwrites. 2 | 3 | $global-link-color: #1d2d44; 4 | 5 | @import "../../node_modules/uikit/src/scss/variables-theme.scss"; 6 | @import "../../node_modules/uikit/src/scss/mixins-theme.scss"; 7 | 8 | $button-secondary-background: #f8f8f8; 9 | $button-secondary-color: $global-color; 10 | 11 | $button-secondary-hover-background: darken($button-secondary-background, 5%); 12 | $button-secondary-hover-color: $button-secondary-color; 13 | 14 | @mixin hook-card-default() { 15 | box-shadow: 0 5px 15px rgba($global-link-color, .333); 16 | } 17 | 18 | @mixin hook-button-secondary() { 19 | border: 1px solid lighten($button-secondary-color, 50%); 20 | } 21 | -------------------------------------------------------------------------------- /templates/index.php: -------------------------------------------------------------------------------- 1 | 4 | * @author Felix Heidecke 5 | * 6 | * @copyright Copyright (c) 2016, 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 | script('market', 'market.bundle'); 24 | -------------------------------------------------------------------------------- /tests/acceptance/config/behat.yml: -------------------------------------------------------------------------------- 1 | default: 2 | autoload: 3 | '': '%paths.base%/../features/bootstrap' 4 | 5 | suites: 6 | cliMain: 7 | paths: 8 | - '%paths.base%/../features/cliMain' 9 | contexts: 10 | - MarketContext: 11 | - FeatureContext: &common_feature_context_params 12 | baseUrl: http://localhost:8080 13 | adminUsername: admin 14 | adminPassword: admin 15 | regularUserPassword: 123456 16 | ocPath: apps/testing/api/v1/occ 17 | - LoggingContext: 18 | - OccContext: 19 | - OccAppManagementContext: 20 | 21 | extensions: 22 | Cjm\Behat\StepThroughExtension: ~ 23 | -------------------------------------------------------------------------------- /tests/acceptance/features/bootstrap/MarketContext.php: -------------------------------------------------------------------------------- 1 | 6 | * @copyright Copyright (c) 2022 Phil Davis 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 | use Behat\Behat\Context\Context; 24 | 25 | require_once 'bootstrap.php'; 26 | 27 | /** 28 | * Context for market specific steps 29 | */ 30 | class MarketContext implements Context { 31 | } 32 | -------------------------------------------------------------------------------- /tests/acceptance/features/bootstrap/bootstrap.php: -------------------------------------------------------------------------------- 1 | 6 | * @copyright Copyright (c) 2022 Phil Davis 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 | require_once __DIR__ . '/../../../../../../tests/acceptance/features/bootstrap/bootstrap.php'; 23 | 24 | $classLoader = new \Composer\Autoload\ClassLoader(); 25 | $classLoader->addPsr4( 26 | "", 27 | __DIR__ . "/../../../../../../tests/acceptance/features/bootstrap", 28 | true 29 | ); 30 | $classLoader->register(); 31 | -------------------------------------------------------------------------------- /tests/acceptance/features/cliMain/marketInstallUpgradeUninstall.feature: -------------------------------------------------------------------------------- 1 | @cli 2 | Feature: install, upgrade and uninstall apps that are available in the market-place 3 | 4 | # Note: testing this feature requires that the real market-place be online, 5 | # working and reachable from the system-under-test. 6 | # The activity app must not yet be installed on the system-under-test. 7 | # Happy-path install, upgrade and uninstall are tested all in one scenario as a "user journey" 8 | # because we need to install anyway, in order to test a normal uninstall. 9 | Scenario: install, attempt to reinstall, upgrade and uninstall an app that is available in the market-place 10 | # Note: use the activity app as the example to install 11 | # it should be an app that is always available 12 | When the administrator invokes occ command "market:install activity" 13 | Then the command should have been successful 14 | And the command output should be: 15 | """ 16 | activity: Installing new app ... 17 | activity: App installed. 18 | """ 19 | And app "activity" should be enabled 20 | # Attempt to install again and check the different message 21 | When the administrator invokes occ command "market:install activity" 22 | Then the command should have been successful 23 | And the command output should be: 24 | """ 25 | activity: App already installed and no update available 26 | """ 27 | And app "activity" should be enabled 28 | # Attempt to upgrade and check that no update is available 29 | When the administrator invokes occ command "market:upgrade activity" 30 | Then the command should have been successful 31 | And the command output should be: 32 | """ 33 | activity: No update available. 34 | """ 35 | And app "activity" should be enabled 36 | # Uninstall the app - to make sure that uninstall works, and to cleanup 37 | When the administrator invokes occ command "market:uninstall activity" 38 | Then the command should have been successful 39 | And the command output should be: 40 | """ 41 | activity: Un-Installing ... 42 | activity: App uninstalled. 43 | """ 44 | And app "activity" should not be in the apps list 45 | 46 | 47 | Scenario: install an app that is not available in the market-place 48 | When the administrator invokes occ command "market:install nonexistentapp" 49 | Then the command should have failed with exit code 1 50 | And the command output should be: 51 | """ 52 | nonexistentapp: Installing new app ... 53 | nonexistentapp: Unknown app (nonexistentapp) 54 | """ 55 | 56 | 57 | Scenario: upgrade an app that is not available in the market-place 58 | When the administrator invokes occ command "market:upgrade nonexistentapp" 59 | Then the command should have failed with exit code 1 60 | And the command output should be: 61 | """ 62 | nonexistentapp: Not installed ... 63 | """ 64 | 65 | 66 | Scenario: upgrade an app that is available in the market-place but not installed locally 67 | When the administrator invokes occ command "market:upgrade activity" 68 | Then the command should have failed with exit code 1 69 | And the command output should be: 70 | """ 71 | activity: Not installed ... 72 | """ 73 | 74 | 75 | Scenario: uninstall an app that is not available in the market-place 76 | When the administrator invokes occ command "market:uninstall nonexistentapp" 77 | Then the command should have failed with exit code 1 78 | And the command output should be: 79 | """ 80 | nonexistentapp: Un-Installing ... 81 | nonexistentapp: App (nonexistentapp) could not be uninstalled. Please check the server logs. 82 | """ 83 | 84 | 85 | Scenario: uninstall an app that is available in the market-place but not installed locally 86 | When the administrator invokes occ command "market:uninstall activity" 87 | Then the command should have failed with exit code 1 88 | And the command output should be: 89 | """ 90 | activity: Un-Installing ... 91 | activity: App (activity) could not be uninstalled. Please check the server logs. 92 | """ 93 | -------------------------------------------------------------------------------- /tests/acceptance/features/cliMain/marketList.feature: -------------------------------------------------------------------------------- 1 | @cli 2 | Feature: list apps that are available in the market-place 3 | 4 | # Note: testing this feature requires that the real market-place be online, 5 | # working and reachable from the system-under-test. 6 | Scenario: list the apps available in the market-place 7 | When the administrator invokes occ command "market:list" 8 | Then the command should have been successful 9 | # The command lists all the apps that are available on the market-place 10 | # Just check for an example app that should always be there 11 | And the command output should contain the text "activity" 12 | -------------------------------------------------------------------------------- /tests/unit/Command/ListAppsTest.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 | 22 | namespace OCA\Market\Tests\Unit\Command; 23 | 24 | use OCA\Market\Command\ListApps; 25 | use OCA\Market\MarketService; 26 | use Symfony\Component\Console\Tester\CommandTester; 27 | use Test\TestCase; 28 | 29 | class ListAppsTest extends TestCase { 30 | /** @var CommandTester */ 31 | private $commandTester; 32 | /** @var MarketService | \PHPUnit\Framework\MockObject\MockObject */ 33 | private $marketService; 34 | 35 | public function setUp(): void { 36 | parent::setUp(); 37 | 38 | $this->marketService = $this->createMock(MarketService::class); 39 | $command = new ListApps($this->marketService); 40 | $this->commandTester = new CommandTester($command); 41 | } 42 | 43 | public function testListApps() { 44 | $this->marketService->expects($this->once())->method('listApps')->willReturn([ 45 | ['id' => 'foo'], 46 | ['id' => 'bar'], 47 | ]); 48 | $this->commandTester->execute([]); 49 | $output = $this->commandTester->getDisplay(); 50 | $this->assertStringContainsString("bar\nfoo", $output); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /tests/unit/Command/UnInstallAppTest.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 | 22 | namespace OCA\Market\Tests\Unit\Command; 23 | 24 | use OCA\Market\Command\UnInstallApp; 25 | use OCA\Market\MarketService; 26 | use Symfony\Component\Console\Tester\CommandTester; 27 | use Test\TestCase; 28 | 29 | class UnInstallAppTest extends TestCase { 30 | /** @var CommandTester */ 31 | private $commandTester; 32 | /** @var MarketService | \PHPUnit\Framework\MockObject\MockObject */ 33 | private $marketService; 34 | 35 | public function setUp(): void { 36 | parent::setUp(); 37 | 38 | $this->marketService = $this->createMock(MarketService::class); 39 | $command = new UnInstallApp($this->marketService); 40 | $this->commandTester = new CommandTester($command); 41 | } 42 | 43 | /** 44 | */ 45 | public function testInstallNotSupported() { 46 | $this->expectException(\Exception::class); 47 | $this->expectExceptionMessage('Installing apps is not supported because the app folder is not writable.'); 48 | 49 | $this->marketService->expects($this->once())->method('canInstall')->willReturn(false); 50 | $this->commandTester->execute([]); 51 | } 52 | 53 | public function testNothingToDo() { 54 | $this->marketService->expects($this->once())->method('canInstall')->willReturn(true); 55 | $this->commandTester->execute([]); 56 | $output = $this->commandTester->getDisplay(); 57 | $this->assertStringContainsString('No appIds specified. Nothing to do.', $output); 58 | } 59 | 60 | public function testUnInstall() { 61 | $this->marketService->expects($this->once())->method('canInstall')->willReturn(true); 62 | $this->marketService->expects($this->once())->method('uninstallApp'); 63 | $this->commandTester->execute([ 64 | 'ids' => ['foo'] 65 | ]); 66 | $output = $this->commandTester->getDisplay(); 67 | $this->assertStringContainsString('foo: Un-Installing ...', $output); 68 | $this->assertStringContainsString('foo: App uninstalled.', $output); 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /tests/unit/MarketControllerTest.php: -------------------------------------------------------------------------------- 1 | 5 | * 6 | * @copyright Copyright (c) 2019, 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 | namespace OCA\Market\Tests\Unit; 23 | 24 | use OCA\Market\Controller\MarketController; 25 | use OCA\Market\MarketService; 26 | use OCP\IConfig; 27 | use OCP\IL10N; 28 | use OCP\IRequest; 29 | use OCP\IURLGenerator; 30 | use Test\TestCase; 31 | 32 | class MarketControllerTest extends TestCase { 33 | /** @var MarketController */ 34 | private $controller; 35 | /** @var IRequest */ 36 | private $request; 37 | /** @var MarketService|\PHPUnit\Framework\MockObject\MockObject */ 38 | private $marketService; 39 | 40 | public function setUp(): void { 41 | parent::setUp(); 42 | $this->request = $this->createMock(IRequest::class); 43 | $this->marketService = $this->createMock(MarketService::class); 44 | 45 | $this->controller = new MarketController( 46 | 'market', 47 | $this->request, 48 | $this->marketService, 49 | $this->createMock(IL10N::class), 50 | $this->createMock(IConfig::class) 51 | ); 52 | } 53 | 54 | public function testApiKeyIsNotReturnedIfNotChangeableByUser() { 55 | $this->marketService 56 | ->method('isApiKeyChangeableByUser') 57 | ->willReturn(false); 58 | 59 | /** @var array */ 60 | $response = $this->controller->getApiKey()->getData(); 61 | $this->assertArrayNotHasKey('apiKey', $response); 62 | } 63 | 64 | public function testApiKeyIsReturnedIfChangeableByUser() { 65 | $this->marketService 66 | ->method('isApiKeyChangeableByUser') 67 | ->willReturn(true); 68 | 69 | /** @var array */ 70 | $response = $this->controller->getApiKey()->getData(); 71 | $this->assertArrayHasKey('apiKey', $response); 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /tests/unit/NotifierTest.php: -------------------------------------------------------------------------------- 1 | getMockBuilder(IL10N::class) 23 | ->disableOriginalConstructor() 24 | ->getMock(); 25 | 26 | $l10n->expects($this->any()) 27 | ->method('t') 28 | ->willReturnArgument(0); 29 | 30 | $this->l10nFactory = $this->getMockBuilder(IFactory::class) 31 | ->disableOriginalConstructor() 32 | ->getMock(); 33 | 34 | $this->l10nFactory->expects($this->any()) 35 | ->method('get') 36 | ->willReturn($l10n); 37 | 38 | $this->notificationManager = $this->getMockBuilder(IManager::class) 39 | ->disableOriginalConstructor() 40 | ->getMock(); 41 | 42 | $this->appManager = $this->getMockBuilder(IAppManager::class) 43 | ->disableOriginalConstructor() 44 | ->getMock(); 45 | } 46 | 47 | /** 48 | */ 49 | public function testUnexistingAppsDoNotCreateNotifications() { 50 | $this->expectException(\InvalidArgumentException::class); 51 | 52 | $appName = 'whatsapp'; 53 | $notifier = new Notifier($this->notificationManager, $this->appManager, $this->l10nFactory); 54 | $notification = new Notification(); 55 | $notification->setApp('market'); 56 | $notification->setObject($appName, 55); 57 | $notification->setSubject('Cu'); 58 | $notifier->prepare($notification, 'en'); 59 | } 60 | 61 | /** 62 | */ 63 | public function testUninstalledAppsDoNotCreateNotifications() { 64 | $this->expectException(\InvalidArgumentException::class); 65 | 66 | $appName = 'whatsapp'; 67 | $notifier = $this->getMockBuilder(Notifier::class) 68 | ->setConstructorArgs([$this->notificationManager, $this->appManager, $this->l10nFactory]) 69 | ->setMethods(['getAppVersions']) 70 | ->getMock(); 71 | 72 | $notifier->expects($this->any()) 73 | ->method('getAppVersions') 74 | ->willReturn([$appName => '1.2.4']); 75 | 76 | $this->appManager->expects($this->any()) 77 | ->method('getAppPath') 78 | ->with($appName) 79 | ->willReturn(false); 80 | 81 | $notification = new Notification(); 82 | $notification->setApp('market'); 83 | $notification->setObject($appName, 55); 84 | $notification->setSubject('Cu'); 85 | $notifier->prepare($notification, 'en'); 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /tests/unit/PageControllerTest.php: -------------------------------------------------------------------------------- 1 | request = $this->createMock(IRequest::class); 20 | $this->controller = new PageController($this->appName, $this->request); 21 | } 22 | 23 | public function testIndex() { 24 | $response = $this->controller->index(); 25 | 26 | $policy = new \OCP\AppFramework\Http\ContentSecurityPolicy(); 27 | $policy->addAllowedImageDomain('https://marketplace-storage.owncloud.com'); 28 | $policy->addAllowedImageDomain('https://marketplace-storage.staging.owncloud.services'); 29 | $policy->addAllowedImageDomain('http://minio:9000'); 30 | $this->assertEquals($policy, $response->getContentSecurityPolicy()); 31 | 32 | $this->assertEquals('index', $response->getTemplateName()); 33 | } 34 | 35 | public function testIndexHash() { 36 | $response = $this->controller->indexHash(); 37 | 38 | $policy = new \OCP\AppFramework\Http\ContentSecurityPolicy(); 39 | $policy->addAllowedImageDomain('https://marketplace-storage.owncloud.com'); 40 | $policy->addAllowedImageDomain('https://marketplace-storage.staging.owncloud.services'); 41 | $policy->addAllowedImageDomain('http://minio:9000'); 42 | $this->assertEquals($policy, $response->getContentSecurityPolicy()); 43 | 44 | $this->assertEquals('index', $response->getTemplateName()); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /tests/unit/VersionHelperTest.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\Market\Tests\Unit; 23 | 24 | use OCA\Market\VersionHelper; 25 | use Test\TestCase; 26 | 27 | class VersionHelperTest extends TestCase { 28 | /** @var VersionHelper | \PHPUnit\Framework\MockObject\MockObject */ 29 | private $versionHelper; 30 | 31 | protected function setUp(): void { 32 | $this->versionHelper = new VersionHelper(); 33 | } 34 | /** 35 | * @dataProvider dataTestIsSameMajorVersion 36 | * 37 | * @param string $first 38 | * @param string $second 39 | * @param bool $expected 40 | */ 41 | public function testIsSameMajorVersion($first, $second, $expected) { 42 | $sameMajor = $this->versionHelper->isSameMajorVersion($first, $second); 43 | $this->assertEquals($expected, $sameMajor); 44 | } 45 | 46 | public function dataTestIsSameMajorVersion() { 47 | return [ 48 | ['1.0', '1.1', true], 49 | ['1.0', '1.1', true], 50 | ['1.0', null, false], 51 | ['2.1.2', '1.2.3', false], 52 | ['5.1', '5.2.3', true], 53 | ]; 54 | } 55 | 56 | /** 57 | * @dataProvider dataTestCompare 58 | * 59 | * @param string $first 60 | * @param string $second 61 | * @param bool $expected 62 | */ 63 | public function testCompare($first, $second, $expected) { 64 | $result = $this->versionHelper->compare($first, $second, '>'); 65 | $this->assertEquals($expected, $result); 66 | } 67 | 68 | public function dataTestCompare() { 69 | return [ 70 | ['1.0.2', '1.1', false], 71 | ['2.3.4', '1.1', true], 72 | ['1.0', null, true], 73 | ['2.1.2', '1.2.3.4', true], 74 | ['5.1', '5.2.3', false], 75 | ]; 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /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/phpstan/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": { 3 | "phpstan/phpstan": "^1.10" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | const VueLoaderPlugin = require('vue-loader/lib/plugin'); 2 | 3 | module.exports = { 4 | mode: 'production', 5 | entry: './src/default.js', 6 | output : { 7 | path: require('path').resolve(__dirname, 'js'), 8 | filename : 'market.bundle.js', 9 | publicPath: '/' 10 | }, 11 | module: { 12 | rules: [{ 13 | test: require.resolve('uikit'), 14 | loader: 'expose-loader', 15 | options: { 16 | exposes: ["UIkit"], 17 | }, 18 | }, { 19 | test: /\.js?$/, 20 | exclude: /node_modules/, 21 | use: 'babel-loader', 22 | }, { 23 | test: /\.scss?$/, 24 | use: ['style-loader', 'css-loader', 'sass-loader'] 25 | }, { 26 | test: /\.pug$/, 27 | use: 'vue-pug-loader' 28 | }, { 29 | test: /\.vue$/, 30 | loader: 'vue-loader', 31 | }] 32 | }, 33 | plugins: [ 34 | new VueLoaderPlugin() 35 | ] 36 | } 37 | --------------------------------------------------------------------------------