mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2026-02-22 09:42:36 +01:00
Compare commits
31 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cd7dbd5f7b | ||
|
|
8efbca798a | ||
|
|
dd6c20780b | ||
|
|
af81e15ef2 | ||
|
|
09cc2ba8ff | ||
|
|
131023da67 | ||
|
|
86f53b2956 | ||
|
|
a3d992a016 | ||
|
|
6402cfe619 | ||
|
|
ea71fcd120 | ||
|
|
82e3e31277 | ||
|
|
0d4f935b43 | ||
|
|
0205dd523b | ||
|
|
0a8199d81f | ||
|
|
3f6a6cc767 | ||
|
|
33a3dc6203 | ||
|
|
1cd0b459be | ||
|
|
6828ce5803 | ||
|
|
644a44e8e9 | ||
|
|
6c3e4d7880 | ||
|
|
aefb69c51e | ||
|
|
300ee33be2 | ||
|
|
64efca4786 | ||
|
|
ddbfc87ce1 | ||
|
|
3454fa51de | ||
|
|
343ad6beff | ||
|
|
d385303a52 | ||
|
|
00b35e3306 | ||
|
|
e0a25009d9 | ||
|
|
3f0e4b09ce | ||
|
|
96a37a0cb0 |
@@ -26,9 +26,6 @@ import {marked} from "marked";
|
||||
|
||||
import {
|
||||
trans,
|
||||
SEARCH_PLACEHOLDER,
|
||||
SEARCH_SUBMIT,
|
||||
STATISTICS_PARTS
|
||||
} from '../../translator';
|
||||
|
||||
|
||||
@@ -82,9 +79,9 @@ export default class extends Controller {
|
||||
panelPlacement: this.element.dataset.panelPlacement,
|
||||
plugins: [recentSearchesPlugin],
|
||||
openOnFocus: true,
|
||||
placeholder: trans(SEARCH_PLACEHOLDER),
|
||||
placeholder: trans("search.placeholder"),
|
||||
translations: {
|
||||
submitButtonTitle: trans(SEARCH_SUBMIT)
|
||||
submitButtonTitle: trans("search.submit")
|
||||
},
|
||||
|
||||
// Use a navigator compatible with turbo:
|
||||
@@ -153,7 +150,7 @@ export default class extends Controller {
|
||||
},
|
||||
templates: {
|
||||
header({ html }) {
|
||||
return html`<span class="aa-SourceHeaderTitle">${trans(STATISTICS_PARTS)}</span>
|
||||
return html`<span class="aa-SourceHeaderTitle">${trans("part.labelp")}</span>
|
||||
<div class="aa-SourceHeaderLine" />`;
|
||||
},
|
||||
item({item, components, html}) {
|
||||
@@ -197,4 +194,4 @@ export default class extends Controller {
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,8 +25,7 @@ import * as zxcvbnEnPackage from '@zxcvbn-ts/language-en';
|
||||
import * as zxcvbnDePackage from '@zxcvbn-ts/language-de';
|
||||
import * as zxcvbnFrPackage from '@zxcvbn-ts/language-fr';
|
||||
import * as zxcvbnJaPackage from '@zxcvbn-ts/language-ja';
|
||||
import {trans, USER_PASSWORD_STRENGTH_VERY_WEAK, USER_PASSWORD_STRENGTH_WEAK, USER_PASSWORD_STRENGTH_MEDIUM,
|
||||
USER_PASSWORD_STRENGTH_STRONG, USER_PASSWORD_STRENGTH_VERY_STRONG} from '../../translator.js';
|
||||
import {trans} from '../../translator.js';
|
||||
|
||||
/* stimulusFetch: 'lazy' */
|
||||
export default class extends Controller {
|
||||
@@ -89,23 +88,23 @@ export default class extends Controller {
|
||||
|
||||
switch (level) {
|
||||
case 0:
|
||||
text = trans(USER_PASSWORD_STRENGTH_VERY_WEAK);
|
||||
text = trans("user.password_strength.very_weak");
|
||||
classes = "bg-danger badge-danger";
|
||||
break;
|
||||
case 1:
|
||||
text = trans(USER_PASSWORD_STRENGTH_WEAK);
|
||||
text = trans("user.password_strength.weak");
|
||||
classes = "bg-warning badge-warning";
|
||||
break;
|
||||
case 2:
|
||||
text = trans(USER_PASSWORD_STRENGTH_MEDIUM)
|
||||
text = trans("user.password_strength.medium");
|
||||
classes = "bg-info badge-info";
|
||||
break;
|
||||
case 3:
|
||||
text = trans(USER_PASSWORD_STRENGTH_STRONG);
|
||||
text = trans("user.password_strength.strong");
|
||||
classes = "bg-primary badge-primary";
|
||||
break;
|
||||
case 4:
|
||||
text = trans(USER_PASSWORD_STRENGTH_VERY_STRONG);
|
||||
text = trans("user.password_strength.very_strong");
|
||||
classes = "bg-success badge-success";
|
||||
break;
|
||||
default:
|
||||
@@ -120,4 +119,4 @@ export default class extends Controller {
|
||||
this.badgeTarget.classList.add("badge");
|
||||
this.badgeTarget.classList.add(...classes.split(" "));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ import '../../css/components/tom-select_extensions.css';
|
||||
import TomSelect from "tom-select";
|
||||
import {Controller} from "@hotwired/stimulus";
|
||||
|
||||
import {trans, ENTITY_SELECT_GROUP_NEW_NOT_ADDED_TO_DB} from '../../translator.js'
|
||||
import {trans} from '../../translator.js'
|
||||
|
||||
import TomSelect_autoselect_typed from '../../tomselect/autoselect_typed/autoselect_typed'
|
||||
TomSelect.define('autoselect_typed', TomSelect_autoselect_typed)
|
||||
@@ -204,7 +204,7 @@ export default class extends Controller {
|
||||
|
||||
if (data.not_in_db_yet) {
|
||||
//Not yet added items are shown italic and with a badge
|
||||
name += "<i><b>" + escape(data.text) + "</b></i>" + "<span class='ms-3 badge bg-info badge-info'>" + trans(ENTITY_SELECT_GROUP_NEW_NOT_ADDED_TO_DB) + "</span>";
|
||||
name += "<i><b>" + escape(data.text) + "</b></i>" + "<span class='ms-3 badge bg-info badge-info'>" + trans("entity.select.group.new_not_added_to_DB") + "</span>";
|
||||
} else {
|
||||
name += "<b>" + escape(data.text) + "</b>";
|
||||
}
|
||||
|
||||
@@ -62,6 +62,6 @@ export default class extends Controller {
|
||||
element.disabled = true;
|
||||
}
|
||||
|
||||
form.submit();
|
||||
form.requestSubmit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,6 +70,6 @@ export default class extends Controller {
|
||||
//Put our decoded Text into the input box
|
||||
document.getElementById('scan_dialog_input').value = decodedText;
|
||||
//Submit form
|
||||
document.getElementById('scan_dialog_form').submit();
|
||||
document.getElementById('scan_dialog_form').requestSubmit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ import "./register_events";
|
||||
import "./tristate_checkboxes";
|
||||
|
||||
//Define jquery globally
|
||||
window.$ = window.jQuery = require("jquery");
|
||||
global.$ = global.jQuery = require("jquery");
|
||||
|
||||
//Use the local WASM file for the ZXing library
|
||||
import {
|
||||
|
||||
@@ -198,6 +198,7 @@ class WebauthnTFA {
|
||||
{
|
||||
const resultField = document.getElementById('_auth_code');
|
||||
resultField.value = JSON.stringify(data)
|
||||
//requestSubmit() do not work here, probably because the submit is considered invalid. But as we do not use CSFR tokens, it should be fine.
|
||||
form.submit();
|
||||
}
|
||||
|
||||
@@ -232,4 +233,4 @@ class WebauthnTFA {
|
||||
}
|
||||
}
|
||||
|
||||
window.webauthnTFA = new WebauthnTFA();
|
||||
window.webauthnTFA = new WebauthnTFA();
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { localeFallbacks } from '../var/translations/configuration';
|
||||
import { trans, getLocale, setLocale, setLocaleFallbacks } from '@symfony/ux-translator';
|
||||
import { createTranslator } from '@symfony/ux-translator';
|
||||
import { messages, localeFallbacks } from '../var/translations/index.js';
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony UX Translator package.
|
||||
*
|
||||
@@ -9,8 +10,12 @@ import { trans, getLocale, setLocale, setLocaleFallbacks } from '@symfony/ux-tra
|
||||
* If you use TypeScript, you can rename this file to "translator.ts" to take advantage of types checking.
|
||||
*/
|
||||
|
||||
setLocaleFallbacks(localeFallbacks);
|
||||
const translator = createTranslator({
|
||||
messages,
|
||||
localeFallbacks,
|
||||
});
|
||||
|
||||
export { trans };
|
||||
|
||||
export * from '../var/translations';
|
||||
// Wrapper function with default domain set to 'frontend'
|
||||
export const trans = (id, parameters = {}, domain = 'frontend', locale = null) => {
|
||||
return translator.trans(id, parameters, domain, locale);
|
||||
};
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
"symfony/translation": "7.4.*",
|
||||
"symfony/twig-bundle": "7.4.*",
|
||||
"symfony/type-info": "7.4.0",
|
||||
"symfony/ux-translator": "^2.10",
|
||||
"symfony/ux-translator": "^2.32.0",
|
||||
"symfony/ux-turbo": "^2.0",
|
||||
"symfony/validator": "7.4.*",
|
||||
"symfony/web-link": "7.4.*",
|
||||
|
||||
610
composer.lock
generated
610
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -1,3 +1,12 @@
|
||||
ux_translator:
|
||||
# The directory where the JavaScript translations are dumped
|
||||
dump_directory: '%kernel.project_dir%/var/translations'
|
||||
# Only include the frontend translation domain in the JavaScript bundle
|
||||
domains:
|
||||
- 'frontend'
|
||||
|
||||
when@prod:
|
||||
ux_translator:
|
||||
# Control whether TypeScript types are dumped alongside translations.
|
||||
# Disable this if you do not use TypeScript (e.g. in production when using AssetMapper), to speed up cache warmup.
|
||||
# dump_typescript: false
|
||||
|
||||
@@ -1622,6 +1622,7 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param;
|
||||
* flysystem?: array{
|
||||
* filesystem_service: scalar|null|Param,
|
||||
* },
|
||||
* asset_mapper?: array<mixed>,
|
||||
* chain?: array{
|
||||
* loaders: list<scalar|null|Param>,
|
||||
* },
|
||||
@@ -2039,6 +2040,16 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param;
|
||||
* xr_spatial_tracking?: mixed, // Default: null
|
||||
* },
|
||||
* },
|
||||
* cross_origin_isolation?: bool|array{
|
||||
* enabled?: bool|Param, // Default: false
|
||||
* paths?: array<string, array{ // Default: []
|
||||
* coep?: "unsafe-none"|"require-corp"|"credentialless"|Param, // Cross-Origin-Embedder-Policy (COEP) header value
|
||||
* coop?: "unsafe-none"|"same-origin-allow-popups"|"same-origin"|"noopener-allow-popups"|Param, // Cross-Origin-Opener-Policy (COOP) header value
|
||||
* corp?: "same-site"|"same-origin"|"cross-origin"|Param, // Cross-Origin-Resource-Policy (CORP) header value
|
||||
* report_only?: bool|Param, // Use Report-Only headers instead of enforcing (applies to COEP and COOP only) // Default: false
|
||||
* report_to?: scalar|null|Param, // Reporting endpoint name for violations (requires Reporting API configuration, applies to COEP and COOP only) // Default: null
|
||||
* }>,
|
||||
* },
|
||||
* }
|
||||
* @psalm-type TurboConfig = array{
|
||||
* broadcast?: bool|array{
|
||||
@@ -2301,11 +2312,13 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param;
|
||||
* controllers_json?: scalar|null|Param, // Default: "%kernel.project_dir%/assets/controllers.json"
|
||||
* }
|
||||
* @psalm-type UxTranslatorConfig = array{
|
||||
* dump_directory?: scalar|null|Param, // Default: "%kernel.project_dir%/var/translations"
|
||||
* dump_directory?: scalar|null|Param, // The directory where translations and TypeScript types are dumped. // Default: "%kernel.project_dir%/var/translations"
|
||||
* dump_typescript?: bool|Param, // Control whether TypeScript types are dumped alongside translations. Disable this if you do not use TypeScript (e.g. in production when using AssetMapper). // Default: true
|
||||
* domains?: string|array{ // List of domains to include/exclude from the generated translations. Prefix with a `!` to exclude a domain.
|
||||
* type?: scalar|null|Param,
|
||||
* elements?: list<scalar|null|Param>,
|
||||
* },
|
||||
* keys_patterns?: list<scalar|null|Param>,
|
||||
* }
|
||||
* @psalm-type DompdfFontLoaderConfig = array{
|
||||
* autodiscovery?: bool|array{
|
||||
|
||||
@@ -5,3 +5,5 @@ files:
|
||||
translation: /translations/validators.%two_letters_code%.xlf
|
||||
- source: /translations/security.en.xlf
|
||||
translation: /translations/security.%two_letters_code%.xlf
|
||||
- source: /translations/frontend.en.xlf
|
||||
translation: /translations/frontend.%two_letters_code%.xlf
|
||||
|
||||
@@ -21,8 +21,8 @@ differences between them, which might be important for you. Therefore the pros a
|
||||
are listed here.
|
||||
|
||||
{: .important }
|
||||
You have to choose between the database types before you start using Part-DB and **you can not change it (easily) after
|
||||
you have started creating data**. So you should choose the database type for your use case (and possible future uses).
|
||||
While you can change the database platform later (see below), it is still experimental and not recommended.
|
||||
So you should choose the database type for your use case (and possible future uses).
|
||||
|
||||
## Comparison
|
||||
|
||||
@@ -180,3 +180,23 @@ and it is automatically used if available.
|
||||
For SQLite and MySQL < 10.7 it has to be emulated if wanted, which is pretty slow. Therefore it has to be explicitly enabled by setting the
|
||||
`DATABASE_EMULATE_NATURAL_SORT` environment variable to `1`. If it is 0 the classical binary sorting is used, on these databases. The emulations
|
||||
might have some quirks and issues, so it is recommended to use a database which supports natural sorting natively, if you want to use it.
|
||||
|
||||
## Converting between database platforms
|
||||
|
||||
{: .important }
|
||||
The database conversion is still experimental. Therefore it is recommended to backup your database before performing a conversion, and check if everything works as expected afterwards.
|
||||
|
||||
If you want to change the database platform of your Part-DB installation (e.g. from SQLite to MySQL/MariaDB or PostgreSQL, or vice versa), there is the `partdb:migrations:convert-db-platform` console command, which can help you with that:
|
||||
|
||||
1. Make a backup of your current database to be safe if something goes wrong (see the backup documentation).
|
||||
2. Ensure that your database is at the latest schema by running the migrations: `php bin/console doctrine:migrations:migrate`
|
||||
3. Change the `DATABASE_URL` environment variable to the new database platform and connection information. Copy the old `DATABASE_URL` as you will need it later.
|
||||
4. Run `php bin/console doctrine:migrations:migrate` again to create the database schema in the new database. You will not need the admin password, that is shown when running the migrations.
|
||||
5. Run the conversion command, where you have to provide the old `DATABASE_URL` as parameter: `php bin/console partdb:migrations:convert-db-platform <OLD_DATABASE_URL>`
|
||||
Replace `<OLD_DATABASE_URL` with the actual old `DATABASE_URL` value (e.g. `sqlite:///%kernel.project_dir%/var/app.db`):
|
||||
```bash
|
||||
php bin/console partdb:migrations:convert-db-platform sqlite:///%kernel.project_dir%/var/app.db
|
||||
```
|
||||
6. The command will purge all data in the new database and copy all data from the old database to the new one. This might take some time and memory depending on the size of your database.
|
||||
7. Clear the cache: `php bin/console partdb:cache:clear`
|
||||
8. You can login with your existing user accounts in the new database now. Check if everything works as expected.
|
||||
|
||||
@@ -68,6 +68,7 @@ docker exec --user=www-data partdb php bin/console cache:clear
|
||||
deleted!*
|
||||
* `settings:migrate-env-to-settings`: Migrate configuration from environment variables to the settings interface.
|
||||
The value of the environment variable is copied to the settings database, so the environment variable can be removed afterwards without losing the configuration.
|
||||
* `partdb:migrations:convert-db-platform`: Convert the database platform (e.g. from SQLite to MySQL/MariaDB or PostgreSQL, or vice versa).
|
||||
|
||||
## Database commands
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
"popper.js": "^1.14.7",
|
||||
"regenerator-runtime": "^0.13.9",
|
||||
"webpack": "^5.74.0",
|
||||
"webpack-bundle-analyzer": "^4.3.0",
|
||||
"webpack-bundle-analyzer": "^5.1.1",
|
||||
"webpack-cli": "^5.1.0",
|
||||
"webpack-notifier": "^1.15.0"
|
||||
},
|
||||
@@ -65,7 +65,7 @@
|
||||
"json-formatter-js": "^2.3.4",
|
||||
"jszip": "^3.2.0",
|
||||
"katex": "^0.16.0",
|
||||
"marked": "^16.1.1",
|
||||
"marked": "^17.0.1",
|
||||
"marked-gfm-heading-id": "^4.1.1",
|
||||
"marked-mangle": "^1.0.1",
|
||||
"pdfmake": "^0.2.2",
|
||||
@@ -73,5 +73,8 @@
|
||||
"tom-select": "^2.1.0",
|
||||
"ts-loader": "^9.2.6",
|
||||
"typescript": "^5.7.2"
|
||||
},
|
||||
"resolutions": {
|
||||
"jquery": "^3.5.1"
|
||||
}
|
||||
}
|
||||
|
||||
253
src/Command/Migrations/DBPlatformConvertCommand.php
Normal file
253
src/Command/Migrations/DBPlatformConvertCommand.php
Normal file
@@ -0,0 +1,253 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of Part-DB (https://github.com/Part-DB/Part-DB-symfony).
|
||||
*
|
||||
* Copyright (C) 2019 - 2026 Jan Böhmer (https://github.com/jbtronics)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published
|
||||
* by the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
|
||||
namespace App\Command\Migrations;
|
||||
|
||||
use App\Entity\UserSystem\User;
|
||||
use App\Services\ImportExportSystem\PartKeeprImporter\PKImportHelper;
|
||||
use Doctrine\Bundle\DoctrineBundle\ConnectionFactory;
|
||||
use Doctrine\DBAL\Platforms\AbstractMySQLPlatform;
|
||||
use Doctrine\DBAL\Platforms\PostgreSQLPlatform;
|
||||
use Doctrine\Migrations\Configuration\EntityManager\ExistingEntityManager;
|
||||
use Doctrine\Migrations\Configuration\Migration\ExistingConfiguration;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Doctrine\Migrations\DependencyFactory;
|
||||
use Doctrine\ORM\Id\AssignedGenerator;
|
||||
use Doctrine\ORM\Mapping\ClassMetadata;
|
||||
use Symfony\Component\Console\Attribute\AsCommand;
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Style\SymfonyStyle;
|
||||
use Symfony\Component\DependencyInjection\Attribute\Autowire;
|
||||
|
||||
#[AsCommand('partdb:migrations:convert-db-platform', 'Convert the database to a different platform')]
|
||||
class DBPlatformConvertCommand extends Command
|
||||
{
|
||||
|
||||
public function __construct(
|
||||
private readonly EntityManagerInterface $targetEM,
|
||||
private readonly PKImportHelper $importHelper,
|
||||
private readonly DependencyFactory $dependencyFactory,
|
||||
#[Autowire('%kernel.project_dir%')]
|
||||
private readonly string $kernelProjectDir,
|
||||
)
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function configure(): void
|
||||
{
|
||||
$this
|
||||
->setHelp('This command allows you to migrate the database from one database platform to another (e.g. from MySQL to PostgreSQL).')
|
||||
->addArgument('url', InputArgument::REQUIRED, 'The database connection URL of the source database to migrate from');
|
||||
}
|
||||
|
||||
public function execute(InputInterface $input, OutputInterface $output): int
|
||||
{
|
||||
$io = new SymfonyStyle($input, $output);
|
||||
|
||||
$sourceEM = $this->getSourceEm($input->getArgument('url'));
|
||||
|
||||
//Check that both databases are not using the same driver
|
||||
if ($sourceEM->getConnection()->getDatabasePlatform()::class === $this->targetEM->getConnection()->getDatabasePlatform()::class) {
|
||||
$io->warning('Source and target database are using the same database platform / driver. This command is only intended to migrate between different database platforms (e.g. from MySQL to PostgreSQL).');
|
||||
if (!$io->confirm('Do you want to continue anyway?', false)) {
|
||||
$io->info('Aborting migration process.');
|
||||
return Command::SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$this->ensureVersionUpToDate($sourceEM);
|
||||
|
||||
$io->note('This command is still in development. If you encounter any problems, please report them to the issue tracker on GitHub.');
|
||||
$io->warning(sprintf('This command will delete all existing data in the target database "%s". Make sure that you have no important data in the database before you continue!',
|
||||
$this->targetEM->getConnection()->getDatabase() ?? 'unknown'
|
||||
));
|
||||
|
||||
//$users = $sourceEM->getRepository(User::class)->findAll();
|
||||
//dump($users);
|
||||
|
||||
$io->ask('Please type "DELETE ALL DATA" to continue.', '', function ($answer) {
|
||||
if (strtoupper($answer) !== 'DELETE ALL DATA') {
|
||||
throw new \RuntimeException('You did not type "DELETE ALL DATA"!');
|
||||
}
|
||||
return $answer;
|
||||
});
|
||||
|
||||
|
||||
// Example migration logic (to be replaced with actual migration code)
|
||||
$io->info('Starting database migration...');
|
||||
|
||||
//Disable all event listeners on target EM to avoid unwanted side effects
|
||||
$eventManager = $this->targetEM->getEventManager();
|
||||
foreach ($eventManager->getAllListeners() as $event => $listeners) {
|
||||
foreach ($listeners as $listener) {
|
||||
$eventManager->removeEventListener($event, $listener);
|
||||
}
|
||||
}
|
||||
|
||||
$io->info('Clear target database...');
|
||||
$this->importHelper->purgeDatabaseForImport($this->targetEM, ['internal', 'migration_versions']);
|
||||
|
||||
$metadata = $this->targetEM->getMetadataFactory()->getAllMetadata();
|
||||
|
||||
$io->info('Modifying entity metadata for migration...');
|
||||
//First we modify each entity metadata to have an persist cascade on all relations
|
||||
foreach ($metadata as $metadatum) {
|
||||
$entityClass = $metadatum->getName();
|
||||
$io->writeln('Modifying cascade and ID settings for entity: ' . $entityClass, OutputInterface::VERBOSITY_VERBOSE);
|
||||
|
||||
foreach ($metadatum->getAssociationNames() as $fieldName) {
|
||||
$mapping = $metadatum->getAssociationMapping($fieldName);
|
||||
$mapping->cascade = array_unique(array_merge($mapping->cascade, ['persist']));
|
||||
$mapping->fetch = ClassMetadata::FETCH_EAGER; //Avoid lazy loading issues during migration
|
||||
|
||||
$metadatum->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
|
||||
$metadatum->setIdGenerator(new AssignedGenerator());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$io->progressStart(count($metadata));
|
||||
|
||||
//First we migrate users to avoid foreign key constraint issues
|
||||
$io->info('Migrating users first to avoid foreign key constraint issues...');
|
||||
$this->fixUsers($sourceEM);
|
||||
|
||||
//Afterward we migrate all entities
|
||||
foreach ($metadata as $metadatum) {
|
||||
//skip all superclasses
|
||||
if ($metadatum->isMappedSuperclass) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$entityClass = $metadatum->getName();
|
||||
|
||||
$io->note('Migrating entity: ' . $entityClass);
|
||||
|
||||
$repo = $sourceEM->getRepository($entityClass);
|
||||
$items = $repo->findAll();
|
||||
foreach ($items as $index => $item) {
|
||||
$this->targetEM->persist($item);
|
||||
}
|
||||
$this->targetEM->flush();
|
||||
}
|
||||
|
||||
$io->progressFinish();
|
||||
|
||||
|
||||
//Fix sequences / auto increment values on target database
|
||||
$io->info('Fixing sequences / auto increment values on target database...');
|
||||
$this->fixAutoIncrements($this->targetEM);
|
||||
|
||||
$io->success('Database migration completed successfully.');
|
||||
|
||||
if ($io->isVerbose()) {
|
||||
$io->info('Process took peak memory: ' . round(memory_get_peak_usage(true) / 1024 / 1024, 2) . ' MB');
|
||||
}
|
||||
|
||||
return Command::SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a source EntityManager based on the given connection URL
|
||||
* @param string $url
|
||||
* @return EntityManagerInterface
|
||||
*/
|
||||
private function getSourceEm(string $url): EntityManagerInterface
|
||||
{
|
||||
//Replace any %kernel.project_dir% placeholders
|
||||
$url = str_replace('%kernel.project_dir%', $this->kernelProjectDir, $url);
|
||||
|
||||
$connectionFactory = new ConnectionFactory();
|
||||
$connection = $connectionFactory->createConnection(['url' => $url]);
|
||||
return new EntityManager($connection, $this->targetEM->getConfiguration());
|
||||
}
|
||||
|
||||
private function ensureVersionUpToDate(EntityManagerInterface $sourceEM): void
|
||||
{
|
||||
//Ensure that target database is up to date
|
||||
$migrationStatusCalculator = $this->dependencyFactory->getMigrationStatusCalculator();
|
||||
$newMigrations = $migrationStatusCalculator->getNewMigrations();
|
||||
if (count($newMigrations->getItems()) > 0) {
|
||||
throw new \RuntimeException("Target database is not up to date. Please run all migrations (with doctrine:migrations:migrate) before starting the migration process.");
|
||||
}
|
||||
|
||||
$sourceDependencyLoader = DependencyFactory::fromEntityManager(new ExistingConfiguration($this->dependencyFactory->getConfiguration()), new ExistingEntityManager($sourceEM));
|
||||
$sourceMigrationStatusCalculator = $sourceDependencyLoader->getMigrationStatusCalculator();
|
||||
$sourceNewMigrations = $sourceMigrationStatusCalculator->getNewMigrations();
|
||||
if (count($sourceNewMigrations->getItems()) > 0) {
|
||||
throw new \RuntimeException("Source database is not up to date. Please run all migrations (with doctrine:migrations:migrate) on the source database before starting the migration process.");
|
||||
}
|
||||
}
|
||||
|
||||
private function fixUsers(EntityManagerInterface $sourceEM): void
|
||||
{
|
||||
//To avoid a problem with (Column 'settings' cannot be null) in MySQL we need to migrate the user entities first
|
||||
//and fix the settings and backupCodes fields
|
||||
|
||||
$reflClass = new \ReflectionClass(User::class);
|
||||
foreach ($sourceEM->getRepository(User::class)->findAll() as $user) {
|
||||
foreach (['settings', 'backupCodes'] as $field) {
|
||||
$property = $reflClass->getProperty($field);
|
||||
if (!$property->isInitialized($user) || $property->getValue($user) === null) {
|
||||
$property->setValue($user, []);
|
||||
}
|
||||
}
|
||||
$this->targetEM->persist($user);
|
||||
}
|
||||
}
|
||||
|
||||
private function fixAutoIncrements(EntityManagerInterface $em): void
|
||||
{
|
||||
$connection = $em->getConnection();
|
||||
$platform = $connection->getDatabasePlatform();
|
||||
|
||||
if ($platform instanceof PostgreSQLPlatform) {
|
||||
$connection->executeStatement(
|
||||
//From: https://wiki.postgresql.org/wiki/Fixing_Sequences
|
||||
<<<SQL
|
||||
SELECT 'SELECT SETVAL(' ||
|
||||
quote_literal(quote_ident(PGT.schemaname) || '.' || quote_ident(S.relname)) ||
|
||||
', COALESCE(MAX(' ||quote_ident(C.attname)|| '), 1) ) FROM ' ||
|
||||
quote_ident(PGT.schemaname)|| '.'||quote_ident(T.relname)|| ';'
|
||||
FROM pg_class AS S,
|
||||
pg_depend AS D,
|
||||
pg_class AS T,
|
||||
pg_attribute AS C,
|
||||
pg_tables AS PGT
|
||||
WHERE S.relkind = 'S'
|
||||
AND S.oid = D.objid
|
||||
AND D.refobjid = T.oid
|
||||
AND D.refobjid = C.attrelid
|
||||
AND D.refobjsubid = C.attnum
|
||||
AND T.relname = PGT.tablename
|
||||
ORDER BY S.relname;
|
||||
SQL);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -319,6 +319,7 @@ class PartListsController extends AbstractController
|
||||
|
||||
//As an unchecked checkbox is not set in the query, the default value for all bools have to be false (which is the default argument value)!
|
||||
$filter->setName($request->query->getBoolean('name'));
|
||||
$filter->setDbId($request->query->getBoolean('dbid'));
|
||||
$filter->setCategory($request->query->getBoolean('category'));
|
||||
$filter->setDescription($request->query->getBoolean('description'));
|
||||
$filter->setMpn($request->query->getBoolean('mpn'));
|
||||
|
||||
@@ -23,6 +23,7 @@ declare(strict_types=1);
|
||||
namespace App\DataTables\Filters;
|
||||
use App\DataTables\Filters\Constraints\AbstractConstraint;
|
||||
use Doctrine\ORM\QueryBuilder;
|
||||
use Doctrine\DBAL\ParameterType;
|
||||
|
||||
class PartSearchFilter implements FilterInterface
|
||||
{
|
||||
@@ -33,6 +34,9 @@ class PartSearchFilter implements FilterInterface
|
||||
/** @var bool Use name field for searching */
|
||||
protected bool $name = true;
|
||||
|
||||
/** @var bool Use id field for searching */
|
||||
protected bool $dbId = false;
|
||||
|
||||
/** @var bool Use category name for searching */
|
||||
protected bool $category = true;
|
||||
|
||||
@@ -120,33 +124,51 @@ class PartSearchFilter implements FilterInterface
|
||||
public function apply(QueryBuilder $queryBuilder): void
|
||||
{
|
||||
$fields_to_search = $this->getFieldsToSearch();
|
||||
$is_numeric = preg_match('/^\d+$/', $this->keyword) === 1;
|
||||
|
||||
// Add exact ID match only when the keyword is numeric
|
||||
$search_dbId = $is_numeric && (bool)$this->dbId;
|
||||
|
||||
//If we have nothing to search for, do nothing
|
||||
if ($fields_to_search === [] || $this->keyword === '') {
|
||||
if (($fields_to_search === [] && !$search_dbId) || $this->keyword === '') {
|
||||
return;
|
||||
}
|
||||
|
||||
//Convert the fields to search to a list of expressions
|
||||
$expressions = array_map(function (string $field): string {
|
||||
$expressions = [];
|
||||
|
||||
if($fields_to_search !== []) {
|
||||
//Convert the fields to search to a list of expressions
|
||||
$expressions = array_map(function (string $field): string {
|
||||
if ($this->regex) {
|
||||
return sprintf("REGEXP(%s, :search_query) = TRUE", $field);
|
||||
}
|
||||
|
||||
return sprintf("ILIKE(%s, :search_query) = TRUE", $field);
|
||||
}, $fields_to_search);
|
||||
|
||||
//For regex, we pass the query as is, for like we add % to the start and end as wildcards
|
||||
if ($this->regex) {
|
||||
return sprintf("REGEXP(%s, :search_query) = TRUE", $field);
|
||||
$queryBuilder->setParameter('search_query', $this->keyword);
|
||||
} else {
|
||||
//Escape % and _ characters in the keyword
|
||||
$this->keyword = str_replace(['%', '_'], ['\%', '\_'], $this->keyword);
|
||||
$queryBuilder->setParameter('search_query', '%' . $this->keyword . '%');
|
||||
}
|
||||
}
|
||||
|
||||
return sprintf("ILIKE(%s, :search_query) = TRUE", $field);
|
||||
}, $fields_to_search);
|
||||
//Use equal expression to just search for exact numeric matches
|
||||
if ($search_dbId) {
|
||||
$expressions[] = $queryBuilder->expr()->eq('part.id', ':id_exact');
|
||||
$queryBuilder->setParameter('id_exact', (int) $this->keyword,
|
||||
\Doctrine\DBAL\ParameterType::INTEGER);
|
||||
}
|
||||
|
||||
//Add Or concatenation of the expressions to our query
|
||||
$queryBuilder->andWhere(
|
||||
$queryBuilder->expr()->orX(...$expressions)
|
||||
);
|
||||
|
||||
//For regex, we pass the query as is, for like we add % to the start and end as wildcards
|
||||
if ($this->regex) {
|
||||
$queryBuilder->setParameter('search_query', $this->keyword);
|
||||
} else {
|
||||
//Escape % and _ characters in the keyword
|
||||
$this->keyword = str_replace(['%', '_'], ['\%', '\_'], $this->keyword);
|
||||
$queryBuilder->setParameter('search_query', '%' . $this->keyword . '%');
|
||||
//Guard condition
|
||||
if (!empty($expressions)) {
|
||||
//Add Or concatenation of the expressions to our query
|
||||
$queryBuilder->andWhere(
|
||||
$queryBuilder->expr()->orX(...$expressions)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -183,6 +205,17 @@ class PartSearchFilter implements FilterInterface
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function isDbId(): bool
|
||||
{
|
||||
return $this->dbId;
|
||||
}
|
||||
|
||||
public function setDbId(bool $dbId): PartSearchFilter
|
||||
{
|
||||
$this->dbId = $dbId;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function isCategory(): bool
|
||||
{
|
||||
return $this->category;
|
||||
|
||||
@@ -58,7 +58,7 @@ class EDACategoryInfo
|
||||
/** @var bool|null If this is set to true, then this part will be excluded in the simulation */
|
||||
#[Column(type: Types::BOOLEAN, nullable: true)]
|
||||
#[Groups(['full', 'category:read', 'category:write', 'import'])]
|
||||
private ?bool $exclude_from_sim = true;
|
||||
private ?bool $exclude_from_sim = null;
|
||||
|
||||
/** @var string|null The KiCAD schematic symbol, which should be used (the path to the library) */
|
||||
#[Column(type: Types::STRING, nullable: true)]
|
||||
|
||||
@@ -109,6 +109,13 @@ class DBElementRepository extends EntityRepository
|
||||
return [];
|
||||
}
|
||||
|
||||
//Ensure that all IDs are integers and none is null
|
||||
foreach ($ids as $id) {
|
||||
if (!is_int($id)) {
|
||||
throw new \InvalidArgumentException('Non-integer ID given to findByIDInMatchingOrder: ' . var_export($id, true));
|
||||
}
|
||||
}
|
||||
|
||||
$cache_key = implode(',', $ids);
|
||||
|
||||
//Check if the result is already cached
|
||||
|
||||
@@ -189,7 +189,7 @@ class KiCadHelper
|
||||
"symbolIdStr" => $part->getEdaInfo()->getKicadSymbol() ?? $part->getCategory()?->getEdaInfo()->getKicadSymbol() ?? "",
|
||||
"exclude_from_bom" => $this->boolToKicadBool($part->getEdaInfo()->getExcludeFromBom() ?? $part->getCategory()?->getEdaInfo()->getExcludeFromBom() ?? false),
|
||||
"exclude_from_board" => $this->boolToKicadBool($part->getEdaInfo()->getExcludeFromBoard() ?? $part->getCategory()?->getEdaInfo()->getExcludeFromBoard() ?? false),
|
||||
"exclude_from_sim" => $this->boolToKicadBool($part->getEdaInfo()->getExcludeFromSim() ?? $part->getCategory()?->getEdaInfo()->getExcludeFromSim() ?? true),
|
||||
"exclude_from_sim" => $this->boolToKicadBool($part->getEdaInfo()->getExcludeFromSim() ?? $part->getCategory()?->getEdaInfo()->getExcludeFromSim() ?? false),
|
||||
"fields" => []
|
||||
];
|
||||
|
||||
|
||||
@@ -39,10 +39,10 @@ class PKImportHelper
|
||||
* Existing users and groups are not purged.
|
||||
* This is needed to avoid ID collisions.
|
||||
*/
|
||||
public function purgeDatabaseForImport(): void
|
||||
public function purgeDatabaseForImport(?EntityManagerInterface $entityManager = null, array $excluded_tables = ['users', 'groups', 'u2f_keys', 'internal', 'migration_versions']): void
|
||||
{
|
||||
//We use the ResetAutoIncrementORMPurger to reset the auto increment values of the tables. Also it normalizes table names before checking for exclusion.
|
||||
$purger = new ResetAutoIncrementORMPurger($this->em, ['users', 'groups', 'u2f_keys', 'internal', 'migration_versions']);
|
||||
$purger = new ResetAutoIncrementORMPurger($entityManager ?? $this->em, $excluded_tables);
|
||||
$purger->purge();
|
||||
}
|
||||
|
||||
|
||||
@@ -680,7 +680,7 @@ class OEMSecretsProvider implements InfoProviderInterface
|
||||
if (is_array($prices)) {
|
||||
// Step 1: Check if prices exist in the preferred currency
|
||||
if (isset($prices[$this->settings->currency]) && is_array($prices[$this->settings->currency])) {
|
||||
$priceDetails = $prices[$this->$this->settings->currency];
|
||||
$priceDetails = $prices[$this->settings->currency];
|
||||
foreach ($priceDetails as $priceDetail) {
|
||||
if (
|
||||
is_array($priceDetail) &&
|
||||
|
||||
13
symfony.lock
13
symfony.lock
@@ -718,18 +718,17 @@
|
||||
"files": []
|
||||
},
|
||||
"symfony/ux-translator": {
|
||||
"version": "2.9",
|
||||
"version": "2.32",
|
||||
"recipe": {
|
||||
"repo": "github.com/symfony/recipes",
|
||||
"branch": "main",
|
||||
"version": "2.9",
|
||||
"ref": "bc396565cc4cab95692dd6df810553dc22e352e1"
|
||||
"version": "2.32",
|
||||
"ref": "20e2abac415da4c3a9a6bafa059a6419beb74593"
|
||||
},
|
||||
"files": [
|
||||
"./assets/translator.js",
|
||||
"./config/packages/ux_translator.yaml",
|
||||
"./var/translations/configuration.js",
|
||||
"./var/translations/index.js"
|
||||
"assets/translator.js",
|
||||
"config/packages/ux_translator.yaml",
|
||||
"var/translations/index.js"
|
||||
]
|
||||
},
|
||||
"symfony/ux-turbo": {
|
||||
|
||||
@@ -11,6 +11,10 @@
|
||||
<input type="checkbox" class="form-check-input" id="search_name" name="name" value="1" checked {{ stimulus_controller('elements/localStorage_checkbox') }}>
|
||||
<label for="search_name" class="form-check-label justify-content-start">{% trans %}name.label{% endtrans %}</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input type="checkbox" class="form-check-input" id="search_dbid" name="dbid" value="1" checked {{ stimulus_controller('elements/localStorage_checkbox') }}>
|
||||
<label for="search_dbid" class="form-check-label justify-content-start">{% trans %}id.label{% endtrans %}</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input type="checkbox" class="form-check-input" id="search_category" name="category" value="1" checked {{ stimulus_controller('elements/localStorage_checkbox') }}>
|
||||
<label for="search_category" class="form-check-label justify-content-start">{% trans %}category.label{% endtrans %}</label>
|
||||
|
||||
80
translations/frontend.cs.xlf
Normal file
80
translations/frontend.cs.xlf
Normal file
@@ -0,0 +1,80 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="cs">
|
||||
<file id="frontend.cs">
|
||||
<unit id="eLrezdb" name="search.placeholder">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:67</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:61</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">templates\AdminPages\EntityAdminBase.html.twig:9</note>
|
||||
<note priority="1">templates\base.html.twig:80</note>
|
||||
<note priority="1">templates\base.html.twig:179</note>
|
||||
<note priority="1">templates\base.html.twig:206</note>
|
||||
<note priority="1">templates\base.html.twig:237</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.placeholder</source>
|
||||
<target>Hledat</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="R4hoCqe" name="part.labelp">
|
||||
<segment>
|
||||
<source>part.labelp</source>
|
||||
<target>Díly</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="S4CxO.T" name="entity.select.group.new_not_added_to_DB">
|
||||
<segment state="translated">
|
||||
<source>entity.select.group.new_not_added_to_DB</source>
|
||||
<target>Nový (zatím nebyl přidán do DB)</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="9rnHbSK" name="user.password_strength.very_weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_weak</source>
|
||||
<target>Velmi slabé</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="gKHmHwM" name="user.password_strength.weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.weak</source>
|
||||
<target>Slabé</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="c44gN8b" name="user.password_strength.medium">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.medium</source>
|
||||
<target>Střední</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="NwiBLHc" name="user.password_strength.strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.strong</source>
|
||||
<target>Silné</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Bw.iCUm" name="user.password_strength.very_strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_strong</source>
|
||||
<target>Velmi silné</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="U5IhkwB" name="search.submit">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:68</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:62</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.submit</source>
|
||||
<target>Jdi!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
</file>
|
||||
</xliff>
|
||||
80
translations/frontend.da.xlf
Normal file
80
translations/frontend.da.xlf
Normal file
@@ -0,0 +1,80 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="da">
|
||||
<file id="frontend.da">
|
||||
<unit id="lQ8QeGr" name="search.placeholder">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:67</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:61</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">templates\AdminPages\EntityAdminBase.html.twig:9</note>
|
||||
<note priority="1">templates\base.html.twig:80</note>
|
||||
<note priority="1">templates\base.html.twig:179</note>
|
||||
<note priority="1">templates\base.html.twig:206</note>
|
||||
<note priority="1">templates\base.html.twig:237</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.placeholder</source>
|
||||
<target>Søg</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="R4hoCqe" name="part.labelp">
|
||||
<segment>
|
||||
<source>part.labelp</source>
|
||||
<target>Komponenter</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="_cXCaLo" name="entity.select.group.new_not_added_to_DB">
|
||||
<segment state="translated">
|
||||
<source>entity.select.group.new_not_added_to_DB</source>
|
||||
<target>Ny (endnu ikke tilføjet til database)</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="RdFvZsb" name="user.password_strength.very_weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_weak</source>
|
||||
<target>Meget svag</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="IBjmblZ" name="user.password_strength.weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.weak</source>
|
||||
<target>Svag</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="qSm_ID0" name="user.password_strength.medium">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.medium</source>
|
||||
<target>Middel</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="aWAaADS" name="user.password_strength.strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.strong</source>
|
||||
<target>Stærk</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Wa9CStW" name="user.password_strength.very_strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_strong</source>
|
||||
<target>Meget stærk</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="N66qZeD" name="search.submit">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:68</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:62</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.submit</source>
|
||||
<target>Kom nu!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
</file>
|
||||
</xliff>
|
||||
80
translations/frontend.de.xlf
Normal file
80
translations/frontend.de.xlf
Normal file
@@ -0,0 +1,80 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="de">
|
||||
<file id="frontend.de">
|
||||
<unit id="eLrezdb" name="search.placeholder">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:67</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:61</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">templates\AdminPages\EntityAdminBase.html.twig:9</note>
|
||||
<note priority="1">templates\base.html.twig:80</note>
|
||||
<note priority="1">templates\base.html.twig:179</note>
|
||||
<note priority="1">templates\base.html.twig:206</note>
|
||||
<note priority="1">templates\base.html.twig:237</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.placeholder</source>
|
||||
<target>Suche</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="R4hoCqe" name="part.labelp">
|
||||
<segment>
|
||||
<source>part.labelp</source>
|
||||
<target>Bauteile</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="S4CxO.T" name="entity.select.group.new_not_added_to_DB">
|
||||
<segment state="translated">
|
||||
<source>entity.select.group.new_not_added_to_DB</source>
|
||||
<target>Neu (noch nicht zur DB hinzugefügt)</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="9rnHbSK" name="user.password_strength.very_weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_weak</source>
|
||||
<target>Sehr schwach</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="gKHmHwM" name="user.password_strength.weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.weak</source>
|
||||
<target>Schwach</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="c44gN8b" name="user.password_strength.medium">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.medium</source>
|
||||
<target>Mittel</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="NwiBLHc" name="user.password_strength.strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.strong</source>
|
||||
<target>Stark</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Bw.iCUm" name="user.password_strength.very_strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_strong</source>
|
||||
<target>Sehr stark</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="U5IhkwB" name="search.submit">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:68</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:62</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.submit</source>
|
||||
<target>Los!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
</file>
|
||||
</xliff>
|
||||
28
translations/frontend.el.xlf
Normal file
28
translations/frontend.el.xlf
Normal file
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="el">
|
||||
<file id="frontend.el">
|
||||
<unit id="lQ8QeGr" name="search.placeholder">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:67</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:61</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">templates\AdminPages\EntityAdminBase.html.twig:9</note>
|
||||
<note priority="1">templates\base.html.twig:80</note>
|
||||
<note priority="1">templates\base.html.twig:179</note>
|
||||
<note priority="1">templates\base.html.twig:206</note>
|
||||
<note priority="1">templates\base.html.twig:237</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.placeholder</source>
|
||||
<target>Αναζήτηση</target>
|
||||
</segment>
|
||||
</unit>
|
||||
</file>
|
||||
</xliff>
|
||||
80
translations/frontend.en.xlf
Normal file
80
translations/frontend.en.xlf
Normal file
@@ -0,0 +1,80 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="en">
|
||||
<file id="frontend.en">
|
||||
<unit id="eLrezdb" name="search.placeholder">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:67</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:61</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">templates\AdminPages\EntityAdminBase.html.twig:9</note>
|
||||
<note priority="1">templates\base.html.twig:80</note>
|
||||
<note priority="1">templates\base.html.twig:179</note>
|
||||
<note priority="1">templates\base.html.twig:206</note>
|
||||
<note priority="1">templates\base.html.twig:237</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.placeholder</source>
|
||||
<target>Search</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="R4hoCqe" name="part.labelp">
|
||||
<segment state="translated">
|
||||
<source>part.labelp</source>
|
||||
<target>Parts</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="S4CxO.T" name="entity.select.group.new_not_added_to_DB">
|
||||
<segment state="translated">
|
||||
<source>entity.select.group.new_not_added_to_DB</source>
|
||||
<target>New (not added to DB yet)</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="9rnHbSK" name="user.password_strength.very_weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_weak</source>
|
||||
<target>Very weak</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="gKHmHwM" name="user.password_strength.weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.weak</source>
|
||||
<target>Weak</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="c44gN8b" name="user.password_strength.medium">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.medium</source>
|
||||
<target>Medium</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="NwiBLHc" name="user.password_strength.strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.strong</source>
|
||||
<target>Strong</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Bw.iCUm" name="user.password_strength.very_strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_strong</source>
|
||||
<target>Very strong</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="U5IhkwB" name="search.submit">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:68</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:62</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.submit</source>
|
||||
<target>Go!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
</file>
|
||||
</xliff>
|
||||
80
translations/frontend.es.xlf
Normal file
80
translations/frontend.es.xlf
Normal file
@@ -0,0 +1,80 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="es">
|
||||
<file id="frontend.es">
|
||||
<unit id="eLrezdb" name="search.placeholder">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:67</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:61</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">templates\AdminPages\EntityAdminBase.html.twig:9</note>
|
||||
<note priority="1">templates\base.html.twig:80</note>
|
||||
<note priority="1">templates\base.html.twig:179</note>
|
||||
<note priority="1">templates\base.html.twig:206</note>
|
||||
<note priority="1">templates\base.html.twig:237</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.placeholder</source>
|
||||
<target>Buscar</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="R4hoCqe" name="part.labelp">
|
||||
<segment>
|
||||
<source>part.labelp</source>
|
||||
<target>Componentes</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="S4CxO.T" name="entity.select.group.new_not_added_to_DB">
|
||||
<segment state="translated">
|
||||
<source>entity.select.group.new_not_added_to_DB</source>
|
||||
<target>Nuevo (no añadido a la base de datos)</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="9rnHbSK" name="user.password_strength.very_weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_weak</source>
|
||||
<target>Muy débil</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="gKHmHwM" name="user.password_strength.weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.weak</source>
|
||||
<target>Débil</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="c44gN8b" name="user.password_strength.medium">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.medium</source>
|
||||
<target>Medio</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="NwiBLHc" name="user.password_strength.strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.strong</source>
|
||||
<target>Fuerte</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Bw.iCUm" name="user.password_strength.very_strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_strong</source>
|
||||
<target>Muy fuerte</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="U5IhkwB" name="search.submit">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:68</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:62</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.submit</source>
|
||||
<target>¡Vamos!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
</file>
|
||||
</xliff>
|
||||
44
translations/frontend.fr.xlf
Normal file
44
translations/frontend.fr.xlf
Normal file
@@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="fr">
|
||||
<file id="frontend.fr">
|
||||
<unit id="lQ8QeGr" name="search.placeholder">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:67</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:61</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">templates\AdminPages\EntityAdminBase.html.twig:9</note>
|
||||
<note priority="1">templates\base.html.twig:80</note>
|
||||
<note priority="1">templates\base.html.twig:179</note>
|
||||
<note priority="1">templates\base.html.twig:206</note>
|
||||
<note priority="1">templates\base.html.twig:237</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.placeholder</source>
|
||||
<target>Recherche</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="R4hoCqe" name="part.labelp">
|
||||
<segment>
|
||||
<source>part.labelp</source>
|
||||
<target>Composants</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="N66qZeD" name="search.submit">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:68</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:62</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.submit</source>
|
||||
<target>Rechercher!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
</file>
|
||||
</xliff>
|
||||
80
translations/frontend.hu.xlf
Normal file
80
translations/frontend.hu.xlf
Normal file
@@ -0,0 +1,80 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="hu">
|
||||
<file id="frontend.hu">
|
||||
<unit id="eLrezdb" name="search.placeholder">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:67</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:61</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">templates\AdminPages\EntityAdminBase.html.twig:9</note>
|
||||
<note priority="1">templates\base.html.twig:80</note>
|
||||
<note priority="1">templates\base.html.twig:179</note>
|
||||
<note priority="1">templates\base.html.twig:206</note>
|
||||
<note priority="1">templates\base.html.twig:237</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.placeholder</source>
|
||||
<target>Keresés</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="R4hoCqe" name="part.labelp">
|
||||
<segment>
|
||||
<source>part.labelp</source>
|
||||
<target>Alkatrészek</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="S4CxO.T" name="entity.select.group.new_not_added_to_DB">
|
||||
<segment state="translated">
|
||||
<source>entity.select.group.new_not_added_to_DB</source>
|
||||
<target>Új (még nem hozzáadva az adatbázishoz)</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="9rnHbSK" name="user.password_strength.very_weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_weak</source>
|
||||
<target>Nagyon gyenge</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="gKHmHwM" name="user.password_strength.weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.weak</source>
|
||||
<target>Gyenge</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="c44gN8b" name="user.password_strength.medium">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.medium</source>
|
||||
<target>Közepes</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="NwiBLHc" name="user.password_strength.strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.strong</source>
|
||||
<target>Erős</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Bw.iCUm" name="user.password_strength.very_strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_strong</source>
|
||||
<target>Nagyon erős</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="U5IhkwB" name="search.submit">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:68</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:62</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.submit</source>
|
||||
<target>Indítás!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
</file>
|
||||
</xliff>
|
||||
80
translations/frontend.it.xlf
Normal file
80
translations/frontend.it.xlf
Normal file
@@ -0,0 +1,80 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="it">
|
||||
<file id="frontend.it">
|
||||
<unit id="eLrezdb" name="search.placeholder">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:67</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:61</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">templates\AdminPages\EntityAdminBase.html.twig:9</note>
|
||||
<note priority="1">templates\base.html.twig:80</note>
|
||||
<note priority="1">templates\base.html.twig:179</note>
|
||||
<note priority="1">templates\base.html.twig:206</note>
|
||||
<note priority="1">templates\base.html.twig:237</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.placeholder</source>
|
||||
<target>Ricerca</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="R4hoCqe" name="part.labelp">
|
||||
<segment>
|
||||
<source>part.labelp</source>
|
||||
<target>Componenti</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="S4CxO.T" name="entity.select.group.new_not_added_to_DB">
|
||||
<segment state="translated">
|
||||
<source>entity.select.group.new_not_added_to_DB</source>
|
||||
<target>Nuovo (non ancora aggiunto al DB)</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="9rnHbSK" name="user.password_strength.very_weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_weak</source>
|
||||
<target>Molto debole</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="gKHmHwM" name="user.password_strength.weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.weak</source>
|
||||
<target>Debole</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="c44gN8b" name="user.password_strength.medium">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.medium</source>
|
||||
<target>Media</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="NwiBLHc" name="user.password_strength.strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.strong</source>
|
||||
<target>Forte</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Bw.iCUm" name="user.password_strength.very_strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_strong</source>
|
||||
<target>Molto forte</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="U5IhkwB" name="search.submit">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:68</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:62</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.submit</source>
|
||||
<target>Cerca!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
</file>
|
||||
</xliff>
|
||||
44
translations/frontend.ja.xlf
Normal file
44
translations/frontend.ja.xlf
Normal file
@@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="ja">
|
||||
<file id="frontend.ja">
|
||||
<unit id="lQ8QeGr" name="search.placeholder">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:67</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:61</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">templates\AdminPages\EntityAdminBase.html.twig:9</note>
|
||||
<note priority="1">templates\base.html.twig:80</note>
|
||||
<note priority="1">templates\base.html.twig:179</note>
|
||||
<note priority="1">templates\base.html.twig:206</note>
|
||||
<note priority="1">templates\base.html.twig:237</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.placeholder</source>
|
||||
<target>検索</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="R4hoCqe" name="part.labelp">
|
||||
<segment>
|
||||
<source>part.labelp</source>
|
||||
<target>部品</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="N66qZeD" name="search.submit">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:68</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:62</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.submit</source>
|
||||
<target>検索</target>
|
||||
</segment>
|
||||
</unit>
|
||||
</file>
|
||||
</xliff>
|
||||
28
translations/frontend.nl.xlf
Normal file
28
translations/frontend.nl.xlf
Normal file
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="nl">
|
||||
<file id="frontend.nl">
|
||||
<unit id="lQ8QeGr" name="search.placeholder">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:67</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:61</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">templates\AdminPages\EntityAdminBase.html.twig:9</note>
|
||||
<note priority="1">templates\base.html.twig:80</note>
|
||||
<note priority="1">templates\base.html.twig:179</note>
|
||||
<note priority="1">templates\base.html.twig:206</note>
|
||||
<note priority="1">templates\base.html.twig:237</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.placeholder</source>
|
||||
<target>Zoeken</target>
|
||||
</segment>
|
||||
</unit>
|
||||
</file>
|
||||
</xliff>
|
||||
80
translations/frontend.pl.xlf
Normal file
80
translations/frontend.pl.xlf
Normal file
@@ -0,0 +1,80 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="pl">
|
||||
<file id="frontend.pl">
|
||||
<unit id="eLrezdb" name="search.placeholder">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:67</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:61</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">templates\AdminPages\EntityAdminBase.html.twig:9</note>
|
||||
<note priority="1">templates\base.html.twig:80</note>
|
||||
<note priority="1">templates\base.html.twig:179</note>
|
||||
<note priority="1">templates\base.html.twig:206</note>
|
||||
<note priority="1">templates\base.html.twig:237</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.placeholder</source>
|
||||
<target>Szukaj</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="R4hoCqe" name="part.labelp">
|
||||
<segment>
|
||||
<source>part.labelp</source>
|
||||
<target>Komponenty</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="S4CxO.T" name="entity.select.group.new_not_added_to_DB">
|
||||
<segment state="translated">
|
||||
<source>entity.select.group.new_not_added_to_DB</source>
|
||||
<target>Nowość (jeszcze niedodana do DB)</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="9rnHbSK" name="user.password_strength.very_weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_weak</source>
|
||||
<target>Bardzo słabe</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="gKHmHwM" name="user.password_strength.weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.weak</source>
|
||||
<target>Słabe</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="c44gN8b" name="user.password_strength.medium">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.medium</source>
|
||||
<target>Średnie</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="NwiBLHc" name="user.password_strength.strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.strong</source>
|
||||
<target>Mocne</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Bw.iCUm" name="user.password_strength.very_strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_strong</source>
|
||||
<target>Bardzo mocne</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="U5IhkwB" name="search.submit">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:68</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:62</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.submit</source>
|
||||
<target>Idź!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
</file>
|
||||
</xliff>
|
||||
80
translations/frontend.ru.xlf
Normal file
80
translations/frontend.ru.xlf
Normal file
@@ -0,0 +1,80 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="ru">
|
||||
<file id="frontend.ru">
|
||||
<unit id="eLrezdb" name="search.placeholder">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:67</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:61</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">templates\AdminPages\EntityAdminBase.html.twig:9</note>
|
||||
<note priority="1">templates\base.html.twig:80</note>
|
||||
<note priority="1">templates\base.html.twig:179</note>
|
||||
<note priority="1">templates\base.html.twig:206</note>
|
||||
<note priority="1">templates\base.html.twig:237</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.placeholder</source>
|
||||
<target>Поиск</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="R4hoCqe" name="part.labelp">
|
||||
<segment>
|
||||
<source>part.labelp</source>
|
||||
<target>Компоненты</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="S4CxO.T" name="entity.select.group.new_not_added_to_DB">
|
||||
<segment state="translated">
|
||||
<source>entity.select.group.new_not_added_to_DB</source>
|
||||
<target>Новый (еще не добавленный в БД)</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="9rnHbSK" name="user.password_strength.very_weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_weak</source>
|
||||
<target>Очень слабый</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="gKHmHwM" name="user.password_strength.weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.weak</source>
|
||||
<target>Слабый</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="c44gN8b" name="user.password_strength.medium">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.medium</source>
|
||||
<target>Средний</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="NwiBLHc" name="user.password_strength.strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.strong</source>
|
||||
<target>Сильный</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Bw.iCUm" name="user.password_strength.very_strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_strong</source>
|
||||
<target>Очень сильный</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="U5IhkwB" name="search.submit">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:68</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:62</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.submit</source>
|
||||
<target>Поехали!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
</file>
|
||||
</xliff>
|
||||
80
translations/frontend.zh.xlf
Normal file
80
translations/frontend.zh.xlf
Normal file
@@ -0,0 +1,80 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="zh">
|
||||
<file id="frontend.zh">
|
||||
<unit id="lQ8QeGr" name="search.placeholder">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:67</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:61</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:27</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:43</note>
|
||||
<note priority="1">Part-DB1\templates\_sidebar.html.twig:63</note>
|
||||
<note priority="1">templates\AdminPages\EntityAdminBase.html.twig:9</note>
|
||||
<note priority="1">templates\base.html.twig:80</note>
|
||||
<note priority="1">templates\base.html.twig:179</note>
|
||||
<note priority="1">templates\base.html.twig:206</note>
|
||||
<note priority="1">templates\base.html.twig:237</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.placeholder</source>
|
||||
<target>搜索</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="R4hoCqe" name="part.labelp">
|
||||
<segment>
|
||||
<source>part.labelp</source>
|
||||
<target>部件</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="_cXCaLo" name="entity.select.group.new_not_added_to_DB">
|
||||
<segment state="translated">
|
||||
<source>entity.select.group.new_not_added_to_DB</source>
|
||||
<target>新建(尚未添加到数据库)</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="RdFvZsb" name="user.password_strength.very_weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_weak</source>
|
||||
<target>非常弱</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="IBjmblZ" name="user.password_strength.weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.weak</source>
|
||||
<target>弱</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="qSm_ID0" name="user.password_strength.medium">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.medium</source>
|
||||
<target>中</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="aWAaADS" name="user.password_strength.strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.strong</source>
|
||||
<target>强</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Wa9CStW" name="user.password_strength.very_strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_strong</source>
|
||||
<target>非常强</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="N66qZeD" name="search.submit">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:68</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:62</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.submit</source>
|
||||
<target>GO!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
</file>
|
||||
</xliff>
|
||||
@@ -4025,16 +4025,6 @@ Pokud jste to provedli nesprávně nebo pokud počítač již není důvěryhodn
|
||||
<target>Reg.Ex. shoda</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="U5IhkwB" name="search.submit">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:68</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:62</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.submit</source>
|
||||
<target>Jdi!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="UXyo9ZT" name="project.labelp">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:37</note>
|
||||
@@ -11224,36 +11214,6 @@ Element 3</target>
|
||||
<target>Není uveden žádný textový obsah! Popisky zůstanou prázdné.</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="9rnHbSK" name="user.password_strength.very_weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_weak</source>
|
||||
<target>Velmi slabé</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="gKHmHwM" name="user.password_strength.weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.weak</source>
|
||||
<target>Slabé</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="c44gN8b" name="user.password_strength.medium">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.medium</source>
|
||||
<target>Střední</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="NwiBLHc" name="user.password_strength.strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.strong</source>
|
||||
<target>Silné</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Bw.iCUm" name="user.password_strength.very_strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_strong</source>
|
||||
<target>Velmi silné</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="m.RBg6w" name="perm.users.impersonate">
|
||||
<segment state="translated">
|
||||
<source>perm.users.impersonate</source>
|
||||
|
||||
@@ -4032,16 +4032,6 @@ Bemærk også, at uden to-faktor-godkendelse er din konto ikke længere så godt
|
||||
<target>Reg. Ex. matching</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="N66qZeD" name="search.submit">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:68</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:62</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.submit</source>
|
||||
<target>Kom nu!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="w0jVACo" name="project.labelp">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:37</note>
|
||||
@@ -11256,36 +11246,6 @@ Oversættelsen
|
||||
<target>Intet tekstindhold angivet! De oprettede etiketter vil være tomme.</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="RdFvZsb" name="user.password_strength.very_weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_weak</source>
|
||||
<target>Meget svag</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="IBjmblZ" name="user.password_strength.weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.weak</source>
|
||||
<target>Svag</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="qSm_ID0" name="user.password_strength.medium">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.medium</source>
|
||||
<target>Middel</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="aWAaADS" name="user.password_strength.strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.strong</source>
|
||||
<target>Stærk</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Wa9CStW" name="user.password_strength.very_strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_strong</source>
|
||||
<target>Meget stærk</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="6OHd5fv" name="perm.users.impersonate">
|
||||
<segment state="translated">
|
||||
<source>perm.users.impersonate</source>
|
||||
|
||||
@@ -4024,16 +4024,6 @@ Wenn Sie dies fehlerhafterweise gemacht haben oder ein Computer nicht mehr vertr
|
||||
<target>Reg.Ex. Matching</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="U5IhkwB" name="search.submit">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:68</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:62</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.submit</source>
|
||||
<target>Los!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="UXyo9ZT" name="project.labelp">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:37</note>
|
||||
@@ -11304,36 +11294,6 @@ Element 1 -> Element 1.2]]></target>
|
||||
<target>Kein Textinhalt angegeben! Die erzeugten Label werden leer sein.</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="9rnHbSK" name="user.password_strength.very_weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_weak</source>
|
||||
<target>Sehr schwach</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="gKHmHwM" name="user.password_strength.weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.weak</source>
|
||||
<target>Schwach</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="c44gN8b" name="user.password_strength.medium">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.medium</source>
|
||||
<target>Mittel</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="NwiBLHc" name="user.password_strength.strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.strong</source>
|
||||
<target>Stark</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Bw.iCUm" name="user.password_strength.very_strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_strong</source>
|
||||
<target>Sehr stark</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="m.RBg6w" name="perm.users.impersonate">
|
||||
<segment state="translated">
|
||||
<source>perm.users.impersonate</source>
|
||||
|
||||
@@ -3959,16 +3959,6 @@ If you have done this incorrectly or if a computer is no longer trusted, you can
|
||||
<target>Reg.Ex. Matching</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="U5IhkwB" name="search.submit">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:68</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:62</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.submit</source>
|
||||
<target>Go!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="UXyo9ZT" name="project.labelp">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:37</note>
|
||||
@@ -11153,36 +11143,6 @@ Element 1 -> Element 1.2]]></target>
|
||||
<target>No text content given! The labels will remain empty.</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="9rnHbSK" name="user.password_strength.very_weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_weak</source>
|
||||
<target>Very weak</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="gKHmHwM" name="user.password_strength.weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.weak</source>
|
||||
<target>Weak</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="c44gN8b" name="user.password_strength.medium">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.medium</source>
|
||||
<target>Medium</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="NwiBLHc" name="user.password_strength.strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.strong</source>
|
||||
<target>Strong</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Bw.iCUm" name="user.password_strength.very_strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_strong</source>
|
||||
<target>Very strong</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="m.RBg6w" name="perm.users.impersonate">
|
||||
<segment state="translated">
|
||||
<source>perm.users.impersonate</source>
|
||||
|
||||
@@ -4024,16 +4024,6 @@ Subelementos serán desplazados hacia arriba.</target>
|
||||
<target>Reg.Ex. Matching</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="U5IhkwB" name="search.submit">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:68</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:62</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.submit</source>
|
||||
<target>¡Vamos!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="UXyo9ZT" name="project.labelp">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:37</note>
|
||||
@@ -11242,36 +11232,6 @@ Elemento 3</target>
|
||||
<target>¡No se ha dado contenido de texto! Las etiquetas permanecerán vacías.</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="9rnHbSK" name="user.password_strength.very_weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_weak</source>
|
||||
<target>Muy débil</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="gKHmHwM" name="user.password_strength.weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.weak</source>
|
||||
<target>Débil</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="c44gN8b" name="user.password_strength.medium">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.medium</source>
|
||||
<target>Medio</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="NwiBLHc" name="user.password_strength.strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.strong</source>
|
||||
<target>Fuerte</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Bw.iCUm" name="user.password_strength.very_strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_strong</source>
|
||||
<target>Muy fuerte</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="m.RBg6w" name="perm.users.impersonate">
|
||||
<segment state="translated">
|
||||
<source>perm.users.impersonate</source>
|
||||
|
||||
@@ -4014,16 +4014,6 @@ Si vous avez fait cela de manière incorrecte ou si un ordinateur n'est plus fia
|
||||
<target>Reg.Ex. Correspondance</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="N66qZeD" name="search.submit">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:68</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:62</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.submit</source>
|
||||
<target>Rechercher!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Kw3N1AA" name="actions">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:2</note>
|
||||
|
||||
@@ -3952,16 +3952,6 @@
|
||||
<target>Reguláris kifejezés egyezés</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="U5IhkwB" name="search.submit">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:68</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:62</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.submit</source>
|
||||
<target>Indítás!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="UXyo9ZT" name="project.labelp">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:37</note>
|
||||
@@ -11157,36 +11147,6 @@
|
||||
<target>Nincs szöveges tartalom megadva! A címkék üresek maradnak.</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="9rnHbSK" name="user.password_strength.very_weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_weak</source>
|
||||
<target>Nagyon gyenge</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="gKHmHwM" name="user.password_strength.weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.weak</source>
|
||||
<target>Gyenge</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="c44gN8b" name="user.password_strength.medium">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.medium</source>
|
||||
<target>Közepes</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="NwiBLHc" name="user.password_strength.strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.strong</source>
|
||||
<target>Erős</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Bw.iCUm" name="user.password_strength.very_strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_strong</source>
|
||||
<target>Nagyon erős</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="m.RBg6w" name="perm.users.impersonate">
|
||||
<segment state="translated">
|
||||
<source>perm.users.impersonate</source>
|
||||
|
||||
@@ -4026,16 +4026,6 @@ Se è stato fatto in modo errato o se un computer non è più attendibile, puoi
|
||||
<target>Corrispondenza Reg.Ex.</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="U5IhkwB" name="search.submit">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:68</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:62</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.submit</source>
|
||||
<target>Cerca!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="UXyo9ZT" name="project.labelp">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:37</note>
|
||||
@@ -11244,36 +11234,6 @@ Element 3</target>
|
||||
<target>Nessun contenuto di testo specificato! Le etichette generate saranno vuote.</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="9rnHbSK" name="user.password_strength.very_weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_weak</source>
|
||||
<target>Molto debole</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="gKHmHwM" name="user.password_strength.weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.weak</source>
|
||||
<target>Debole</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="c44gN8b" name="user.password_strength.medium">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.medium</source>
|
||||
<target>Media</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="NwiBLHc" name="user.password_strength.strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.strong</source>
|
||||
<target>Forte</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Bw.iCUm" name="user.password_strength.very_strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_strong</source>
|
||||
<target>Molto forte</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="m.RBg6w" name="perm.users.impersonate">
|
||||
<segment state="translated">
|
||||
<source>perm.users.impersonate</source>
|
||||
|
||||
@@ -4014,16 +4014,6 @@
|
||||
<target>正規表現で検索</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="N66qZeD" name="search.submit">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:68</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:62</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.submit</source>
|
||||
<target>検索</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Kw3N1AA" name="actions">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:2</note>
|
||||
|
||||
@@ -4029,16 +4029,6 @@ Jeśli zrobiłeś to niepoprawnie lub komputer nie jest już godny zaufania, mo
|
||||
<target>Dopasowywanie Reg.Ex.</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="U5IhkwB" name="search.submit">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:68</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:62</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.submit</source>
|
||||
<target>Idź!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="UXyo9ZT" name="project.labelp">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:37</note>
|
||||
@@ -11247,36 +11237,6 @@ Element 3</target>
|
||||
<target>Nie podano zawartości tekstowej! Etykiety pozostaną puste.</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="9rnHbSK" name="user.password_strength.very_weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_weak</source>
|
||||
<target>Bardzo słabe</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="gKHmHwM" name="user.password_strength.weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.weak</source>
|
||||
<target>Słabe</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="c44gN8b" name="user.password_strength.medium">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.medium</source>
|
||||
<target>Średnie</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="NwiBLHc" name="user.password_strength.strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.strong</source>
|
||||
<target>Mocne</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Bw.iCUm" name="user.password_strength.very_strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_strong</source>
|
||||
<target>Bardzo mocne</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="m.RBg6w" name="perm.users.impersonate">
|
||||
<segment state="translated">
|
||||
<source>perm.users.impersonate</source>
|
||||
|
||||
@@ -4035,16 +4035,6 @@
|
||||
<target>Соответствие рег.выраж.</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="U5IhkwB" name="search.submit">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:68</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:62</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.submit</source>
|
||||
<target>Поехали!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="UXyo9ZT" name="project.labelp">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:37</note>
|
||||
@@ -11251,36 +11241,6 @@
|
||||
<target>Текстовое содержание не указано! Созданные ярлыки будут пустыми.</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="9rnHbSK" name="user.password_strength.very_weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_weak</source>
|
||||
<target>Очень слабый</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="gKHmHwM" name="user.password_strength.weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.weak</source>
|
||||
<target>Слабый</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="c44gN8b" name="user.password_strength.medium">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.medium</source>
|
||||
<target>Средний</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="NwiBLHc" name="user.password_strength.strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.strong</source>
|
||||
<target>Сильный</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Bw.iCUm" name="user.password_strength.very_strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_strong</source>
|
||||
<target>Очень сильный</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="m.RBg6w" name="perm.users.impersonate">
|
||||
<segment state="translated">
|
||||
<source>perm.users.impersonate</source>
|
||||
|
||||
@@ -4033,16 +4033,6 @@
|
||||
<target>正则匹配</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="N66qZeD" name="search.submit">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_navbar_search.html.twig:68</note>
|
||||
<note priority="1">Part-DB1\templates\_navbar_search.html.twig:62</note>
|
||||
</notes>
|
||||
<segment state="translated">
|
||||
<source>search.submit</source>
|
||||
<target>GO!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="w0jVACo" name="project.labelp">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\_sidebar.html.twig:37</note>
|
||||
@@ -11250,36 +11240,6 @@ Element 3</target>
|
||||
<target>没有文字内容。标签将保持为空</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="RdFvZsb" name="user.password_strength.very_weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_weak</source>
|
||||
<target>非常弱</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="IBjmblZ" name="user.password_strength.weak">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.weak</source>
|
||||
<target>弱</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="qSm_ID0" name="user.password_strength.medium">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.medium</source>
|
||||
<target>中</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="aWAaADS" name="user.password_strength.strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.strong</source>
|
||||
<target>强</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Wa9CStW" name="user.password_strength.very_strong">
|
||||
<segment state="translated">
|
||||
<source>user.password_strength.very_strong</source>
|
||||
<target>非常强</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="6OHd5fv" name="perm.users.impersonate">
|
||||
<segment state="translated">
|
||||
<source>perm.users.impersonate</source>
|
||||
|
||||
@@ -169,22 +169,25 @@ for (const theme of AVAILABLE_THEMES) {
|
||||
|
||||
|
||||
if (Encore.isProduction()) {
|
||||
Encore.addPlugin(new CompressionPlugin({
|
||||
filename: '[path][base].br',
|
||||
algorithm: 'brotliCompress',
|
||||
test: /\.(js|css|html|svg)$/,
|
||||
compressionOptions: {
|
||||
// zlib’s `level` option matches Brotli’s `BROTLI_PARAM_QUALITY` option.
|
||||
level: 11,
|
||||
},
|
||||
//threshold: 10240,
|
||||
minRatio: 0.8,
|
||||
deleteOriginalAssets: false,
|
||||
}))
|
||||
Encore
|
||||
.addPlugin(new CompressionPlugin({
|
||||
filename: '[path][base].br',
|
||||
algorithm: 'brotliCompress',
|
||||
test: /\.(js|css|html|svg)$/,
|
||||
compressionOptions: {
|
||||
// zlib’s `level` option matches Brotli’s `BROTLI_PARAM_QUALITY` option.
|
||||
level: 11,
|
||||
},
|
||||
threshold: 10240,
|
||||
minRatio: 0.8,
|
||||
deleteOriginalAssets: false,
|
||||
}))
|
||||
|
||||
.addPlugin(new CompressionPlugin({
|
||||
filename: '[path][base].gz',
|
||||
algorithm: 'gzip',
|
||||
threshold: 10240,
|
||||
minRatio: 0.8,
|
||||
test: /\.(js|css|html|svg)$/,
|
||||
deleteOriginalAssets: false,
|
||||
}))
|
||||
|
||||
Reference in New Issue
Block a user