├── .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 | [](https://drone.owncloud.com/owncloud/market)
5 | [](https://sonarcloud.io/dashboard?id=owncloud_market)
6 | [](https://sonarcloud.io/dashboard?id=owncloud_market)
7 | [](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 |
2 | .uk-padding(v-if="config")
3 | .uk-grid-large(uk-grid)
4 | .uk-width-1-1(v-if="showNotice").uk-animation-slide-top-small
5 | .uk-alert-primary(uk-alert)
6 | span.uk-alert-close(uk-close, @click.prevent="noticeDismissed = true")
7 | h1.uk-h5 {{ t("Installing and updating Apps is not supported!") }}
8 | p {{ t("This is a clustered setup or the web server has no permissions to write to the apps folder.") }}
9 | aside.uk-width-auto
10 | navigation
11 | main.uk-width-expand
12 | router-view
13 |
14 |
15 |
53 |
54 |
63 |
--------------------------------------------------------------------------------
/src/components/ApiForm.vue:
--------------------------------------------------------------------------------
1 |
2 | li(v-if="changeable")
3 | a(href="#", @click.prevent="openModalEditKey") {{ key ? t('Edit API Key') : t('Add API Key') }}
4 |
5 | #edit-api-key(uk-modal='center: true')
6 | .uk-modal-dialog
7 | button.uk-modal-close-default(type='button', uk-close='')
8 | .uk-modal-header
9 | h2.uk-modal-title Marketplace API Key
10 | .uk-modal-body
11 | p Your API-Key is needed inside the ownCloud Market App. Copy and paste it to retrieve your purchased products inside your ownCloud instance.
12 | label.uk-text-meta.uk-display-block.uk-margin-small-bottom Your personal API Key
13 | input.uk-input.uk-text-center.-monospace(v-model="newKey", :class="{ 'uk-form-success' : valid && key === newKey }")
14 | .uk-alert-danger(v-if="!valid && valid != undefined", uk-alert)
15 | p.uk-text-center The API-Key is invalid!
16 | .uk-modal-footer
17 | button.uk-button.uk-button-default.uk-modal-close.uk-margin-small-right(type='button') Close
18 |
19 | button(v-if="!loading", type='button', @click="setKey", :disabled="loading").uk-button.uk-button-primary.uk-align-right Save
20 | button(v-else, type='button', disabled).uk-button.uk-button-primary.uk-position-relative.uk-align-right
21 | .uk-position-small.uk-position-center-left(uk-spinner, uk-icon="icon: spinner; ratio: 0.8")
22 | | saving
23 |
24 |
25 |
68 |
69 |
74 |
--------------------------------------------------------------------------------
/src/components/BundleTile.vue:
--------------------------------------------------------------------------------
1 |
2 | transition(name="fade")
3 | li(v-if="bundle").uk-animation-slide-top-small
4 | .uk-card.uk-card-default
5 | .uk-card-header
6 | h3.uk-card-title.uk-text-truncate.uk-margin-remove-bottom.uk-float-left.uk-margin-small-right {{ bundle.title }}
7 |
8 | .uk-card-body
9 | p {{ bundle.description }}
10 | p(v-html="t('Contains %{no} Application(s)', { no : this.bundle.products.length })")
11 |
12 | table.uk-table.uk-table-divider.uk-table-middle.uk-table-justify
13 | thead
14 | tr
15 | th {{ t('App') }}
16 | th {{ t('Version') }}
17 | th {{ t('Info') }}
18 | tbody
19 | tr(v-for="application in bundle.products")
20 | td
21 | router-link(:to="{ name: 'details', params: { id: application.id }}") {{ application.title }}
22 | td
23 | span {{ (application.release) ? application.release.version : application.installInfo.version }}
24 | td
25 | span(v-if="isInstalled(application.id) || application.installed").uk-label {{ t('installed') }}
26 | span(v-else-if="isProcessing(application.id)", :title="t('installing')" uk-tooltip)
27 | span(uk-spinner, uk-icon="icon: spinner; ratio: 0.8")
28 | button(v-if="bundle.downloadable && installableApps.length > 0", @click="install").uk-button.uk-button-primary {{ t('install bundle') }}
29 | a(v-else-if="!bundle.downloadable && installableApps.length === 0", :href="bundle.marketplace", target="_blank").uk-button.uk-button-default {{ t('view in marketplace') }}
30 |
31 |
32 |
85 |
86 |
104 |
--------------------------------------------------------------------------------
/src/components/BundlesList.vue:
--------------------------------------------------------------------------------
1 |
2 | div
3 | .uk-position-fixed.uk-position-center(v-show="loading", uk-spinner, uk-icon="icon: spinner")
4 | ul(v-if="!loading && !failed && bundles").uk-margin-remove.uk-padding-remove
5 | Tile(v-for="bundle in bundles", :bundle="bundle", :key="bundle.id")
6 |
7 | transition(name="fade")
8 | .uk-card.uk-card-default.uk-card-body.uk-position-center(v-if="!bundles")
9 | p.uk-text-center {{ t('No Bundles') }}
10 |
11 |
12 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/src/components/List.vue:
--------------------------------------------------------------------------------
1 |
2 | div
3 | .uk-position-fixed.uk-position-center(v-show="loading", uk-spinner, uk-icon="icon: spinner")
4 | ul(v-if="!loading && !failed && applications", uk-grid)
5 | Tile(v-for="application in applications", :application="application", :key="application.id")
6 |
7 | transition(name="fade")
8 | .uk-card.uk-card-default.uk-card-body.uk-position-center(v-if="applications.length === 0 && !loading && !failed")
9 | p.uk-text-center {{ t('No apps in %{category}', { category }) }}
10 |
11 |
12 |
41 |
42 |
53 |
--------------------------------------------------------------------------------
/src/components/Navigation.vue:
--------------------------------------------------------------------------------
1 |
2 | .uk-card.uk-card-default.uk-margin-bottom
3 | .uk-card-header
4 | h1.uk-h3
5 | router-link(:to="{ name: 'index' }") {{ t('Market') }}
6 |
7 | .uk-card-body
8 | ul.uk-nav-default.uk-nav-parent-icon(uk-nav, :v-if="!loading && !failed")
9 | li
10 | router-link(:to="{ name: 'index' }") {{ t('Show all') }}
11 | li
12 | router-link(:to="{ name: 'Bundles' }") {{ t('App Bundles') }}
13 |
14 | li.uk-nav-header {{ t('Categories') }}
15 |
16 | li(v-for="category in categories")
17 | router-link(:to="{ name: 'byCategory', params: { category: category.id }}") {{ category.translations.en.name }}
18 |
19 | li(v-if="updateList.length > 0")
20 | router-link(:to="{ name: 'UpdateList' }") {{ t('Updates') }}
21 | span.uk-badge.uk-margin-small-left {{ updateList.length }}
22 |
23 | li.uk-nav-header {{ t('Settings') }}
24 |
25 | apiform
26 |
27 | li
28 | a(href="", @click.prevent="invalidateCache") {{ t('Clear cache') }}
29 |
30 |
31 |
32 |
70 |
71 |
84 |
--------------------------------------------------------------------------------
/src/components/Rating.vue:
--------------------------------------------------------------------------------
1 |
2 | ul.uk-padding-remove.uk-margin-remove.uk-inline-block(uk-tooltip, :title="overall | rating")
3 | li(v-for="n in stars").uk-inline-block
4 | span(:class="(n <= overall) ? '-on' : '-off'", uk-icon="icon: star; ratio: 0.8").star
5 |
6 |
7 |
27 |
28 |
43 |
--------------------------------------------------------------------------------
/src/components/Tile.vue:
--------------------------------------------------------------------------------
1 |
2 | transition(name="fade")
3 | li(class='uk-width-1-2@m uk-width-1-3@xl', v-if="application").uk-animation-slide-top-small
4 | .uk-card.uk-card-default
5 | .uk-card-header
6 | div(uk-grid)
7 | .uk-width-expand
8 | .uk-flex.uk-flex-middle
9 | h3.uk-card-title.uk-text-truncate.uk-margin-remove-bottom.uk-float-left.uk-margin-small-right
10 | router-link(:to="{ name: 'details', params: { id: application.id }}") {{ application.name }}
11 |
12 | p.uk-text-meta.uk-margin-remove-top
13 | span(uk-icon="icon: tag")
14 | span.category {{ application.categories[0] }}
15 | span.uk-position-bottom-right.uk-position-small(v-if="application.updateInfo").uk-box-shadow-small.uk-label.uk-label-warning.uk-margin-small-left {{ t('Update available') }}!
16 | span.uk-position-bottom-right.uk-position-small(v-if="application.installed && !application.updateInfo").uk-box-shadow-small.uk-label.uk-margin-small-left {{ t('Installed') }}!
17 |
18 | .uk-width-small.uk-text-right
19 | rating(:rating="application.rating")
20 |
21 | .uk-card-media-top
22 | router-link(:to="{ name: 'details', params: { id: application.id }}")
23 | canvas(width="1600", height="900", :style="application.screenshots[0].url | cssBackgroundImage").app-preview
24 |
25 |
26 |
45 |
46 |
64 |
--------------------------------------------------------------------------------
/src/components/UpdateList.vue:
--------------------------------------------------------------------------------
1 |
2 | div
3 | transition(name="fade")
4 | .uk-card.uk-card-default(v-if="!failed && applications")
5 | .uk-card-header
6 | h2.uk-h3 {{ t('Updates') }}
7 |
8 | .uk-card-body
9 | table.uk-table.uk-table-hover.uk-table-divider.uk-table-middle
10 | thead
11 | tr
12 | th {{ t('App') }}
13 | th {{ t('Developer') }}
14 | th {{ t('Update Info') }}
15 | th
16 | tbody
17 | tr(v-for="application in applications")
18 | td
19 | router-link(:to="{ name: 'details', params: { id: application.id }}").uk-h5 {{ application.name }}
20 | td
21 | a(:href="application.publisher.url", target="_blank") {{ application.publisher.name }}
22 | td
23 | span {{ application.installInfo.version }}
24 | span(uk-icon="icon: arrow-right").uk-margin-small-left.uk-margin-small-right
25 | select(v-model="application.updateTo" v-if="application.minorUpdate !== false && application.majorUpdate !== false")
26 | option(:value="application.minorUpdate.version" selected="selected") {{ application.minorUpdate.version }}
27 | option(:value="application.majorUpdate.version") {{ application.majorUpdate.version }}
28 | span(v-else-if="application.minorUpdate !== false") {{ application.minorUpdate.version }}
29 | input(type="hidden" v-model="application.updateTo" value="application.minorUpdate.version")
30 | span(v-else-if="application.majorUpdate !== false") {{ application.majorUpdate.version }}
31 | input(type="hidden" v-model="application.updateTo" value="application.majorUpdate.version")
32 | td
33 | button.uk-button.uk-button-primary.uk-align-right.uk-margin-remove.uk-position-relative(@click="update(application.id, application.updateTo)", :disabled="processing(application.id)")
34 | span(v-if="processing(application.id)")
35 | span.uk-position-small.uk-position-center-left(uk-spinner, uk-icon="icon: spinner; ratio: 0.8")
36 | span.uk-margin-small-left {{ t('updating') }}
37 | span(v-else)
38 | | {{ t('update') }}
39 | tr(v-if="applications.length === 0 && !loading")
40 | td(colspan="4").uk-text-center
41 | span.uk-text-primary {{ t('All apps are up to date') }}
42 | tr(v-show="loading")
43 | td(colspan="4").uk-text-center
44 | span(uk-spinner, uk-icon="icon: spinner")
45 |
46 |
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 |
--------------------------------------------------------------------------------