├── .drone.star ├── .github └── dependabot.yml ├── .gitignore ├── .phan └── config.php ├── .php-cs-fixer.dist.php ├── .scrutinizer.yml ├── CHANGELOG.md ├── CONTRIBUTING.md ├── Makefile ├── README.md ├── appinfo ├── Migrations │ ├── Version20161122085340.php │ ├── Version20161122092159.php │ ├── Version20170131134507.php │ ├── Version20170724182159.php │ ├── Version20181019151118.php │ └── Version20181022150134.php ├── app.php ├── database.xml ├── info.xml ├── routes.php └── update.php ├── composer.json ├── composer.lock ├── css ├── settings.css └── style.css ├── docs └── endpoint-v2.md ├── img ├── activity-dark.png ├── activity-dark.svg ├── activity.png ├── activity.svg ├── add-color.png ├── add-color.svg ├── change.png ├── change.svg ├── delete-color.png ├── delete-color.svg ├── move.svg └── rename.svg ├── issue_template.md ├── js ├── activitycollection.js ├── activitymodel.js ├── activitytabview.js ├── filesplugin.js ├── formatter.js ├── script.js └── settings.js ├── l10n ├── .tx │ └── config ├── af_ZA.js ├── af_ZA.json ├── ar.js ├── ar.json ├── ast.js ├── ast.json ├── az.js ├── az.json ├── be.js ├── be.json ├── bg_BG.js ├── bg_BG.json ├── bn_BD.js ├── bn_BD.json ├── bn_IN.js ├── bn_IN.json ├── bs.js ├── bs.json ├── ca.js ├── ca.json ├── ca_ES.js ├── ca_ES.json ├── cs_CZ.js ├── cs_CZ.json ├── da.js ├── da.json ├── da_DK.js ├── da_DK.json ├── de.js ├── de.json ├── de_AT.js ├── de_AT.json ├── de_CH.js ├── de_CH.json ├── de_DE.js ├── de_DE.json ├── el.js ├── el.json ├── en_GB.js ├── en_GB.json ├── eo.js ├── eo.json ├── es.js ├── es.json ├── es_AR.js ├── es_AR.json ├── es_CL.js ├── es_CL.json ├── es_CR.js ├── es_CR.json ├── es_EC.js ├── es_EC.json ├── es_ES.js ├── es_ES.json ├── es_MX.js ├── es_MX.json ├── et_EE.js ├── et_EE.json ├── eu.js ├── eu.json ├── fa.js ├── fa.json ├── fi_FI.js ├── fi_FI.json ├── fr.js ├── fr.json ├── fr_FR.js ├── fr_FR.json ├── gl.js ├── gl.json ├── gu.js ├── gu.json ├── he.js ├── he.json ├── hr.js ├── hr.json ├── hu_HU.js ├── hu_HU.json ├── ia.js ├── ia.json ├── id.js ├── id.json ├── id_ID.js ├── id_ID.json ├── is.js ├── is.json ├── it.js ├── it.json ├── ja.js ├── ja.json ├── ka_GE.js ├── ka_GE.json ├── km.js ├── km.json ├── ko.js ├── ko.json ├── ku_IQ.js ├── ku_IQ.json ├── lb.js ├── lb.json ├── lo.js ├── lo.json ├── lt_LT.js ├── lt_LT.json ├── lv.js ├── lv.json ├── mk.js ├── mk.json ├── ml_IN.js ├── ml_IN.json ├── ms_MY.js ├── ms_MY.json ├── nb_NO.js ├── nb_NO.json ├── nds.js ├── nds.json ├── nl.js ├── nl.json ├── nn_NO.js ├── nn_NO.json ├── no-php ├── oc.js ├── oc.json ├── pl.js ├── pl.json ├── pl_PL.js ├── pl_PL.json ├── pt_BR.js ├── pt_BR.json ├── pt_PT.js ├── pt_PT.json ├── ro.js ├── ro.json ├── ru.js ├── ru.json ├── ru_RU.js ├── ru_RU.json ├── sk_SK.js ├── sk_SK.json ├── sl.js ├── sl.json ├── sq.js ├── sq.json ├── sr.js ├── sr.json ├── sr@latin.js ├── sr@latin.json ├── sv.js ├── sv.json ├── ta_IN.js ├── ta_IN.json ├── th_TH.js ├── th_TH.json ├── tr.js ├── tr.json ├── ug.js ├── ug.json ├── uk.js ├── uk.json ├── uz.js ├── uz.json ├── vi.js ├── vi.json ├── zh.js ├── zh.json ├── zh_CN.js ├── zh_CN.json ├── zh_TW.js └── zh_TW.json ├── lib ├── Api.php ├── AppInfo │ └── Application.php ├── BackgroundJob │ ├── EmailNotification.php │ └── ExpireActivities.php ├── Command │ └── SendEmails.php ├── Consumer.php ├── Controller │ ├── Activities.php │ ├── EndPoint.php │ ├── Feed.php │ ├── OCSEndPoint.php │ └── Settings.php ├── Data.php ├── DataHelper.php ├── Exception │ └── InvalidFilterException.php ├── Extension │ ├── Files.php │ └── Files_Sharing.php ├── FilesHooks.php ├── FilesHooksStatic.php ├── Formatter │ ├── BaseFormatter.php │ ├── CloudIDFormatter.php │ ├── FileFormatter.php │ ├── GroupFormatter.php │ ├── IFormatter.php │ ├── UrlFormatter.php │ └── UserFormatter.php ├── GroupHelper.php ├── Hooks.php ├── HtmlTextParser.php ├── MailQueueHandler.php ├── Navigation.php ├── Parameter │ ├── Collection.php │ ├── Factory.php │ ├── IParameter.php │ └── Parameter.php ├── PersonalPanel.php ├── PlainTextParser.php ├── UserSettings.php └── ViewInfoCache.php ├── package.json ├── phpcs.xml ├── phpstan.neon ├── phpunit.xml ├── sonar-project.properties ├── templates ├── email.notification.php ├── html.notification.php ├── personal.php ├── rss.php ├── stream.app.navigation.php └── stream.body.php ├── tests ├── acceptance │ ├── config │ │ └── behat.yml │ └── features │ │ ├── apiActivity │ │ └── list.feature │ │ ├── bootstrap │ │ ├── ActivityContext.php │ │ ├── WebUIActivityContext.php │ │ └── bootstrap.php │ │ ├── lib │ │ ├── ActivityPage.php │ │ └── ActivitySettingForm.php │ │ ├── webUIActivityComments │ │ └── comments.feature │ │ ├── webUIActivityCreateUpdate │ │ ├── createFilesFolder.feature │ │ └── updateFilesFolder.feature │ │ ├── webUIActivityDeleteRestore │ │ ├── delete.feature │ │ ├── restore.feature │ │ └── restoreUsingWebUI.feature │ │ ├── webUIActivityFileMoveAndRename │ │ └── moveRename.feature │ │ ├── webUIActivitySharingExternal │ │ ├── publicLinkShare.feature │ │ ├── publicLinkSharingFederation.feature │ │ └── sharingFederation.feature │ │ ├── webUIActivitySharingInternal │ │ └── sharingInternal.feature │ │ └── webUIActivityTags │ │ └── tags.feature ├── drone │ └── check-daily-update.sh ├── js │ ├── activitycollectionSpec.js │ ├── activitytabviewSpec.js │ ├── karma.config.js │ └── scriptSpec.js └── unit │ ├── ApiTest.php │ ├── AppInfo │ ├── AppTest.php │ └── ApplicationTest.php │ ├── BackgroundJob │ ├── EmailNotificationTest.php │ └── ExpireActivitiesTest.php │ ├── Command │ └── SendEmailsTest.php │ ├── ConsumerTest.php │ ├── Controller │ ├── ActivitiesTest.php │ ├── FeedTest.php │ ├── OCSEndPointTest.php │ └── SettingsTest.php │ ├── DataDeleteActivitiesTest.php │ ├── DataHelperTest.php │ ├── DataTest.php │ ├── FilesHooksTest.php │ ├── Formatter │ ├── BaseFormatterTest.php │ ├── CloudIDFormatterTest.php │ ├── FileFormatterTest.php │ ├── GroupFormatterTest.php │ ├── UrlFormatterTest.php │ └── UserFormatterTest.php │ ├── GroupHelperTest.php │ ├── HooksDeleteUserTest.php │ ├── MailQueueHandlerTest.php │ ├── Mock │ └── Extension.php │ ├── NavigationTest.php │ ├── Parameter │ ├── CollectionTest.php │ ├── FactoryTest.php │ └── ParameterTest.php │ ├── Parsers │ └── HtmlTextParserTest.php │ ├── PersonalTest.php │ ├── Template │ └── RssTest.php │ ├── TestCase.php │ ├── UserSettingsTest.php │ ├── ViewInfoCacheTest.php │ └── bootstrap.php ├── vendor-bin ├── behat │ └── composer.json ├── owncloud-codestyle │ └── composer.json ├── phan │ └── composer.json ├── php_codesniffer │ └── composer.json └── phpstan │ └── composer.json └── yarn.lock /.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 | - package-ecosystem: npm 10 | directory: "/" 11 | schedule: 12 | interval: daily 13 | time: "22:00" 14 | open-pull-requests-limit: 10 15 | ignore: 16 | - dependency-name: karma 17 | versions: 18 | - 6.0.3 19 | - 6.0.4 20 | - 6.1.0 21 | - 6.1.1 22 | - 6.1.2 23 | - 6.2.0 24 | - 6.3.0 25 | - 6.3.1 26 | - dependency-name: jasmine-core 27 | versions: 28 | - 3.7.0 29 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # just sane ignores 2 | .*.sw[po] 3 | *.bak 4 | *.BAK 5 | *~ 6 | *.orig 7 | *.class 8 | .cvsignore 9 | Thumbs.db 10 | *.py[co] 11 | _darcs/* 12 | CVS/* 13 | .svn/* 14 | RCS/* 15 | *.backup* 16 | 17 | # kdevelop 18 | .kdev 19 | *.kdev4 20 | *.kate-swp 21 | 22 | # Lokalize 23 | *lokalize* 24 | 25 | # eclipse 26 | .project 27 | .settings 28 | 29 | # netbeans 30 | nbproject 31 | 32 | # phpStorm 33 | .idea 34 | *.iml 35 | 36 | # geany 37 | *.geany 38 | 39 | # Cloud9IDE 40 | .settings.xml 41 | .c9revisions 42 | 43 | # vim ex mode 44 | .vimrc 45 | 46 | # Mac OS 47 | .DS_Store 48 | 49 | # WebFinger 50 | .well-known 51 | /.buildpath 52 | 53 | # Tests - auto-generated files 54 | /tests/coverage* 55 | /tests/acceptance/output* 56 | /tests/output 57 | .phpunit.result.cache 58 | node_modules 59 | vendor-bin/**/composer.lock 60 | vendor/ 61 | /build/ 62 | tests/js/package-lock.json 63 | 64 | # php-cs-fixer 65 | .php-cs-fixer.cache 66 | # old php-cs-fixer v2 67 | .php_cs.cache 68 | 69 | # SonarCloud scanner 70 | .scannerwork 71 | 72 | # drone CI is in .drone.star, do not let someone accidentally commit a local .drone.yml 73 | .drone.yml 74 | -------------------------------------------------------------------------------- /.php-cs-fixer.dist.php: -------------------------------------------------------------------------------- 1 | notPath('templates/html.notification.php') 4 | ->in(__DIR__); 5 | 6 | $config = new OC\CodingStandard\Config(); 7 | $config->setFinder($finder); 8 | return $config; 9 | -------------------------------------------------------------------------------- /.scrutinizer.yml: -------------------------------------------------------------------------------- 1 | filter: 2 | excluded_paths: 3 | - '3rdparty/*' 4 | - 'js/jquery*' 5 | - 'l10n/*' 6 | - 'tests/*' 7 | 8 | imports: 9 | - javascript 10 | - php 11 | 12 | tools: 13 | external_code_coverage: 14 | timeout: 7200 # Timeout in seconds: 2 hours 15 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Submitting issues 2 | 3 | If you have questions about how to install or use ownCloud, please direct these to the [mailing list][mailinglist] or our [forum][forum]. We are also available on [IRC][irc]. 4 | 5 | ### Short version 6 | 7 | * The [**issue template can be found here**][template]. Please always use the issue template when reporting issues. 8 | 9 | ### Guidelines 10 | * Please search the existing issues first, it's likely that your issue was already reported or even fixed. 11 | - Go to one of the repositories, click "issues" and type any word in the top search/command bar. 12 | - You can also filter by appending e. g. "state:open" to the search string. 13 | - More info on [search syntax within github](https://help.github.com/articles/searching-issues) 14 | * This repository ([activity](https://github.com/owncloud/activity/issues)) is *only* for issues within the ownCloud activity code. 15 | * __SECURITY__: Report any potential security bug to security@owncloud.com following our [security policy](https://owncloud.org/security/) instead of filing an issue in our bug tracker 16 | * Report the issue using our [template][template], it includes all the information we need to track down the issue. 17 | 18 | Help us to maximize the effort we can spend fixing issues and adding new features, by not reporting duplicate issues. 19 | 20 | [template]: https://raw.github.com/owncloud/core/master/issue_template.md 21 | [mailinglist]: https://mailman.owncloud.org/mailman/listinfo/owncloud 22 | [forum]: https://forum.owncloud.org/ 23 | [irc]: https://webchat.freenode.net/?channels=owncloud&uio=d4 24 | 25 | ### Contribute Code and translations 26 | Please check [core's contribution guidelines](https://github.com/owncloud/core/blob/master/CONTRIBUTING.md) for further information about contributing code and translations. 27 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Activity App 2 | =============== 3 | 4 | The ownCloud Activity application enables users to not only get a summarized overview of all file and folder events in their ownCloud, but also to receive notifications for such via email. The user can configure their individual Activity preferences in their personal settings and can decide in detail which file or folder actions should be listed in the Activity stream (accessible via the app launcher) and also for which file or folder actions the users wants to receive email notifications. The bulk email notifications can either be sent out hourly, daily or weekly to fit the specific needs of the individual user. 5 | 6 | From creation of new files or folders, to file or folder changes, updates, restores from trash bin, sharing activities, comments, tags and downloads from public share links - the ownCloud Activity app gathers all file or folder related actions in one place for the user to review. For users with lots of activity it is possible to limit the Activity stream to 'Favorites' in order to avoid noise. Furthermore the application provides filters to give users the means to maintain overview by reducing entries to relevant information. 7 | 8 | And there you have it - a complete overview of all file and folder activities in your ownCloud with the additional ability to receive activity notifications via email in a time interval of your choice. Never again miss an important event related to content in ownCloud and always be up-to-date on all activities of your files and folders. 9 | 10 | ## QA metrics on master branch: 11 | 12 | [![Build Status](https://drone.owncloud.com/api/badges/owncloud/activity/status.svg?branch=master)](https://drone.owncloud.com/owncloud/activity) 13 | [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=owncloud_activity&metric=alert_status)](https://sonarcloud.io/dashboard?id=owncloud_activity) 14 | [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=owncloud_activity&metric=security_rating)](https://sonarcloud.io/dashboard?id=owncloud_activity) 15 | [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=owncloud_activity&metric=coverage)](https://sonarcloud.io/dashboard?id=owncloud_activity) 16 | 17 | # Add new activities / types for other apps 18 | 19 | With the activity manager extensions can be registered which allow any app to extend the activity behavior. 20 | 21 | In order to implement an extension create a class which implements the interface `\OCP\Activity\IExtension`. 22 | 23 | The PHPDoc comments on each method should give enough information to the developer on how to implement them. 24 | -------------------------------------------------------------------------------- /appinfo/Migrations/Version20161122085340.php: -------------------------------------------------------------------------------- 1 | hasTable("{$prefix}activity")) { 13 | return; 14 | } 15 | 16 | // not that valid .... 17 | $schemaReader = new MDB2SchemaReader(\OC::$server->getConfig(), \OC::$server->getDatabaseConnection()->getDatabasePlatform()); 18 | $schemaReader->loadSchemaFromFile(__DIR__ . '/../database.xml', $schema); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /appinfo/Migrations/Version20161122092159.php: -------------------------------------------------------------------------------- 1 | getTable($tableName); 19 | // we only apply this step if the columns is not yet a CLOB 20 | /* @phan-suppress-next-line PhanDeprecatedClassConstant */ 21 | if ($table->getColumn('subjectparams')->getType() === Type::getType(Type::TEXT)) { 22 | return; 23 | } 24 | 25 | if (\OC::$server->getDatabaseConnection()->getDatabasePlatform() instanceof OraclePlatform) { 26 | return; 27 | } 28 | $table = $schema->getTable($tableName); 29 | $table->changeColumn('subjectparams', ['type' => Type::getType('text')]); 30 | $table->changeColumn('messageparams', ['type' => Type::getType('text')]); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /appinfo/Migrations/Version20170131134507.php: -------------------------------------------------------------------------------- 1 | getDatabasePlatform() instanceof OraclePlatform) { 14 | $tableName = "*PREFIX*activity"; 15 | 16 | $tableName = $connection->getDatabasePlatform()->quoteIdentifier($tableName); 17 | return [ 18 | "ALTER TABLE $tableName ADD (\"tmpsubjectparams\" CLOB, \"tmpmessageparams\" CLOB)", 19 | "UPDATE $tableName SET \"tmpsubjectparams\"=\"subjectparams\", \"tmpmessageparams\"=\"messageparams\"", 20 | "COMMIT", 21 | "ALTER TABLE $tableName DROP COLUMN \"subjectparams\"", 22 | "ALTER TABLE $tableName DROP COLUMN \"messageparams\"", 23 | "ALTER TABLE $tableName RENAME COLUMN \"tmpsubjectparams\" TO \"subjectparams\"", 24 | "ALTER TABLE $tableName RENAME COLUMN \"tmpmessageparams\" TO \"messageparams\"" 25 | ]; 26 | } 27 | return []; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /appinfo/Migrations/Version20170724182159.php: -------------------------------------------------------------------------------- 1 | getTable("{$prefix}activity"); 22 | $activityIdColumn = $activityTable->getColumn('activity_id'); 23 | /* @phan-suppress-next-line PhanDeprecatedClassConstant */ 24 | if ($activityIdColumn->getType()->getName() !== Type::BIGINT) { 25 | /* @phan-suppress-next-line PhanDeprecatedClassConstant */ 26 | $activityIdColumn->setType(Type::getType(Type::BIGINT)); 27 | $activityIdColumn->setOptions(['length' => 20]); 28 | } 29 | 30 | $objectIdColumn = $activityTable->getColumn('object_id'); 31 | /* @phan-suppress-next-line PhanDeprecatedClassConstant */ 32 | if ($objectIdColumn->getType()->getName() !== Type::BIGINT) { 33 | /* @phan-suppress-next-line PhanDeprecatedClassConstant */ 34 | $objectIdColumn->setType(Type::getType(Type::BIGINT)); 35 | $objectIdColumn->setOptions(['length' => 20]); 36 | } 37 | 38 | $activityMqTable = $schema->getTable("{$prefix}activity_mq"); 39 | $mailIdColumn = $activityMqTable->getColumn('mail_id'); 40 | /* @phan-suppress-next-line PhanDeprecatedClassConstant */ 41 | if ($mailIdColumn->getType()->getName() !== Type::BIGINT) { 42 | /* @phan-suppress-next-line PhanDeprecatedClassConstant */ 43 | $mailIdColumn->setType(Type::getType(Type::BIGINT)); 44 | $mailIdColumn->setOptions(['length' => 20]); 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /appinfo/Migrations/Version20181019151118.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\activity\Migrations; 23 | 24 | use Doctrine\DBAL\Schema\Schema; 25 | use OCP\Migration\ISchemaMigration; 26 | 27 | /** 28 | * Adds migrations that were missing when running update. 29 | * 30 | * - set type to "longtext" for "subjectparams" and "messageparams" by increasing length 31 | * 32 | */ 33 | class Version20181019151118 implements ISchemaMigration { 34 | /** 35 | * @param Schema $schema 36 | * @param array $options 37 | */ 38 | public function changeSchema(Schema $schema, array $options) { 39 | $prefix = $options['tablePrefix']; 40 | 41 | $activityTable = $schema->getTable("{$prefix}activity"); 42 | 43 | if (!$activityTable->hasIndex('activity_time')) { 44 | $activityTable->addIndex( 45 | ['timestamp'], 46 | 'activity_time' 47 | ); 48 | } 49 | 50 | if (!$activityTable->hasIndex('activity_object')) { 51 | $activityTable->addIndex( 52 | ['object_type', 'object_id'], 53 | 'activity_object' 54 | ); 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /appinfo/Migrations/Version20181022150134.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\activity\Migrations; 23 | 24 | use OCP\Migration\ISqlMigration; 25 | use Doctrine\DBAL\Platforms\MySqlPlatform; 26 | use OCP\IDBConnection; 27 | 28 | /** 29 | * Adds migrations that were missing when running update. 30 | * 31 | * - set type to "longtext" for "subjectparams" and "messageparams" by increasing length 32 | * 33 | */ 34 | class Version20181022150134 implements ISqlMigration { 35 | /** 36 | * @param IDBConnection $connection 37 | * @return array|string[] 38 | */ 39 | public function sql(IDBConnection $connection) { 40 | $platform = $connection->getDatabasePlatform(); 41 | $tableName = "*PREFIX*activity"; 42 | $tableName = $connection->getDatabasePlatform()->quoteIdentifier($tableName); 43 | 44 | if ($platform instanceof MySqlPlatform) { 45 | $sqls = [ 46 | "ALTER TABLE $tableName MODIFY COLUMN `subjectparams` LONGTEXT NOT NULL", 47 | "ALTER TABLE $tableName MODIFY COLUMN `messageparams` LONGTEXT NULL", 48 | ]; 49 | } else { 50 | $sqls = []; 51 | } 52 | 53 | return $sqls; 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /appinfo/app.php: -------------------------------------------------------------------------------- 1 | 4 | * @author Joas Schilling 5 | * 6 | * @copyright Copyright (c) 2016, ownCloud, Inc. 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 | /* @phan-suppress-next-line PhanUndeclaredClassMethod */ 24 | $app = new \OCA\Activity\AppInfo\Application(); 25 | /* @phan-suppress-next-line PhanUndeclaredClassMethod */ 26 | $app->registerActivityConsumer(); 27 | /* @phan-suppress-next-line PhanUndeclaredClassMethod */ 28 | $app->registerHooksAndEvents(); 29 | -------------------------------------------------------------------------------- /appinfo/routes.php: -------------------------------------------------------------------------------- 1 | 4 | * @author Joas Schilling 5 | * @author Lukas Reschke 6 | * 7 | * @copyright Copyright (c) 2016, ownCloud, Inc. 8 | * @license AGPL-3.0 9 | * 10 | * This code is free software: you can redistribute it and/or modify 11 | * it under the terms of the GNU Affero General Public License, version 3, 12 | * as published by the Free Software Foundation. 13 | * 14 | * This program is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | * GNU Affero General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU Affero General Public License, version 3, 20 | * along with this program. If not, see 21 | * 22 | */ 23 | 24 | use OCP\API; 25 | 26 | /* @phan-suppress-next-line PhanUndeclaredClassMethod */ 27 | $app = new \OCA\Activity\AppInfo\Application(); 28 | 29 | // Register an OCS API call 30 | //API::register( 31 | // 'get', 32 | // '/apps/activity/api/v2/activity', 33 | // array($application->getContainer()->query('OCA\Activity\Controller\OCSEndPoint'), 'getDefault'), 34 | // 'activity' 35 | //); 36 | //API::register( 37 | // 'get', 38 | // '/apps/activity/api/v2/activity/{filter}', 39 | // array($application->getContainer()->query('OCA\Activity\Controller\OCSEndPoint'), 'getFilter'), 40 | // 'activity' 41 | //); 42 | /* @phan-suppress-next-line PhanUndeclaredClassInCallable */ 43 | API::register( 44 | 'get', 45 | '/cloud/activity', 46 | ['OCA\Activity\Api', 'get'], 47 | 'activity' 48 | ); 49 | 50 | /* @phan-suppress-next-line PhanUndeclaredClassMethod,PhanUndeclaredThis */ 51 | $app->registerRoutes($this, ['routes' => [ 52 | ['name' => 'Settings#personal', 'url' => '/settings', 'verb' => 'POST'], 53 | ['name' => 'Settings#feed', 'url' => '/settings/feed', 'verb' => 'POST'], 54 | ['name' => 'Activities#showList', 'url' => '/', 'verb' => 'GET'], 55 | ['name' => 'Feed#show', 'url' => '/rss.php', 'verb' => 'GET'], 56 | ['name' => 'EndPoint#getDefault', 'url' => '/api/v2/activity', 'verb' => 'GET'], 57 | ['name' => 'EndPoint#getFilter', 'url' => '/api/v2/activity/{filter}', 'verb' => 'GET'], 58 | ]]); 59 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "owncloud/activity", 3 | "config" : { 4 | "platform": { 5 | "php": "7.3" 6 | }, 7 | "allow-plugins": { 8 | "bamarni/composer-bin-plugin": true 9 | } 10 | }, 11 | "require": { 12 | }, 13 | "require-dev": { 14 | "bamarni/composer-bin-plugin": "^1.8" 15 | }, 16 | "extra": { 17 | "bamarni-bin": { 18 | "bin-links": false 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /css/settings.css: -------------------------------------------------------------------------------- 1 | table.activitysettings { 2 | max-width: 550px; 3 | white-space: normal; 4 | } 5 | 6 | table.activitysettings th.small { 7 | width: 5em; 8 | } 9 | 10 | table.activitysettings tbody tr { 11 | height: 2.5em; 12 | } 13 | 14 | table.activitysettings th.small, 15 | table.activitysettings td.small { 16 | text-align: center; 17 | } 18 | 19 | table.activitysettings td.small label { 20 | width: 100%; 21 | height: 100%; 22 | display: block; 23 | } 24 | -------------------------------------------------------------------------------- /img/activity-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owncloud/activity/e8f217dbe651d9472f2cb9aa010e41d5b8547cbd/img/activity-dark.png -------------------------------------------------------------------------------- /img/activity-dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /img/activity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owncloud/activity/e8f217dbe651d9472f2cb9aa010e41d5b8547cbd/img/activity.png -------------------------------------------------------------------------------- /img/activity.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | image/svg+xml 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /img/add-color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owncloud/activity/e8f217dbe651d9472f2cb9aa010e41d5b8547cbd/img/add-color.png -------------------------------------------------------------------------------- /img/add-color.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | image/svg+xml 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /img/change.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owncloud/activity/e8f217dbe651d9472f2cb9aa010e41d5b8547cbd/img/change.png -------------------------------------------------------------------------------- /img/change.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | image/svg+xml 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /img/delete-color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owncloud/activity/e8f217dbe651d9472f2cb9aa010e41d5b8547cbd/img/delete-color.png -------------------------------------------------------------------------------- /img/delete-color.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | image/svg+xml 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /img/move.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /img/rename.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /issue_template.md: -------------------------------------------------------------------------------- 1 | 8 | ### Steps to reproduce 9 | 1. 10 | 2. 11 | 3. 12 | 13 | ### Expected behaviour 14 | Tell us what should happen 15 | 16 | ### Actual behaviour 17 | Tell us what happens instead 18 | 19 | ### Server configuration 20 | **Operating system**: 21 | 22 | **Web server:** 23 | 24 | **Database:** 25 | 26 | **PHP version:** 27 | 28 | **ownCloud version:** (see ownCloud admin page) 29 | 30 | **Where did you install ownCloud from:** 31 | 32 | **Signing status (ownCloud 9.0 and above):** 33 | 34 | ``` 35 | Login as admin user into your ownCloud and access 36 | http://example.com/index.php/settings/integrity/failed 37 | paste the results here. 38 | ``` 39 | 40 | **List of activated apps:** 41 | 42 | ``` 43 | If you have access to your command line run e.g.: 44 | sudo -u www-data php occ app:list 45 | from within your ownCloud installation folder 46 | ``` 47 | 48 | **The content of config/config.php:** 49 | 50 | ``` 51 | If you have access to your command line run e.g.: 52 | sudo -u www-data php occ config:list system 53 | from within your ownCloud installation folder 54 | 55 | or 56 | 57 | Insert your config.php content here 58 | (Without the database password, passwordsalt and secret) 59 | ``` 60 | 61 | **Are you using external storage, if yes which one:** local/smb/sftp/... 62 | 63 | **Are you using encryption:** yes/no 64 | 65 | **Are you using an external user-backend, if yes which one:** LDAP/ActiveDirectory/Webdav/... 66 | 67 | ### Client configuration 68 | **Browser:** 69 | 70 | **Operating system:** 71 | 72 | ### Logs 73 | 74 | #### ownCloud log (data/owncloud.log) 75 | ``` 76 | Insert your ownCloud log here 77 | ``` 78 | 79 | #### Browser log 80 | ``` 81 | Insert your browser log here, this could for example include: 82 | 83 | a) The javascript console log 84 | b) The network log 85 | c) ... 86 | ``` 87 | -------------------------------------------------------------------------------- /js/activitymodel.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 3 | * 4 | * This file is licensed under the Affero General Public License version 3 5 | * or later. 6 | * 7 | * See the COPYING-README file. 8 | * 9 | */ 10 | 11 | (function() { 12 | /** 13 | * @class OCA.Activity.ActivityModel 14 | * @classdesc 15 | * 16 | * Displays activity information for a given file 17 | * 18 | */ 19 | var ActivityModel = OC.Backbone.Model.extend(/** @lends OCA.Activity.ActivityModel.prototype */{ 20 | /** 21 | * 22 | * @returns int UNIX milliseconds timestamp 23 | */ 24 | getUnixMilliseconds: function() { 25 | if (_.isUndefined(this.unixMilliseconds)) { 26 | this.unixMilliseconds = moment(this.get('datetime')).valueOf(); 27 | } 28 | return this.unixMilliseconds; 29 | }, 30 | 31 | /** 32 | * @returns string E.g. "seconds ago" 33 | */ 34 | getRelativeDate: function () { 35 | return OC.Util.relativeModifiedDate(this.getUnixMilliseconds()); 36 | }, 37 | 38 | /** 39 | * @returns string E.g. "April 26, 2016 10:53 AM" 40 | */ 41 | getFullDate: function () { 42 | return OC.Util.formatDate(this.getUnixMilliseconds()); 43 | } 44 | }); 45 | 46 | OCA.Activity = OCA.Activity || {}; 47 | OCA.Activity.ActivityModel = ActivityModel; 48 | })(); 49 | 50 | -------------------------------------------------------------------------------- /js/filesplugin.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 3 | * 4 | * This file is licensed under the Affero General Public License version 3 5 | * or later. 6 | * 7 | * See the COPYING-README file. 8 | * 9 | */ 10 | 11 | (function(OCA) { 12 | 13 | var FilesPlugin = { 14 | attach: function(fileList) { 15 | fileList.registerTabView(new OCA.Activity.ActivityTabView({order: -50})); 16 | } 17 | }; 18 | 19 | OC.Plugins.register('OCA.Files.FileList', FilesPlugin); 20 | 21 | })(OCA); 22 | 23 | -------------------------------------------------------------------------------- /js/settings.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | function saveSettings() { 3 | OC.msg.startSaving('#activity_notifications_msg'); 4 | var post = $('#activity_notifications').serialize(); 5 | 6 | $.post(OC.generateUrl('/apps/activity/settings'), post, function(response) { 7 | OC.msg.finishedSuccess('#activity_notifications_msg', response.data.message); 8 | }); 9 | } 10 | 11 | var $activityNotifications = $('#activity_notifications'); 12 | $activityNotifications.find('input[type=checkbox]').change(saveSettings); 13 | 14 | $activityNotifications.find('select').change(saveSettings); 15 | 16 | $activityNotifications.find('.activity_select_group').on('click', function() { 17 | var $selectGroup = '#activity_notifications .' + $(this).attr('data-select-group'); 18 | var $filteredBoxes = $($selectGroup).not(':disabled'); 19 | var $checkedBoxes = $filteredBoxes.filter(':checked').length; 20 | 21 | $filteredBoxes.prop('checked', true); 22 | if ($checkedBoxes === $filteredBoxes.filter(':checked').length) { 23 | // All values were already selected, so invert it 24 | $filteredBoxes.prop('checked', false); 25 | } 26 | 27 | saveSettings(); 28 | }); 29 | }); 30 | -------------------------------------------------------------------------------- /l10n/.tx/config: -------------------------------------------------------------------------------- 1 | [main] 2 | host = https://www.transifex.com 3 | lang_map = ja_JP: ja 4 | 5 | [o:owncloud-org:p:owncloud:r:activity] 6 | file_filter = /activity.po 7 | source_file = templates/activity.pot 8 | source_lang = en 9 | type = PO 10 | -------------------------------------------------------------------------------- /l10n/af_ZA.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activities" : "Aktiwiteite", 5 | "Error loading activities" : "Aktiwiteit laaifout", 6 | "No activities" : "Geen aktiwiteite", 7 | "Load more activities" : "Laai nog aktiwiteite", 8 | ", " : ", ", 9 | "{parameterList} and {lastParameter}" : "{parameterList} en {lastParameter}", 10 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} en nog {linkStart}%n{linkEnd}","{parameterList} en nog {linkStart}%n{linkEnd}"], 11 | "in {directory}" : "in {directory}", 12 | "This stream will show events like additions, changes & shares" : "Gebeure soos toevoegings, veranderinge en delings word in hierdie stroom vertoon", 13 | "There are no events for this filter" : "Daar is geen gebeure vir hierdie filter", 14 | "Today" : "Vandag", 15 | "Yesterday" : "Gister", 16 | "Personal activity feed for %s" : "Parsoonlike aktiwiteitsvoer vit %s", 17 | "Your feed URL is invalid" : "U voerbronadres is ongeldig", 18 | "Your settings have been updated." : "U instellings is bygewerk.", 19 | "Mail" : "Pos", 20 | "Stream" : "Stroom", 21 | "\"remote user\"" : "“afstandsgebruiker”", 22 | "Activity notification" : "Aktiwiteitskennisgewing", 23 | "All Activities" : "Alle Aktiwiteite", 24 | "Activities by you" : "Aktiwiteite deur u", 25 | "Activities by others" : "Aktiwiteite deur ander", 26 | "%s and %s" : "%s en %s", 27 | "Hello %s," : "Dag %s,", 28 | "You are receiving this email because the following things happened at %s" : "U ontvang hierdie e-pos na aanleiding van die volgende gebeure by %s", 29 | "* %1$s - %2$s" : "* %1$s - %2$s", 30 | "_* and %n more _::_* and %n more _" : ["* en nog %n ","* en nog %n "], 31 | "Activity" : "Aktiwiteit", 32 | "List your own file actions in the stream" : "Lys u eie lêeraksies in die stroom", 33 | "Notify about your own actions via email" : "Stel in kennis oor u eie aksies d.m.v. e-pos", 34 | "You need to set up your email address before you can receive notification emails." : "U moet u e-posadres opstel alvorens u kennisgewings per e-pos kan ontvang.", 35 | "Send emails:" : "Stuur e-pos:", 36 | "As soon as possible" : "So gou as moontlik", 37 | "Hourly" : "Uurliks", 38 | "Daily" : "Daagliks", 39 | "Weekly" : "Weekliks", 40 | "Activity feed" : "Aktiwiteitvoer", 41 | "Enable RSS feed" : "Aktiveer RSS-voer", 42 | "No activity yet" : "Nog geen aktiwiteite", 43 | "No more events to load" : "Geen meer gebeure om te laai", 44 | "Files" : "Lêers" 45 | }, 46 | "nplurals=2; plural=(n != 1);"); 47 | -------------------------------------------------------------------------------- /l10n/af_ZA.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activities" : "Aktiwiteite", 3 | "Error loading activities" : "Aktiwiteit laaifout", 4 | "No activities" : "Geen aktiwiteite", 5 | "Load more activities" : "Laai nog aktiwiteite", 6 | ", " : ", ", 7 | "{parameterList} and {lastParameter}" : "{parameterList} en {lastParameter}", 8 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} en nog {linkStart}%n{linkEnd}","{parameterList} en nog {linkStart}%n{linkEnd}"], 9 | "in {directory}" : "in {directory}", 10 | "This stream will show events like additions, changes & shares" : "Gebeure soos toevoegings, veranderinge en delings word in hierdie stroom vertoon", 11 | "There are no events for this filter" : "Daar is geen gebeure vir hierdie filter", 12 | "Today" : "Vandag", 13 | "Yesterday" : "Gister", 14 | "Personal activity feed for %s" : "Parsoonlike aktiwiteitsvoer vit %s", 15 | "Your feed URL is invalid" : "U voerbronadres is ongeldig", 16 | "Your settings have been updated." : "U instellings is bygewerk.", 17 | "Mail" : "Pos", 18 | "Stream" : "Stroom", 19 | "\"remote user\"" : "“afstandsgebruiker”", 20 | "Activity notification" : "Aktiwiteitskennisgewing", 21 | "All Activities" : "Alle Aktiwiteite", 22 | "Activities by you" : "Aktiwiteite deur u", 23 | "Activities by others" : "Aktiwiteite deur ander", 24 | "%s and %s" : "%s en %s", 25 | "Hello %s," : "Dag %s,", 26 | "You are receiving this email because the following things happened at %s" : "U ontvang hierdie e-pos na aanleiding van die volgende gebeure by %s", 27 | "* %1$s - %2$s" : "* %1$s - %2$s", 28 | "_* and %n more _::_* and %n more _" : ["* en nog %n ","* en nog %n "], 29 | "Activity" : "Aktiwiteit", 30 | "List your own file actions in the stream" : "Lys u eie lêeraksies in die stroom", 31 | "Notify about your own actions via email" : "Stel in kennis oor u eie aksies d.m.v. e-pos", 32 | "You need to set up your email address before you can receive notification emails." : "U moet u e-posadres opstel alvorens u kennisgewings per e-pos kan ontvang.", 33 | "Send emails:" : "Stuur e-pos:", 34 | "As soon as possible" : "So gou as moontlik", 35 | "Hourly" : "Uurliks", 36 | "Daily" : "Daagliks", 37 | "Weekly" : "Weekliks", 38 | "Activity feed" : "Aktiwiteitvoer", 39 | "Enable RSS feed" : "Aktiveer RSS-voer", 40 | "No activity yet" : "Nog geen aktiwiteite", 41 | "No more events to load" : "Geen meer gebeure om te laai", 42 | "Files" : "Lêers" 43 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 44 | } -------------------------------------------------------------------------------- /l10n/ast.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activities" : "Actividaes", 5 | "Error loading activities" : "Fallu cargando les actividaes", 6 | "No activities" : "Nun hai actividaes", 7 | "Load more activities" : "Cargar más actividaes", 8 | ", " : ", ", 9 | "{parameterList} and {lastParameter}" : "{parameterList} y {lastParameter}", 10 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} y {linkStart}%n mas{linkEnd}","{parameterList} y {linkStart}%n mas{linkEnd}"], 11 | "in {directory}" : "en {directory}", 12 | "This stream will show events like additions, changes & shares" : "Esti fluxu va amosar eventos como los amiestos, cambeos y acciones", 13 | "There are no events for this filter" : "Nun hai eventos nesti filtru", 14 | "Today" : "Güei", 15 | "Yesterday" : "Ayeri", 16 | "Personal activity feed for %s" : "Feed d'actividá personal pa %s", 17 | "Your feed URL is invalid" : "La so URL del feed nun ye válida", 18 | "Your settings have been updated." : "Anováronse los tos axustes.", 19 | "Mail" : "Corréu", 20 | "Stream" : "Fluxu de rede", 21 | "\"remote user\"" : "\"usuariu remotu\"", 22 | "Activity notification" : "Notificación d'actividá", 23 | "All Activities" : "Toles actividaes", 24 | "Activities by you" : "Actividaes propies", 25 | "Activities by others" : "Actividaes d'otros", 26 | "%s and %s" : "%s y %s", 27 | "Hello %s," : "Hola %s,", 28 | "You are receiving this email because the following things happened at %s" : "Tas recibiendo esti corréu electrónicu porque les siguientes coses asocedieron en %s", 29 | "* %1$s - %2$s" : "* %1$s - %2$s", 30 | "_* and %n more _::_* and %n more _" : ["* y %n más","* y %n más"], 31 | "Activity" : "Actividá", 32 | "List your own file actions in the stream" : "Llista les tos aiciones nel to fluxu", 33 | "Notify about your own actions via email" : "Notificar tocante a les mios aiciones vía email", 34 | "You need to set up your email address before you can receive notification emails." : "Necesites configurar la to direición de corréu enantes que puedas recibir correos de notificación", 35 | "Send emails:" : "Unviar correos:", 36 | "Hourly" : "Cada hora", 37 | "Daily" : "Caldía", 38 | "Weekly" : "Selmanalmente", 39 | "Activity feed" : "Feed d'actividá", 40 | "Enable RSS feed" : "Habilitar feed RSS", 41 | "No activity yet" : "Entá nun hai actividá", 42 | "No more events to load" : "Nun hai eventos a cargar", 43 | "Files" : "Ficheros" 44 | }, 45 | "nplurals=2; plural=(n != 1);"); 46 | -------------------------------------------------------------------------------- /l10n/ast.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activities" : "Actividaes", 3 | "Error loading activities" : "Fallu cargando les actividaes", 4 | "No activities" : "Nun hai actividaes", 5 | "Load more activities" : "Cargar más actividaes", 6 | ", " : ", ", 7 | "{parameterList} and {lastParameter}" : "{parameterList} y {lastParameter}", 8 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} y {linkStart}%n mas{linkEnd}","{parameterList} y {linkStart}%n mas{linkEnd}"], 9 | "in {directory}" : "en {directory}", 10 | "This stream will show events like additions, changes & shares" : "Esti fluxu va amosar eventos como los amiestos, cambeos y acciones", 11 | "There are no events for this filter" : "Nun hai eventos nesti filtru", 12 | "Today" : "Güei", 13 | "Yesterday" : "Ayeri", 14 | "Personal activity feed for %s" : "Feed d'actividá personal pa %s", 15 | "Your feed URL is invalid" : "La so URL del feed nun ye válida", 16 | "Your settings have been updated." : "Anováronse los tos axustes.", 17 | "Mail" : "Corréu", 18 | "Stream" : "Fluxu de rede", 19 | "\"remote user\"" : "\"usuariu remotu\"", 20 | "Activity notification" : "Notificación d'actividá", 21 | "All Activities" : "Toles actividaes", 22 | "Activities by you" : "Actividaes propies", 23 | "Activities by others" : "Actividaes d'otros", 24 | "%s and %s" : "%s y %s", 25 | "Hello %s," : "Hola %s,", 26 | "You are receiving this email because the following things happened at %s" : "Tas recibiendo esti corréu electrónicu porque les siguientes coses asocedieron en %s", 27 | "* %1$s - %2$s" : "* %1$s - %2$s", 28 | "_* and %n more _::_* and %n more _" : ["* y %n más","* y %n más"], 29 | "Activity" : "Actividá", 30 | "List your own file actions in the stream" : "Llista les tos aiciones nel to fluxu", 31 | "Notify about your own actions via email" : "Notificar tocante a les mios aiciones vía email", 32 | "You need to set up your email address before you can receive notification emails." : "Necesites configurar la to direición de corréu enantes que puedas recibir correos de notificación", 33 | "Send emails:" : "Unviar correos:", 34 | "Hourly" : "Cada hora", 35 | "Daily" : "Caldía", 36 | "Weekly" : "Selmanalmente", 37 | "Activity feed" : "Feed d'actividá", 38 | "Enable RSS feed" : "Habilitar feed RSS", 39 | "No activity yet" : "Entá nun hai actividá", 40 | "No more events to load" : "Nun hai eventos a cargar", 41 | "Files" : "Ficheros" 42 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 43 | } -------------------------------------------------------------------------------- /l10n/az.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activities" : "Fəaliyyətlər", 5 | "Error loading activities" : "Fəaliyyət yüklənərkən xəta", 6 | "No activities" : "Fəaliyyət yoxdur", 7 | "Load more activities" : "Daha çox fəaliyyət yüklə", 8 | ", " : ",", 9 | "{parameterList} and {lastParameter}" : "{parameterList} və {lastParameter}", 10 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} və {linkStart}%n daha{linkEnd}","{parameterList} və {linkStart}%n daha{linkEnd}"], 11 | "in {directory}" : "{directory} qovluğunda", 12 | "This stream will show events like additions, changes & shares" : "Bu axın əlavələr, dəyişikliklər və paylaşımlar kimi tədbirləri göstərəcək", 13 | "There are no events for this filter" : "Bu filter üçün heç bir tədbir yoxdur", 14 | "Today" : "Bu gün", 15 | "Yesterday" : "Dünən", 16 | "Personal activity feed for %s" : "%s üçün şəxsi fəaliyyətin ötürülməsi", 17 | "Your feed URL is invalid" : "Sizin URL ötürməniz yalnışdır", 18 | "Your settings have been updated." : "Sizin configləriniz yenilendi.", 19 | "Mail" : "Məktub", 20 | "Stream" : "Axın", 21 | "\"remote user\"" : "\"uzaq istifadəçi\"", 22 | "Activity notification" : "Fəaliyyət bildirişi", 23 | "All Activities" : "Bütün fəalliqlar", 24 | "Activities by you" : "Sizin fəalliqlarınız", 25 | "Activities by others" : "Digərlərin faəllığı", 26 | "%s and %s" : "%s və %s", 27 | "Hello %s," : "Salam %s,", 28 | "You are receiving this email because the following things happened at %s" : "Bu e-poçtu ona görə aldınız ki, %s tarixində aşağıdakı şeylər baş verib", 29 | "* %1$s - %2$s" : "* %1$s - %2$s", 30 | "_* and %n more _::_* and %n more _" : ["* və daha %n","* və daha %n"], 31 | "Activity" : "Fəallıq", 32 | "List your own file actions in the stream" : "Axında öz fayllarınızla bağlı dəyişiklikləri siyahıya alın", 33 | "Notify about your own actions via email" : "Öz gördüyünüz işlər haqqənda email-lə xəbərdar elə", 34 | "You need to set up your email address before you can receive notification emails." : "Bildiriş e-poçtları almazdan əvvəl e-poçt ünvanınızı təyin etməlisiniz", 35 | "Send emails:" : "E-poçtları göndər:", 36 | "As soon as possible" : "Mümkün qədər tez", 37 | "Hourly" : "Saatlıq", 38 | "Daily" : "Günlük", 39 | "Weekly" : "Həftəlik", 40 | "Activity feed" : "Fəaliyyət axını", 41 | "Enable RSS feed" : "RSS axınını fəallaşdır", 42 | "No activity yet" : "Hələ ki, heç bir fəaliyyət yoxdur", 43 | "No more events to load" : "Yükləmək üçün heç bir tədbir yoxdur", 44 | "Files" : "Fayllar" 45 | }, 46 | "nplurals=2; plural=(n != 1);"); 47 | -------------------------------------------------------------------------------- /l10n/az.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activities" : "Fəaliyyətlər", 3 | "Error loading activities" : "Fəaliyyət yüklənərkən xəta", 4 | "No activities" : "Fəaliyyət yoxdur", 5 | "Load more activities" : "Daha çox fəaliyyət yüklə", 6 | ", " : ",", 7 | "{parameterList} and {lastParameter}" : "{parameterList} və {lastParameter}", 8 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} və {linkStart}%n daha{linkEnd}","{parameterList} və {linkStart}%n daha{linkEnd}"], 9 | "in {directory}" : "{directory} qovluğunda", 10 | "This stream will show events like additions, changes & shares" : "Bu axın əlavələr, dəyişikliklər və paylaşımlar kimi tədbirləri göstərəcək", 11 | "There are no events for this filter" : "Bu filter üçün heç bir tədbir yoxdur", 12 | "Today" : "Bu gün", 13 | "Yesterday" : "Dünən", 14 | "Personal activity feed for %s" : "%s üçün şəxsi fəaliyyətin ötürülməsi", 15 | "Your feed URL is invalid" : "Sizin URL ötürməniz yalnışdır", 16 | "Your settings have been updated." : "Sizin configləriniz yenilendi.", 17 | "Mail" : "Məktub", 18 | "Stream" : "Axın", 19 | "\"remote user\"" : "\"uzaq istifadəçi\"", 20 | "Activity notification" : "Fəaliyyət bildirişi", 21 | "All Activities" : "Bütün fəalliqlar", 22 | "Activities by you" : "Sizin fəalliqlarınız", 23 | "Activities by others" : "Digərlərin faəllığı", 24 | "%s and %s" : "%s və %s", 25 | "Hello %s," : "Salam %s,", 26 | "You are receiving this email because the following things happened at %s" : "Bu e-poçtu ona görə aldınız ki, %s tarixində aşağıdakı şeylər baş verib", 27 | "* %1$s - %2$s" : "* %1$s - %2$s", 28 | "_* and %n more _::_* and %n more _" : ["* və daha %n","* və daha %n"], 29 | "Activity" : "Fəallıq", 30 | "List your own file actions in the stream" : "Axında öz fayllarınızla bağlı dəyişiklikləri siyahıya alın", 31 | "Notify about your own actions via email" : "Öz gördüyünüz işlər haqqənda email-lə xəbərdar elə", 32 | "You need to set up your email address before you can receive notification emails." : "Bildiriş e-poçtları almazdan əvvəl e-poçt ünvanınızı təyin etməlisiniz", 33 | "Send emails:" : "E-poçtları göndər:", 34 | "As soon as possible" : "Mümkün qədər tez", 35 | "Hourly" : "Saatlıq", 36 | "Daily" : "Günlük", 37 | "Weekly" : "Həftəlik", 38 | "Activity feed" : "Fəaliyyət axını", 39 | "Enable RSS feed" : "RSS axınını fəallaşdır", 40 | "No activity yet" : "Hələ ki, heç bir fəaliyyət yoxdur", 41 | "No more events to load" : "Yükləmək üçün heç bir tədbir yoxdur", 42 | "Files" : "Fayllar" 43 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 44 | } -------------------------------------------------------------------------------- /l10n/be.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activities" : "Дзеянні", 5 | "Error loading activities" : "Памылка загрузкі дзеянняў", 6 | "No activities" : "Няма дзейнасці", 7 | "Load more activities" : "Загрузіць больш дзеянняў", 8 | ", " : ",", 9 | "{parameterList} and {lastParameter}" : "{parameterList} і {lastParameter}", 10 | "in {directory}" : "у {directory}", 11 | "This stream will show events like additions, changes & shares" : "Гэты паток будзе паказваць такія падзеі, як дабаўленні, змены і абагульванне", 12 | "There are no events for this filter" : "Для гэтага фільтра няма падзей", 13 | "Today" : "Сёння", 14 | "Yesterday" : "Учора", 15 | "Personal activity feed for %s" : "Стужка асабістай актыўнасці для %s", 16 | "Your feed URL is invalid" : "URL вашай стужкі несапраўдны", 17 | "Your settings have been updated." : "Вашы налады былі абноўлены.", 18 | "Mail" : "Пошта", 19 | "Stream" : "Вуліца", 20 | "\"remote user\"" : "\"аддалены карыстальнік\"", 21 | "Activity notification" : "Апавяшчэнне аб актыўнасці", 22 | "All Activities" : "Усе актыўнасці", 23 | "Activities by you" : "Ваша актыўнасць", 24 | "Activities by others" : "Актыўнасць іншых", 25 | "%s and %s" : "%s і %s", 26 | "Hello %s," : "Вітаю %s,", 27 | "You are receiving this email because the following things happened at %s" : "Вы атрымалі гэты ліст, таму што ў %s", 28 | "* %1$s - %2$s" : "* %1$s - %2$s", 29 | "You are receiving this email because the following things happened at %s" : "Вы атрымалі гэты ліст, таму што ў %s", 30 | "%1$s - %2$s" : "%1$s - %2$s", 31 | "Activity" : "Дзеянні", 32 | "List your own file actions in the stream" : "Спіс вашых уласных дзеянняў з файламі ў патоку", 33 | "Notify about your own actions via email" : "Апавяшчаць аб уласных дзеяннях па электроннай пошце", 34 | "You need to set up your email address before you can receive notification emails." : "Вам трэба наладзіць свой адрас электроннай пошты, перш чым вы зможаце атрымліваць апавяшчэнні па электроннай пошце.", 35 | "Send emails:" : "Дасылаць электронныя лісты:", 36 | "As soon as possible" : "Як мага хутчэй", 37 | "Hourly" : "Штогадзіну", 38 | "Daily" : "Штодня", 39 | "Weekly" : "Штотыдзень", 40 | "Activity feed" : "Стужка актыўнасці", 41 | "Enable RSS feed" : "Уключыць RSS-канал", 42 | "No activity yet" : "Актыўнасці пакуль няма", 43 | "No more events to load" : "Няма больш падзей для загрузкі", 44 | "Files" : "Файлы" 45 | }, 46 | "nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"); 47 | -------------------------------------------------------------------------------- /l10n/be.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activities" : "Дзеянні", 3 | "Error loading activities" : "Памылка загрузкі дзеянняў", 4 | "No activities" : "Няма дзейнасці", 5 | "Load more activities" : "Загрузіць больш дзеянняў", 6 | ", " : ",", 7 | "{parameterList} and {lastParameter}" : "{parameterList} і {lastParameter}", 8 | "in {directory}" : "у {directory}", 9 | "This stream will show events like additions, changes & shares" : "Гэты паток будзе паказваць такія падзеі, як дабаўленні, змены і абагульванне", 10 | "There are no events for this filter" : "Для гэтага фільтра няма падзей", 11 | "Today" : "Сёння", 12 | "Yesterday" : "Учора", 13 | "Personal activity feed for %s" : "Стужка асабістай актыўнасці для %s", 14 | "Your feed URL is invalid" : "URL вашай стужкі несапраўдны", 15 | "Your settings have been updated." : "Вашы налады былі абноўлены.", 16 | "Mail" : "Пошта", 17 | "Stream" : "Вуліца", 18 | "\"remote user\"" : "\"аддалены карыстальнік\"", 19 | "Activity notification" : "Апавяшчэнне аб актыўнасці", 20 | "All Activities" : "Усе актыўнасці", 21 | "Activities by you" : "Ваша актыўнасць", 22 | "Activities by others" : "Актыўнасць іншых", 23 | "%s and %s" : "%s і %s", 24 | "Hello %s," : "Вітаю %s,", 25 | "You are receiving this email because the following things happened at %s" : "Вы атрымалі гэты ліст, таму што ў %s", 26 | "* %1$s - %2$s" : "* %1$s - %2$s", 27 | "You are receiving this email because the following things happened at %s" : "Вы атрымалі гэты ліст, таму што ў %s", 28 | "%1$s - %2$s" : "%1$s - %2$s", 29 | "Activity" : "Дзеянні", 30 | "List your own file actions in the stream" : "Спіс вашых уласных дзеянняў з файламі ў патоку", 31 | "Notify about your own actions via email" : "Апавяшчаць аб уласных дзеяннях па электроннай пошце", 32 | "You need to set up your email address before you can receive notification emails." : "Вам трэба наладзіць свой адрас электроннай пошты, перш чым вы зможаце атрымліваць апавяшчэнні па электроннай пошце.", 33 | "Send emails:" : "Дасылаць электронныя лісты:", 34 | "As soon as possible" : "Як мага хутчэй", 35 | "Hourly" : "Штогадзіну", 36 | "Daily" : "Штодня", 37 | "Weekly" : "Штотыдзень", 38 | "Activity feed" : "Стужка актыўнасці", 39 | "Enable RSS feed" : "Уключыць RSS-канал", 40 | "No activity yet" : "Актыўнасці пакуль няма", 41 | "No more events to load" : "Няма больш падзей для загрузкі", 42 | "Files" : "Файлы" 43 | },"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);" 44 | } -------------------------------------------------------------------------------- /l10n/bn_BD.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activities" : "ক্রিয়াকলাপ", 5 | "Error loading activities" : "কার্যক্রম লোড করার সময় ত্রুটি", 6 | "No activities" : "কোনো কার্যক্রম নেই", 7 | "Load more activities" : "আরো কার্যকলাপ লোড", 8 | ", " : ",", 9 | "{parameterList} and {lastParameter}" : "{parameterList} এবং {lastParameter}", 10 | "in {directory}" : "{ডিরেক্টরিতে}", 11 | "This stream will show events like additions, changes & shares" : "এই স্ট্রীমটি সংযোজন, পরিবর্তন এবং ভাগ করার মতো ইভেন্টগুলি দেখাবে৷", 12 | "There are no events for this filter" : "এই ফিল্টারের জন্য কোন ঘটনা নেই", 13 | "Today" : "আজ", 14 | "Yesterday" : "গতকাল", 15 | "Personal activity feed for %s" : "%s এর জনন সক্রিয়তা বারতা", 16 | "Your feed URL is invalid" : "আপনার ফিড URL অবৈধ", 17 | "Your settings have been updated." : "আপনার সেটিং নবায়ন করা হয়েছে৷", 18 | "Mail" : "মেইল", 19 | "Stream" : "ধারা", 20 | "\"remote user\"" : "\"দূরবর্তী ব্যবহারকারী\"", 21 | "Activity notification" : "সক্রিয়তা বিগগপতি", 22 | "All Activities" : "সকল সক্রিয়তা", 23 | "Activities by you" : "আপনার সক্রিয়তা", 24 | "Activities by others" : "অনငদের সক্রিয়তা", 25 | "%s and %s" : "%s এবং %s", 26 | "Hello %s," : "হেলো %s,", 27 | "You are receiving this email because the following things happened at %s" : "আপনি এই ইমেলটি পাচ্ছেন কারণ নিম্নলিখিত জিনিসগুলি এখানে ঘটেছে৷ %s", 28 | "* %1$s - %2$s" : "* %1$s - %2$s", 29 | "%1$s - %2$s" : "%1$s - %2$s", 30 | "Activity" : "সক্রিয়তা", 31 | "List your own file actions in the stream" : "স্ট্রীমে আপনার নিজের ফাইল ক্রিয়াগুলি তালিকাভুক্ত করুন৷", 32 | "Notify about your own actions via email" : "ইমেলের মাধ্যমে আপনার নিজের কর্ম সম্পর্কে অবহিত করুন", 33 | "You need to set up your email address before you can receive notification emails." : "ইমেইল বারতা পাওয়ার আগে আপনাকে নিজের ইমেইল ঠিকানা নিরধারন করতে হবে৷", 34 | "Send emails:" : "ইমেইল পাঠান", 35 | "As soon as possible" : "যত দ্রুত সম্ভব", 36 | "Hourly" : "ঘনটাভিততিক", 37 | "Daily" : "দৈনিক", 38 | "Weekly" : "সাপ্তাহিক", 39 | "Activity feed" : "সক্রিয়তা বারতা", 40 | "Enable RSS feed" : "RSS feed উপযোগী ক኉ন", 41 | "No activity yet" : "এখনো কোনো কার্যকলাপ নেই", 42 | "No more events to load" : "লোড করার কোন ইভেন্ট খুঁজে পাওয়া গেল না।", 43 | "Files" : "ফাইল" 44 | }, 45 | "nplurals=2; plural=(n != 1);"); 46 | -------------------------------------------------------------------------------- /l10n/bn_BD.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activities" : "ক্রিয়াকলাপ", 3 | "Error loading activities" : "কার্যক্রম লোড করার সময় ত্রুটি", 4 | "No activities" : "কোনো কার্যক্রম নেই", 5 | "Load more activities" : "আরো কার্যকলাপ লোড", 6 | ", " : ",", 7 | "{parameterList} and {lastParameter}" : "{parameterList} এবং {lastParameter}", 8 | "in {directory}" : "{ডিরেক্টরিতে}", 9 | "This stream will show events like additions, changes & shares" : "এই স্ট্রীমটি সংযোজন, পরিবর্তন এবং ভাগ করার মতো ইভেন্টগুলি দেখাবে৷", 10 | "There are no events for this filter" : "এই ফিল্টারের জন্য কোন ঘটনা নেই", 11 | "Today" : "আজ", 12 | "Yesterday" : "গতকাল", 13 | "Personal activity feed for %s" : "%s এর জনন সক্রিয়তা বারতা", 14 | "Your feed URL is invalid" : "আপনার ফিড URL অবৈধ", 15 | "Your settings have been updated." : "আপনার সেটিং নবায়ন করা হয়েছে৷", 16 | "Mail" : "মেইল", 17 | "Stream" : "ধারা", 18 | "\"remote user\"" : "\"দূরবর্তী ব্যবহারকারী\"", 19 | "Activity notification" : "সক্রিয়তা বিগগপতি", 20 | "All Activities" : "সকল সক্রিয়তা", 21 | "Activities by you" : "আপনার সক্রিয়তা", 22 | "Activities by others" : "অনငদের সক্রিয়তা", 23 | "%s and %s" : "%s এবং %s", 24 | "Hello %s," : "হেলো %s,", 25 | "You are receiving this email because the following things happened at %s" : "আপনি এই ইমেলটি পাচ্ছেন কারণ নিম্নলিখিত জিনিসগুলি এখানে ঘটেছে৷ %s", 26 | "* %1$s - %2$s" : "* %1$s - %2$s", 27 | "%1$s - %2$s" : "%1$s - %2$s", 28 | "Activity" : "সক্রিয়তা", 29 | "List your own file actions in the stream" : "স্ট্রীমে আপনার নিজের ফাইল ক্রিয়াগুলি তালিকাভুক্ত করুন৷", 30 | "Notify about your own actions via email" : "ইমেলের মাধ্যমে আপনার নিজের কর্ম সম্পর্কে অবহিত করুন", 31 | "You need to set up your email address before you can receive notification emails." : "ইমেইল বারতা পাওয়ার আগে আপনাকে নিজের ইমেইল ঠিকানা নিরধারন করতে হবে৷", 32 | "Send emails:" : "ইমেইল পাঠান", 33 | "As soon as possible" : "যত দ্রুত সম্ভব", 34 | "Hourly" : "ঘনটাভিততিক", 35 | "Daily" : "দৈনিক", 36 | "Weekly" : "সাপ্তাহিক", 37 | "Activity feed" : "সক্রিয়তা বারতা", 38 | "Enable RSS feed" : "RSS feed উপযোগী ক኉ন", 39 | "No activity yet" : "এখনো কোনো কার্যকলাপ নেই", 40 | "No more events to load" : "লোড করার কোন ইভেন্ট খুঁজে পাওয়া গেল না।", 41 | "Files" : "ফাইল" 42 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 43 | } -------------------------------------------------------------------------------- /l10n/bn_IN.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activity" : "কার্যকলাপ", 5 | "Personal activity feed for %s" : "নিজস্ব কার্যকলাপ ফিড %s এর জন্যে", 6 | "Your settings have been updated." : "আপনার সেটিংস আপডেট করা হয়েছে।", 7 | "Mail" : "মেইল", 8 | "Stream" : "প্রবাহ", 9 | "Activity notification" : "কার্যকলাপের সূচনা", 10 | "All Activities" : "সমস্ত ক্রিয়াকলাপ", 11 | "Activities by you" : "আপনার দ্বারা ক্রিয়াকলাপ", 12 | "Activities by others" : "অন্যদের দ্বারা ক্রিয়াকলাপ", 13 | "in %s" : "%s-এ", 14 | "%s and %s" : "%s এবং %s", 15 | ", " : ",", 16 | "_%s and %n more_::_%s and %n more_" : ["%s এবং %n বেশী","%s and %n more"], 17 | "_%s and %n more_::_%s and %n more_" : ["%s এবং %n বেশী","%s and %n more"], 18 | "Hello %s," : "হেলো %s, ", 19 | "You are receiving this email because in the last hour the following things happened at %s" : "এই ইমেলটি পাচ্ছেন কারন গত ঘন্টায় %s এ নিম্নোক্ত ঘটনা ঘটেছে ", 20 | "You are receiving this email because in the last day the following things happened at %s" : "এই ইমেলটি পাচ্ছেন কারন গতদিনে %s এ নিম্নোক্ত ঘটনা ঘটেছে ", 21 | "You are receiving this email because in the last week the following things happened at %s" : "এই ইমেলটি পাচ্ছেন কারন গত সপ্তাহে %s এ নিম্নোক্ত ঘটনা ঘটেছে ", 22 | "Notifications" : "বিজ্ঞপ্তি", 23 | "You need to set up your email address before you can receive notification emails." : "আপনার সূচনা ইমেল পাওয়ার জন্যে আগে আপনার ইমেইল ঠিকানা সেট আপ করতে হবে।", 24 | "Send emails:" : "ইমেইলস পাঠান:", 25 | "Hourly" : "প্রতি ঘণ্টায়", 26 | "Daily" : "প্রতিদিন", 27 | "Weekly" : "সাপ্তাহিক", 28 | "Activity feed" : "কার্যকলাপ ফিড", 29 | "Enable RSS feed" : "এনাব্ল RSS ফিড", 30 | "No more events to load" : "লোড করার কোনো ঘটনা", 31 | "Files" : "ফাইলস" 32 | }, 33 | "nplurals=2; plural=(n != 1);"); 34 | -------------------------------------------------------------------------------- /l10n/bn_IN.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activity" : "কার্যকলাপ", 3 | "Personal activity feed for %s" : "নিজস্ব কার্যকলাপ ফিড %s এর জন্যে", 4 | "Your settings have been updated." : "আপনার সেটিংস আপডেট করা হয়েছে।", 5 | "Mail" : "মেইল", 6 | "Stream" : "প্রবাহ", 7 | "Activity notification" : "কার্যকলাপের সূচনা", 8 | "All Activities" : "সমস্ত ক্রিয়াকলাপ", 9 | "Activities by you" : "আপনার দ্বারা ক্রিয়াকলাপ", 10 | "Activities by others" : "অন্যদের দ্বারা ক্রিয়াকলাপ", 11 | "in %s" : "%s-এ", 12 | "%s and %s" : "%s এবং %s", 13 | ", " : ",", 14 | "_%s and %n more_::_%s and %n more_" : ["%s এবং %n বেশী","%s and %n more"], 15 | "_%s and %n more_::_%s and %n more_" : ["%s এবং %n বেশী","%s and %n more"], 16 | "Hello %s," : "হেলো %s, ", 17 | "You are receiving this email because in the last hour the following things happened at %s" : "এই ইমেলটি পাচ্ছেন কারন গত ঘন্টায় %s এ নিম্নোক্ত ঘটনা ঘটেছে ", 18 | "You are receiving this email because in the last day the following things happened at %s" : "এই ইমেলটি পাচ্ছেন কারন গতদিনে %s এ নিম্নোক্ত ঘটনা ঘটেছে ", 19 | "You are receiving this email because in the last week the following things happened at %s" : "এই ইমেলটি পাচ্ছেন কারন গত সপ্তাহে %s এ নিম্নোক্ত ঘটনা ঘটেছে ", 20 | "Notifications" : "বিজ্ঞপ্তি", 21 | "You need to set up your email address before you can receive notification emails." : "আপনার সূচনা ইমেল পাওয়ার জন্যে আগে আপনার ইমেইল ঠিকানা সেট আপ করতে হবে।", 22 | "Send emails:" : "ইমেইলস পাঠান:", 23 | "Hourly" : "প্রতি ঘণ্টায়", 24 | "Daily" : "প্রতিদিন", 25 | "Weekly" : "সাপ্তাহিক", 26 | "Activity feed" : "কার্যকলাপ ফিড", 27 | "Enable RSS feed" : "এনাব্ল RSS ফিড", 28 | "No more events to load" : "লোড করার কোনো ঘটনা", 29 | "Files" : "ফাইলস" 30 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 31 | } -------------------------------------------------------------------------------- /l10n/ca_ES.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activities" : "Activitats", 5 | "Error loading activities" : "Error en carregar les activitats", 6 | "No activities" : "Sense Activitats", 7 | "Load more activities" : "Carrega més activitats", 8 | ", " : ",", 9 | "{parameterList} and {lastParameter}" : "{parameterList} i {lastParameter}", 10 | "in {directory}" : "a {directory}", 11 | "This stream will show events like additions, changes & shares" : "Aquest corrent mostrarà esdeveniments afegits, modificats i compartits.", 12 | "There are no events for this filter" : "No hi ha esdeveniments per aquest filtre", 13 | "Today" : "Avui", 14 | "Yesterday" : "Ahir", 15 | "Personal activity feed for %s" : "Canal d'activitat personal per a %s", 16 | "Your feed URL is invalid" : "La URL del canal no ès vàlida", 17 | "Your settings have been updated." : "La teva configuració s'ha actualitzat.", 18 | "Mail" : "Correu electrònic", 19 | "Stream" : "Cadena", 20 | "\"remote user\"" : "\"usuari remot\"", 21 | "Activity notification" : "Notificació d'activitat", 22 | "All Activities" : "Totes les activitats", 23 | "Activities by you" : "Les teves activitats", 24 | "Activities by others" : "Activitats d'altres", 25 | "%s and %s" : "%si%s", 26 | "Hello %s," : "Hola %s,", 27 | "You are receiving this email because the following things happened at %s" : "Esteu rebent aquest correu perquè s'ha produit la següent activitat a %s", 28 | "* %1$s - %2$s" : "* %1$s - %2$s", 29 | "You are receiving this email because the following things happened at %s" : "Esteu rebent aquest correu perquè s'ha produït la següent activitat a: %s", 30 | "Activity" : "Activitat", 31 | "List your own file actions in the stream" : "Llista les vostres pròpies accions de fitxers al corrent", 32 | "Notify about your own actions via email" : "Notificar les teves pròpies accions via correu electrònic", 33 | "You need to set up your email address before you can receive notification emails." : "Cal establir la teva adreça de correu electrònic abans de poder rebre correus electrònics de notificació.", 34 | "Send emails:" : "Envia correus electrònics:", 35 | "As soon as possible" : "El més aviat possible", 36 | "Hourly" : "Horàriament", 37 | "Daily" : "Diàriament", 38 | "Weekly" : "Setmanalment", 39 | "Activity feed" : "Canal d'activitat", 40 | "Enable RSS feed" : "Activa el canal RSS", 41 | "No activity yet" : "Cap activitat encara", 42 | "No more events to load" : "No hi ha més esdeveniments per carregar.", 43 | "Files" : "Arxius" 44 | }, 45 | "nplurals=2; plural=(n != 1);"); 46 | -------------------------------------------------------------------------------- /l10n/ca_ES.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activities" : "Activitats", 3 | "Error loading activities" : "Error en carregar les activitats", 4 | "No activities" : "Sense Activitats", 5 | "Load more activities" : "Carrega més activitats", 6 | ", " : ",", 7 | "{parameterList} and {lastParameter}" : "{parameterList} i {lastParameter}", 8 | "in {directory}" : "a {directory}", 9 | "This stream will show events like additions, changes & shares" : "Aquest corrent mostrarà esdeveniments afegits, modificats i compartits.", 10 | "There are no events for this filter" : "No hi ha esdeveniments per aquest filtre", 11 | "Today" : "Avui", 12 | "Yesterday" : "Ahir", 13 | "Personal activity feed for %s" : "Canal d'activitat personal per a %s", 14 | "Your feed URL is invalid" : "La URL del canal no ès vàlida", 15 | "Your settings have been updated." : "La teva configuració s'ha actualitzat.", 16 | "Mail" : "Correu electrònic", 17 | "Stream" : "Cadena", 18 | "\"remote user\"" : "\"usuari remot\"", 19 | "Activity notification" : "Notificació d'activitat", 20 | "All Activities" : "Totes les activitats", 21 | "Activities by you" : "Les teves activitats", 22 | "Activities by others" : "Activitats d'altres", 23 | "%s and %s" : "%si%s", 24 | "Hello %s," : "Hola %s,", 25 | "You are receiving this email because the following things happened at %s" : "Esteu rebent aquest correu perquè s'ha produit la següent activitat a %s", 26 | "* %1$s - %2$s" : "* %1$s - %2$s", 27 | "You are receiving this email because the following things happened at %s" : "Esteu rebent aquest correu perquè s'ha produït la següent activitat a: %s", 28 | "Activity" : "Activitat", 29 | "List your own file actions in the stream" : "Llista les vostres pròpies accions de fitxers al corrent", 30 | "Notify about your own actions via email" : "Notificar les teves pròpies accions via correu electrònic", 31 | "You need to set up your email address before you can receive notification emails." : "Cal establir la teva adreça de correu electrònic abans de poder rebre correus electrònics de notificació.", 32 | "Send emails:" : "Envia correus electrònics:", 33 | "As soon as possible" : "El més aviat possible", 34 | "Hourly" : "Horàriament", 35 | "Daily" : "Diàriament", 36 | "Weekly" : "Setmanalment", 37 | "Activity feed" : "Canal d'activitat", 38 | "Enable RSS feed" : "Activa el canal RSS", 39 | "No activity yet" : "Cap activitat encara", 40 | "No more events to load" : "No hi ha més esdeveniments per carregar.", 41 | "Files" : "Arxius" 42 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 43 | } -------------------------------------------------------------------------------- /l10n/de_AT.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activities" : "Aktivitäten", 5 | "Error loading activities" : "Fehler beim Laden der Aktivitäten", 6 | "No activities" : "Keine Aktivitäten", 7 | "Load more activities" : "Mehr Aktivitäten laden", 8 | ", " : ",", 9 | "{parameterList} and {lastParameter}" : "{parameterList} und {lastParameter}", 10 | "in {directory}" : "in {directory}", 11 | "This stream will show events like additions, changes & shares" : "Dieser Stream zeigt Ereignisse wie Ergänzungen, Änderungen und wenn etwas geteilt wurde", 12 | "There are no events for this filter" : "Es wurden keine Ereignisse mit diesem Filter gefunden.", 13 | "Today" : "Heute", 14 | "Yesterday" : "Gestern", 15 | "Personal activity feed for %s" : "Persönlicher Aktivitäten-Feed für %s.", 16 | "Your feed URL is invalid" : "Deine Feed URL ist ungültig", 17 | "Your settings have been updated." : "Deine Einstellungen wurden aktualisiert", 18 | "Mail" : "E-Mail", 19 | "Stream" : "Stream", 20 | "\"remote user\"" : "\"Fern-Benutzer\"", 21 | "Activity notification" : "Aktivitäten Mitteilung", 22 | "All Activities" : "Alle Aktivitäten", 23 | "Activities by you" : "Aktivitäten von dir", 24 | "Activities by others" : "Aktivitäten anderer", 25 | "%s and %s" : "%s und %s", 26 | "Hello %s," : "Hallo %s,", 27 | "You are receiving this email because the following things happened at %s" : "Du empfängst diese E-Mail weil folgende Dinge auf %s passiert sind.", 28 | "* %1$s - %2$s" : "* %1$s - %2$s", 29 | "_* and %n more _::_* and %n more _" : ["* und noch %n andere","* und noch %n andere"], 30 | "You are receiving this email because the following things happened at %s" : "Du empfängst diese E-Mail weil folgende Dinge auf %s passiert sind.", 31 | "%1$s - %2$s" : "%1$s - %2$s", 32 | "Activity" : "Aktivitäten", 33 | "Notify about your own actions via email" : "Benachrichtigen über deine eigenen Aktivitäten per E-Mail.", 34 | "You need to set up your email address before you can receive notification emails." : "Sie müssen eine E-Mail-Adresse angeben, bevor sie Benachrichtigungen erhalten können.", 35 | "Send emails:" : "E-Mails senden:", 36 | "Hourly" : "stündlich", 37 | "Daily" : "täglich", 38 | "Weekly" : "wöchentlich", 39 | "Activity feed" : "Aktivitätsverlauf", 40 | "Enable RSS feed" : "Aktiviere RSS feed", 41 | "No activity yet" : "Noch keine Aktivitäten", 42 | "No more events to load" : "Es gibt keine Ereignisse mehr, die geladen werden können.", 43 | "Files" : "Dateien" 44 | }, 45 | "nplurals=2; plural=(n != 1);"); 46 | -------------------------------------------------------------------------------- /l10n/de_AT.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activities" : "Aktivitäten", 3 | "Error loading activities" : "Fehler beim Laden der Aktivitäten", 4 | "No activities" : "Keine Aktivitäten", 5 | "Load more activities" : "Mehr Aktivitäten laden", 6 | ", " : ",", 7 | "{parameterList} and {lastParameter}" : "{parameterList} und {lastParameter}", 8 | "in {directory}" : "in {directory}", 9 | "This stream will show events like additions, changes & shares" : "Dieser Stream zeigt Ereignisse wie Ergänzungen, Änderungen und wenn etwas geteilt wurde", 10 | "There are no events for this filter" : "Es wurden keine Ereignisse mit diesem Filter gefunden.", 11 | "Today" : "Heute", 12 | "Yesterday" : "Gestern", 13 | "Personal activity feed for %s" : "Persönlicher Aktivitäten-Feed für %s.", 14 | "Your feed URL is invalid" : "Deine Feed URL ist ungültig", 15 | "Your settings have been updated." : "Deine Einstellungen wurden aktualisiert", 16 | "Mail" : "E-Mail", 17 | "Stream" : "Stream", 18 | "\"remote user\"" : "\"Fern-Benutzer\"", 19 | "Activity notification" : "Aktivitäten Mitteilung", 20 | "All Activities" : "Alle Aktivitäten", 21 | "Activities by you" : "Aktivitäten von dir", 22 | "Activities by others" : "Aktivitäten anderer", 23 | "%s and %s" : "%s und %s", 24 | "Hello %s," : "Hallo %s,", 25 | "You are receiving this email because the following things happened at %s" : "Du empfängst diese E-Mail weil folgende Dinge auf %s passiert sind.", 26 | "* %1$s - %2$s" : "* %1$s - %2$s", 27 | "_* and %n more _::_* and %n more _" : ["* und noch %n andere","* und noch %n andere"], 28 | "You are receiving this email because the following things happened at %s" : "Du empfängst diese E-Mail weil folgende Dinge auf %s passiert sind.", 29 | "%1$s - %2$s" : "%1$s - %2$s", 30 | "Activity" : "Aktivitäten", 31 | "Notify about your own actions via email" : "Benachrichtigen über deine eigenen Aktivitäten per E-Mail.", 32 | "You need to set up your email address before you can receive notification emails." : "Sie müssen eine E-Mail-Adresse angeben, bevor sie Benachrichtigungen erhalten können.", 33 | "Send emails:" : "E-Mails senden:", 34 | "Hourly" : "stündlich", 35 | "Daily" : "täglich", 36 | "Weekly" : "wöchentlich", 37 | "Activity feed" : "Aktivitätsverlauf", 38 | "Enable RSS feed" : "Aktiviere RSS feed", 39 | "No activity yet" : "Noch keine Aktivitäten", 40 | "No more events to load" : "Es gibt keine Ereignisse mehr, die geladen werden können.", 41 | "Files" : "Dateien" 42 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 43 | } -------------------------------------------------------------------------------- /l10n/es_CL.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activities" : "Actividades", 5 | "Error loading activities" : "Error: cargando actividades", 6 | "No activities" : "Sin actividades", 7 | "Load more activities" : "Cargar más actividades", 8 | ", " : ",", 9 | "{parameterList} and {lastParameter}" : "{Lista de parámetros} y {último Parámetro}", 10 | "in {directory}" : "en {directorio}", 11 | "This stream will show events like additions, changes & shares" : "Esta cadena muestra eventos adicionales agregados, cambiados y compartidos", 12 | "There are no events for this filter" : "No hay eventos para este filtro", 13 | "Today" : "Hoy", 14 | "Yesterday" : "Ayer", 15 | "Personal activity feed for %s" : "Avisos de actividad para %s", 16 | "Your settings have been updated." : "Sus preferencias han sido actualizadas.", 17 | "Mail" : "Correo", 18 | "Stream" : "Flujo", 19 | "Activity notification" : "Notificación de actividad", 20 | "All Activities" : "Todas las Actividades", 21 | "Activities by you" : "Actividades realizadas por usted", 22 | "Activities by others" : "Actividades de otros", 23 | "%s and %s" : "%s y %s", 24 | "Hello %s," : "Hola %s,", 25 | "Activity" : "Actividad", 26 | "You need to set up your email address before you can receive notification emails." : "Necesita configurar su dirección de correo electrónico antes de poder recibir notificaciones correos electrónicos de notificación.", 27 | "Send emails:" : "Enviar correos electrónicos:", 28 | "Hourly" : "Horariamente", 29 | "Daily" : "Diario", 30 | "Weekly" : "Semanal", 31 | "Activity feed" : "Avisos de actividad", 32 | "Enable RSS feed" : "Habilitar RSS feed", 33 | "No more events to load" : "No hay más eventos para cargar", 34 | "Files" : "Archivos" 35 | }, 36 | "nplurals=2; plural=(n != 1);"); 37 | -------------------------------------------------------------------------------- /l10n/es_CL.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activities" : "Actividades", 3 | "Error loading activities" : "Error: cargando actividades", 4 | "No activities" : "Sin actividades", 5 | "Load more activities" : "Cargar más actividades", 6 | ", " : ",", 7 | "{parameterList} and {lastParameter}" : "{Lista de parámetros} y {último Parámetro}", 8 | "in {directory}" : "en {directorio}", 9 | "This stream will show events like additions, changes & shares" : "Esta cadena muestra eventos adicionales agregados, cambiados y compartidos", 10 | "There are no events for this filter" : "No hay eventos para este filtro", 11 | "Today" : "Hoy", 12 | "Yesterday" : "Ayer", 13 | "Personal activity feed for %s" : "Avisos de actividad para %s", 14 | "Your settings have been updated." : "Sus preferencias han sido actualizadas.", 15 | "Mail" : "Correo", 16 | "Stream" : "Flujo", 17 | "Activity notification" : "Notificación de actividad", 18 | "All Activities" : "Todas las Actividades", 19 | "Activities by you" : "Actividades realizadas por usted", 20 | "Activities by others" : "Actividades de otros", 21 | "%s and %s" : "%s y %s", 22 | "Hello %s," : "Hola %s,", 23 | "Activity" : "Actividad", 24 | "You need to set up your email address before you can receive notification emails." : "Necesita configurar su dirección de correo electrónico antes de poder recibir notificaciones correos electrónicos de notificación.", 25 | "Send emails:" : "Enviar correos electrónicos:", 26 | "Hourly" : "Horariamente", 27 | "Daily" : "Diario", 28 | "Weekly" : "Semanal", 29 | "Activity feed" : "Avisos de actividad", 30 | "Enable RSS feed" : "Habilitar RSS feed", 31 | "No more events to load" : "No hay más eventos para cargar", 32 | "Files" : "Archivos" 33 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 34 | } -------------------------------------------------------------------------------- /l10n/es_CR.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activity" : "Actividad", 5 | "Personal activity feed for %s" : "Actividad personal para %s", 6 | "Your settings have been updated." : "Su configuración ha sido actualizada", 7 | "Activity notification" : "Notificación de actividad", 8 | "All Activities" : "Todas las actividades", 9 | "Activities by you" : "Sus actividades", 10 | "Activities by others" : "Actividades de otros", 11 | "\"remote user\"" : "\"usuario remoto\"", 12 | "in %s" : "en %s", 13 | "%s and %s" : "%s y %s", 14 | ", " : "'", 15 | "_%s and %n more_::_%s and %n more_" : ["%s y %n más","%s y %n más"], 16 | "_%s and %n more_::_%s and %n more_" : ["%s y %n más","%s y %n más"], 17 | "Hello %s," : "Hola %s", 18 | "You are receiving this email because in the last hour the following things happened at %s" : "Usted está recibiendo este correo porque en la última hora, las siguientes cosas sucedieron en %s", 19 | "You are receiving this email because in the last day the following things happened at %s" : "Usted está recibiendo este correo porque en el último día, las siguientes cosas sucedieron en %s", 20 | "You are receiving this email because in the last week the following things happened at %s" : "Usted está recibiendo este correo porque en la última semana, estas cosas sucedieron en %s", 21 | "* %1$s - %2$s" : "* %1$s - %2$s", 22 | "Notifications" : "Notificaciones", 23 | "Mail" : "Correo", 24 | "Stream" : "Corriente", 25 | "List your own actions in the stream" : "Listar sus propias acciones en el flujo", 26 | "Notify about your own actions via email" : "Notificar acerca de sus propias acciones vía correo", 27 | "You need to set up your email address before you can receive notification emails." : "Usted necesita configurar su dirección de correo antes de recibir correos de notificación", 28 | "Send emails:" : "Enviar correos:", 29 | "Hourly" : "Cada hora", 30 | "Daily" : "Diario", 31 | "Weekly" : "Semanal", 32 | "Activity feed" : "Actividad", 33 | "Enable RSS feed" : "Habilitar el feed RSS", 34 | "No more events to load" : "No hay más eventos que cargar", 35 | "Files" : "Archivos" 36 | }, 37 | "nplurals=2; plural=(n != 1);"); 38 | -------------------------------------------------------------------------------- /l10n/es_CR.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activity" : "Actividad", 3 | "Personal activity feed for %s" : "Actividad personal para %s", 4 | "Your settings have been updated." : "Su configuración ha sido actualizada", 5 | "Activity notification" : "Notificación de actividad", 6 | "All Activities" : "Todas las actividades", 7 | "Activities by you" : "Sus actividades", 8 | "Activities by others" : "Actividades de otros", 9 | "\"remote user\"" : "\"usuario remoto\"", 10 | "in %s" : "en %s", 11 | "%s and %s" : "%s y %s", 12 | ", " : "'", 13 | "_%s and %n more_::_%s and %n more_" : ["%s y %n más","%s y %n más"], 14 | "_%s and %n more_::_%s and %n more_" : ["%s y %n más","%s y %n más"], 15 | "Hello %s," : "Hola %s", 16 | "You are receiving this email because in the last hour the following things happened at %s" : "Usted está recibiendo este correo porque en la última hora, las siguientes cosas sucedieron en %s", 17 | "You are receiving this email because in the last day the following things happened at %s" : "Usted está recibiendo este correo porque en el último día, las siguientes cosas sucedieron en %s", 18 | "You are receiving this email because in the last week the following things happened at %s" : "Usted está recibiendo este correo porque en la última semana, estas cosas sucedieron en %s", 19 | "* %1$s - %2$s" : "* %1$s - %2$s", 20 | "Notifications" : "Notificaciones", 21 | "Mail" : "Correo", 22 | "Stream" : "Corriente", 23 | "List your own actions in the stream" : "Listar sus propias acciones en el flujo", 24 | "Notify about your own actions via email" : "Notificar acerca de sus propias acciones vía correo", 25 | "You need to set up your email address before you can receive notification emails." : "Usted necesita configurar su dirección de correo antes de recibir correos de notificación", 26 | "Send emails:" : "Enviar correos:", 27 | "Hourly" : "Cada hora", 28 | "Daily" : "Diario", 29 | "Weekly" : "Semanal", 30 | "Activity feed" : "Actividad", 31 | "Enable RSS feed" : "Habilitar el feed RSS", 32 | "No more events to load" : "No hay más eventos que cargar", 33 | "Files" : "Archivos" 34 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 35 | } -------------------------------------------------------------------------------- /l10n/gu.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activities" : "પ્રવૃત્તિઓ", 5 | "Error loading activities" : "પ્રવૃત્તિઓ લોડ કરવામાં એરર આવે છે ", 6 | "No activities" : "એક પણ પ્રવૃત્તિ નહિ", 7 | "Load more activities" : "વધુ પ્રવૃત્તિઓ લોડ કરો", 8 | ", " : ",", 9 | "{parameterList} and {lastParameter}" : "{parameterList} અને {lastParameter}", 10 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} અને {linkStart}%n વધુ{linkEnd}","{parameterList} અને {linkStart}%n વધુ{linkEnd}"], 11 | "in {directory}" : "આ {directory} માં ", 12 | "This stream will show events like additions, changes & shares" : "આ સ્ટ્રીમ સરવાળો,હેરફેર,શેર જેવા ઈવેન્ટ્સ દેખાડશે ", 13 | "There are no events for this filter" : "આ પ્રકાર ના કોઈ પણ ઇવેન્ટ નથી ", 14 | "Today" : "આજે", 15 | "Yesterday" : " ગઈકાલે", 16 | "Personal activity feed for %s" : "%s ની વ્યક્તિગત પ્રવૃત્તિ ફીડ ", 17 | "Your feed URL is invalid" : "તમારું ફીડ URL અમાન્ય છે ", 18 | "Your settings have been updated." : "તમારી સેટિંગ્સ અપ્ડૈટ થઇ ગઈ છે ", 19 | "Mail" : "મેલ", 20 | "Stream" : "સ્ટ્રીમ", 21 | "\"remote user\"" : "\" દૂરવર્તી વપરાશકર્તા \"", 22 | "Activity notification" : "પ્રવૃત્તિ ની જાહેરાત ", 23 | "All Activities" : "બધી પ્રવૃત્તિઓ ", 24 | "Activities by you" : "તમારી પ્રવૃત્તિઓ", 25 | "Activities by others" : "બીજા લોકો ની પ્રવૃત્તિઓ ", 26 | "%s and %s" : "%s અને %s", 27 | "Hello %s," : "હેલો %s,", 28 | "You are receiving this email because the following things happened at %s" : "તમને આ ઇમેઇલ માંડ્યું કેમ કે નીચે લખેલી વસ્તુઓ થઇ હતી %s વખતે ", 29 | "* %1$s - %2$s" : "* %1$s - %2$s", 30 | "_* and %n more _::_* and %n more _" : ["* અને %n વધારે ","* અને %n વધારે "], 31 | "Activity" : "પ્રવૃત્તિ", 32 | "List your own file actions in the stream" : "તમારી પોતાની ફાઈલ ક્રિયાઓ આ સ્ટ્રીમ માં લિસ્ટ કરો ", 33 | "Notify about your own actions via email" : "તમને તમારી પોતાની ક્રિયા ઇમેઇલ દ્વારા જણાવવી ", 34 | "You need to set up your email address before you can receive notification emails." : "તમને ઇમેઇલ જાહેરાત પ્રાપ્ત કરવા માટે પેહલા તમારું ઇમેઇલ સેટઅપ કરવું પડશે", 35 | "Send emails:" : "ઇ-મેઇલ મોકલો ", 36 | "Hourly" : "કલાકદીઠ", 37 | "Daily" : "દરરોજ", 38 | "Weekly" : " અઠવાડિક", 39 | "Activity feed" : "પ્રવૃત્તિઓ ની ફીડ ", 40 | "Enable RSS feed" : "RSS ફીડ ને એનેબલ કરો ", 41 | "No activity yet" : "એક પણ પ્રવૃત્તિ નહિ ", 42 | "No more events to load" : "એક પણ ઇવેન્ટ લોડ થવાના બાકી નહિ ", 43 | "Files" : "ફાઇલો" 44 | }, 45 | "nplurals=2; plural=(n != 1);"); 46 | -------------------------------------------------------------------------------- /l10n/gu.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activities" : "પ્રવૃત્તિઓ", 3 | "Error loading activities" : "પ્રવૃત્તિઓ લોડ કરવામાં એરર આવે છે ", 4 | "No activities" : "એક પણ પ્રવૃત્તિ નહિ", 5 | "Load more activities" : "વધુ પ્રવૃત્તિઓ લોડ કરો", 6 | ", " : ",", 7 | "{parameterList} and {lastParameter}" : "{parameterList} અને {lastParameter}", 8 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} અને {linkStart}%n વધુ{linkEnd}","{parameterList} અને {linkStart}%n વધુ{linkEnd}"], 9 | "in {directory}" : "આ {directory} માં ", 10 | "This stream will show events like additions, changes & shares" : "આ સ્ટ્રીમ સરવાળો,હેરફેર,શેર જેવા ઈવેન્ટ્સ દેખાડશે ", 11 | "There are no events for this filter" : "આ પ્રકાર ના કોઈ પણ ઇવેન્ટ નથી ", 12 | "Today" : "આજે", 13 | "Yesterday" : " ગઈકાલે", 14 | "Personal activity feed for %s" : "%s ની વ્યક્તિગત પ્રવૃત્તિ ફીડ ", 15 | "Your feed URL is invalid" : "તમારું ફીડ URL અમાન્ય છે ", 16 | "Your settings have been updated." : "તમારી સેટિંગ્સ અપ્ડૈટ થઇ ગઈ છે ", 17 | "Mail" : "મેલ", 18 | "Stream" : "સ્ટ્રીમ", 19 | "\"remote user\"" : "\" દૂરવર્તી વપરાશકર્તા \"", 20 | "Activity notification" : "પ્રવૃત્તિ ની જાહેરાત ", 21 | "All Activities" : "બધી પ્રવૃત્તિઓ ", 22 | "Activities by you" : "તમારી પ્રવૃત્તિઓ", 23 | "Activities by others" : "બીજા લોકો ની પ્રવૃત્તિઓ ", 24 | "%s and %s" : "%s અને %s", 25 | "Hello %s," : "હેલો %s,", 26 | "You are receiving this email because the following things happened at %s" : "તમને આ ઇમેઇલ માંડ્યું કેમ કે નીચે લખેલી વસ્તુઓ થઇ હતી %s વખતે ", 27 | "* %1$s - %2$s" : "* %1$s - %2$s", 28 | "_* and %n more _::_* and %n more _" : ["* અને %n વધારે ","* અને %n વધારે "], 29 | "Activity" : "પ્રવૃત્તિ", 30 | "List your own file actions in the stream" : "તમારી પોતાની ફાઈલ ક્રિયાઓ આ સ્ટ્રીમ માં લિસ્ટ કરો ", 31 | "Notify about your own actions via email" : "તમને તમારી પોતાની ક્રિયા ઇમેઇલ દ્વારા જણાવવી ", 32 | "You need to set up your email address before you can receive notification emails." : "તમને ઇમેઇલ જાહેરાત પ્રાપ્ત કરવા માટે પેહલા તમારું ઇમેઇલ સેટઅપ કરવું પડશે", 33 | "Send emails:" : "ઇ-મેઇલ મોકલો ", 34 | "Hourly" : "કલાકદીઠ", 35 | "Daily" : "દરરોજ", 36 | "Weekly" : " અઠવાડિક", 37 | "Activity feed" : "પ્રવૃત્તિઓ ની ફીડ ", 38 | "Enable RSS feed" : "RSS ફીડ ને એનેબલ કરો ", 39 | "No activity yet" : "એક પણ પ્રવૃત્તિ નહિ ", 40 | "No more events to load" : "એક પણ ઇવેન્ટ લોડ થવાના બાકી નહિ ", 41 | "Files" : "ફાઇલો" 42 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 43 | } -------------------------------------------------------------------------------- /l10n/ia.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activities" : "Activitates", 5 | "Error loading activities" : "Error durante le cargamento de activitates", 6 | "No activities" : "Nulle activitates", 7 | "Load more activities" : "Incarga altere activitates", 8 | ", " : ", ", 9 | "{parameterList} and {lastParameter}" : "{parameterList} e {lastParameter}", 10 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} e {linkStart}%n plus{linkEnd}","{parameterList} e {linkStart}%n plus{linkEnd}"], 11 | "in {directory}" : "in {directory}", 12 | "This stream will show events like additions, changes & shares" : "Iste fluxo monstra eventos como additiones, cambiamentos e condivisiones", 13 | "There are no events for this filter" : "Il non ha eventos pro iste filtro", 14 | "Today" : "Hodie", 15 | "Yesterday" : "Heri", 16 | "Personal activity feed for %s" : "Syndication de activitate personal pro %s", 17 | "Your feed URL is invalid" : "Le URL del syndication es invalide", 18 | "Your settings have been updated." : "Tu preferentias ha essite actualisate.", 19 | "Mail" : "Posta", 20 | "Stream" : "Fluxo", 21 | "\"remote user\"" : "\"usator remote\"", 22 | "Activity notification" : "Notification de activitate", 23 | "All Activities" : "Omne activitates", 24 | "Activities by you" : "Activitates per te", 25 | "Activities by others" : "Activitates per alteres", 26 | "%s and %s" : "%s e %s", 27 | "Hello %s," : "Salute %s,", 28 | "You are receiving this email because the following things happened at %s" : "Tu recipe iste message perque le sequente cosas ha occurrite a %s", 29 | "* %1$s - %2$s" : "* %1$s - %2$s", 30 | "_* and %n more _::_* and %n more _" : ["* e %n altere ","* e %n alteres "], 31 | "Activity" : "Activitate", 32 | "List your own file actions in the stream" : "Lista tu proprie actiones de file in le fluxo", 33 | "Notify about your own actions via email" : "Notifica super tu proprie actiones via e-posta", 34 | "You need to set up your email address before you can receive notification emails." : "Tu necessita configurar tu adresse de e-posta ante que tu pote reciper messages de e-posta de notification.", 35 | "Send emails:" : "Invia messages de e-posta:", 36 | "Hourly" : "De cata ora", 37 | "Daily" : "Quotidian", 38 | "Weekly" : "Septimanal", 39 | "Activity feed" : "Syndication de activitate", 40 | "Enable RSS feed" : "Habilita syndication RSS", 41 | "No activity yet" : "Nulle activitate ancora", 42 | "No more events to load" : "Necun altere eventos de cargar", 43 | "Files" : "Files" 44 | }, 45 | "nplurals=2; plural=(n != 1);"); 46 | -------------------------------------------------------------------------------- /l10n/ia.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activities" : "Activitates", 3 | "Error loading activities" : "Error durante le cargamento de activitates", 4 | "No activities" : "Nulle activitates", 5 | "Load more activities" : "Incarga altere activitates", 6 | ", " : ", ", 7 | "{parameterList} and {lastParameter}" : "{parameterList} e {lastParameter}", 8 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} e {linkStart}%n plus{linkEnd}","{parameterList} e {linkStart}%n plus{linkEnd}"], 9 | "in {directory}" : "in {directory}", 10 | "This stream will show events like additions, changes & shares" : "Iste fluxo monstra eventos como additiones, cambiamentos e condivisiones", 11 | "There are no events for this filter" : "Il non ha eventos pro iste filtro", 12 | "Today" : "Hodie", 13 | "Yesterday" : "Heri", 14 | "Personal activity feed for %s" : "Syndication de activitate personal pro %s", 15 | "Your feed URL is invalid" : "Le URL del syndication es invalide", 16 | "Your settings have been updated." : "Tu preferentias ha essite actualisate.", 17 | "Mail" : "Posta", 18 | "Stream" : "Fluxo", 19 | "\"remote user\"" : "\"usator remote\"", 20 | "Activity notification" : "Notification de activitate", 21 | "All Activities" : "Omne activitates", 22 | "Activities by you" : "Activitates per te", 23 | "Activities by others" : "Activitates per alteres", 24 | "%s and %s" : "%s e %s", 25 | "Hello %s," : "Salute %s,", 26 | "You are receiving this email because the following things happened at %s" : "Tu recipe iste message perque le sequente cosas ha occurrite a %s", 27 | "* %1$s - %2$s" : "* %1$s - %2$s", 28 | "_* and %n more _::_* and %n more _" : ["* e %n altere ","* e %n alteres "], 29 | "Activity" : "Activitate", 30 | "List your own file actions in the stream" : "Lista tu proprie actiones de file in le fluxo", 31 | "Notify about your own actions via email" : "Notifica super tu proprie actiones via e-posta", 32 | "You need to set up your email address before you can receive notification emails." : "Tu necessita configurar tu adresse de e-posta ante que tu pote reciper messages de e-posta de notification.", 33 | "Send emails:" : "Invia messages de e-posta:", 34 | "Hourly" : "De cata ora", 35 | "Daily" : "Quotidian", 36 | "Weekly" : "Septimanal", 37 | "Activity feed" : "Syndication de activitate", 38 | "Enable RSS feed" : "Habilita syndication RSS", 39 | "No activity yet" : "Nulle activitate ancora", 40 | "No more events to load" : "Necun altere eventos de cargar", 41 | "Files" : "Files" 42 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 43 | } -------------------------------------------------------------------------------- /l10n/ja.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activities" : "アクティビティ", 5 | "Error loading activities" : "アクティビティ読み込みエラー", 6 | "No activities" : "アクティビティなし", 7 | "Load more activities" : "さらにアクティビティを読み込む", 8 | ", " : ", ", 9 | "{parameterList} and {lastParameter}" : "{parameterList} と {lastParameter}", 10 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} と {linkStart}さらに %n 件{linkEnd}"], 11 | "in {directory}" : "{directory} の中", 12 | "This stream will show events like additions, changes & shares" : "このストリームには、追加、変更、共有などのイベントが表示されます。", 13 | "There are no events for this filter" : "このフィルターで表示されるイベントはありません", 14 | "Today" : "今日", 15 | "Yesterday" : "昨日", 16 | "Personal activity feed for %s" : "\"%s\" の個人アクティビティフィード", 17 | "Your feed URL is invalid" : "フィードURLが無効です", 18 | "Your settings have been updated." : "設定を更新しました。", 19 | "Mail" : "メール", 20 | "Stream" : "ストリーム", 21 | "\"remote user\"" : "\"リモートユーザー\"", 22 | "Activity notification" : "アクティビティ通知", 23 | "All Activities" : "すべてのアクティビティ", 24 | "Activities by you" : "あなたのアクティビティ", 25 | "Activities by others" : "他の人のアクティビティ", 26 | "%s and %s" : "%s と %s", 27 | "Hello %s," : "%s さんこんにちは、", 28 | "You are receiving this email because the following things happened at %s" : "%s で以下の更新があったことをお知らせします。", 29 | "* %1$s - %2$s" : "* %1$s - %2$s", 30 | "_* and %n more _::_* and %n more _" : ["* と その他 %n 件"], 31 | "You are receiving this email because the following things happened at %s" : "%s で以下の更新があったことをお知らせします。", 32 | "%1$s - %2$s" : "%1$s - %2$s", 33 | "_and %n more _::_and %n more _" : ["と その他 %n 件"], 34 | "Activity" : "アクティビティ", 35 | "List your own file actions in the stream" : "ストリーム上にあなたのファイル操作を表示する", 36 | "Notify about your own actions via email" : "メールで自分のアクションを通知する", 37 | "You need to set up your email address before you can receive notification emails." : "通知メールを受け取る前にメールアドレスを設定してください。", 38 | "Send emails:" : "メールを送信:", 39 | "As soon as possible" : "直ちに", 40 | "Hourly" : "1時間ごと", 41 | "Daily" : "毎日", 42 | "Weekly" : "毎週", 43 | "Activity feed" : "アクティビティフィード", 44 | "Enable RSS feed" : "RSSフィードを有効にする", 45 | "No activity yet" : "アクティビティなし", 46 | "No more events to load" : "これ以上読み込むイベントはありません", 47 | "Files" : "ファイル" 48 | }, 49 | "nplurals=1; plural=0;"); 50 | -------------------------------------------------------------------------------- /l10n/ja.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activities" : "アクティビティ", 3 | "Error loading activities" : "アクティビティ読み込みエラー", 4 | "No activities" : "アクティビティなし", 5 | "Load more activities" : "さらにアクティビティを読み込む", 6 | ", " : ", ", 7 | "{parameterList} and {lastParameter}" : "{parameterList} と {lastParameter}", 8 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} と {linkStart}さらに %n 件{linkEnd}"], 9 | "in {directory}" : "{directory} の中", 10 | "This stream will show events like additions, changes & shares" : "このストリームには、追加、変更、共有などのイベントが表示されます。", 11 | "There are no events for this filter" : "このフィルターで表示されるイベントはありません", 12 | "Today" : "今日", 13 | "Yesterday" : "昨日", 14 | "Personal activity feed for %s" : "\"%s\" の個人アクティビティフィード", 15 | "Your feed URL is invalid" : "フィードURLが無効です", 16 | "Your settings have been updated." : "設定を更新しました。", 17 | "Mail" : "メール", 18 | "Stream" : "ストリーム", 19 | "\"remote user\"" : "\"リモートユーザー\"", 20 | "Activity notification" : "アクティビティ通知", 21 | "All Activities" : "すべてのアクティビティ", 22 | "Activities by you" : "あなたのアクティビティ", 23 | "Activities by others" : "他の人のアクティビティ", 24 | "%s and %s" : "%s と %s", 25 | "Hello %s," : "%s さんこんにちは、", 26 | "You are receiving this email because the following things happened at %s" : "%s で以下の更新があったことをお知らせします。", 27 | "* %1$s - %2$s" : "* %1$s - %2$s", 28 | "_* and %n more _::_* and %n more _" : ["* と その他 %n 件"], 29 | "You are receiving this email because the following things happened at %s" : "%s で以下の更新があったことをお知らせします。", 30 | "%1$s - %2$s" : "%1$s - %2$s", 31 | "_and %n more _::_and %n more _" : ["と その他 %n 件"], 32 | "Activity" : "アクティビティ", 33 | "List your own file actions in the stream" : "ストリーム上にあなたのファイル操作を表示する", 34 | "Notify about your own actions via email" : "メールで自分のアクションを通知する", 35 | "You need to set up your email address before you can receive notification emails." : "通知メールを受け取る前にメールアドレスを設定してください。", 36 | "Send emails:" : "メールを送信:", 37 | "As soon as possible" : "直ちに", 38 | "Hourly" : "1時間ごと", 39 | "Daily" : "毎日", 40 | "Weekly" : "毎週", 41 | "Activity feed" : "アクティビティフィード", 42 | "Enable RSS feed" : "RSSフィードを有効にする", 43 | "No activity yet" : "アクティビティなし", 44 | "No more events to load" : "これ以上読み込むイベントはありません", 45 | "Files" : "ファイル" 46 | },"pluralForm" :"nplurals=1; plural=0;" 47 | } -------------------------------------------------------------------------------- /l10n/km.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activity" : "សកម្មភាព", 5 | "Personal activity feed for %s" : "សកម្មភាព feed ផ្ទាល់​ខ្លួន​សម្រាប់ %s", 6 | "Your settings have been updated." : "ការ​កំណត់​របស់​អ្នក​ត្រូវ​បាន​ធ្វើ​បច្ចុប្បន្នភាព។", 7 | "Activity notification" : "សេចក្ដីជូន​ដំណឺង​ស្ដីពីសកម្មភាព", 8 | "All Activities" : "សកម្មភាព​ទាំង​អស់", 9 | "Activities by you" : "សកម្មភាព​ធ្វើ​ដោយ​អ្នក", 10 | "Activities by others" : "សកម្មភាព​ធ្វើ​ដោយ​អ្នក​ដទៃ", 11 | "%s and %s" : "%s និង %s", 12 | ", " : ", ", 13 | "_%s and %n more_::_%s and %n more_" : ["%s និង %n ជាច្រើន"], 14 | "_%s and %n more_::_%s and %n more_" : ["%s និង %n ជាច្រើន"], 15 | "Hello %s," : "សួស្ដី %s,", 16 | "You are receiving this email because in the last hour the following things happened at %s" : "អ្នក​ទទួល​បាន​អ៊ីម៉ែល​នេះ ព្រោះ​ក្នុង​ម៉ោង​ចុង​ក្រោយ​ដែលអ្វី​មួយ​ចំនួន​ខាងក្រោមនេះ​បានកើត​ឡើង​នៅ %s", 17 | "You are receiving this email because in the last day the following things happened at %s" : "អ្នក​ទទួល​បាន​អ៊ីម៉ែល​នេះ ព្រោះ​ក្នុង​​ថ្ងៃ​ចុង​ក្រោយ​ដែលអ្វី​មួយ​ចំនួន​ខាងក្រោមនេះ​បានកើត​ឡើង​នៅ %s", 18 | "You are receiving this email because in the last week the following things happened at %s" : "អ្នក​ទទួល​បាន​អ៊ីម៉ែល​នេះ ព្រោះ​ក្នុង​សប្តាហ៍​​ចុង​ក្រោយ​ដែលអ្វី​មួយ​ចំនួន​ខាងក្រោមនេះ​បានកើត​ឡើង​នៅ %s", 19 | "Notifications" : "ការ​ជូន​ដំណឹង", 20 | "Mail" : "សំបុត្រ", 21 | "Stream" : "ស្ទ្រីម", 22 | "You need to set up your email address before you can receive notification emails." : "អ្នក​ចាំបាច់​ត្រូវតែដំឡើង​អាសយដ្ឋាន​អ៊ីមែលរបស់អ្នកមុនពេល​ដែលអ្នកអាចទទួលបានការជូន​ដំណឹង​ទៅកាន់​អ៊ីមែល ។", 23 | "Send emails:" : "ផ្ញើ​អ៊ីមែល", 24 | "Hourly" : "រាល់​ម៉ោង", 25 | "Daily" : "រាល់ថ្ងៃ", 26 | "Weekly" : "រាល់​សប្ដាហ៍", 27 | "Activity feed" : "សកម្មភាព feed", 28 | "Enable RSS feed" : "បើក RSS feed", 29 | "No more events to load" : "គ្មាន​ព្រឹត្តិការណ៍​ផ្សេងទៀត​បើក​ដំណើរការទេ", 30 | "Files" : "ឯកសារ" 31 | }, 32 | "nplurals=1; plural=0;"); 33 | -------------------------------------------------------------------------------- /l10n/km.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activity" : "សកម្មភាព", 3 | "Personal activity feed for %s" : "សកម្មភាព feed ផ្ទាល់​ខ្លួន​សម្រាប់ %s", 4 | "Your settings have been updated." : "ការ​កំណត់​របស់​អ្នក​ត្រូវ​បាន​ធ្វើ​បច្ចុប្បន្នភាព។", 5 | "Activity notification" : "សេចក្ដីជូន​ដំណឺង​ស្ដីពីសកម្មភាព", 6 | "All Activities" : "សកម្មភាព​ទាំង​អស់", 7 | "Activities by you" : "សកម្មភាព​ធ្វើ​ដោយ​អ្នក", 8 | "Activities by others" : "សកម្មភាព​ធ្វើ​ដោយ​អ្នក​ដទៃ", 9 | "%s and %s" : "%s និង %s", 10 | ", " : ", ", 11 | "_%s and %n more_::_%s and %n more_" : ["%s និង %n ជាច្រើន"], 12 | "_%s and %n more_::_%s and %n more_" : ["%s និង %n ជាច្រើន"], 13 | "Hello %s," : "សួស្ដី %s,", 14 | "You are receiving this email because in the last hour the following things happened at %s" : "អ្នក​ទទួល​បាន​អ៊ីម៉ែល​នេះ ព្រោះ​ក្នុង​ម៉ោង​ចុង​ក្រោយ​ដែលអ្វី​មួយ​ចំនួន​ខាងក្រោមនេះ​បានកើត​ឡើង​នៅ %s", 15 | "You are receiving this email because in the last day the following things happened at %s" : "អ្នក​ទទួល​បាន​អ៊ីម៉ែល​នេះ ព្រោះ​ក្នុង​​ថ្ងៃ​ចុង​ក្រោយ​ដែលអ្វី​មួយ​ចំនួន​ខាងក្រោមនេះ​បានកើត​ឡើង​នៅ %s", 16 | "You are receiving this email because in the last week the following things happened at %s" : "អ្នក​ទទួល​បាន​អ៊ីម៉ែល​នេះ ព្រោះ​ក្នុង​សប្តាហ៍​​ចុង​ក្រោយ​ដែលអ្វី​មួយ​ចំនួន​ខាងក្រោមនេះ​បានកើត​ឡើង​នៅ %s", 17 | "Notifications" : "ការ​ជូន​ដំណឹង", 18 | "Mail" : "សំបុត្រ", 19 | "Stream" : "ស្ទ្រីម", 20 | "You need to set up your email address before you can receive notification emails." : "អ្នក​ចាំបាច់​ត្រូវតែដំឡើង​អាសយដ្ឋាន​អ៊ីមែលរបស់អ្នកមុនពេល​ដែលអ្នកអាចទទួលបានការជូន​ដំណឹង​ទៅកាន់​អ៊ីមែល ។", 21 | "Send emails:" : "ផ្ញើ​អ៊ីមែល", 22 | "Hourly" : "រាល់​ម៉ោង", 23 | "Daily" : "រាល់ថ្ងៃ", 24 | "Weekly" : "រាល់​សប្ដាហ៍", 25 | "Activity feed" : "សកម្មភាព feed", 26 | "Enable RSS feed" : "បើក RSS feed", 27 | "No more events to load" : "គ្មាន​ព្រឹត្តិការណ៍​ផ្សេងទៀត​បើក​ដំណើរការទេ", 28 | "Files" : "ឯកសារ" 29 | },"pluralForm" :"nplurals=1; plural=0;" 30 | } -------------------------------------------------------------------------------- /l10n/ko.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activities" : "활동", 5 | "Error loading activities" : "활동을 불러오는 중 오류 발생", 6 | "No activities" : "활동 없음", 7 | "Load more activities" : "더 많은 활동 불러오기", 8 | ", " : ", ", 9 | "{parameterList} and {lastParameter}" : "{parameterList} 및 {lastParameter}", 10 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} 및 {linkStart}%n개 더{linkEnd}"], 11 | "in {directory}" : "{directory}에 있음", 12 | "This stream will show events like additions, changes & shares" : "스트림에는 추가, 변경, 공유와 같은 이벤트가 표시됩니다", 13 | "There are no events for this filter" : "이 필터를 만족하는 이벤트 없음", 14 | "Today" : "오늘", 15 | "Yesterday" : "어제", 16 | "Personal activity feed for %s" : "%s 님의 개인 활동 피드", 17 | "Your feed URL is invalid" : "피드 주소가 잘못되었습니다", 18 | "Your settings have been updated." : "설정이 업데이트 되었습니다.", 19 | "Mail" : "메일", 20 | "Stream" : "스트림", 21 | "\"remote user\"" : "\"원격 사용자\"", 22 | "Activity notification" : "활동 알림", 23 | "All Activities" : "모든 활동", 24 | "Activities by you" : "내 활동", 25 | "Activities by others" : "다른 사람의 활동", 26 | "%s and %s" : "%s, %s", 27 | "Hello %s," : "%s 님 안녕하세요,", 28 | "You are receiving this email because the following things happened at %s" : "%s에서 다음 활동이 있었기 때문에 이 이메일을 보냈습니다", 29 | "* %1$s - %2$s" : "* %1$s - %2$s", 30 | "_* and %n more _::_* and %n more _" : ["* 그 외 %n개 더 있음"], 31 | "You are receiving this email because the following things happened at %s" : "이 이메일이 발송된 이유는 다음과 같은 일들이 %s에서 일어났기 때문입니다.", 32 | "%1$s - %2$s" : "%1$s-%2$s", 33 | "_and %n more _::_and %n more _" : ["그 외 %n개 더 있음"], 34 | "Activity" : "활동", 35 | "List your own file actions in the stream" : "스트림에서 내 파일 활동 보기", 36 | "Notify about your own actions via email" : "내 활동도 이메일로 알림 받기", 37 | "You need to set up your email address before you can receive notification emails." : "알림 이메일을 받으려면 이메일 주소를 설정해야 합니다.", 38 | "Send emails:" : "이메일 보내는 간격:", 39 | "As soon as possible" : "가능한 한 빨리", 40 | "Hourly" : "1시간마다", 41 | "Daily" : "매일", 42 | "Weekly" : "매주", 43 | "Activity feed" : "활동 피드", 44 | "Enable RSS feed" : "RSS 피드 사용", 45 | "No activity yet" : "아직 활동 없음", 46 | "No more events to load" : "더 이상 불러올 이벤트 없음", 47 | "Files" : "파일" 48 | }, 49 | "nplurals=1; plural=0;"); 50 | -------------------------------------------------------------------------------- /l10n/ko.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activities" : "활동", 3 | "Error loading activities" : "활동을 불러오는 중 오류 발생", 4 | "No activities" : "활동 없음", 5 | "Load more activities" : "더 많은 활동 불러오기", 6 | ", " : ", ", 7 | "{parameterList} and {lastParameter}" : "{parameterList} 및 {lastParameter}", 8 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} 및 {linkStart}%n개 더{linkEnd}"], 9 | "in {directory}" : "{directory}에 있음", 10 | "This stream will show events like additions, changes & shares" : "스트림에는 추가, 변경, 공유와 같은 이벤트가 표시됩니다", 11 | "There are no events for this filter" : "이 필터를 만족하는 이벤트 없음", 12 | "Today" : "오늘", 13 | "Yesterday" : "어제", 14 | "Personal activity feed for %s" : "%s 님의 개인 활동 피드", 15 | "Your feed URL is invalid" : "피드 주소가 잘못되었습니다", 16 | "Your settings have been updated." : "설정이 업데이트 되었습니다.", 17 | "Mail" : "메일", 18 | "Stream" : "스트림", 19 | "\"remote user\"" : "\"원격 사용자\"", 20 | "Activity notification" : "활동 알림", 21 | "All Activities" : "모든 활동", 22 | "Activities by you" : "내 활동", 23 | "Activities by others" : "다른 사람의 활동", 24 | "%s and %s" : "%s, %s", 25 | "Hello %s," : "%s 님 안녕하세요,", 26 | "You are receiving this email because the following things happened at %s" : "%s에서 다음 활동이 있었기 때문에 이 이메일을 보냈습니다", 27 | "* %1$s - %2$s" : "* %1$s - %2$s", 28 | "_* and %n more _::_* and %n more _" : ["* 그 외 %n개 더 있음"], 29 | "You are receiving this email because the following things happened at %s" : "이 이메일이 발송된 이유는 다음과 같은 일들이 %s에서 일어났기 때문입니다.", 30 | "%1$s - %2$s" : "%1$s-%2$s", 31 | "_and %n more _::_and %n more _" : ["그 외 %n개 더 있음"], 32 | "Activity" : "활동", 33 | "List your own file actions in the stream" : "스트림에서 내 파일 활동 보기", 34 | "Notify about your own actions via email" : "내 활동도 이메일로 알림 받기", 35 | "You need to set up your email address before you can receive notification emails." : "알림 이메일을 받으려면 이메일 주소를 설정해야 합니다.", 36 | "Send emails:" : "이메일 보내는 간격:", 37 | "As soon as possible" : "가능한 한 빨리", 38 | "Hourly" : "1시간마다", 39 | "Daily" : "매일", 40 | "Weekly" : "매주", 41 | "Activity feed" : "활동 피드", 42 | "Enable RSS feed" : "RSS 피드 사용", 43 | "No activity yet" : "아직 활동 없음", 44 | "No more events to load" : "더 이상 불러올 이벤트 없음", 45 | "Files" : "파일" 46 | },"pluralForm" :"nplurals=1; plural=0;" 47 | } -------------------------------------------------------------------------------- /l10n/lb.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activities" : "Aktivitéiten", 5 | "Error loading activities" : "Feeler beim Luede vun den Aktivitéiten", 6 | "No activities" : "Keng Aktivitéit", 7 | "Load more activities" : "Méi Aktivitéiten lueden", 8 | ", " : ", ", 9 | "{parameterList} and {lastParameter}" : "{parameterList} an {lastParameter}", 10 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} an {linkStart}%n méi{linkEnd}","{parameterList} an {linkStart}%n méi{linkEnd}"], 11 | "in {directory}" : "am {directory}", 12 | "This stream will show events like additions, changes & shares" : "Dëse Floss weist Evenementer wéi dobäigesaten, geännert a gedeelte Fichieren un", 13 | "There are no events for this filter" : "Et gi keng Evenenementer fir dëse Filter", 14 | "Today" : "Haut", 15 | "Yesterday" : "Gëschter", 16 | "Personal activity feed for %s" : "Perséinlechen Aktivitéite-Feed fir %s", 17 | "Your feed URL is invalid" : "D'Feed-Adress ass ongëlteg", 18 | "Your settings have been updated." : "Deng Astellunge goufen aktualiséiert.", 19 | "Mail" : "Mail", 20 | "Stream" : "Floss", 21 | "\"remote user\"" : "\"Remote-Benotzer\"", 22 | "Activity notification" : "Aktivitéits-Notifikatiounen", 23 | "All Activities" : "All Aktivitéiten", 24 | "Activities by you" : "Aktivitéite vun dir", 25 | "Activities by others" : "Aktivitéite vun anere Leit", 26 | "%s and %s" : "%s an %s", 27 | "Hello %s," : "Hallo %s,", 28 | "You are receiving this email because the following things happened at %s" : "Du kriss dës E-Mail well folgend Saache bei %s geschitt sinn", 29 | "* %1$s - %2$s" : "* %1$s - %2$s", 30 | "_* and %n more _::_* and %n more _" : ["* an %n méi","* an %n méi"], 31 | "Activity" : "Aktivitéit", 32 | "List your own file actions in the stream" : "Eegen Aktiounen op Fichieren am Floss oplëschten", 33 | "Notify about your own actions via email" : "Iwwer eegene Aktiounen iwwer E-Mail informéieren", 34 | "You need to set up your email address before you can receive notification emails." : "Du muss deng E-Mail-Adress konfiguréieren ier s de Notifikatiouns-Maile kanns emfänken.", 35 | "Send emails:" : "Emaile schécken:", 36 | "Hourly" : "All Stonn", 37 | "Daily" : "All Dag", 38 | "Weekly" : "All Woch", 39 | "Activity feed" : "Aktivitéits-Feed", 40 | "Enable RSS feed" : "RSS-Feed aktivéieren", 41 | "No activity yet" : "Bis elo keng Aktivitéit", 42 | "No more events to load" : "Keng weider Evenementer fir ze lueden", 43 | "Files" : "Fichieren" 44 | }, 45 | "nplurals=2; plural=(n != 1);"); 46 | -------------------------------------------------------------------------------- /l10n/lb.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activities" : "Aktivitéiten", 3 | "Error loading activities" : "Feeler beim Luede vun den Aktivitéiten", 4 | "No activities" : "Keng Aktivitéit", 5 | "Load more activities" : "Méi Aktivitéiten lueden", 6 | ", " : ", ", 7 | "{parameterList} and {lastParameter}" : "{parameterList} an {lastParameter}", 8 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} an {linkStart}%n méi{linkEnd}","{parameterList} an {linkStart}%n méi{linkEnd}"], 9 | "in {directory}" : "am {directory}", 10 | "This stream will show events like additions, changes & shares" : "Dëse Floss weist Evenementer wéi dobäigesaten, geännert a gedeelte Fichieren un", 11 | "There are no events for this filter" : "Et gi keng Evenenementer fir dëse Filter", 12 | "Today" : "Haut", 13 | "Yesterday" : "Gëschter", 14 | "Personal activity feed for %s" : "Perséinlechen Aktivitéite-Feed fir %s", 15 | "Your feed URL is invalid" : "D'Feed-Adress ass ongëlteg", 16 | "Your settings have been updated." : "Deng Astellunge goufen aktualiséiert.", 17 | "Mail" : "Mail", 18 | "Stream" : "Floss", 19 | "\"remote user\"" : "\"Remote-Benotzer\"", 20 | "Activity notification" : "Aktivitéits-Notifikatiounen", 21 | "All Activities" : "All Aktivitéiten", 22 | "Activities by you" : "Aktivitéite vun dir", 23 | "Activities by others" : "Aktivitéite vun anere Leit", 24 | "%s and %s" : "%s an %s", 25 | "Hello %s," : "Hallo %s,", 26 | "You are receiving this email because the following things happened at %s" : "Du kriss dës E-Mail well folgend Saache bei %s geschitt sinn", 27 | "* %1$s - %2$s" : "* %1$s - %2$s", 28 | "_* and %n more _::_* and %n more _" : ["* an %n méi","* an %n méi"], 29 | "Activity" : "Aktivitéit", 30 | "List your own file actions in the stream" : "Eegen Aktiounen op Fichieren am Floss oplëschten", 31 | "Notify about your own actions via email" : "Iwwer eegene Aktiounen iwwer E-Mail informéieren", 32 | "You need to set up your email address before you can receive notification emails." : "Du muss deng E-Mail-Adress konfiguréieren ier s de Notifikatiouns-Maile kanns emfänken.", 33 | "Send emails:" : "Emaile schécken:", 34 | "Hourly" : "All Stonn", 35 | "Daily" : "All Dag", 36 | "Weekly" : "All Woch", 37 | "Activity feed" : "Aktivitéits-Feed", 38 | "Enable RSS feed" : "RSS-Feed aktivéieren", 39 | "No activity yet" : "Bis elo keng Aktivitéit", 40 | "No more events to load" : "Keng weider Evenementer fir ze lueden", 41 | "Files" : "Fichieren" 42 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 43 | } -------------------------------------------------------------------------------- /l10n/lo.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activities" : "ກິດຈະກໍາຕ່າງໆ", 5 | "Error loading activities" : "ເກີດຂໍ້ຜິດພາດໃນການໂຫລດກິດຈະກຳ", 6 | "No activities" : "ບໍ່ມີກິດຈະກໍາ", 7 | "Load more activities" : "ໂຫລດກິດຈະກໍາເພີ່ມເຕີມ", 8 | ", " : ",", 9 | "{parameterList} and {lastParameter}" : "{parameterList} ແລະ {lastParameter}", 10 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} ແລະ {linkStart} ຫຼາຍກວ່າ{linkEnd}"], 11 | "in {directory}" : "ໃນ {directory}", 12 | "This stream will show events like additions, changes & shares" : "ສະຕຣີມນີ້ຈະສະແດງໃຫ້ເຫັນເຫດການຕ່າງໆເຊັ່ນ: ການເພີ່ມ, ການປ່ຽນແປງ ແລະ ການແບ່ງປັນ", 13 | "There are no events for this filter" : "ບໍ່ມີເຫດການສໍາລັບຕົວກອງນີ້", 14 | "Today" : "ມື້ນີ້", 15 | "Yesterday" : "ມື້ວານ", 16 | "Personal activity feed for %s" : "ຟີດກິດຈະກໍາສ່ວນບຸກຄົນສໍາລັບ%s", 17 | "Your feed URL is invalid" : "URL ຟີດຂອງທ່ານບໍ່ຖືກຕ້ອງ", 18 | "Your settings have been updated." : "ການປັບຄ່າຂອງທ່ານໄດ້ຖືກປັບປຸງແລ້ວ.", 19 | "Mail" : "ເມວ", 20 | "Stream" : "ສະຕຣີມ", 21 | "\"remote user\"" : "\"ຜູ້ໃຊ້ໄລຍະໄກ\"", 22 | "Activity notification" : "ການແຈ້ງການກິດຈະກໍາ", 23 | "All Activities" : "ກິດຈະກໍາທັງໝົດ", 24 | "Activities by you" : "ກິດຈະກໍາຂອງທ່ານ", 25 | "Activities by others" : "ກິດຈະກໍາຂອງຜູ້ອື່ນ", 26 | "%s and %s" : "%s ແລະ %s", 27 | "Hello %s," : "ສະບາຍດີ %s,", 28 | "You are receiving this email because the following things happened at %s" : "ທ່ານໄດ້ຮັບອີເມວນີ້ເນື່ອງຈາກເກີດເຫດການຕໍ່ໄປນີ້ %s", 29 | "* %1$s - %2$s" : "* %1$s - %2$s", 30 | "_* and %n more _::_* and %n more _" : ["* ແລະ %n ຫລາຍກວ່າ "], 31 | "Activity" : "ກິດຈະກຳ", 32 | "List your own file actions in the stream" : "ສະແດງລາຍການໄຟລ໌ຂອງທ່ານເອງໃນລະບົບສະຕີມ", 33 | "Notify about your own actions via email" : "ແຈ້ງເຕືອນກ່ຽວກັບການກະທໍາຂອງທ່ານເອງຜ່ານອີເມວ", 34 | "You need to set up your email address before you can receive notification emails." : "ທ່ານຈໍາເປັນຕ້ອງຕັ້ງຄ່າອີເມວຂອງທ່ານກ່ອນທີ່ທ່ານຈະສາມາດໄດ້ຮັບອີເມວແຈ້ງການ.", 35 | "Send emails:" : "ສົ່ງອີເມວ:", 36 | "Hourly" : "ທຸກໆຊົ່ວໂມງ", 37 | "Daily" : "ປະຈຳວັນ", 38 | "Weekly" : "ທຸກອາທິດ", 39 | "Activity feed" : "ຟີດກິດຈະກຳ", 40 | "Enable RSS feed" : "ເປີດໃຊ້ງານຟີດ RSS", 41 | "No activity yet" : "ຍັງບໍ່ມີກິດຈະກຳ", 42 | "No more events to load" : "ບໍ່ມີເຫດການເພີ່ມເຕີມທີ່ຈະໂຫລດ", 43 | "Files" : "ໄຟຣ໌" 44 | }, 45 | "nplurals=1; plural=0;"); 46 | -------------------------------------------------------------------------------- /l10n/lo.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activities" : "ກິດຈະກໍາຕ່າງໆ", 3 | "Error loading activities" : "ເກີດຂໍ້ຜິດພາດໃນການໂຫລດກິດຈະກຳ", 4 | "No activities" : "ບໍ່ມີກິດຈະກໍາ", 5 | "Load more activities" : "ໂຫລດກິດຈະກໍາເພີ່ມເຕີມ", 6 | ", " : ",", 7 | "{parameterList} and {lastParameter}" : "{parameterList} ແລະ {lastParameter}", 8 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} ແລະ {linkStart} ຫຼາຍກວ່າ{linkEnd}"], 9 | "in {directory}" : "ໃນ {directory}", 10 | "This stream will show events like additions, changes & shares" : "ສະຕຣີມນີ້ຈະສະແດງໃຫ້ເຫັນເຫດການຕ່າງໆເຊັ່ນ: ການເພີ່ມ, ການປ່ຽນແປງ ແລະ ການແບ່ງປັນ", 11 | "There are no events for this filter" : "ບໍ່ມີເຫດການສໍາລັບຕົວກອງນີ້", 12 | "Today" : "ມື້ນີ້", 13 | "Yesterday" : "ມື້ວານ", 14 | "Personal activity feed for %s" : "ຟີດກິດຈະກໍາສ່ວນບຸກຄົນສໍາລັບ%s", 15 | "Your feed URL is invalid" : "URL ຟີດຂອງທ່ານບໍ່ຖືກຕ້ອງ", 16 | "Your settings have been updated." : "ການປັບຄ່າຂອງທ່ານໄດ້ຖືກປັບປຸງແລ້ວ.", 17 | "Mail" : "ເມວ", 18 | "Stream" : "ສະຕຣີມ", 19 | "\"remote user\"" : "\"ຜູ້ໃຊ້ໄລຍະໄກ\"", 20 | "Activity notification" : "ການແຈ້ງການກິດຈະກໍາ", 21 | "All Activities" : "ກິດຈະກໍາທັງໝົດ", 22 | "Activities by you" : "ກິດຈະກໍາຂອງທ່ານ", 23 | "Activities by others" : "ກິດຈະກໍາຂອງຜູ້ອື່ນ", 24 | "%s and %s" : "%s ແລະ %s", 25 | "Hello %s," : "ສະບາຍດີ %s,", 26 | "You are receiving this email because the following things happened at %s" : "ທ່ານໄດ້ຮັບອີເມວນີ້ເນື່ອງຈາກເກີດເຫດການຕໍ່ໄປນີ້ %s", 27 | "* %1$s - %2$s" : "* %1$s - %2$s", 28 | "_* and %n more _::_* and %n more _" : ["* ແລະ %n ຫລາຍກວ່າ "], 29 | "Activity" : "ກິດຈະກຳ", 30 | "List your own file actions in the stream" : "ສະແດງລາຍການໄຟລ໌ຂອງທ່ານເອງໃນລະບົບສະຕີມ", 31 | "Notify about your own actions via email" : "ແຈ້ງເຕືອນກ່ຽວກັບການກະທໍາຂອງທ່ານເອງຜ່ານອີເມວ", 32 | "You need to set up your email address before you can receive notification emails." : "ທ່ານຈໍາເປັນຕ້ອງຕັ້ງຄ່າອີເມວຂອງທ່ານກ່ອນທີ່ທ່ານຈະສາມາດໄດ້ຮັບອີເມວແຈ້ງການ.", 33 | "Send emails:" : "ສົ່ງອີເມວ:", 34 | "Hourly" : "ທຸກໆຊົ່ວໂມງ", 35 | "Daily" : "ປະຈຳວັນ", 36 | "Weekly" : "ທຸກອາທິດ", 37 | "Activity feed" : "ຟີດກິດຈະກຳ", 38 | "Enable RSS feed" : "ເປີດໃຊ້ງານຟີດ RSS", 39 | "No activity yet" : "ຍັງບໍ່ມີກິດຈະກຳ", 40 | "No more events to load" : "ບໍ່ມີເຫດການເພີ່ມເຕີມທີ່ຈະໂຫລດ", 41 | "Files" : "ໄຟຣ໌" 42 | },"pluralForm" :"nplurals=1; plural=0;" 43 | } -------------------------------------------------------------------------------- /l10n/ml_IN.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activity" : "പ്രവൃത്തി", 5 | "Personal activity feed for %s" : "%sനു് വേണ്ടിയുള്ള സ്വകാര്യ പ്രവൃത്തികളുടെ ഫീഡ്", 6 | "Your settings have been updated." : "നിങ്ങളുടെ താത്പര്യങ്ങൾ പരിഷ്കരിച്ചു", 7 | "Activity notification" : "പ്രവർത്തന അറിയിപ്പ്", 8 | "All Activities" : "എല്ലാ പ്രവൃത്തികളും", 9 | "Activities by you" : "താങ്കളുടെ പ്രവൃത്തികൾ", 10 | "Activities by others" : "മറ്റുള്ളവരുടെ പ്രവൃത്തികൾ", 11 | "%s and %s" : "%sഉം %sഉം", 12 | ", " : ",", 13 | "_%s and %n more_::_%s and %n more_" : ["%sഉം %n എണ്ണം കൂടുതലും","%sഉം %n എണ്ണം കൂടുതലും"], 14 | "_%s and %n more_::_%s and %n more_" : ["%sഉം %n എണ്ണം കൂടുതലും","%sഉം %n എണ്ണം കൂടുതലും"], 15 | "Hello %s," : "നമസ്കാരം %s, ", 16 | "You are receiving this email because in the last hour the following things happened at %s" : "%sൽ കഴിഞ്ഞ ഒരു മണിക്കൂറിൽ താഴെ പറയുന്നവ സംഭവിച്ചതിനാലാണ് താങ്കൾക്ക് ഈ ഈമെയിൽ ലഭിക്കുന്നത്.", 17 | "You are receiving this email because in the last day the following things happened at %s" : "%sൽ കഴിഞ്ഞ ദിവസം താഴെ പറയുന്നവ സംഭവിച്ചതിനാലാണ് താങ്കൾക്ക് ഈ ഈമെയിൽ ലഭിക്കുന്നത്.", 18 | "You are receiving this email because in the last week the following things happened at %s" : "%sൽ കഴിഞ്ഞ ആഴ്ച താഴെ പറയുന്നവ സംഭവിച്ചതിനാലാണ് താങ്കൾക്ക് ഈ ഈമെയിൽ ലഭിക്കുന്നത്.", 19 | "Notifications" : "അറിയിപ്പ്", 20 | "Mail" : "കത്ത്", 21 | "Stream" : "പ്രവാഹം", 22 | "You need to set up your email address before you can receive notification emails." : "അറിയിപ്പ് ഈമെയിലുകൾ ലഭിക്കുന്നതിനായി താങ്കൾ താങ്കളുടെ ഈമെയിൽ വിലാസം സജ്ജമാക്കേണ്ടതുണ്ട്.", 23 | "Send emails:" : "ഈമെയിലുകൾ അയയ്ക്കുക:", 24 | "Hourly" : "ഓരോ മണിക്കൂറും", 25 | "Daily" : "ദിവസേന", 26 | "Weekly" : "ആഴ്ച ", 27 | "Activity feed" : "പ്രവൃത്തികളുടെ ഫീഡ്", 28 | "Enable RSS feed" : "ആർഎസ്‌എസ് ഫീഡ് പ്രവർത്തനസജ്ജമാക്കുക", 29 | "No more events to load" : "ലഭ്യമാക്കാൻ ഇനി ചടങ്ങുകളൊന്നുമില്ല", 30 | "Files" : "ഫയലുകൾ" 31 | }, 32 | "nplurals=2; plural=(n != 1);"); 33 | -------------------------------------------------------------------------------- /l10n/ml_IN.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activity" : "പ്രവൃത്തി", 3 | "Personal activity feed for %s" : "%sനു് വേണ്ടിയുള്ള സ്വകാര്യ പ്രവൃത്തികളുടെ ഫീഡ്", 4 | "Your settings have been updated." : "നിങ്ങളുടെ താത്പര്യങ്ങൾ പരിഷ്കരിച്ചു", 5 | "Activity notification" : "പ്രവർത്തന അറിയിപ്പ്", 6 | "All Activities" : "എല്ലാ പ്രവൃത്തികളും", 7 | "Activities by you" : "താങ്കളുടെ പ്രവൃത്തികൾ", 8 | "Activities by others" : "മറ്റുള്ളവരുടെ പ്രവൃത്തികൾ", 9 | "%s and %s" : "%sഉം %sഉം", 10 | ", " : ",", 11 | "_%s and %n more_::_%s and %n more_" : ["%sഉം %n എണ്ണം കൂടുതലും","%sഉം %n എണ്ണം കൂടുതലും"], 12 | "_%s and %n more_::_%s and %n more_" : ["%sഉം %n എണ്ണം കൂടുതലും","%sഉം %n എണ്ണം കൂടുതലും"], 13 | "Hello %s," : "നമസ്കാരം %s, ", 14 | "You are receiving this email because in the last hour the following things happened at %s" : "%sൽ കഴിഞ്ഞ ഒരു മണിക്കൂറിൽ താഴെ പറയുന്നവ സംഭവിച്ചതിനാലാണ് താങ്കൾക്ക് ഈ ഈമെയിൽ ലഭിക്കുന്നത്.", 15 | "You are receiving this email because in the last day the following things happened at %s" : "%sൽ കഴിഞ്ഞ ദിവസം താഴെ പറയുന്നവ സംഭവിച്ചതിനാലാണ് താങ്കൾക്ക് ഈ ഈമെയിൽ ലഭിക്കുന്നത്.", 16 | "You are receiving this email because in the last week the following things happened at %s" : "%sൽ കഴിഞ്ഞ ആഴ്ച താഴെ പറയുന്നവ സംഭവിച്ചതിനാലാണ് താങ്കൾക്ക് ഈ ഈമെയിൽ ലഭിക്കുന്നത്.", 17 | "Notifications" : "അറിയിപ്പ്", 18 | "Mail" : "കത്ത്", 19 | "Stream" : "പ്രവാഹം", 20 | "You need to set up your email address before you can receive notification emails." : "അറിയിപ്പ് ഈമെയിലുകൾ ലഭിക്കുന്നതിനായി താങ്കൾ താങ്കളുടെ ഈമെയിൽ വിലാസം സജ്ജമാക്കേണ്ടതുണ്ട്.", 21 | "Send emails:" : "ഈമെയിലുകൾ അയയ്ക്കുക:", 22 | "Hourly" : "ഓരോ മണിക്കൂറും", 23 | "Daily" : "ദിവസേന", 24 | "Weekly" : "ആഴ്ച ", 25 | "Activity feed" : "പ്രവൃത്തികളുടെ ഫീഡ്", 26 | "Enable RSS feed" : "ആർഎസ്‌എസ് ഫീഡ് പ്രവർത്തനസജ്ജമാക്കുക", 27 | "No more events to load" : "ലഭ്യമാക്കാൻ ഇനി ചടങ്ങുകളൊന്നുമില്ല", 28 | "Files" : "ഫയലുകൾ" 29 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 30 | } -------------------------------------------------------------------------------- /l10n/ms_MY.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activities" : "Aktiviti", 5 | "Error loading activities" : "Ralat memuatnaik aktiviti", 6 | "No activities" : "Tiada aktiviti", 7 | "Load more activities" : "Masukkan lebih aktiviti", 8 | ", " : ", ", 9 | "{parameterList} and {lastParameter}" : "{parameterList} dan {lastParameter}", 10 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} dan {linkStart}%n lagi{linkEnd}"], 11 | "in {directory}" : "dalam {directory}", 12 | "Today" : "Hari ini", 13 | "Yesterday" : "Semalam", 14 | "Personal activity feed for %s" : "Aliran aktiviti peribadi untuk %s", 15 | "Your feed URL is invalid" : "URL suapan anda tidak sah.", 16 | "Your settings have been updated." : "Tetapan anda telah dikemaskini.", 17 | "Mail" : "Mel", 18 | "Stream" : "Strim", 19 | "Activity notification" : "Pemberitahuan aktiviti", 20 | "All Activities" : "Semua aktiviti-aktiviti", 21 | "Activities by you" : "Aktiviti-aktiviti oleh anda", 22 | "Activities by others" : "Aktiviti-aktiviti oleh lain", 23 | "%s and %s" : "%s dan %s", 24 | "Hello %s," : "Hello %s,", 25 | "_* and %n more _::_* and %n more _" : ["* dan %n lagi"], 26 | "%1$s - %2$s" : "%1$s - %2$s", 27 | "_and %n more _::_and %n more _" : ["dan %n lagi"], 28 | "Activity" : "Aktiviti", 29 | "Notify about your own actions via email" : "Makluman mengenai tindakan anda melalui email", 30 | "You need to set up your email address before you can receive notification emails." : "Anda perlu memasang alamat email sebelum boleh menerima notifikasi email", 31 | "Send emails:" : "Hantar emel-emel:", 32 | "As soon as possible" : "Secepat mungkin", 33 | "Hourly" : "Setiap jam", 34 | "Daily" : "Harian", 35 | "Weekly" : "Mingguan", 36 | "Activity feed" : "Aliran aktiviti", 37 | "Enable RSS feed" : "Membolehkan suapan RSS", 38 | "No activity yet" : "Belum ada aktivity", 39 | "Files" : "Fail-fail" 40 | }, 41 | "nplurals=1; plural=0;"); 42 | -------------------------------------------------------------------------------- /l10n/ms_MY.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activities" : "Aktiviti", 3 | "Error loading activities" : "Ralat memuatnaik aktiviti", 4 | "No activities" : "Tiada aktiviti", 5 | "Load more activities" : "Masukkan lebih aktiviti", 6 | ", " : ", ", 7 | "{parameterList} and {lastParameter}" : "{parameterList} dan {lastParameter}", 8 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} dan {linkStart}%n lagi{linkEnd}"], 9 | "in {directory}" : "dalam {directory}", 10 | "Today" : "Hari ini", 11 | "Yesterday" : "Semalam", 12 | "Personal activity feed for %s" : "Aliran aktiviti peribadi untuk %s", 13 | "Your feed URL is invalid" : "URL suapan anda tidak sah.", 14 | "Your settings have been updated." : "Tetapan anda telah dikemaskini.", 15 | "Mail" : "Mel", 16 | "Stream" : "Strim", 17 | "Activity notification" : "Pemberitahuan aktiviti", 18 | "All Activities" : "Semua aktiviti-aktiviti", 19 | "Activities by you" : "Aktiviti-aktiviti oleh anda", 20 | "Activities by others" : "Aktiviti-aktiviti oleh lain", 21 | "%s and %s" : "%s dan %s", 22 | "Hello %s," : "Hello %s,", 23 | "_* and %n more _::_* and %n more _" : ["* dan %n lagi"], 24 | "%1$s - %2$s" : "%1$s - %2$s", 25 | "_and %n more _::_and %n more _" : ["dan %n lagi"], 26 | "Activity" : "Aktiviti", 27 | "Notify about your own actions via email" : "Makluman mengenai tindakan anda melalui email", 28 | "You need to set up your email address before you can receive notification emails." : "Anda perlu memasang alamat email sebelum boleh menerima notifikasi email", 29 | "Send emails:" : "Hantar emel-emel:", 30 | "As soon as possible" : "Secepat mungkin", 31 | "Hourly" : "Setiap jam", 32 | "Daily" : "Harian", 33 | "Weekly" : "Mingguan", 34 | "Activity feed" : "Aliran aktiviti", 35 | "Enable RSS feed" : "Membolehkan suapan RSS", 36 | "No activity yet" : "Belum ada aktivity", 37 | "Files" : "Fail-fail" 38 | },"pluralForm" :"nplurals=1; plural=0;" 39 | } -------------------------------------------------------------------------------- /l10n/nds.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activities" : "Aktivitäten", 5 | "Error loading activities" : "Fehler beim Laden der Aktivitäten", 6 | "No activities" : "Keine Aktivitäten", 7 | "Load more activities" : "Lade weitere Aktivitäten", 8 | ", " : ",", 9 | "This stream will show events like additions, changes & shares" : "Dieser Stream wird Ereignisse wie Hinzufügen, Änderungen und Teilen anzeigen", 10 | "There are no events for this filter" : "Für diesen Filter gibt es keine Ereignisse", 11 | "Today" : "Heute", 12 | "Yesterday" : "Gestern", 13 | "Personal activity feed for %s" : "Persönliche Benachrichtigungen für die Aktivität von %s", 14 | "Your feed URL is invalid" : "Deine URL für die Benachrichtigungen ist ungültig", 15 | "Your settings have been updated." : "Deine Einstellungen wurden aktualisiert.", 16 | "Mail" : "E-Mail", 17 | "Stream" : "Stream", 18 | "\"remote user\"" : "\"Entfernter Benutzer\"", 19 | "Activity notification" : "Aktivitätsbenachrichtigung", 20 | "All Activities" : "Alle Aktivitäten", 21 | "Activities by you" : "Aktivitäten von Dir", 22 | "Activities by others" : "Aktivitäten von Anderen", 23 | "%s and %s" : "%s und %s", 24 | "Hello %s," : "Hallo %s,", 25 | "You are receiving this email because the following things happened at %s" : "Du erhältst diese E-Mail, da folgende Dinge bei %s passiert sind", 26 | "* %1$s - %2$s" : "* %1$s - %2$s", 27 | "_* and %n more _::_* and %n more _" : ["* und %n weiteres","* und %n weitere"], 28 | "Activity" : "Aktivität", 29 | "List your own file actions in the stream" : "Zeige deine eigenen Aktionen im Stream", 30 | "Notify about your own actions via email" : "Benachrichtigungen über deine eigenen Aktivitäten mittels E-Mail", 31 | "You need to set up your email address before you can receive notification emails." : "Du musst deine E-Mailadresse eintragen, bevor du E-Mailbenachrichtigungen erhalten kannst.", 32 | "Send emails:" : "Sende E-Mails:", 33 | "Hourly" : "Stündlich", 34 | "Daily" : "Täglich", 35 | "Weekly" : "Wöchentlich", 36 | "Activity feed" : "Aktivitätsbenachrichtigungen", 37 | "Enable RSS feed" : "RSS Benachrichtigungen aktivieren", 38 | "No activity yet" : "Bisher keine Aktivitäten", 39 | "No more events to load" : "Es gibt keine Ereignisse mehr, die geladen werden können", 40 | "Files" : "Dateien" 41 | }, 42 | "nplurals=2; plural=(n != 1);"); 43 | -------------------------------------------------------------------------------- /l10n/nds.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activities" : "Aktivitäten", 3 | "Error loading activities" : "Fehler beim Laden der Aktivitäten", 4 | "No activities" : "Keine Aktivitäten", 5 | "Load more activities" : "Lade weitere Aktivitäten", 6 | ", " : ",", 7 | "This stream will show events like additions, changes & shares" : "Dieser Stream wird Ereignisse wie Hinzufügen, Änderungen und Teilen anzeigen", 8 | "There are no events for this filter" : "Für diesen Filter gibt es keine Ereignisse", 9 | "Today" : "Heute", 10 | "Yesterday" : "Gestern", 11 | "Personal activity feed for %s" : "Persönliche Benachrichtigungen für die Aktivität von %s", 12 | "Your feed URL is invalid" : "Deine URL für die Benachrichtigungen ist ungültig", 13 | "Your settings have been updated." : "Deine Einstellungen wurden aktualisiert.", 14 | "Mail" : "E-Mail", 15 | "Stream" : "Stream", 16 | "\"remote user\"" : "\"Entfernter Benutzer\"", 17 | "Activity notification" : "Aktivitätsbenachrichtigung", 18 | "All Activities" : "Alle Aktivitäten", 19 | "Activities by you" : "Aktivitäten von Dir", 20 | "Activities by others" : "Aktivitäten von Anderen", 21 | "%s and %s" : "%s und %s", 22 | "Hello %s," : "Hallo %s,", 23 | "You are receiving this email because the following things happened at %s" : "Du erhältst diese E-Mail, da folgende Dinge bei %s passiert sind", 24 | "* %1$s - %2$s" : "* %1$s - %2$s", 25 | "_* and %n more _::_* and %n more _" : ["* und %n weiteres","* und %n weitere"], 26 | "Activity" : "Aktivität", 27 | "List your own file actions in the stream" : "Zeige deine eigenen Aktionen im Stream", 28 | "Notify about your own actions via email" : "Benachrichtigungen über deine eigenen Aktivitäten mittels E-Mail", 29 | "You need to set up your email address before you can receive notification emails." : "Du musst deine E-Mailadresse eintragen, bevor du E-Mailbenachrichtigungen erhalten kannst.", 30 | "Send emails:" : "Sende E-Mails:", 31 | "Hourly" : "Stündlich", 32 | "Daily" : "Täglich", 33 | "Weekly" : "Wöchentlich", 34 | "Activity feed" : "Aktivitätsbenachrichtigungen", 35 | "Enable RSS feed" : "RSS Benachrichtigungen aktivieren", 36 | "No activity yet" : "Bisher keine Aktivitäten", 37 | "No more events to load" : "Es gibt keine Ereignisse mehr, die geladen werden können", 38 | "Files" : "Dateien" 39 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 40 | } -------------------------------------------------------------------------------- /l10n/no-php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owncloud/activity/e8f217dbe651d9472f2cb9aa010e41d5b8547cbd/l10n/no-php -------------------------------------------------------------------------------- /l10n/oc.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activities" : "Activitat", 3 | "Error loading activities" : "Error al cargament de l'activitat", 4 | "No activities" : "Pas cap d'activitat", 5 | "Load more activities" : "Cargar mai d'activitats", 6 | ", " : ", ", 7 | "{parameterList} and {lastParameter}" : "{parameterList} e {lastParameter}", 8 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} e {linkStart}%n autre{linkEnd}","{parameterList} e {linkStart}%n autres{linkEnd}"], 9 | "in {directory}" : "dins {directory}", 10 | "This stream will show events like additions, changes & shares" : "Aqueste flux fa veire los eveniments tal coma las addicions, las modificacions e los partiments", 11 | "There are no events for this filter" : "I a pas cap d'eveniment per aqueste filtre", 12 | "Today" : "Uèi", 13 | "Yesterday" : "Ièr", 14 | "Personal activity feed for %s" : "Flux d'activitat personal de %s", 15 | "Your feed URL is invalid" : "Vòstra adreça de flux es pas valida", 16 | "Your settings have been updated." : "Vòstres paramètres son estats meses a jorn.", 17 | "Mail" : "Mail", 18 | "Stream" : "Flux", 19 | "\"remote user\"" : "\"utilizaire distant\"", 20 | "Activity notification" : "Notificacion d'activitat", 21 | "All Activities" : "Totas activitats", 22 | "Activities by you" : "Vòstras activitats", 23 | "Activities by others" : "L'activitat dels autres", 24 | "%s and %s" : "%s e %s", 25 | "Hello %s," : "Bonjorn %s,", 26 | "You are receiving this email because the following things happened at %s" : "Recebretz aqueste corrièl perque los eveniments seguents se son debanats a %s", 27 | "* %1$s - %2$s" : "* %1$s - %2$s", 28 | "_* and %n more _::_* and %n more _" : ["* e %n mai","* e %n mai"], 29 | "Activity" : "Activitat", 30 | "List your own file actions in the stream" : "Fa la lista de vòstras pròprias accions dins lo flux", 31 | "Notify about your own actions via email" : "M'informar de mes pròprias accions per corrièl", 32 | "You need to set up your email address before you can receive notification emails." : "Es necessari de configurar una adreça corrièl abans de poder recebre las notificacions per corrièl.", 33 | "Send emails:" : "Mandar de corrièls :", 34 | "Hourly" : "A cada ora", 35 | "Daily" : "A cada jorn", 36 | "Weekly" : "A cada setmana", 37 | "Activity feed" : "Flux d'activitat", 38 | "Enable RSS feed" : "Activar los fluxes RSS", 39 | "No activity yet" : "Pas d'activitat pel moment", 40 | "No more events to load" : "Pas cap d'eveniment mai a cargar", 41 | "Files" : "Fichièrs" 42 | },"pluralForm" :"nplurals=2; plural=(n > 1);" 43 | } -------------------------------------------------------------------------------- /l10n/sr.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activities" : "Активности", 5 | "Error loading activities" : "Грешка при учитавању активности", 6 | "No activities" : "Нема активности", 7 | "Load more activities" : "Учитај још активности", 8 | ", " : ", ", 9 | "{parameterList} and {lastParameter}" : "{parameterList} и {lastParameter}", 10 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} и {linkStart}још %n{linkEnd}","{parameterList} и {linkStart}још %n{linkEnd}","{parameterList} и {linkStart}још %n{linkEnd}"], 11 | "in {directory}" : "у {directory}", 12 | "This stream will show events like additions, changes & shares" : "Овде ће се приказати догађаји попут додавања, измена или дељења", 13 | "There are no events for this filter" : "Нема догађаја за овај филтер", 14 | "Today" : "данас", 15 | "Yesterday" : "јуче", 16 | "Personal activity feed for %s" : "Довод личних активности корисника %s", 17 | "Your feed URL is invalid" : "УРЛ вашег довода није исправан", 18 | "Your settings have been updated." : "Поставке су ажуриране.", 19 | "Mail" : "Поштом", 20 | "Stream" : "Записник", 21 | "\"remote user\"" : "\"удаљени корисник\"", 22 | "Activity notification" : "Обавештења о активностима", 23 | "All Activities" : "Све активности", 24 | "Activities by you" : "Ваше активности", 25 | "Activities by others" : "Активности других", 26 | "%s and %s" : "%s и %s", 27 | "Hello %s," : "Здраво %s,", 28 | "You are receiving this email because the following things happened at %s" : "Ову поруку сте добили јер се следеће десило на %s", 29 | "* %1$s - %2$s" : "* %1$s - %2$s", 30 | "_* and %n more _::_* and %n more _" : ["* и још %n","* и још %n","* и још %n"], 31 | "Activity" : "Активност", 32 | "List your own file actions in the stream" : "Приказује ваше радње са фајловима у дневнику", 33 | "Notify about your own actions via email" : "Обавештење е-поштом о сопственим активностима", 34 | "You need to set up your email address before you can receive notification emails." : "Морате поставити адресу е-поште пре почетка пријема обавештења.", 35 | "Send emails:" : "Шаљи е-пошту:", 36 | "Hourly" : "сваки сат", 37 | "Daily" : "дневно", 38 | "Weekly" : "недељно", 39 | "Activity feed" : "Довод активности", 40 | "Enable RSS feed" : "Укључи РСС довод", 41 | "No activity yet" : "Још нема активности", 42 | "No more events to load" : "Нема више догађаја за приказ", 43 | "Files" : "Фајлови" 44 | }, 45 | "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); 46 | -------------------------------------------------------------------------------- /l10n/sr.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activities" : "Активности", 3 | "Error loading activities" : "Грешка при учитавању активности", 4 | "No activities" : "Нема активности", 5 | "Load more activities" : "Учитај још активности", 6 | ", " : ", ", 7 | "{parameterList} and {lastParameter}" : "{parameterList} и {lastParameter}", 8 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} и {linkStart}још %n{linkEnd}","{parameterList} и {linkStart}још %n{linkEnd}","{parameterList} и {linkStart}још %n{linkEnd}"], 9 | "in {directory}" : "у {directory}", 10 | "This stream will show events like additions, changes & shares" : "Овде ће се приказати догађаји попут додавања, измена или дељења", 11 | "There are no events for this filter" : "Нема догађаја за овај филтер", 12 | "Today" : "данас", 13 | "Yesterday" : "јуче", 14 | "Personal activity feed for %s" : "Довод личних активности корисника %s", 15 | "Your feed URL is invalid" : "УРЛ вашег довода није исправан", 16 | "Your settings have been updated." : "Поставке су ажуриране.", 17 | "Mail" : "Поштом", 18 | "Stream" : "Записник", 19 | "\"remote user\"" : "\"удаљени корисник\"", 20 | "Activity notification" : "Обавештења о активностима", 21 | "All Activities" : "Све активности", 22 | "Activities by you" : "Ваше активности", 23 | "Activities by others" : "Активности других", 24 | "%s and %s" : "%s и %s", 25 | "Hello %s," : "Здраво %s,", 26 | "You are receiving this email because the following things happened at %s" : "Ову поруку сте добили јер се следеће десило на %s", 27 | "* %1$s - %2$s" : "* %1$s - %2$s", 28 | "_* and %n more _::_* and %n more _" : ["* и још %n","* и још %n","* и још %n"], 29 | "Activity" : "Активност", 30 | "List your own file actions in the stream" : "Приказује ваше радње са фајловима у дневнику", 31 | "Notify about your own actions via email" : "Обавештење е-поштом о сопственим активностима", 32 | "You need to set up your email address before you can receive notification emails." : "Морате поставити адресу е-поште пре почетка пријема обавештења.", 33 | "Send emails:" : "Шаљи е-пошту:", 34 | "Hourly" : "сваки сат", 35 | "Daily" : "дневно", 36 | "Weekly" : "недељно", 37 | "Activity feed" : "Довод активности", 38 | "Enable RSS feed" : "Укључи РСС довод", 39 | "No activity yet" : "Још нема активности", 40 | "No more events to load" : "Нема више догађаја за приказ", 41 | "Files" : "Фајлови" 42 | },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" 43 | } -------------------------------------------------------------------------------- /l10n/sr@latin.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activities" : "Aktivnosti", 5 | "Error loading activities" : "Greška pri učitavanju aktivnosti", 6 | "No activities" : "Nema aktivnosti", 7 | "Load more activities" : "Učitavaj još aktivnosti", 8 | ", " : ", ", 9 | "{parameterList} and {lastParameter}" : "{parameterList} i {lastParameter}", 10 | "in {directory}" : "u {directory}", 11 | "Today" : "Danas", 12 | "Yesterday" : "Juče", 13 | "Personal activity feed for %s" : "Lična lista aktivnosti za %s", 14 | "Your settings have been updated." : "Vaša podešavanja su osvežena.", 15 | "Mail" : "Pošta", 16 | "Stream" : "Tok", 17 | "Activity notification" : "Obaveštenje o aktivnosti", 18 | "All Activities" : "Sve aktivnosti", 19 | "Activities by you" : "Vaše aktivnosti", 20 | "Activities by others" : "Tuđe aktivnosti", 21 | "%s and %s" : "%s i %s", 22 | "Hello %s," : "Pozdrav %s,", 23 | "* %1$s - %2$s" : "* %1$s - %2$s", 24 | "_* and %n more _::_* and %n more _" : ["* i %n vise","* i %n vise","* i %n vise"], 25 | "Activity" : "Aktivnosti", 26 | "Notify about your own actions via email" : "Obavesti o Vašim postupcima putem Email-a", 27 | "You need to set up your email address before you can receive notification emails." : "Morate da podesite svoju email adresu da biste mogli da primate email obaveštenja.", 28 | "Send emails:" : "Pošalji email-ove:", 29 | "Hourly" : "časovno", 30 | "Daily" : "dnevno", 31 | "Weekly" : "nedeljno", 32 | "Activity feed" : "Lista aktivnosti", 33 | "Enable RSS feed" : "Omogući RSS ", 34 | "No activity yet" : "Još nema aktivnosti", 35 | "No more events to load" : "Nema više događaja za učitavanje", 36 | "Files" : "Fajlovi" 37 | }, 38 | "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); 39 | -------------------------------------------------------------------------------- /l10n/sr@latin.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activities" : "Aktivnosti", 3 | "Error loading activities" : "Greška pri učitavanju aktivnosti", 4 | "No activities" : "Nema aktivnosti", 5 | "Load more activities" : "Učitavaj još aktivnosti", 6 | ", " : ", ", 7 | "{parameterList} and {lastParameter}" : "{parameterList} i {lastParameter}", 8 | "in {directory}" : "u {directory}", 9 | "Today" : "Danas", 10 | "Yesterday" : "Juče", 11 | "Personal activity feed for %s" : "Lična lista aktivnosti za %s", 12 | "Your settings have been updated." : "Vaša podešavanja su osvežena.", 13 | "Mail" : "Pošta", 14 | "Stream" : "Tok", 15 | "Activity notification" : "Obaveštenje o aktivnosti", 16 | "All Activities" : "Sve aktivnosti", 17 | "Activities by you" : "Vaše aktivnosti", 18 | "Activities by others" : "Tuđe aktivnosti", 19 | "%s and %s" : "%s i %s", 20 | "Hello %s," : "Pozdrav %s,", 21 | "* %1$s - %2$s" : "* %1$s - %2$s", 22 | "_* and %n more _::_* and %n more _" : ["* i %n vise","* i %n vise","* i %n vise"], 23 | "Activity" : "Aktivnosti", 24 | "Notify about your own actions via email" : "Obavesti o Vašim postupcima putem Email-a", 25 | "You need to set up your email address before you can receive notification emails." : "Morate da podesite svoju email adresu da biste mogli da primate email obaveštenja.", 26 | "Send emails:" : "Pošalji email-ove:", 27 | "Hourly" : "časovno", 28 | "Daily" : "dnevno", 29 | "Weekly" : "nedeljno", 30 | "Activity feed" : "Lista aktivnosti", 31 | "Enable RSS feed" : "Omogući RSS ", 32 | "No activity yet" : "Još nema aktivnosti", 33 | "No more events to load" : "Nema više događaja za učitavanje", 34 | "Files" : "Fajlovi" 35 | },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" 36 | } -------------------------------------------------------------------------------- /l10n/ta_IN.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activity" : "நடவடிக்கை", 5 | "Personal activity feed for %s" : "%s க்கு தனிப்பட்ட நடவடிக்கை ஃபீட்", 6 | "Your feed URL is invalid" : "உங்களது பீட் உரலி தவறானது.", 7 | "Your settings have been updated." : "உங்கள் அமைப்புகள் புதுப்பிக்கப்பட்டன.", 8 | "Mail" : "மின்னஞ்சல்", 9 | "Stream" : "தொடரோடி", 10 | "There are no events for this filter" : "இந்த வடிகட்டலில் எந்த நிகழ்வும் இல்லை", 11 | "Activity notification" : "நடவடிக்கை அறிவிப்பு.", 12 | "All Activities" : "அனைத்து நடவடிக்கைகள்", 13 | "Activities by you" : "உங்கள் நடவடிக்கைகள்", 14 | "Activities by others" : "மற்றவர்களின் நடவடிக்கைகள்", 15 | "%s and %s" : "%s மற்றும் %s", 16 | ", " : ",", 17 | "_%s and %n more_::_%s and %n more_" : ["% s மற்றும்% n அதிகமாக.","% s மற்றும்% n அதிகமாக."], 18 | "Hello %s," : "வணக்கம் %s", 19 | "You are receiving this email because in the last hour the following things happened at %s" : "கடந்த மணி நேரம் முன்பு பின்வரும் விஷயங்கள் %s 'ல் நடந்தது , ஆகையால் நீங்கள் இந்த மின்னஞ்சலை பெறுகிறீர்கள். ", 20 | "You are receiving this email because in the last day the following things happened at %s" : "நேற்று பின்வரும் விஷயங்கள் %s 'ல் நடந்தது , ஆகையால் நீங்கள் இந்த மின்னஞ்சலை பெறுகிறீர்கள். ", 21 | "You are receiving this email because in the last week the following things happened at %s" : "கடந்த வாரம் பின்வரும் விஷயங்கள் %s 'ல் நடந்தது , ஆகையால் நீங்கள் இந்த மின்னஞ்சலை பெறுகிறீர்கள். ", 22 | "* %1$s - %2$s" : "* %1$s - %2$s", 23 | "Notifications" : "அறிவிப்புகள்", 24 | "You need to set up your email address before you can receive notification emails." : "நீங்கள் அறிவிப்பு மின்னஞ்சல்களை பெறுவதற்கு முன் உங்கள் மின்னஞ்சல் முகவரியை பதிவு செய்ய வேண்டும்.", 25 | "Send emails:" : "மின்னஞ்சல்களை அனுப்பவும்:", 26 | "Hourly" : "மணிநேர", 27 | "Daily" : "தினசரி", 28 | "Weekly" : "வாராந்திர", 29 | "Activity feed" : "நடவடிக்கைகள் ஃபீட்", 30 | "Enable RSS feed" : "RSS feed 'ஐ இயக்கவும்.", 31 | "No more events to load" : "மேலும் வேறு நிகழ்வுகள் இல்லை.", 32 | "Files" : "கோப்புகள்" 33 | }, 34 | "nplurals=2; plural=(n != 1);"); 35 | -------------------------------------------------------------------------------- /l10n/ta_IN.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activity" : "நடவடிக்கை", 3 | "Personal activity feed for %s" : "%s க்கு தனிப்பட்ட நடவடிக்கை ஃபீட்", 4 | "Your feed URL is invalid" : "உங்களது பீட் உரலி தவறானது.", 5 | "Your settings have been updated." : "உங்கள் அமைப்புகள் புதுப்பிக்கப்பட்டன.", 6 | "Mail" : "மின்னஞ்சல்", 7 | "Stream" : "தொடரோடி", 8 | "There are no events for this filter" : "இந்த வடிகட்டலில் எந்த நிகழ்வும் இல்லை", 9 | "Activity notification" : "நடவடிக்கை அறிவிப்பு.", 10 | "All Activities" : "அனைத்து நடவடிக்கைகள்", 11 | "Activities by you" : "உங்கள் நடவடிக்கைகள்", 12 | "Activities by others" : "மற்றவர்களின் நடவடிக்கைகள்", 13 | "%s and %s" : "%s மற்றும் %s", 14 | ", " : ",", 15 | "_%s and %n more_::_%s and %n more_" : ["% s மற்றும்% n அதிகமாக.","% s மற்றும்% n அதிகமாக."], 16 | "Hello %s," : "வணக்கம் %s", 17 | "You are receiving this email because in the last hour the following things happened at %s" : "கடந்த மணி நேரம் முன்பு பின்வரும் விஷயங்கள் %s 'ல் நடந்தது , ஆகையால் நீங்கள் இந்த மின்னஞ்சலை பெறுகிறீர்கள். ", 18 | "You are receiving this email because in the last day the following things happened at %s" : "நேற்று பின்வரும் விஷயங்கள் %s 'ல் நடந்தது , ஆகையால் நீங்கள் இந்த மின்னஞ்சலை பெறுகிறீர்கள். ", 19 | "You are receiving this email because in the last week the following things happened at %s" : "கடந்த வாரம் பின்வரும் விஷயங்கள் %s 'ல் நடந்தது , ஆகையால் நீங்கள் இந்த மின்னஞ்சலை பெறுகிறீர்கள். ", 20 | "* %1$s - %2$s" : "* %1$s - %2$s", 21 | "Notifications" : "அறிவிப்புகள்", 22 | "You need to set up your email address before you can receive notification emails." : "நீங்கள் அறிவிப்பு மின்னஞ்சல்களை பெறுவதற்கு முன் உங்கள் மின்னஞ்சல் முகவரியை பதிவு செய்ய வேண்டும்.", 23 | "Send emails:" : "மின்னஞ்சல்களை அனுப்பவும்:", 24 | "Hourly" : "மணிநேர", 25 | "Daily" : "தினசரி", 26 | "Weekly" : "வாராந்திர", 27 | "Activity feed" : "நடவடிக்கைகள் ஃபீட்", 28 | "Enable RSS feed" : "RSS feed 'ஐ இயக்கவும்.", 29 | "No more events to load" : "மேலும் வேறு நிகழ்வுகள் இல்லை.", 30 | "Files" : "கோப்புகள்" 31 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 32 | } -------------------------------------------------------------------------------- /l10n/zh.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activities" : "活动", 5 | "Error loading activities" : "加载活动错误", 6 | "No activities" : "无活动", 7 | "Load more activities" : "加载更多活动", 8 | ", " : ",", 9 | "This stream will show events like additions, changes & shares" : "此信息流会显示诸如增加,修改,共享等事件", 10 | "Today" : "今天", 11 | "Yesterday" : "昨天", 12 | "Your feed URL is invalid" : "您输入的链接无效", 13 | "Your settings have been updated." : "设置已更新", 14 | "Mail" : "信件", 15 | "Stream" : "串流", 16 | "\"remote user\"" : "“远程用户”", 17 | "Activity notification" : "活动通知", 18 | "All Activities" : "全部活动", 19 | "Activities by you" : "您的活动", 20 | "Activities by others" : "其他人的活动", 21 | "%s and %s" : "%s和%s", 22 | "Hello %s," : "您好,%s,", 23 | "You are receiving this email because the following things happened at %s" : "你收到此电子邮件是因为在%s发生了以下事件:", 24 | "* %1$s - %2$s" : "*%1$s-%2$s", 25 | "_* and %n more _::_* and %n more _" : ["和%n项其他事件"], 26 | "You are receiving this email because the following things happened at %s" : "你收到此电子邮件是因为在%s发生了以下事件:", 27 | "%1$s - %2$s" : "%1$s - %2$s", 28 | "_and %n more _::_and %n more _" : ["和其它%n项"], 29 | "Activity" : "活动", 30 | "List your own file actions in the stream" : "101%match\n在串流中列出您的活动", 31 | "Notify about your own actions via email" : "通过电子邮件通报您的操作", 32 | "You need to set up your email address before you can receive notification emails." : "在收到通知之前,您需要先设置您的电子邮件地址", 33 | "Send emails:" : "发送邮件:", 34 | "As soon as possible" : "尽快", 35 | "Hourly" : "每小时", 36 | "Daily" : "每天", 37 | "Weekly" : "每周", 38 | "Activity feed" : "活动", 39 | "Enable RSS feed" : "启用 RSS 源", 40 | "No activity yet" : "目前暂无活动", 41 | "No more events to load" : "没有更多事件了", 42 | "Files" : "文件" 43 | }, 44 | "nplurals=1; plural=0;"); 45 | -------------------------------------------------------------------------------- /l10n/zh.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activities" : "活动", 3 | "Error loading activities" : "加载活动错误", 4 | "No activities" : "无活动", 5 | "Load more activities" : "加载更多活动", 6 | ", " : ",", 7 | "This stream will show events like additions, changes & shares" : "此信息流会显示诸如增加,修改,共享等事件", 8 | "Today" : "今天", 9 | "Yesterday" : "昨天", 10 | "Your feed URL is invalid" : "您输入的链接无效", 11 | "Your settings have been updated." : "设置已更新", 12 | "Mail" : "信件", 13 | "Stream" : "串流", 14 | "\"remote user\"" : "“远程用户”", 15 | "Activity notification" : "活动通知", 16 | "All Activities" : "全部活动", 17 | "Activities by you" : "您的活动", 18 | "Activities by others" : "其他人的活动", 19 | "%s and %s" : "%s和%s", 20 | "Hello %s," : "您好,%s,", 21 | "You are receiving this email because the following things happened at %s" : "你收到此电子邮件是因为在%s发生了以下事件:", 22 | "* %1$s - %2$s" : "*%1$s-%2$s", 23 | "_* and %n more _::_* and %n more _" : ["和%n项其他事件"], 24 | "You are receiving this email because the following things happened at %s" : "你收到此电子邮件是因为在%s发生了以下事件:", 25 | "%1$s - %2$s" : "%1$s - %2$s", 26 | "_and %n more _::_and %n more _" : ["和其它%n项"], 27 | "Activity" : "活动", 28 | "List your own file actions in the stream" : "101%match\n在串流中列出您的活动", 29 | "Notify about your own actions via email" : "通过电子邮件通报您的操作", 30 | "You need to set up your email address before you can receive notification emails." : "在收到通知之前,您需要先设置您的电子邮件地址", 31 | "Send emails:" : "发送邮件:", 32 | "As soon as possible" : "尽快", 33 | "Hourly" : "每小时", 34 | "Daily" : "每天", 35 | "Weekly" : "每周", 36 | "Activity feed" : "活动", 37 | "Enable RSS feed" : "启用 RSS 源", 38 | "No activity yet" : "目前暂无活动", 39 | "No more events to load" : "没有更多事件了", 40 | "Files" : "文件" 41 | },"pluralForm" :"nplurals=1; plural=0;" 42 | } -------------------------------------------------------------------------------- /l10n/zh_CN.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activities" : "活动", 5 | "Error loading activities" : "载入活动时发生错误", 6 | "No activities" : "暂无动态", 7 | "Load more activities" : "加载更多动态", 8 | ", " : ",", 9 | "{parameterList} and {lastParameter}" : "{parameterList} 和 {lastParameter}", 10 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} 和 {linkStart}%n 更多 {linkEnd}"], 11 | "in {directory}" : "在 {directory} 中", 12 | "This stream will show events like additions, changes & shares" : "这个流中会显示诸如添加、更改和分享之类的事件", 13 | "There are no events for this filter" : "没有符合当前筛选条件的事件。", 14 | "Today" : "今天", 15 | "Yesterday" : "昨天", 16 | "Personal activity feed for %s" : "%s 的个人动态 Feed", 17 | "Your feed URL is invalid" : "您输入的Feed链接无效", 18 | "Your settings have been updated." : "您的设置已更新。", 19 | "Mail" : "邮件", 20 | "Stream" : "信息流", 21 | "\"remote user\"" : "远程用户", 22 | "Activity notification" : "动态通知", 23 | "All Activities" : "所有动态", 24 | "Activities by you" : "你的动态", 25 | "Activities by others" : "别人的动态", 26 | "%s and %s" : "%s 和 %s", 27 | "Hello %s," : "%s 你好,", 28 | "You are receiving this email because the following things happened at %s" : "你收到此邮件是因为在 %s 发生了以下事件:", 29 | "* %1$s - %2$s" : "* %1$s - %2$s", 30 | "_* and %n more _::_* and %n more _" : ["* 以及其它 %n 项"], 31 | "You are receiving this email because the following things happened at %s" : "你收到此电子邮件是因为在%s发生了以下事件:", 32 | "%1$s - %2$s" : "%1$s - %2$s", 33 | "_and %n more _::_and %n more _" : ["* 以及其它 %n 项"], 34 | "Activity" : "动态", 35 | "List your own file actions in the stream" : "在动态信息中显示您自己的文件的操作", 36 | "Notify about your own actions via email" : "通过邮件通知您自己的动态", 37 | "You need to set up your email address before you can receive notification emails." : "要接收通知邮件,需要先设置您的电子邮件地址。", 38 | "Send emails:" : "发送邮件:", 39 | "As soon as possible" : "尽快", 40 | "Hourly" : "每小时", 41 | "Daily" : "每天", 42 | "Weekly" : "每周", 43 | "Activity feed" : "动态 Feed", 44 | "Enable RSS feed" : "启用 RSS 源", 45 | "No activity yet" : "暂无动态", 46 | "No more events to load" : "已无更多事件", 47 | "Files" : "文件" 48 | }, 49 | "nplurals=1; plural=0;"); 50 | -------------------------------------------------------------------------------- /l10n/zh_CN.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activities" : "活动", 3 | "Error loading activities" : "载入活动时发生错误", 4 | "No activities" : "暂无动态", 5 | "Load more activities" : "加载更多动态", 6 | ", " : ",", 7 | "{parameterList} and {lastParameter}" : "{parameterList} 和 {lastParameter}", 8 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} 和 {linkStart}%n 更多 {linkEnd}"], 9 | "in {directory}" : "在 {directory} 中", 10 | "This stream will show events like additions, changes & shares" : "这个流中会显示诸如添加、更改和分享之类的事件", 11 | "There are no events for this filter" : "没有符合当前筛选条件的事件。", 12 | "Today" : "今天", 13 | "Yesterday" : "昨天", 14 | "Personal activity feed for %s" : "%s 的个人动态 Feed", 15 | "Your feed URL is invalid" : "您输入的Feed链接无效", 16 | "Your settings have been updated." : "您的设置已更新。", 17 | "Mail" : "邮件", 18 | "Stream" : "信息流", 19 | "\"remote user\"" : "远程用户", 20 | "Activity notification" : "动态通知", 21 | "All Activities" : "所有动态", 22 | "Activities by you" : "你的动态", 23 | "Activities by others" : "别人的动态", 24 | "%s and %s" : "%s 和 %s", 25 | "Hello %s," : "%s 你好,", 26 | "You are receiving this email because the following things happened at %s" : "你收到此邮件是因为在 %s 发生了以下事件:", 27 | "* %1$s - %2$s" : "* %1$s - %2$s", 28 | "_* and %n more _::_* and %n more _" : ["* 以及其它 %n 项"], 29 | "You are receiving this email because the following things happened at %s" : "你收到此电子邮件是因为在%s发生了以下事件:", 30 | "%1$s - %2$s" : "%1$s - %2$s", 31 | "_and %n more _::_and %n more _" : ["* 以及其它 %n 项"], 32 | "Activity" : "动态", 33 | "List your own file actions in the stream" : "在动态信息中显示您自己的文件的操作", 34 | "Notify about your own actions via email" : "通过邮件通知您自己的动态", 35 | "You need to set up your email address before you can receive notification emails." : "要接收通知邮件,需要先设置您的电子邮件地址。", 36 | "Send emails:" : "发送邮件:", 37 | "As soon as possible" : "尽快", 38 | "Hourly" : "每小时", 39 | "Daily" : "每天", 40 | "Weekly" : "每周", 41 | "Activity feed" : "动态 Feed", 42 | "Enable RSS feed" : "启用 RSS 源", 43 | "No activity yet" : "暂无动态", 44 | "No more events to load" : "已无更多事件", 45 | "Files" : "文件" 46 | },"pluralForm" :"nplurals=1; plural=0;" 47 | } -------------------------------------------------------------------------------- /l10n/zh_TW.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "activity", 3 | { 4 | "Activities" : "活動", 5 | "Error loading activities" : "載入活動時發生錯誤", 6 | "No activities" : "沒有活動", 7 | "Load more activities" : "載入更多活動......", 8 | ", " : ", ", 9 | "{parameterList} and {lastParameter}" : "{parameterList} 和 {lastParameter}", 10 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} 和{linkStart}其他 %n 個{linkEnd}"], 11 | "in {directory}" : "在 {directory}", 12 | "This stream will show events like additions, changes & shares" : "這邊會顯示檔案的新增、更動、分享等動態", 13 | "There are no events for this filter" : "在此篩選器下沒有活動", 14 | "Today" : "今天", 15 | "Yesterday" : "昨天", 16 | "Personal activity feed for %s" : "個人動態 %s", 17 | "Your feed URL is invalid" : "您的 Feed URL 是無效的", 18 | "Your settings have been updated." : "您的設定已更新", 19 | "Mail" : "電子郵件", 20 | "Stream" : "串流", 21 | "\"remote user\"" : "「遠端用戶」", 22 | "Activity notification" : "活動通知", 23 | "All Activities" : "所有活動", 24 | "Activities by you" : "您的活動", 25 | "Activities by others" : "其他人的活動", 26 | "%s and %s" : "%s 與 %s", 27 | "Hello %s," : "哈囉 %s ,", 28 | "You are receiving this email because the following things happened at %s" : "您會收到郵件是因為 %s 發生此事件", 29 | "* %1$s - %2$s" : "* %1$s - %2$s", 30 | "_* and %n more _::_* and %n more _" : ["* 和其他 %n 個"], 31 | "You are receiving this email because the following things happened at %s" : "因為發生以下的事情所以你收到這封郵件 %s", 32 | "%1$s - %2$s" : "%1$s - %2$s", 33 | "_and %n more _::_and %n more _" : ["和其他%n個"], 34 | "Activity" : "活動", 35 | "List your own file actions in the stream" : "在串流中列出您的活動狀態", 36 | "Notify about your own actions via email" : "透過郵件來通知有關於您的活動狀態", 37 | "You need to set up your email address before you can receive notification emails." : "您必須先設定電子郵件,才能接收通知。", 38 | "Send emails:" : "寄送郵件:", 39 | "As soon as possible" : "盡快", 40 | "Hourly" : "每小時", 41 | "Daily" : "每日", 42 | "Weekly" : "每週", 43 | "Activity feed" : "動態", 44 | "Enable RSS feed" : "啟用 RSS feed", 45 | "No activity yet" : "尚無活動", 46 | "No more events to load" : "已載入所有事件", 47 | "Files" : "檔案" 48 | }, 49 | "nplurals=1; plural=0;"); 50 | -------------------------------------------------------------------------------- /l10n/zh_TW.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Activities" : "活動", 3 | "Error loading activities" : "載入活動時發生錯誤", 4 | "No activities" : "沒有活動", 5 | "Load more activities" : "載入更多活動......", 6 | ", " : ", ", 7 | "{parameterList} and {lastParameter}" : "{parameterList} 和 {lastParameter}", 8 | "_{parameterList} and {linkStart}%n more{linkEnd}_::_{parameterList} and {linkStart}%n more{linkEnd}_" : ["{parameterList} 和{linkStart}其他 %n 個{linkEnd}"], 9 | "in {directory}" : "在 {directory}", 10 | "This stream will show events like additions, changes & shares" : "這邊會顯示檔案的新增、更動、分享等動態", 11 | "There are no events for this filter" : "在此篩選器下沒有活動", 12 | "Today" : "今天", 13 | "Yesterday" : "昨天", 14 | "Personal activity feed for %s" : "個人動態 %s", 15 | "Your feed URL is invalid" : "您的 Feed URL 是無效的", 16 | "Your settings have been updated." : "您的設定已更新", 17 | "Mail" : "電子郵件", 18 | "Stream" : "串流", 19 | "\"remote user\"" : "「遠端用戶」", 20 | "Activity notification" : "活動通知", 21 | "All Activities" : "所有活動", 22 | "Activities by you" : "您的活動", 23 | "Activities by others" : "其他人的活動", 24 | "%s and %s" : "%s 與 %s", 25 | "Hello %s," : "哈囉 %s ,", 26 | "You are receiving this email because the following things happened at %s" : "您會收到郵件是因為 %s 發生此事件", 27 | "* %1$s - %2$s" : "* %1$s - %2$s", 28 | "_* and %n more _::_* and %n more _" : ["* 和其他 %n 個"], 29 | "You are receiving this email because the following things happened at %s" : "因為發生以下的事情所以你收到這封郵件 %s", 30 | "%1$s - %2$s" : "%1$s - %2$s", 31 | "_and %n more _::_and %n more _" : ["和其他%n個"], 32 | "Activity" : "活動", 33 | "List your own file actions in the stream" : "在串流中列出您的活動狀態", 34 | "Notify about your own actions via email" : "透過郵件來通知有關於您的活動狀態", 35 | "You need to set up your email address before you can receive notification emails." : "您必須先設定電子郵件,才能接收通知。", 36 | "Send emails:" : "寄送郵件:", 37 | "As soon as possible" : "盡快", 38 | "Hourly" : "每小時", 39 | "Daily" : "每日", 40 | "Weekly" : "每週", 41 | "Activity feed" : "動態", 42 | "Enable RSS feed" : "啟用 RSS feed", 43 | "No activity yet" : "尚無活動", 44 | "No more events to load" : "已載入所有事件", 45 | "Files" : "檔案" 46 | },"pluralForm" :"nplurals=1; plural=0;" 47 | } -------------------------------------------------------------------------------- /lib/BackgroundJob/ExpireActivities.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2016, ownCloud, Inc. 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\Activity\BackgroundJob; 23 | 24 | use OC\BackgroundJob\TimedJob; 25 | use OCA\Activity\AppInfo\Application; 26 | use OCA\Activity\Data; 27 | use OCP\IConfig; 28 | 29 | /** 30 | * Class ExpireActivities 31 | * 32 | * @package OCA\Activity\BackgroundJob 33 | */ 34 | class ExpireActivities extends TimedJob { 35 | /** @var Data */ 36 | protected $data; 37 | /** @var IConfig */ 38 | protected $config; 39 | 40 | /** 41 | * @param Data|null $data 42 | * @param IConfig|null $config 43 | */ 44 | public function __construct(?Data $data = null, ?IConfig $config = null) { 45 | // Run once per day 46 | $this->setInterval(60 * 60 * 24); 47 | 48 | if ($data === null || $config === null) { 49 | $this->fixDIForJobs(); 50 | } else { 51 | $this->data = $data; 52 | $this->config = $config; 53 | } 54 | } 55 | 56 | protected function fixDIForJobs() { 57 | $application = new Application(); 58 | 59 | $this->data = $application->getContainer()->query('ActivityData'); 60 | $this->config = \OC::$server->getConfig(); 61 | } 62 | 63 | protected function run($argument) { 64 | // Remove activities that are older then one year 65 | $expireDays = $this->config->getSystemValue('activity_expire_days', 365); 66 | $this->data->expire($expireDays); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /lib/Controller/Activities.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2016, ownCloud, Inc. 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\Activity\Controller; 23 | 24 | use OCA\Activity\Data; 25 | use OCA\Activity\Navigation; 26 | use OCP\AppFramework\Controller; 27 | use OCP\AppFramework\Http\TemplateResponse; 28 | use OCP\IConfig; 29 | use OCP\IRequest; 30 | 31 | class Activities extends Controller { 32 | /** @var \OCA\Activity\Data */ 33 | protected $data; 34 | 35 | /** @var \OCA\Activity\Navigation */ 36 | protected $navigation; 37 | 38 | /** @var \OCP\IConfig */ 39 | protected $config; 40 | 41 | /** 42 | * constructor of the controller 43 | * 44 | * @param string $appName 45 | * @param IRequest $request 46 | * @param IConfig $config 47 | * @param Data $data 48 | * @param Navigation $navigation 49 | */ 50 | public function __construct( 51 | $appName, 52 | IRequest $request, 53 | IConfig $config, 54 | Data $data, 55 | Navigation $navigation 56 | ) { 57 | parent::__construct($appName, $request); 58 | $this->data = $data; 59 | $this->config = $config; 60 | $this->navigation = $navigation; 61 | } 62 | 63 | /** 64 | * @NoAdminRequired 65 | * @NoCSRFRequired 66 | * 67 | * @param string $filter 68 | * @return TemplateResponse 69 | */ 70 | public function showList($filter = 'all') { 71 | $filter = $this->data->validateFilter($filter); 72 | 73 | return new TemplateResponse('activity', 'stream.body', [ 74 | 'appNavigation' => $this->navigation->getTemplate($filter), 75 | 'avatars' => $this->config->getSystemValue('enable_avatars', true) ? 'yes' : 'no', 76 | 'filter' => $filter, 77 | ]); 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /lib/Exception/InvalidFilterException.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2016, ownCloud, Inc. 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\Activity\Exception; 23 | 24 | class InvalidFilterException extends \InvalidArgumentException { 25 | } 26 | -------------------------------------------------------------------------------- /lib/Extension/Files.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2016, ownCloud, Inc. 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\Activity\Extension; 23 | 24 | class Files { 25 | public const TYPE_SHARE_CREATED = 'file_created'; 26 | public const TYPE_SHARE_CHANGED = 'file_changed'; 27 | public const TYPE_SHARE_DELETED = 'file_deleted'; 28 | public const TYPE_SHARE_RESTORED = 'file_restored'; 29 | public const TYPE_FILE_RENAMED = 'file_renamed'; 30 | public const TYPE_FILE_MOVED = 'file_moved'; 31 | } 32 | -------------------------------------------------------------------------------- /lib/Extension/Files_Sharing.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2016, ownCloud, Inc. 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\Activity\Extension; 23 | 24 | class Files_Sharing { 25 | public const TYPE_SHARED = 'shared'; 26 | } 27 | -------------------------------------------------------------------------------- /lib/Formatter/BaseFormatter.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2016, ownCloud, Inc. 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\Activity\Formatter; 23 | 24 | use OCP\Activity\IEvent; 25 | use OCP\Util; 26 | 27 | class BaseFormatter implements IFormatter { 28 | /** 29 | * @param IEvent $event 30 | * @param string $parameter The parameter to be formatted 31 | * @return string The formatted parameter 32 | */ 33 | public function format(IEvent $event, $parameter) { 34 | return '' . Util::sanitizeHTML($parameter) . ''; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /lib/Formatter/GroupFormatter.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2016, ownCloud, Inc. 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\Activity\Formatter; 23 | 24 | use OCP\Activity\IEvent; 25 | use OCP\IGroupManager; 26 | use OCP\Util; 27 | 28 | class GroupFormatter implements IFormatter { 29 | /** @var IGroupManager */ 30 | protected $groupManager; 31 | 32 | public function __construct(IGroupManager $groupManager) { 33 | $this->groupManager = $groupManager; 34 | } 35 | 36 | /** 37 | * @param IEvent $event 38 | * @param string $parameter The parameter to be formatted 39 | * @return string The formatted parameter 40 | */ 41 | public function format(IEvent $event, $parameter) { 42 | $group = $this->groupManager->get($parameter); 43 | $displayName = $parameter; 44 | if ($group !== null) { 45 | $displayName = $group->getDisplayName(); 46 | } 47 | return '' . Util::sanitizeHTML($displayName) . ''; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /lib/Formatter/IFormatter.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2016, ownCloud, Inc. 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\Activity\Formatter; 23 | 24 | use OCP\Activity\IEvent; 25 | 26 | interface IFormatter { 27 | /** 28 | * @param IEvent $event 29 | * @param string $parameter The parameter to be formatted 30 | * @return string The formatted parameter 31 | */ 32 | public function format(IEvent $event, $parameter); 33 | } 34 | -------------------------------------------------------------------------------- /lib/Formatter/UrlFormatter.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2019, 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\Activity\Formatter; 23 | 24 | use OCP\Activity\IEvent; 25 | use OCP\Util; 26 | 27 | class UrlFormatter implements IFormatter { 28 | /** 29 | * Format a list of url parameters into an html a-tag. The parameters have to be provided as json encoded data, i.e. a string. 30 | * Allowed values are: 31 | *
    32 | *
  • url - required value. Needs to be an absolute url, as relative urls can't be used in e.g. emails.
  • 33 | *
  • name - optional (fallback is the url). Can't be html (will be sanitized).
  • 34 | *
  • target - optional, but has to be out of ['_self', '_blank', '_parent', '_top'].
  • 35 | *
36 | * 37 | * @param IEvent $event 38 | * @param string $parameter The parameter to be formatted. In this case a list of parameters, separated by commas. 39 | * 40 | * @return string The formatted parameter 41 | */ 42 | public function format(IEvent $event, $parameter) { 43 | $params = \json_decode($parameter, true); 44 | if (!isset($params['url'])) { 45 | // we can't work without a url 46 | return ''; 47 | } 48 | $url = $params['url']; 49 | if (\preg_match('#https?://#', $url) !== 1) { 50 | // we need an absolute url 51 | return ''; 52 | } 53 | $name = $url; 54 | if (isset($params['name'])) { 55 | $name = Util::sanitizeHTML($params['name']); 56 | } 57 | $target = false; 58 | if (isset($params['target']) && \in_array($params['target'], ['_self', '_blank', '_parent', '_top'])) { 59 | $target = $params['target']; 60 | } 61 | $link = ''; 66 | return '' . $link . ''; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /lib/Formatter/UserFormatter.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2016, ownCloud, Inc. 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\Activity\Formatter; 23 | 24 | use OCP\Activity\IEvent; 25 | use OCP\IL10N; 26 | use OCP\IUserManager; 27 | use OCP\Util; 28 | 29 | class UserFormatter implements IFormatter { 30 | /** @var IUserManager */ 31 | protected $manager; 32 | /** @var IL10N */ 33 | protected $l; 34 | 35 | /** 36 | * @param IUserManager $userManager 37 | * @param IL10N $l 38 | */ 39 | public function __construct(IUserManager $userManager, IL10N $l) { 40 | $this->manager = $userManager; 41 | $this->l = $l; 42 | } 43 | 44 | /** 45 | * @param IEvent $event 46 | * @param string $parameter The parameter to be formatted 47 | * @return string The formatted parameter 48 | */ 49 | public function format(IEvent $event, $parameter) { 50 | // If the username is empty, the action has been performed by a remote 51 | // user, or via a public share. We don't know the username in that case 52 | if ($parameter === '') { 53 | return '' . Util::sanitizeHTML('') . ''; 54 | } 55 | 56 | $user = $this->manager->get($parameter); 57 | $displayName = ($user) ? $user->getDisplayName() : $parameter; 58 | $parameter = Util::sanitizeHTML($parameter); 59 | 60 | return '' . Util::sanitizeHTML($parameter) . ''; 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /lib/HtmlTextParser.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2020, 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\Activity; 23 | 24 | use OCP\IL10N; 25 | use OCP\IURLGenerator; 26 | 27 | class HtmlTextParser extends PlainTextParser { 28 | /** 29 | * @var IURLGenerator 30 | */ 31 | private $generator; 32 | 33 | public function __construct(IL10N $l, IURLGenerator $generator) { 34 | parent::__construct($l); 35 | $this->generator = $generator; 36 | } 37 | 38 | /** 39 | * Display the path for files 40 | * 41 | * @param string $message 42 | * @return string 43 | */ 44 | protected function parseFileParameters($message) { 45 | return \preg_replace_callback('/(.*?)<\/file>/', function ($match) { 46 | $privateLink = $this->generator->getAbsoluteURL("/index.php/f/{$match[2]}"); 47 | return "{$match[3]}"; 48 | }, $message); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /lib/Parameter/Collection.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2016, ownCloud, Inc. 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\Activity\Parameter; 23 | 24 | use OCP\IL10N; 25 | 26 | class Collection implements IParameter { 27 | /** @var IL10N */ 28 | protected $l; 29 | 30 | /** @var IParameter[] */ 31 | protected $parameters; 32 | 33 | /** @var string */ 34 | protected $random; 35 | 36 | /** 37 | * @param IL10N $l 38 | * @param string $random 39 | */ 40 | public function __construct(IL10N $l, $random) { 41 | $this->l = $l; 42 | $this->random = $random; 43 | $this->parameters = []; 44 | } 45 | 46 | /** 47 | * @param IParameter $parameter 48 | */ 49 | public function addParameter(IParameter $parameter) { 50 | foreach ($this->parameters as $existingParameter) { 51 | if ($existingParameter->getParameter() === $parameter->getParameter()) { 52 | return; 53 | } 54 | } 55 | $this->parameters[] = $parameter; 56 | } 57 | 58 | /** 59 | * @return mixed 60 | */ 61 | public function getParameter() { 62 | return $this->random; 63 | } 64 | 65 | /** 66 | * @return array With two entries: value and type 67 | */ 68 | public function getParameterInfo() { 69 | $parameters = []; 70 | foreach ($this->parameters as $parameter) { 71 | $parameters[] = $parameter->getParameterInfo(); 72 | } 73 | 74 | return [ 75 | 'value' => $parameters, 76 | 'type' => 'collection', 77 | ]; 78 | } 79 | 80 | /** 81 | * @return string The formatted parameter 82 | */ 83 | public function format() { 84 | $parameterList = $plainParameterList = []; 85 | 86 | foreach ($this->parameters as $parameter) { 87 | $parameterList[] = $parameter->format(); 88 | } 89 | 90 | return '' . \implode('', $parameterList) . ''; 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /lib/Parameter/IParameter.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2016, ownCloud, Inc. 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\Activity\Parameter; 23 | 24 | interface IParameter { 25 | /** 26 | * A value that is used to check, if the parameter is already in a Collection 27 | * @return mixed 28 | */ 29 | public function getParameter(); 30 | 31 | /** 32 | * @return array With two entries: value and type 33 | */ 34 | public function getParameterInfo(); 35 | 36 | /** 37 | * @return string The formatted parameter 38 | */ 39 | public function format(); 40 | } 41 | -------------------------------------------------------------------------------- /lib/Parameter/Parameter.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2016, ownCloud, Inc. 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\Activity\Parameter; 23 | 24 | use OCA\Activity\Formatter\IFormatter; 25 | use OCP\Activity\IEvent; 26 | 27 | class Parameter implements IParameter { 28 | /** @var IFormatter */ 29 | protected $formatter; 30 | 31 | /** @var mixed */ 32 | protected $parameter; 33 | 34 | /** @var IEvent */ 35 | protected $event; 36 | 37 | /** @var string */ 38 | protected $type; 39 | 40 | /** 41 | * @param mixed $parameter 42 | * @param IEvent $event 43 | * @param IFormatter $formatter 44 | * @param string $type 45 | */ 46 | public function __construct( 47 | $parameter, 48 | IEvent $event, 49 | IFormatter $formatter, 50 | $type 51 | ) { 52 | $this->parameter = $parameter; 53 | $this->event = $event; 54 | $this->formatter = $formatter; 55 | $this->type = $type; 56 | } 57 | 58 | /** 59 | * @return mixed 60 | */ 61 | public function getParameter() { 62 | if ($this->event->getObjectType() && $this->event->getObjectId()) { 63 | return $this->event->getObjectType() . '#' . $this->event->getObjectId(); 64 | } 65 | 66 | return $this->parameter; 67 | } 68 | 69 | /** 70 | * @return array With two entries: value and type 71 | */ 72 | public function getParameterInfo() { 73 | return [ 74 | 'value' => $this->parameter, 75 | 'type' => $this->type, 76 | ]; 77 | } 78 | 79 | /** 80 | * @return string The formatted parameter 81 | */ 82 | public function format() { 83 | return $this->formatter->format($this->event, $this->parameter); 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /lib/PersonalPanel.php: -------------------------------------------------------------------------------- 1 | app = $app; 13 | } 14 | 15 | public function getPanel() { 16 | return $this->app->getContainer()->query('SettingsController')->displayPanel(); 17 | } 18 | public function getPriority() { 19 | return 10; 20 | } 21 | public function getSectionID() { 22 | return 'general'; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "owncloud-activity", 3 | "description": "ownCloud Activity App", 4 | "version": "0.0.1", 5 | "private": true, 6 | "homepage": "https://github.com/owncloud/activity", 7 | "repository": { 8 | "type": "git", 9 | "url": "git@github.com:owncloud/activity.git" 10 | }, 11 | "bugs": "https://github.com/owncloud/activity/issues", 12 | "contributors": [], 13 | "dependencies": {}, 14 | "devDependencies": { 15 | "jasmine-core": "^3.10.1", 16 | "jasmine-sinon": "^0.4.0", 17 | "karma": "^6.4.4", 18 | "karma-jasmine": "^4.0.2", 19 | "karma-jasmine-sinon": "^1.0.4", 20 | "karma-firefox-launcher": "^2.1.3" 21 | }, 22 | "resolutions": { 23 | "minimist": "0.2.4", 24 | "json-schema": "0.4.0", 25 | "qs": "6.7.3" 26 | }, 27 | "engine": "node >= 0.8" 28 | } 29 | -------------------------------------------------------------------------------- /phpstan.neon: -------------------------------------------------------------------------------- 1 | parameters: 2 | bootstrapFiles: 3 | - %currentWorkingDirectory%/../../lib/base.php 4 | ignoreErrors: 5 | - 6 | message: '#Variable \$this might not be defined.#' 7 | path: appinfo/routes.php 8 | count: 1 9 | - 10 | message: '#Comparison operation ">" between int<1, max> and 0 is always true.#' 11 | path: lib/Command/SendEmails.php 12 | count: 1 13 | - 14 | message: '#Strict comparison using === between non-empty-string and null will always evaluate to false.#' 15 | path: lib/Data.php 16 | count: 2 17 | - 18 | message: '#Method OCP\\DB\\QueryBuilder\\IExpressionBuilder::orX\(\) invoked with 2 parameters, 0-1 required.#' 19 | path: lib/Data.php 20 | count: 3 21 | - 22 | message: '#Call to method getSharedFrom\(\) on an unknown class OC\\Files\\Storage\\Shared.#' 23 | path: lib/FilesHooks.php 24 | count: 1 25 | - 26 | message: '#PHPDoc tag @var for variable \$storage contains unknown class OC\\Files\\Storage\\Shared.#' 27 | path: lib/FilesHooks.php 28 | count: 1 29 | - 30 | message: '#Strict comparison using === between string and null will always evaluate to false.#' 31 | path: lib/FilesHooks.php 32 | count: 1 33 | -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | ./tests/unit 15 | 16 | 17 | 18 | 19 | . 20 | 21 | 22 | ./l10n 23 | ./tests 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /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_activity 4 | sonar.projectVersion=2.7.1 5 | sonar.host.url=https://sonarcloud.io 6 | 7 | # ===================================================== 8 | # Meta-data for the project 9 | # ===================================================== 10 | 11 | sonar.links.homepage=https://github.com/owncloud/activity 12 | sonar.links.ci=https://drone.owncloud.com/owncloud/activity/ 13 | sonar.links.scm=https://github.com/owncloud/activity 14 | sonar.links.issue=https://github.com/owncloud/activity/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/activity 27 | sonar.pullrequest.base=${env.SONAR_PULL_REQUEST_BASE} 28 | sonar.pullrequest.branch=${env.SONAR_PULL_REQUEST_BRANCH} 29 | sonar.pullrequest.key=${env.SONAR_PULL_REQUEST_KEY} 30 | 31 | # Properties specific to language plugins: 32 | sonar.php.coverage.reportPaths=results/clover-phpunit-php7.3-mariadb10.2.xml,results/clover-phpunit-php7.3-mysql8.0.xml,results/clover-phpunit-php7.3-postgres9.4.xml,results/clover-phpunit-php7.3-oracle.xml,results/clover-phpunit-php7.3-sqlite.xml 33 | sonar.javascript.lcov.reportPaths=results/lcov.info 34 | -------------------------------------------------------------------------------- /templates/email.notification.php: -------------------------------------------------------------------------------- 1 | t('Hello %s,', [$_['username']])); 7 | p("\n"); 8 | p("\n"); 9 | 10 | print_unescaped($l->t('You are receiving this email because the following things happened at %s', [$_['owncloud_installation']])); 11 | p("\n"); 12 | p("\n"); 13 | 14 | foreach ($_['activities'] as $activityData) { 15 | print_unescaped($l->t('* %1$s - %2$s', $activityData)); 16 | p("\n"); 17 | } 18 | if ($_['skippedCount']) { 19 | print_unescaped($l->n('* and %n more ', '* and %n more ', $_['skippedCount'])); 20 | p("\n"); 21 | } 22 | p("\n"); 23 | print_unescaped($this->inc('plain.mail.footer', ['app' => 'core'])); 24 | -------------------------------------------------------------------------------- /templates/html.notification.php: -------------------------------------------------------------------------------- 1 | 6 | 7 | 63 |
8 | 9 | 10 | 11 | 14 | 15 | 16 | 17 | 18 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 60 | 61 |
  12 | <?php p($theme->getName()); ?> 13 |
 
  19 |

20 | t('Hello %s,', [$_['username']]) 22 | ); ?> 23 |

24 |

25 | t( 27 | 'You are receiving this email because the following things happened at %s', 28 | [$_['owncloud_installation'], $theme->getName()] 29 | ) 30 | ) ?> 31 |

32 |
    33 | 35 |
  • 36 | t('%1$s - %2$s', $activityData)); ?> 37 |
  • 38 | 40 | 42 |
  • 43 | n('and %n more ', 'and %n more ', $_['skippedCount']) 45 | ); ?> 46 |
  • 47 | 49 |
50 |
 
  58 | inc('html.mail.footer', ['app' => 'core'])); ?> 59 |
62 |
64 | -------------------------------------------------------------------------------- /templates/rss.php: -------------------------------------------------------------------------------- 1 | '; 9 | ?> 10 | 11 | 12 | 13 | <?php p($l->t('Activity feed')); ?> 14 | 15 | 16 | 17 | 18 | 19 | 20 | 22 | 23 | 24 | 25 | <?php p(\str_replace("\n", ' ', $activity['subject_prepared'])); ?> 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | ', \OCP\Util::sanitizeHTML($activity['message_prepared']))); ?>]]> 35 | 36 | 37 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /templates/stream.app.navigation.php: -------------------------------------------------------------------------------- 1 | 9 |
10 | $navigationEntries) { 11 | ?> 12 |
    13 | 14 | 16 | class="active"> 17 | 18 | 19 | 20 | 21 | 23 | 24 |
25 | 27 | 28 |
29 |
30 | 31 |
32 | 33 |
34 | checked="checked" id="enable_rss" class="checkbox" /> 35 | 36 | class="hidden" type="text" readonly="readonly" value="" /> 37 |
38 |
39 |
40 | -------------------------------------------------------------------------------- /templates/stream.body.php: -------------------------------------------------------------------------------- 1 | . 21 | * 22 | */ 23 | 24 | /** @var $l OC_L10N */ 25 | /** @var $theme OC_Defaults */ 26 | /** @var $_ array */ 27 | script('activity', [ 28 | 'formatter', 29 | 'script' 30 | ]); 31 | style('activity', 'style'); 32 | ?> 33 | 34 | printPage(); ?> 35 | 36 |
37 | 42 | 43 |
44 |
45 | 46 |
47 | 48 | 51 |
52 | -------------------------------------------------------------------------------- /tests/acceptance/features/bootstrap/bootstrap.php: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * @copyright Copyright (c) 2018, JankariTech 8 | * 9 | * This library is free software; you can redistribute it and/or 10 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE 11 | * License as published by the Free Software Foundation; either 12 | * version 3 of the License, or any later version. 13 | * 14 | * This library is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details. 18 | * 19 | * You should have received a copy of the GNU Affero General Public 20 | * License along with this library. If not, see . 21 | * 22 | */ 23 | 24 | require_once __DIR__ . '/../../../../../../tests/acceptance/features/bootstrap/bootstrap.php'; 25 | 26 | $classLoader = new \Composer\Autoload\ClassLoader(); 27 | $classLoader->addPsr4( 28 | "", 29 | __DIR__ . "/../../../../../../tests/acceptance/features/bootstrap", 30 | true 31 | ); 32 | $classLoader->addPsr4("Page\\", __DIR__ . "/../lib", true); 33 | 34 | $classLoader->register(); 35 | -------------------------------------------------------------------------------- /tests/acceptance/features/webUIActivityFileMoveAndRename/moveRename.feature: -------------------------------------------------------------------------------- 1 | @webUI @insulated @disablePreviews 2 | Feature: Moving and renaming file/folders activity 3 | As a user 4 | I want to be able to see move/rename activities that took place in my cloud storage 5 | So that I know the history of the activities 6 | 7 | Background: 8 | Given the administrator has added config key "enable_move_and_rename_activities" with value "yes" in app "activity" 9 | And user "Alice" has been created with default attributes and without skeleton files 10 | And user "Alice" has logged in using the webUI 11 | 12 | 13 | Scenario: moving a folder should be listed in the activity list 14 | Given user "Alice" has created the following folders 15 | | path | 16 | | folder1 | 17 | | folder2 | 18 | | folder1/folder3 | 19 | When user "Alice" moves folder "/folder2" to "/folder1/folder3" using the WebDAV API 20 | And the user browses to the activity page 21 | Then the activity number 1 should contain message "You moved folder2 to folder1/folder3" in the activity page 22 | 23 | 24 | Scenario: renaming a folder should be listed in the activity list 25 | Given user "Alice" has created folder "New folder" 26 | When user "Alice" moves folder "New folder" to "newFolder" using the WebDAV API 27 | And the user browses to the activity page 28 | Then the activity number 1 should contain message "You renamed New folder to newFolder" in the activity page 29 | 30 | -------------------------------------------------------------------------------- /tests/acceptance/features/webUIActivitySharingExternal/publicLinkSharingFederation.feature: -------------------------------------------------------------------------------- 1 | @webUI @insulated @disablePreviews 2 | Feature: public link federation sharing file/folder activities 3 | As a user 4 | I want to be able to see history of the files and folders shared externally 5 | So that I know what happened in my cloud storage 6 | 7 | @issue-800 8 | Scenario: adding a server to the public link does not show activity for the receiver 9 | Given using server "REMOTE" 10 | And user "Alice" has been created with default attributes and without skeleton files 11 | And user "Alice" has uploaded file with content "ownCloud test text file 0" to "/textfile0.txt" 12 | And user "Alice" has created a public link share of file "textfile0.txt" 13 | And using server "LOCAL" 14 | And user "Brian" has been created with default attributes and without skeleton files 15 | And the public has accessed the last created public link using the webUI 16 | When the public adds the public link to "%local_server%" as user "Brian" using the webUI 17 | And the user accepts the offered federated shares using the webUI 18 | And the user browses to the activity page 19 | Then the activity should not have any message with keyword "shared" 20 | # remove the above step and use the following one after the issue has been resolved, might need some refactor 21 | # And the activity number 1 should contain message "You received a new federated share textfile0.txt from Alice@…" in the activity page 22 | -------------------------------------------------------------------------------- /tests/drone/check-daily-update.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | set -e 3 | 4 | # Args: 5 | # 1...n - tarballs to check 6 | 7 | if ! [[ $# -gt 0 ]]; then 8 | echo "[ERROR] Tarball is not provided" 9 | echo "[INFO] Provide tarballs as command args separated by a space" 10 | exit 1 11 | fi 12 | 13 | DOWNLOAD_URL="https://download.owncloud.com/server/daily" 14 | DESTINATION="/tmp/owncloud" 15 | EXIT_CODE=1 16 | 17 | while [[ $# -gt 0 ]]; do 18 | # create the destination 19 | mkdir -p "${DESTINATION}" 20 | 21 | # remove white spaces 22 | TARBALL=$(echo "$1" | tr -d '[:space:]') 23 | 24 | if ! [[ "${TARBALL}" =~ ^owncloud-.* ]] && ! [[ "${TARBALL}" =~ .*\.tar\.bz2$ ]]; then 25 | TARBALL="owncloud-${TARBALL}.tar.bz2" 26 | fi 27 | 28 | echo -e "\n-----------------------------------------------------------------" 29 | echo "[INFO] Checking tarball '${TARBALL}'" 30 | echo "[INFO] Downloading '${DOWNLOAD_URL}/${TARBALL}'" 31 | echo "[INFO] Extracting tarball to '${DESTINATION}'" 32 | # download and extract the tarball 33 | wget -qO- "${DOWNLOAD_URL}/${TARBALL}" | tar -xj -C "${DESTINATION}" --strip 1 34 | 35 | BUILD_DATE=$(grep "\$OC_Build =" "${DESTINATION}/version.php") 36 | BUILD_DATE=$(echo "${BUILD_DATE}" | grep -Eo "[0-9\-]+" | head -1) 37 | 38 | TODAY=$(date +%Y-%m-%d) 39 | # busybox date does not support the following format: 40 | # -d "-1 days" 41 | YESTERDAY=$(date -d "@$(($(date +%s) - 86400))" +%Y-%m-%d) 42 | 43 | # cleanup the destination 44 | rm -rf "${DESTINATION}" 45 | 46 | if [[ "${BUILD_DATE}" == "${TODAY}" || "${BUILD_DATE}" == "${YESTERDAY}" ]]; then 47 | echo "[SUCCESS] Daily tarball '${TARBALL}' is up to date" 48 | EXIT_CODE=0 49 | else 50 | echo "[ERROR] Daily tarball '${TARBALL}' is not up to date" 51 | echo "[INFO] Tarball build date: ${BUILD_DATE}" 52 | echo "[INFO] Today: ${TODAY}" 53 | EXIT_CODE=1 54 | fi 55 | shift 56 | done 57 | 58 | exit ${EXIT_CODE} 59 | -------------------------------------------------------------------------------- /tests/js/activitycollectionSpec.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 3 | * 4 | * This file is licensed under the Affero General Public License version 3 5 | * or later. 6 | * 7 | * See the COPYING-README file. 8 | * 9 | */ 10 | describe('ActivityCollection', function() { 11 | var ActivityCollection = OCA.Activity.ActivityCollection; 12 | 13 | describe('query url', function() { 14 | it('does not filter by default', function() { 15 | var col = new ActivityCollection(); 16 | expect(col.url()) 17 | .toEqual( 18 | //OC.linkToOCS('apps/activity/api/v2/activity', 2) + 'filter?format=json' 19 | OC.generateUrl('/apps/activity/api/v2/activity') + '/filter?format=json' 20 | ); 21 | }); 22 | it('does not filter by default - page2', function() { 23 | var col = new ActivityCollection(); 24 | col.lastGivenId = 23; 25 | expect(col.url()) 26 | .toEqual( 27 | //OC.linkToOCS('apps/activity/api/v2/activity', 2) + 'filter?format=json' 28 | OC.generateUrl('/apps/activity/api/v2/activity') + '/filter?format=json&since=23' 29 | ); 30 | }); 31 | it('filters by id and type when specified', function() { 32 | var col = new ActivityCollection(); 33 | col.setObjectType('files'); 34 | col.setObjectId(512); 35 | expect(col.url()) 36 | .toEqual( 37 | //OC.linkToOCS('apps/activity/api/v2/activity', 2) + 'filter' + 38 | OC.generateUrl('/apps/activity/api/v2/activity') + '/filter' + 39 | '?format=json&object_type=files&object_id=512' 40 | ); 41 | }); 42 | it('filters by id and type when specified - page2', function() { 43 | var col = new ActivityCollection(); 44 | col.setObjectType('files'); 45 | col.setObjectId(512); 46 | col.lastGivenId = 42; 47 | expect(col.url()) 48 | .toEqual( 49 | //OC.linkToOCS('apps/activity/api/v2/activity', 2) + 'filter' + 50 | OC.generateUrl('/apps/activity/api/v2/activity') + '/filter' + 51 | '?format=json&since=42&object_type=files&object_id=512' 52 | ); 53 | }); 54 | }); 55 | }); 56 | 57 | -------------------------------------------------------------------------------- /tests/js/scriptSpec.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 3 | * 4 | * This file is licensed under the Affero General Public License version 3 5 | * or later. 6 | * 7 | * See the COPYING-README file. 8 | * 9 | */ 10 | describe('Filter', function() { 11 | it('tests something', function() { 12 | // TODO: implement proper tests 13 | }); 14 | }); 15 | 16 | describe('Infinite scrolling', function() { 17 | // TODO: implement proper tests 18 | }); 19 | 20 | -------------------------------------------------------------------------------- /tests/unit/AppInfo/AppTest.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2016, ownCloud, Inc. 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\Activity\Tests\AppInfo; 23 | 24 | use OCA\Activity\Tests\Unit\TestCase; 25 | 26 | /** 27 | * Class AppTest 28 | * 29 | * @group DB 30 | * @package OCA\Activity\Tests\AppInfo 31 | */ 32 | class AppTest extends TestCase { 33 | public function testNavigationEntry() { 34 | $navigationManager = \OC::$server->getNavigationManager(); 35 | $navigationManager->clear(); 36 | $all = $navigationManager->getAll(); 37 | $onlyActivity = \array_filter($all, function ($element) { 38 | return $element['id'] === 'activity'; 39 | }); 40 | 41 | // Test whether the navigation entry got added 42 | $this->assertCount(1, $onlyActivity); 43 | } 44 | 45 | // FIXME: Uncomment once the OC_App stuff is not static anymore 46 | // public function testPersonalPanel() { 47 | // require '../appinfo/app.php'; 48 | // 49 | // // Test whether the personal panel got registered 50 | // $forms = \OC_App::getForms('personal'); 51 | // $this->assertGreaterThanOrEqual(1, sizeof($forms), 'Expected to find the activity personal panel'); 52 | // 53 | // $foundActivityPanel = false; 54 | // foreach ($forms as $form) { 55 | // if (strpos($form, 'id="activity_notifications"') !== false) { 56 | // $foundActivityPanel = true; 57 | // break; 58 | // } 59 | // } 60 | // $this->assertTrue($foundActivityPanel, 'Expected to find the activity personal panel'); 61 | // } 62 | } 63 | -------------------------------------------------------------------------------- /tests/unit/BackgroundJob/ExpireActivitiesTest.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2016, ownCloud, Inc. 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\Activity\Tests\BackgroundJob; 23 | 24 | use OCA\Activity\BackgroundJob\ExpireActivities; 25 | use OCA\Activity\Data; 26 | use OCA\Activity\Tests\Unit\TestCase; 27 | use OCP\IConfig; 28 | 29 | /** 30 | * Class ExpireActivitiesTest 31 | * 32 | * @group DB 33 | * @package OCA\Activity\Tests\BackgroundJob 34 | */ 35 | class ExpireActivitiesTest extends TestCase { 36 | public function dataExecute() { 37 | return [ 38 | [], 39 | [ 40 | $this->getMockBuilder('OCA\Activity\Data')->disableOriginalConstructor()->getMock(), 41 | $this->getMockBuilder('OCP\IConfig')->disableOriginalConstructor()->getMock(), 42 | ], 43 | ]; 44 | } 45 | 46 | /** 47 | * @dataProvider dataExecute 48 | * 49 | * @param Data $data 50 | * @param IConfig $config 51 | */ 52 | public function testExecute(Data $data = null, IConfig $config = null) { 53 | $backgroundJob = new ExpireActivities($data, $config); 54 | 55 | $jobList = $this->createMock('\OCP\BackgroundJob\IJobList'); 56 | 57 | /** @var \OC\BackgroundJob\JobList $jobList */ 58 | $backgroundJob->execute($jobList); 59 | $this->assertTrue(true); 60 | 61 | // NOTE: the result of execute() is further tested in 62 | // DataDeleteActivitiesTest::testExpireActivities() 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /tests/unit/Formatter/BaseFormatterTest.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2016, ownCloud, Inc. 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\Activity\Tests\Formatter; 23 | 24 | use OCA\Activity\Formatter\IFormatter; 25 | use OCA\Activity\Formatter\BaseFormatter; 26 | use OCA\Activity\Tests\Unit\TestCase; 27 | 28 | class BaseFormatterTest extends TestCase { 29 | /** 30 | * @param array $methods 31 | * @return IFormatter|\PHPUnit\Framework\MockObject\MockObject 32 | */ 33 | public function getFormatter(array $methods = []) { 34 | if (empty($methods)) { 35 | return new BaseFormatter(); 36 | } else { 37 | return $this->getMockBuilder('OCA\Activity\Formatter\BaseFormatter') 38 | ->setConstructorArgs([ 39 | ]) 40 | ->setMethods($methods) 41 | ->getMock(); 42 | } 43 | } 44 | 45 | public function dataFormat() { 46 | return [ 47 | ['paraeter1', 'para<m>eter1'], 48 | ['paraeter2', 'para<m>eter2'], 49 | ]; 50 | } 51 | 52 | /** 53 | * @dataProvider dataFormat 54 | * 55 | * @param string $parameter 56 | * @param string $expected 57 | */ 58 | public function testFormat($parameter, $expected) { 59 | /** @var \OCP\Activity\IEvent|\PHPUnit\Framework\MockObject\MockObject $event */ 60 | $event = $this->getMockBuilder('OCP\Activity\IEvent') 61 | ->disableOriginalConstructor() 62 | ->getMock(); 63 | 64 | $formatter = $this->getFormatter(); 65 | $this->assertSame($expected, $formatter->format($event, $parameter)); 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /tests/unit/Parsers/HtmlTextParserTest.php: -------------------------------------------------------------------------------- 1 | createMock(IL10N::class); 18 | $g = $this->createMock(IURLGenerator::class); 19 | $g->method('getAbsoluteURL')->willReturnCallback(static function ($url) { 20 | return 'https://cloud.example.net' . $url; 21 | }); 22 | $p = new HtmlTextParser($l, $g); 23 | $parsed = $p->parseMessage($message); 24 | self::assertEquals($expected, $parsed); 25 | } 26 | 27 | public function providesMessages(): array { 28 | return [ 29 | ['You deleted bar.txt', 'You deleted bar.txt'] 30 | ]; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /tests/unit/PersonalTest.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2016, ownCloud, Inc. 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\Activity\Tests\Unit; 23 | use OCA\Activity\AppInfo\Application; 24 | use OCA\Activity\Controller\Settings; 25 | use OCA\Activity\PersonalPanel; 26 | use OCP\AppFramework\IAppContainer; 27 | 28 | /** 29 | * Class PersonalTest 30 | * 31 | * @package OCA\Activity\Tests 32 | */ 33 | class PersonalTest extends TestCase { 34 | protected $panel; 35 | protected $app; 36 | 37 | public function setUp(): void { 38 | parent::setUp(); 39 | $this->app = $this->getMockBuilder(Application::class) 40 | ->disableOriginalConstructor() 41 | ->getMock(); 42 | $this->panel = new PersonalPanel($this->app); 43 | } 44 | 45 | public function testReturnsTemplateResponse() { 46 | $container = $this->getMockBuilder(IAppContainer::class)->getMock(); 47 | $controller = $this->getMockBuilder(Settings::class) 48 | ->disableOriginalConstructor()->getMock(); 49 | $container->expects($this->once())->method('query')->willReturn($controller); 50 | $this->app->expects($this->once())->method('getContainer')->willReturn($container); 51 | $tmpl = $this->panel->getPanel(); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /tests/unit/TestCase.php: -------------------------------------------------------------------------------- 1 | 4 | * 5 | * @copyright Copyright (c) 2016, ownCloud, Inc. 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\Activity\Tests\Unit; 23 | 24 | abstract class TestCase extends \Test\TestCase { 25 | /** @var array */ 26 | protected $services = []; 27 | 28 | /** 29 | * @param string $name 30 | * @param mixed $newService 31 | * @return bool 32 | */ 33 | public function overwriteService($name, $newService) { 34 | if (isset($this->services[$name])) { 35 | return false; 36 | } 37 | 38 | $this->services[$name] = \OC::$server->query($name); 39 | \OC::$server->registerService($name, function () use ($newService) { 40 | return $newService; 41 | }); 42 | 43 | return true; 44 | } 45 | 46 | /** 47 | * @param string $name 48 | * @return bool 49 | */ 50 | public function restoreService($name) { 51 | if (isset($this->services[$name])) { 52 | $oldService = $this->services[$name]; 53 | \OC::$server->registerService($name, function () use ($oldService) { 54 | return $oldService; 55 | }); 56 | 57 | unset($this->services[$name]); 58 | return true; 59 | } 60 | 61 | return false; 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /tests/unit/bootstrap.php: -------------------------------------------------------------------------------- 1 | addPsr4('Test\\', OC::$SERVERROOT . '/tests/lib/', true); 9 | // load activity unit test classes 10 | \OC::$composerAutoloader->addPsr4('OCA\\Activity\\Tests\\Unit\\', __DIR__, true); 11 | -------------------------------------------------------------------------------- /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": "^5.1" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /vendor-bin/phan/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": { 3 | "phan/phan": "^5.4" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /vendor-bin/php_codesniffer/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": { 3 | "squizlabs/php_codesniffer": "^3.7" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /vendor-bin/phpstan/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": { 3 | "phpstan/phpstan": "^1.10" 4 | } 5 | } 6 | --------------------------------------------------------------------------------