Compare commits
No commits in common. "4.2" and "4.0.7" have entirely different histories.
451 changed files with 177604 additions and 151287 deletions
|
@ -1,9 +1,9 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Chevereto.
|
||||
* This file is part of Chevere.
|
||||
*
|
||||
* (c) Rodolfo Berrios <rodolfo@chevereto.com>
|
||||
* (c) Rodolfo Berrios <rodolfo@chevere.org>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
|
@ -11,113 +11,202 @@
|
|||
|
||||
declare(strict_types=1);
|
||||
|
||||
use PhpCsFixer\Fixer\Alias\NoAliasFunctionsFixer;
|
||||
use PhpCsFixer\Fixer\Alias\NoAliasLanguageConstructCallFixer;
|
||||
use PhpCsFixer\Fixer\Alias\NoMixedEchoPrintFixer;
|
||||
use PhpCsFixer\Fixer\ArrayNotation\ArraySyntaxFixer;
|
||||
use PhpCsFixer\Fixer\ArrayNotation\NoMultilineWhitespaceAroundDoubleArrowFixer;
|
||||
use PhpCsFixer\Fixer\ArrayNotation\NormalizeIndexBraceFixer;
|
||||
use PhpCsFixer\Fixer\Casing\IntegerLiteralCaseFixer;
|
||||
use PhpCsFixer\Fixer\Casing\LowercaseStaticReferenceFixer;
|
||||
use PhpCsFixer\Fixer\Casing\MagicConstantCasingFixer;
|
||||
use PhpCsFixer\Fixer\Casing\MagicMethodCasingFixer;
|
||||
use PhpCsFixer\Fixer\Casing\NativeFunctionCasingFixer;
|
||||
use PhpCsFixer\Fixer\Casing\NativeFunctionTypeDeclarationCasingFixer;
|
||||
use PhpCsFixer\Fixer\CastNotation\NoShortBoolCastFixer;
|
||||
use PhpCsFixer\Fixer\CastNotation\NoUnsetCastFixer;
|
||||
use PhpCsFixer\Fixer\ArrayNotation\NoWhitespaceBeforeCommaInArrayFixer;
|
||||
use PhpCsFixer\Fixer\ArrayNotation\WhitespaceAfterCommaInArrayFixer;
|
||||
use PhpCsFixer\Fixer\Basic\BracesFixer;
|
||||
use PhpCsFixer\Fixer\Basic\EncodingFixer;
|
||||
use PhpCsFixer\Fixer\Casing\ConstantCaseFixer;
|
||||
use PhpCsFixer\Fixer\Casing\LowercaseKeywordsFixer;
|
||||
use PhpCsFixer\Fixer\CastNotation\LowercaseCastFixer;
|
||||
use PhpCsFixer\Fixer\CastNotation\ShortScalarCastFixer;
|
||||
use PhpCsFixer\Fixer\ClassNotation\ClassAttributesSeparationFixer;
|
||||
use PhpCsFixer\Fixer\ClassNotation\ClassDefinitionFixer;
|
||||
use PhpCsFixer\Fixer\ClassNotation\NoBlankLinesAfterClassOpeningFixer;
|
||||
use PhpCsFixer\Fixer\ClassNotation\ProtectedToPrivateFixer;
|
||||
use PhpCsFixer\Fixer\ClassNotation\SingleClassElementPerStatementFixer;
|
||||
use PhpCsFixer\Fixer\ClassNotation\VisibilityRequiredFixer;
|
||||
use PhpCsFixer\Fixer\Comment\HeaderCommentFixer;
|
||||
use PhpCsFixer\Fixer\Comment\NoTrailingWhitespaceInCommentFixer;
|
||||
use PhpCsFixer\Fixer\Comment\SingleLineCommentStyleFixer;
|
||||
use PhpCsFixer\Fixer\ControlStructure\ElseifFixer;
|
||||
use PhpCsFixer\Fixer\ControlStructure\IncludeFixer;
|
||||
use PhpCsFixer\Fixer\ControlStructure\NoAlternativeSyntaxFixer;
|
||||
use PhpCsFixer\Fixer\FunctionNotation\LambdaNotUsedImportFixer;
|
||||
use PhpCsFixer\Fixer\ControlStructure\NoBreakCommentFixer;
|
||||
use PhpCsFixer\Fixer\ControlStructure\NoUnneededControlParenthesesFixer;
|
||||
use PhpCsFixer\Fixer\ControlStructure\NoUnneededCurlyBracesFixer;
|
||||
use PhpCsFixer\Fixer\ControlStructure\SwitchCaseSemicolonToColonFixer;
|
||||
use PhpCsFixer\Fixer\ControlStructure\SwitchCaseSpaceFixer;
|
||||
use PhpCsFixer\Fixer\FunctionNotation\FunctionDeclarationFixer;
|
||||
use PhpCsFixer\Fixer\FunctionNotation\MethodArgumentSpaceFixer;
|
||||
use PhpCsFixer\Fixer\FunctionNotation\NoSpacesAfterFunctionNameFixer;
|
||||
use PhpCsFixer\Fixer\FunctionNotation\ReturnTypeDeclarationFixer;
|
||||
use PhpCsFixer\Fixer\Import\NoLeadingImportSlashFixer;
|
||||
use PhpCsFixer\Fixer\Import\NoUnusedImportsFixer;
|
||||
use PhpCsFixer\Fixer\Import\OrderedImportsFixer;
|
||||
use PhpCsFixer\Fixer\Import\SingleImportPerStatementFixer;
|
||||
use PhpCsFixer\Fixer\Import\SingleLineAfterImportsFixer;
|
||||
use PhpCsFixer\Fixer\LanguageConstruct\CombineConsecutiveUnsetsFixer;
|
||||
use PhpCsFixer\Fixer\LanguageConstruct\SingleSpaceAroundConstructFixer;
|
||||
use PhpCsFixer\Fixer\ListNotation\ListSyntaxFixer;
|
||||
use PhpCsFixer\Fixer\NamespaceNotation\CleanNamespaceFixer;
|
||||
use PhpCsFixer\Fixer\Operator\NoSpaceAroundDoubleColonFixer;
|
||||
use PhpCsFixer\Fixer\LanguageConstruct\DeclareEqualNormalizeFixer;
|
||||
use PhpCsFixer\Fixer\NamespaceNotation\BlankLineAfterNamespaceFixer;
|
||||
use PhpCsFixer\Fixer\Operator\BinaryOperatorSpacesFixer;
|
||||
use PhpCsFixer\Fixer\Operator\ConcatSpaceFixer;
|
||||
use PhpCsFixer\Fixer\Operator\NewWithBracesFixer;
|
||||
use PhpCsFixer\Fixer\Operator\ObjectOperatorWithoutWhitespaceFixer;
|
||||
use PhpCsFixer\Fixer\Operator\StandardizeNotEqualsFixer;
|
||||
use PhpCsFixer\Fixer\PhpTag\LinebreakAfterOpeningTagFixer;
|
||||
use PhpCsFixer\Fixer\ReturnNotation\NoUselessReturnFixer;
|
||||
use PhpCsFixer\Fixer\Operator\TernaryOperatorSpacesFixer;
|
||||
use PhpCsFixer\Fixer\Operator\UnaryOperatorSpacesFixer;
|
||||
use PhpCsFixer\Fixer\PhpTag\BlankLineAfterOpeningTagFixer;
|
||||
use PhpCsFixer\Fixer\PhpTag\FullOpeningTagFixer;
|
||||
use PhpCsFixer\Fixer\PhpTag\NoClosingTagFixer;
|
||||
use PhpCsFixer\Fixer\ReturnNotation\ReturnAssignmentFixer;
|
||||
use PhpCsFixer\Fixer\Semicolon\MultilineWhitespaceBeforeSemicolonsFixer;
|
||||
use PhpCsFixer\Fixer\Semicolon\NoEmptyStatementFixer;
|
||||
use PhpCsFixer\Fixer\Semicolon\NoSinglelineWhitespaceBeforeSemicolonsFixer;
|
||||
use PhpCsFixer\Fixer\Strict\DeclareStrictTypesFixer;
|
||||
use PhpCsFixer\Fixer\StringNotation\SingleQuoteFixer;
|
||||
use PhpCsFixer\Fixer\Whitespace\BlankLineBeforeStatementFixer;
|
||||
use PhpCsFixer\Fixer\Whitespace\CompactNullableTypehintFixer;
|
||||
use PhpCsFixer\Fixer\Whitespace\IndentationTypeFixer;
|
||||
use PhpCsFixer\Fixer\Whitespace\LineEndingFixer;
|
||||
use PhpCsFixer\Fixer\Whitespace\NoExtraBlankLinesFixer;
|
||||
use PhpCsFixer\Fixer\Whitespace\TypesSpacesFixer;
|
||||
use PhpCsFixer\Fixer\Whitespace\NoSpacesInsideParenthesisFixer;
|
||||
use PhpCsFixer\Fixer\Whitespace\NoTrailingWhitespaceFixer;
|
||||
use PhpCsFixer\Fixer\Whitespace\SingleBlankLineAtEofFixer;
|
||||
use SlevomatCodingStandard\Sniffs\ControlStructures\RequireShortTernaryOperatorSniff;
|
||||
use SlevomatCodingStandard\Sniffs\Functions\UnusedInheritedVariablePassedToClosureSniff;
|
||||
use SlevomatCodingStandard\Sniffs\Operators\RequireCombinedAssignmentOperatorSniff;
|
||||
use SlevomatCodingStandard\Sniffs\PHP\DisallowDirectMagicInvokeCallSniff;
|
||||
use SlevomatCodingStandard\Sniffs\PHP\UselessParenthesesSniff;
|
||||
use SlevomatCodingStandard\Sniffs\PHP\UselessSemicolonSniff;
|
||||
use SlevomatCodingStandard\Sniffs\Variables\UnusedVariableSniff;
|
||||
use SlevomatCodingStandard\Sniffs\Variables\UselessVariableSniff;
|
||||
use Symplify\CodingStandard\Fixer\Commenting\ParamReturnAndVarTagMalformsFixer;
|
||||
use Symplify\EasyCodingStandard\Config\ECSConfig;
|
||||
use Symplify\EasyCodingStandard\ValueObject\Option;
|
||||
use Symplify\EasyCodingStandard\ValueObject\Set\SetList;
|
||||
|
||||
return static function (ECSConfig $ecsConfig): void {
|
||||
$ecsConfig->parallel();
|
||||
return static function (ECSConfig $containerConfigurator): void {
|
||||
$headerFile = __DIR__ . '/.header';
|
||||
$ecsConfig->sets([SetList::PSR_12, SetList::COMMON]);
|
||||
$parameters = $containerConfigurator->parameters();
|
||||
$parameters->set(Option::SETS, [
|
||||
SetList::COMMON,
|
||||
]);
|
||||
$services = $containerConfigurator->services();
|
||||
if (file_exists($headerFile)) {
|
||||
$ecsConfig->ruleWithConfiguration(HeaderCommentFixer::class, [
|
||||
'header' => file_get_contents($headerFile),
|
||||
'location' => 'after_open',
|
||||
]);
|
||||
$services->set(HeaderCommentFixer::class)
|
||||
->call('configure', [[
|
||||
'header' => file_get_contents($headerFile),
|
||||
'location' => 'after_open',
|
||||
]]);
|
||||
}
|
||||
$ecsConfig->rule(TypesSpacesFixer::class);
|
||||
$ecsConfig->rule(NoUselessReturnFixer::class);
|
||||
$ecsConfig->rule(LinebreakAfterOpeningTagFixer::class);
|
||||
$ecsConfig->rule(StandardizeNotEqualsFixer::class);
|
||||
$ecsConfig->rule(NoSpaceAroundDoubleColonFixer::class);
|
||||
$ecsConfig->rule(CleanNamespaceFixer::class);
|
||||
$ecsConfig->rule(ListSyntaxFixer::class);
|
||||
$ecsConfig->rule(SingleSpaceAroundConstructFixer::class);
|
||||
$ecsConfig->rule(LambdaNotUsedImportFixer::class);
|
||||
$ecsConfig->rule(NoAlternativeSyntaxFixer::class);
|
||||
$ecsConfig->rule(NoUnsetCastFixer::class);
|
||||
$ecsConfig->rule(NoShortBoolCastFixer::class);
|
||||
$ecsConfig->rule(NativeFunctionTypeDeclarationCasingFixer::class);
|
||||
$ecsConfig->rule(NativeFunctionCasingFixer::class);
|
||||
$ecsConfig->rule(MagicMethodCasingFixer::class);
|
||||
$ecsConfig->rule(MagicConstantCasingFixer::class);
|
||||
$ecsConfig->rule(LowercaseStaticReferenceFixer::class);
|
||||
$ecsConfig->rule(IntegerLiteralCaseFixer::class);
|
||||
$ecsConfig->rule(NormalizeIndexBraceFixer::class);
|
||||
$ecsConfig->rule(NoMultilineWhitespaceAroundDoubleArrowFixer::class);
|
||||
$ecsConfig->rule(BlankLineBeforeStatementFixer::class);
|
||||
$ecsConfig->rule(CombineConsecutiveUnsetsFixer::class);
|
||||
$ecsConfig->rule(CompactNullableTypehintFixer::class);
|
||||
$ecsConfig->rule(DeclareStrictTypesFixer::class);
|
||||
$ecsConfig->rule(IncludeFixer::class);
|
||||
$ecsConfig->rule(MultilineWhitespaceBeforeSemicolonsFixer::class);
|
||||
$ecsConfig->rule(NoAliasFunctionsFixer::class);
|
||||
$ecsConfig->rule(NoAliasLanguageConstructCallFixer::class);
|
||||
$ecsConfig->rule(NoEmptyStatementFixer::class);
|
||||
$ecsConfig->rule(NoMixedEchoPrintFixer::class);
|
||||
$ecsConfig->rule(ObjectOperatorWithoutWhitespaceFixer::class);
|
||||
$ecsConfig->rule(ParamReturnAndVarTagMalformsFixer::class);
|
||||
$ecsConfig->rule(ReturnAssignmentFixer::class);
|
||||
$ecsConfig->ruleWithConfiguration(SingleLineCommentStyleFixer::class, [
|
||||
'comment_types' => ['hash'],
|
||||
]);
|
||||
$ecsConfig->rule(SingleQuoteFixer::class);
|
||||
$ecsConfig->ruleWithConfiguration(OrderedImportsFixer::class, [
|
||||
'imports_order' => ['class', 'function', 'const'],
|
||||
]);
|
||||
$ecsConfig->ruleWithConfiguration(ArraySyntaxFixer::class, [
|
||||
'syntax' => 'short',
|
||||
]);
|
||||
$ecsConfig->ruleWithConfiguration(NoExtraBlankLinesFixer::class, [
|
||||
'tokens' => [
|
||||
'curly_brace_block',
|
||||
'extra',
|
||||
'parenthesis_brace_block',
|
||||
'square_brace_block',
|
||||
'throw',
|
||||
'use',
|
||||
],
|
||||
]);
|
||||
$ecsConfig->skip([
|
||||
$services->set(EncodingFixer::class);
|
||||
$services->set(FullOpeningTagFixer::class);
|
||||
$services->set(BlankLineAfterNamespaceFixer::class);
|
||||
$services->set(BracesFixer::class);
|
||||
$services->set(ClassDefinitionFixer::class);
|
||||
$services->set(ConstantCaseFixer::class);
|
||||
$services->set(ElseifFixer::class);
|
||||
$services->set(FunctionDeclarationFixer::class);
|
||||
$services->set(IndentationTypeFixer::class);
|
||||
$services->set(LineEndingFixer::class);
|
||||
$services->set(LowercaseKeywordsFixer::class);
|
||||
$services->set(MethodArgumentSpaceFixer::class)
|
||||
->call('configure', [[
|
||||
'on_multiline' => 'ensure_fully_multiline',
|
||||
]]);
|
||||
$services->set(NoBreakCommentFixer::class);
|
||||
$services->set(NoClosingTagFixer::class);
|
||||
$services->set(NoSpacesAfterFunctionNameFixer::class);
|
||||
$services->set(NoSpacesInsideParenthesisFixer::class);
|
||||
$services->set(NoTrailingWhitespaceFixer::class);
|
||||
$services->set(NoTrailingWhitespaceInCommentFixer::class);
|
||||
$services->set(SingleBlankLineAtEofFixer::class);
|
||||
$services->set(SingleClassElementPerStatementFixer::class)
|
||||
->call('configure', [[
|
||||
'elements' => ['property'],
|
||||
]]);
|
||||
$services->set(SingleImportPerStatementFixer::class);
|
||||
$services->set(SingleLineAfterImportsFixer::class);
|
||||
// $services->set(SwitchCaseSemicolonToColonFixer::class); broken for php 8.0
|
||||
$services->set(SwitchCaseSpaceFixer::class);
|
||||
$services->set(VisibilityRequiredFixer::class);
|
||||
$services->set(LowercaseCastFixer::class);
|
||||
$services->set(ShortScalarCastFixer::class);
|
||||
$services->set(BlankLineAfterOpeningTagFixer::class);
|
||||
$services->set(NoLeadingImportSlashFixer::class);
|
||||
$services->set(OrderedImportsFixer::class)
|
||||
->call('configure', [[
|
||||
'importsOrder' => ['class', 'function', 'const'],
|
||||
]]);
|
||||
$services->set(DeclareEqualNormalizeFixer::class)
|
||||
->call('configure', [[
|
||||
'space' => 'none',
|
||||
]]);
|
||||
$services->set(NewWithBracesFixer::class);
|
||||
$services->set(BracesFixer::class)
|
||||
->call('configure', [[
|
||||
'allow_single_line_closure' => false,
|
||||
'position_after_functions_and_oop_constructs' => 'next',
|
||||
'position_after_control_structures' => 'same',
|
||||
'position_after_anonymous_constructs' => 'same',
|
||||
]]);
|
||||
$services->set(NoBlankLinesAfterClassOpeningFixer::class);
|
||||
$services->set(VisibilityRequiredFixer::class)
|
||||
->call('configure', [[
|
||||
'elements' => ['const', 'method', 'property'],
|
||||
]]);
|
||||
$services->set(BinaryOperatorSpacesFixer::class);
|
||||
$services->set(TernaryOperatorSpacesFixer::class);
|
||||
$services->set(UnaryOperatorSpacesFixer::class);
|
||||
$services->set(ReturnTypeDeclarationFixer::class);
|
||||
$services->set(NoTrailingWhitespaceFixer::class);
|
||||
$services->set(ConcatSpaceFixer::class)
|
||||
->call('configure', [[
|
||||
'spacing' => 'one',
|
||||
]]);
|
||||
$services->set(NoSinglelineWhitespaceBeforeSemicolonsFixer::class);
|
||||
$services->set(NoWhitespaceBeforeCommaInArrayFixer::class);
|
||||
$services->set(WhitespaceAfterCommaInArrayFixer::class);
|
||||
$services->set(DeclareStrictTypesFixer::class);
|
||||
$services->set(CompactNullableTypehintFixer::class);
|
||||
$services->set(BlankLineBeforeStatementFixer::class);
|
||||
$services->set(CombineConsecutiveUnsetsFixer::class);
|
||||
$services->set(ClassAttributesSeparationFixer::class);
|
||||
$services->set(MultilineWhitespaceBeforeSemicolonsFixer::class);
|
||||
$services->set(SingleLineCommentStyleFixer::class);
|
||||
$services->set(IncludeFixer::class);
|
||||
$services->set(ObjectOperatorWithoutWhitespaceFixer::class);
|
||||
$services->set(DisallowDirectMagicInvokeCallSniff::class);
|
||||
$services->set(ParamReturnAndVarTagMalformsFixer::class);
|
||||
$services->set(UnusedVariableSniff::class);
|
||||
$services->set(UselessVariableSniff::class);
|
||||
$services->set(UnusedInheritedVariablePassedToClosureSniff::class);
|
||||
$services->set(UselessSemicolonSniff::class);
|
||||
// $services->set(UselessParenthesesSniff::class); // broken for php 8.0
|
||||
$services->set(ArraySyntaxFixer::class)
|
||||
->call('configure', [[
|
||||
'syntax' => 'short',
|
||||
]]);
|
||||
$services->set(NoUnusedImportsFixer::class);
|
||||
$services->set(OrderedImportsFixer::class);
|
||||
$services->set(NoEmptyStatementFixer::class);
|
||||
$services->set(ProtectedToPrivateFixer::class);
|
||||
$services->set(NoUnneededControlParenthesesFixer::class);
|
||||
$services->set(NoUnneededCurlyBracesFixer::class);
|
||||
$services->set(ReturnAssignmentFixer::class);
|
||||
$services->set(RequireShortTernaryOperatorSniff::class);
|
||||
$services->set(RequireCombinedAssignmentOperatorSniff::class);
|
||||
$services->set(NoExtraBlankLinesFixer::class)
|
||||
->call('configure', [[
|
||||
'tokens' => [
|
||||
'curly_brace_block',
|
||||
'extra',
|
||||
'parenthesis_brace_block',
|
||||
'square_brace_block',
|
||||
'throw',
|
||||
'use',
|
||||
]
|
||||
]]);
|
||||
$parameters = $containerConfigurator->parameters();
|
||||
$parameters->set(Option::SKIP, [
|
||||
SingleImportPerStatementFixer::class => null,
|
||||
]);
|
||||
};
|
||||
|
|
16
.ecs/ecs.php
16
.ecs/ecs.php
|
@ -10,15 +10,13 @@
|
|||
*/
|
||||
|
||||
use PhpCsFixer\Fixer\Strict\DeclareStrictTypesFixer;
|
||||
use PhpCsFixer\Fixer\Strict\StrictComparisonFixer;
|
||||
use Symplify\EasyCodingStandard\Config\ECSConfig;
|
||||
use Symplify\EasyCodingStandard\ValueObject\Option;
|
||||
|
||||
return static function (ECSConfig $ecsConfig): void {
|
||||
$ecsConfig->import(__DIR__ . '/ecs-chevere.php');
|
||||
$ecsConfig->skip([
|
||||
DeclareStrictTypesFixer::class,
|
||||
StrictComparisonFixer::class,
|
||||
getcwd() . '/vendor/*',
|
||||
getcwd() . '/content/legacy/themes/Peafowl/',
|
||||
]);
|
||||
return static function (ECSConfig $containerConfigurator): void {
|
||||
$containerConfigurator->import(__DIR__ . '/ecs-chevere.php');
|
||||
$services = $containerConfigurator->services();
|
||||
$services->remove(DeclareStrictTypesFixer::class);
|
||||
$parameters = $containerConfigurator->parameters();
|
||||
$parameters->set(Option::SKIP, []);
|
||||
};
|
||||
|
|
BIN
.github/banner/chevereto-ultimate-remix.png
vendored
BIN
.github/banner/chevereto-ultimate-remix.png
vendored
Binary file not shown.
Before Width: | Height: | Size: 170 KiB |
BIN
.github/banner/chevereto-ultimate.png
vendored
Normal file
BIN
.github/banner/chevereto-ultimate.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 164 KiB |
BIN
.github/screen/user-listing-selected.webp
vendored
BIN
.github/screen/user-listing-selected.webp
vendored
Binary file not shown.
Before Width: | Height: | Size: 537 KiB |
49
.github/workflows/docker.yml
vendored
49
.github/workflows/docker.yml
vendored
|
@ -15,13 +15,10 @@ jobs:
|
|||
matrix:
|
||||
os: [ubuntu-latest]
|
||||
php: ["8.1"]
|
||||
env:
|
||||
tools: composer
|
||||
ini-values: default_charset='UTF-8'
|
||||
name: Build on PHP ${{ matrix.php }} ${{ matrix.os }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Get current branch
|
||||
|
@ -30,42 +27,27 @@ jobs:
|
|||
raw=$(git branch -r --contains ${{ github.ref }})
|
||||
echo "branch=${raw##*/}" >> $GITHUB_OUTPUT
|
||||
- run: echo ${{ steps.get-branch.outputs.branch }}
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: ${{ matrix.php }}
|
||||
ini-values: ${{ env.ini-values }}
|
||||
tools: ${{ env.tools }}
|
||||
env:
|
||||
fail-fast: true
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v5
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: |
|
||||
chevereto/chevereto
|
||||
${{ env.GHCR_SLUG }}
|
||||
tags: |
|
||||
type=ref,event=branch
|
||||
type=ref,event=pr
|
||||
type=semver,pattern={{version}}
|
||||
type=semver,pattern={{major}}.{{minor}}
|
||||
type=semver,pattern={{major}}
|
||||
labels: |
|
||||
org.opencontainers.image.title=Chevereto V4
|
||||
org.opencontainers.image.description=Ultimate image and video sharing software
|
||||
org.opencontainers.image.description=Ultimate image sharing software 🦄
|
||||
org.opencontainers.image.vendor=Chevereto
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
uses: docker/setup-qemu-action@v2
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
uses: docker/setup-buildx-action@v2
|
||||
- name: Login to GHCR
|
||||
uses: docker/login-action@v3
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
|
@ -84,7 +66,6 @@ jobs:
|
|||
rm -rf README.md chevereto.svg rector.php
|
||||
rm -rf app/tests app/phpunit*.xml
|
||||
rm -rf app/.editions app/bin/edition
|
||||
mkdir images/_assets
|
||||
mkdir importing/{parse-users,parse-albums,no-parse}
|
||||
mv .package ..
|
||||
ls -la ../.package
|
||||
|
@ -102,17 +83,19 @@ jobs:
|
|||
run: |
|
||||
cp -a ./. ../docker/chevereto/
|
||||
ls -la ../docker/chevereto
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v5
|
||||
- name: Build
|
||||
uses: docker/bake-action@v2
|
||||
with:
|
||||
context: ../docker
|
||||
platforms: linux/amd64,linux/arm64
|
||||
workdir: ../docker
|
||||
set: build.args.PHP=${{ matrix.php }}
|
||||
files: |
|
||||
./docker-bake.hcl
|
||||
${{ steps.meta.outputs.bake-file }}
|
||||
targets: build
|
||||
push: true
|
||||
provenance: false
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
- name: Check manifest
|
||||
run: docker buildx imagetools inspect ${{ env.GHCR_SLUG }}:${{ steps.meta.outputs.version }}
|
||||
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 }}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
name: Release Free edition
|
||||
name: Release
|
||||
|
||||
on:
|
||||
push:
|
||||
|
@ -15,6 +15,7 @@ jobs:
|
|||
env:
|
||||
tools: composer
|
||||
ini-values: default_charset='UTF-8'
|
||||
key: cache-1633608016315
|
||||
name: Release on PHP ${{ matrix.php-versions }} ${{ matrix.operating-system }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
|
@ -54,16 +55,23 @@ jobs:
|
|||
rm -rf README.md chevereto.svg rector.php
|
||||
rm -rf app/tests app/phpunit*.xml
|
||||
rm -rf app/.editions app/bin/edition
|
||||
mkdir images/_assets
|
||||
mkdir importing/{parse-users,parse-albums,no-parse}
|
||||
mv .package ..
|
||||
ls -la ../.package
|
||||
- name: Archive lite
|
||||
uses: thedoctor0/zip-release@master
|
||||
with:
|
||||
directory: "."
|
||||
type: "zip"
|
||||
filename: "${{ github.ref_name}}-lite.zip"
|
||||
exclusions: "/*app/vendor/*"
|
||||
- name: Archive release
|
||||
uses: thedoctor0/zip-release@master
|
||||
with:
|
||||
directory: "."
|
||||
type: "zip"
|
||||
filename: "${{ github.ref_name}}.zip"
|
||||
exclusions: "${{ github.ref_name}}-lite.zip"
|
||||
- name: Upload artifacts
|
||||
uses: ncipollo/release-action@v1
|
||||
with:
|
||||
|
@ -72,5 +80,6 @@ jobs:
|
|||
bodyFile: "../.package/${{ github.ref_name}}.txt"
|
||||
artifacts: >
|
||||
../.package/${{ github.ref_name}}.txt,
|
||||
${{ github.ref_name}}.zip
|
||||
${{ github.ref_name}}.zip,
|
||||
${{ github.ref_name}}-lite.zip
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,8 +1,6 @@
|
|||
.DS_Store
|
||||
/.env
|
||||
/.idea
|
||||
/app/.upgrading
|
||||
/app/CHEVERETO_LICENSE_KEY**
|
||||
/app/vendor
|
||||
/app/build
|
||||
/app/.phpunit.cache
|
||||
|
|
10
.htaccess
10
.htaccess
|
@ -20,12 +20,12 @@ Options -MultiViews
|
|||
#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
|
||||
# PHP front controller
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteRule . index.php [L]
|
||||
|
||||
# Single PHP-entrypoint
|
||||
RewriteCond %{THE_REQUEST} ^.+?\ [^?]+\.php[?\ ] [NC]
|
||||
RewriteRule \.php$ - [NC,L,F,R=404]
|
||||
</IfModule>
|
||||
# Single PHP-entrypoint
|
||||
RewriteCond %{THE_REQUEST} ^.+?\ [^?]+\.php[?\ ] [NC]
|
||||
RewriteRule \.php$ - [NC,L,F,R=404]
|
||||
</IfModule>
|
21
.package/4.0.7.txt
Normal file
21
.package/4.0.7.txt
Normal file
|
@ -0,0 +1,21 @@
|
|||
Chevereto 4.0.7 (2023-02-06)
|
||||
|
||||
- 🐞 Fixed bug in Anywhere Uploader
|
||||
- 🐞 Fixed bug in Bulk Importer
|
||||
- 🐞 Fixed bug in Installer
|
||||
- 🐞 Fixed bug with call to action buttons editing
|
||||
- 🐞 Fixed bug with CDN website setting
|
||||
- 🐞 Fixed bug with Disqus
|
||||
- 🐞 Fixed bug with endless scrolling a password protected album
|
||||
- 🐞 Fixed bug with listing viewer display
|
||||
- 🐞 Fixed bug with ModerateContent
|
||||
- 🐞 Fixed bug with Notifications
|
||||
- 🐞 Fixed bug with translation display
|
||||
- 🐞 Fixed bug with type error at JSON route
|
||||
- 🐞 Fixed bug with wrong semantic (Album) at uploader
|
||||
- 🐞 Fixed bug with wrong semantic at dashboard stats
|
||||
- 🐞 Fixed bug with wrong semantic on growl notifications
|
||||
- 💅 Added comments tab on images
|
||||
- 💅 Added user avatar as favicon image
|
||||
- 💅 Improved HTML 5 encoding
|
||||
- 💅 Moved Twitter account settings to External Services
|
|
@ -1,8 +0,0 @@
|
|||
Chevereto 4.2.4 (2024-12-05)
|
||||
|
||||
- Added Chevereto Lite edition
|
||||
- Added placeholders for comments code
|
||||
- Improved comment code page id
|
||||
- Improved ENV handling
|
||||
- Fixed bug affecting CLI runtime
|
||||
- Fixed bug affecting MariaDB 10.4 compatibility
|
|
@ -15,8 +15,6 @@ trusting our work. This software exists
|
|||
thanks to your ongoing support.
|
||||
|
||||
~
|
||||
Rodolfo Berrios A.
|
||||
https://rodolfoberrios.com/
|
||||
|
||||
GRACIAS!
|
||||
GRACIAS
|
||||
(Thank you!)
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
use function Chevereto\Legacy\getCheveretoEnv;
|
||||
use function Chevereto\Legacy\loaderHandler;
|
||||
|
||||
class CustomTinkerwellDriver extends TinkerwellDriver
|
||||
|
@ -26,7 +25,7 @@ class CustomTinkerwellDriver extends TinkerwellDriver
|
|||
require $projectPath . '/app/legacy/load/loader.php';
|
||||
include loaderHandler(
|
||||
_cookie: [],
|
||||
_env: getCheveretoEnv(),
|
||||
_env: $_ENV,
|
||||
_files: [],
|
||||
_get: [],
|
||||
_post: [],
|
||||
|
|
80
README.md
80
README.md
|
@ -1,71 +1,27 @@
|
|||
# Chevereto: Ultimate image and video sharing software
|
||||
# Chevereto: Ultimate image sharing software 🦄
|
||||
|
||||
> 🔔 [Subscribe](https://chv.to/newsletter) to don't miss any update regarding Chevereto.
|
||||
|
||||
<p align="center">
|
||||
<a href="https://chevereto.com"><img alt="Chevereto" src="chevereto.svg" width="80%"></a>
|
||||
<img alt="Chevereto" src="chevereto.svg" width="50%">
|
||||
</p>
|
||||
|
||||
[](https://chevereto.com)
|
||||

|
||||
|
||||
[](https://v4-docs.chevereto.com/)
|
||||
[](https://chevereto.com/community)
|
||||
[](https://demo.chevereto.com)
|
||||
[](https://chv.to/community)
|
||||
[](LICENSE)
|
||||
[](https://github.com/rodber/chevereto-free)
|
||||
[](https://awsmfoss.com/chevereto/)
|
||||
|
||||
> 🔔 [Subscribe](https://chevereto.com/go/newsletter) to don't miss any update regarding Chevereto.
|
||||
Chevereto enables to create an image sharing website on your own server. It's your hosting and your rules, say goodbye to closures and restrictions.
|
||||
|
||||
Chevereto is a robust, self-hosted media-sharing platform that prioritizes flexibility and control. It enables you to build and manage a media-sharing website on your own server, granting you complete autonomy over your hosting environment and policies. With Chevereto, you eliminate the risk of platform restrictions and shutdowns, ensuring your site operates entirely on your terms.
|
||||
|
||||
This is the repository for **Chevereto Free** edition. You can [compare editions](https://v4-docs.chevereto.com/introduction/editions/compare.html) to find the Chevereto edition that best suits your needs.
|
||||
|
||||

|
||||
|
||||
## Requirements
|
||||
|
||||
* A [webserver](https://v4-docs.chevereto.com/application/stack/web-server.html) (Apache recommended)
|
||||
* [PHP](https://v4-docs.chevereto.com/application/stack/php.html) 8.1+ with [extensions](https://v4-docs.chevereto.com/application/stack/php.html#extensions)
|
||||
* [MySQL Server](https://v4-docs.chevereto.com/application/stack/mysql-server.html) 8.0.1+ or MariaDB Server 10.2.2+
|
||||
|
||||
## Install
|
||||
|
||||
Chevereto runs anywhere, system requirements are minimal and it can run on any server.
|
||||
|
||||
Install Chevereto following our guides for:
|
||||
|
||||
* [Docker](https://github.com/chevereto/docker) (Multi-arch image compatible with `x86_64` and `arm64`)
|
||||
* [Pure Docker](https://v4-docs.chevereto.com/guides/docker/pure-docker)
|
||||
* [Chevereto Docker](https://v4-docs.chevereto.com/guides/docker/)
|
||||
* [VPS](https://v4-docs.chevereto.com/guides/server/vps) (DigitalOcean, Linode, Vultr, etc)
|
||||
* [cPanel](https://v4-docs.chevereto.com/guides/cpanel/)
|
||||
* [Plesk](https://v4-docs.chevereto.com/guides/plesk/)
|
||||
|
||||
Chevereto is also available at [DigitalOcean Marketplace](https://chevereto.com/go/digitalocean), [Vultr Marketplace](https://chevereto.com/go/vultr), [Installatron](https://installatron.com/chevereto), [Softaculous](https://www.softaculous.com/apps/galleries/Chevereto) and [SwiftWave](https://swiftwave.org/docs/dashboard/swiftwave_app_store/).
|
||||
|
||||
Review our [Installation docs](https://v4-docs.chevereto.com/application/installing/installation.html) for all alternatives.
|
||||
|
||||
## Updating
|
||||
|
||||
* Follow the [Updating guide](https://v4-docs.chevereto.com/application/installing/updating.html) to keep your Chevereto V4 system updated.
|
||||
|
||||
## Upgrading
|
||||
|
||||
For Chevereto V3 users:
|
||||
|
||||
* Follow the [Upgrading guide](https://v4-docs.chevereto.com/application/installing/upgrading.html) to upgrade to Chevereto V4.
|
||||
* Check the [Welcome Back](https://v4-docs.chevereto.com/introduction/changelog/welcome-back.html#from-chevereto-v3) reference.
|
||||
|
||||
For Chevereto V2 users:
|
||||
|
||||
* Follow the [Upgrading guide](https://v3-docs.chevereto.com/setup/server/upgrading.html) but skip directly to Chevereto V4.
|
||||

|
||||
|
||||
## Documentation
|
||||
|
||||
Chevereto [Documentation](https://v4-docs.chevereto.com) covers the system requirements, installation, configuration, and usage of the software. It also includes a [User manual](https://v4-user.chevereto.com/) and an [Admin manual](https://v4-admin.chevereto.com/).
|
||||
We provide several layers of documentation covering all aspects of our software. Chevereto documentation is Open Source and your contribution is highly appreciated.
|
||||
|
||||
## Contributing
|
||||
|
||||
Chevereto is an open-source project, and while contributions are welcomed, they are entirely voluntary. We appreciate any assistance aimed at enhancing the software and making it better for the community. Please note that any contributions to this repository will fall under the AGPLv3 license, ensuring that your work remains open-source and accessible to all.
|
||||
* Software [v4-docs.chevereto.com](https://v4-docs.chevereto.com)
|
||||
* Admin [v4-admin.chevereto.com](https://v4-admin.chevereto.com)
|
||||
* User [v4-user.chevereto.com](https://v4-user.chevereto.com)
|
||||
|
||||
## License
|
||||
|
||||
|
@ -77,16 +33,8 @@ This program is free software: you can redistribute it and/or modify it under th
|
|||
|
||||
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 [GNU Licenses](http://www.gnu.org/licenses/).
|
||||
You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.
|
||||
|
||||
### Commercial license
|
||||
|
||||
The commercial license allows you to use Chevereto in commercial products and applications without the obligations imposed by the AGPLv3. The commercial license ensures that your code remains proprietary and exclusive to you. For more details, please refer to the Chevereto Commercial License at [Chevereto License](https://chevereto.com/license).
|
||||
|
||||
### Compare licenses
|
||||
|
||||
The Chevereto Free edition is licensed under AGPLv3, allowing free use as long as you comply with its terms. If you modify and distribute the software, you are required to provide the source code to your users.
|
||||
|
||||
Both **Chevereto Lite** and **Chevereto Pro** are distributed under the proprietary **Chevereto License**, which permits use for commercial purposes.
|
||||
|
||||
*Note: Proprietary licensing does not mean closed source; the source code is accessible, but its use is governed by the specific terms of the Chevereto License.*
|
||||
The commercial license is designed to for you to use Chevereto in commercial products and applications, without the provisions of the AGPLv3. With the commercial license, your code is kept proprietary, to yourself. See the Chevereto Commercial License at [chevereto.com](https://chevereto.com/license)
|
||||
|
|
|
@ -13,20 +13,6 @@
|
|||
'base' => 'bg',
|
||||
'short_name' => 'BG (BG)',
|
||||
],
|
||||
'bs-BA' => [
|
||||
'code' => 'bs-BA',
|
||||
'dir' => 'ltr',
|
||||
'name' => 'Bosanski',
|
||||
'base' => 'bs',
|
||||
'short_name' => 'BS (BA)',
|
||||
],
|
||||
'ca' => [
|
||||
'code' => 'ca',
|
||||
'dir' => 'ltr',
|
||||
'name' => 'Сatalà',
|
||||
'base' => 'ca',
|
||||
'short_name' => 'CA',
|
||||
],
|
||||
'cs' => [
|
||||
'code' => 'cs',
|
||||
'dir' => 'ltr',
|
||||
|
@ -48,13 +34,6 @@
|
|||
'base' => 'de',
|
||||
'short_name' => 'DE',
|
||||
],
|
||||
'de-DE' => [
|
||||
'code' => 'de-DE',
|
||||
'dir' => 'ltr',
|
||||
'name' => 'Deutsch (Deutschland)',
|
||||
'base' => 'de',
|
||||
'short_name' => 'DE (DE)',
|
||||
],
|
||||
'el' => [
|
||||
'code' => 'el',
|
||||
'dir' => 'ltr',
|
||||
|
@ -195,13 +174,6 @@
|
|||
'base' => 'pt',
|
||||
'short_name' => 'PT (BR)',
|
||||
],
|
||||
'ro' => [
|
||||
'code' => 'ro',
|
||||
'dir' => 'ltr',
|
||||
'name' => 'Română',
|
||||
'base' => 'ro',
|
||||
'short_name' => 'RO',
|
||||
],
|
||||
'ru' => [
|
||||
'code' => 'ru',
|
||||
'dir' => 'ltr',
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,749 +0,0 @@
|
|||
<?php
|
||||
$translation_header = array (
|
||||
'Project-Id-Version' => 'VERSION',
|
||||
'POT-Creation-Date' => '2023-05-22 15:49+0000',
|
||||
'PO-Revision-Date' => '2023-05-22 15:49+0000',
|
||||
'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>',
|
||||
'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>',
|
||||
'Language' => 'bs_BA',
|
||||
'MIME-Version' => '1.0',
|
||||
'Content-Type' => 'text/plain; charset=UTF-8',
|
||||
'Content-Transfer-Encoding' => '8bit',
|
||||
'Plural-Forms' => 'nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);',
|
||||
);
|
||||
$translation_plural = array (
|
||||
'nplurals' => 3,
|
||||
'function' => '($n%10==1 && $n%100!=11 ? (0) : ($n%10>=2 && $n%10<=4 && ($n%100<10 || $n%100>=20) ? (1) : (2)))',
|
||||
);
|
||||
$translation_table = [
|
||||
"Request denied" => [
|
||||
0 => "Zahtjev odbijen",
|
||||
],
|
||||
"That page doesn't exist" => [
|
||||
0 => "Ova stranica ne postoji",
|
||||
],
|
||||
"Reset password" => [
|
||||
0 => "Promjeni lozinku",
|
||||
],
|
||||
"Resend account activation" => [
|
||||
0 => "Pošalji aktivaciju za korisnički račun ponovno",
|
||||
],
|
||||
"Add your email address" => [
|
||||
0 => "Dodaj E-mail adresu",
|
||||
],
|
||||
"Awaiting confirmation" => [
|
||||
0 => "Očekujem potvrdu",
|
||||
],
|
||||
"Email changed" => [
|
||||
0 => "E-mail adresa je promijenjena",
|
||||
],
|
||||
"Invalid Username/Email" => [
|
||||
0 => "Pogrešno ste upisali korisničko ime ili e-mail adresu",
|
||||
],
|
||||
"Account needs to be activated to use this feature" => [
|
||||
0 => "Profil treba da bude aktiviran za ove pogodnosti",
|
||||
],
|
||||
"Account already activated" => [
|
||||
0 => "Profil već aktiviran",
|
||||
],
|
||||
"Allow up to 15 minutes for the email. You can try again later." => [
|
||||
0 => "Dozvolite do 15 minuta za email. Možete pokušati ponovo kasnije",
|
||||
],
|
||||
"Reset your password at %s" => [
|
||||
0 => "Resetirajte svoju šifru na %s",
|
||||
],
|
||||
"Confirmation required at %s" => [
|
||||
0 => "Potrebna potvrda na %s",
|
||||
],
|
||||
"Welcome to %s" => [
|
||||
0 => "Dobrodošli na %s",
|
||||
],
|
||||
"Invalid password" => [
|
||||
0 => "Netačna šifra",
|
||||
],
|
||||
"Passwords don't match" => [
|
||||
0 => "Šifre se ne podudaraju",
|
||||
],
|
||||
"Invalid email" => [
|
||||
0 => "Netačan email",
|
||||
],
|
||||
"Email already being used" => [
|
||||
0 => "Email se već koristi",
|
||||
],
|
||||
"Check the errors in the form to continue." => [
|
||||
0 => "Provjerite greške u formi da nastavite",
|
||||
],
|
||||
"Embed codes" => [
|
||||
0 => "Zalijepiti kodove",
|
||||
],
|
||||
"Stats" => [
|
||||
0 => "Statistika",
|
||||
],
|
||||
"Settings" => [
|
||||
0 => "Postavke",
|
||||
],
|
||||
"Website" => [
|
||||
0 => "Web stranica",
|
||||
],
|
||||
"Image upload" => [
|
||||
0 => "Postavljanje slike",
|
||||
],
|
||||
"Theme" => [
|
||||
0 => "Tema",
|
||||
],
|
||||
"System" => [
|
||||
0 => "Sistem",
|
||||
],
|
||||
"External services" => [
|
||||
0 => "Eksterne usluge",
|
||||
],
|
||||
"Flood protection" => [
|
||||
0 => "Flood protekcija",
|
||||
],
|
||||
"Community" => [
|
||||
0 => "Zajednica",
|
||||
],
|
||||
"PHP version" => [
|
||||
0 => "PHP verzija",
|
||||
],
|
||||
"MySQL version" => [
|
||||
0 => "MySQL verzija",
|
||||
],
|
||||
"File uploads" => [
|
||||
0 => "Fajl postavljanja",
|
||||
],
|
||||
"Enabled" => [
|
||||
0 => "Dozvoljeno",
|
||||
],
|
||||
"Disabled" => [
|
||||
0 => "Onesposobljeno",
|
||||
],
|
||||
"Max. execution time" => [
|
||||
0 => "Max. vrijeme izvršenja",
|
||||
],
|
||||
"Memory limit" => [
|
||||
0 => "Limit memorije",
|
||||
],
|
||||
"search content" => [
|
||||
0 => "Petražite sastav",
|
||||
],
|
||||
"Explore" => [
|
||||
0 => "Istraži",
|
||||
],
|
||||
"Invalid website name" => [
|
||||
0 => "Netačno ime web stranice",
|
||||
],
|
||||
"Invalid language" => [
|
||||
0 => "Netačan jezik",
|
||||
],
|
||||
"Invalid timezone" => [
|
||||
0 => "Netačna vremenska zona",
|
||||
],
|
||||
"Invalid upload storage mode" => [
|
||||
0 => "Netačan način postavljanja skladišta",
|
||||
],
|
||||
"Invalid upload filenaming" => [
|
||||
0 => "Netačno postavljanje file imena",
|
||||
],
|
||||
"Invalid thumb width" => [
|
||||
0 => "Netačna thumb širina",
|
||||
],
|
||||
"Invalid thumb height" => [
|
||||
0 => "Pogrešna visina sličice",
|
||||
],
|
||||
"Invalid theme" => [
|
||||
0 => "Pogrešna tema",
|
||||
],
|
||||
"Invalid value" => [
|
||||
0 => "Netačna količina",
|
||||
],
|
||||
"Invalid email mode" => [
|
||||
0 => "Nevažeći način e-maila",
|
||||
],
|
||||
"Invalid SMTP port" => [
|
||||
0 => "Pogrešan SMTP port",
|
||||
],
|
||||
"Invalid upload image path" => [
|
||||
0 => "Pogrešna putanja slike za postavljanje",
|
||||
],
|
||||
"Max. allowed %s" => [
|
||||
0 => "Maksimalno dopušteno %s",
|
||||
],
|
||||
"Invalid SMTP server" => [
|
||||
0 => "Pogrešan SMTP server",
|
||||
],
|
||||
"Invalid SMTP username" => [
|
||||
0 => "Pogrešno SMTP korisničko ime",
|
||||
],
|
||||
"Dashboard" => [
|
||||
0 => "Kontrolna ploča",
|
||||
],
|
||||
"About" => [
|
||||
0 => "U vezi",
|
||||
],
|
||||
"Image ID" => [
|
||||
0 => "ID slike",
|
||||
],
|
||||
"Upload date" => [
|
||||
0 => "Datum postavljanja",
|
||||
],
|
||||
"Direct links" => [
|
||||
0 => "Direktni linkovi",
|
||||
],
|
||||
"Image link" => [
|
||||
0 => "Link slike",
|
||||
],
|
||||
"Image URL" => [
|
||||
0 => "URL slike",
|
||||
],
|
||||
"Thumbnail URL" => [
|
||||
0 => "URL sličice",
|
||||
],
|
||||
"Medium URL" => [
|
||||
0 => "Srednji URL",
|
||||
],
|
||||
"Login needed" => [
|
||||
0 => "Prijava potrebna",
|
||||
],
|
||||
"Invalid username" => [
|
||||
0 => "Netačno korisničko ime",
|
||||
],
|
||||
"Wrong Username/Email password combination" => [
|
||||
0 => "Pogrešan korisnički naziv, e-mail adresa ili kombinacija lozinke",
|
||||
],
|
||||
"Sign in" => [
|
||||
0 => "Prijava",
|
||||
],
|
||||
"Search" => [
|
||||
0 => "Pretraži",
|
||||
],
|
||||
"Account" => [
|
||||
0 => "Korisnički račun",
|
||||
],
|
||||
"Profile" => [
|
||||
0 => "Profil",
|
||||
],
|
||||
"Password" => [
|
||||
0 => "Lozinka",
|
||||
],
|
||||
"An email has been sent to %s with instructions to activate this email" => [
|
||||
0 => "Poslali smo e-mail korisniku %s sa instrukcijama kako aktivirati korisnički račun",
|
||||
],
|
||||
"Invalid name" => [
|
||||
0 => "Pogrešan naziv",
|
||||
],
|
||||
"Invalid website" => [
|
||||
0 => "Pogrešna web stranica",
|
||||
],
|
||||
"Wrong password" => [
|
||||
0 => "Pogrešna lozinka",
|
||||
],
|
||||
"Use a new password" => [
|
||||
0 => "Koristi novu lozinku",
|
||||
],
|
||||
"Password has been changed" => [
|
||||
0 => "Lozinka je uspiješno promijenjena",
|
||||
],
|
||||
"Wrong Username/Email values" => [
|
||||
0 => "Pogrešno korisničko ime ili e-mail",
|
||||
],
|
||||
"Settings for %s" => [
|
||||
0 => "Postavke za %s",
|
||||
],
|
||||
"Username" => [
|
||||
0 => "Korisnički naziv",
|
||||
],
|
||||
"Delete user" => [
|
||||
0 => "Izbrišite korisnika",
|
||||
],
|
||||
"User ID" => [
|
||||
0 => "ID korisnika",
|
||||
],
|
||||
"Register date" => [
|
||||
0 => "Datum registriranja",
|
||||
],
|
||||
"Create account" => [
|
||||
0 => "Napravi korisnički račun",
|
||||
],
|
||||
"Upload" => [
|
||||
0 => "Upload.",
|
||||
],
|
||||
"Albums" => [
|
||||
0 => "Albumi",
|
||||
],
|
||||
"Note: This content is private. Change privacy to \"public\" to share." => [
|
||||
0 => "Napomena: Ovaj sadržaj je privatan, promijeni privatnost albuma na javno ukoliko želiš da ostali korisnici mogu vidjeti ovaj sadržaj.",
|
||||
],
|
||||
"Public" => [
|
||||
0 => "Javno",
|
||||
],
|
||||
"Private upload" => [
|
||||
0 => "Privatno postavljanje",
|
||||
],
|
||||
"Most recent" => [
|
||||
0 => "Najnovije",
|
||||
],
|
||||
"Oldest" => [
|
||||
0 => "Najstarije",
|
||||
],
|
||||
"Most viewed" => [
|
||||
0 => "Najviše pregledano",
|
||||
],
|
||||
"Share" => [
|
||||
0 => "Podijeli",
|
||||
],
|
||||
"%s ago" => [
|
||||
0 => "%s prije",
|
||||
],
|
||||
"moments ago" => [
|
||||
0 => "trenutaka prije",
|
||||
],
|
||||
"Random" => [
|
||||
0 => "Slučajno",
|
||||
],
|
||||
"loading" => [
|
||||
0 => "učitavanje",
|
||||
],
|
||||
"My Profile" => [
|
||||
0 => "Moj profil",
|
||||
],
|
||||
"Sign out" => [
|
||||
0 => "Izlogirajte se",
|
||||
],
|
||||
"You must enter the album name." => [
|
||||
0 => "Ime albuma morate unijeti ovdje",
|
||||
],
|
||||
"Confirm" => [
|
||||
0 => "Potvrdi",
|
||||
],
|
||||
"An error occurred. Please try again later." => [
|
||||
0 => "Došlo je do greške. Molim vas pokušajte kasnije",
|
||||
],
|
||||
"Please select a valid image file type." => [
|
||||
0 => "Selektirajte važeći tip fajl slike",
|
||||
],
|
||||
"Please select a picture of at most %s size." => [
|
||||
0 => "Selektirajte sliku na najvećoj %s veličini",
|
||||
],
|
||||
"Profile image updated." => [
|
||||
0 => "Slika profila ažurirana ",
|
||||
],
|
||||
"Create album" => [
|
||||
0 => "Kreirajte album",
|
||||
],
|
||||
"Edit" => [
|
||||
0 => "Izmjenite",
|
||||
],
|
||||
"Delete" => [
|
||||
0 => "Izbrišite",
|
||||
],
|
||||
"%s's Albums" => [
|
||||
0 => "%s albumi",
|
||||
],
|
||||
"private" => [
|
||||
0 => "Privatno",
|
||||
],
|
||||
"Select" => [
|
||||
0 => "Odaberi",
|
||||
],
|
||||
"Unselect" => [
|
||||
0 => "Poništi",
|
||||
],
|
||||
"All the changes that you have made will be lost if you continue." => [
|
||||
0 => "Sve promjene koje ste upisali će biti izgubljene ukoliko nastavite.",
|
||||
],
|
||||
"Save changes" => [
|
||||
0 => "Spremi promjene",
|
||||
],
|
||||
"Submit" => [
|
||||
0 => "Potvrdi",
|
||||
],
|
||||
"Changes saved successfully." => [
|
||||
0 => "Promjene uspješno sačuvane",
|
||||
],
|
||||
"Go back to form" => [
|
||||
0 => "Vrati se nazad na formu",
|
||||
],
|
||||
"or" => [
|
||||
0 => "ili",
|
||||
],
|
||||
"continue anyway" => [
|
||||
0 => "svejedno nastavi",
|
||||
],
|
||||
"cancel" => [
|
||||
0 => "Poništi",
|
||||
],
|
||||
"Confirm action" => [
|
||||
0 => "Potvrdi akciju",
|
||||
],
|
||||
"Upload complete" => [
|
||||
0 => "Prijenos je završen",
|
||||
],
|
||||
"Uploading" => [
|
||||
0 => "Postavljanje",
|
||||
],
|
||||
"cancel remaining" => [
|
||||
0 => "otkaži preostale",
|
||||
],
|
||||
"learn more" => [
|
||||
0 => "saznaj više",
|
||||
],
|
||||
"Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information." => [
|
||||
0 => "Provjeri <a data-modal=\"simple\" data-target=\"failed-upload-result\">izvještaj grešaka</a> za više informacija.",
|
||||
],
|
||||
"optional" => [
|
||||
0 => "neobavezano",
|
||||
],
|
||||
"Add image URLs" => [
|
||||
0 => "Dodajte URL-ove slike",
|
||||
],
|
||||
"Add the image URLs here" => [
|
||||
0 => "Dodajte URL-ova slike ovdje",
|
||||
],
|
||||
"Error report" => [
|
||||
0 => "Prijavite grešku",
|
||||
],
|
||||
"Links" => [
|
||||
0 => "Linkovi",
|
||||
],
|
||||
"Direct" => [
|
||||
0 => "Direktno",
|
||||
],
|
||||
"HTML Codes" => [
|
||||
0 => "HTML kodovi",
|
||||
],
|
||||
"HTML medium linked" => [
|
||||
0 => "HTML djelimično povezan",
|
||||
],
|
||||
"HTML thumbnail linked" => [
|
||||
0 => "HTML thumbnail povezan",
|
||||
],
|
||||
"BBCodes" => [
|
||||
0 => "BBKodovi",
|
||||
],
|
||||
"BBCode thumbnail linked" => [
|
||||
0 => "BBKode thumbnail povezan",
|
||||
],
|
||||
"Viewer links" => [
|
||||
0 => "Linkovi gledalaca",
|
||||
],
|
||||
"Name" => [
|
||||
0 => "Naziv",
|
||||
],
|
||||
"Who can view this content" => [
|
||||
0 => "Ko može sve da gleda ovaj sadržaj",
|
||||
],
|
||||
"Private (just me)" => [
|
||||
0 => "Privatno (samo ja)",
|
||||
],
|
||||
"Message" => [
|
||||
0 => "Poruka",
|
||||
],
|
||||
"view more" => [
|
||||
0 => "Vidite više",
|
||||
],
|
||||
"Load more" => [
|
||||
0 => "Očitajte više",
|
||||
],
|
||||
"Select all" => [
|
||||
0 => "Selektujte sve",
|
||||
],
|
||||
"Clear selection" => [
|
||||
0 => "Jasan izbor",
|
||||
],
|
||||
"Sign in with another account" => [
|
||||
0 => "Prijavite se sa drugog profila.",
|
||||
],
|
||||
"There's nothing to show here." => [
|
||||
0 => "Ovdje se nema šta prikazati",
|
||||
],
|
||||
"Confirm deletion" => [
|
||||
0 => "Potvrdite brisanje ",
|
||||
],
|
||||
"Guest" => [
|
||||
0 => "Gost",
|
||||
],
|
||||
"You either don't have permission to access this page or the link has expired." => [
|
||||
0 => "Vi nemate dozvolu za pristup ovoj stranici ili veza je istekla.",
|
||||
],
|
||||
"Go to homepage" => [
|
||||
0 => "Idi na početnu",
|
||||
],
|
||||
"The requested page was not found." => [
|
||||
0 => "Tražena stranica nije pronađena.",
|
||||
],
|
||||
"The user has been deleted" => [
|
||||
0 => "Član je obrisan iz baze servisa",
|
||||
],
|
||||
"Your account is almost ready" => [
|
||||
0 => "Vaš korisnički račun je skoro spreman za korištenje",
|
||||
],
|
||||
"Resend activation" => [
|
||||
0 => "Pošalji aktivacijski e-mail ponovo",
|
||||
],
|
||||
"You have successfully changed your account email to %s" => [
|
||||
0 => "Uspješno ste promjenili email profila u %s.",
|
||||
],
|
||||
"Go to my profile" => [
|
||||
0 => "Idite na moj profil.",
|
||||
],
|
||||
"Your email address" => [
|
||||
0 => "Vaša E-mail adresa.",
|
||||
],
|
||||
"An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters." => [
|
||||
0 => "E-Mail sa instrukcijama kako promijenuti vašu lozinku je poslan na e-mail adresu sa kojom ste se registrovali. Ukoliko ne dobijete instrukcije, provjerite spam filtere ili folder junk/spam na vašem e-mail servisu.",
|
||||
],
|
||||
"Resend instructions" => [
|
||||
0 => "Pošalji upute ponovno",
|
||||
],
|
||||
"Username or Email address" => [
|
||||
0 => "Korisničko ime ili Email adresa.",
|
||||
],
|
||||
"Login now" => [
|
||||
0 => "Prijavite se sada",
|
||||
],
|
||||
"Enter your new password" => [
|
||||
0 => "Upiši novu lozinku",
|
||||
],
|
||||
"Re-enter your new password" => [
|
||||
0 => "Ponovno unesite novu lozinku",
|
||||
],
|
||||
"From name" => [
|
||||
0 => "Poslano od naziva",
|
||||
],
|
||||
"Sender name for emails sent to users." => [
|
||||
0 => "Ime pošiljatelja za e-mailove poslane članovima.",
|
||||
],
|
||||
"From email address" => [
|
||||
0 => "Sa email adrese",
|
||||
],
|
||||
"Sender email for emails sent to users." => [
|
||||
0 => "Email adresa pošiljatelja za e-mailove poslate članovima.",
|
||||
],
|
||||
"Incoming email address" => [
|
||||
0 => "Dolazeža E-Mail adresa",
|
||||
],
|
||||
"Recipient for contact form and system alerts." => [
|
||||
0 => "Primatelj za kontakt forme i sustav upozorenja.",
|
||||
],
|
||||
"Email mode" => [
|
||||
0 => "E-Mail mod",
|
||||
],
|
||||
"SMTP server and port" => [
|
||||
0 => "SMTP server i port",
|
||||
],
|
||||
"SMTP username" => [
|
||||
0 => "SMTP korisničko ime",
|
||||
],
|
||||
"SMTP password" => [
|
||||
0 => "SMTP lozinka",
|
||||
],
|
||||
"SMTP security" => [
|
||||
0 => "SMTP sigurnost",
|
||||
],
|
||||
"Unsecured" => [
|
||||
0 => "Nesigurno",
|
||||
],
|
||||
"Comment code" => [
|
||||
0 => "Kod komentara.",
|
||||
],
|
||||
"Disqus, Facebook or anything you want. It will be used in image view." => [
|
||||
0 => "Raspravite, Facebook ili šta želite. Bit će korišteno u pogledu slike.",
|
||||
],
|
||||
"Analytics code" => [
|
||||
0 => "Analitički kod.",
|
||||
],
|
||||
"Google Analytics or anything you want. It will be added to the theme footer." => [
|
||||
0 => "Google analistik ili bilo što šta želite. Bit će dodato u temu footera.",
|
||||
],
|
||||
"Disk used" => [
|
||||
0 => "Iskorišćeno memorije",
|
||||
],
|
||||
"Notify to email" => [
|
||||
0 => "Obavijesti na e-mail",
|
||||
],
|
||||
"Minute limit" => [
|
||||
0 => "Minute granica",
|
||||
],
|
||||
"Hourly limit" => [
|
||||
0 => "Satni limit",
|
||||
],
|
||||
"Daily limit" => [
|
||||
0 => "Dnevni limit",
|
||||
],
|
||||
"Weekly limit" => [
|
||||
0 => "Sedmični limit",
|
||||
],
|
||||
"Monthly limit" => [
|
||||
0 => "Mjesečni limit",
|
||||
],
|
||||
"Guest uploads" => [
|
||||
0 => "Postavljanje slika za goste",
|
||||
],
|
||||
"Enable this if you want to allow non registered users to upload." => [
|
||||
0 => "Omogućite ovo ako želite da gosti uploaduju slike.",
|
||||
],
|
||||
"Image path" => [
|
||||
0 => "Putanja slike na serveru",
|
||||
],
|
||||
"Relative to Chevereto root" => [
|
||||
0 => "Gdje želite sačuvati slike? Po zadanim postavkama ostavite putanju \"images\".",
|
||||
],
|
||||
"Storage mode" => [
|
||||
0 => "Način za pohranu",
|
||||
],
|
||||
"Datefolders" => [
|
||||
0 => "Vremenske mape",
|
||||
],
|
||||
"Datefolders creates %s structure" => [
|
||||
0 => "Vremenski nazivi foldera kreiraju strukturu %s",
|
||||
],
|
||||
"File naming method" => [
|
||||
0 => "Način imenovanja datoteka",
|
||||
],
|
||||
"Original" => [
|
||||
0 => "Originalno",
|
||||
],
|
||||
"Thumb size" => [
|
||||
0 => "Veličina ikone",
|
||||
],
|
||||
"Thumbnails will be fixed to this size." => [
|
||||
0 => "Veličina ikone će biti fiksna za ovu veličinu",
|
||||
],
|
||||
"Default language" => [
|
||||
0 => "Zadani jezik",
|
||||
],
|
||||
"Default base language to use." => [
|
||||
0 => "Ovaj jezik će biti prikazan svim posjetiocima kao zadani jezik.",
|
||||
],
|
||||
"Auto language" => [
|
||||
0 => "Automatski jezik",
|
||||
],
|
||||
"How many items should be displayed per page listing." => [
|
||||
0 => "Koliko sadržaja treba da bude prikazano po stranici",
|
||||
],
|
||||
"Crypt salt" => [
|
||||
0 => "Enkripcija",
|
||||
],
|
||||
"This is the salt used to convert numeric ID to alphanumeric. It was generated on install." => [
|
||||
0 => "Ovo se koristi da konvertuje numerički ID u alfanumerički. Generisan je pri instalaciji.",
|
||||
],
|
||||
"Website name" => [
|
||||
0 => "Naziv web stranice",
|
||||
],
|
||||
"Website doctitle" => [
|
||||
0 => "Podnaslov web stranice",
|
||||
],
|
||||
"Website description" => [
|
||||
0 => "Opis web stranice",
|
||||
],
|
||||
"Default time zone" => [
|
||||
0 => "Zadana vremenska zona",
|
||||
],
|
||||
"Select region" => [
|
||||
0 => "Izaberi regiju",
|
||||
],
|
||||
"Website mode" => [
|
||||
0 => "Način rada web stranice",
|
||||
],
|
||||
"You can switch the website mode anytime." => [
|
||||
0 => "Način rada web stranice možete prebacivati u bilo kom trenutku.",
|
||||
],
|
||||
"Role" => [
|
||||
0 => "Uloga",
|
||||
],
|
||||
"Email address" => [
|
||||
0 => "E-mail adresa.",
|
||||
],
|
||||
"Added to %s" => [
|
||||
0 => "Dodato do %s",
|
||||
],
|
||||
"Uploaded %s" => [
|
||||
0 => "Postaviti %s",
|
||||
],
|
||||
"Logged out" => [
|
||||
0 => "Odjavi se",
|
||||
],
|
||||
"You have been logged off %s. Hope to see you soon." => [
|
||||
0 => "Odjavljeni ste %s. Nadam se da ćemo uskoro ponovno vas vidjeti.",
|
||||
],
|
||||
"Valid" => [
|
||||
0 => "Vrijedi",
|
||||
],
|
||||
"Banned" => [
|
||||
0 => "Zabranjen/Banovan",
|
||||
],
|
||||
"Awaiting email" => [
|
||||
0 => "Očekujem e-mail",
|
||||
],
|
||||
"Language" => [
|
||||
0 => "Jezik",
|
||||
],
|
||||
"Timezone" => [
|
||||
0 => "Vremenska zona",
|
||||
],
|
||||
"User has no connections." => [
|
||||
0 => "Korisnik nema veze.",
|
||||
],
|
||||
"Do you really want to disconnect %s from this account?" => [
|
||||
0 => "Da li stvarno želite odspojiti %s s tog korisničkog računa?",
|
||||
],
|
||||
"This account is connected to %s" => [
|
||||
0 => "Ovaj korisnički račun je spojen na %s",
|
||||
],
|
||||
"Do you really want to disconnect your %s account?" => [
|
||||
0 => "Da li stvarno želite odspojiti vaš %s korisnički račun?",
|
||||
],
|
||||
"You will be logged out and you won't be able to login to your account using this %s account." => [
|
||||
0 => "Bit ćete odjavljeni i nećete moći se prijaviti na vaš korisnički račun korištenjem ovog %s računa.",
|
||||
],
|
||||
"Current password" => [
|
||||
0 => "Trenutna lozinka",
|
||||
],
|
||||
"Enter your current password" => [
|
||||
0 => "Unesite trenutnu lozinku",
|
||||
],
|
||||
"New password" => [
|
||||
0 => "Nova lozinka",
|
||||
],
|
||||
"Confirm new password" => [
|
||||
0 => "Potvrdi novu lozinku",
|
||||
],
|
||||
"This user doesn't have a password. Add one using this form." => [
|
||||
0 => "Ovaj korisnik nema lozinku. Dodajte ju pomoću ovog obrasca.",
|
||||
],
|
||||
"Enter your password" => [
|
||||
0 => "Upiši svoju lozinku",
|
||||
],
|
||||
"Confirm password" => [
|
||||
0 => "Potvrdi lozinku",
|
||||
],
|
||||
"Re-enter your password" => [
|
||||
0 => "Ponovno upišite svoju lozinku",
|
||||
],
|
||||
"This is your real name, not your username." => [
|
||||
0 => "To je vaše pravo ime, a ne vaše korisničko ime.",
|
||||
],
|
||||
"Upload profile background" => [
|
||||
0 => "Postavi pozadinu profila",
|
||||
],
|
||||
"Change background" => [
|
||||
0 => "Promjenite pozadinu",
|
||||
],
|
||||
"Upload new image" => [
|
||||
0 => "Postavite novu sliku",
|
||||
],
|
||||
"Delete background" => [
|
||||
0 => "Izbrišite pozadinu",
|
||||
],
|
||||
"DMCA complaint" => [
|
||||
0 => "DMCA žalba",
|
||||
],
|
||||
"Invalid message" => [
|
||||
0 => "Pogrešna poruka",
|
||||
],
|
||||
"Invalid subject" => [
|
||||
0 => "Pogrešan subjekt",
|
||||
],
|
||||
];
|
||||
?>
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,23 +1,22 @@
|
|||
<?php
|
||||
$translation_header = array (
|
||||
'Project-Id-Version' => 'Chevereto V4',
|
||||
'POT-Creation-Date' => '2024-04-26 14:18-0400',
|
||||
'PO-Revision-Date' => '2024-04-26 14:18-0400',
|
||||
'Project-Id-Version' => 'Chevereto V3',
|
||||
'POT-Creation-Date' => '2021-07-05 14:26-0400',
|
||||
'PO-Revision-Date' => '2021-07-05 14:26-0400',
|
||||
'Last-Translator' => 'Rodolfo Berríos <inbox@rodolfoberrios.com>',
|
||||
'Language-Team' => 'https://chevereto.com',
|
||||
'Language-Team' => '',
|
||||
'Language' => 'en_US',
|
||||
'MIME-Version' => '1.0',
|
||||
'Content-Type' => 'text/plain; charset=UTF-8',
|
||||
'Content-Transfer-Encoding' => '8bit',
|
||||
'X-Generator' => 'Poedit 3.0',
|
||||
'X-Poedit-Basepath' => '../../..',
|
||||
'Plural-Forms' => 'nplurals=2; plural=(n != 1);',
|
||||
'X-Generator' => 'Poedit 3.4.2',
|
||||
'X-Poedit-Basepath' => '../..',
|
||||
'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/tests',
|
||||
'X-Poedit-SearchPathExcluded-1' => 'app/vendor',
|
||||
'X-Poedit-SearchPathExcluded-2' => 'app/.cache',
|
||||
'X-Poedit-SearchPathExcluded-0' => 'app/vendor',
|
||||
'X-Poedit-SearchPathExcluded-1' => 'app/content/languages/cache',
|
||||
);
|
||||
$translation_plural = array (
|
||||
'nplurals' => 2,
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,38 +0,0 @@
|
|||
<?php
|
||||
$translation_header = array (
|
||||
'Project-Id-Version' => 'VERSION',
|
||||
'POT-Creation-Date' => '2023-05-22 15:49+0000',
|
||||
'PO-Revision-Date' => '2023-05-22 15:49+0000',
|
||||
'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>',
|
||||
'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>',
|
||||
'Language' => 'ro',
|
||||
'MIME-Version' => '1.0',
|
||||
'Content-Type' => 'text/plain; charset=UTF-8',
|
||||
'Content-Transfer-Encoding' => '8bit',
|
||||
'Plural-Forms' => 'nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2);',
|
||||
);
|
||||
$translation_plural = array (
|
||||
'nplurals' => 3,
|
||||
'function' => '($n==1 ? (0) : (($n==0 || ($n%100 > 0 && $n%100 < 20)) ? (1) : (2)))',
|
||||
);
|
||||
$translation_table = [
|
||||
"Invalid password" => [
|
||||
0 => "Parola greșită",
|
||||
],
|
||||
"Invalid email" => [
|
||||
0 => "E-mail greșit",
|
||||
],
|
||||
"Invalid username" => [
|
||||
0 => "User greșit",
|
||||
],
|
||||
"Private profile" => [
|
||||
0 => "Profil privat",
|
||||
],
|
||||
"From email address" => [
|
||||
0 => "De la adresa de email",
|
||||
],
|
||||
"Sender email for emails sent to users." => [
|
||||
0 => "Trimite email către toţi userii",
|
||||
],
|
||||
];
|
||||
?>
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -9,7 +9,6 @@
|
|||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
use function Chevereto\Legacy\getCheveretoEnv;
|
||||
use function Chevereto\Legacy\loaderHandler;
|
||||
|
||||
define('ACCESS', 'web');
|
||||
|
@ -17,7 +16,7 @@ define('REPL', true);
|
|||
require __DIR__ . '/legacy/load/loader.php';
|
||||
include loaderHandler(
|
||||
_cookie: [],
|
||||
_env: getCheveretoEnv(),
|
||||
_env: $_ENV,
|
||||
_files: [],
|
||||
_get: [],
|
||||
_post: [],
|
||||
|
@ -29,7 +28,8 @@ include loaderHandler(
|
|||
);
|
||||
|
||||
return [
|
||||
'startupMessage' => <<<EOM
|
||||
'startupMessage' =>
|
||||
<<<EOM
|
||||
__ __
|
||||
____/ / ___ _ _____ _______ / /____
|
||||
/ __/ _ \/ -_) |/ / -_) __/ -_) __/ _ \\
|
||||
|
|
|
@ -16,40 +16,35 @@
|
|||
"composer/package-versions-deprecated": true
|
||||
},
|
||||
"platform": {
|
||||
"php": "8.1.28"
|
||||
"php": "8.0.26"
|
||||
}
|
||||
},
|
||||
"require": {
|
||||
"php": "^8.1",
|
||||
"php": "^8.0",
|
||||
"intervention/image": "^2.6",
|
||||
"jeroendesloovere/xmp-metadata-extractor": "^2.0",
|
||||
"league/flysystem": "^2.0",
|
||||
"jenssegers/imagehash": "^0.5.0",
|
||||
"guzzlehttp/psr7": "^1.7||^2",
|
||||
"guzzlehttp/psr7": "^1.7",
|
||||
"phpmailer/phpmailer": "^6.5",
|
||||
"psr/cache": "^1",
|
||||
"psr/log": "^1",
|
||||
"phpseclib/phpseclib": "^3.0.37",
|
||||
"phpseclib/phpseclib": "^3.0",
|
||||
"mobiledetect/mobiledetectlib": "^2.8",
|
||||
"mlocati/ip-lib": "^1.17",
|
||||
"composer/ca-bundle": "^1.2",
|
||||
"chevere/throwable-handler": "^1.0.2",
|
||||
"xrdebug/php": "^2.0.2",
|
||||
"xrdebug/xrdebug": "^2.0.2",
|
||||
"chevere/workflow": "^0.9.0",
|
||||
"chevere/chevere": "^2.0",
|
||||
"chevere/throwable-handler": "^0.9",
|
||||
"chevere/xr": "^0.7",
|
||||
"chevere/xr-server": "^0.7",
|
||||
"chevere/workflow": "^0.7.0",
|
||||
"pragmarx/google2fa": "^8.0",
|
||||
"pragmarx/google2fa-qrcode": "^3.0",
|
||||
"chevere/cache": "^0.4",
|
||||
"phpseclib/bcmath_compat": "^2.0",
|
||||
"chillerlan/php-qrcode": "^4.3",
|
||||
"firebase/php-jwt": "^6.3",
|
||||
"lychee-org/php-exif": "^0.7.14",
|
||||
"p3k/emoji-detector": "^1.0",
|
||||
"php-ds/php-ds": "^1.4",
|
||||
"php-ffmpeg/php-ffmpeg": "^1.2",
|
||||
"psy/psysh": "^0.11.8",
|
||||
"chevere/cache": "^0.5.0",
|
||||
"chevere/var-dump": "^2.0.x-dev",
|
||||
"chevere/var-support": "^1.0"
|
||||
"php-ds/php-ds": "^1.4"
|
||||
},
|
||||
"autoload": {
|
||||
"files": [
|
||||
|
@ -74,8 +69,10 @@
|
|||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^9.2",
|
||||
"symplify/easy-coding-standard": "^12.2",
|
||||
"phpstan/phpstan": "^1.11"
|
||||
"symplify/easy-coding-standard": "^10.3",
|
||||
"phpstan/phpstan": "^1.4",
|
||||
"rector/rector": "^0.12.15",
|
||||
"psy/psysh": "^0.11.8"
|
||||
},
|
||||
"prefer-stable": true,
|
||||
"scripts": {
|
||||
|
|
4211
app/composer.lock
generated
4211
app/composer.lock
generated
File diff suppressed because it is too large
Load diff
|
@ -9,6 +9,7 @@
|
|||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
use Chevereto\Config\AssetConfig;
|
||||
use Chevereto\Config\Config;
|
||||
use Chevereto\Config\EnabledConfig;
|
||||
use Chevereto\Config\HostConfig;
|
||||
|
@ -17,6 +18,19 @@ use Chevereto\Config\SystemConfig;
|
|||
use function Chevereto\Vars\env;
|
||||
|
||||
new Config(
|
||||
asset: new AssetConfig(
|
||||
accountId: env()['CHEVERETO_ASSET_STORAGE_ACCOUNT_ID'],
|
||||
accountName: env()['CHEVERETO_ASSET_STORAGE_ACCOUNT_NAME'],
|
||||
bucket: env()['CHEVERETO_ASSET_STORAGE_BUCKET'],
|
||||
key: env()['CHEVERETO_ASSET_STORAGE_KEY'],
|
||||
name: env()['CHEVERETO_ASSET_STORAGE_NAME'],
|
||||
region: env()['CHEVERETO_ASSET_STORAGE_REGION'],
|
||||
secret: env()['CHEVERETO_ASSET_STORAGE_SECRET'],
|
||||
server: env()['CHEVERETO_ASSET_STORAGE_SERVER'],
|
||||
service: env()['CHEVERETO_ASSET_STORAGE_SERVICE'],
|
||||
type: env()['CHEVERETO_ASSET_STORAGE_TYPE'],
|
||||
url: env()['CHEVERETO_ASSET_STORAGE_URL'],
|
||||
),
|
||||
enabled: new EnabledConfig(
|
||||
phpPages: (bool) env()['CHEVERETO_ENABLE_PHP_PAGES'],
|
||||
updateCli: (bool) env()['CHEVERETO_ENABLE_UPDATE_CLI'],
|
||||
|
|
|
@ -10,97 +10,81 @@
|
|||
*/
|
||||
|
||||
return [
|
||||
'CHEVERETO_BINARY_FFMPEG' => 'ffmpeg',
|
||||
'CHEVERETO_BINARY_FFPROBE' => 'ffprobe',
|
||||
'CHEVERETO_CONTEXT' => '',
|
||||
'CHEVERETO_DB_DRIVER' => 'mysql',
|
||||
'CHEVERETO_DB_HOST' => 'localhost',
|
||||
'CHEVERETO_DB_NAME' => '',
|
||||
'CHEVERETO_DB_PASS' => '',
|
||||
'CHEVERETO_DB_PDO_ATTRS' => '[]',
|
||||
'CHEVERETO_DB_PORT' => '3306',
|
||||
'CHEVERETO_DB_TABLE_PREFIX' => 'chv_',
|
||||
'CHEVERETO_DB_USER' => '',
|
||||
'CHEVERETO_DEBUG_LEVEL' => '1',
|
||||
'CHEVERETO_EDITION' => 'pro',
|
||||
'CHEVERETO_ENABLE_API_GUEST' => '1',
|
||||
'CHEVERETO_ENABLE_BANNERS' => '1',
|
||||
'CHEVERETO_ENABLE_BULK_IMPORTER' => '1',
|
||||
'CHEVERETO_ENABLE_CAPTCHA' => '1',
|
||||
'CHEVERETO_ENABLE_CDN' => '1',
|
||||
'CHEVERETO_ENABLE_CONSENT_SCREEN' => '1',
|
||||
'CHEVERETO_ENABLE_COOKIE_COMPLIANCE' => '1',
|
||||
'CHEVERETO_ENABLE_DEBUG' => '1',
|
||||
'CHEVERETO_ENABLE_EXPOSE_PAID_FEATURES' => '1',
|
||||
'CHEVERETO_ENABLE_EXTERNAL_SERVICES' => '1',
|
||||
'CHEVERETO_ENABLE_EXTERNAL_STORAGE_PROVIDERS' => '1',
|
||||
'CHEVERETO_ENABLE_FAVICON' => '1',
|
||||
'CHEVERETO_ENABLE_FOLLOWERS' => '1',
|
||||
'CHEVERETO_ENABLE_FORCE_POWERED_BY_FOOTER' => '0',
|
||||
'CHEVERETO_ENABLE_HTACCESS_CHECK' => '0',
|
||||
'CHEVERETO_ENABLE_IP_BANS' => '1',
|
||||
'CHEVERETO_ENABLE_LANGUAGE_CHOOSER' => '1',
|
||||
'CHEVERETO_ENABLE_LIKES' => '1',
|
||||
'CHEVERETO_ENABLE_LOCAL_STORAGE' => '1',
|
||||
'CHEVERETO_ENABLE_LOGIN_PROVIDERS' => '1',
|
||||
'CHEVERETO_ENABLE_LOGO_CUSTOM' => '1',
|
||||
'CHEVERETO_ENABLE_MODERATION' => '1',
|
||||
'CHEVERETO_ENABLE_NEWS_CHECK' => '1',
|
||||
'CHEVERETO_ENABLE_NOTIFICATIONS' => '1',
|
||||
'CHEVERETO_ENABLE_PAGES' => '1',
|
||||
'CHEVERETO_ENABLE_PHP_PAGES' => '0',
|
||||
'CHEVERETO_ENABLE_POWERED_BY_SETTING' => '1',
|
||||
'CHEVERETO_ENABLE_PUP_CUSTOM_URL' => '1',
|
||||
'CHEVERETO_ENABLE_ROUTING' => '1',
|
||||
'CHEVERETO_ENABLE_SEO_ALBUM_URL' => '1',
|
||||
'CHEVERETO_ENABLE_SEO_IMAGE_URL' => '1',
|
||||
'CHEVERETO_ENABLE_SERVICE_AKISMET' => '1',
|
||||
'CHEVERETO_ENABLE_SERVICE_MODERATECONTENT' => '1',
|
||||
'CHEVERETO_ENABLE_SERVICE_PROJECTARACHNID' => '1',
|
||||
'CHEVERETO_ENABLE_SERVICE_STOPFORUMSPAM' => '1',
|
||||
'CHEVERETO_ENABLE_STOPWORDS' => '1',
|
||||
'CHEVERETO_ENABLE_UPDATE_CHECK' => '1',
|
||||
'CHEVERETO_ENABLE_UPDATE_CLI' => '1',
|
||||
'CHEVERETO_ENABLE_UPDATE_HTTP' => '1',
|
||||
'CHEVERETO_ENABLE_UPLOAD_FLOOD_PROTECTION' => '1',
|
||||
'CHEVERETO_ENABLE_UPLOAD_PLUGIN' => '1',
|
||||
'CHEVERETO_ENABLE_UPLOAD_URL' => '1',
|
||||
'CHEVERETO_ENABLE_UPLOAD_WATERMARK' => '1',
|
||||
'CHEVERETO_ENABLE_USERS' => '1',
|
||||
'CHEVERETO_ENABLE_XRDEBUG' => '0',
|
||||
'CHEVERETO_ENCRYPTION_KEY' => '',
|
||||
'CHEVERETO_ERROR_LOG_CLI' => '',
|
||||
'CHEVERETO_ERROR_LOG_CRON' => '',
|
||||
'CHEVERETO_ERROR_LOG' => 'php://stderr',
|
||||
'CHEVERETO_HEADER_CLIENT_IP' => '',
|
||||
'CHEVERETO_HOSTNAME_PATH' => '/',
|
||||
'CHEVERETO_HOSTNAME' => 'localhost',
|
||||
'CHEVERETO_HTTPS' => '1',
|
||||
'CHEVERETO_IMAGE_FORMATS_AVAILABLE' => '["AVIF","JPEG","PNG","BMP","GIF","WEBP"]',
|
||||
'CHEVERETO_IMAGE_LIBRARY' => 'imagick',
|
||||
'CHEVERETO_MAX_ADMINS' => '0',
|
||||
'CHEVERETO_MAX_ALBUMS' => '0',
|
||||
'CHEVERETO_MAX_CATEGORIES' => '0',
|
||||
'CHEVERETO_MAX_EXECUTION_TIME_SECONDS' => '30',
|
||||
'CHEVERETO_MAX_FILES' => '0',
|
||||
'CHEVERETO_MAX_LOGIN_PROVIDERS' => '0',
|
||||
'CHEVERETO_MAX_MANAGERS' => '0',
|
||||
'CHEVERETO_MAX_MEMORY_SIZE' => '512M',
|
||||
'CHEVERETO_MAX_PAGES' => '0',
|
||||
'CHEVERETO_MAX_POST_SIZE' => '100M',
|
||||
'CHEVERETO_MAX_STORAGES' => '0',
|
||||
'CHEVERETO_MAX_TAGS_PER_FILE' => '0',
|
||||
'CHEVERETO_MAX_TAGS_PER_LISTING' => '0',
|
||||
'CHEVERETO_MAX_TAGS' => '0',
|
||||
'CHEVERETO_MAX_UPLOAD_SIZE' => '100M',
|
||||
'CHEVERETO_MAX_USER_ALBUMS_LIST' => '500',
|
||||
'CHEVERETO_MAX_USERS' => '0',
|
||||
'CHEVERETO_MIN_STORAGES_ACTIVE' => '0',
|
||||
'CHEVERETO_SERVICING' => 'server',
|
||||
'CHEVERETO_SESSION_SAVE_HANDLER' => 'files',
|
||||
'CHEVERETO_SESSION_SAVE_PATH' => '/tmp',
|
||||
'CHEVERETO_XRDEBUG_HOST' => 'localhost',
|
||||
'CHEVERETO_XRDEBUG_HTTPS' => '0',
|
||||
'CHEVERETO_XRDEBUG_KEY' => '',
|
||||
'CHEVERETO_XRDEBUG_PORT' => '27420',
|
||||
'CHEVERETO_ASSET_STORAGE_ACCOUNT_ID' => '',
|
||||
'CHEVERETO_ASSET_STORAGE_ACCOUNT_NAME' => '',
|
||||
'CHEVERETO_ASSET_STORAGE_BUCKET' => '',
|
||||
'CHEVERETO_ASSET_STORAGE_KEY' => '',
|
||||
'CHEVERETO_ASSET_STORAGE_NAME' => 'assets',
|
||||
'CHEVERETO_ASSET_STORAGE_REGION' => '',
|
||||
'CHEVERETO_ASSET_STORAGE_SECRET' => '',
|
||||
'CHEVERETO_ASSET_STORAGE_SERVER' => '',
|
||||
'CHEVERETO_ASSET_STORAGE_SERVICE' => '',
|
||||
'CHEVERETO_ASSET_STORAGE_TYPE' => 'local',
|
||||
'CHEVERETO_ASSET_STORAGE_URL' => '',
|
||||
'CHEVERETO_CONTEXT' => '',
|
||||
'CHEVERETO_DB_DRIVER' => 'mysql',
|
||||
'CHEVERETO_DB_HOST' => 'localhost',
|
||||
'CHEVERETO_DB_NAME' => '',
|
||||
'CHEVERETO_DB_PASS' => '',
|
||||
'CHEVERETO_DB_PDO_ATTRS' => '[]',
|
||||
'CHEVERETO_DB_PORT' => '3306',
|
||||
'CHEVERETO_DB_TABLE_PREFIX' => 'chv_',
|
||||
'CHEVERETO_DB_USER' => '',
|
||||
'CHEVERETO_DEBUG_LEVEL' => '1',
|
||||
'CHEVERETO_ENABLE_API_GUEST' => '1',
|
||||
'CHEVERETO_ENABLE_BANNERS' => '1',
|
||||
'CHEVERETO_ENABLE_BULK_IMPORTER' => '1',
|
||||
'CHEVERETO_ENABLE_CAPTCHA' => '1',
|
||||
'CHEVERETO_ENABLE_CDN' => '1',
|
||||
'CHEVERETO_ENABLE_CHECK_UPDATES' => '1',
|
||||
'CHEVERETO_ENABLE_CONSENT_SCREEN' => '1',
|
||||
'CHEVERETO_ENABLE_COOKIE_COMPLIANCE' => '1',
|
||||
'CHEVERETO_ENABLE_EXPOSE_PAID_FEATURES' => '1',
|
||||
'CHEVERETO_ENABLE_EXTERNAL_SERVICES' => '1',
|
||||
'CHEVERETO_ENABLE_EXTERNAL_STORAGE' => '1',
|
||||
'CHEVERETO_ENABLE_FAVICON' => '1',
|
||||
'CHEVERETO_ENABLE_FOLLOWERS' => '1',
|
||||
'CHEVERETO_ENABLE_HTACCESS_CHECK' => '0',
|
||||
'CHEVERETO_ENABLE_IP_BANS' => '1',
|
||||
'CHEVERETO_ENABLE_LANGUAGE_CHOOSER' => '1',
|
||||
'CHEVERETO_ENABLE_LIKES' => '1',
|
||||
'CHEVERETO_ENABLE_LOCAL_STORAGE' => '1',
|
||||
'CHEVERETO_ENABLE_LOGIN_PROVIDERS' => '1',
|
||||
'CHEVERETO_ENABLE_LOGO' => '1',
|
||||
'CHEVERETO_ENABLE_MODERATION' => '1',
|
||||
'CHEVERETO_ENABLE_NOTIFICATIONS' => '1',
|
||||
'CHEVERETO_ENABLE_PAGES' => '1',
|
||||
'CHEVERETO_ENABLE_PHP_PAGES' => '0',
|
||||
'CHEVERETO_ENABLE_POWERED_BY_FOOTER_SITE_WIDE' => '0',
|
||||
'CHEVERETO_ENABLE_ROUTING' => '1',
|
||||
'CHEVERETO_ENABLE_SERVICE_AKISMET' => '1',
|
||||
'CHEVERETO_ENABLE_SERVICE_MODERATECONTENT' => '1',
|
||||
'CHEVERETO_ENABLE_SERVICE_PROJECTARACHNID' => '1',
|
||||
'CHEVERETO_ENABLE_SERVICE_STOPFORUMSPAM' => '1',
|
||||
'CHEVERETO_ENABLE_STOPWORDS' => '1',
|
||||
'CHEVERETO_ENABLE_UPDATE_CLI' => '1',
|
||||
'CHEVERETO_ENABLE_UPDATE_HTTP' => '1',
|
||||
'CHEVERETO_ENABLE_UPLOAD_FLOOD_PROTECTION' => '1',
|
||||
'CHEVERETO_ENABLE_UPLOAD_PLUGIN' => '1',
|
||||
'CHEVERETO_ENABLE_UPLOAD_WATERMARK' => '1',
|
||||
'CHEVERETO_ENABLE_USERS' => '1',
|
||||
'CHEVERETO_ENCRYPTION_KEY' => '',
|
||||
'CHEVERETO_ERROR_LOG' => 'php://stderr',
|
||||
'CHEVERETO_HEADER_CLIENT_IP' => '',
|
||||
'CHEVERETO_HOSTNAME_PATH' => '/',
|
||||
'CHEVERETO_HOSTNAME' => 'localhost',
|
||||
'CHEVERETO_HTTPS' => '1',
|
||||
'CHEVERETO_IMAGE_FORMATS_AVAILABLE' => '["JPEG","PNG","BMP","GIF","WEBP"]',
|
||||
'CHEVERETO_IMAGE_LIBRARY' => 'imagick',
|
||||
'CHEVERETO_MAX_ALBUMS' => '0',
|
||||
'CHEVERETO_MAX_EXECUTION_TIME_SECONDS' => '30',
|
||||
'CHEVERETO_MAX_IMAGES' => '0',
|
||||
'CHEVERETO_MAX_MEMORY_SIZE' => '512M',
|
||||
'CHEVERETO_MAX_POST_SIZE' => '64M',
|
||||
'CHEVERETO_MAX_UPLOAD_SIZE' => '64M',
|
||||
'CHEVERETO_MAX_USER_ALBUMS_LIST' => '300',
|
||||
'CHEVERETO_MAX_USERS' => '0',
|
||||
'CHEVERETO_SERVICING' => 'server',
|
||||
'CHEVERETO_SESSION_SAVE_HANDLER' => 'files',
|
||||
'CHEVERETO_SESSION_SAVE_PATH' => '/tmp',
|
||||
];
|
||||
|
|
5366
app/languages/ar.po
5366
app/languages/ar.po
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,760 +0,0 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VERSION\n"
|
||||
"POT-Creation-Date: 2023-05-22 15:49+0000\n"
|
||||
"PO-Revision-Date: 2023-05-22 15:49+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n"
|
||||
"Language: bs_BA\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
|
||||
msgid "Request denied"
|
||||
msgstr "Zahtjev odbijen"
|
||||
|
||||
msgid "That page doesn't exist"
|
||||
msgstr "Ova stranica ne postoji"
|
||||
|
||||
msgid "Reset password"
|
||||
msgstr "Promjeni lozinku"
|
||||
|
||||
msgid "Resend account activation"
|
||||
msgstr "Pošalji aktivaciju za korisnički račun ponovno"
|
||||
|
||||
msgid "Add your email address"
|
||||
msgstr "Dodaj E-mail adresu"
|
||||
|
||||
msgid "Awaiting confirmation"
|
||||
msgstr "Očekujem potvrdu"
|
||||
|
||||
msgid "Email changed"
|
||||
msgstr "E-mail adresa je promijenjena"
|
||||
|
||||
msgid "Invalid Username/Email"
|
||||
msgstr "Pogrešno ste upisali korisničko ime ili e-mail adresu"
|
||||
|
||||
msgid "Account needs to be activated to use this feature"
|
||||
msgstr "Profil treba da bude aktiviran za ove pogodnosti"
|
||||
|
||||
msgid "Account already activated"
|
||||
msgstr "Profil već aktiviran"
|
||||
|
||||
msgid "Allow up to 15 minutes for the email. You can try again later."
|
||||
msgstr "Dozvolite do 15 minuta za email. Možete pokušati ponovo kasnije"
|
||||
|
||||
#, php-format
|
||||
msgid "Reset your password at %s"
|
||||
msgstr "Resetirajte svoju šifru na %s"
|
||||
|
||||
#, php-format
|
||||
msgid "Confirmation required at %s"
|
||||
msgstr "Potrebna potvrda na %s"
|
||||
|
||||
#, php-format
|
||||
msgid "Welcome to %s"
|
||||
msgstr "Dobrodošli na %s"
|
||||
|
||||
msgid "Invalid password"
|
||||
msgstr "Netačna šifra"
|
||||
|
||||
msgid "Passwords don't match"
|
||||
msgstr "Šifre se ne podudaraju"
|
||||
|
||||
msgid "Invalid email"
|
||||
msgstr "Netačan email"
|
||||
|
||||
msgid "Email already being used"
|
||||
msgstr "Email se već koristi"
|
||||
|
||||
msgid "Check the errors in the form to continue."
|
||||
msgstr "Provjerite greške u formi da nastavite"
|
||||
|
||||
msgid "Embed codes"
|
||||
msgstr "Zalijepiti kodove"
|
||||
|
||||
msgid "Stats"
|
||||
msgstr "Statistika"
|
||||
|
||||
msgid "Settings"
|
||||
msgstr "Postavke"
|
||||
|
||||
msgid "Website"
|
||||
msgstr "Web stranica"
|
||||
|
||||
msgid "Image upload"
|
||||
msgstr "Postavljanje slike"
|
||||
|
||||
msgid "Theme"
|
||||
msgstr "Tema"
|
||||
|
||||
msgid "System"
|
||||
msgstr "Sistem"
|
||||
|
||||
msgid "External services"
|
||||
msgstr "Eksterne usluge"
|
||||
|
||||
msgid "Flood protection"
|
||||
msgstr "Flood protekcija"
|
||||
|
||||
msgid "Community"
|
||||
msgstr "Zajednica"
|
||||
|
||||
msgid "PHP version"
|
||||
msgstr "PHP verzija"
|
||||
|
||||
msgid "MySQL version"
|
||||
msgstr "MySQL verzija"
|
||||
|
||||
msgid "File uploads"
|
||||
msgstr "Fajl postavljanja"
|
||||
|
||||
msgid "Enabled"
|
||||
msgstr "Dozvoljeno"
|
||||
|
||||
msgid "Disabled"
|
||||
msgstr "Onesposobljeno"
|
||||
|
||||
msgid "Max. execution time"
|
||||
msgstr "Max. vrijeme izvršenja"
|
||||
|
||||
msgid "Memory limit"
|
||||
msgstr "Limit memorije"
|
||||
|
||||
msgid "search content"
|
||||
msgstr "Petražite sastav"
|
||||
|
||||
msgid "Explore"
|
||||
msgstr "Istraži"
|
||||
|
||||
msgid "Invalid website name"
|
||||
msgstr "Netačno ime web stranice"
|
||||
|
||||
msgid "Invalid language"
|
||||
msgstr "Netačan jezik"
|
||||
|
||||
msgid "Invalid timezone"
|
||||
msgstr "Netačna vremenska zona"
|
||||
|
||||
msgid "Invalid upload storage mode"
|
||||
msgstr "Netačan način postavljanja skladišta"
|
||||
|
||||
msgid "Invalid upload filenaming"
|
||||
msgstr "Netačno postavljanje file imena"
|
||||
|
||||
msgid "Invalid thumb width"
|
||||
msgstr "Netačna thumb širina"
|
||||
|
||||
msgid "Invalid thumb height"
|
||||
msgstr "Pogrešna visina sličice"
|
||||
|
||||
msgid "Invalid theme"
|
||||
msgstr "Pogrešna tema"
|
||||
|
||||
msgid "Invalid value"
|
||||
msgstr "Netačna količina"
|
||||
|
||||
msgid "Invalid email mode"
|
||||
msgstr "Nevažeći način e-maila"
|
||||
|
||||
msgid "Invalid SMTP port"
|
||||
msgstr "Pogrešan SMTP port"
|
||||
|
||||
msgid "Invalid upload image path"
|
||||
msgstr "Pogrešna putanja slike za postavljanje"
|
||||
|
||||
#, php-format
|
||||
msgid "Max. allowed %s"
|
||||
msgstr "Maksimalno dopušteno %s"
|
||||
|
||||
msgid "Invalid SMTP server"
|
||||
msgstr "Pogrešan SMTP server"
|
||||
|
||||
msgid "Invalid SMTP username"
|
||||
msgstr "Pogrešno SMTP korisničko ime"
|
||||
|
||||
msgid "Dashboard"
|
||||
msgstr "Kontrolna ploča"
|
||||
|
||||
msgid "About"
|
||||
msgstr "U vezi"
|
||||
|
||||
msgid "Image ID"
|
||||
msgstr "ID slike"
|
||||
|
||||
msgid "Upload date"
|
||||
msgstr "Datum postavljanja"
|
||||
|
||||
msgid "Direct links"
|
||||
msgstr "Direktni linkovi"
|
||||
|
||||
msgid "Image link"
|
||||
msgstr "Link slike"
|
||||
|
||||
msgid "Image URL"
|
||||
msgstr "URL slike"
|
||||
|
||||
msgid "Thumbnail URL"
|
||||
msgstr "URL sličice"
|
||||
|
||||
msgid "Medium URL"
|
||||
msgstr "Srednji URL"
|
||||
|
||||
msgid "Login needed"
|
||||
msgstr "Prijava potrebna"
|
||||
|
||||
msgid "Invalid username"
|
||||
msgstr "Netačno korisničko ime"
|
||||
|
||||
msgid "Wrong Username/Email password combination"
|
||||
msgstr "Pogrešan korisnički naziv, e-mail adresa ili kombinacija lozinke"
|
||||
|
||||
msgid "Sign in"
|
||||
msgstr "Prijava"
|
||||
|
||||
msgid "Search"
|
||||
msgstr "Pretraži"
|
||||
|
||||
msgid "Account"
|
||||
msgstr "Korisnički račun"
|
||||
|
||||
msgid "Profile"
|
||||
msgstr "Profil"
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Lozinka"
|
||||
|
||||
#, php-format
|
||||
msgid "An email has been sent to %s with instructions to activate this email"
|
||||
msgstr "Poslali smo e-mail korisniku %s sa instrukcijama kako aktivirati korisnički račun"
|
||||
|
||||
msgid "Invalid name"
|
||||
msgstr "Pogrešan naziv"
|
||||
|
||||
msgid "Invalid website"
|
||||
msgstr "Pogrešna web stranica"
|
||||
|
||||
msgid "Wrong password"
|
||||
msgstr "Pogrešna lozinka"
|
||||
|
||||
msgid "Use a new password"
|
||||
msgstr "Koristi novu lozinku"
|
||||
|
||||
msgid "Password has been changed"
|
||||
msgstr "Lozinka je uspiješno promijenjena"
|
||||
|
||||
msgid "Wrong Username/Email values"
|
||||
msgstr "Pogrešno korisničko ime ili e-mail"
|
||||
|
||||
#, php-format
|
||||
msgid "Settings for %s"
|
||||
msgstr "Postavke za %s"
|
||||
|
||||
msgid "Username"
|
||||
msgstr "Korisnički naziv"
|
||||
|
||||
msgid "Delete user"
|
||||
msgstr "Izbrišite korisnika"
|
||||
|
||||
msgid "User ID"
|
||||
msgstr "ID korisnika"
|
||||
|
||||
msgid "Register date"
|
||||
msgstr "Datum registriranja"
|
||||
|
||||
msgid "Create account"
|
||||
msgstr "Napravi korisnički račun"
|
||||
|
||||
msgid "Upload"
|
||||
msgstr "Upload."
|
||||
|
||||
msgid "Albums"
|
||||
msgstr "Albumi"
|
||||
|
||||
msgid "Note: This content is private. Change privacy to \"public\" to share."
|
||||
msgstr "Napomena: Ovaj sadržaj je privatan, promijeni privatnost albuma na javno ukoliko želiš da ostali korisnici mogu vidjeti ovaj sadržaj."
|
||||
|
||||
msgid "Public"
|
||||
msgstr "Javno"
|
||||
|
||||
msgid "Private upload"
|
||||
msgstr "Privatno postavljanje"
|
||||
|
||||
msgid "Most recent"
|
||||
msgstr "Najnovije"
|
||||
|
||||
msgid "Oldest"
|
||||
msgstr "Najstarije"
|
||||
|
||||
msgid "Most viewed"
|
||||
msgstr "Najviše pregledano"
|
||||
|
||||
msgid "Share"
|
||||
msgstr "Podijeli"
|
||||
|
||||
#, php-format
|
||||
msgid "%s ago"
|
||||
msgstr "%s prije"
|
||||
|
||||
msgid "moments ago"
|
||||
msgstr "trenutaka prije"
|
||||
|
||||
msgid "Random"
|
||||
msgstr "Slučajno"
|
||||
|
||||
msgid "loading"
|
||||
msgstr "učitavanje"
|
||||
|
||||
msgid "My Profile"
|
||||
msgstr "Moj profil"
|
||||
|
||||
msgid "Sign out"
|
||||
msgstr "Izlogirajte se"
|
||||
|
||||
msgid "You must enter the album name."
|
||||
msgstr "Ime albuma morate unijeti ovdje"
|
||||
|
||||
msgid "Confirm"
|
||||
msgstr "Potvrdi"
|
||||
|
||||
msgid "An error occurred. Please try again later."
|
||||
msgstr "Došlo je do greške. Molim vas pokušajte kasnije"
|
||||
|
||||
msgid "Please select a valid image file type."
|
||||
msgstr "Selektirajte važeći tip fajl slike"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Please select a picture of at most %s size."
|
||||
msgstr "Selektirajte sliku na najvećoj %s veličini"
|
||||
|
||||
msgid "Profile image updated."
|
||||
msgstr "Slika profila ažurirana "
|
||||
|
||||
msgid "Create album"
|
||||
msgstr "Kreirajte album"
|
||||
|
||||
msgid "Edit"
|
||||
msgstr "Izmjenite"
|
||||
|
||||
msgid "Delete"
|
||||
msgstr "Izbrišite"
|
||||
|
||||
#, javascript-format
|
||||
msgid "%s's Albums"
|
||||
msgstr "%s albumi"
|
||||
|
||||
msgid "private"
|
||||
msgstr "Privatno"
|
||||
|
||||
msgid "Select"
|
||||
msgstr "Odaberi"
|
||||
|
||||
msgid "Unselect"
|
||||
msgstr "Poništi"
|
||||
|
||||
msgid "All the changes that you have made will be lost if you continue."
|
||||
msgstr "Sve promjene koje ste upisali će biti izgubljene ukoliko nastavite."
|
||||
|
||||
msgid "Save changes"
|
||||
msgstr "Spremi promjene"
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "Potvrdi"
|
||||
|
||||
msgid "Changes saved successfully."
|
||||
msgstr "Promjene uspješno sačuvane"
|
||||
|
||||
msgid "Go back to form"
|
||||
msgstr "Vrati se nazad na formu"
|
||||
|
||||
msgid "or"
|
||||
msgstr "ili"
|
||||
|
||||
msgid "continue anyway"
|
||||
msgstr "svejedno nastavi"
|
||||
|
||||
msgid "cancel"
|
||||
msgstr "Poništi"
|
||||
|
||||
msgid "Confirm action"
|
||||
msgstr "Potvrdi akciju"
|
||||
|
||||
msgid "Upload complete"
|
||||
msgstr "Prijenos je završen"
|
||||
|
||||
msgid "Uploading"
|
||||
msgstr "Postavljanje"
|
||||
|
||||
msgid "cancel remaining"
|
||||
msgstr "otkaži preostale"
|
||||
|
||||
msgid "learn more"
|
||||
msgstr "saznaj više"
|
||||
|
||||
msgid "Check the <a data-modal=\"simple\" data-target=\"failed-upload-result\">error report</a> for more information."
|
||||
msgstr "Provjeri <a data-modal=\"simple\" data-target=\"failed-upload-result\">izvještaj grešaka</a> za više informacija."
|
||||
|
||||
msgid "optional"
|
||||
msgstr "neobavezano"
|
||||
|
||||
msgid "Add image URLs"
|
||||
msgstr "Dodajte URL-ove slike"
|
||||
|
||||
msgid "Add the image URLs here"
|
||||
msgstr "Dodajte URL-ova slike ovdje"
|
||||
|
||||
msgid "Error report"
|
||||
msgstr "Prijavite grešku"
|
||||
|
||||
msgid "Links"
|
||||
msgstr "Linkovi"
|
||||
|
||||
msgid "Direct"
|
||||
msgstr "Direktno"
|
||||
|
||||
msgid "HTML Codes"
|
||||
msgstr "HTML kodovi"
|
||||
|
||||
msgid "HTML medium linked"
|
||||
msgstr "HTML djelimično povezan"
|
||||
|
||||
msgid "HTML thumbnail linked"
|
||||
msgstr "HTML thumbnail povezan"
|
||||
|
||||
msgid "BBCodes"
|
||||
msgstr "BBKodovi"
|
||||
|
||||
msgid "BBCode thumbnail linked"
|
||||
msgstr "BBKode thumbnail povezan"
|
||||
|
||||
msgid "Viewer links"
|
||||
msgstr "Linkovi gledalaca"
|
||||
|
||||
msgid "Name"
|
||||
msgstr "Naziv"
|
||||
|
||||
msgid "Who can view this content"
|
||||
msgstr "Ko može sve da gleda ovaj sadržaj"
|
||||
|
||||
msgid "Private (just me)"
|
||||
msgstr "Privatno (samo ja)"
|
||||
|
||||
msgid "Message"
|
||||
msgstr "Poruka"
|
||||
|
||||
msgid "view more"
|
||||
msgstr "Vidite više"
|
||||
|
||||
msgid "Load more"
|
||||
msgstr "Očitajte više"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Selektujte sve"
|
||||
|
||||
msgid "Clear selection"
|
||||
msgstr "Jasan izbor"
|
||||
|
||||
msgid "Sign in with another account"
|
||||
msgstr "Prijavite se sa drugog profila."
|
||||
|
||||
msgid "There's nothing to show here."
|
||||
msgstr "Ovdje se nema šta prikazati"
|
||||
|
||||
msgid "Confirm deletion"
|
||||
msgstr "Potvrdite brisanje "
|
||||
|
||||
msgid "Guest"
|
||||
msgstr "Gost"
|
||||
|
||||
msgid "You either don't have permission to access this page or the link has expired."
|
||||
msgstr "Vi nemate dozvolu za pristup ovoj stranici ili veza je istekla."
|
||||
|
||||
msgid "Go to homepage"
|
||||
msgstr "Idi na početnu"
|
||||
|
||||
msgid "The requested page was not found."
|
||||
msgstr "Tražena stranica nije pronađena."
|
||||
|
||||
msgid "The user has been deleted"
|
||||
msgstr "Član je obrisan iz baze servisa"
|
||||
|
||||
msgid "Your account is almost ready"
|
||||
msgstr "Vaš korisnički račun je skoro spreman za korištenje"
|
||||
|
||||
msgid "Resend activation"
|
||||
msgstr "Pošalji aktivacijski e-mail ponovo"
|
||||
|
||||
#, php-format
|
||||
msgid "You have successfully changed your account email to %s"
|
||||
msgstr "Uspješno ste promjenili email profila u %s."
|
||||
|
||||
msgid "Go to my profile"
|
||||
msgstr "Idite na moj profil."
|
||||
|
||||
msgid "Your email address"
|
||||
msgstr "Vaša E-mail adresa."
|
||||
|
||||
msgid "An email with instructions to reset your password has been sent to the registered email address. If you don't receive the instructions try checking your junk or spam filters."
|
||||
msgstr "E-Mail sa instrukcijama kako promijenuti vašu lozinku je poslan na e-mail adresu sa kojom ste se registrovali. Ukoliko ne dobijete instrukcije, provjerite spam filtere ili folder junk/spam na vašem e-mail servisu."
|
||||
|
||||
msgid "Resend instructions"
|
||||
msgstr "Pošalji upute ponovno"
|
||||
|
||||
msgid "Username or Email address"
|
||||
msgstr "Korisničko ime ili Email adresa."
|
||||
|
||||
msgid "Login now"
|
||||
msgstr "Prijavite se sada"
|
||||
|
||||
msgid "Enter your new password"
|
||||
msgstr "Upiši novu lozinku"
|
||||
|
||||
msgid "Re-enter your new password"
|
||||
msgstr "Ponovno unesite novu lozinku"
|
||||
|
||||
msgid "From name"
|
||||
msgstr "Poslano od naziva"
|
||||
|
||||
msgid "Sender name for emails sent to users."
|
||||
msgstr "Ime pošiljatelja za e-mailove poslane članovima."
|
||||
|
||||
msgid "From email address"
|
||||
msgstr "Sa email adrese"
|
||||
|
||||
msgid "Sender email for emails sent to users."
|
||||
msgstr "Email adresa pošiljatelja za e-mailove poslate članovima."
|
||||
|
||||
msgid "Incoming email address"
|
||||
msgstr "Dolazeža E-Mail adresa"
|
||||
|
||||
msgid "Recipient for contact form and system alerts."
|
||||
msgstr "Primatelj za kontakt forme i sustav upozorenja."
|
||||
|
||||
msgid "Email mode"
|
||||
msgstr "E-Mail mod"
|
||||
|
||||
msgid "SMTP server and port"
|
||||
msgstr "SMTP server i port"
|
||||
|
||||
msgid "SMTP username"
|
||||
msgstr "SMTP korisničko ime"
|
||||
|
||||
msgid "SMTP password"
|
||||
msgstr "SMTP lozinka"
|
||||
|
||||
msgid "SMTP security"
|
||||
msgstr "SMTP sigurnost"
|
||||
|
||||
msgid "Unsecured"
|
||||
msgstr "Nesigurno"
|
||||
|
||||
msgid "Comment code"
|
||||
msgstr "Kod komentara."
|
||||
|
||||
msgid "Disqus, Facebook or anything you want. It will be used in image view."
|
||||
msgstr "Raspravite, Facebook ili šta želite. Bit će korišteno u pogledu slike."
|
||||
|
||||
msgid "Analytics code"
|
||||
msgstr "Analitički kod."
|
||||
|
||||
msgid "Google Analytics or anything you want. It will be added to the theme footer."
|
||||
msgstr "Google analistik ili bilo što šta želite. Bit će dodato u temu footera."
|
||||
|
||||
msgid "Disk used"
|
||||
msgstr "Iskorišćeno memorije"
|
||||
|
||||
msgid "Notify to email"
|
||||
msgstr "Obavijesti na e-mail"
|
||||
|
||||
msgid "Minute limit"
|
||||
msgstr "Minute granica"
|
||||
|
||||
msgid "Hourly limit"
|
||||
msgstr "Satni limit"
|
||||
|
||||
msgid "Daily limit"
|
||||
msgstr "Dnevni limit"
|
||||
|
||||
msgid "Weekly limit"
|
||||
msgstr "Sedmični limit"
|
||||
|
||||
msgid "Monthly limit"
|
||||
msgstr "Mjesečni limit"
|
||||
|
||||
msgid "Guest uploads"
|
||||
msgstr "Postavljanje slika za goste"
|
||||
|
||||
msgid "Enable this if you want to allow non registered users to upload."
|
||||
msgstr "Omogućite ovo ako želite da gosti uploaduju slike."
|
||||
|
||||
msgid "Image path"
|
||||
msgstr "Putanja slike na serveru"
|
||||
|
||||
msgid "Relative to Chevereto root"
|
||||
msgstr "Gdje želite sačuvati slike? Po zadanim postavkama ostavite putanju \"images\"."
|
||||
|
||||
msgid "Storage mode"
|
||||
msgstr "Način za pohranu"
|
||||
|
||||
msgid "Datefolders"
|
||||
msgstr "Vremenske mape"
|
||||
|
||||
#, php-format
|
||||
msgid "Datefolders creates %s structure"
|
||||
msgstr "Vremenski nazivi foldera kreiraju strukturu %s"
|
||||
|
||||
msgid "File naming method"
|
||||
msgstr "Način imenovanja datoteka"
|
||||
|
||||
msgid "Original"
|
||||
msgstr "Originalno"
|
||||
|
||||
msgid "Thumb size"
|
||||
msgstr "Veličina ikone"
|
||||
|
||||
msgid "Thumbnails will be fixed to this size."
|
||||
msgstr "Veličina ikone će biti fiksna za ovu veličinu"
|
||||
|
||||
msgid "Default language"
|
||||
msgstr "Zadani jezik"
|
||||
|
||||
msgid "Default base language to use."
|
||||
msgstr "Ovaj jezik će biti prikazan svim posjetiocima kao zadani jezik."
|
||||
|
||||
msgid "Auto language"
|
||||
msgstr "Automatski jezik"
|
||||
|
||||
msgid "How many items should be displayed per page listing."
|
||||
msgstr "Koliko sadržaja treba da bude prikazano po stranici"
|
||||
|
||||
msgid "Crypt salt"
|
||||
msgstr "Enkripcija"
|
||||
|
||||
msgid "This is the salt used to convert numeric ID to alphanumeric. It was generated on install."
|
||||
msgstr "Ovo se koristi da konvertuje numerički ID u alfanumerički. Generisan je pri instalaciji."
|
||||
|
||||
msgid "Website name"
|
||||
msgstr "Naziv web stranice"
|
||||
|
||||
msgid "Website doctitle"
|
||||
msgstr "Podnaslov web stranice"
|
||||
|
||||
msgid "Website description"
|
||||
msgstr "Opis web stranice"
|
||||
|
||||
msgid "Default time zone"
|
||||
msgstr "Zadana vremenska zona"
|
||||
|
||||
msgid "Select region"
|
||||
msgstr "Izaberi regiju"
|
||||
|
||||
msgid "Website mode"
|
||||
msgstr "Način rada web stranice"
|
||||
|
||||
msgid "You can switch the website mode anytime."
|
||||
msgstr "Način rada web stranice možete prebacivati u bilo kom trenutku."
|
||||
|
||||
msgid "Role"
|
||||
msgstr "Uloga"
|
||||
|
||||
msgid "Email address"
|
||||
msgstr "E-mail adresa."
|
||||
|
||||
#, php-format
|
||||
msgid "Added to %s"
|
||||
msgstr "Dodato do %s"
|
||||
|
||||
#, php-format
|
||||
msgid "Uploaded %s"
|
||||
msgstr "Postaviti %s"
|
||||
|
||||
msgid "Logged out"
|
||||
msgstr "Odjavi se"
|
||||
|
||||
#, php-format
|
||||
msgid "You have been logged off %s. Hope to see you soon."
|
||||
msgstr "Odjavljeni ste %s. Nadam se da ćemo uskoro ponovno vas vidjeti."
|
||||
|
||||
msgid "Valid"
|
||||
msgstr "Vrijedi"
|
||||
|
||||
msgid "Banned"
|
||||
msgstr "Zabranjen/Banovan"
|
||||
|
||||
msgid "Awaiting email"
|
||||
msgstr "Očekujem e-mail"
|
||||
|
||||
msgid "Language"
|
||||
msgstr "Jezik"
|
||||
|
||||
msgid "Timezone"
|
||||
msgstr "Vremenska zona"
|
||||
|
||||
msgid "User has no connections."
|
||||
msgstr "Korisnik nema veze."
|
||||
|
||||
#, php-format
|
||||
msgid "Do you really want to disconnect %s from this account?"
|
||||
msgstr "Da li stvarno želite odspojiti %s s tog korisničkog računa?"
|
||||
|
||||
#, php-format
|
||||
msgid "This account is connected to %s"
|
||||
msgstr "Ovaj korisnički račun je spojen na %s"
|
||||
|
||||
#, php-format
|
||||
msgid "Do you really want to disconnect your %s account?"
|
||||
msgstr "Da li stvarno želite odspojiti vaš %s korisnički račun?"
|
||||
|
||||
#, php-format
|
||||
msgid "You will be logged out and you won't be able to login to your account using this %s account."
|
||||
msgstr "Bit ćete odjavljeni i nećete moći se prijaviti na vaš korisnički račun korištenjem ovog %s računa."
|
||||
|
||||
msgid "Current password"
|
||||
msgstr "Trenutna lozinka"
|
||||
|
||||
msgid "Enter your current password"
|
||||
msgstr "Unesite trenutnu lozinku"
|
||||
|
||||
msgid "New password"
|
||||
msgstr "Nova lozinka"
|
||||
|
||||
msgid "Confirm new password"
|
||||
msgstr "Potvrdi novu lozinku"
|
||||
|
||||
msgid "This user doesn't have a password. Add one using this form."
|
||||
msgstr "Ovaj korisnik nema lozinku. Dodajte ju pomoću ovog obrasca."
|
||||
|
||||
msgid "Enter your password"
|
||||
msgstr "Upiši svoju lozinku"
|
||||
|
||||
msgid "Confirm password"
|
||||
msgstr "Potvrdi lozinku"
|
||||
|
||||
msgid "Re-enter your password"
|
||||
msgstr "Ponovno upišite svoju lozinku"
|
||||
|
||||
msgid "This is your real name, not your username."
|
||||
msgstr "To je vaše pravo ime, a ne vaše korisničko ime."
|
||||
|
||||
msgid "Upload profile background"
|
||||
msgstr "Postavi pozadinu profila"
|
||||
|
||||
msgid "Change background"
|
||||
msgstr "Promjenite pozadinu"
|
||||
|
||||
msgid "Upload new image"
|
||||
msgstr "Postavite novu sliku"
|
||||
|
||||
msgid "Delete background"
|
||||
msgstr "Izbrišite pozadinu"
|
||||
|
||||
msgid "DMCA complaint"
|
||||
msgstr "DMCA žalba"
|
||||
|
||||
msgid "Invalid message"
|
||||
msgstr "Pogrešna poruka"
|
||||
|
||||
msgid "Invalid subject"
|
||||
msgstr "Pogrešan subjekt"
|
||||
|
1353
app/languages/ca.po
1353
app/languages/ca.po
File diff suppressed because it is too large
Load diff
4836
app/languages/cs.po
4836
app/languages/cs.po
File diff suppressed because it is too large
Load diff
2976
app/languages/da.po
2976
app/languages/da.po
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
5695
app/languages/de.po
5695
app/languages/de.po
File diff suppressed because it is too large
Load diff
3035
app/languages/el.po
3035
app/languages/el.po
File diff suppressed because it is too large
Load diff
10373
app/languages/en.po
10373
app/languages/en.po
File diff suppressed because it is too large
Load diff
5381
app/languages/es.po
5381
app/languages/es.po
File diff suppressed because it is too large
Load diff
3138
app/languages/fa.po
3138
app/languages/fa.po
File diff suppressed because it is too large
Load diff
4896
app/languages/fi.po
4896
app/languages/fi.po
File diff suppressed because it is too large
Load diff
6250
app/languages/fr.po
6250
app/languages/fr.po
File diff suppressed because it is too large
Load diff
3229
app/languages/he.po
3229
app/languages/he.po
File diff suppressed because it is too large
Load diff
2489
app/languages/hr.po
2489
app/languages/hr.po
File diff suppressed because it is too large
Load diff
4873
app/languages/hu.po
4873
app/languages/hu.po
File diff suppressed because it is too large
Load diff
4327
app/languages/id.po
4327
app/languages/id.po
File diff suppressed because it is too large
Load diff
4750
app/languages/it.po
4750
app/languages/it.po
File diff suppressed because it is too large
Load diff
4855
app/languages/ko.po
4855
app/languages/ko.po
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
4772
app/languages/nb.po
4772
app/languages/nb.po
File diff suppressed because it is too large
Load diff
4797
app/languages/nl.po
4797
app/languages/nl.po
File diff suppressed because it is too large
Load diff
5408
app/languages/pl.po
5408
app/languages/pl.po
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
3756
app/languages/pt.po
3756
app/languages/pt.po
File diff suppressed because it is too large
Load diff
|
@ -1,31 +0,0 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VERSION\n"
|
||||
"POT-Creation-Date: 2023-05-22 15:49+0000\n"
|
||||
"PO-Revision-Date: 2023-05-22 15:49+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n"
|
||||
"Language: ro\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2);\n"
|
||||
|
||||
msgid "Invalid password"
|
||||
msgstr "Parola greșită"
|
||||
|
||||
msgid "Invalid email"
|
||||
msgstr "E-mail greșit"
|
||||
|
||||
msgid "Invalid username"
|
||||
msgstr "User greșit"
|
||||
|
||||
msgid "Private profile"
|
||||
msgstr "Profil privat"
|
||||
|
||||
msgid "From email address"
|
||||
msgstr "De la adresa de email"
|
||||
|
||||
msgid "Sender email for emails sent to users."
|
||||
msgstr "Trimite email către toţi userii"
|
||||
|
4904
app/languages/ru.po
4904
app/languages/ru.po
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
2860
app/languages/sv.po
2860
app/languages/sv.po
File diff suppressed because it is too large
Load diff
4390
app/languages/th.po
4390
app/languages/th.po
File diff suppressed because it is too large
Load diff
4596
app/languages/uk.po
4596
app/languages/uk.po
File diff suppressed because it is too large
Load diff
6065
app/languages/vi.po
6065
app/languages/vi.po
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -14,9 +14,9 @@ use function Chevereto\Legacy\feedbackAlert;
|
|||
use function Chevereto\Legacy\isSafeToExecute;
|
||||
use function Chevereto\Vars\env;
|
||||
|
||||
if (! (bool) env()['CHEVERETO_ENABLE_BULK_IMPORTER']) {
|
||||
if (!(bool) env()['CHEVERETO_ENABLE_BULK_IMPORTER']) {
|
||||
feedbackAlert('Bulk importer is disabled');
|
||||
exit(255);
|
||||
die(255);
|
||||
}
|
||||
$threadID = getenv('THREAD_ID') ?: 0;
|
||||
$loop = 1;
|
||||
|
@ -26,7 +26,7 @@ do {
|
|||
if ($jobs === []) {
|
||||
echo "~They took our jobs!~\n";
|
||||
echo "[OK] No jobs left.\n";
|
||||
exit(0);
|
||||
die(0);
|
||||
}
|
||||
$id = $jobs[0]['import_id'];
|
||||
$import = new Import();
|
||||
|
@ -34,15 +34,13 @@ do {
|
|||
$import->thread = (int) $threadID;
|
||||
$import->get();
|
||||
if ($import->isLocked()) {
|
||||
$import->edit([
|
||||
'status' => 'paused',
|
||||
]);
|
||||
echo "> Job locked for id #{$id}\n";
|
||||
$import->edit(['status' => 'paused']);
|
||||
echo "> Job locked for id #$id\n";
|
||||
} else {
|
||||
echo "* Processing job id #{$id}\n";
|
||||
echo "* Processing job id #$id\n";
|
||||
$import->process();
|
||||
}
|
||||
$loop++;
|
||||
} while (isSafeToExecute());
|
||||
echo "--\n[OK] Automatic importing looped {$loop} times ~ /dashboard/bulk for stats\n";
|
||||
exit(0);
|
||||
echo "--\n[OK] Automatic importing looped $loop times ~ /dashboard/bulk for stats\n";
|
||||
die(0);
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
|
||||
use Chevereto\Encryption\EncryptionInstance;
|
||||
use Chevereto\Encryption\Interfaces\EncryptionInterface;
|
||||
use Chevereto\Legacy\Classes\Album;
|
||||
use Chevereto\Legacy\Classes\DB;
|
||||
use Chevereto\Legacy\Classes\Login;
|
||||
use Chevereto\Legacy\Classes\Settings;
|
||||
|
@ -35,10 +34,8 @@ $settings = Settings::get();
|
|||
new EncryptionInstance($toEncryption);
|
||||
foreach (Settings::ENCRYPTED_NAMES as $key) {
|
||||
$value = $settings[$key] ?? '';
|
||||
feedback("- {$key}: {$value}");
|
||||
Settings::update([
|
||||
$key => $value,
|
||||
]);
|
||||
feedback("- $key: $value");
|
||||
Settings::update([$key => $value]);
|
||||
}
|
||||
feedbackSeparator();
|
||||
feedbackStep($doing, 'storages');
|
||||
|
@ -50,7 +47,7 @@ foreach ($storages as $storage) {
|
|||
$values = [];
|
||||
foreach (Storage::ENCRYPTED_NAMES as $key) {
|
||||
$value = $storage[$key] ?? '';
|
||||
feedback(" {$key}: {$value}");
|
||||
feedback(" $key: $value");
|
||||
$values[$key] = $value;
|
||||
}
|
||||
Storage::update(
|
||||
|
@ -61,10 +58,7 @@ foreach ($storages as $storage) {
|
|||
}
|
||||
feedbackSeparator();
|
||||
feedbackStep($doing, 'two-factor secrets');
|
||||
$twoFactors = DB::get('two_factors', [], 'AND', [
|
||||
'field' => 'id',
|
||||
'order' => 'desc',
|
||||
]);
|
||||
$twoFactors = DB::get('two_factors', [], 'AND', ['field' => 'id', 'order' => 'desc']);
|
||||
foreach ($twoFactors as $twoFactor) {
|
||||
new EncryptionInstance($fromEncryption);
|
||||
$twoFactor = TwoFactor::get($twoFactor['two_factor_id']);
|
||||
|
@ -74,7 +68,7 @@ foreach ($twoFactors as $twoFactor) {
|
|||
$values = [
|
||||
'secret' => $secret,
|
||||
];
|
||||
feedback("- secret: {$secret}");
|
||||
feedback("- secret: $secret");
|
||||
TwoFactor::update(
|
||||
id: $twoFactor['id'],
|
||||
values: $values,
|
||||
|
@ -90,7 +84,7 @@ foreach ($loginProviders as $name => $loginProvider) {
|
|||
$values = [];
|
||||
foreach (Login::ENCRYPTED_PROVIDER_NAMES as $key) {
|
||||
$value = $loginProvider[$key] ?? '';
|
||||
feedback(" {$key}: {$value}");
|
||||
feedback(" $key: $value");
|
||||
$values[$key] = $value;
|
||||
}
|
||||
Login::updateProvider(
|
||||
|
@ -100,18 +94,11 @@ foreach ($loginProviders as $name => $loginProvider) {
|
|||
}
|
||||
feedbackSeparator();
|
||||
feedbackStep($doing, 'login connection tokens');
|
||||
$connections = DB::get(
|
||||
table: 'login_connections',
|
||||
where: 'all',
|
||||
sort: [
|
||||
'field' => 'id',
|
||||
'order' => 'desc',
|
||||
]
|
||||
);
|
||||
$connections = DB::get(table: 'login_connections', values: 'all', sort: ['field' => 'id', 'order' => 'desc']);
|
||||
foreach ($connections as $connection) {
|
||||
new EncryptionInstance($fromEncryption);
|
||||
$connection = Login::getConnection($connection['login_connection_id']);
|
||||
feedback('> Login connection #' . $connection['id']);
|
||||
feedback("> Login connection #" . $connection['id']);
|
||||
new EncryptionInstance($toEncryption);
|
||||
$token = $connection['token'];
|
||||
$values = [
|
||||
|
@ -122,22 +109,5 @@ foreach ($connections as $connection) {
|
|||
values: $values,
|
||||
);
|
||||
$tokenString = serialize($token);
|
||||
feedback("- token: {$tokenString}");
|
||||
}
|
||||
feedbackSeparator();
|
||||
feedbackStep($doing, 'albums password');
|
||||
$albumsPassword = DB::queryFetchAll('SELECT album_id id, album_password password FROM ' . DB::getTable('albums') . ' WHERE album_password IS NOT NULL;');
|
||||
foreach ($albumsPassword as $album) {
|
||||
new EncryptionInstance($fromEncryption);
|
||||
feedback('> Album id #' . $album['id']);
|
||||
new EncryptionInstance($toEncryption);
|
||||
$password = $album['password'];
|
||||
$values = [
|
||||
'password' => $password,
|
||||
];
|
||||
Album::update(
|
||||
id: (int) $album['id'],
|
||||
values: $values,
|
||||
);
|
||||
feedback("- password: {$password}");
|
||||
feedback("- token: $tokenString");
|
||||
}
|
||||
|
|
|
@ -9,8 +9,8 @@
|
|||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
use Chevere\ThrowableHandler\Documents\PlainDocument;
|
||||
use Chevereto\Config\Config;
|
||||
use function Chevereto\Legacy\checkUpdates;
|
||||
use Chevereto\Legacy\Classes\DB;
|
||||
use Chevereto\Legacy\Classes\Image;
|
||||
use Chevereto\Legacy\Classes\L10n;
|
||||
|
@ -18,13 +18,6 @@ use Chevereto\Legacy\Classes\Lock;
|
|||
use Chevereto\Legacy\Classes\Queue;
|
||||
use Chevereto\Legacy\Classes\Settings;
|
||||
use Chevereto\Legacy\Classes\User;
|
||||
use Chevereto\Legacy\Classes\Variable;
|
||||
use function Chevere\Message\message;
|
||||
use function Chevere\ThrowableHandler\throwableHandler;
|
||||
use function Chevere\Writer\writers;
|
||||
use function Chevere\xrDebug\PHP\throwableHandler as XrDebugThrowableHandler;
|
||||
use function Chevereto\Legacy\checkUpdates;
|
||||
use function Chevereto\Legacy\cheveretoVersionInstalled;
|
||||
use function Chevereto\Legacy\feedbackAlert;
|
||||
use function Chevereto\Legacy\feedbackStep;
|
||||
use function Chevereto\Legacy\G\datetime_add;
|
||||
|
@ -37,115 +30,44 @@ use function Chevereto\Vars\env;
|
|||
|
||||
if (getSetting('maintenance')) {
|
||||
echo "[!] Chevereto is in maintenance mode.\n";
|
||||
exit(255);
|
||||
die(255);
|
||||
}
|
||||
$jobs = [
|
||||
'deleteExpiredImages',
|
||||
'cleanUnconfirmedUsers',
|
||||
'removeDeleteLog',
|
||||
'storageDelete',
|
||||
];
|
||||
if ((bool) env()['CHEVERETO_ENABLE_UPDATE_CHECK']) {
|
||||
$jobs = ['deleteExpiredImages', 'cleanUnconfirmedUsers', 'removeDeleteLog', 'checkForNews'];
|
||||
if ((bool) env()['CHEVERETO_ENABLE_EXTERNAL_STORAGE']) {
|
||||
$jobs[] = 'storageDelete';
|
||||
}
|
||||
if ((bool) env()['CHEVERETO_ENABLE_CHECK_UPDATES']) {
|
||||
$jobs[] = 'checkForUpdates';
|
||||
}
|
||||
if ((bool) env()['CHEVERETO_ENABLE_NEWS_CHECK']) {
|
||||
$jobs[] = 'checkForNews';
|
||||
}
|
||||
if (Config::enabled()->htaccessCheck()) {
|
||||
$jobs[] = 'checkHtaccess';
|
||||
}
|
||||
shuffle($jobs);
|
||||
$time_start = microtime(true);
|
||||
$errors = [];
|
||||
$namespace = env()['CHEVERETO_ID_HANDLE'] ?? false;
|
||||
foreach ($jobs as $job) {
|
||||
if (! isSafeToExecute()) {
|
||||
if (!isSafeToExecute()) {
|
||||
echo "[OK] Exit - (time is up)\n";
|
||||
writeLastRan($time_start);
|
||||
exit(0);
|
||||
writeLastRan();
|
||||
}
|
||||
feedbackStep('Job:', $job);
|
||||
|
||||
try {
|
||||
$job();
|
||||
} catch (Throwable $throwable) {
|
||||
feedbackAlert($throwable->getMessage());
|
||||
$errors[$job] = $throwable->getMessage();
|
||||
$publicHandler = throwableHandler($throwable);
|
||||
if ($namespace) {
|
||||
$publicHandler = $publicHandler
|
||||
->withId($namespace . $publicHandler->id());
|
||||
}
|
||||
$internalHandler = $publicHandler->withIsDebug(true);
|
||||
$docInternal = new PlainDocument($internalHandler);
|
||||
$logMessage = '[' . $publicHandler->id() . '] '
|
||||
. $docInternal->__toString()
|
||||
. "\n\n";
|
||||
|
||||
try {
|
||||
$errorLog = ini_get('error_log');
|
||||
$fp = fopen($errorLog, 'a');
|
||||
fwrite($fp, $logMessage);
|
||||
fclose($fp);
|
||||
} catch (Throwable) {
|
||||
if (PHP_SAPI === 'cli') {
|
||||
error_log($logMessage);
|
||||
} else {
|
||||
writers()->error()->write($logMessage);
|
||||
}
|
||||
}
|
||||
$extra = <<<HTML
|
||||
<div class="throwable-message"><b>Incident {$publicHandler->id()}</b></div>
|
||||
<div class="throwable-message"><b>Backtrace</b></div>
|
||||
HTML;
|
||||
XrDebugThrowableHandler($throwable, $extra);
|
||||
}
|
||||
$job();
|
||||
}
|
||||
writeLastRan($time_start);
|
||||
function writeLastRan(float $time_start): void
|
||||
writeLastRan();
|
||||
function writeLastRan(): void
|
||||
{
|
||||
$datetimegmt = datetimegmt();
|
||||
Variable::set('cron_last_ran', $datetimegmt);
|
||||
$time_taken = microtime(true) - $time_start;
|
||||
$ceil = ceil($time_taken);
|
||||
$round = round($time_taken, 2);
|
||||
echo "--\n[DONE] Cron tasks ran @ {$datetimegmt}";
|
||||
echo "\n{$round}s\n--";
|
||||
if (version_compare(cheveretoVersionInstalled(), '4.2.0', '>=')) {
|
||||
$sql = <<<MySQL
|
||||
INSERT `%table_stats%` (stat_type, stat_date_gmt, stat_cron_time, stat_cron_runs)
|
||||
VALUES ("date", DATE("%date_gmt%"), %time%, 1)
|
||||
ON DUPLICATE KEY
|
||||
UPDATE stat_cron_time = stat_cron_time + %time%,
|
||||
stat_cron_runs = stat_cron_runs + 1;
|
||||
MySQL;
|
||||
$sql = (string) message(
|
||||
$sql,
|
||||
table_stats: DB::getTable('stats'),
|
||||
time: $ceil,
|
||||
date_gmt: $datetimegmt,
|
||||
);
|
||||
|
||||
try {
|
||||
DB::queryExecute($sql);
|
||||
} catch (Throwable $e) {
|
||||
// Do nothing
|
||||
}
|
||||
}
|
||||
exit;
|
||||
Settings::update(['cron_last_ran' => datetimegmt()]);
|
||||
echo "--\n✅ [DONE] Cron tasks ran @ $datetimegmt\n";
|
||||
}
|
||||
function echoLocked(string $job): void
|
||||
{
|
||||
echo "* Job: {$job} [now locked]\n";
|
||||
echo "* [!] Job $job is locked ~ skipping\n";
|
||||
}
|
||||
function storageDelete(): void
|
||||
{
|
||||
$job = 'storage-delete';
|
||||
$lock = new Lock($job);
|
||||
if ($lock->create()) {
|
||||
Queue::process([
|
||||
'type' => $job,
|
||||
]);
|
||||
Queue::process(['type' => $job]);
|
||||
$lock->destroy();
|
||||
|
||||
return;
|
||||
|
@ -193,7 +115,7 @@ function removeDeleteLog(): void
|
|||
}
|
||||
function checkForNews(): void
|
||||
{
|
||||
if (! checkoutUpdate('news_check_datetimegmt', 'PT4H')) {
|
||||
if (!checkoutUpdate('news_check_datetimegmt')) {
|
||||
feedbackAlert('Skipping news check');
|
||||
|
||||
return;
|
||||
|
@ -211,7 +133,7 @@ function checkForNews(): void
|
|||
}
|
||||
function checkForUpdates(): void
|
||||
{
|
||||
if (! checkoutUpdate('update_check_datetimegmt', 'P1D')) {
|
||||
if (!checkoutUpdate('update_check_datetimegmt')) {
|
||||
feedbackAlert('Skipping updates check');
|
||||
|
||||
return;
|
||||
|
@ -227,15 +149,10 @@ function checkForUpdates(): void
|
|||
}
|
||||
echoLocked($job);
|
||||
}
|
||||
function checkoutUpdate(string $datetimeSetting, string $past): bool
|
||||
function checkoutUpdate(string $datetimeSetting): bool
|
||||
{
|
||||
$get = Variable::fetch($datetimeSetting);
|
||||
|
||||
return $get === null
|
||||
|| datetime_add(
|
||||
$get,
|
||||
$past
|
||||
) < datetimegmt();
|
||||
return is_null(Settings::get($datetimeSetting))
|
||||
|| datetime_add(Settings::get($datetimeSetting), 'P1D') < datetimegmt();
|
||||
}
|
||||
function checkHtaccess()
|
||||
{
|
||||
|
|
|
@ -9,10 +9,10 @@
|
|||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
use function Chevereto\Legacy\cheveretoVersionInstalled;
|
||||
use function Chevereto\Legacy\getSetting;
|
||||
|
||||
if (cheveretoVersionInstalled() !== '') {
|
||||
if (getSetting('chevereto_version_installed') !== null) {
|
||||
echo "[ERROR] Chevereto is already installed, try with the update command\n";
|
||||
exit(255);
|
||||
die(255);
|
||||
}
|
||||
require_once PATH_APP_LEGACY_INSTALL . 'installer.php';
|
||||
|
|
|
@ -1,41 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Chevereto.
|
||||
*
|
||||
* (c) Rodolfo Berrios <rodolfo@chevereto.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
$workingDir = PATH_PUBLIC_CONTENT_LEGACY_THEMES_PEAFOWL_LIB;
|
||||
$target = 'chevereto-all.js';
|
||||
$outputFile = $workingDir . $target;
|
||||
echo "* Compile JavaScript\n";
|
||||
echo "---\n";
|
||||
$fh = fopen($outputFile, 'w');
|
||||
$files = [
|
||||
'js/css_browser_detector.js',
|
||||
'js/jquery.min.js',
|
||||
'js/jquery-ui.min.js',
|
||||
'js/hammer.min.js',
|
||||
'js/peafowl.js',
|
||||
'js/images-loaded.js',
|
||||
'js/load-image.js',
|
||||
'js/clipboard.js',
|
||||
'js/chevereto.js',
|
||||
];
|
||||
foreach ($files as $file) {
|
||||
$file = $workingDir . $file;
|
||||
if (! file_exists($file)) {
|
||||
echo "❌ [ERROR] Missing file: {$file}\n";
|
||||
exit(1);
|
||||
}
|
||||
echo "Packing: {$file}\n";
|
||||
fwrite($fh, file_get_contents($file) . "\n");
|
||||
}
|
||||
fclose($fh);
|
||||
echo "---\n";
|
||||
echo "💯 [OK] {$outputFile}\n";
|
||||
exit(0);
|
|
@ -9,9 +9,9 @@
|
|||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
use function Chevere\Filesystem\directoryForPath;
|
||||
use Chevereto\Legacy\Classes\L10n;
|
||||
use Chevereto\Legacy\G\Gettext;
|
||||
use function Chevere\Filesystem\directoryForPath;
|
||||
use function Chevereto\Legacy\G\unlinkIfExists;
|
||||
use function Chevereto\Legacy\get_available_languages;
|
||||
|
||||
|
@ -27,20 +27,20 @@ foreach ($languages as $lang) {
|
|||
$language_override_file = PATH_APP_LANGUAGES . 'overrides/' . $filename;
|
||||
$language_handling = [
|
||||
'base' => [
|
||||
'file' => $language_file,
|
||||
'cache_path' => L10n::PATH_CACHE,
|
||||
'table' => [],
|
||||
'file' => $language_file,
|
||||
'cache_path' => L10n::PATH_CACHE,
|
||||
'table' => [],
|
||||
],
|
||||
'override' => [
|
||||
'file' => $language_override_file,
|
||||
'cache_path' => L10n::PATH_CACHE_OVERRIDES,
|
||||
'table' => [],
|
||||
],
|
||||
'file' => $language_override_file,
|
||||
'cache_path' => L10n::PATH_CACHE_OVERRIDES,
|
||||
'table' => [],
|
||||
]
|
||||
];
|
||||
foreach ($language_handling as $k => $v) {
|
||||
$cache_path = $v['cache_path'];
|
||||
$cache_file = basename($v['file']) . '.cache.php';
|
||||
if (! file_exists($v['file'])) {
|
||||
if (!file_exists($v['file'])) {
|
||||
continue;
|
||||
}
|
||||
$cache = $cache_path . $cache_file;
|
||||
|
@ -51,12 +51,9 @@ foreach ($languages as $lang) {
|
|||
'cache_header' => $k == 'base',
|
||||
]);
|
||||
}
|
||||
echo "{$lang}\n";
|
||||
if (file_exists($language_override_file)) {
|
||||
echo "{$lang} [override]\n";
|
||||
}
|
||||
echo "$lang\n";
|
||||
}
|
||||
echo "---\n";
|
||||
echo L10n::LOCALES_AVAILABLE_FILEPATH . "\n";
|
||||
echo "💯 [OK] Languages re-cached\n";
|
||||
exit(0);
|
||||
die(0);
|
||||
|
|
|
@ -9,38 +9,38 @@
|
|||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
use function Chevere\String\randomString;
|
||||
use Chevereto\Legacy\Classes\Login;
|
||||
use Chevereto\Legacy\Classes\User;
|
||||
use function Chevere\Standard\randomString;
|
||||
|
||||
$opts = getopt('C:u:') ?: [];
|
||||
$missing = [];
|
||||
if (! isset($opts['u'])) {
|
||||
echo '[Error] Missing username' . "\n";
|
||||
exit(255);
|
||||
if (!isset($opts['u'])) {
|
||||
echo "[Error] Missing username" . "\n";
|
||||
die(255);
|
||||
}
|
||||
$password = randomString(24);
|
||||
$user = User::getSingle($opts['u'], 'username');
|
||||
if ($user === []) {
|
||||
echo '[Error] User not found' . "\n";
|
||||
exit(255);
|
||||
echo "[Error] User not found" . "\n";
|
||||
die(255);
|
||||
}
|
||||
$changed = Login::changePassword(
|
||||
userId: $user['id'],
|
||||
password: $password,
|
||||
update_session: false
|
||||
);
|
||||
if (! $changed) {
|
||||
if (!$changed) {
|
||||
// echo "[NOTICE] User doesn't have a password" . "\n";
|
||||
$added = Login::addPassword(
|
||||
userId: $user['id'],
|
||||
password: $password,
|
||||
update_session: false
|
||||
);
|
||||
if (! $added) {
|
||||
echo '[Error] Failed to add password' . "\n";
|
||||
exit(255);
|
||||
if (!$added) {
|
||||
echo "[Error] Failed to add password" . "\n";
|
||||
die(255);
|
||||
}
|
||||
}
|
||||
echo $password . "\n";
|
||||
exit(0);
|
||||
die(0);
|
||||
|
|
|
@ -9,21 +9,21 @@
|
|||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
use function Chevere\Type\getType;
|
||||
use Chevereto\Legacy\Classes\Settings;
|
||||
use function Chevere\Parameter\getType;
|
||||
|
||||
$opts = getopt('C:k:t::') ?: [];
|
||||
if (! isset($opts['k'])) {
|
||||
if (!isset($opts['k'])) {
|
||||
echo "[ERROR] Missing setting key\n";
|
||||
exit(255);
|
||||
die(255);
|
||||
}
|
||||
if (! Settings::hasKey($opts['k'])) {
|
||||
if (!Settings::hasKey($opts['k'])) {
|
||||
echo "[ERROR] Setting key doesn't exists\n";
|
||||
exit(255);
|
||||
die(255);
|
||||
}
|
||||
function toItalic(string $text): string
|
||||
{
|
||||
return "\e[3m{$text}\e[0m";
|
||||
return "\e[3m$text\e[0m";
|
||||
}
|
||||
$value = Settings::get($opts['k']);
|
||||
$echoValue = match (getType($value)) {
|
||||
|
@ -31,9 +31,9 @@ $echoValue = match (getType($value)) {
|
|||
'boolean' => toItalic($value ? 'true' : 'false'),
|
||||
default => $value,
|
||||
};
|
||||
echo "{$echoValue}\n";
|
||||
echo "$echoValue\n";
|
||||
if (isset($opts['t'])) {
|
||||
$typeset = Settings::getTypeset($opts['k']);
|
||||
echo "%({$typeset})\n";
|
||||
echo "%($typeset)\n";
|
||||
}
|
||||
exit(0);
|
||||
die(0);
|
||||
|
|
|
@ -14,22 +14,24 @@ use Chevereto\Legacy\Classes\Settings;
|
|||
$opts = getopt('C:v:k:') ?: [];
|
||||
$missing = [];
|
||||
foreach (['k', 'v'] as $opt) {
|
||||
if (! isset($opts[$opt])) {
|
||||
if (!isset($opts[$opt])) {
|
||||
$missing[] = $opt;
|
||||
}
|
||||
}
|
||||
if ($missing !== []) {
|
||||
echo '[Error] Missing -' . implode(' -', $missing) . "\n";
|
||||
exit(255);
|
||||
echo "[Error] Missing -" . implode(' -', $missing) . "\n";
|
||||
die(255);
|
||||
}
|
||||
if (! Settings::hasKey($opts['k'])) {
|
||||
if (!Settings::hasKey($opts['k'])) {
|
||||
echo "[ERROR] Setting key doesn't exists\n";
|
||||
exit(255);
|
||||
die(255);
|
||||
}
|
||||
/** @var int|string|null $value */
|
||||
$value = $opts['v'] ?? null;
|
||||
Settings::update([
|
||||
$opts['k'] => $value,
|
||||
]);
|
||||
$typeset = Settings::getTypeset($opts['k']);
|
||||
if ($typeset === 'bool') {
|
||||
$value = (int) ($value == 1 || strtolower($value) === 'true');
|
||||
}
|
||||
Settings::update([$opts['k'] => $value]);
|
||||
require 'setting-get.php';
|
||||
exit(0);
|
||||
die(0);
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue