Compare commits
131 commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
178a08ee3f | ||
![]() |
a68be24fde | ||
![]() |
d896501a3f | ||
![]() |
61349dec59 | ||
![]() |
cdaa049453 | ||
![]() |
fb5a618943 | ||
![]() |
68eb886890 | ||
![]() |
0f27d28bb6 | ||
![]() |
0ea0201343 | ||
![]() |
206506f12d | ||
![]() |
b1bacc7455 | ||
![]() |
cc5b6c301a | ||
![]() |
4c5deb14a6 | ||
![]() |
d217c06b1b | ||
![]() |
55d44f7ffb | ||
![]() |
b24ab817d3 | ||
![]() |
11718635a4 | ||
![]() |
701c1d925a | ||
![]() |
58603172b1 | ||
![]() |
e30ce8f0e9 | ||
![]() |
938559ad8f | ||
![]() |
fb6506d439 | ||
![]() |
86e50ec21c | ||
![]() |
8d2ecc11d0 | ||
![]() |
1d16f288b1 | ||
![]() |
d2dad1fd1c | ||
![]() |
b36f094edd | ||
![]() |
1f1a395382 | ||
![]() |
e120fec868 | ||
![]() |
16463a3a68 | ||
![]() |
4d7858b18b | ||
![]() |
0dce5d5374 | ||
![]() |
20fac248c1 | ||
![]() |
ad7242a30d | ||
![]() |
d593a7c126 | ||
![]() |
49fe81cc57 | ||
![]() |
8735dcd041 | ||
![]() |
5d9c6ffbf7 | ||
![]() |
2881c892d8 | ||
![]() |
eda6894863 | ||
![]() |
428e5ad3f0 | ||
![]() |
f5d33866cc | ||
![]() |
1e38669aa0 | ||
![]() |
fc94bab9d4 | ||
![]() |
bf723e0db4 | ||
![]() |
5e60d300fb | ||
![]() |
1728229fab | ||
![]() |
886bd1e38e | ||
![]() |
f47ebbf47c | ||
![]() |
932593d7bc | ||
![]() |
4f635699ac | ||
![]() |
a36cd07286 | ||
![]() |
5d76498ee6 | ||
![]() |
94723e48ce | ||
![]() |
03d7465743 | ||
![]() |
8b1695bbef | ||
![]() |
c8b25daf10 | ||
![]() |
2060b8bd95 | ||
![]() |
8591f93a17 | ||
![]() |
5cbde43928 | ||
![]() |
f668d7a918 | ||
![]() |
6754e8b855 | ||
![]() |
f6a1e69f72 | ||
![]() |
d50b942f58 | ||
![]() |
d689f7aa58 | ||
![]() |
43de276ae4 | ||
![]() |
535a08dbdf | ||
![]() |
9a303546e8 | ||
![]() |
745b54a40e | ||
![]() |
52760d0b1b | ||
![]() |
1325324f8b | ||
![]() |
d2e23731e3 | ||
![]() |
005fcb0c36 | ||
![]() |
8ec926377d | ||
![]() |
458dfd69e3 | ||
![]() |
7d909b31ac | ||
![]() |
bd9ff1419e | ||
![]() |
c93e8b4a30 | ||
![]() |
03c37d4d34 | ||
![]() |
6e192b34ea | ||
![]() |
23ccd5e3b6 | ||
![]() |
f191172238 | ||
![]() |
e3787edff9 | ||
![]() |
27cd60be26 | ||
![]() |
f9aa0459c1 | ||
![]() |
85606df518 | ||
![]() |
51cad187db | ||
![]() |
699b10bd13 | ||
![]() |
cafea80e08 | ||
![]() |
440b773092 | ||
![]() |
1dfe6948be | ||
![]() |
9dac09b453 | ||
![]() |
153d7eae80 | ||
![]() |
9e22623313 | ||
![]() |
4c577af004 | ||
![]() |
5c8093f71e | ||
![]() |
46024c49d4 | ||
![]() |
ad5d836aa6 | ||
![]() |
e42757c073 | ||
![]() |
e12bfb2eec | ||
![]() |
1c10eefd0d | ||
![]() |
22b978a12b | ||
![]() |
89df99f855 | ||
![]() |
dc89207684 | ||
![]() |
fa470f39e6 | ||
![]() |
26791e03fa | ||
![]() |
a4468798fe | ||
![]() |
496d67505f | ||
![]() |
f5b475bd5a | ||
![]() |
f4900ae979 | ||
![]() |
c6ec14ae63 | ||
![]() |
001bd2a977 | ||
![]() |
27aaa235ec | ||
![]() |
e0342b6214 | ||
![]() |
14ff849e26 | ||
![]() |
ad72139cee | ||
![]() |
66ca6cabf3 | ||
![]() |
ebdbe3eebd | ||
![]() |
e9d241581c | ||
![]() |
1b59578209 | ||
![]() |
97313065cf | ||
![]() |
af87b8f2cc | ||
![]() |
f39503f051 | ||
![]() |
de060391c6 | ||
![]() |
96e8746924 | ||
![]() |
7711a6fda3 | ||
![]() |
eb0fb14305 | ||
![]() |
f160396f8e | ||
![]() |
b057d47885 | ||
![]() |
fb7bdc0cd3 | ||
![]() |
b82616914b |
10
.dockerignore
Normal file
|
@ -0,0 +1,10 @@
|
|||
.dockerignore
|
||||
.git
|
||||
.github
|
||||
**/*.DS_Store
|
||||
docker-bake.hcl
|
||||
docs
|
||||
httpd-php-dev.yml
|
||||
httpd-php.Dockerfile
|
||||
httpd-php.yml
|
||||
README.md
|
6
.gitattributes
vendored
Normal file
|
@ -0,0 +1,6 @@
|
|||
/.github export-ignore
|
||||
/.vscode export-ignore
|
||||
/.gitattributes export-ignore
|
||||
/.gitignore export-ignore
|
||||
|
||||
*.php diff=php
|
1
.github/FUNDING.yml
vendored
|
@ -1 +0,0 @@
|
|||
custom: ['https://chevereto.com/pricing']
|
BIN
.github/banner/maxresdefault.jpg
vendored
Normal file
After Width: | Height: | Size: 50 KiB |
BIN
.github/banner/social-chevereto-blue.jpg
vendored
Normal file
After Width: | Height: | Size: 125 KiB |
BIN
.github/banner/social_blue.png
vendored
Normal file
After Width: | Height: | Size: 222 KiB |
BIN
.github/screen/1a.webp
vendored
Normal file
After Width: | Height: | Size: 261 KiB |
BIN
.github/screen/2a.webp
vendored
Normal file
After Width: | Height: | Size: 178 KiB |
BIN
.github/screen/3a.webp
vendored
Normal file
After Width: | Height: | Size: 179 KiB |
BIN
.github/screen/4a.webp
vendored
Normal file
After Width: | Height: | Size: 186 KiB |
BIN
.github/screen/5a.webp
vendored
Normal file
After Width: | Height: | Size: 282 KiB |
BIN
.github/screen/6a.webp
vendored
Normal file
After Width: | Height: | Size: 131 KiB |
76
.github/workflows/httpd-php-multiarch.yml
vendored
Normal file
|
@ -0,0 +1,76 @@
|
|||
name: buildx
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
GHCR_SLUG: ghcr.io/rodber/chevereto-free
|
||||
|
||||
jobs:
|
||||
buildx:
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
matrix:
|
||||
operating-system: [ubuntu-latest]
|
||||
php-versions: ["7.4"]
|
||||
name: Build on PHP ${{ matrix.php-versions }} ${{ matrix.operating-system }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
env:
|
||||
fail-fast: true
|
||||
|
||||
# - name: Build
|
||||
# run: php src/build.php
|
||||
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v3
|
||||
with:
|
||||
images: |
|
||||
${{ env.GHCR_SLUG }}
|
||||
tags: |
|
||||
type=ref,event=branch
|
||||
type=ref,event=pr
|
||||
type=semver,pattern={{version}}
|
||||
type=semver,pattern={{major}}.{{minor}}
|
||||
labels: |
|
||||
org.opencontainers.image.title=Chevereto-Free
|
||||
org.opencontainers.image.description=Chevereto-Free Image Hosting
|
||||
org.opencontainers.image.vendor=rodber
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v1
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
|
||||
- name: Login to GHCR
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Build
|
||||
uses: docker/bake-action@v1
|
||||
with:
|
||||
files: |
|
||||
./docker-bake.hcl
|
||||
${{ steps.meta.outputs.bake-file }}
|
||||
targets: build
|
||||
push: true
|
||||
|
||||
- name: Check manifest
|
||||
run: |
|
||||
docker buildx imagetools inspect ${{ env.GHCR_SLUG }}:${{ steps.meta.outputs.version }}
|
||||
|
||||
- name: Inspect image
|
||||
run: |
|
||||
docker pull ${{ env.GHCR_SLUG }}:${{ steps.meta.outputs.version }}
|
||||
docker image inspect ${{ env.GHCR_SLUG }}:${{ steps.meta.outputs.version }}
|
72
.github/workflows/release.yml
vendored
Normal file
|
@ -0,0 +1,72 @@
|
|||
name: Release
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "*"
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ${{ matrix.operating-system }}
|
||||
strategy:
|
||||
matrix:
|
||||
operating-system: [ubuntu-latest]
|
||||
php-versions: ["7.4"]
|
||||
name: Release on PHP ${{ matrix.php-versions }} ${{ matrix.operating-system }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
env:
|
||||
fail-fast: true
|
||||
|
||||
- name: Validate composer
|
||||
run: composer validate
|
||||
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
|
||||
- name: Cache dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
|
||||
- name: Get version
|
||||
id: get_version
|
||||
run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//}
|
||||
|
||||
- name: Packaging
|
||||
run: |
|
||||
rm -rf .git .github .dockerignore docs app/settings.php docker-bake.hcl httpd-php-dev.yml httpd-php.Dockerfile httpd-php.yml sync.sh
|
||||
|
||||
- name: Archive dev
|
||||
uses: thedoctor0/zip-release@master
|
||||
with:
|
||||
type: "zip"
|
||||
filename: "${{ steps.get_version.outputs.VERSION }}-lite.zip"
|
||||
|
||||
- name: Install dependencies
|
||||
run: composer install --prefer-dist --no-progress --classmap-authoritative --ignore-platform-reqs
|
||||
|
||||
- name: Archive release
|
||||
uses: thedoctor0/zip-release@master
|
||||
with:
|
||||
type: "zip"
|
||||
filename: "${{ steps.get_version.outputs.VERSION }}.zip"
|
||||
exclusions: "${{ steps.get_version.outputs.VERSION }}-lite.zip"
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: ncipollo/release-action@v1
|
||||
with:
|
||||
allowUpdates: true
|
||||
removeArtifacts: true
|
||||
omitBodyDuringUpdate: true
|
||||
artifacts: "${{ steps.get_version.outputs.VERSION }}.zip,${{ steps.get_version.outputs.VERSION }}-lite.zip"
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
11
.gitignore
vendored
|
@ -1 +1,10 @@
|
|||
settings.php
|
||||
.DS_Store
|
||||
/app/settings.php
|
||||
/app/vendor
|
||||
/content/images/users
|
||||
/content/images/system/*
|
||||
!/content/images/system/default
|
||||
/content/pages
|
||||
!/content/pages/default/
|
||||
/images/*
|
||||
!/images/.htaccess
|
||||
|
|
28
.htaccess
|
@ -1,34 +1,42 @@
|
|||
# Disable server signature
|
||||
ServerSignature Off
|
||||
Options -Indexes
|
||||
Options -MultiViews
|
||||
|
||||
# Enable CORS across all your subdomains (replace dev\.local with your domain\.com)
|
||||
# SetEnvIf Origin ^(https?://.+\.dev\.local(?::\d{1,5})?)$ CORS_ALLOW_ORIGIN=$1
|
||||
# Header append Access-Control-Allow-Origin %{CORS_ALLOW_ORIGIN}e env=CORS_ALLOW_ORIGIN
|
||||
# Header merge Vary "Origin"
|
||||
|
||||
# Disable directory listing (-indexes), Multiviews (-MultiViews)
|
||||
Options -Indexes
|
||||
Options -MultiViews
|
||||
<FilesMatch "composer\.(json|lock)|importing\.php|\.htaccess|\.gitignore">
|
||||
<IfModule !mod_authz_core.c>
|
||||
Order Allow,Deny
|
||||
Deny from all
|
||||
</IfModule>
|
||||
<IfModule mod_authz_core.c>
|
||||
Require all denied
|
||||
</IfModule>
|
||||
</FilesMatch>
|
||||
|
||||
<IfModule mod_rewrite.c>
|
||||
|
||||
RewriteEngine On
|
||||
|
||||
# If you have problems with the rewrite rules remove the "#" from the following RewriteBase line
|
||||
# You will also have to change the path to reflect the path to your Chevereto installation
|
||||
# If you are using alias is most likely that you will need this.
|
||||
# If you are using mod alias is likely that you will need this.
|
||||
#RewriteBase /
|
||||
|
||||
# 404 images
|
||||
# If you want to have your own fancy "image not found" image remove the "#" from RewriteCond and RewriteRule lines
|
||||
# If you want to have your own fancy "image not found" image remove the # from RewriteRule
|
||||
# Make sure to apply the correct paths to reflect your current installation
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteRule images/.+\.(gif|jpe?g|png|bmp|webp) - [NC,L,R=404]
|
||||
#RewriteRule images/.+\.(gif|jpe?g|a?png|bmp|webp) content/images/system/default/404.gif [NC,L]
|
||||
RewriteRule images/.+\.(gif|jpe?g|png|bmp|webp) - [NC,L,R=404]
|
||||
|
||||
# PHP front controller
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteCond %{REQUEST_URI} !\.(css|js|html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml|asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|exe|gif|gz|gzip|ico|jpe?g|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|swf|tar|tif|tiff|wav|webp|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$ [NC]
|
||||
RewriteRule . index.php [L]
|
||||
|
||||
# Single PHP-entrypoint (disables direct access to .php files)
|
||||
RewriteCond %{THE_REQUEST} ^.+?\ [^?]+\.php[?\ ] [NC]
|
||||
RewriteRule \.php$ - [NC,L,F,R=404]
|
||||
</IfModule>
|
2
.vscode/settings.json
vendored
|
@ -1,2 +0,0 @@
|
|||
{
|
||||
}
|
674
LICENSE
|
@ -1,21 +1,661 @@
|
|||
MIT License
|
||||
GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
Version 3, 19 November 2007
|
||||
|
||||
Copyright (c) 2020 Rodolfo Berríos Arce
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
Preamble
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
The GNU Affero General Public License is a free, copyleft license for
|
||||
software and other kinds of works, specifically designed to ensure
|
||||
cooperation with the community in the case of network server software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
our General Public Licenses are intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
Developers that use our General Public Licenses protect your rights
|
||||
with two steps: (1) assert copyright on the software, and (2) offer
|
||||
you this License which gives you legal permission to copy, distribute
|
||||
and/or modify the software.
|
||||
|
||||
A secondary benefit of defending all users' freedom is that
|
||||
improvements made in alternate versions of the program, if they
|
||||
receive widespread use, become available for other developers to
|
||||
incorporate. Many developers of free software are heartened and
|
||||
encouraged by the resulting cooperation. However, in the case of
|
||||
software used on network servers, this result may fail to come about.
|
||||
The GNU General Public License permits making a modified version and
|
||||
letting the public access it on a server without ever releasing its
|
||||
source code to the public.
|
||||
|
||||
The GNU Affero General Public License is designed specifically to
|
||||
ensure that, in such cases, the modified source code becomes available
|
||||
to the community. It requires the operator of a network server to
|
||||
provide the source code of the modified version running there to the
|
||||
users of that server. Therefore, public use of a modified version, on
|
||||
a publicly accessible server, gives the public access to the source
|
||||
code of the modified version.
|
||||
|
||||
An older license, called the Affero General Public License and
|
||||
published by Affero, was designed to accomplish similar goals. This is
|
||||
a different license, not a version of the Affero GPL, but Affero has
|
||||
released a new version of the Affero GPL which permits relicensing under
|
||||
this license.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU Affero General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Remote Network Interaction; Use with the GNU General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, if you modify the
|
||||
Program, your modified version must prominently offer all users
|
||||
interacting with it remotely through a computer network (if your version
|
||||
supports such interaction) an opportunity to receive the Corresponding
|
||||
Source of your version by providing access to the Corresponding Source
|
||||
from a network server at no charge, through some standard or customary
|
||||
means of facilitating copying of software. This Corresponding Source
|
||||
shall include the Corresponding Source for any work covered by version 3
|
||||
of the GNU General Public License that is incorporated pursuant to the
|
||||
following paragraph.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the work with which it is combined will remain governed by version
|
||||
3 of the GNU General Public License.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU Affero General Public License from time to time. Such new versions
|
||||
will be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU Affero General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU Affero General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU Affero General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If your software can interact with users remotely through a computer
|
||||
network, you should also make sure that it provides a way for users to
|
||||
get its source. For example, if your program is a web application, its
|
||||
interface could display a "Source" link that leads users to an archive
|
||||
of the code. There are many ways you could offer source, and different
|
||||
solutions will be better for different programs; see section 13 for the
|
||||
specific requirements.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU AGPL, see
|
||||
<https://www.gnu.org/licenses/>.
|
64
README.md
|
@ -1,60 +1,32 @@
|
|||
# Chevereto Free
|
||||
# Chevereto-Free
|
||||
|
||||
Chevereto Free is an image hosting software that allows you to create a beautiful and full-featured image hosting website on your own server. It's your hosting and your rules, so say goodbye to closures and restrictions.
|
||||
> The "Chevereto-Free" project is **archived** and superseed by "Chevereto" at [chevereto/chevereto](https://github.com/chevereto/chevereto).
|
||||
|
||||
## It's a fork
|
||||
"Chevereto-Free" is not longer updated neither maintained, it holds code old as 2020 and it runs on a deprecated PHP version. Is not safe to use "Chevereto-Free".
|
||||
|
||||
Chevereto Free is a fork of Chevereto V3 in which only the essential features are preserved and released as Open Source software. This fork **doesn't include**:
|
||||
Read about it at [Chevereto goes free](https://rodolfoberrios.com/2022/12/01/chevereto-goes-free/)
|
||||
|
||||
- Social network login
|
||||
- External storage support
|
||||
- Likes + Followers
|
||||
- Manage banners
|
||||
Please note that most projects around "Chevereto-Free" wrongly use the word "Chevereto" to refer to the project/code. I used the name "Chevereto-Free" because the software project is different, please don't spoil it by chopping "-Free" when refering to this code.
|
||||
|
||||
The support response time is currently about ~1-2 weeks. Users helping each other is highly welcome.
|
||||
## Summary
|
||||
|
||||
> 👍🏾 Consider [purchasing](https://chevereto.com/pricing) a license to get the entire pack of features, an extra layer of support, and to sustain the development of this software.
|
||||
Chevereto-Free allows you to create an image hosting website on your own server. It's your hosting and your rules, say goodbye to closures and restrictions.
|
||||
|
||||
## Community
|
||||
## Requirements
|
||||
|
||||
Join thousands of other Chevereto users in our [community](https://chevereto.com/community/) for sharing, supporting and contributing to Chevereto development.
|
||||
* PHP 7.4
|
||||
* MySQL 5.7 / 8 - MariaDB 10
|
||||
* Apache HTTP Web Server / Nginx
|
||||
* mod_rewrite
|
||||
|
||||
## PHP 8 support
|
||||
|
||||
No.
|
||||
|
||||
## Documentation
|
||||
|
||||
Chevereto documentation can be found at [v3-docs.chevereto.com](https://v3-docs.chevereto.com/)
|
||||
|
||||
> 📝 Contributing for a better documentation is highly appreciated
|
||||
|
||||
## Known issues
|
||||
|
||||
### Can't write into `/app/install/update/temp/` path
|
||||
|
||||
Older releases (`1.2.0` and below) are missing the temp folder required for the one-click update process. Simply create the folder for the `www-data` user:
|
||||
|
||||
```sh
|
||||
sudo -u www-data mkdir /var/www/html/app/install/update/temp/
|
||||
```
|
||||
|
||||
## 🤯 Next-gen in the works
|
||||
|
||||
Chevereto is being modernized by updating its stack and turning towards Open Source. [Read all updates](https://chevereto.com/community/threads/building-the-next-gen-chevereto.11140/) and check the [Chevere Framework](https://chevere.org/).
|
||||
|
||||
While is being modernized, V3 (commercial) still gets regular updates so if you want the full package (and to support my development which is highly appreciated) consider to [purchase a license](https://v3-docs.chevereto.com/licenses.html).
|
||||
|
||||
## Support
|
||||
|
||||
Use our [Bug Tracking](https://chevereto.com/bug-tracking) to report bugs and our [Community Support](https://chevereto.com/community-support) forums for any support-related concern.
|
||||
|
||||
Please **don't** open issues here unless is code related.
|
||||
[chevereto-free.github.io](https://chevereto-free.github.io)
|
||||
|
||||
## License
|
||||
|
||||
Copyright [Rodolfo Berríos Arce](http://rodolfoberrios.com) - Released under the [MIT License](LICENSE).
|
||||
|
||||
## Author
|
||||
|
||||
Chevereto is made by the guy at the license.
|
||||
|
||||
## Warranty
|
||||
|
||||
This software doesn't include support. It may contain bugs. Use it at your own risk. This software is offered on an “as-is” basis. No warranty, either expressed or implied, is given.
|
||||
Copyright [Rodolfo Berríos Arce](http://rodolfoberrios.com) - [AGPLv3](LICENSE).
|
||||
|
|
|
@ -1,11 +1,18 @@
|
|||
<FilesMatch "\.(po|php|lock|sql)$">
|
||||
# Apache 2.2
|
||||
<FilesMatch "\.(?:[Pp][Hh][Pp][345]?|[Pp][Hh][Tt][Mm][Ll])|(po|sql|html?)$">
|
||||
<IfModule !mod_authz_core.c>
|
||||
Order Allow,Deny
|
||||
Deny from all
|
||||
</IfModule>
|
||||
# Apache 2.4
|
||||
<IfModule mod_authz_core.c>
|
||||
Require all denied
|
||||
</IfModule>
|
||||
</FilesMatch>
|
||||
</IfModule>
|
||||
</FilesMatch>
|
||||
<IfModule mod_php7.c>
|
||||
php_flag engine off
|
||||
</IfModule>
|
||||
<FilesMatch ".+\.*$">
|
||||
SetHandler !
|
||||
</FilesMatch>
|
||||
<IfModule mod_rewrite.c>
|
||||
RewriteRule ^.*\.php$ - [F,L]
|
||||
</IfModule>
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
define('G_APP_NAME', 'Chevereto Free');
|
||||
define('G_APP_VERSION', '1.3.0');
|
||||
define('G_APP_GITHUB_OWNER', 'chevereto');
|
||||
define('G_APP_VERSION', '1.6.2');
|
||||
define('G_APP_GITHUB_OWNER', 'rodber');
|
||||
define('G_APP_GITHUB_REPO', 'chevereto-free');
|
||||
define('G_APP_GITHUB_REPO_URL', 'https://github.com/' . G_APP_GITHUB_OWNER . '/' . G_APP_GITHUB_REPO);
|
||||
define('CHEVERETO_INSTALLER_DOWNLOAD_URL', 'https://chevereto.com/download/file/installer');
|
||||
|
|
3303
app/content/languages/cache/ar.po.cache.php
vendored
3723
app/content/languages/cache/bg-BG.po.cache.php
vendored
3863
app/content/languages/cache/cs.po.cache.php
vendored
2094
app/content/languages/cache/da.po.cache.php
vendored
3789
app/content/languages/cache/de.po.cache.php
vendored
1780
app/content/languages/cache/el.po.cache.php
vendored
27
app/content/languages/cache/en.po.cache.php
vendored
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
$translation_header = array (
|
||||
'Project-Id-Version' => 'Chevereto V3',
|
||||
'POT-Creation-Date' => '2020-09-01 09:57-0400',
|
||||
'PO-Revision-Date' => '2020-09-01 09:57-0400',
|
||||
'Last-Translator' => 'Rodolfo Berríos <inbox@rodolfoberrios.com>',
|
||||
'Language-Team' => '',
|
||||
'Language' => 'en_US',
|
||||
'MIME-Version' => '1.0',
|
||||
'Content-Type' => 'text/plain; charset=UTF-8',
|
||||
'Content-Transfer-Encoding' => '8bit',
|
||||
'X-Generator' => 'Poedit 2.3',
|
||||
'X-Poedit-Basepath' => '../../..',
|
||||
'Plural-Forms' => 'nplurals=2; plural=(n != 1);',
|
||||
'X-Poedit-KeywordsList' => '_s;_se;_n:1,2;_ne:1,2;PF.fn._s;PF.fn._n:1,2',
|
||||
'X-Poedit-SourceCharset' => 'UTF-8',
|
||||
'X-Poedit-SearchPath-0' => '.',
|
||||
'X-Poedit-SearchPathExcluded-0' => 'app/vendor',
|
||||
'X-Poedit-SearchPathExcluded-1' => 'app/content/languages/cache',
|
||||
);
|
||||
$translation_plural = array (
|
||||
'nplurals' => 2,
|
||||
'function' => '($n != 1)',
|
||||
);
|
||||
$translation_table = [
|
||||
];
|
||||
?>
|
3834
app/content/languages/cache/es.po.cache.php
vendored
489
app/content/languages/cache/et-EE.po.cache.php
vendored
|
@ -1,489 +0,0 @@
|
|||
<?php
|
||||
$translation_header = array (
|
||||
'Project-Id-Version' => 'VERSION',
|
||||
'POT-Creation-Date' => '2020-03-31 21:05+0000',
|
||||
'PO-Revision-Date' => '2020-03-31 21:05+0000',
|
||||
'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>',
|
||||
'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>',
|
||||
'Language' => 'et_EE',
|
||||
'MIME-Version' => '1.0',
|
||||
'Content-Type' => 'text/plain; charset=UTF-8',
|
||||
'Content-Transfer-Encoding' => '8bit',
|
||||
'Plural-Forms' => 'nplurals=2; plural=(n != 1);',
|
||||
);
|
||||
$translation_plural = array (
|
||||
'nplurals' => 2,
|
||||
'function' => '($n != 1)',
|
||||
);
|
||||
$translation_table = [
|
||||
"Invalid email" => [
|
||||
0 => "Vigane email",
|
||||
],
|
||||
"Invalid username" => [
|
||||
0 => "Vigane kasutaja",
|
||||
],
|
||||
"Invalid password" => [
|
||||
0 => "Vigane parool",
|
||||
],
|
||||
"Invalid website mode" => [
|
||||
0 => "Vigane veebilehe laad",
|
||||
],
|
||||
"From email address" => [
|
||||
0 => "Saatja email",
|
||||
],
|
||||
"Sender email for emails sent to users." => [
|
||||
0 => "Saatja email millega saadetakse kasutajatele.",
|
||||
],
|
||||
"Incoming email address" => [
|
||||
0 => "Sissetulev emaili aadres",
|
||||
],
|
||||
"Website mode" => [
|
||||
0 => "Veebilehe laad",
|
||||
],
|
||||
"You can switch the website mode anytime." => [
|
||||
0 => "Saad vahetada veebilehe laadi igal ajal.",
|
||||
],
|
||||
"Community" => [
|
||||
0 => "Kommuun",
|
||||
],
|
||||
"Personal" => [
|
||||
0 => "Peronaalne",
|
||||
],
|
||||
"Update in progress" => [
|
||||
0 => "Käimas on uuendamine",
|
||||
],
|
||||
"Missing %s file" => [
|
||||
0 => "Puudu %s fail",
|
||||
],
|
||||
"Invalid license info" => [
|
||||
0 => "Vigane litsentsi info",
|
||||
],
|
||||
"Invalid license key" => [
|
||||
0 => "Vigane litsentsi kood",
|
||||
],
|
||||
"Can't save file" => [
|
||||
0 => "Faili ei saa salvestada",
|
||||
],
|
||||
"Can't download %s" => [
|
||||
0 => "Ei saa alla laadida %s",
|
||||
],
|
||||
"An error occurred. Please try again later." => [
|
||||
0 => "Ilmnes viga. Palun proovi hiljem uuesti.",
|
||||
],
|
||||
"Passwords don't match" => [
|
||||
0 => "Parool ei ühti",
|
||||
],
|
||||
"cancel" => [
|
||||
0 => "katkesta",
|
||||
],
|
||||
"Edit" => [
|
||||
0 => "Muuda",
|
||||
],
|
||||
"Album" => [
|
||||
0 => "Album",
|
||||
1 => "Albumid",
|
||||
],
|
||||
"Close" => [
|
||||
0 => "Sulge",
|
||||
],
|
||||
"image" => [
|
||||
0 => "pilt",
|
||||
1 => "pildid",
|
||||
],
|
||||
"%s's Albums" => [
|
||||
0 => "%s Albumid",
|
||||
],
|
||||
"Untitled" => [
|
||||
0 => "Tiitlita",
|
||||
],
|
||||
"Note: This content is password protected. Remember to pass the content password to share." => [
|
||||
0 => "Märkus: Sisu on märgitud parooliga kaitstuks. Pea meeles jagada parooli.",
|
||||
],
|
||||
"Note: This content is private. Change privacy to \"public\" to share." => [
|
||||
0 => "Märkus: Sisu on märgitud privaatseks. Määra privaatsus seadetest \"avalik\" teistega jagamiseks.",
|
||||
],
|
||||
"Private" => [
|
||||
0 => "Privaatne",
|
||||
],
|
||||
"Public" => [
|
||||
0 => "Avalik",
|
||||
],
|
||||
"Link" => [
|
||||
0 => "Link",
|
||||
],
|
||||
"Password" => [
|
||||
0 => "Parool",
|
||||
],
|
||||
"view" => [
|
||||
0 => "vaatamine",
|
||||
1 => "vaatamist",
|
||||
],
|
||||
"minute" => [
|
||||
0 => "minut",
|
||||
1 => "minutit",
|
||||
],
|
||||
"hour" => [
|
||||
0 => "tund",
|
||||
1 => "tundi",
|
||||
],
|
||||
"day" => [
|
||||
0 => "päev",
|
||||
1 => "päeva",
|
||||
],
|
||||
"week" => [
|
||||
0 => "nädal",
|
||||
1 => "nädalat",
|
||||
],
|
||||
"month" => [
|
||||
0 => "kuu",
|
||||
1 => "kuud",
|
||||
],
|
||||
"year" => [
|
||||
0 => "aasta",
|
||||
1 => "aastat",
|
||||
],
|
||||
"Don't autodelete" => [
|
||||
0 => "Ära kustuta automaatselt",
|
||||
],
|
||||
"Private upload" => [
|
||||
0 => "Privaatne üleslaadimine",
|
||||
],
|
||||
"like" => [
|
||||
0 => "meeldimine",
|
||||
1 => "meeldimist",
|
||||
],
|
||||
"Recent" => [
|
||||
0 => "Viimati lisatud",
|
||||
],
|
||||
"Trending" => [
|
||||
0 => "Kuum",
|
||||
],
|
||||
"Top users" => [
|
||||
0 => "Top kasutajad",
|
||||
],
|
||||
"Most recent" => [
|
||||
0 => "Viimased",
|
||||
],
|
||||
"Oldest" => [
|
||||
0 => "Vanimad",
|
||||
],
|
||||
"Most viewed" => [
|
||||
0 => "Enim vaadatud",
|
||||
],
|
||||
"Popular" => [
|
||||
0 => "Populaarsed",
|
||||
],
|
||||
"Explore" => [
|
||||
0 => "Sirvi pilte",
|
||||
],
|
||||
"Animated" => [
|
||||
0 => "Animeeritud",
|
||||
],
|
||||
"Search" => [
|
||||
0 => "Otsi",
|
||||
],
|
||||
"Image" => [
|
||||
0 => "pilt",
|
||||
1 => "Pildid",
|
||||
],
|
||||
"User" => [
|
||||
0 => "Kasutaja",
|
||||
1 => "Kasutajad",
|
||||
],
|
||||
"Can't update storage details." => [
|
||||
0 => "Ei saanud uuendada salvestamise detaile.",
|
||||
],
|
||||
"Unlimited" => [
|
||||
0 => "Piiramatu",
|
||||
],
|
||||
"used" => [
|
||||
0 => "kasutatud",
|
||||
],
|
||||
"Private profile" => [
|
||||
0 => "Privaatne profiil",
|
||||
],
|
||||
"second" => [
|
||||
0 => "sekund",
|
||||
1 => "sekundit",
|
||||
],
|
||||
"%s ago" => [
|
||||
0 => "%s tagasi",
|
||||
],
|
||||
"moments ago" => [
|
||||
0 => "hetk tagasi",
|
||||
],
|
||||
"That page doesn't exist" => [
|
||||
0 => "Seda lehte ei eksisteeri",
|
||||
],
|
||||
"Forgot password?" => [
|
||||
0 => "Unustasid parooli ?",
|
||||
],
|
||||
"Reset password" => [
|
||||
0 => "Taasta parool",
|
||||
],
|
||||
"Resend account activation" => [
|
||||
0 => "Saada uuesti konto kinnitamise e-mail",
|
||||
],
|
||||
"Add your email address" => [
|
||||
0 => "Lisa oma e-mail",
|
||||
],
|
||||
"Email changed" => [
|
||||
0 => "E-mail muudetud",
|
||||
],
|
||||
"Invalid Username/Email" => [
|
||||
0 => "Vale Kasutajanimi/Parool",
|
||||
],
|
||||
"Account needs to be activated to use this feature" => [
|
||||
0 => "Konto peab olema aktiveeritud",
|
||||
],
|
||||
"Account already activated" => [
|
||||
0 => "Konto on juba aktiveeritud",
|
||||
],
|
||||
"Allow up to 15 minutes for the email. You can try again later." => [
|
||||
0 => "E-maili saabumine võib võtta aega kuni 15 minutit. Proovi hiljem uuesti.",
|
||||
],
|
||||
"Email already being used" => [
|
||||
0 => "E-mail on juba kasutusel",
|
||||
],
|
||||
"Password required" => [
|
||||
0 => "Parool nõutud",
|
||||
],
|
||||
"Share" => [
|
||||
0 => "Jaga",
|
||||
],
|
||||
"Embed codes" => [
|
||||
0 => "HTML ja BBKoodi tag'id",
|
||||
],
|
||||
"Stats" => [
|
||||
0 => "Statistika",
|
||||
],
|
||||
"Images" => [
|
||||
0 => "Pildid",
|
||||
],
|
||||
"Albums" => [
|
||||
0 => "Albumid",
|
||||
],
|
||||
"Users" => [
|
||||
0 => "Kasutajad",
|
||||
],
|
||||
"Settings" => [
|
||||
0 => "Seaded",
|
||||
],
|
||||
"Chevereto version" => [
|
||||
0 => "Chevereto versioon",
|
||||
],
|
||||
"install update" => [
|
||||
0 => "installeeri uuendus",
|
||||
],
|
||||
"check for updates" => [
|
||||
0 => "kontrolli uuendusi",
|
||||
],
|
||||
"Support" => [
|
||||
0 => "Kasutajatugi",
|
||||
],
|
||||
"Enabled" => [
|
||||
0 => "Lubatud",
|
||||
],
|
||||
"Disabled" => [
|
||||
0 => "Keelatud",
|
||||
],
|
||||
"Max. upload file size" => [
|
||||
0 => "Max faili suurus",
|
||||
],
|
||||
"Invalid timezone" => [
|
||||
0 => "Vale ajatsoon",
|
||||
],
|
||||
"Sign in" => [
|
||||
0 => "Logi sisse",
|
||||
],
|
||||
"Upload images" => [
|
||||
0 => "Lae pilt ülesse",
|
||||
],
|
||||
"Account" => [
|
||||
0 => "Konto",
|
||||
],
|
||||
"Profile" => [
|
||||
0 => "Profiil",
|
||||
],
|
||||
"Wrong password" => [
|
||||
0 => "Vale parool",
|
||||
],
|
||||
"Password has been changed" => [
|
||||
0 => "Parool muudetud edukalt",
|
||||
],
|
||||
"Create account" => [
|
||||
0 => "Loo konto",
|
||||
],
|
||||
"Upload" => [
|
||||
0 => "Lae pilt...",
|
||||
],
|
||||
"Discovery" => [
|
||||
0 => "Avasta",
|
||||
],
|
||||
"Advanced search" => [
|
||||
0 => "Täpsem otsing",
|
||||
],
|
||||
"Random" => [
|
||||
0 => "Suvaline pilt",
|
||||
],
|
||||
"My Profile" => [
|
||||
0 => "Minu konto",
|
||||
],
|
||||
"Sign out" => [
|
||||
0 => "Logi välja",
|
||||
],
|
||||
"Drag and drop or paste images here to upload" => [
|
||||
0 => "Lohista fail siia või lae ülesse clipboardist",
|
||||
],
|
||||
"browse from your computer" => [
|
||||
0 => "valida faili arvutist",
|
||||
],
|
||||
"add image URLs" => [
|
||||
0 => "lisada läbi lingi",
|
||||
],
|
||||
"You can also %i or %u." => [
|
||||
0 => "Sa saad %i või %u",
|
||||
],
|
||||
"Edit or resize any image by clicking the image preview" => [
|
||||
0 => "Muuda pilti või pildi suurust vajutades pisipildile",
|
||||
],
|
||||
"your computer" => [
|
||||
0 => "arvutist",
|
||||
],
|
||||
"You can add more images from %i or %u." => [
|
||||
0 => "Saad lisada pilte juurde %i või %u",
|
||||
],
|
||||
"sign in" => [
|
||||
0 => "logi sisse",
|
||||
],
|
||||
"close" => [
|
||||
0 => "sulge",
|
||||
],
|
||||
"Remove" => [
|
||||
0 => "Kustuta",
|
||||
],
|
||||
"Edit image" => [
|
||||
0 => "Muuda pilti",
|
||||
],
|
||||
"Title" => [
|
||||
0 => "Pealkiri",
|
||||
],
|
||||
"optional" => [
|
||||
0 => "valikuline",
|
||||
],
|
||||
"Resize image" => [
|
||||
0 => "Pildi mõõtmed",
|
||||
],
|
||||
"Note: Animated GIF images won't be resized." => [
|
||||
0 => "Animeeritud (gif) failide pildi suurust ei saa muuta!",
|
||||
],
|
||||
"Auto delete image" => [
|
||||
0 => "Kustuta pilt automaatselt",
|
||||
],
|
||||
"Description" => [
|
||||
0 => "Kirjeldus",
|
||||
],
|
||||
"Brief description of this image" => [
|
||||
0 => "....",
|
||||
],
|
||||
"Album name" => [
|
||||
0 => "Albumi nimi",
|
||||
],
|
||||
"Private (just me)" => [
|
||||
0 => "Privaatne(ainult minule)",
|
||||
],
|
||||
"Album password" => [
|
||||
0 => "Albumi parool",
|
||||
],
|
||||
"Name" => [
|
||||
0 => "Nimi",
|
||||
],
|
||||
"Select all" => [
|
||||
0 => "Vali kõik",
|
||||
],
|
||||
"Clear selection" => [
|
||||
0 => "Eemalda valik",
|
||||
],
|
||||
"Selection" => [
|
||||
0 => "Valitud",
|
||||
],
|
||||
"Sign in with another account" => [
|
||||
0 => "Logi sisse kasutades...",
|
||||
],
|
||||
"There's nothing to show here." => [
|
||||
0 => "Tühjus... Pole midagi näidata!",
|
||||
],
|
||||
"Edit image details" => [
|
||||
0 => "Muuda pilti",
|
||||
],
|
||||
"The requested page was not found." => [
|
||||
0 => "Soovitud lehekülge ei leitud!",
|
||||
],
|
||||
"The user has been deleted" => [
|
||||
0 => "Kasutaja kustutatud",
|
||||
],
|
||||
"Submit" => [
|
||||
0 => "Edasi",
|
||||
],
|
||||
"Username or Email address" => [
|
||||
0 => "Kasutajanimi või e-mail",
|
||||
],
|
||||
"Enter your new password" => [
|
||||
0 => "Sisesta uus parool",
|
||||
],
|
||||
"Re-enter your new password" => [
|
||||
0 => "Sisesta uuesti uus parool",
|
||||
],
|
||||
"Delete album" => [
|
||||
0 => "Kustuta album",
|
||||
],
|
||||
"Album link" => [
|
||||
0 => "Albumi link",
|
||||
],
|
||||
"Email address" => [
|
||||
0 => "E-mail",
|
||||
],
|
||||
"Save changes" => [
|
||||
0 => "Salvesta",
|
||||
],
|
||||
"Uploaded %s" => [
|
||||
0 => "Üles laetud %s",
|
||||
],
|
||||
"More Exif data" => [
|
||||
0 => "Vaata exif andmeid",
|
||||
],
|
||||
"Share image" => [
|
||||
0 => "Jaga pilti",
|
||||
],
|
||||
"Upload and share your images." => [
|
||||
0 => "Lae pilt ülesse ja jaga seda",
|
||||
],
|
||||
"Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [
|
||||
0 => "Lohista oma pilt siia ja alusta üleslaadimist. Kuni %s",
|
||||
],
|
||||
"Start uploading" => [
|
||||
0 => "Lae pilt...",
|
||||
],
|
||||
"Logged out" => [
|
||||
0 => "Välja logitud",
|
||||
],
|
||||
"Go to homepage" => [
|
||||
0 => "Mine esilehele",
|
||||
],
|
||||
"Timezone" => [
|
||||
0 => "Ajatsoon",
|
||||
],
|
||||
"Current password" => [
|
||||
0 => "Praegune parool",
|
||||
],
|
||||
"Enter your current password" => [
|
||||
0 => "Sisesta praegune parool",
|
||||
],
|
||||
"Upload new image" => [
|
||||
0 => "Lae pilt",
|
||||
],
|
||||
"If you want to send a message fill the form below." => [
|
||||
0 => "Kirjuta meile.",
|
||||
],
|
||||
];
|
||||
?>
|
1743
app/content/languages/cache/fa.po.cache.php
vendored
3381
app/content/languages/cache/fi.po.cache.php
vendored
3561
app/content/languages/cache/fr.po.cache.php
vendored
2309
app/content/languages/cache/he.po.cache.php
vendored
2901
app/content/languages/cache/hu.po.cache.php
vendored
3503
app/content/languages/cache/id.po.cache.php
vendored
3834
app/content/languages/cache/it.po.cache.php
vendored
3818
app/content/languages/cache/ja.po.cache.php
vendored
3785
app/content/languages/cache/ko.po.cache.php
vendored
1202
app/content/languages/cache/lt-LT.po.cache.php
vendored
3636
app/content/languages/cache/nb.po.cache.php
vendored
3834
app/content/languages/cache/nl.po.cache.php
vendored
2308
app/content/languages/cache/pl.po.cache.php
vendored
3402
app/content/languages/cache/pt-BR.po.cache.php
vendored
2099
app/content/languages/cache/pt.po.cache.php
vendored
3703
app/content/languages/cache/ru.po.cache.php
vendored
2594
app/content/languages/cache/sk.po.cache.php
vendored
1777
app/content/languages/cache/sr-RS.po.cache.php
vendored
1526
app/content/languages/cache/sv.po.cache.php
vendored
3416
app/content/languages/cache/th.po.cache.php
vendored
3834
app/content/languages/cache/tr.po.cache.php
vendored
2940
app/content/languages/cache/uk.po.cache.php
vendored
2360
app/content/languages/cache/vi.po.cache.php
vendored
3818
app/content/languages/cache/zh-CN.po.cache.php
vendored
3773
app/content/languages/cache/zh-TW.po.cache.php
vendored
|
@ -1,936 +0,0 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VERSION\n"
|
||||
"POT-Creation-Date: 2020-03-31 21:05+0000\n"
|
||||
"PO-Revision-Date: 2020-03-31 21:05+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n"
|
||||
"Language: et_EE\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: ../../../app/install/installer.php:1168
|
||||
#: ../../../app/install/installer.php:1177
|
||||
#: ../../../app/install/installer.php:1180
|
||||
#: ../../../app/routes/route.account.php:414
|
||||
#: ../../../app/routes/route.json.php:579
|
||||
#: ../../../app/routes/route.json.php:1107
|
||||
#: ../../../app/routes/route.page.php:80
|
||||
#: ../../../app/routes/route.settings.php:185
|
||||
#: ../../../app/routes/route.signup.php:97
|
||||
#: ../../../content/pages/default/contact.php:28
|
||||
msgid "Invalid email"
|
||||
msgstr "Vigane email"
|
||||
|
||||
#: ../../../app/install/installer.php:1171
|
||||
#: ../../../app/routes/route.json.php:574
|
||||
#: ../../../app/routes/route.settings.php:181
|
||||
#: ../../../app/routes/route.signup.php:100
|
||||
msgid "Invalid username"
|
||||
msgstr "Vigane kasutaja"
|
||||
|
||||
#: ../../../app/install/installer.php:1174
|
||||
#: ../../../app/routes/route.account.php:357
|
||||
#: ../../../app/routes/route.json.php:584
|
||||
#: ../../../app/routes/route.settings.php:323
|
||||
#: ../../../app/routes/route.signup.php:103
|
||||
msgid "Invalid password"
|
||||
msgstr "Vigane parool"
|
||||
|
||||
#: ../../../app/install/installer.php:1183
|
||||
#: ../../../app/routes/route.dashboard.php:667
|
||||
msgid "Invalid website mode"
|
||||
msgstr "Vigane veebilehe laad"
|
||||
|
||||
#: ../../../app/install/template/ready.php:31
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1760
|
||||
msgid "From email address"
|
||||
msgstr "Saatja email"
|
||||
|
||||
#: ../../../app/install/template/ready.php:32
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1763
|
||||
msgid "Sender email for emails sent to users."
|
||||
msgstr "Saatja email millega saadetakse kasutajatele."
|
||||
|
||||
#: ../../../app/install/template/ready.php:36
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1766
|
||||
msgid "Incoming email address"
|
||||
msgstr "Sissetulev emaili aadres"
|
||||
|
||||
#: ../../../app/install/template/ready.php:44
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:327
|
||||
msgid "Website mode"
|
||||
msgstr "Veebilehe laad"
|
||||
|
||||
#: ../../../app/install/template/ready.php:45
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:334
|
||||
msgid "You can switch the website mode anytime."
|
||||
msgstr "Saad vahetada veebilehe laadi igal ajal."
|
||||
|
||||
#: ../../../app/install/template/ready.php:47
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:330
|
||||
msgid "Community"
|
||||
msgstr "Kommuun"
|
||||
|
||||
#: ../../../app/install/template/ready.php:47
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:330
|
||||
msgid "Personal"
|
||||
msgstr "Peronaalne"
|
||||
|
||||
#: ../../../app/install/update/template/update.php:2
|
||||
msgid "Update in progress"
|
||||
msgstr "Käimas on uuendamine"
|
||||
|
||||
#: ../../../app/install/update/updater.php:72
|
||||
#, php-format
|
||||
msgid "Missing %s file"
|
||||
msgstr "Puudu %s fail"
|
||||
|
||||
#: ../../../app/install/update/updater.php:78
|
||||
msgid "Invalid license info"
|
||||
msgstr "Vigane litsentsi info"
|
||||
|
||||
#: ../../../app/install/update/updater.php:84
|
||||
msgid "Invalid license key"
|
||||
msgstr "Vigane litsentsi kood"
|
||||
|
||||
#: ../../../app/install/update/updater.php:87
|
||||
msgid "Can't save file"
|
||||
msgstr "Faili ei saa salvestada"
|
||||
|
||||
#: ../../../app/install/update/updater.php:100
|
||||
#, php-format
|
||||
msgid "Can't download %s"
|
||||
msgstr "Ei saa alla laadida %s"
|
||||
|
||||
#: ../../../app/install/update/updater.php:62
|
||||
#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22
|
||||
#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313
|
||||
#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539
|
||||
#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668
|
||||
#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63
|
||||
#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70
|
||||
#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77
|
||||
#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096
|
||||
#: ../../../lib/Peafowl/peafowl.min.js:158
|
||||
#: ../../../lib/Peafowl/peafowl.min.js:195
|
||||
msgid "An error occurred. Please try again later."
|
||||
msgstr "Ilmnes viga. Palun proovi hiljem uuesti."
|
||||
|
||||
#: ../../../app/routes/route.account.php:360
|
||||
#: ../../../app/routes/route.settings.php:327
|
||||
#: ../../../app/themes/Peafowl/views/account/password-reset.php:36
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:313
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:330
|
||||
#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69
|
||||
msgid "Passwords don't match"
|
||||
msgstr "Parool ei ühti"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:2044
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:463
|
||||
#: ../../../content/pages/default/contact.php:123
|
||||
#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71
|
||||
#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140
|
||||
msgid "cancel"
|
||||
msgstr "katkesta"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146
|
||||
#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6
|
||||
#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12
|
||||
#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13
|
||||
msgid "Edit"
|
||||
msgstr "Muuda"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3
|
||||
#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8
|
||||
#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9
|
||||
#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16
|
||||
#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:28
|
||||
msgid "Album"
|
||||
msgid_plural "Albums"
|
||||
msgstr[0] "Album"
|
||||
msgstr[1] "Albumid"
|
||||
|
||||
#: ../../../app/themes/Peafowl/header.php:222
|
||||
msgid "Close"
|
||||
msgstr "Sulge"
|
||||
|
||||
#: ../../../app/lib/classes/class.listing.php:296
|
||||
#: ../../../app/routes/route.album.php:177
|
||||
#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25
|
||||
#: ../../../app/themes/Peafowl/views/album.php:34
|
||||
#: ../../../app/themes/Peafowl/views/user.php:98
|
||||
#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126
|
||||
msgid "image"
|
||||
msgid_plural "images"
|
||||
msgstr[0] "pilt"
|
||||
msgstr[1] "pildid"
|
||||
|
||||
#: ../../../app/routes/route.user.php:89
|
||||
#: ../../../app/themes/Peafowl/header.php:56
|
||||
#, php-format, javascript-format
|
||||
msgid "%s's Albums"
|
||||
msgstr "%s Albumid"
|
||||
|
||||
#: ../../../app/lib/classes/class.album.php:100
|
||||
msgid "Untitled"
|
||||
msgstr "Tiitlita"
|
||||
|
||||
msgid "Note: This content is password protected. Remember to pass the content password to share."
|
||||
msgstr "Märkus: Sisu on märgitud parooliga kaitstuks. Pea meeles jagada parooli."
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/modal_share.php:14
|
||||
#: ../../../app/themes/Peafowl/views/album.php:74
|
||||
#: ../../../app/themes/Peafowl/views/image.php:272
|
||||
msgid "Note: This content is private. Change privacy to \"public\" to share."
|
||||
msgstr "Märkus: Sisu on märgitud privaatseks. Määra privaatsus seadetest \"avalik\" teistega jagamiseks."
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:366
|
||||
msgid "Private"
|
||||
msgstr "Privaatne"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/form_album.php:20
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:366
|
||||
msgid "Public"
|
||||
msgstr "Avalik"
|
||||
|
||||
#: ../../../app/lib/classes/class.page.php:137
|
||||
#: ../../../app/themes/Peafowl/snippets/modal_share.php:10
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:461
|
||||
msgid "Link"
|
||||
msgstr "Link"
|
||||
|
||||
#: ../../../app/routes/route.settings.php:64
|
||||
#: ../../../app/themes/Peafowl/header.php:292
|
||||
#: ../../../app/themes/Peafowl/header.php:340
|
||||
#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92
|
||||
#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93
|
||||
#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126
|
||||
#: ../../../app/themes/Peafowl/snippets/modal_login.php:21
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:104
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:105
|
||||
#: ../../../app/themes/Peafowl/views/login.php:39
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:322
|
||||
#: ../../../app/themes/Peafowl/views/signup.php:49
|
||||
#: ../../../app/themes/Peafowl/views/signup.php:50
|
||||
msgid "Password"
|
||||
msgstr "Parool"
|
||||
|
||||
#: ../../../app/lib/classes/class.image.php:1230
|
||||
msgid "view"
|
||||
msgid_plural "views"
|
||||
msgstr[0] "vaatamine"
|
||||
msgstr[1] "vaatamist"
|
||||
|
||||
#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54
|
||||
msgid "minute"
|
||||
msgid_plural "minutes"
|
||||
msgstr[0] "minut"
|
||||
msgstr[1] "minutit"
|
||||
|
||||
#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53
|
||||
msgid "hour"
|
||||
msgid_plural "hours"
|
||||
msgstr[0] "tund"
|
||||
msgstr[1] "tundi"
|
||||
|
||||
#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52
|
||||
msgid "day"
|
||||
msgid_plural "days"
|
||||
msgstr[0] "päev"
|
||||
msgstr[1] "päeva"
|
||||
|
||||
#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51
|
||||
msgid "week"
|
||||
msgid_plural "weeks"
|
||||
msgstr[0] "nädal"
|
||||
msgstr[1] "nädalat"
|
||||
|
||||
#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50
|
||||
msgid "month"
|
||||
msgid_plural "months"
|
||||
msgstr[0] "kuu"
|
||||
msgstr[1] "kuud"
|
||||
|
||||
#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49
|
||||
msgid "year"
|
||||
msgid_plural "years"
|
||||
msgstr[0] "aasta"
|
||||
msgstr[1] "aastat"
|
||||
|
||||
#: ../../../app/lib/classes/class.image.php:348
|
||||
msgid "Don't autodelete"
|
||||
msgstr "Ära kustuta automaatselt"
|
||||
|
||||
#: ../../../app/lib/classes/class.image.php:955
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76
|
||||
msgid "Private upload"
|
||||
msgstr "Privaatne üleslaadimine"
|
||||
|
||||
#: ../../../app/lib/classes/class.image.php:1231
|
||||
msgid "like"
|
||||
msgid_plural "likes"
|
||||
msgstr[0] "meeldimine"
|
||||
msgstr[1] "meeldimist"
|
||||
|
||||
msgid "Recent"
|
||||
msgstr "Viimati lisatud"
|
||||
|
||||
msgid "Trending"
|
||||
msgstr "Kuum"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:1163
|
||||
msgid "Top users"
|
||||
msgstr "Top kasutajad"
|
||||
|
||||
#: ../../../app/routes/route.album.php:80
|
||||
#: ../../../app/routes/route.category.php:48
|
||||
#: ../../../app/routes/route.dashboard.php:1105
|
||||
#: ../../../app/routes/route.dashboard.php:1142
|
||||
#: ../../../app/routes/route.dashboard.php:1171
|
||||
#: ../../../app/routes/route.explore.php:34
|
||||
#: ../../../app/routes/route.following.php:21
|
||||
#: ../../../app/routes/route.user.php:187
|
||||
#: ../../../app/routes/route.user.php:232
|
||||
#: ../../../app/routes/route.user.php:255
|
||||
#: ../../../app/themes/Peafowl/views/index.php:46
|
||||
msgid "Most recent"
|
||||
msgstr "Viimased"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:1113
|
||||
#: ../../../app/routes/route.dashboard.php:1150
|
||||
#: ../../../app/routes/route.dashboard.php:1179
|
||||
#: ../../../app/routes/route.user.php:238
|
||||
#: ../../../app/routes/route.user.php:261
|
||||
msgid "Oldest"
|
||||
msgstr "Vanimad"
|
||||
|
||||
#: ../../../app/routes/route.album.php:96
|
||||
#: ../../../app/routes/route.category.php:64
|
||||
#: ../../../app/routes/route.dashboard.php:1121
|
||||
#: ../../../app/routes/route.explore.php:50
|
||||
#: ../../../app/routes/route.following.php:29
|
||||
#: ../../../app/routes/route.user.php:201
|
||||
msgid "Most viewed"
|
||||
msgstr "Enim vaadatud"
|
||||
|
||||
msgid "Popular"
|
||||
msgstr "Populaarsed"
|
||||
|
||||
#: ../../../app/routes/route.explore.php:89
|
||||
#: ../../../app/themes/Peafowl/header.php:188
|
||||
#: ../../../app/themes/Peafowl/header.php:206
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:305
|
||||
#: ../../../app/themes/Peafowl/views/explore.php:9
|
||||
msgid "Explore"
|
||||
msgstr "Sirvi pilte"
|
||||
|
||||
msgid "Animated"
|
||||
msgstr "Animeeritud"
|
||||
|
||||
#: ../../../app/routes/route.search.php:130
|
||||
#: ../../../app/themes/Peafowl/header.php:215
|
||||
#: ../../../app/themes/Peafowl/header.php:220
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:295
|
||||
msgid "Search"
|
||||
msgstr "Otsi"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:22
|
||||
msgid "Image"
|
||||
msgid_plural "Images"
|
||||
msgstr[0] "pilt"
|
||||
msgstr[1] "Pildid"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:34
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:90
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:126
|
||||
msgid "User"
|
||||
msgid_plural "Users"
|
||||
msgstr[0] "Kasutaja"
|
||||
msgstr[1] "Kasutajad"
|
||||
|
||||
msgid "Can't update storage details."
|
||||
msgstr "Ei saanud uuendada salvestamise detaile."
|
||||
|
||||
#: ../../../app/lib/classes/class.storage.php:720
|
||||
msgid "Unlimited"
|
||||
msgstr "Piiramatu"
|
||||
|
||||
#: ../../../app/lib/classes/class.storage.php:720
|
||||
msgid "used"
|
||||
msgstr "kasutatud"
|
||||
|
||||
msgid "Private profile"
|
||||
msgstr "Privaatne profiil"
|
||||
|
||||
#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55
|
||||
msgid "second"
|
||||
msgid_plural "seconds"
|
||||
msgstr[0] "sekund"
|
||||
msgstr[1] "sekundit"
|
||||
|
||||
#: ../../../app/lib/functions.php:67
|
||||
#, php-format
|
||||
msgid "%s ago"
|
||||
msgstr "%s tagasi"
|
||||
|
||||
#: ../../../app/lib/functions.php:67
|
||||
msgid "moments ago"
|
||||
msgstr "hetk tagasi"
|
||||
|
||||
#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6
|
||||
msgid "That page doesn't exist"
|
||||
msgstr "Seda lehte ei eksisteeri"
|
||||
|
||||
#: ../../../app/routes/route.account.php:72
|
||||
#: ../../../app/themes/Peafowl/header.php:295
|
||||
#: ../../../app/themes/Peafowl/snippets/modal_login.php:24
|
||||
#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8
|
||||
#: ../../../app/themes/Peafowl/views/login.php:41
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:299
|
||||
msgid "Forgot password?"
|
||||
msgstr "Unustasid parooli ?"
|
||||
|
||||
#: ../../../app/routes/route.account.php:73
|
||||
#: ../../../app/themes/Peafowl/views/account/password-reset.php:8
|
||||
msgid "Reset password"
|
||||
msgstr "Taasta parool"
|
||||
|
||||
#: ../../../app/routes/route.account.php:74
|
||||
#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8
|
||||
msgid "Resend account activation"
|
||||
msgstr "Saada uuesti konto kinnitamise e-mail"
|
||||
|
||||
#: ../../../app/routes/route.account.php:76
|
||||
#: ../../../app/themes/Peafowl/views/account/email-needed.php:8
|
||||
msgid "Add your email address"
|
||||
msgstr "Lisa oma e-mail"
|
||||
|
||||
#: ../../../app/routes/route.account.php:77
|
||||
#: ../../../app/themes/Peafowl/views/account/email-changed.php:7
|
||||
msgid "Email changed"
|
||||
msgstr "E-mail muudetud"
|
||||
|
||||
#: ../../../app/routes/route.account.php:119
|
||||
#: ../../../app/routes/route.account.php:164
|
||||
#: ../../../app/routes/route.account.php:271
|
||||
msgid "Invalid Username/Email"
|
||||
msgstr "Vale Kasutajanimi/Parool"
|
||||
|
||||
#: ../../../app/routes/route.account.php:145
|
||||
msgid "Account needs to be activated to use this feature"
|
||||
msgstr "Konto peab olema aktiveeritud"
|
||||
|
||||
#: ../../../app/routes/route.account.php:151
|
||||
msgid "Account already activated"
|
||||
msgstr "Konto on juba aktiveeritud"
|
||||
|
||||
#: ../../../app/routes/route.account.php:192
|
||||
msgid "Allow up to 15 minutes for the email. You can try again later."
|
||||
msgstr "E-maili saabumine võib võtta aega kuni 15 minutit. Proovi hiljem uuesti."
|
||||
|
||||
#: ../../../app/routes/route.account.php:422
|
||||
#: ../../../app/routes/route.json.php:599
|
||||
#: ../../../app/routes/route.settings.php:243
|
||||
#: ../../../app/routes/route.signup.php:141
|
||||
msgid "Email already being used"
|
||||
msgstr "E-mail on juba kasutusel"
|
||||
|
||||
msgid "Password required"
|
||||
msgstr "Parool nõutud"
|
||||
|
||||
#: ../../../app/routes/route.album.php:115
|
||||
#: ../../../app/themes/Peafowl/snippets/modal_share.php:4
|
||||
#: ../../../app/themes/Peafowl/views/album.php:36
|
||||
#: ../../../app/themes/Peafowl/views/image.php:89
|
||||
msgid "Share"
|
||||
msgstr "Jaga"
|
||||
|
||||
#: ../../../app/routes/route.image.php:127
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99
|
||||
#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110
|
||||
msgid "Embed codes"
|
||||
msgstr "HTML ja BBKoodi tag'id"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:38
|
||||
msgid "Stats"
|
||||
msgstr "Statistika"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:39
|
||||
#: ../../../app/routes/route.search.php:85
|
||||
#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:73
|
||||
msgid "Images"
|
||||
msgstr "Pildid"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:40
|
||||
#: ../../../app/routes/route.search.php:92
|
||||
#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283
|
||||
#: ../../../app/themes/Peafowl/header.php:403
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:77
|
||||
msgid "Albums"
|
||||
msgstr "Albumid"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:41
|
||||
#: ../../../app/routes/route.dashboard.php:233
|
||||
#: ../../../app/routes/route.search.php:99
|
||||
msgid "Users"
|
||||
msgstr "Kasutajad"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:42
|
||||
#: ../../../app/routes/route.settings.php:498
|
||||
#: ../../../app/themes/Peafowl/header.php:363
|
||||
#: ../../../app/themes/Peafowl/header.php:405
|
||||
msgid "Settings"
|
||||
msgstr "Seaded"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:161
|
||||
msgid "Chevereto version"
|
||||
msgstr "Chevereto versioon"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:162
|
||||
msgid "install update"
|
||||
msgstr "installeeri uuendus"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:162
|
||||
msgid "check for updates"
|
||||
msgstr "kontrolli uuendusi"
|
||||
|
||||
msgid "Support"
|
||||
msgstr "Kasutajatugi"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:190
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:298
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:308
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:318
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:633
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:642
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:652
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:678
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:750
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:962
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:975
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:986
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:995
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1024
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1034
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1073
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1082
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1091
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1101
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1247
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1302
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1312
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1324
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1336
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1346
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1356
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1368
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1475
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1573
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1582
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1592
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1627
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1637
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1835
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1861
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1894
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1920
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1946
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1965
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:2010
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:2031
|
||||
msgid "Enabled"
|
||||
msgstr "Lubatud"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:190
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:298
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:308
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:318
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:633
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:642
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:652
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:679
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:750
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:962
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:975
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:986
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:995
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1024
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1034
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1073
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1082
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1091
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1101
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1247
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1302
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1312
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1324
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1336
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1346
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1356
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1368
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1475
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1573
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1582
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1592
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1627
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1637
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1835
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1861
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1894
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1920
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1946
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1965
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:2010
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:2031
|
||||
msgid "Disabled"
|
||||
msgstr "Keelatud"
|
||||
|
||||
msgid "Max. upload file size"
|
||||
msgstr "Max faili suurus"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:567
|
||||
msgid "Invalid timezone"
|
||||
msgstr "Vale ajatsoon"
|
||||
|
||||
#: ../../../app/routes/route.login.php:148
|
||||
#: ../../../app/themes/Peafowl/header.php:269
|
||||
#: ../../../app/themes/Peafowl/header.php:275
|
||||
#: ../../../app/themes/Peafowl/views/login.php:8
|
||||
#: ../../../app/themes/Peafowl/views/login.php:52
|
||||
msgid "Sign in"
|
||||
msgstr "Logi sisse"
|
||||
|
||||
msgid "Upload images"
|
||||
msgstr "Lae pilt ülesse"
|
||||
|
||||
#: ../../../app/routes/route.settings.php:62
|
||||
msgid "Account"
|
||||
msgstr "Konto"
|
||||
|
||||
#: ../../../app/routes/route.settings.php:63
|
||||
msgid "Profile"
|
||||
msgstr "Profiil"
|
||||
|
||||
#: ../../../app/routes/route.settings.php:313
|
||||
msgid "Wrong password"
|
||||
msgstr "Vale parool"
|
||||
|
||||
#: ../../../app/routes/route.settings.php:435
|
||||
msgid "Password has been changed"
|
||||
msgstr "Parool muudetud edukalt"
|
||||
|
||||
#: ../../../app/routes/route.signup.php:251
|
||||
#: ../../../app/themes/Peafowl/header.php:316
|
||||
#: ../../../app/themes/Peafowl/header.php:322
|
||||
#: ../../../app/themes/Peafowl/views/index.php:81
|
||||
#: ../../../app/themes/Peafowl/views/signup.php:8
|
||||
#: ../../../app/themes/Peafowl/views/signup.php:63
|
||||
msgid "Create account"
|
||||
msgstr "Loo konto"
|
||||
|
||||
#: ../../../app/themes/Peafowl/header.php:258
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76
|
||||
msgid "Upload"
|
||||
msgstr "Lae pilt..."
|
||||
|
||||
msgid "Discovery"
|
||||
msgstr "Avasta"
|
||||
|
||||
#: ../../../app/themes/Peafowl/header.php:222
|
||||
#: ../../../app/themes/Peafowl/header.php:226
|
||||
msgid "Advanced search"
|
||||
msgstr "Täpsem otsing"
|
||||
|
||||
#: ../../../app/themes/Peafowl/header.php:233
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:315
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:713
|
||||
msgid "Random"
|
||||
msgstr "Suvaline pilt"
|
||||
|
||||
#: ../../../app/themes/Peafowl/header.php:402
|
||||
msgid "My Profile"
|
||||
msgstr "Minu konto"
|
||||
|
||||
#: ../../../app/themes/Peafowl/header.php:409
|
||||
msgid "Sign out"
|
||||
msgstr "Logi välja"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13
|
||||
msgid "Drag and drop or paste images here to upload"
|
||||
msgstr "Lohista fail siia või lae ülesse clipboardist"
|
||||
|
||||
msgid "browse from your computer"
|
||||
msgstr "valida faili arvutist"
|
||||
|
||||
msgid "add image URLs"
|
||||
msgstr "lisada läbi lingi"
|
||||
|
||||
msgid "You can also %i or %u."
|
||||
msgstr "Sa saad %i või %u"
|
||||
|
||||
msgid "Edit or resize any image by clicking the image preview"
|
||||
msgstr "Muuda pilti või pildi suurust vajutades pisipildile"
|
||||
|
||||
msgid "your computer"
|
||||
msgstr "arvutist"
|
||||
|
||||
msgid "You can add more images from %i or %u."
|
||||
msgstr "Saad lisada pilte juurde %i või %u"
|
||||
|
||||
msgid "sign in"
|
||||
msgstr "logi sisse"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91
|
||||
msgid "close"
|
||||
msgstr "sulge"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:666
|
||||
msgid "Remove"
|
||||
msgstr "Kustuta"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:154
|
||||
msgid "Edit image"
|
||||
msgstr "Muuda pilti"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158
|
||||
#: ../../../app/themes/Peafowl/snippets/form_image.php:4
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:441
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:597
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1440
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:434
|
||||
msgid "Title"
|
||||
msgstr "Pealkiri"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200
|
||||
#: ../../../app/themes/Peafowl/snippets/form_album.php:12
|
||||
#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12
|
||||
#: ../../../app/themes/Peafowl/snippets/form_image.php:4
|
||||
#: ../../../app/themes/Peafowl/snippets/form_image.php:28
|
||||
#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9
|
||||
#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15
|
||||
#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104
|
||||
#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:503
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:509
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:566
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:573
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:580
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1418
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1428
|
||||
msgid "optional"
|
||||
msgstr "valikuline"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167
|
||||
msgid "Resize image"
|
||||
msgstr "Pildi mõõtmed"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176
|
||||
msgid "Note: Animated GIF images won't be resized."
|
||||
msgstr "Animeeritud (gif) failide pildi suurust ei saa muuta!"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180
|
||||
msgid "Auto delete image"
|
||||
msgstr "Kustuta pilt automaatselt"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200
|
||||
#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12
|
||||
#: ../../../app/themes/Peafowl/snippets/form_image.php:28
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:877
|
||||
msgid "Description"
|
||||
msgstr "Kirjeldus"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201
|
||||
#: ../../../app/themes/Peafowl/snippets/form_image.php:29
|
||||
msgid "Brief description of this image"
|
||||
msgstr "...."
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/form_album.php:7
|
||||
#: ../../../app/themes/Peafowl/snippets/form_album.php:8
|
||||
msgid "Album name"
|
||||
msgstr "Albumi nimi"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/form_album.php:21
|
||||
msgid "Private (just me)"
|
||||
msgstr "Privaatne(ainult minule)"
|
||||
|
||||
msgid "Album password"
|
||||
msgstr "Albumi parool"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4
|
||||
#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:875
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1693
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:364
|
||||
#: ../../../content/pages/default/contact.php:87
|
||||
msgid "Name"
|
||||
msgstr "Nimi"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10
|
||||
msgid "Select all"
|
||||
msgstr "Vali kõik"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10
|
||||
#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56
|
||||
msgid "Clear selection"
|
||||
msgstr "Eemalda valik"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13
|
||||
msgid "Selection"
|
||||
msgstr "Valitud"
|
||||
|
||||
#: ../../../app/themes/Peafowl/header.php:281
|
||||
#: ../../../app/themes/Peafowl/snippets/modal_login.php:11
|
||||
#: ../../../app/themes/Peafowl/snippets/modal_login.php:40
|
||||
#: ../../../app/themes/Peafowl/views/login.php:18
|
||||
#: ../../../app/themes/Peafowl/views/login.php:65
|
||||
#: ../../../app/themes/Peafowl/views/signup.php:18
|
||||
#: ../../../app/themes/Peafowl/views/signup.php:76
|
||||
msgid "Sign in with another account"
|
||||
msgstr "Logi sisse kasutades..."
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:618
|
||||
#: ../../../app/themes/Peafowl/views/index.php:63
|
||||
msgid "There's nothing to show here."
|
||||
msgstr "Tühjus... Pole midagi näidata!"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:16
|
||||
#: ../../../app/themes/Peafowl/views/image.php:69
|
||||
#: ../../../app/themes/Peafowl/views/image.php:457
|
||||
msgid "Edit image details"
|
||||
msgstr "Muuda pilti"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/404.php:7
|
||||
msgid "The requested page was not found."
|
||||
msgstr "Soovitud lehekülge ei leitud!"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/404.php:22
|
||||
msgid "The user has been deleted"
|
||||
msgstr "Kasutaja kustutatud"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52
|
||||
#: ../../../app/themes/Peafowl/views/account/password-reset.php:47
|
||||
#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37
|
||||
#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324
|
||||
#: ../../../lib/Peafowl/peafowl.min.js:25
|
||||
#: ../../../lib/Peafowl/peafowl.min.js:140
|
||||
msgid "Submit"
|
||||
msgstr "Edasi"
|
||||
|
||||
#: ../../../app/themes/Peafowl/header.php:291
|
||||
#: ../../../app/themes/Peafowl/snippets/modal_login.php:20
|
||||
#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38
|
||||
#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39
|
||||
#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23
|
||||
#: ../../../app/themes/Peafowl/views/login.php:34
|
||||
#: ../../../app/themes/Peafowl/views/login.php:35
|
||||
msgid "Username or Email address"
|
||||
msgstr "Kasutajanimi või e-mail"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/account/password-reset.php:29
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:306
|
||||
msgid "Enter your new password"
|
||||
msgstr "Sisesta uus parool"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/account/password-reset.php:35
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:312
|
||||
msgid "Re-enter your new password"
|
||||
msgstr "Sisesta uuesti uus parool"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/album.php:25
|
||||
msgid "Delete album"
|
||||
msgstr "Kustuta album"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/album.php:86
|
||||
msgid "Album link"
|
||||
msgstr "Albumi link"
|
||||
|
||||
#: ../../../app/themes/Peafowl/header.php:338
|
||||
#: ../../../app/themes/Peafowl/views/account/email-needed.php:15
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:100
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:155
|
||||
#: ../../../app/themes/Peafowl/views/signup.php:34
|
||||
#: ../../../app/themes/Peafowl/views/signup.php:35
|
||||
#: ../../../content/pages/default/contact.php:92
|
||||
msgid "Email address"
|
||||
msgstr "E-mail"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:2044
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:463
|
||||
#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25
|
||||
msgid "Save changes"
|
||||
msgstr "Salvesta"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/image.php:145
|
||||
#, php-format
|
||||
msgid "Uploaded %s"
|
||||
msgstr "Üles laetud %s"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/image.php:157
|
||||
msgid "More Exif data"
|
||||
msgstr "Vaata exif andmeid"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/image.php:182
|
||||
#: ../../../app/themes/Peafowl/views/image.php:241
|
||||
msgid "Share image"
|
||||
msgstr "Jaga pilti"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/index.php:15
|
||||
msgid "Upload and share your images."
|
||||
msgstr "Lae pilt ülesse ja jaga seda"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/index.php:17
|
||||
#, php-format
|
||||
msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails."
|
||||
msgstr "Lohista oma pilt siia ja alusta üleslaadimist. Kuni %s"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/index.php:25
|
||||
msgid "Start uploading"
|
||||
msgstr "Lae pilt..."
|
||||
|
||||
#: ../../../app/routes/route.logout.php:29
|
||||
#: ../../../app/themes/Peafowl/views/logout.php:8
|
||||
msgid "Logged out"
|
||||
msgstr "Välja logitud"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10
|
||||
#: ../../../app/themes/Peafowl/views/account/email-changed.php:11
|
||||
#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16
|
||||
#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26
|
||||
#: ../../../app/themes/Peafowl/views/account/password-reset.php:16
|
||||
#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13
|
||||
#: ../../../app/themes/Peafowl/views/logout.php:13
|
||||
#: ../../../app/themes/Peafowl/views/request-denied.php:13
|
||||
msgid "Go to homepage"
|
||||
msgstr "Mine esilehele"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:245
|
||||
msgid "Timezone"
|
||||
msgstr "Ajatsoon"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:296
|
||||
msgid "Current password"
|
||||
msgstr "Praegune parool"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:297
|
||||
msgid "Enter your current password"
|
||||
msgstr "Sisesta praegune parool"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:352
|
||||
#: ../../../app/themes/Peafowl/views/user.php:21
|
||||
msgid "Upload new image"
|
||||
msgstr "Lae pilt"
|
||||
|
||||
msgid "If you want to send a message fill the form below."
|
||||
msgstr "Kirjuta meile."
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
You can quick and easy override any language string by putting lang_code.po files here.
|
||||
|
||||
For example, en.po file whit this contents:
|
||||
#: START EXAMPLE
|
||||
msgid "Upload and share your images."
|
||||
msgstr "Upload and share your photos."
|
||||
#: END EXAMPLE
|
||||
|
||||
Will replace the original msgid with the new msgstr.
|
|
@ -56,7 +56,7 @@ if (!defined('access') or !access) {
|
|||
<div id="content">
|
||||
<?php echo $html; ?>
|
||||
</div>
|
||||
<div id="powered">© <a href="http://chevereto.com">Chevereto image hosting script</a></div>
|
||||
<div id="powered"><?php _se('Powered by'); ?> <a href="<?php echo G_APP_GITHUB_REPO_URL; ?>" rel="generator" target="_blank"><?php echo G_APP_GITHUB_REPO; ?></a></div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
|
|
|
@ -1,11 +1,7 @@
|
|||
<FilesMatch "\.(txt)$">
|
||||
# Apache 2.2
|
||||
<IfModule !mod_authz_core.c>
|
||||
Order Allow,Deny
|
||||
Deny from all
|
||||
</IfModule>
|
||||
# Apache 2.4
|
||||
<IfModule mod_authz_core.c>
|
||||
Require all denied
|
||||
</IfModule>
|
||||
</FilesMatch>
|
||||
<IfModule !mod_authz_core.c>
|
||||
Order Allow,Deny
|
||||
Deny from all
|
||||
</IfModule>
|
||||
<IfModule mod_authz_core.c>
|
||||
Require all denied
|
||||
</IfModule>
|
|
@ -67,9 +67,9 @@ try {
|
|||
'crypt_salt' => G\random_string(8),
|
||||
'default_language' => 'en',
|
||||
'default_timezone' => 'America/Santiago',
|
||||
'email_from_email' => '', // no-reply@chevereto.com
|
||||
'email_from_email' => '',
|
||||
'email_from_name' => 'Chevereto',
|
||||
'email_incoming_email' => '', // inbox@chevereto.com
|
||||
'email_incoming_email' => '',
|
||||
'email_mode' => 'mail',
|
||||
'email_smtp_server' => null,
|
||||
'email_smtp_server_password' => null,
|
||||
|
@ -108,7 +108,7 @@ try {
|
|||
'upload_storage_mode' => 'datefolder',
|
||||
'upload_thumb_height' => '160',
|
||||
'upload_thumb_width' => '160',
|
||||
'website_description' => 'A free image hosting service powered by Chevereto',
|
||||
'website_description' => 'A free image hosting service powered by Chevereto-Free',
|
||||
'website_doctitle' => 'Chevereto image hosting',
|
||||
'website_name' => 'Chevereto',
|
||||
'website_explore_page' => 1,
|
||||
|
@ -181,7 +181,7 @@ try {
|
|||
'homepage_cta_html' => null,
|
||||
'homepage_cta_fn' => null,
|
||||
'homepage_cta_fn_extra' => null,
|
||||
'language_chooser_enable' => 1,
|
||||
'language_chooser_enable' => 0,
|
||||
'languages_disable' => null,
|
||||
'website_mode' => 'community',
|
||||
'website_mode_personal_routing' => null, //'single_user_mode_routing'
|
||||
|
@ -214,7 +214,7 @@ try {
|
|||
'1.0.1' => null,
|
||||
'1.0.2' => null,
|
||||
'1.0.3' => [
|
||||
'upload_enabled_image_formats' => 'jpg,png,bmp,gif',
|
||||
'upload_enabled_image_formats' => 'jpg,png,bmp,gif,webp',
|
||||
'upload_threads' => '2',
|
||||
'enable_automatic_updates_check'=> 1,
|
||||
],
|
||||
|
@ -286,13 +286,19 @@ try {
|
|||
'moderate_uploads' => '', // ,all,guest,
|
||||
'image_lock_nsfw_editing' => 0,
|
||||
],
|
||||
'1.4.0' => null,
|
||||
'1.4.1' => null,
|
||||
'1.4.2' => null,
|
||||
'1.5.0' => null,
|
||||
'1.5.1' => null,
|
||||
'1.6.0' => null,
|
||||
'1.6.1' => [
|
||||
'chevereto_news' => 'a:0:{}',
|
||||
],
|
||||
'1.6.2' => null,
|
||||
];
|
||||
// Settings that must be renamed from NAME to NEW NAME and DELETE old NAME
|
||||
$settings_rename = [];
|
||||
|
||||
// Settings that must be renamed from NAME to NEW NAME and doesn't delete old NAME
|
||||
$settings_switch = [];
|
||||
|
||||
$chv_initial_settings = [];
|
||||
foreach ($settings_updates as $k => $v) {
|
||||
if (is_null($v)) {
|
||||
|
@ -300,14 +306,11 @@ try {
|
|||
}
|
||||
$chv_initial_settings += $v;
|
||||
}
|
||||
|
||||
// Detect 2.X
|
||||
try {
|
||||
$is_2X = DB::get('info', ['key' => 'version']) ? true : false;
|
||||
} catch (Exception $e) {
|
||||
$is_2X = false;
|
||||
}
|
||||
|
||||
/* Stats query from 3.7.0 up to 3.8.13 */
|
||||
$stats_query_legacy = 'TRUNCATE TABLE `%table_prefix%stats`;
|
||||
|
||||
|
@ -895,7 +898,7 @@ WHERE NOT EXISTS (SELECT * FROM `%table_prefix%imports` WHERE `import_path`='%ro
|
|||
}
|
||||
|
||||
if ($isDumpUpdate) {
|
||||
G\debug('# Dumped update query. https://v3-docs.chevereto.com/setup/update-guide.html#manual-procedure');
|
||||
G\debug('# Dumped update query. https://chevereto-free.github.io/setup/update-guide.html#manual-procedure');
|
||||
G\debug($sql_update);
|
||||
die();
|
||||
}
|
||||
|
@ -933,6 +936,7 @@ WHERE NOT EXISTS (SELECT * FROM `%table_prefix%imports` WHERE `import_path`='%ro
|
|||
}
|
||||
|
||||
if (!$installed_version && $_POST) {
|
||||
$safe_post = G\Handler::getVar('safe_post');
|
||||
if (isset($_POST['username']) and !in_array($doing, ['already', 'update'])) {
|
||||
$doing = 'ready';
|
||||
}
|
||||
|
|
|
@ -14,23 +14,23 @@
|
|||
<form method="post" class="c9">
|
||||
<div class="input-label">
|
||||
<label for="db_host">Database host</label>
|
||||
<input type="text" name="db_host" id="db_host" class="text-input" value="<?php echo isset($_POST['db_host']) ? $_POST['db_host'] : 'localhost'; ?>" placeholder="Usually localhost" title="Database server host (default: localhost)" rel="tooltip" data-tipTip="right" required>
|
||||
<input type="text" name="db_host" id="db_host" class="text-input" value="<?php echo $safe_post['db_host'] ?? 'localhost'; ?>" placeholder="Usually localhost" title="Database server host (default: localhost)" rel="tooltip" data-tipTip="right" required>
|
||||
</div>
|
||||
<div class="input-label">
|
||||
<label for="db_name">Database name</label>
|
||||
<input type="text" name="db_name" id="db_name" class="text-input" value="<?php echo isset($_POST['db_name']) ? $_POST['db_name'] : ''; ?>" placeholder="Database name" title="Name of the database where you want to install Chevereto" rel="tooltip" data-tipTip="right" required>
|
||||
<input type="text" name="db_name" id="db_name" class="text-input" value="<?php echo $safe_post['db_name'] ?? ''; ?>" placeholder="Database name" title="Name of the database where you want to install Chevereto" rel="tooltip" data-tipTip="right" required>
|
||||
</div>
|
||||
<div class="input-label">
|
||||
<label for="db_user">Database user</label>
|
||||
<input type="text" name="db_user" id="db_user" class="text-input" value="<?php echo isset($_POST['db_user']) ? $_POST['db_user'] : ''; ?>" placeholder="Database user" title="User with access to the above database" rel="tooltip" data-tipTip="right" required>
|
||||
<input type="text" name="db_user" id="db_user" class="text-input" value="<?php echo $safe_post['db_user'] ?? ''; ?>" placeholder="Database user" title="User with access to the above database" rel="tooltip" data-tipTip="right" required>
|
||||
</div>
|
||||
<div class="input-label">
|
||||
<label for="db_pass">Database user password</label>
|
||||
<input type="text" name="db_pass" id="db_pass" class="text-input" value="<?php echo isset($_POST['db_pass']) ? $_POST['db_pass'] : ''; ?>" placeholder="Database user password" title="Password of the above user" rel="tooltip" data-tipTip="right">
|
||||
<input type="text" name="db_pass" id="db_pass" class="text-input" value="<?php echo $safe_post['db_pass'] ?? ''; ?>" placeholder="Database user password" title="Password of the above user" rel="tooltip" data-tipTip="right">
|
||||
</div>
|
||||
<div class="input-label">
|
||||
<label for="db_table_prefix">Database table prefix</label>
|
||||
<input type="text" name="db_table_prefix" id="db_table_prefix" class="text-input" value="<?php echo isset($_POST['db_table_prefix']) ? $_POST['db_table_prefix'] : 'chv_'; ?>" placeholder="Usually chv_" title="Database table prefix. Use chv_ if you don't need this" rel="tooltip" data-tipTip="right">
|
||||
<input type="text" name="db_table_prefix" id="db_table_prefix" class="text-input" value="<?php echo $safe_post['db_table_prefix'] ?? 'chv_'; ?>" placeholder="Usually chv_" title="Database table prefix. Use chv_ if you don't need this" rel="tooltip" data-tipTip="right">
|
||||
</div>
|
||||
<div class="btn-container margin-bottom-0">
|
||||
<button class="btn btn-input default" type="submit">Continue</button>
|
||||
|
|
|
@ -13,17 +13,17 @@
|
|||
<div class="c9">
|
||||
<div class="input-label">
|
||||
<label for="username">Admin username</label>
|
||||
<input type="text" name="username" id="username" class="text-input" value="<?php echo isset($_POST['username']) ? $_POST['username'] : null; ?>" placeholder="Admin username" rel="tooltip" data-tipTip="right" pattern="<?php echo CHV\getSetting('username_pattern'); ?>" rel="tooltip" title='<?php echo strtr('%i to %f characters<br>Letters, numbers and "_"', ['%i' => CHV\getSetting('username_min_length'), '%f' => CHV\getSetting('username_max_length')]); ?>' maxlength="<?php echo CHV\getSetting('username_max_length'); ?>" required>
|
||||
<input type="text" name="username" id="username" class="text-input" value="<?php echo $safe_post['username'] ?? ''; ?>" placeholder="Admin username" rel="tooltip" data-tipTip="right" pattern="<?php echo CHV\getSetting('username_pattern'); ?>" rel="tooltip" title='<?php echo strtr('%i to %f characters<br>Letters, numbers and "_"', ['%i' => CHV\getSetting('username_min_length'), '%f' => CHV\getSetting('username_max_length')]); ?>' maxlength="<?php echo CHV\getSetting('username_max_length'); ?>" required>
|
||||
<span class="input-warning red-warning"><?php echo $input_errors['username']; ?></span>
|
||||
</div>
|
||||
<div class="input-label">
|
||||
<label for="email">Admin email</label>
|
||||
<input type="email" name="email" id="email" class="text-input" value="<?php echo isset($_POST['email']) ? $_POST['email'] : ''; ?>" placeholder="Admin email" title="Valid email address for your admin account" rel="tooltip" data-tipTip="right" required>
|
||||
<input type="email" name="email" id="email" class="text-input" value="<?php echo $safe_post['email'] ?? ''; ?>" placeholder="Admin email" title="Valid email address for your admin account" rel="tooltip" data-tipTip="right" required>
|
||||
<span class="input-warning red-warning"><?php echo $input_errors['email']; ?></span>
|
||||
</div>
|
||||
<div class="input-label input-password">
|
||||
<label for="password">Admin password</label>
|
||||
<input type="password" name="password" id="password" class="text-input" value="<?php echo isset($_POST['password']) ? $_POST['password'] : ''; ?>" placeholder="Admin password" title="Password to login" pattern="<?php echo CHV\getSetting('user_password_pattern'); ?>" rel="tooltip" data-tipTip="right" required>
|
||||
<input type="password" name="password" id="password" class="text-input" value="<?php echo $safe_post['password'] ?? ''; ?>" placeholder="Admin password" title="Password to login" pattern="<?php echo CHV\getSetting('user_password_pattern'); ?>" rel="tooltip" data-tipTip="right" required>
|
||||
<div class="input-password-strength"><span style="width: 0%" data-content="password-meter-bar"></span></div>
|
||||
<span class="input-warning red-warning" data-text="password-meter-message"><?php echo $input_errors['password']; ?></span>
|
||||
</div>
|
||||
|
@ -32,12 +32,12 @@
|
|||
<div class="c9">
|
||||
<div class="input-label">
|
||||
<label for="email_from_email"><?php _se('From email address'); ?></label>
|
||||
<input type="email" name="email_from_email" id="email_from_email" class="text-input" value="<?php echo isset($_POST['email_from_email']) ? $_POST['email_from_email'] : ''; ?>" placeholder="no-reply@example.com" title="<?php _se('Sender email for emails sent to users.'); ?>" rel="tooltip" data-tipTip="right" required>
|
||||
<input type="email" name="email_from_email" id="email_from_email" class="text-input" value="<?php echo $safe_post['email_from_email'] ?? ''; ?>" placeholder="no-reply@example.com" title="<?php _se('Sender email for emails sent to users.'); ?>" rel="tooltip" data-tipTip="right" required>
|
||||
<span class="input-warning red-warning"><?php echo $input_errors['email_from_email']; ?></span>
|
||||
</div>
|
||||
<div class="input-label">
|
||||
<label for="email_incoming_email"><?php _se('Incoming email address'); ?></label>
|
||||
<input type="email" name="email_incoming_email" id="email_incoming_email" class="text-input" value="<?php echo isset($_POST['email_incoming_email']) ? $_POST['email_incoming_email'] : null; ?>" placeholder="inbox@example.com" title="<?php _se('Recipient for contact form and system alerts.'); ?>" rel="tooltip" data-tipTip="right" required>
|
||||
<input type="email" name="email_incoming_email" id="email_incoming_email" class="text-input" value="<?php echo $safe_post['email_incoming_email'] ?? ''; ?>" placeholder="inbox@example.com" title="<?php _se('Recipient for contact form and system alerts.'); ?>" rel="tooltip" data-tipTip="right" required>
|
||||
<span class="input-warning red-warning"><?php echo $input_errors['email_incoming_email']; ?></span>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -60,7 +60,7 @@
|
|||
<div class="c9">
|
||||
<div class="input-label">
|
||||
<label for="crypt_salt">__CHV_CRYPT_SALT__</label>
|
||||
<input type="crypt_salt" name="crypt_salt" id="crypt_salt" class="text-input" value="<?php echo isset($_POST['crypt_salt']) ? $_POST['crypt_salt'] : ''; ?>" placeholder="Example: changeme" title="As defined in includes/definitions.php" rel="tooltip" data-tipTip="right" required>
|
||||
<input type="crypt_salt" name="crypt_salt" id="crypt_salt" class="text-input" value="<?php echo $safe_post['crypt_salt'] ?? ''; ?>" placeholder="Example: changeme" title="As defined in includes/definitions.php" rel="tooltip" data-tipTip="right" required>
|
||||
<span class="input-below highlight">Value from define("__CHV_CRYPT_SALT__", "changeme");</span>
|
||||
<span class="input-warning red-warning"><?php echo $input_errors['crypt_salt']; ?></span>
|
||||
</div>
|
||||
|
|
|
@ -50,16 +50,14 @@ try {
|
|||
}
|
||||
} else {
|
||||
$CHEVERETO = Settings::getChevereto();
|
||||
|
||||
set_time_limit(300); // Allow up to five minutes...
|
||||
|
||||
set_time_limit(300);
|
||||
switch ($_REQUEST['action']) {
|
||||
case 'ask':
|
||||
try {
|
||||
$json_array = json_decode(G\fetch_url($CHEVERETO['api']['get']['info'], false, [
|
||||
CURLOPT_REFERER => G\get_base_url()
|
||||
]), true);
|
||||
$json_array['success'] = ['message' => 'OK']; // "success" is a Chevereto internal thing
|
||||
$json_array['success'] = ['message' => 'OK'];
|
||||
} catch (Exception $e) {
|
||||
throw new Exception(sprintf('Fatal error: %s', $e->getMessage()), 400);
|
||||
}
|
||||
|
@ -73,24 +71,19 @@ try {
|
|||
'header' => "User-agent: " . G_APP_GITHUB_REPO . "\r\n"
|
||||
]
|
||||
]);
|
||||
$download = @file_get_contents('https://api.github.com/repos/' . G_APP_GITHUB_OWNER . '/' . G_APP_GITHUB_REPO . '/zipball/'.$version, false, $context);
|
||||
$artifactUrl = 'https://github.com/'.G_APP_GITHUB_OWNER.'/'.G_APP_GITHUB_REPO.'/releases/download/'.$version.'/'.$version.'.zip';
|
||||
$download = @file_get_contents($artifactUrl, false, $context);
|
||||
if ($download === false) {
|
||||
throw new Exception(sprintf("Can't fetch " . G_APP_NAME . " v%s from GitHub", $version), 400);
|
||||
throw new Exception(
|
||||
sprintf("Can't fetch " . G_APP_NAME . " v%s from GitHub", $version),
|
||||
400
|
||||
);
|
||||
}
|
||||
$github_json = json_decode($download, true);
|
||||
if (json_last_error() == JSON_ERROR_NONE) {
|
||||
throw new Exception("Can't proceed with update procedure");
|
||||
} else {
|
||||
// Get Content-Disposition header from GitHub
|
||||
foreach ($http_response_header as $header) {
|
||||
if (preg_match('/^Content-Disposition:.*filename=(.*)$/i', $header, $matches)) {
|
||||
$zip_local_filename = G\str_replace_last('.zip', '_' . G\random_string(24) . '.zip', $matches[1]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!isset($zip_local_filename)) {
|
||||
throw new Exception("Can't grab content-disposition header from GitHub");
|
||||
}
|
||||
$zip_local_filename = 'chevereto_' . $version . '_' . G\random_string(24) . '.zip';
|
||||
if (file_put_contents($update_temp_dir . $zip_local_filename, $download) === false) {
|
||||
throw new Exception(_s("Can't save file"));
|
||||
}
|
||||
|
@ -105,19 +98,21 @@ try {
|
|||
];
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
throw new Exception(_s("Can't download %s", $version == 'latest' ? 'Chevereto' : ('v' . $version)) . ' (' . $e->getMessage() . ')');
|
||||
throw new Exception(
|
||||
_s(
|
||||
"Can't download %s",
|
||||
$version == 'latest'
|
||||
? 'Chevereto-Free'
|
||||
: ('v' . $version)
|
||||
) . ' (' . $e->getMessage() . ')'
|
||||
);
|
||||
}
|
||||
|
||||
break;
|
||||
case 'extract':
|
||||
$zip_file = $update_temp_dir . $_REQUEST['file'];
|
||||
if (false === preg_match('/^(chevereto-chevereto-free)-([\d.]+)-\d+-g(.*)_.*$/i', $_REQUEST['file'], $matches)) {
|
||||
throw new Exception("Can't detect target zip file version");
|
||||
}
|
||||
$version = $matches[2];
|
||||
$etag_short = $matches[3];
|
||||
if (!is_readable($zip_file)) {
|
||||
throw new Exception('Missing '.$zip_file.' file', 400);
|
||||
throw new Exception('Missing ' . $zip_file . ' file', 400);
|
||||
}
|
||||
$zip = new \ZipArchive;
|
||||
if ($zip->open($zip_file) === true) {
|
||||
|
@ -128,7 +123,6 @@ try {
|
|||
}
|
||||
} catch (Exception $e) {
|
||||
}
|
||||
|
||||
$zip->extractTo($update_temp_dir);
|
||||
$zip->close();
|
||||
@unlink($zip_file);
|
||||
|
@ -136,7 +130,7 @@ try {
|
|||
throw new Exception(_s("Can't extract %s", G\absolute_to_relative($zip_file)), 401);
|
||||
}
|
||||
// Recursive copy UPDATE -> CURRENT
|
||||
$source = $update_temp_dir . $matches[1] . '-' . $etag_short . '/';
|
||||
$source = $update_temp_dir . '/';
|
||||
$dest = G_ROOT_PATH;
|
||||
foreach ($iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($source, \RecursiveDirectoryIterator::SKIP_DOTS), \RecursiveIteratorIterator::SELF_FIRST) as $item) {
|
||||
$target = $dest . $iterator->getSubPathName();
|
||||
|
@ -150,14 +144,12 @@ try {
|
|||
]), 402);
|
||||
}
|
||||
} else {
|
||||
if (!preg_match('/\.htaccess$/', $item)) {
|
||||
if (!@copy($item, $target)) {
|
||||
$error = error_get_last();
|
||||
throw new Exception(_s("Can't update %s file - %e", [
|
||||
'%s' => $target_visible,
|
||||
'%e' => $error['message']
|
||||
]), 403);
|
||||
}
|
||||
if (!@copy($item, $target)) {
|
||||
$error = error_get_last();
|
||||
throw new Exception(_s("Can't update %s file - %e", [
|
||||
'%s' => $target_visible,
|
||||
'%e' => $error['message']
|
||||
]), 403);
|
||||
}
|
||||
unlink($item);
|
||||
}
|
||||
|
|
|
@ -3994,7 +3994,7 @@ CHV.fn.uploader = {
|
|||
JSONresponse.error.message = "Database error";
|
||||
}
|
||||
JSONresponse.error.message =
|
||||
CHV.fn.uploader.files[id].name.truncate_middle() +
|
||||
PF.fn.htmlEncode(CHV.fn.uploader.files[id].name.truncate_middle()) +
|
||||
" - " +
|
||||
JSONresponse.error.message;
|
||||
}
|
||||
|
@ -4027,7 +4027,7 @@ CHV.fn.uploader = {
|
|||
status_code: err_handle.status,
|
||||
error: {
|
||||
message:
|
||||
CHV.fn.uploader.files[id].name.truncate_middle() +
|
||||
PF.fn.htmlEncode(CHV.fn.uploader.files[id].name.truncate_middle()) +
|
||||
" - Server error (" +
|
||||
err_handle.statusText +
|
||||
")",
|
||||
|
@ -4298,7 +4298,7 @@ CHV.fn.fillEmbedCodes = function (elements, parent, fn) {
|
|||
|
||||
template = template.replace(
|
||||
new RegExp("%" + i.toUpperCase() + "%", "g"),
|
||||
flatten_image[i]
|
||||
PF.fn.htmlEncode(PF.fn.htmlEncode(flatten_image[i]))
|
||||
);
|
||||
}
|
||||
|
||||
|
|
4
app/lib/chevereto.min.js
vendored
|
@ -585,9 +585,6 @@ class Image
|
|||
'uploaded' => $upload->uploaded,
|
||||
'source' => $upload->source,
|
||||
];
|
||||
if (isset($upload->moderation)) {
|
||||
$return['moderation'] = $upload->moderation;
|
||||
}
|
||||
|
||||
return $return;
|
||||
} catch (Exception $e) {
|
||||
|
@ -1027,18 +1024,6 @@ class Image
|
|||
$original_exifdata = $image_upload['source']['image_exif'] ? json_encode(G\array_utf8encode($image_upload['source']['image_exif'])) : null;
|
||||
|
||||
$values['nsfw'] = in_array(strval($values['nsfw']), ['0', '1']) ? $values['nsfw'] : 0;
|
||||
if (Settings::get('moderatecontent') && $values['nsfw'] == 0 && Settings::get('moderatecontent_flag_nsfw')) {
|
||||
switch ($image_upload['moderation']->rating_letter) {
|
||||
case 'a':
|
||||
$values['nsfw'] = '1';
|
||||
break;
|
||||
case 't':
|
||||
if (Settings::get('moderatecontent_flag_nsfw') == 't') {
|
||||
$values['nsfw'] = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$populate_values = [
|
||||
'uploader_ip' => $values['uploader_ip'],
|
||||
|
@ -1070,18 +1055,6 @@ class Image
|
|||
}
|
||||
|
||||
$values['is_approved'] = 1;
|
||||
switch (Settings::get('moderate_uploads')) {
|
||||
case 'all':
|
||||
$values['is_approved'] = 0;
|
||||
break;
|
||||
case 'guest':
|
||||
$values['is_approved'] = (int) isset($values['user_id']);
|
||||
break;
|
||||
}
|
||||
|
||||
if (Settings::get('moderatecontent_auto_approve') && isset($image_upload['moderation'])) {
|
||||
$values['is_approved'] = 1;
|
||||
}
|
||||
|
||||
$insert = DB::insert('images', $values);
|
||||
|
||||
|
|