mirror of
https://github.com/chenasraf/nextcloud-forum.git
synced 2026-05-18 01:28:58 +00:00
Compare commits
54 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 69bfd56ff6 | |||
| 8476b772e3 | |||
|
|
c43a0a0f89 | ||
| 3c7236f956 | |||
|
|
fcf40da4aa | ||
| 71efe00265 | |||
| 843f81a087 | |||
|
|
f0f06cef25 | ||
| 248c875319 | |||
| 8b973c3ad5 | |||
| f4530ae2a3 | |||
| 3ed74eea8f | |||
| 49ad2c9810 | |||
| 09f6ea4a3b | |||
| e795ec2667 | |||
| be51e8a1a5 | |||
| 53875b1eef | |||
| 0f9d5ea9a5 | |||
| 4708d8cf87 | |||
| 20a15b42d9 | |||
| 7a1853935e | |||
| 04ec7ffcf8 | |||
| c9a76e5cd9 | |||
| 94787052ef | |||
| e20bfdadab | |||
| 328b37be6e | |||
| c7f84d4a18 | |||
| d09987600b | |||
| dcdcde31ed | |||
| f66169288e | |||
| 7a17dbc524 | |||
| c1443014b5 | |||
| 4c2e47d86b | |||
| 8408402148 | |||
| 3d113f1f31 | |||
| 48b7679e3b | |||
| 5f0317b153 | |||
| 56dc0049b8 | |||
| 7519088e2b | |||
| 0f3be447fa | |||
| f73d902962 | |||
| 4a9ae9bfc6 | |||
| 37012590a1 | |||
| 00b80b817d | |||
| 3472e95065 | |||
| 7fde88a158 | |||
| 5ebeb56636 | |||
| a66bcd4612 | |||
| 36d8ecd5bb | |||
| 257a12dfc4 | |||
| b67813fa34 | |||
| d6c6626bad | |||
| 9837fc4683 | |||
| a3b0582d2c |
2
.github/ISSUE_TEMPLATE/config.yml
vendored
2
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -1,4 +1,4 @@
|
||||
blank_issues_enabled: false
|
||||
blank_issues_enabled: true
|
||||
contact_links:
|
||||
- name: Nextcloud Community Forum
|
||||
url: https://help.nextcloud.com
|
||||
|
||||
201
.github/workflows/phpunit-mysql.yml
vendored
Normal file
201
.github/workflows/phpunit-mysql.yml
vendored
Normal file
@@ -0,0 +1,201 @@
|
||||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
name: PHPUnit MySQL
|
||||
|
||||
on: pull_request
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: phpunit-mysql-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
matrix:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
||||
steps:
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Get supported server versions
|
||||
id: versions
|
||||
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
|
||||
|
||||
- name: Build test matrix
|
||||
id: set-matrix
|
||||
run: |
|
||||
# Get server branches from version matrix
|
||||
BRANCHES='${{ steps.versions.outputs.branches }}'
|
||||
|
||||
# Build minimal matrix: min Nextcloud with PHP 8.2, max Nextcloud with PHP 8.3
|
||||
MATRIX=$(jq -nc \
|
||||
--argjson branches "$BRANCHES" \
|
||||
'{include: [{"php-versions": "8.2", "mysql-versions": "8.4", "server-versions": $branches[0]}, {"php-versions": "8.3", "mysql-versions": "8.4", "server-versions": $branches[-1]}]}'
|
||||
)
|
||||
|
||||
echo "matrix=$MATRIX" >> $GITHUB_OUTPUT
|
||||
echo "Generated matrix: $MATRIX"
|
||||
|
||||
changes:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
|
||||
outputs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
filters: |
|
||||
src:
|
||||
- '.github/workflows/**'
|
||||
- 'appinfo/**'
|
||||
- 'lib/**'
|
||||
- 'templates/**'
|
||||
- 'tests/**'
|
||||
- 'vendor/**'
|
||||
- 'vendor-bin/**'
|
||||
- '.php-cs-fixer.dist.php'
|
||||
- 'composer.json'
|
||||
- 'composer.lock'
|
||||
|
||||
phpunit-mysql:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
needs: [changes, matrix]
|
||||
if: needs.changes.outputs.src != 'false'
|
||||
|
||||
strategy:
|
||||
matrix: ${{ fromJson(needs.matrix.outputs.matrix) }}
|
||||
|
||||
name: MySQL ${{ matrix.mysql-versions }} PHP ${{ matrix.php-versions }} Nextcloud ${{ matrix.server-versions }}
|
||||
|
||||
services:
|
||||
mysql:
|
||||
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest
|
||||
ports:
|
||||
- 4444:3306/tcp
|
||||
env:
|
||||
MYSQL_ROOT_PASSWORD: rootpassword
|
||||
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
|
||||
|
||||
steps:
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
path: app-checkout
|
||||
|
||||
- name: Detect app ID from appinfo/info.xml
|
||||
run: |
|
||||
APP_ID=$(grep -oP '(?<=<id>)[^<]+' app-checkout/appinfo/info.xml | head -1)
|
||||
echo "APP_NAME=$APP_ID" >> $GITHUB_ENV
|
||||
echo "Detected app ID: $APP_ID"
|
||||
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
repository: nextcloud/server
|
||||
ref: ${{ matrix.server-versions }}
|
||||
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
path: apps/${{ env.APP_NAME }}
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@0f7f1d08e3e32076e51cae65eb0b0c871405b16e # v2.34.1
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, mysql, pdo_mysql
|
||||
coverage: none
|
||||
ini-file: development
|
||||
# Temporary workaround for missing pcntl_* in PHP 8.3
|
||||
ini-values: disable_functions=
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Enable ONLY_FULL_GROUP_BY MySQL option
|
||||
run: |
|
||||
echo "SET GLOBAL sql_mode=(SELECT CONCAT(@@sql_mode,',ONLY_FULL_GROUP_BY'));" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
|
||||
echo 'SELECT @@sql_mode;' | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
|
||||
|
||||
- name: Check composer file existence
|
||||
id: check_composer
|
||||
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
|
||||
with:
|
||||
files: apps/${{ env.APP_NAME }}/composer.json
|
||||
|
||||
- name: Set up dependencies
|
||||
# Only run if phpunit config file exists
|
||||
if: steps.check_composer.outputs.files_exists == 'true'
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: |
|
||||
composer remove nextcloud/ocp --dev --no-scripts
|
||||
composer i
|
||||
|
||||
- name: Set up Nextcloud
|
||||
env:
|
||||
DB_PORT: 4444
|
||||
run: |
|
||||
mkdir data
|
||||
./occ maintenance:install --verbose --database=mysql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
|
||||
./occ app:enable --force ${{ env.APP_NAME }}
|
||||
|
||||
- name: Check PHPUnit script is defined
|
||||
id: check_phpunit
|
||||
continue-on-error: true
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: |
|
||||
composer run --list | grep '^ test:unit ' | wc -l | grep 1
|
||||
|
||||
- name: PHPUnit
|
||||
# Only run if phpunit config file exists
|
||||
if: steps.check_phpunit.outcome == 'success'
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: composer run test:unit
|
||||
|
||||
- name: Print logs
|
||||
if: always()
|
||||
run: |
|
||||
cat data/nextcloud.log
|
||||
|
||||
- name: Skipped
|
||||
# Fail the action when unit tests are not specified
|
||||
if: steps.check_phpunit.outcome == 'failure'
|
||||
run: |
|
||||
echo 'PHPUnit tests are not specified in composer.json scripts'
|
||||
exit 1
|
||||
|
||||
summary:
|
||||
permissions:
|
||||
contents: none
|
||||
runs-on: ubuntu-latest
|
||||
needs: [changes, phpunit-mysql]
|
||||
|
||||
if: always()
|
||||
|
||||
name: phpunit-mysql-summary
|
||||
|
||||
steps:
|
||||
- name: Summary status
|
||||
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-mysql.result != 'success' }}; then exit 1; fi
|
||||
216
.github/workflows/phpunit-pgsql.yml
vendored
Normal file
216
.github/workflows/phpunit-pgsql.yml
vendored
Normal file
@@ -0,0 +1,216 @@
|
||||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
name: PHPUnit PostgreSQL
|
||||
|
||||
on: pull_request
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: phpunit-pgsql-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
matrix:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
||||
steps:
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Get supported server versions
|
||||
id: versions
|
||||
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
|
||||
|
||||
- name: Build test matrix
|
||||
id: set-matrix
|
||||
run: |
|
||||
# Get server branches from version matrix
|
||||
BRANCHES='${{ steps.versions.outputs.branches }}'
|
||||
|
||||
# Build minimal matrix: only latest Nextcloud with PHP 8.3
|
||||
MATRIX=$(jq -nc \
|
||||
--argjson branches "$BRANCHES" \
|
||||
'{include: [{"php-versions": "8.3", "server-versions": $branches[-1]}]}'
|
||||
)
|
||||
|
||||
echo "matrix=$MATRIX" >> $GITHUB_OUTPUT
|
||||
echo "Generated matrix: $MATRIX"
|
||||
|
||||
changes:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
|
||||
outputs:
|
||||
src: ${{ steps.changes.outputs.src }}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
filters: |
|
||||
src:
|
||||
- '.github/workflows/**'
|
||||
- 'appinfo/**'
|
||||
- 'lib/**'
|
||||
- 'templates/**'
|
||||
- 'tests/**'
|
||||
- 'vendor/**'
|
||||
- 'vendor-bin/**'
|
||||
- '.php-cs-fixer.dist.php'
|
||||
- 'composer.json'
|
||||
- 'composer.lock'
|
||||
|
||||
phpunit-pgsql:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
needs: [changes, matrix]
|
||||
if: needs.changes.outputs.src != 'false'
|
||||
|
||||
strategy:
|
||||
matrix: ${{ fromJson(needs.matrix.outputs.matrix) }}
|
||||
|
||||
name: PostgreSQL PHP ${{ matrix.php-versions }} Nextcloud ${{ matrix.server-versions }}
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: ghcr.io/nextcloud/continuous-integration-postgres-16:latest # zizmor: ignore[unpinned-images]
|
||||
ports:
|
||||
- 4444:5432/tcp
|
||||
env:
|
||||
POSTGRES_USER: root
|
||||
POSTGRES_PASSWORD: rootpassword
|
||||
POSTGRES_DB: nextcloud
|
||||
options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
|
||||
|
||||
steps:
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
path: app-checkout
|
||||
|
||||
- name: Detect app ID from appinfo/info.xml
|
||||
run: |
|
||||
APP_ID=$(grep -oP '(?<=<id>)[^<]+' app-checkout/appinfo/info.xml | head -1)
|
||||
echo "APP_NAME=$APP_ID" >> $GITHUB_ENV
|
||||
echo "Detected app ID: $APP_ID"
|
||||
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
repository: nextcloud/server
|
||||
ref: ${{ matrix.server-versions }}
|
||||
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
path: apps/${{ env.APP_NAME }}
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, pgsql, pdo_pgsql
|
||||
coverage: none
|
||||
ini-file: development
|
||||
# Temporary workaround for missing pcntl_* in PHP 8.3
|
||||
ini-values: disable_functions=
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Check composer file existence
|
||||
id: check_composer
|
||||
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
|
||||
with:
|
||||
files: apps/${{ env.APP_NAME }}/composer.json
|
||||
|
||||
- name: Set up dependencies
|
||||
# Only run if phpunit config file exists
|
||||
if: steps.check_composer.outputs.files_exists == 'true'
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: |
|
||||
composer remove nextcloud/ocp --dev --no-scripts
|
||||
composer i
|
||||
|
||||
- name: Set up Nextcloud
|
||||
env:
|
||||
DB_PORT: 4444
|
||||
run: |
|
||||
mkdir data
|
||||
./occ maintenance:install --verbose --database=pgsql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
|
||||
./occ app:enable --force ${{ env.APP_NAME }}
|
||||
|
||||
- name: Check PHPUnit script is defined
|
||||
id: check_phpunit
|
||||
continue-on-error: true
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: |
|
||||
composer run --list | grep '^ test:unit ' | wc -l | grep 1
|
||||
|
||||
- name: PHPUnit
|
||||
# Only run if phpunit config file exists
|
||||
if: steps.check_phpunit.outcome == 'success'
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: composer run test:unit
|
||||
|
||||
- name: Check PHPUnit integration script is defined
|
||||
id: check_integration
|
||||
continue-on-error: true
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: |
|
||||
composer run --list | grep '^ test:integration ' | wc -l | grep 1
|
||||
|
||||
- name: Run Nextcloud
|
||||
# Only run if phpunit integration config file exists
|
||||
if: steps.check_integration.outcome == 'success'
|
||||
run: php -S localhost:8080 &
|
||||
|
||||
- name: PHPUnit integration
|
||||
# Only run if phpunit integration config file exists
|
||||
if: steps.check_integration.outcome == 'success'
|
||||
working-directory: apps/${{ env.APP_NAME }}
|
||||
run: composer run test:integration
|
||||
|
||||
- name: Print logs
|
||||
if: always()
|
||||
run: |
|
||||
cat data/nextcloud.log
|
||||
|
||||
- name: Skipped
|
||||
# Fail the action when neither unit nor integration tests ran
|
||||
if: steps.check_phpunit.outcome == 'failure' && steps.check_integration.outcome == 'failure'
|
||||
run: |
|
||||
echo 'Neither PHPUnit nor PHPUnit integration tests are specified in composer.json scripts'
|
||||
exit 1
|
||||
|
||||
summary:
|
||||
permissions:
|
||||
contents: none
|
||||
runs-on: ubuntu-latest
|
||||
needs: [changes, phpunit-pgsql]
|
||||
|
||||
if: always()
|
||||
|
||||
name: phpunit-pgsql-summary
|
||||
|
||||
steps:
|
||||
- name: Summary status
|
||||
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-pgsql.result != 'success' }}; then exit 1; fi
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -12,7 +12,6 @@
|
||||
/js
|
||||
/css
|
||||
.DS_Store
|
||||
composer.lock
|
||||
build/
|
||||
tsconfig.app.tsbuildinfo
|
||||
.env
|
||||
|
||||
@@ -2,9 +2,16 @@ module.exports = {
|
||||
'*.{ts,vue}': ['eslint --fix'],
|
||||
'*.{scss,vue,ts,md}': ['prettier --write'],
|
||||
'*.json': (files) => {
|
||||
const filtered = files.filter(file => !file.includes('openapi.json'));
|
||||
return filtered.length > 0 ? `prettier --write ${filtered.join(' ')}` : [];
|
||||
const filtered = files.filter(file => !file.includes('openapi.json'))
|
||||
return filtered.length > 0 ? `prettier --write ${filtered.join(' ')}` : []
|
||||
},
|
||||
'*.php': (files) => {
|
||||
const nonGenFiles = files.filter(file => !file.includes('/gen/'))
|
||||
const commands = []
|
||||
if (nonGenFiles.length > 0) {
|
||||
commands.push('make php-cs-fixer', 'make test')
|
||||
}
|
||||
return commands
|
||||
},
|
||||
'*.php': [() => 'make php-cs-fixer'],
|
||||
'*Controller.php': [() => 'make openapi', () => 'git add openapi.json'],
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{".":"0.9.0"}
|
||||
{".":"0.11.0"}
|
||||
|
||||
62
CHANGELOG.md
62
CHANGELOG.md
@@ -1,5 +1,67 @@
|
||||
# Changelog
|
||||
|
||||
## [0.11.0](https://github.com/chenasraf/nextcloud-forum/compare/v0.10.1...v0.11.0) (2025-11-24)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **AdminRoleEdit:** allow checking/unchecking multiple categories ([8b973c3](https://github.com/chenasraf/nextcloud-forum/commit/8b973c3ad5349bb91b4039b86edd4416f136fc7b))
|
||||
* **Category Admin:** refresh categories/headers in sidebar afer modifying ([3ed74ee](https://github.com/chenasraf/nextcloud-forum/commit/3ed74eea8f85d062e8a95749d8b487ee42066c2f))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **AdminDashboard:** improve contributors sorting ([248c875](https://github.com/chenasraf/nextcloud-forum/commit/248c8753198b801c71ad94ede35d06b0bbd4aed1))
|
||||
* **Categories:** admin should always see all categories ([f4530ae](https://github.com/chenasraf/nextcloud-forum/commit/f4530ae2a3c01ba2d1f36c3c9e32ead2502580d0))
|
||||
* **l10n:** translation source string issues ([843f81a](https://github.com/chenasraf/nextcloud-forum/commit/843f81a08725b3109067b6f1f3ad2f538209ee26))
|
||||
* **l10n:** unify same messages with different placeholders ([8476b77](https://github.com/chenasraf/nextcloud-forum/commit/8476b772e305c9893b4d796c0dc3e9df1151fe09))
|
||||
* **l10n:** unusable pluralization ([3c7236f](https://github.com/chenasraf/nextcloud-forum/commit/3c7236f956736e5e249e72344ed2c973a6e65540))
|
||||
* **l10n:** Update translations from Transifex ([c43a0a0](https://github.com/chenasraf/nextcloud-forum/commit/c43a0a0f893378eb430e94209396d51f7c7fd830))
|
||||
* **l10n:** Update translations from Transifex ([fcf40da](https://github.com/chenasraf/nextcloud-forum/commit/fcf40da4aaed59d0a6d6ee58f039c73f4c5eba98))
|
||||
* **l10n:** Update translations from Transifex ([f0f06ce](https://github.com/chenasraf/nextcloud-forum/commit/f0f06cef258fc658e935d3375bbe92d8000b6d33))
|
||||
|
||||
## [0.10.1](https://github.com/chenasraf/nextcloud-forum/compare/v0.10.0...v0.10.1) (2025-11-23)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **Seed:** don't seed admin category permission ([09f6ea4](https://github.com/chenasraf/nextcloud-forum/commit/09f6ea4a3b56bdf723f7b90a204a2450d1b4137e))
|
||||
* **Seed:** improve seed idempotency ([e795ec2](https://github.com/chenasraf/nextcloud-forum/commit/e795ec266736f413c71ebd3f9f3c9081e86cf082))
|
||||
|
||||
## [0.10.0](https://github.com/chenasraf/nextcloud-forum/compare/v0.9.2...v0.10.0) (2025-11-23)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **Roles:** admin always has full permissions ([c9a76e5](https://github.com/chenasraf/nextcloud-forum/commit/c9a76e5cd97df0c82bb79825799eeba7ce66086e))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **AdminDashboard:** exclude thread posts from post count ([53875b1](https://github.com/chenasraf/nextcloud-forum/commit/53875b1eefaddcbe8c4024c98834e44c3a01aeb0))
|
||||
* modal actions spacing ([0f9d5ea](https://github.com/chenasraf/nextcloud-forum/commit/0f9d5ea9a5a99dda9bb351ed98d91ae880ddf64f))
|
||||
* **Roles:** prevent deleting system roles on backend ([328b37b](https://github.com/chenasraf/nextcloud-forum/commit/328b37be6eec2b0001517ef74779565457de7213))
|
||||
* **UserEventListener:** add User role to newly created users ([c7f84d4](https://github.com/chenasraf/nextcloud-forum/commit/c7f84d4a186ab7832d5fa96c2143bef30ddf3a85))
|
||||
|
||||
## [0.9.2](https://github.com/chenasraf/nextcloud-forum/compare/v0.9.1...v0.9.2) (2025-11-22)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **l10n:** bbcode help dialog strings ([d6c6626](https://github.com/chenasraf/nextcloud-forum/commit/d6c6626badf90636aae4f59fbe4765a5f786f5ab))
|
||||
* **l10n:** plural tokens + text alignment strings ([8408402](https://github.com/chenasraf/nextcloud-forum/commit/8408402148c9935b50df1f75915cffba7d76b043))
|
||||
* **l10n:** update translation source strings ([3d113f1](https://github.com/chenasraf/nextcloud-forum/commit/3d113f1f31887b7849753d07712a548392f574d6))
|
||||
* post counts in threads/categories ([257a12d](https://github.com/chenasraf/nextcloud-forum/commit/257a12dfc43d7784d7e63ab79a8545d80022251e))
|
||||
* **PostController:** exclude first posts from post_count fields ([a66bcd4](https://github.com/chenasraf/nextcloud-forum/commit/a66bcd4612a1889624e608e9e0207d7e09fc32df))
|
||||
* **SeedHelper:** subscribe author to welcome thread ([b67813f](https://github.com/chenasraf/nextcloud-forum/commit/b67813fa34746de8f999b16e609c6ee7a9458e9b))
|
||||
|
||||
## [0.9.1](https://github.com/chenasraf/nextcloud-forum/compare/v0.9.0...v0.9.1) (2025-11-21)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **l10n:** fix welcome post & bbcode example strings ([a3b0582](https://github.com/chenasraf/nextcloud-forum/commit/a3b0582d2cce2c22cd5070f3c335a732c25c5e67))
|
||||
|
||||
## [0.9.0](https://github.com/chenasraf/nextcloud-forum/compare/v0.8.2...v0.9.0) (2025-11-21)
|
||||
|
||||
|
||||
|
||||
4
Makefile
4
Makefile
@@ -230,7 +230,7 @@ test: composer
|
||||
exit 1; \
|
||||
fi; \
|
||||
echo "\x1b[32mUsing Nextcloud root: $$NC_ROOT\x1b[0m"; \
|
||||
NEXTCLOUD_ROOT="$$NC_ROOT" $(CURDIR)/vendor/phpunit/phpunit/phpunit -c tests/phpunit.local.xml; \
|
||||
NEXTCLOUD_ROOT="$$NC_ROOT" $(CURDIR)/vendor/phpunit/phpunit/phpunit -c tests/phpunit.xml; \
|
||||
if [ -f tests/phpunit.integration.xml ]; then \
|
||||
NEXTCLOUD_ROOT="$$NC_ROOT" $(CURDIR)/vendor/phpunit/phpunit/phpunit -c tests/phpunit.integration.xml; \
|
||||
fi
|
||||
@@ -265,7 +265,7 @@ test-docker:
|
||||
exit 1; \
|
||||
fi; \
|
||||
echo "\x1b[33mRunning tests in container $$CONTAINER_ID for app $$APP_DIR\x1b[0m"; \
|
||||
docker exec $$CONTAINER_ID phpunit -c apps-shared/$$APP_DIR/tests/phpunit.xml
|
||||
docker exec $$CONTAINER_ID phpunit -c apps-shared/$$APP_DIR/tests/phpunit.docker.xml
|
||||
|
||||
# lint:
|
||||
# - Lint JS via pnpm and PHP via composer script "lint"
|
||||
|
||||
@@ -5,7 +5,9 @@ SPDX-License-Identifier: CC0-1.0
|
||||
|
||||
# Nextcloud Forum
|
||||
|
||||

|
||||
[](https://github.com/chenasraf/nextcloud-forum/releases/latest)
|
||||
[](https://github.com/chenasraf/nextcloud-forum/actions/workflows/phpunit-mysql.yml)
|
||||
[](https://github.com/chenasraf/nextcloud-forum/actions/workflows/phpunit-pgsql.yml)
|
||||
|
||||
A full-featured forum application for Nextcloud, allowing users to create discussion categories,
|
||||
threads, and posts within their Nextcloud instance.
|
||||
|
||||
@@ -8,12 +8,12 @@
|
||||
<name>Forum</name>
|
||||
<summary>A community-driven forum built right into your Nextcloud instance</summary>
|
||||
<description><![CDATA[
|
||||
Create discussions, share ideas, and collaborate with your community directly in Nextcloud.
|
||||
Create discussions, share ideas and collaborate with your community directly in Nextcloud.
|
||||
|
||||
**⚠️ Early Development Notice:**
|
||||
This app is in early stages of development. While functional, you may encounter bugs or incomplete features. Please report any issues on GitHub and consider backing up your data regularly.
|
||||
|
||||
**Key Features:**
|
||||
**Key features:**
|
||||
- **Thread-based Discussions** - Create and reply to organized discussion threads
|
||||
- **Category Organization** - Structure your forum with customizable categories and headers
|
||||
- **Rich Text Formatting** - Use BBCode for formatting posts with bold, italic, links, images, code blocks and more
|
||||
@@ -23,10 +23,10 @@ This app is in early stages of development. While functional, you may encounter
|
||||
- **Search** - Find discussions quickly with built-in search
|
||||
- **User Profiles** - View user post history and statistics
|
||||
- **Role-Based Permissions** - Control access and moderation with flexible roles
|
||||
- **Admin Tools** - Manage categories, roles, BBCodes, and forum settings
|
||||
- **Moderation Tools** - Pin, lock, and manage threads and posts
|
||||
- **Admin Tools** - Manage categories, roles, BBCodes and forum settings
|
||||
- **Moderation Tools** - Pin, lock and manage threads and posts
|
||||
|
||||
**Perfect For:**
|
||||
**Perfect for:**
|
||||
- Team discussions and collaboration
|
||||
- Community forums
|
||||
- Support channels
|
||||
@@ -36,7 +36,7 @@ This app is in early stages of development. While functional, you may encounter
|
||||
|
||||
The forum integrates seamlessly with your Nextcloud instance, using your existing users and groups for authentication and access control.
|
||||
]]></description>
|
||||
<version>0.9.0</version>
|
||||
<version>0.11.0</version>
|
||||
<licence>agpl</licence>
|
||||
<author mail="contact@casraf.dev" homepage="https://casraf.dev">Chen Asraf</author>
|
||||
<namespace>Forum</namespace>
|
||||
|
||||
3039
composer.lock
generated
Normal file
3039
composer.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,6 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Last 7 Days" : "In den letzten 7 Tagen"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,4 +0,0 @@
|
||||
{ "translations": {
|
||||
"Last 7 Days" : "In den letzten 7 Tagen"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Dashboard" : "Tablero de control"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
@@ -1,4 +0,0 @@
|
||||
{ "translations": {
|
||||
"Dashboard" : "Tablero de control"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Dashboard" : "Tablero de control"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
@@ -1,4 +0,0 @@
|
||||
{ "translations": {
|
||||
"Dashboard" : "Tablero de control"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Underlined text" : "Texto subrayado",
|
||||
"Dashboard" : "Tablero de control",
|
||||
"Create" : "Crear"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
@@ -1,6 +0,0 @@
|
||||
{ "translations": {
|
||||
"Underlined text" : "Texto subrayado",
|
||||
"Dashboard" : "Tablero de control",
|
||||
"Create" : "Crear"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Save" : "Guardar",
|
||||
"Dashboard" : "Tablero de control",
|
||||
"Uncategorized" : "Sin categoría"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
@@ -1,6 +0,0 @@
|
||||
{ "translations": {
|
||||
"Save" : "Guardar",
|
||||
"Dashboard" : "Tablero de control",
|
||||
"Uncategorized" : "Sin categoría"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Save" : "Guardar",
|
||||
"Dashboard" : "Tablero de control",
|
||||
"Uncategorized" : "Sin categoría"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
@@ -1,6 +0,0 @@
|
||||
{ "translations": {
|
||||
"Save" : "Guardar",
|
||||
"Dashboard" : "Tablero de control",
|
||||
"Uncategorized" : "Sin categoría"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Underlined text" : "Texto subrayado",
|
||||
"Save" : "Guardar",
|
||||
"Dashboard" : "Tablero de control",
|
||||
"Collapse" : "Colapsar",
|
||||
"Uncategorized" : "Sin categoría",
|
||||
"Preferences" : "Preferencias",
|
||||
"Create" : "Crear"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
@@ -1,10 +0,0 @@
|
||||
{ "translations": {
|
||||
"Underlined text" : "Texto subrayado",
|
||||
"Save" : "Guardar",
|
||||
"Dashboard" : "Tablero de control",
|
||||
"Collapse" : "Colapsar",
|
||||
"Uncategorized" : "Sin categoría",
|
||||
"Preferences" : "Preferencias",
|
||||
"Create" : "Crear"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Save" : "Guardar",
|
||||
"Dashboard" : "Tablero de control",
|
||||
"Collapse" : "Colapsar",
|
||||
"Uncategorized" : "Sin categoría"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
@@ -1,7 +0,0 @@
|
||||
{ "translations": {
|
||||
"Save" : "Guardar",
|
||||
"Dashboard" : "Tablero de control",
|
||||
"Collapse" : "Colapsar",
|
||||
"Uncategorized" : "Sin categoría"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Save" : "Guardar",
|
||||
"Dashboard" : "Tablero de control",
|
||||
"Collapse" : "Colapsar",
|
||||
"Uncategorized" : "Sin categoría"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
@@ -1,7 +0,0 @@
|
||||
{ "translations": {
|
||||
"Save" : "Guardar",
|
||||
"Dashboard" : "Tablero de control",
|
||||
"Collapse" : "Colapsar",
|
||||
"Uncategorized" : "Sin categoría"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Save" : "Guardar",
|
||||
"Dashboard" : "Tablero de control",
|
||||
"Collapse" : "Colapsar",
|
||||
"Uncategorized" : "Sin categoría"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
@@ -1,7 +0,0 @@
|
||||
{ "translations": {
|
||||
"Save" : "Guardar",
|
||||
"Dashboard" : "Tablero de control",
|
||||
"Collapse" : "Colapsar",
|
||||
"Uncategorized" : "Sin categoría"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Save" : "Guardar",
|
||||
"Dashboard" : "Tablero de control",
|
||||
"Collapse" : "Colapsar",
|
||||
"Delete" : "Borrar",
|
||||
"Uncategorized" : "Sin categoría"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
@@ -1,8 +0,0 @@
|
||||
{ "translations": {
|
||||
"Save" : "Guardar",
|
||||
"Dashboard" : "Tablero de control",
|
||||
"Collapse" : "Colapsar",
|
||||
"Delete" : "Borrar",
|
||||
"Uncategorized" : "Sin categoría"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Save" : "Guardar",
|
||||
"Dashboard" : "Tablero de control",
|
||||
"Collapse" : "Colapsar",
|
||||
"Uncategorized" : "Sin categoría"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
@@ -1,7 +0,0 @@
|
||||
{ "translations": {
|
||||
"Save" : "Guardar",
|
||||
"Dashboard" : "Tablero de control",
|
||||
"Collapse" : "Colapsar",
|
||||
"Uncategorized" : "Sin categoría"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Clear" : "Limpiar",
|
||||
"Save" : "Guardar",
|
||||
"Dashboard" : "Tablero de control",
|
||||
"Collapse" : "Colapsar",
|
||||
"Delete" : "Borrar",
|
||||
"Uncategorized" : "Sin categoría"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
@@ -1,9 +0,0 @@
|
||||
{ "translations": {
|
||||
"Clear" : "Limpiar",
|
||||
"Save" : "Guardar",
|
||||
"Dashboard" : "Tablero de control",
|
||||
"Collapse" : "Colapsar",
|
||||
"Delete" : "Borrar",
|
||||
"Uncategorized" : "Sin categoría"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Save" : "Guardar",
|
||||
"Dashboard" : "Tablero de control",
|
||||
"Collapse" : "Colapsar",
|
||||
"Delete" : "Borrar",
|
||||
"Uncategorized" : "Sin categoría"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
@@ -1,8 +0,0 @@
|
||||
{ "translations": {
|
||||
"Save" : "Guardar",
|
||||
"Dashboard" : "Tablero de control",
|
||||
"Collapse" : "Colapsar",
|
||||
"Delete" : "Borrar",
|
||||
"Uncategorized" : "Sin categoría"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Underlined text" : "Allajoonitud tekst",
|
||||
"Light" : "Hele kujundus",
|
||||
"Clear" : "Tühjenda",
|
||||
"Save" : "Salvesta",
|
||||
"Dashboard" : "Töölaud/Juhtpaneel",
|
||||
"Collapse" : "Sulge",
|
||||
"Delete" : "Kustuta",
|
||||
"Uncategorized" : "Määratlemata",
|
||||
"Preferences" : "Eelistused",
|
||||
"Create" : "Lisa",
|
||||
"Last 7 Days" : "Viimase 7 päeva jooksul"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,14 +0,0 @@
|
||||
{ "translations": {
|
||||
"Underlined text" : "Allajoonitud tekst",
|
||||
"Light" : "Hele kujundus",
|
||||
"Clear" : "Tühjenda",
|
||||
"Save" : "Salvesta",
|
||||
"Dashboard" : "Töölaud/Juhtpaneel",
|
||||
"Collapse" : "Sulge",
|
||||
"Delete" : "Kustuta",
|
||||
"Uncategorized" : "Määratlemata",
|
||||
"Preferences" : "Eelistused",
|
||||
"Create" : "Lisa",
|
||||
"Last 7 Days" : "Viimase 7 päeva jooksul"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
15
l10n/fi.js
15
l10n/fi.js
@@ -1,15 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Underlined text" : "Alleviivattu teksti",
|
||||
"Light" : "Vaalea",
|
||||
"Clear" : "Tyhjennä",
|
||||
"Save" : "Tallenna",
|
||||
"Dashboard" : "Kojelauta",
|
||||
"Collapse" : "Kutista näkymää",
|
||||
"Delete" : "Poista",
|
||||
"Uncategorized" : "Luokittelematon",
|
||||
"Preferences" : "Asetukset",
|
||||
"Create" : "Luo"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
13
l10n/fi.json
13
l10n/fi.json
@@ -1,13 +0,0 @@
|
||||
{ "translations": {
|
||||
"Underlined text" : "Alleviivattu teksti",
|
||||
"Light" : "Vaalea",
|
||||
"Clear" : "Tyhjennä",
|
||||
"Save" : "Tallenna",
|
||||
"Dashboard" : "Kojelauta",
|
||||
"Collapse" : "Kutista näkymää",
|
||||
"Delete" : "Poista",
|
||||
"Uncategorized" : "Luokittelematon",
|
||||
"Preferences" : "Asetukset",
|
||||
"Create" : "Luo"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
11
l10n/gd.js
11
l10n/gd.js
@@ -1,11 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Light" : "Soilleir",
|
||||
"Save" : "Sàbhail",
|
||||
"Delete" : "Sguab às",
|
||||
"Uncategorized" : "Gun seòrsachadh",
|
||||
"Preferences" : "Roghainnean",
|
||||
"Create" : "Cruthaich"
|
||||
},
|
||||
"nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;");
|
||||
@@ -1,9 +0,0 @@
|
||||
{ "translations": {
|
||||
"Light" : "Soilleir",
|
||||
"Save" : "Sàbhail",
|
||||
"Delete" : "Sguab às",
|
||||
"Uncategorized" : "Gun seòrsachadh",
|
||||
"Preferences" : "Roghainnean",
|
||||
"Create" : "Cruthaich"
|
||||
},"pluralForm" :"nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;"
|
||||
}
|
||||
6
l10n/hr.js
Normal file
6
l10n/hr.js
Normal file
@@ -0,0 +1,6 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"ID" : "ID"
|
||||
},
|
||||
"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;");
|
||||
4
l10n/hr.json
Normal file
4
l10n/hr.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{ "translations": {
|
||||
"ID" : "ID"
|
||||
},"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;"
|
||||
}
|
||||
14
l10n/hu.js
14
l10n/hu.js
@@ -1,18 +1,6 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Underlined text" : "Aláhúzott szöveg",
|
||||
"Light" : "Világos",
|
||||
"Clear" : "Törlés",
|
||||
"Save" : "Mentés",
|
||||
"Loading…" : "Betöltés…",
|
||||
"Dashboard" : "Irányítópult",
|
||||
"Collapse" : "Összecsukás",
|
||||
"Delete" : "Törlés",
|
||||
"React with {emoji}" : "Reagálás ezzel: {emoji}",
|
||||
"Uncategorized" : "Kategorizálatlan",
|
||||
"Preferences" : "Beállítások",
|
||||
"Create" : "Létrehozás",
|
||||
"Last 7 Days" : "Elmúlt 7 nap"
|
||||
"ID" : "Azonosító"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
14
l10n/hu.json
14
l10n/hu.json
@@ -1,16 +1,4 @@
|
||||
{ "translations": {
|
||||
"Underlined text" : "Aláhúzott szöveg",
|
||||
"Light" : "Világos",
|
||||
"Clear" : "Törlés",
|
||||
"Save" : "Mentés",
|
||||
"Loading…" : "Betöltés…",
|
||||
"Dashboard" : "Irányítópult",
|
||||
"Collapse" : "Összecsukás",
|
||||
"Delete" : "Törlés",
|
||||
"React with {emoji}" : "Reagálás ezzel: {emoji}",
|
||||
"Uncategorized" : "Kategorizálatlan",
|
||||
"Preferences" : "Beállítások",
|
||||
"Create" : "Létrehozás",
|
||||
"Last 7 Days" : "Elmúlt 7 nap"
|
||||
"ID" : "Azonosító"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Save" : "Salveguardar",
|
||||
"Loading…" : "Cargante...",
|
||||
"Collapse" : "Collaber",
|
||||
"Delete" : "Deler"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,7 +0,0 @@
|
||||
{ "translations": {
|
||||
"Save" : "Salveguardar",
|
||||
"Loading…" : "Cargante...",
|
||||
"Collapse" : "Collaber",
|
||||
"Delete" : "Deler"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Save" : "Simpan",
|
||||
"Delete" : "Padam"
|
||||
"ID" : "ID"
|
||||
},
|
||||
"nplurals=1; plural=0;");
|
||||
@@ -1,5 +1,4 @@
|
||||
{ "translations": {
|
||||
"Save" : "Simpan",
|
||||
"Delete" : "Padam"
|
||||
"ID" : "ID"
|
||||
},"pluralForm" :"nplurals=1; plural=0;"
|
||||
}
|
||||
6
l10n/is.js
Normal file
6
l10n/is.js
Normal file
@@ -0,0 +1,6 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"ID" : "ID"
|
||||
},
|
||||
"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
|
||||
4
l10n/is.json
Normal file
4
l10n/is.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{ "translations": {
|
||||
"ID" : "ID"
|
||||
},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Dashboard" : "Tablero de control"
|
||||
"ID" : "ID"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
@@ -1,4 +1,4 @@
|
||||
{ "translations": {
|
||||
"Dashboard" : "Tablero de control"
|
||||
"ID" : "ID"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
14
l10n/ja.js
14
l10n/ja.js
@@ -1,18 +1,6 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Underlined text" : "下線を引きたい文字",
|
||||
"Light" : "明るい",
|
||||
"Clear" : "クリア",
|
||||
"Save" : "保存する",
|
||||
"Loading…" : "読み込み中…",
|
||||
"Dashboard" : "ダッシュボード",
|
||||
"Collapse" : "折りたたむ",
|
||||
"Delete" : "削除",
|
||||
"React with {emoji}" : "{emoji} で反応する",
|
||||
"Uncategorized" : "未分類",
|
||||
"Preferences" : "環境設定",
|
||||
"Create" : "作成",
|
||||
"Last 7 Days" : "7日以内"
|
||||
"ID" : "ID"
|
||||
},
|
||||
"nplurals=1; plural=0;");
|
||||
|
||||
14
l10n/ja.json
14
l10n/ja.json
@@ -1,16 +1,4 @@
|
||||
{ "translations": {
|
||||
"Underlined text" : "下線を引きたい文字",
|
||||
"Light" : "明るい",
|
||||
"Clear" : "クリア",
|
||||
"Save" : "保存する",
|
||||
"Loading…" : "読み込み中…",
|
||||
"Dashboard" : "ダッシュボード",
|
||||
"Collapse" : "折りたたむ",
|
||||
"Delete" : "削除",
|
||||
"React with {emoji}" : "{emoji} で反応する",
|
||||
"Uncategorized" : "未分類",
|
||||
"Preferences" : "環境設定",
|
||||
"Create" : "作成",
|
||||
"Last 7 Days" : "7日以内"
|
||||
"ID" : "ID"
|
||||
},"pluralForm" :"nplurals=1; plural=0;"
|
||||
}
|
||||
6
l10n/ka.js
Normal file
6
l10n/ka.js
Normal file
@@ -0,0 +1,6 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"ID" : "ID"
|
||||
},
|
||||
"nplurals=2; plural=(n!=1);");
|
||||
4
l10n/ka.json
Normal file
4
l10n/ka.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{ "translations": {
|
||||
"ID" : "ID"
|
||||
},"pluralForm" :"nplurals=2; plural=(n!=1);"
|
||||
}
|
||||
@@ -1,11 +1,6 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Clear" : "გასუფთავება",
|
||||
"Save" : "შენახვა",
|
||||
"Dashboard" : "მთავარი დაფა",
|
||||
"Collapse" : "აკეცვა",
|
||||
"Delete" : "წაშლა",
|
||||
"Uncategorized" : "არაკატეგორიზირებული"
|
||||
"ID" : "ID"
|
||||
},
|
||||
"nplurals=2; plural=(n!=1);");
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
{ "translations": {
|
||||
"Clear" : "გასუფთავება",
|
||||
"Save" : "შენახვა",
|
||||
"Dashboard" : "მთავარი დაფა",
|
||||
"Collapse" : "აკეცვა",
|
||||
"Delete" : "წაშლა",
|
||||
"Uncategorized" : "არაკატეგორიზირებული"
|
||||
"ID" : "ID"
|
||||
},"pluralForm" :"nplurals=2; plural=(n!=1);"
|
||||
}
|
||||
13
l10n/kab.js
13
l10n/kab.js
@@ -1,13 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Light" : "Aceɛlal",
|
||||
"Clear" : "Ṣfeḍ",
|
||||
"Save" : "Sekles",
|
||||
"Loading…" : "Asali...",
|
||||
"Dashboard" : "Tafelwit n usenqed",
|
||||
"Delete" : "Kkes",
|
||||
"Preferences" : "Tiwelhiwin",
|
||||
"Create" : "Snulfu-d"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,11 +0,0 @@
|
||||
{ "translations": {
|
||||
"Light" : "Aceɛlal",
|
||||
"Clear" : "Ṣfeḍ",
|
||||
"Save" : "Sekles",
|
||||
"Loading…" : "Asali...",
|
||||
"Dashboard" : "Tafelwit n usenqed",
|
||||
"Delete" : "Kkes",
|
||||
"Preferences" : "Tiwelhiwin",
|
||||
"Create" : "Snulfu-d"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Light" : "ភ្លឺt",
|
||||
"Save" : "រក្សាទុក",
|
||||
"Collapse" : "បត់បង្រួម",
|
||||
"Delete" : "លុប"
|
||||
},
|
||||
"nplurals=1; plural=0;");
|
||||
@@ -1,7 +0,0 @@
|
||||
{ "translations": {
|
||||
"Light" : "ភ្លឺt",
|
||||
"Save" : "រក្សាទុក",
|
||||
"Collapse" : "បត់បង្រួម",
|
||||
"Delete" : "លុប"
|
||||
},"pluralForm" :"nplurals=1; plural=0;"
|
||||
}
|
||||
7
l10n/ko.js
Normal file
7
l10n/ko.js
Normal file
@@ -0,0 +1,7 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"ID" : "ID",
|
||||
"Loading users …" : "사용자 불러오는 중 ..."
|
||||
},
|
||||
"nplurals=1; plural=0;");
|
||||
5
l10n/ko.json
Normal file
5
l10n/ko.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{ "translations": {
|
||||
"ID" : "ID",
|
||||
"Loading users …" : "사용자 불러오는 중 ..."
|
||||
},"pluralForm" :"nplurals=1; plural=0;"
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Save" : "Späicheren",
|
||||
"Loading…" : "Et gëtt gelueden",
|
||||
"Collapse" : "Zesumme falen",
|
||||
"Delete" : "Läschen"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,7 +0,0 @@
|
||||
{ "translations": {
|
||||
"Save" : "Späicheren",
|
||||
"Loading…" : "Et gëtt gelueden",
|
||||
"Collapse" : "Zesumme falen",
|
||||
"Delete" : "Läschen"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
7
l10n/lo.js
Normal file
7
l10n/lo.js
Normal file
@@ -0,0 +1,7 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Tag" : "Tag",
|
||||
"ID" : "ໄອດີ"
|
||||
},
|
||||
"nplurals=1; plural=0;");
|
||||
5
l10n/lo.json
Normal file
5
l10n/lo.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{ "translations": {
|
||||
"Tag" : "Tag",
|
||||
"ID" : "ໄອດີ"
|
||||
},"pluralForm" :"nplurals=1; plural=0;"
|
||||
}
|
||||
@@ -1,19 +1,9 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Underlined text" : "Pabrauktas tekstas",
|
||||
"Light" : "Šviesus",
|
||||
"Clear" : "Išvalyti",
|
||||
"Save" : "Įrašyti",
|
||||
"Loading…" : "Įkeliama…",
|
||||
"Dashboard" : "Skydelis",
|
||||
"Collapse" : "Suskleisti",
|
||||
"Delete" : "Ištrinti",
|
||||
"React with {emoji}" : "Reaguoti naudojant {emoji}",
|
||||
"Uncategorized" : "Nekategorizuotas",
|
||||
"Reply" : "Atsakyt",
|
||||
"Preferences" : "Nuostatos",
|
||||
"Create" : "Sukurti",
|
||||
"Last 7 Days" : "Paskutinės 7 dienos"
|
||||
"Tag" : "Žymė",
|
||||
"ID" : "ID",
|
||||
"Loading users …" : "Įkeliami naudotojai…"
|
||||
},
|
||||
"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);");
|
||||
|
||||
@@ -1,17 +1,7 @@
|
||||
{ "translations": {
|
||||
"Underlined text" : "Pabrauktas tekstas",
|
||||
"Light" : "Šviesus",
|
||||
"Clear" : "Išvalyti",
|
||||
"Save" : "Įrašyti",
|
||||
"Loading…" : "Įkeliama…",
|
||||
"Dashboard" : "Skydelis",
|
||||
"Collapse" : "Suskleisti",
|
||||
"Delete" : "Ištrinti",
|
||||
"React with {emoji}" : "Reaguoti naudojant {emoji}",
|
||||
"Uncategorized" : "Nekategorizuotas",
|
||||
"Reply" : "Atsakyt",
|
||||
"Preferences" : "Nuostatos",
|
||||
"Create" : "Sukurti",
|
||||
"Last 7 Days" : "Paskutinės 7 dienos"
|
||||
"Tag" : "Žymė",
|
||||
"ID" : "ID",
|
||||
"Loading users …" : "Įkeliami naudotojai…"
|
||||
},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);"
|
||||
}
|
||||
@@ -1,12 +1,7 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Clear" : "Notīrīt",
|
||||
"Save" : "Saglabāt",
|
||||
"Loading…" : "Ielādē…",
|
||||
"Dashboard" : "Informācijas panelis",
|
||||
"Collapse" : "Sakļaut",
|
||||
"Delete" : "Izdzēst",
|
||||
"Uncategorized" : "Bez kategorijas"
|
||||
"Tag" : "Birkas"
|
||||
},
|
||||
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
|
||||
|
||||
@@ -1,10 +1,5 @@
|
||||
{ "translations": {
|
||||
"Clear" : "Notīrīt",
|
||||
"Save" : "Saglabāt",
|
||||
"Loading…" : "Ielādē…",
|
||||
"Dashboard" : "Informācijas panelis",
|
||||
"Collapse" : "Sakļaut",
|
||||
"Delete" : "Izdzēst",
|
||||
"Uncategorized" : "Bez kategorijas"
|
||||
"Tag" : "Birkas"
|
||||
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"
|
||||
}
|
||||
8
l10n/mk.js
Normal file
8
l10n/mk.js
Normal file
@@ -0,0 +1,8 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Preferences" : "Перформанси",
|
||||
"ID" : "ID",
|
||||
"Loading users …" : "Вчитување корисници ..."
|
||||
},
|
||||
"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;");
|
||||
6
l10n/mk.json
Normal file
6
l10n/mk.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{ "translations": {
|
||||
"Preferences" : "Перформанси",
|
||||
"ID" : "ID",
|
||||
"Loading users …" : "Вчитување корисници ..."
|
||||
},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"
|
||||
}
|
||||
@@ -1,10 +1,6 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Forum" : "Хэлэлцүүлэг",
|
||||
"Save" : "Хадгалах",
|
||||
"Loading…" : "уншиж байна",
|
||||
"Delete" : "Устгах",
|
||||
"Create" : "үүсгэх"
|
||||
"ID" : "ID"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
{ "translations": {
|
||||
"Forum" : "Хэлэлцүүлэг",
|
||||
"Save" : "Хадгалах",
|
||||
"Loading…" : "уншиж байна",
|
||||
"Delete" : "Устгах",
|
||||
"Create" : "үүсгэх"
|
||||
"ID" : "ID"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
15
l10n/nb.js
15
l10n/nb.js
@@ -1,19 +1,8 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Forum" : "Forum",
|
||||
"Underlined text" : "Understreket tekst",
|
||||
"Light" : "Lys",
|
||||
"Clear" : "Tøm",
|
||||
"Save" : "Lagre",
|
||||
"Loading…" : "Laster...",
|
||||
"Dashboard" : "Instrumentpanel",
|
||||
"Collapse" : "Skjul",
|
||||
"Delete" : "Slett",
|
||||
"React with {emoji}" : "Reager med {emoji}",
|
||||
"Uncategorized" : "Ukategorisert",
|
||||
"Preferences" : "Innstillinger",
|
||||
"Create" : "Opprett",
|
||||
"Active" : "Aktiv"
|
||||
"ID" : "ID",
|
||||
"Loading users …" : "Laster brukere..."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
15
l10n/nb.json
15
l10n/nb.json
@@ -1,17 +1,6 @@
|
||||
{ "translations": {
|
||||
"Forum" : "Forum",
|
||||
"Underlined text" : "Understreket tekst",
|
||||
"Light" : "Lys",
|
||||
"Clear" : "Tøm",
|
||||
"Save" : "Lagre",
|
||||
"Loading…" : "Laster...",
|
||||
"Dashboard" : "Instrumentpanel",
|
||||
"Collapse" : "Skjul",
|
||||
"Delete" : "Slett",
|
||||
"React with {emoji}" : "Reager med {emoji}",
|
||||
"Uncategorized" : "Ukategorisert",
|
||||
"Preferences" : "Innstillinger",
|
||||
"Create" : "Opprett",
|
||||
"Active" : "Aktiv"
|
||||
"ID" : "ID",
|
||||
"Loading users …" : "Laster brukere..."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
18
l10n/nl.js
18
l10n/nl.js
@@ -1,21 +1,11 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Forum" : "Forum",
|
||||
"User" : "Gebruiker",
|
||||
"Underlined text" : "Onderstreepte tekst",
|
||||
"Light" : "Licht",
|
||||
"Clear" : "Terug",
|
||||
"Duplicate" : "Duplicaat",
|
||||
"Save" : "Opslaan",
|
||||
"Loading…" : "Laden…",
|
||||
"Dashboard" : "Dashboard",
|
||||
"Collapse" : "Inklappen",
|
||||
"Delete" : "Verwijderen",
|
||||
"React with {emoji}" : "Reageer met {emoji}",
|
||||
"Uncategorized" : "Niet gecategoriseerd",
|
||||
"Preferences" : "Voorkeuren",
|
||||
"Create" : "Creëer",
|
||||
"Active" : "Actief"
|
||||
"Tag" : "Label",
|
||||
"Move down" : "Lager zetten",
|
||||
"ID" : "ID",
|
||||
"Loading users …" : "Laden gebruikers ..."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
18
l10n/nl.json
18
l10n/nl.json
@@ -1,19 +1,9 @@
|
||||
{ "translations": {
|
||||
"Forum" : "Forum",
|
||||
"User" : "Gebruiker",
|
||||
"Underlined text" : "Onderstreepte tekst",
|
||||
"Light" : "Licht",
|
||||
"Clear" : "Terug",
|
||||
"Duplicate" : "Duplicaat",
|
||||
"Save" : "Opslaan",
|
||||
"Loading…" : "Laden…",
|
||||
"Dashboard" : "Dashboard",
|
||||
"Collapse" : "Inklappen",
|
||||
"Delete" : "Verwijderen",
|
||||
"React with {emoji}" : "Reageer met {emoji}",
|
||||
"Uncategorized" : "Niet gecategoriseerd",
|
||||
"Preferences" : "Voorkeuren",
|
||||
"Create" : "Creëer",
|
||||
"Active" : "Actief"
|
||||
"Tag" : "Label",
|
||||
"Move down" : "Lager zetten",
|
||||
"ID" : "ID",
|
||||
"Loading users …" : "Laden gebruikers ..."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,12 +1,7 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Forum" : "Forum",
|
||||
"User" : "Bruker",
|
||||
"Save" : "Lagre",
|
||||
"Loading…" : "Lastar...",
|
||||
"Dashboard" : "Skrivebord",
|
||||
"Delete" : "Slett",
|
||||
"Reply" : "Svare"
|
||||
"ID" : "ID"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -1,10 +1,5 @@
|
||||
{ "translations": {
|
||||
"Forum" : "Forum",
|
||||
"User" : "Bruker",
|
||||
"Save" : "Lagre",
|
||||
"Loading…" : "Lastar...",
|
||||
"Dashboard" : "Skrivebord",
|
||||
"Delete" : "Slett",
|
||||
"Reply" : "Svare"
|
||||
"ID" : "ID"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
13
l10n/oc.js
13
l10n/oc.js
@@ -1,18 +1,7 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Forum" : "Forum",
|
||||
"User" : "Utilizator",
|
||||
"Light" : "Clar",
|
||||
"Clear" : "Escafar",
|
||||
"Save" : "Enregistrar",
|
||||
"Loading…" : "Telecargament…",
|
||||
"Dashboard" : "Tablèu de bòrd",
|
||||
"Collapse" : "Replegar",
|
||||
"Delete" : "Suprimir",
|
||||
"React with {emoji}" : "Reagir amb {emoji}",
|
||||
"Uncategorized" : "Desorganizadas",
|
||||
"Create" : "Crear",
|
||||
"Active" : "Activa"
|
||||
"ID" : "ID"
|
||||
},
|
||||
"nplurals=2; plural=(n > 1);");
|
||||
|
||||
13
l10n/oc.json
13
l10n/oc.json
@@ -1,16 +1,5 @@
|
||||
{ "translations": {
|
||||
"Forum" : "Forum",
|
||||
"User" : "Utilizator",
|
||||
"Light" : "Clar",
|
||||
"Clear" : "Escafar",
|
||||
"Save" : "Enregistrar",
|
||||
"Loading…" : "Telecargament…",
|
||||
"Dashboard" : "Tablèu de bòrd",
|
||||
"Collapse" : "Replegar",
|
||||
"Delete" : "Suprimir",
|
||||
"React with {emoji}" : "Reagir amb {emoji}",
|
||||
"Uncategorized" : "Desorganizadas",
|
||||
"Create" : "Crear",
|
||||
"Active" : "Activa"
|
||||
"ID" : "ID"
|
||||
},"pluralForm" :"nplurals=2; plural=(n > 1);"
|
||||
}
|
||||
11
l10n/pl.js
Normal file
11
l10n/pl.js
Normal file
@@ -0,0 +1,11 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Save" : "Zapisz",
|
||||
"Preferences" : "Preferencje",
|
||||
"Tag" : "Etykieta",
|
||||
"Move down" : "Przenieś niżej",
|
||||
"ID" : "ID",
|
||||
"Loading users …" : "Wczytywanie użytkowników ..."
|
||||
},
|
||||
"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);");
|
||||
9
l10n/pl.json
Normal file
9
l10n/pl.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{ "translations": {
|
||||
"Save" : "Zapisz",
|
||||
"Preferences" : "Preferencje",
|
||||
"Tag" : "Etykieta",
|
||||
"Move down" : "Przenieś niżej",
|
||||
"ID" : "ID",
|
||||
"Loading users …" : "Wczytywanie użytkowników ..."
|
||||
},"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Save" : "ساتل",
|
||||
"Delete" : "ړنګول"
|
||||
"Save" : "ساتل"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ "translations": {
|
||||
"Save" : "ساتل",
|
||||
"Delete" : "ړنګول"
|
||||
"Save" : "ساتل"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,25 +1,13 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Forum" : "Fórum",
|
||||
"User" : "Usuário",
|
||||
"Underlined text" : "Texto sublinhado",
|
||||
"Light" : "Claro",
|
||||
"Clear" : "Limpar",
|
||||
"Duplicate" : "Duplicar",
|
||||
"Save" : "Salvar",
|
||||
"Loading…" : "Carregando…",
|
||||
"Dashboard" : "Painel",
|
||||
"Collapse" : "Recolher",
|
||||
"Delete" : "Excluir",
|
||||
"React with {emoji}" : "Reagir com {emoji}",
|
||||
"Uncategorized" : "Sem categoria",
|
||||
"Reply" : "Resposta",
|
||||
"Preferences" : "Preferências",
|
||||
"Create" : "Criar",
|
||||
"Enter category name" : "Insira o nome da categoria",
|
||||
"Last 7 Days" : "Nos Últimos 7 Dias",
|
||||
"Failed to save settings" : "Falha ao salvar configurações",
|
||||
"Active" : "Ativada"
|
||||
"This action cannot be undone." : "Esta ação não pode ser desfeita.",
|
||||
"Tag" : "Etiqueta",
|
||||
"Move down" : "Mover para baixo",
|
||||
"ID" : "ID",
|
||||
"Loading users …" : "Carregando usuários …"
|
||||
},
|
||||
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
||||
@@ -1,23 +1,11 @@
|
||||
{ "translations": {
|
||||
"Forum" : "Fórum",
|
||||
"User" : "Usuário",
|
||||
"Underlined text" : "Texto sublinhado",
|
||||
"Light" : "Claro",
|
||||
"Clear" : "Limpar",
|
||||
"Duplicate" : "Duplicar",
|
||||
"Save" : "Salvar",
|
||||
"Loading…" : "Carregando…",
|
||||
"Dashboard" : "Painel",
|
||||
"Collapse" : "Recolher",
|
||||
"Delete" : "Excluir",
|
||||
"React with {emoji}" : "Reagir com {emoji}",
|
||||
"Uncategorized" : "Sem categoria",
|
||||
"Reply" : "Resposta",
|
||||
"Preferences" : "Preferências",
|
||||
"Create" : "Criar",
|
||||
"Enter category name" : "Insira o nome da categoria",
|
||||
"Last 7 Days" : "Nos Últimos 7 Dias",
|
||||
"Failed to save settings" : "Falha ao salvar configurações",
|
||||
"Active" : "Ativada"
|
||||
"This action cannot be undone." : "Esta ação não pode ser desfeita.",
|
||||
"Tag" : "Etiqueta",
|
||||
"Move down" : "Mover para baixo",
|
||||
"ID" : "ID",
|
||||
"Loading users …" : "Carregando usuários …"
|
||||
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -1,21 +1,10 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Forum" : "Fórum",
|
||||
"User" : "Utilizador",
|
||||
"Underlined text" : "Texto sublinhado",
|
||||
"Light" : "Claro",
|
||||
"Clear" : "Limpar",
|
||||
"Save" : "Guardar",
|
||||
"Loading…" : "A carregar…",
|
||||
"Dashboard" : "Painel de controle",
|
||||
"Collapse" : "Expandir",
|
||||
"Delete" : "Eliminar",
|
||||
"Uncategorized" : "Sem categoria ",
|
||||
"Reply" : "Responder",
|
||||
"Preferences" : "Preferências",
|
||||
"Create" : "Criar",
|
||||
"Failed to save settings" : "Erro ao gravar as definições",
|
||||
"Category" : "Categoria"
|
||||
"Tag" : "Etiqueta",
|
||||
"Move down" : "Mover para baixo",
|
||||
"ID" : "Id."
|
||||
},
|
||||
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
||||
@@ -1,19 +1,8 @@
|
||||
{ "translations": {
|
||||
"Forum" : "Fórum",
|
||||
"User" : "Utilizador",
|
||||
"Underlined text" : "Texto sublinhado",
|
||||
"Light" : "Claro",
|
||||
"Clear" : "Limpar",
|
||||
"Save" : "Guardar",
|
||||
"Loading…" : "A carregar…",
|
||||
"Dashboard" : "Painel de controle",
|
||||
"Collapse" : "Expandir",
|
||||
"Delete" : "Eliminar",
|
||||
"Uncategorized" : "Sem categoria ",
|
||||
"Reply" : "Responder",
|
||||
"Preferences" : "Preferências",
|
||||
"Create" : "Criar",
|
||||
"Failed to save settings" : "Erro ao gravar as definições",
|
||||
"Category" : "Categoria"
|
||||
"Tag" : "Etiqueta",
|
||||
"Move down" : "Mover para baixo",
|
||||
"ID" : "Id."
|
||||
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
10
l10n/ro.js
Normal file
10
l10n/ro.js
Normal file
@@ -0,0 +1,10 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Save" : "Salvează",
|
||||
"React with {emoji}" : "Reacționează cu {emoji}",
|
||||
"Preferences" : "Preferințe",
|
||||
"Move down" : "Mută în jos",
|
||||
"ID" : "ID"
|
||||
},
|
||||
"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
|
||||
8
l10n/ro.json
Normal file
8
l10n/ro.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{ "translations": {
|
||||
"Save" : "Salvează",
|
||||
"React with {emoji}" : "Reacționează cu {emoji}",
|
||||
"Preferences" : "Preferințe",
|
||||
"Move down" : "Mută în jos",
|
||||
"ID" : "ID"
|
||||
},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
|
||||
}
|
||||
23
l10n/ru.js
23
l10n/ru.js
@@ -1,25 +1,14 @@
|
||||
OC.L10N.register(
|
||||
"forum",
|
||||
{
|
||||
"Forum" : "Форум",
|
||||
"User" : "Пользователь",
|
||||
"Underlined text" : "Подчеркнутый текст",
|
||||
"Light" : "Светлое",
|
||||
"Clear" : "Очистить",
|
||||
"Duplicate" : "Дублировать",
|
||||
"Unread" : "Непрочитанное",
|
||||
"Save" : "Сохранить",
|
||||
"Loading…" : "Загрузка…",
|
||||
"Dashboard" : "Виджеты",
|
||||
"Collapse" : "Свернуть",
|
||||
"Delete" : "Удалить",
|
||||
"React with {emoji}" : "Отреагируйте с {emoji}",
|
||||
"Uncategorized" : "Без категории",
|
||||
"Reply" : "Ответ",
|
||||
"Preferences" : "Свойства",
|
||||
"Create" : "Создать",
|
||||
"Last 7 Days" : "Последние 7 дней",
|
||||
"Failed to save settings" : "Не удалось сохранить параметры",
|
||||
"Category" : "Категория",
|
||||
"Active" : "Активно"
|
||||
"Tag" : "Метка",
|
||||
"Move down" : "Переместить ниже",
|
||||
"ID" : "ID",
|
||||
"Loading users …" : "Загрузка пользователей…",
|
||||
"Deleted" : "Удалено"
|
||||
},
|
||||
"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);");
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user