diff --git a/.github/workflows/diagnostics.yml b/.github/workflows/diagnostics.yml index c4e707777..dd22e9133 100644 --- a/.github/workflows/diagnostics.yml +++ b/.github/workflows/diagnostics.yml @@ -11,14 +11,14 @@ jobs: strategy: fail-fast: false matrix: - php: [ '8.1', '8.2' ] + php: [ '8.1', '8.2', '8.3' ] contao: [ '~4.13.0' ] phpcq_install: [ 'update' ] output: [ '-o github-action -o default' ] steps: - name: Pull source - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup PHP with PECL extension uses: shivammathur/setup-php@v2 @@ -27,7 +27,7 @@ jobs: # setup caches - name: Cache composer cache directory - uses: actions/cache@v3 + uses: actions/cache@v4 env: cache-name: composer-cache-dir with: @@ -35,7 +35,7 @@ jobs: key: ${{ runner.os }}-${{ matrix.php }}-build-${{ env.cache-name }} - name: Cache vendor directory - uses: actions/cache@v3 + uses: actions/cache@v4 env: cache-name: vendor with: @@ -45,7 +45,7 @@ jobs: ${{ runner.os }}-${{ matrix.php }}-${{ matrix.contao }}-build-${{ env.cache-name }}- - name: Cache phpcq directory - uses: actions/cache@v3 + uses: actions/cache@v4 env: cache-name: phpcq with: @@ -67,7 +67,7 @@ jobs: run: ./vendor/bin/phpcq run -v ${{ matrix.output }} - name: Upload build directory to artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: ${{ success() }} || ${{ failure() }} with: name: phpcq-builds-php-${{ matrix.php }}-${{ matrix.contao }} diff --git a/.gitignore b/.gitignore index 6561ee7c1..e27324c56 100644 --- a/.gitignore +++ b/.gitignore @@ -16,5 +16,7 @@ vendor/ composer.lock # build -.phpunit.result.cache +/.cache +/.phpunit.result.cache +/.pdepend/* /.phpcq/* diff --git a/.phpcq.lock b/.phpcq.lock index d79776ed4..aa37692c3 100644 --- a/.phpcq.lock +++ b/.phpcq.lock @@ -1 +1 @@ -{"plugins":{"phpunit":{"api-version":"1.0.0","version":"1.0.0.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/phpunit/phpunit-1.0.0.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0"},"tool":{"phpunit":"^6.0 || ^7.0 || ^8.0 || ^9.0"}},"checksum":{"type":"sha-512","value":"c73f15658e3ba62665f09492ec91c3a6a715760bfaa88473a987538439fff442540148e086e46a6aa18ce55a3ea2fbf76caaa581384cb84a38859fcc609ae7e4"},"tools":{"phpunit":{"version":"9.6.19","url":"https://phar.phpunit.de/phpunit-9.6.19.phar","requirements":{"php":{"php":">=7.3","ext-dom":"*","ext-json":"*","ext-libxml":"*","ext-mbstring":"*","ext-xml":"*","ext-xmlwriter":"*"}},"checksum":{"type":"sha-256","value":"f30c21743f4fbea14ad8ab8f47673f9067117262dafa147fcb182e75fbc1c249"},"signature":"https://phar.phpunit.de/phpunit-9.6.19.phar.asc"}},"composerLock":null},"psalm":{"api-version":"1.0.0","version":"1.2.0.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/psalm/psalm-1.2.0.0.php","signature":null,"requirements":{"php":{"php":"^7.4 || ^8.0","ext-dom":"*"},"tool":{"psalm":"^3.0 || ^4.0 || ^5.0"}},"checksum":{"type":"sha-512","value":"4a550c9226d7bca582d7c10bd87cce01190c96398936b1613421640c83df62ed1c6e0d44c1b39635414ea8cf4a892a6458d27590793238add24e7cb5547e6ffd"},"tools":{"psalm":{"version":"5.24.0","url":"https://github.com/vimeo/psalm/releases/download/5.24.0/psalm.phar","requirements":{"php":{"php":"^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0","ext-SimpleXML":"*","ext-ctype":"*","ext-dom":"*","ext-json":"*","ext-libxml":"*","ext-mbstring":"*","ext-tokenizer":"*"}},"checksum":null,"signature":"https://github.com/vimeo/psalm/releases/download/5.24.0/psalm.phar.asc"}},"composerLock":null},"composer-require-checker":{"api-version":"1.0.0","version":"1.1.1.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/composer-require-checker/composer-require-checker-1.1.1.0.php","signature":null,"requirements":{"php":{"php":"^7.4 || ^8.0"},"tool":{"composer-require-checker":"^3.8 || ^4.0"}},"checksum":{"type":"sha-512","value":"d5415bddfe024c5749d894034583882aee4e5c3e1087815d9fdd81cb5e71630f631a0e35de0ff84b97fbbf738c16ece5f83bd8c00695913eb846aa6f04577dc2"},"tools":{"composer-require-checker":{"version":"4.7.1","url":"https://github.com/maglnet/ComposerRequireChecker/releases/download/4.7.1/composer-require-checker.phar","requirements":{"php":{"php":"~8.1.0 || ~8.2.0 || ~8.3.0","ext-phar":"*"}},"checksum":null,"signature":"https://github.com/maglnet/ComposerRequireChecker/releases/download/4.7.1/composer-require-checker.phar.asc"}},"composerLock":null},"phpmd":{"api-version":"1.0.0","version":"1.0.2.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/phpmd/phpmd-1.0.2.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-dom":"*"},"tool":{"phpmd":"^2.6.1"}},"checksum":{"type":"sha-512","value":"f22280a6dec8dbdd2ec1d83b294f23237fe32c34f4a298e52038e0a7a0074d541635b2b488b1a6098a42d8418a6cd8eb804406ea82b91e362be2b5d11a0915b0"},"tools":{"phpmd":{"version":"2.15.0","url":"https://github.com/phpmd/phpmd/releases/download/2.15.0/phpmd.phar","requirements":{"php":{"php":">=5.3.9","ext-xml":"*"}},"checksum":null,"signature":"https://github.com/phpmd/phpmd/releases/download/2.15.0/phpmd.phar.asc"}},"composerLock":null},"phpcpd":{"api-version":"1.0.0","version":"1.1.1.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/phpcpd/phpcpd-1.1.1.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-dom":"*"},"tool":{"phpcpd":"^6.0"}},"checksum":{"type":"sha-512","value":"1189ce0bf3fade4cb4241f1d96f915ef8fc7651f4450dc79fdf464ee3d6be3009316f0d423ce2d4af9d76ad50807b7fdf4d77bfa6d9ee2c91d6eda32ea214433"},"tools":{"phpcpd":{"version":"6.0.3","url":"https://phar.phpunit.de/phpcpd-6.0.3.phar","requirements":{"php":{"php":">=7.3","ext-dom":"*"}},"checksum":{"type":"sha-256","value":"2cbaea7cfda1bb4299d863eb075e977c3f49055dd16d88529fae5150d48a84cb"},"signature":"https://phar.phpunit.de/phpcpd-6.0.3.phar.asc"}},"composerLock":null},"phploc":{"api-version":"1.0.0","version":"1.0.0.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/phploc/phploc-1.0.0.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-dom":"*","ext-json":"*"},"tool":{"phploc":"^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0"}},"checksum":{"type":"sha-512","value":"f67b02d494796adf553cb3dd13ec06c1cb8e53c799954061749424251379541637538199afb3afa3c7a01cabd1cb6f1c53eb621f015dff9644c6c7cbf10c56d1"},"tools":{"phploc":{"version":"7.0.2","url":"https://phar.phpunit.de/phploc-7.0.2.phar","requirements":{"php":{"php":">=7.3","ext-dom":"*","ext-json":"*"}},"checksum":{"type":"sha-256","value":"3d59778ec86faf25fd00e3a329b2f9ad4a3c751ca91601ea7dab70f887b0bf46"},"signature":"https://phar.phpunit.de/phploc-7.0.2.phar.asc"}},"composerLock":null},"phpcs":{"api-version":"1.0.0","version":"1.2.0.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/phpcs/phpcs-1.2.0.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-dom":"*"},"tool":{"phpcs":"^3.0 || ^2.0","phpcbf":"^3.0 || ^2.0"}},"checksum":{"type":"sha-512","value":"b6ed00306e76068a6af5e3b1dec837724f9e1900ef1049ce88e7ce195b0583524ca33a73613fba13244307a7ca853b6ddaa14ded69f651c3f184ac130bd1aaad"},"tools":{"phpcs":{"version":"3.9.2","url":"https://github.com/PHPCSStandards/PHP_CodeSniffer/releases/download/3.9.2/phpcs.phar","requirements":{"php":{"php":">=5.4.0","ext-simplexml":"*","ext-tokenizer":"*","ext-xmlwriter":"*"}},"checksum":null,"signature":"https://github.com/PHPCSStandards/PHP_CodeSniffer/releases/download/3.9.2/phpcs.phar.asc"},"phpcbf":{"version":"3.9.2","url":"https://github.com/PHPCSStandards/PHP_CodeSniffer/releases/download/3.9.2/phpcbf.phar","requirements":{"php":{"php":">=5.4.0","ext-simplexml":"*","ext-tokenizer":"*","ext-xmlwriter":"*"}},"checksum":null,"signature":"https://github.com/PHPCSStandards/PHP_CodeSniffer/releases/download/3.9.2/phpcbf.phar.asc"}},"composerLock":null},"composer-normalize":{"api-version":"1.0.0","version":"1.1.1.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/composer-normalize/composer-normalize-1.1.1.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-json":"*"},"tool":{"composer-normalize":"^2.1"}},"checksum":{"type":"sha-512","value":"d9abda440b85d501c58abf9c81bf76f417594b397129215ffa8b777e9bb5e5eda37d7661d661db3c8d11c24f20345bc6fbe56f013b3b9435d459d2b94f086e0f"},"tools":{"composer-normalize":{"version":"2.42.0","url":"https://github.com/ergebnis/composer-normalize/releases/download/2.42.0/composer-normalize.phar","requirements":{"php":{"php":"~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0","ext-json":"*"}},"checksum":null,"signature":"https://github.com/ergebnis/composer-normalize/releases/download/2.42.0/composer-normalize.phar.asc"}},"composerLock":null}},"tools":[]} \ No newline at end of file +{"plugins":{"phpunit":{"api-version":"1.0.0","version":"1.0.0.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/phpunit/phpunit-1.0.0.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0"},"tool":{"phpunit":"^6.0 || ^7.0 || ^8.0 || ^9.0"}},"checksum":{"type":"sha-512","value":"c73f15658e3ba62665f09492ec91c3a6a715760bfaa88473a987538439fff442540148e086e46a6aa18ce55a3ea2fbf76caaa581384cb84a38859fcc609ae7e4"},"tools":{"phpunit":{"version":"9.6.19","url":"https://phar.phpunit.de/phpunit-9.6.19.phar","requirements":{"php":{"php":">=7.3","ext-dom":"*","ext-json":"*","ext-libxml":"*","ext-mbstring":"*","ext-xml":"*","ext-xmlwriter":"*"}},"checksum":{"type":"sha-256","value":"f30c21743f4fbea14ad8ab8f47673f9067117262dafa147fcb182e75fbc1c249"},"signature":"https://phar.phpunit.de/phpunit-9.6.19.phar.asc"}},"composerLock":null},"psalm":{"api-version":"1.0.0","version":"1.2.0.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/psalm/psalm-1.2.0.0.php","signature":null,"requirements":{"php":{"php":"^7.4 || ^8.0","ext-dom":"*"},"tool":{"psalm":"^3.0 || ^4.0 || ^5.0"}},"checksum":{"type":"sha-512","value":"4a550c9226d7bca582d7c10bd87cce01190c96398936b1613421640c83df62ed1c6e0d44c1b39635414ea8cf4a892a6458d27590793238add24e7cb5547e6ffd"},"tools":{"psalm":{"version":"5.25.0","url":"https://github.com/vimeo/psalm/releases/download/5.25.0/psalm.phar","requirements":{"php":{"php":"^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0","ext-SimpleXML":"*","ext-ctype":"*","ext-dom":"*","ext-json":"*","ext-libxml":"*","ext-mbstring":"*","ext-tokenizer":"*"}},"checksum":null,"signature":"https://github.com/vimeo/psalm/releases/download/5.25.0/psalm.phar.asc"}},"composerLock":null},"composer-require-checker":{"api-version":"1.0.0","version":"1.1.1.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/composer-require-checker/composer-require-checker-1.1.1.0.php","signature":null,"requirements":{"php":{"php":"^7.4 || ^8.0"},"tool":{"composer-require-checker":"^3.8 || ^4.0"}},"checksum":{"type":"sha-512","value":"d5415bddfe024c5749d894034583882aee4e5c3e1087815d9fdd81cb5e71630f631a0e35de0ff84b97fbbf738c16ece5f83bd8c00695913eb846aa6f04577dc2"},"tools":{"composer-require-checker":{"version":"4.11.0","url":"https://github.com/maglnet/ComposerRequireChecker/releases/download/4.11.0/composer-require-checker.phar","requirements":{"php":{"php":"~8.2.0 || ~8.3.0","ext-phar":"*"}},"checksum":null,"signature":"https://github.com/maglnet/ComposerRequireChecker/releases/download/4.11.0/composer-require-checker.phar.asc"}},"composerLock":null},"phpmd":{"api-version":"1.0.0","version":"1.0.2.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/phpmd/phpmd-1.0.2.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-dom":"*"},"tool":{"phpmd":"^2.6.1"}},"checksum":{"type":"sha-512","value":"f22280a6dec8dbdd2ec1d83b294f23237fe32c34f4a298e52038e0a7a0074d541635b2b488b1a6098a42d8418a6cd8eb804406ea82b91e362be2b5d11a0915b0"},"tools":{"phpmd":{"version":"2.15.0","url":"https://github.com/phpmd/phpmd/releases/download/2.15.0/phpmd.phar","requirements":{"php":{"php":">=5.3.9","ext-xml":"*"}},"checksum":null,"signature":"https://github.com/phpmd/phpmd/releases/download/2.15.0/phpmd.phar.asc"}},"composerLock":null},"phpcpd":{"api-version":"1.0.0","version":"1.1.1.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/phpcpd/phpcpd-1.1.1.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-dom":"*"},"tool":{"phpcpd":"^6.0"}},"checksum":{"type":"sha-512","value":"1189ce0bf3fade4cb4241f1d96f915ef8fc7651f4450dc79fdf464ee3d6be3009316f0d423ce2d4af9d76ad50807b7fdf4d77bfa6d9ee2c91d6eda32ea214433"},"tools":{"phpcpd":{"version":"6.0.3","url":"https://phar.phpunit.de/phpcpd-6.0.3.phar","requirements":{"php":{"php":">=7.3","ext-dom":"*"}},"checksum":{"type":"sha-256","value":"2cbaea7cfda1bb4299d863eb075e977c3f49055dd16d88529fae5150d48a84cb"},"signature":"https://phar.phpunit.de/phpcpd-6.0.3.phar.asc"}},"composerLock":null},"phploc":{"api-version":"1.0.0","version":"1.0.0.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/phploc/phploc-1.0.0.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-dom":"*","ext-json":"*"},"tool":{"phploc":"^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0"}},"checksum":{"type":"sha-512","value":"f67b02d494796adf553cb3dd13ec06c1cb8e53c799954061749424251379541637538199afb3afa3c7a01cabd1cb6f1c53eb621f015dff9644c6c7cbf10c56d1"},"tools":{"phploc":{"version":"7.0.2","url":"https://phar.phpunit.de/phploc-7.0.2.phar","requirements":{"php":{"php":">=7.3","ext-dom":"*","ext-json":"*"}},"checksum":{"type":"sha-256","value":"3d59778ec86faf25fd00e3a329b2f9ad4a3c751ca91601ea7dab70f887b0bf46"},"signature":"https://phar.phpunit.de/phploc-7.0.2.phar.asc"}},"composerLock":null},"phpcs":{"api-version":"1.0.0","version":"1.2.0.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/phpcs/phpcs-1.2.0.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-dom":"*"},"tool":{"phpcs":"^3.0 || ^2.0","phpcbf":"^3.0 || ^2.0"}},"checksum":{"type":"sha-512","value":"b6ed00306e76068a6af5e3b1dec837724f9e1900ef1049ce88e7ce195b0583524ca33a73613fba13244307a7ca853b6ddaa14ded69f651c3f184ac130bd1aaad"},"tools":{"phpcs":{"version":"3.10.1","url":"https://github.com/PHPCSStandards/PHP_CodeSniffer/releases/download/3.10.1/phpcs.phar","requirements":{"php":{"php":">=5.4.0","ext-simplexml":"*","ext-tokenizer":"*","ext-xmlwriter":"*"}},"checksum":null,"signature":"https://github.com/PHPCSStandards/PHP_CodeSniffer/releases/download/3.10.1/phpcs.phar.asc"},"phpcbf":{"version":"3.10.1","url":"https://github.com/PHPCSStandards/PHP_CodeSniffer/releases/download/3.10.1/phpcbf.phar","requirements":{"php":{"php":">=5.4.0","ext-simplexml":"*","ext-tokenizer":"*","ext-xmlwriter":"*"}},"checksum":null,"signature":"https://github.com/PHPCSStandards/PHP_CodeSniffer/releases/download/3.10.1/phpcbf.phar.asc"}},"composerLock":null},"composer-normalize":{"api-version":"1.0.0","version":"1.1.1.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/composer-normalize/composer-normalize-1.1.1.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-json":"*"},"tool":{"composer-normalize":"^2.1"}},"checksum":{"type":"sha-512","value":"d9abda440b85d501c58abf9c81bf76f417594b397129215ffa8b777e9bb5e5eda37d7661d661db3c8d11c24f20345bc6fbe56f013b3b9435d459d2b94f086e0f"},"tools":{"composer-normalize":{"version":"2.43.0","url":"https://github.com/ergebnis/composer-normalize/releases/download/2.43.0/composer-normalize.phar","requirements":{"php":{"php":"~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0","ext-json":"*"}},"checksum":null,"signature":"https://github.com/ergebnis/composer-normalize/releases/download/2.43.0/composer-normalize.phar.asc"}},"composerLock":null}},"tools":[]} \ No newline at end of file diff --git a/.phpcq.yaml.dist b/.phpcq.yaml.dist index 6dd1dffd9..25f528c9f 100644 --- a/.phpcq.yaml.dist +++ b/.phpcq.yaml.dist @@ -45,10 +45,13 @@ phpcq: - D2CCAC42F6295E7D # PHP_CodeSniffer - 31C7E470E2138192 + - 5E6DDE998AB73B8E + - A978220305CD5C32 # Composer normalize - C00543248C87FB13 # phpmd - A4E55EA12C7C085C + - 9093F8B32E4815AA tasks: fix: diff --git a/.tx/config b/.tx/config new file mode 100755 index 000000000..a42fb18c6 --- /dev/null +++ b/.tx/config @@ -0,0 +1,192 @@ +[main] +host = https://app.transifex.com + +[o:metamodels:p:metamodels-core:r:metamodels_default] +file_filter = src/CoreBundle/Resources/translations/metamodels_default..xlf +source_file = src/CoreBundle/Resources/translations/metamodels_default.en.xlf +type = XLIFF +minimum_perc = 0 +resource_name = metamodels_default +replace_edited_strings = false +keep_translations = false + +[o:metamodels:p:metamodels-core:r:metamodels_filter] +file_filter = src/CoreBundle/Resources/translations/metamodels_filter..xlf +source_file = src/CoreBundle/Resources/translations/metamodels_filter.en.xlf +type = XLIFF +minimum_perc = 0 +resource_name = metamodels_filter +replace_edited_strings = false +keep_translations = false + +[o:metamodels:p:metamodels-core:r:metamodels_list] +file_filter = src/CoreBundle/Resources/translations/metamodels_list..xlf +source_file = src/CoreBundle/Resources/translations/metamodels_list.en.xlf +type = XLIFF +minimum_perc = 0 +resource_name = metamodels_list +replace_edited_strings = false +keep_translations = false + +[o:metamodels:p:metamodels-core:r:metamodels_navigation] +file_filter = src/CoreBundle/Resources/translations/metamodels_navigation..xlf +source_file = src/CoreBundle/Resources/translations/metamodels_navigation.en.xlf +type = XLIFF +minimum_perc = 0 +resource_name = metamodels_navigation +replace_edited_strings = false +keep_translations = false + +[o:metamodels:p:metamodels-core:r:metamodels_support] +file_filter = src/CoreBundle/Resources/translations/metamodels_support..xlf +source_file = src/CoreBundle/Resources/translations/metamodels_support.en.xlf +type = XLIFF +minimum_perc = 0 +resource_name = metamodels_support +replace_edited_strings = false +keep_translations = false + +[o:metamodels:p:metamodels-core:r:metamodels_wildcard] +file_filter = src/CoreBundle/Resources/translations/metamodels_wildcard..xlf +source_file = src/CoreBundle/Resources/translations/metamodels_wildcard.en.xlf +type = XLIFF +minimum_perc = 0 +resource_name = metamodels_wildcard +replace_edited_strings = false +keep_translations = false + +[o:metamodels:p:metamodels-core:r:tl_content] +file_filter = src/CoreBundle/Resources/translations/tl_content..xlf +source_file = src/CoreBundle/Resources/translations/tl_content.en.xlf +type = XLIFF +minimum_perc = 0 +resource_name = tl_content +replace_edited_strings = false +keep_translations = false + +[o:metamodels:p:metamodels-core:r:tl_metamodel] +file_filter = src/CoreBundle/Resources/translations/tl_metamodel..xlf +source_file = src/CoreBundle/Resources/translations/tl_metamodel.en.xlf +type = XLIFF +minimum_perc = 0 +resource_name = tl_metamodel +replace_edited_strings = false +keep_translations = false + +[o:metamodels:p:metamodels-core:r:tl_metamodel_attribute] +file_filter = src/CoreBundle/Resources/translations/tl_metamodel_attribute..xlf +source_file = src/CoreBundle/Resources/translations/tl_metamodel_attribute.en.xlf +type = XLIFF +minimum_perc = 0 +resource_name = tl_metamodel_attribute +replace_edited_strings = false +keep_translations = false + +[o:metamodels:p:metamodels-core:r:tl_metamodel_dca] +file_filter = src/CoreBundle/Resources/translations/tl_metamodel_dca..xlf +source_file = src/CoreBundle/Resources/translations/tl_metamodel_dca.en.xlf +type = XLIFF +minimum_perc = 0 +resource_name = tl_metamodel_dca +replace_edited_strings = false +keep_translations = false + +[o:metamodels:p:metamodels-core:r:tl_metamodel_dca_combine] +file_filter = src/CoreBundle/Resources/translations/tl_metamodel_dca_combine..xlf +source_file = src/CoreBundle/Resources/translations/tl_metamodel_dca_combine.en.xlf +type = XLIFF +minimum_perc = 0 +resource_name = tl_metamodel_dca_combine +replace_edited_strings = false +keep_translations = false + +[o:metamodels:p:metamodels-core:r:tl_metamodel_dcasetting] +file_filter = src/CoreBundle/Resources/translations/tl_metamodel_dcasetting..xlf +source_file = src/CoreBundle/Resources/translations/tl_metamodel_dcasetting.en.xlf +type = XLIFF +minimum_perc = 0 +resource_name = tl_metamodel_dcasetting +replace_edited_strings = false +keep_translations = false + +[o:metamodels:p:metamodels-core:r:tl_metamodel_dcasetting_condition] +file_filter = src/CoreBundle/Resources/translations/tl_metamodel_dcasetting_condition..xlf +source_file = src/CoreBundle/Resources/translations/tl_metamodel_dcasetting_condition.en.xlf +type = XLIFF +minimum_perc = 0 +resource_name = tl_metamodel_dcasetting_condition +replace_edited_strings = false +keep_translations = false + +[o:metamodels:p:metamodels-core:r:tl_metamodel_dca_sortgroup] +file_filter = src/CoreBundle/Resources/translations/tl_metamodel_dca_sortgroup..xlf +source_file = src/CoreBundle/Resources/translations/tl_metamodel_dca_sortgroup.en.xlf +type = XLIFF +minimum_perc = 0 +resource_name = tl_metamodel_dca_sortgroup +replace_edited_strings = false +keep_translations = false + +[o:metamodels:p:metamodels-core:r:tl_metamodel_filter] +file_filter = src/CoreBundle/Resources/translations/tl_metamodel_filter..xlf +source_file = src/CoreBundle/Resources/translations/tl_metamodel_filter.en.xlf +type = XLIFF +minimum_perc = 0 +resource_name = tl_metamodel_filter +replace_edited_strings = false +keep_translations = false + +[o:metamodels:p:metamodels-core:r:tl_metamodel_filtersetting] +file_filter = src/CoreBundle/Resources/translations/tl_metamodel_filtersetting..xlf +source_file = src/CoreBundle/Resources/translations/tl_metamodel_filtersetting.en.xlf +type = XLIFF +minimum_perc = 0 +resource_name = tl_metamodel_filtersetting +replace_edited_strings = false +keep_translations = false + +[o:metamodels:p:metamodels-core:r:tl_metamodel_item] +file_filter = src/CoreBundle/Resources/translations/tl_metamodel_item..xlf +source_file = src/CoreBundle/Resources/translations/tl_metamodel_item.en.xlf +type = XLIFF +minimum_perc = 0 +resource_name = tl_metamodel_item +replace_edited_strings = false +keep_translations = false + +[o:metamodels:p:metamodels-core:r:tl_metamodel_rendersetting] +file_filter = src/CoreBundle/Resources/translations/tl_metamodel_rendersetting..xlf +source_file = src/CoreBundle/Resources/translations/tl_metamodel_rendersetting.en.xlf +type = XLIFF +minimum_perc = 0 +resource_name = tl_metamodel_rendersetting +replace_edited_strings = false +keep_translations = false + +[o:metamodels:p:metamodels-core:r:tl_metamodel_rendersettings] +file_filter = src/CoreBundle/Resources/translations/tl_metamodel_rendersettings..xlf +source_file = src/CoreBundle/Resources/translations/tl_metamodel_rendersettings.en.xlf +type = XLIFF +minimum_perc = 0 +resource_name = tl_metamodel_rendersettings +replace_edited_strings = false +keep_translations = false + +[o:metamodels:p:metamodels-core:r:tl_metamodel_searchable_pages] +file_filter = src/CoreBundle/Resources/translations/tl_metamodel_searchable_pages..xlf +source_file = src/CoreBundle/Resources/translations/tl_metamodel_searchable_pages.en.xlf +type = XLIFF +minimum_perc = 0 +resource_name = tl_metamodel_searchable_pages +replace_edited_strings = false +keep_translations = false + +[o:metamodels:p:metamodels-core:r:tl_module] +file_filter = src/CoreBundle/Resources/translations/tl_module..xlf +source_file = src/CoreBundle/Resources/translations/tl_module.en.xlf +type = XLIFF +minimum_perc = 0 +resource_name = tl_module +replace_edited_strings = false +keep_translations = false + diff --git a/README.md b/README.md index 91e2c185b..1b26d120c 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,6 @@ Feel free to contribute the MetaModel Documentation in [EN](https://github.com/M ## Resources: * [MetaModels Website](https://now.metamodel.me) -* [MetaModels Contao Wiki [DE]](https://de.contaowiki.org/MetaModels) * [MetaModels Contao Community Subforum [DE]](https://community.contao.org/de/forumdisplay.php?149-MetaModels) * [MetaModels Channel on Contao Slack #metamodels](https://contao.slack.com/archives/CKGEBDV60) diff --git a/composer.json b/composer.json index 09e923ccd..c07af13b8 100644 --- a/composer.json +++ b/composer.json @@ -32,7 +32,7 @@ "require": { "php": "^8.1", "ext-dom": "*", - "contao-community-alliance/dc-general": "^2.3.10", + "contao-community-alliance/dc-general": "^2.3.15", "contao-community-alliance/events-contao-bindings": "^4.13.1", "contao-community-alliance/meta-palettes": "^2.0.10", "contao-community-alliance/translator": "^2.4.2", @@ -91,8 +91,7 @@ }, "extra": { "branch-alias": { - "dev-feature/2.3.0": "2.3.x-dev", - "dev-feature/translation_loader": "2.3.x-trans-dev" + "dev-release/2.3.0": "2.3.x-dev" }, "contao": { "runonce": [ diff --git a/psalm.xml b/psalm.xml index 6878801dc..dd18012d3 100644 --- a/psalm.xml +++ b/psalm.xml @@ -34,5 +34,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Attribute/IAttribute.php b/src/Attribute/IAttribute.php index 775362930..3607068a1 100644 --- a/src/Attribute/IAttribute.php +++ b/src/Attribute/IAttribute.php @@ -264,7 +264,7 @@ public function getFilterOptions($idList, $usedOnly, &$arrCount = null); * * @param string $strPattern The text to search for. This may contain wildcards. * - * @return list The list of item ids of all items matching the condition or null if all match. + * @return list|null The list of item ids of all items matching the condition or null if all match. */ public function searchFor($strPattern); diff --git a/src/Attribute/ITranslated.php b/src/Attribute/ITranslated.php index 144f2955f..6c971059c 100644 --- a/src/Attribute/ITranslated.php +++ b/src/Attribute/ITranslated.php @@ -44,7 +44,7 @@ public function getMetaModel(); * @param list $arrLanguages Array of valid language codes that shall be searched. * (optional) If empty, all languages will be taken into account. * - * @return list the ids of matching items. + * @return list|null The list of item ids of all items matching the condition or null if all match. */ public function searchForInLanguages($strPattern, $arrLanguages = []); diff --git a/src/BackendIntegration/InputScreen/InputScreen.php b/src/BackendIntegration/InputScreen/InputScreen.php index 3e787a72a..af6ab2d0e 100644 --- a/src/BackendIntegration/InputScreen/InputScreen.php +++ b/src/BackendIntegration/InputScreen/InputScreen.php @@ -281,7 +281,7 @@ protected function translateRows($rows) // First pass, fetch all attribute names. $columnNames = []; foreach ($rows as $row) { - if ($row['dcatype'] != 'attribute') { + if ($row['dcatype'] !== 'attribute') { continue; } diff --git a/src/CoreBundle/Contao/Hooks/AbstractContentElementAndModuleCallback.php b/src/CoreBundle/Contao/Hooks/AbstractContentElementAndModuleCallback.php index 0ec480529..36267f17d 100644 --- a/src/CoreBundle/Contao/Hooks/AbstractContentElementAndModuleCallback.php +++ b/src/CoreBundle/Contao/Hooks/AbstractContentElementAndModuleCallback.php @@ -387,10 +387,12 @@ protected function buildFilterParamsFor(DC_Table $dataContainer, $elementName) return; } + $translatedNull = $this->translator->trans('filter_option.null', [], static::$tableName); + $collection = $this->filterFactory->createCollection($filterId); $dca = $collection->getParameterDCA(); foreach ($dca as $fieldName => $subField) { - $options = []; + $options = ['--null--' => $translatedNull]; foreach (($subField['options'] ?? []) as $key => $value) { $newKey = $this->loadCallback($key); if (null !== $newKey) { @@ -416,7 +418,7 @@ protected function buildFilterParamsFor(DC_Table $dataContainer, $elementName) */ public function saveCallback(string $value = null) { - return null === $value ? null : base64_decode($value); + return ('--null--' === $value || null === $value) ? null : base64_decode($value); } /** @@ -428,7 +430,7 @@ public function saveCallback(string $value = null) */ public function loadCallback(string $value = null) { - return null === $value ? null : trim(base64_encode($value), '='); + return null === $value ? '--null--' : trim(base64_encode($value), '='); } /** diff --git a/src/CoreBundle/Contao/Hooks/LoadDataContainer.php b/src/CoreBundle/Contao/Hooks/LoadDataContainer.php index 08ce3af38..64df899e6 100644 --- a/src/CoreBundle/Contao/Hooks/LoadDataContainer.php +++ b/src/CoreBundle/Contao/Hooks/LoadDataContainer.php @@ -137,14 +137,12 @@ private function handleMetaModelTable(string $tableName): void return; } - $this->controller->loadLanguageFile('tl_metamodel_item'); - $this->controller->loadDataContainer('tl_metamodel_item'); if (!isset($GLOBALS['TL_DCA'][$tableName])) { $GLOBALS['TL_DCA'][$tableName] = []; } $GLOBALS['TL_DCA'][$tableName] = \array_replace_recursive( - (array) $GLOBALS['TL_DCA']['tl_metamodel_item'], + (array) ($GLOBALS['TL_DCA']['tl_metamodel_item'] ?? []), (array) $GLOBALS['TL_DCA'][$tableName] ); } diff --git a/src/CoreBundle/Contao/InsertTag/ResolveLanguageTag.php b/src/CoreBundle/Contao/InsertTag/ResolveLanguageTag.php index d1f6e7377..3f0978d46 100644 --- a/src/CoreBundle/Contao/InsertTag/ResolveLanguageTag.php +++ b/src/CoreBundle/Contao/InsertTag/ResolveLanguageTag.php @@ -134,7 +134,7 @@ private function languageMatches(string $language): bool return true; } - if (substr($lang, -1) === '*' && 0 === strncmp($pageLanguage, $lang, (\strlen($lang) - 1))) { + if (str_ends_with($lang, '*') && 0 === strncmp($pageLanguage, $lang, max(0, \strlen($lang) - 1))) { return true; } } diff --git a/src/CoreBundle/EventListener/BackendNavigationListener.php b/src/CoreBundle/EventListener/BackendNavigationListener.php index 93c240aeb..3f16ccd5f 100644 --- a/src/CoreBundle/EventListener/BackendNavigationListener.php +++ b/src/CoreBundle/EventListener/BackendNavigationListener.php @@ -35,6 +35,7 @@ use function array_key_exists; use function array_map; +use function array_unshift; use function in_array; use function is_array; @@ -150,8 +151,11 @@ public function __invoke(MenuEvent $event): void // Show MetaModels config only for Admins. if ($isAdmin) { + // Add or override child - might have been introduced by parsing of legacy BE_MOD. $metaModelsNode->addChild($configNode = $this->buildConfigNode($factory, $request)); - array_unshift($names, $configNode->getName()); + if (!in_array($configNode->getName(), $names, true)) { + array_unshift($names, $configNode->getName()); + } } $metaModelsNode->reorderChildren($names); diff --git a/src/CoreBundle/EventListener/DcGeneral/DefinitionBuilder/CommandBuilder.php b/src/CoreBundle/EventListener/DcGeneral/DefinitionBuilder/CommandBuilder.php index 8dbf8db1d..628736d88 100644 --- a/src/CoreBundle/EventListener/DcGeneral/DefinitionBuilder/CommandBuilder.php +++ b/src/CoreBundle/EventListener/DcGeneral/DefinitionBuilder/CommandBuilder.php @@ -183,10 +183,11 @@ private function addEditMultipleCommand(Contao2BackendViewDefinitionInterface $v ->setLabel('editAll.label') ->setDescription('editAll.description'); - $parameters = $command->getParameters(); - $parameters['act'] = 'select'; - $extra = $command->getExtra(); - $extra['class'] = 'header_edit_all'; + $parameters = $command->getParameters(); + $parameters['act'] = 'select'; + $parameters['select'] = 'models'; + $extra = $command->getExtra(); + $extra['class'] = 'header_edit_all'; $commands->addCommand($command); } diff --git a/src/CoreBundle/EventListener/DcGeneral/Table/DcaSetting/EditMaskSubHeadlineListener.php b/src/CoreBundle/EventListener/DcGeneral/Table/DcaSetting/EditMaskSubHeadlineListener.php index 4dcb4aa8c..c03466f68 100644 --- a/src/CoreBundle/EventListener/DcGeneral/Table/DcaSetting/EditMaskSubHeadlineListener.php +++ b/src/CoreBundle/EventListener/DcGeneral/Table/DcaSetting/EditMaskSubHeadlineListener.php @@ -99,7 +99,7 @@ public function __invoke(GetEditMaskSubHeadlineEvent $event): void $screen = $this->inputScreens->fetchInputScreens([$metaModelName => $metaModel->getActiveInputScreen()]); $screenMeta = $screen[$metaModelName]['meta'] ?? null; - if (null === $screenMeta || null === ($headline = ($screenMeta['subheadline'] ?? null))) { + if (null === $screenMeta || '' === ($headline = ($screenMeta['subheadline'] ?? ''))) { return; } @@ -114,7 +114,7 @@ public function __invoke(GetEditMaskSubHeadlineEvent $event): void // Translate language key and add headline part. $subHeadline = - $this->translator->trans('editRecord', ['%item%' => $headlineAdd], $metaModelName); + $this->translator->trans('editRecord', ['%id%' => $headlineAdd], $metaModelName); $event->setHeadline($subHeadline); } diff --git a/src/CoreBundle/EventListener/DcGeneral/Table/RenderSettings/JumpToListener.php b/src/CoreBundle/EventListener/DcGeneral/Table/RenderSettings/JumpToListener.php index 0efaac7be..22393f63a 100644 --- a/src/CoreBundle/EventListener/DcGeneral/Table/RenderSettings/JumpToListener.php +++ b/src/CoreBundle/EventListener/DcGeneral/Table/RenderSettings/JumpToListener.php @@ -31,6 +31,7 @@ use Doctrine\DBAL\Connection; use MetaModels\IFactory; use MetaModels\IMetaModel; +use Symfony\Component\Routing\Generator\UrlGeneratorInterface; use Symfony\Contracts\Translation\TranslatorInterface; /** @@ -38,6 +39,22 @@ */ class JumpToListener extends AbstractAbstainingListener { + private const DEFAULT_TYPE = UrlGeneratorInterface::ABSOLUTE_PATH; + + private const TYPE_MAP = [ + 'absolute_url' => UrlGeneratorInterface::ABSOLUTE_URL, + 'absolute_path' => UrlGeneratorInterface::ABSOLUTE_PATH, + 'relative_path' => UrlGeneratorInterface::RELATIVE_PATH, + 'network_path' => UrlGeneratorInterface::NETWORK_PATH, + ]; + + private const TYPE_MAP_INVERSE = [ + UrlGeneratorInterface::ABSOLUTE_URL => 'absolute_url', + UrlGeneratorInterface::ABSOLUTE_PATH => 'absolute_path', + UrlGeneratorInterface::RELATIVE_PATH => 'relative_path', + UrlGeneratorInterface::NETWORK_PATH => 'network_path', + ]; + /** * The MetaModel factory. * @@ -105,6 +122,7 @@ public function decodeValue(DecodePropertyValueForWidgetEvent $event) foreach (\array_keys($languages) as $key) { $newValue = ''; $filter = 0; + $type = self::TYPE_MAP_INVERSE[self::DEFAULT_TYPE]; if ($value) { foreach ($value as $arr) { if (!\is_array($arr)) { @@ -114,6 +132,7 @@ public function decodeValue(DecodePropertyValueForWidgetEvent $event) // Set the new value and exit the loop. if (\in_array($key, $arr, true)) { $newValue = '{{link_url::' . $arr['value'] . '}}'; + $type = self::TYPE_MAP_INVERSE[$arr['type'] ?? self::DEFAULT_TYPE]; $filter = $arr['filter']; break; } @@ -123,6 +142,7 @@ public function decodeValue(DecodePropertyValueForWidgetEvent $event) // Build the new array. $newValues[] = [ 'langcode' => $key, + 'type' => $type, 'value' => $newValue, 'filter' => $filter ]; @@ -148,6 +168,7 @@ public function encodeValue(EncodePropertyValueFromWidgetEvent $event) foreach ($value as $k => $v) { $value[$k]['value'] = \str_replace(['{{link_url::', '}}'], ['', ''], $v['value']); + $value[$k]['type'] = self::TYPE_MAP[$v['type']] ?? self::DEFAULT_TYPE; } $event->setValue(\serialize($value)); @@ -209,12 +230,27 @@ public function buildWidget(BuildWidgetEvent $event) ]; } + $extra['columnFields']['type']['options'] = $this->getUrlTypes(); $extra['columnFields']['filter']['options'] = $this->getFilterSettings($model); $event->getProperty()->setExtra($extra); } + private function getUrlTypes(): array + { + $result = []; + foreach (self::TYPE_MAP_INVERSE as $typeName) { + $result[$typeName] = $this->translator->trans( + 'jumpTo_type.' . $typeName, + [], + 'tl_metamodel_rendersettings' + ); + } + + return $result; + } + /** * Retrieve the model filters for the MCW. * diff --git a/src/CoreBundle/EventListener/SetLocaleInMetaModelListener.php b/src/CoreBundle/EventListener/SetLocaleInMetaModelListener.php new file mode 100644 index 000000000..211c634f3 --- /dev/null +++ b/src/CoreBundle/EventListener/SetLocaleInMetaModelListener.php @@ -0,0 +1,38 @@ + + * @copyright 2012-2024 The MetaModels team. + * @license https://github.com/MetaModels/core/blob/master/LICENSE LGPL-3.0-or-later + * @filesource + */ + +declare(strict_types=1); + +namespace MetaModels\CoreBundle\EventListener; + +use MetaModels\Events\CreateMetaModelEvent; +use MetaModels\ITranslatedMetaModel; + +final class SetLocaleInMetaModelListener +{ + /** @SuppressWarnings(PHPMD.Superglobals) */ + public function __invoke(CreateMetaModelEvent $event): void + { + $metaModel = $event->getMetaModel(); + $language = $GLOBALS['TL_LANGUAGE'] ?? null; + if (null !== $language && $metaModel instanceof ITranslatedMetaModel) { + $metaModel->selectLanguage($language); + } + } +} diff --git a/src/CoreBundle/Resources/config/listeners.yml b/src/CoreBundle/Resources/config/listeners.yml index d5959e8e7..9367eaab6 100644 --- a/src/CoreBundle/Resources/config/listeners.yml +++ b/src/CoreBundle/Resources/config/listeners.yml @@ -104,6 +104,12 @@ services: event: kernel.request priority: -500 + MetaModels\CoreBundle\EventListener\SetLocaleInMetaModelListener: + tags: + - name: kernel.event_listener + event: metamodels.metamodel.create + priority: -100 + # metamodels.listener.table.tl_metamodel_rendersettings: # class: MetaModels\DcGeneral\Events\Table\RenderSettings\Subscriber # arguments: diff --git a/src/CoreBundle/Resources/config/services.yml b/src/CoreBundle/Resources/config/services.yml index 25ca2647c..cc3493219 100644 --- a/src/CoreBundle/Resources/config/services.yml +++ b/src/CoreBundle/Resources/config/services.yml @@ -127,6 +127,7 @@ services: arguments: - '@database_connection' - '@MetaModels\Filter\FilterUrlBuilder' + - '@translator' public: true metamodels.controller.abstract.add_all: @@ -302,6 +303,7 @@ services: arguments: $factory: '@metamodels.factory' $cache: '@metamodels.cache_internal' + $localeProvider: '@contao.intl.locales' MetaModels\CoreBundle\Translator\Translator: decorates: 'contao.translation.translator' diff --git a/src/CoreBundle/Resources/contao/dca/tl_metamodel_rendersettings.php b/src/CoreBundle/Resources/contao/dca/tl_metamodel_rendersettings.php index 636114838..c7c8a9055 100644 --- a/src/CoreBundle/Resources/contao/dca/tl_metamodel_rendersettings.php +++ b/src/CoreBundle/Resources/contao/dca/tl_metamodel_rendersettings.php @@ -290,16 +290,26 @@ 'exclude' => true, 'inputType' => 'justtextoption', 'eval' => [ + 'tl_class' => 'jumpTo_language', 'valign' => 'center' ] ], + 'type' => [ + 'label' => 'jumpTo_type.label', + 'description' => 'jumpTo_type.description', + 'exclude' => true, + 'inputType' => 'select', + 'eval' => [ + 'tl_class' => 'jumpTo_type', + ] + ], 'value' => [ 'label' => 'jumpTo_page.label', 'description' => 'jumpTo_page.description', 'exclude' => true, 'inputType' => 'text', 'eval' => [ - 'style' => 'width:90%;' + 'tl_class' => 'jumpTo_page', ] ], 'filter' => [ @@ -308,7 +318,7 @@ 'exclude' => true, 'inputType' => 'select', 'eval' => [ - 'style' => 'width:100%;', + 'tl_class' => 'jumpTo_filter', 'includeBlankOption' => true, 'chosen' => true ] diff --git a/src/CoreBundle/Resources/contao/languages/da/default.php b/src/CoreBundle/Resources/contao/languages/da/default.php new file mode 100644 index 000000000..74ce75de4 --- /dev/null +++ b/src/CoreBundle/Resources/contao/languages/da/default.php @@ -0,0 +1,26 @@ + + Es ist erforderlich, dass diese Abfrage mindestens eine Spalte mit dem Namen "id" zurückgibt.
+ Es ist nicht möglich, Berechnungen aus dem SQL an die Liste zu übergeben.
+ Die Deklaration der Spaltennamen sollte mit dem Tabellenalias als Präfix eingegeben werden, z.B. t.name.'; +$GLOBALS['TL_LANG']['XPL']['customsql']['1']['0'] = 'Beispiel 1
Einfache Abfrage'; +$GLOBALS['TL_LANG']['XPL']['customsql']['1']['1'] = '
SELECT t.id FROM mm_mymetamodel AS t WHERE t.page_id=1
+ Damit werden alle IDs aus der Tabelle mm_mymetamodel ausgewählt, mit page_id=1 + '; +$GLOBALS['TL_LANG']['XPL']['customsql']['2']['0'] = 'Beispiel 2
Tabellennamen einsetzen'; +$GLOBALS['TL_LANG']['XPL']['customsql']['2']['1'] = '
SELECT t.id FROM {{table}} AS t WHERE t.page_id=1
+ Dies ist lediglich dasselbe wie in Beispiel 1, aber der Tabellenname des aktuellen MetaModel + (z.B.: das mm_mymetamodel von oben) wird in die Abfrage eingefügt.'; +$GLOBALS['TL_LANG']['XPL']['customsql']['3']['0'] = 'Inserttags'; +$GLOBALS['TL_LANG']['XPL']['customsql']['3']['1'] = 'Insert-Tags werden unterstützt. Bitte beachten, dass nicht alle Tags für alle Ausgaben verfügbar sein können. Falls eine Filtereinstellung wie zum Beispiel {{page::id}} benutzt wird, dann ist der Insert-Tag nur für einen Seitenaufruf im Frontend und nicht für einen RRS-Feed verfügbar.'; +$GLOBALS['TL_LANG']['XPL']['customsql']['4']['0'] = 'Sichere Inserttags'; +$GLOBALS['TL_LANG']['XPL']['customsql']['4']['1'] = 'Sichere Insert-Tags funktionieren wie normale Insert-Tags. Allerdings werden die Werte in der Abfrage escaped.
Eine unbedachte Nutzung kann daher zu unerwarteten Ergebnissen führen.
Die Notation für sichere Insert-Tags ist wie folgt:
{{secure::page::id}}
'; +$GLOBALS['TL_LANG']['XPL']['customsql']['5']['0'] = 'Parameterquellen'; +$GLOBALS['TL_LANG']['XPL']['customsql']['5']['1'] = 'Parameterquellen sind nach diesem Muster aufgebaut:
{{param::[source]?[query string]}}
Eine Quelle kann bestehen aus
  • get - HTTP GET Query-String
  • post - HTTP POST Feldern
  • session - einem beliebigen Feld aus der Contao-Session
  • filter - einen beliebigen ausgeführten Filterparameter (um Filterparameter zwischen Filtereinstellungen zu teilen).
Der Abfragestring wird wie ein normaler HTTP-Query-String als "name=wert"-Paar aufgebaut kann mit dem Zeichen & kombiniert werden und muss mindestens das Feld \'name\' enthalten. Einer oder mehrere der folgenden optionalen Schlüsselwörter können zusätzlich benutzt werden;
  • default - der zu benutzende Standardwert falls kein anderer zur Verfügung steht
  • aggregate - entweder "list" oder "set"
  • key - auf 1 setzen um den Schlüssel eines Array auszulesen (benötigt "aggregate").
  • recursive - auf 1 setzen um Arrays rekursiv auszulesen (benötigt "aggregate").
'; +$GLOBALS['TL_LANG']['XPL']['customsql']['6']['0'] = 'Beispiel 3
+Komplexe Filter, Parameter und Quellen nutzen'; +$GLOBALS['TL_LANG']['XPL']['customsql']['6']['1'] = '
SELECT t.id
+    FROM {{table}} AS t
+    WHERE t.catname={{param::get?name=category&default=defaultcat}}
+

+ Dies ist dasselbe wie in Beispiel 2, aber jetzt verwenden wir einen Parameter aus dem "query"-String. +

+

+ bei der Beispiel-URL wie diese: "http://example.org/list/category/demo.html"
+ wäre das Query: "SELECT t.id FROM mm_demo AS t WHERE t.catname=\'demo\'" +

+

+ Ist die URL: "http://example.org/list.html",
+ wäre das Query: "SELECT t.id FROM mm_demo AS t WHERE t.catname=\'defaultcat\'" +

+ '; +$GLOBALS['TL_LANG']['XPL']['dca_panellayout']['0']['0'] = 'Panel-Optionen'; +$GLOBALS['TL_LANG']['XPL']['dca_panellayout']['0']['1'] = 'Fügen Sie eine oder mehrere Panel-Optionen hinzu und trennen Sie diese mit einem Komma (= Freiraum) oder Semikolon (= neue Zeile), z. B. "filter;search;sort,limit".'; +$GLOBALS['TL_LANG']['XPL']['dca_panellayout']['1']['0'] = 'Panel-Optionen zum Kopieren'; +$GLOBALS['TL_LANG']['XPL']['dca_panellayout']['1']['1'] = 'filter;search;sort,limit'; +$GLOBALS['TL_LANG']['XPL']['dca_panellayout']['2']['0'] = 'Filtern'; +$GLOBALS['TL_LANG']['XPL']['dca_panellayout']['2']['1'] = 'Zeige Filter in der Listendarstellung'; +$GLOBALS['TL_LANG']['XPL']['dca_panellayout']['3']['0'] = 'Suche'; +$GLOBALS['TL_LANG']['XPL']['dca_panellayout']['3']['1'] = 'Zeige Suche in der Listendarstellung'; +$GLOBALS['TL_LANG']['XPL']['dca_panellayout']['4']['0'] = 'Sortierung'; +$GLOBALS['TL_LANG']['XPL']['dca_panellayout']['4']['1'] = 'Zeige Sortierung in der Listendarstellung'; +$GLOBALS['TL_LANG']['XPL']['dca_panellayout']['5']['0'] = 'Limit'; +$GLOBALS['TL_LANG']['XPL']['dca_panellayout']['5']['1'] = 'Zeige Limit in der Listendarstellung'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['0']['0'] = 'Eigenschaftswert ist gleich ...'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['0']['1'] = 'Die Bedingung ist erfüllt, wenn der Attributwert gleich dem festgelegten Wert ist. Als Attribute können diejenigen mit Einfachauswahl wie z.B. Select oder Checkbox ausgewählt werden.'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['1']['0'] = 'Eigenschaftswert beinhaltet ...'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['1']['1'] = 'Die Bedingung ist erfüllt, wenn ein beliebiger Attributwert gleich dem jeweils festgelegten Wert ist (Schnittmenge bzw. ODER). Als Attribute können diejenigen mit Mehrfachauswahl wie z.B. Tags ausgewählt werden.'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['2']['0'] = 'Eigenschaft ist sichtbar ...'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['2']['1'] = 'Die Bedingung ist erfüllt, wenn alle Bedingungen für ein ausgewähltes Attribut erfüllt sind. Mit anderen Worten, das Attribut ist sichtbar, und nur dann, wenn das ausgewählte (oder "referenzierte") Attribut auch sichtbar ist. Mit diesem Bedingungstyp erspart man sich das Duplizieren von erstellten Ansichtsbedingungen eines Attributs.'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['3']['0'] = 'ODER'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['3']['1'] = 'Eine beliebige Bedingung muss erfüllt sein.'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['4']['0'] = 'UND'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['4']['1'] = 'Alle Bedingungen müssen erfüllt sein.'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['5']['0'] = 'NICHT'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['5']['1'] = 'Kehrt das Ergebnis einer vorgegebenen Bedingung um.'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['0']['0'] = 'Die CSS-Klasse für das Eingabewidget setzen'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['0']['1'] = 'Legen Sie eine oder mehrere der folgenden CSS-Klassen fest, um das Layout des Widgets wie "clr w50" zu definieren.'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['1']['0'] = 'CSS-Klassen zum Kopieren'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['1']['1'] = 'clr clx w50 w50x m12 wizard long'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['2']['0'] = 'clr'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['2']['1'] = 'Hebt alle Floats auf.'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['3']['0'] = 'clx'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['3']['1'] = 'Entfernt die Voreinstellung "overflow:hidden". Bitte gemeinsam mit "clr" verwenden.'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['4']['0'] = 'w50'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['4']['1'] = 'Setzt die Feldbreite auf 50% und floated links (float:left).'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['5']['0'] = 'w50x'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['5']['1'] = 'Entfernt die Voreinstellung für eine feste Höhe. Bitte gemeinsam mit "w50" verwenden.'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['6']['0'] = 'm12'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['6']['1'] = 'Fügt dem Element einen oberen Abstand von 12 Pixeln hinzu (z.B. für einzelne Checkboxen).'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['7']['0'] = 'wizard'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['7']['1'] = 'Verkürzt das Eingabefeld, damit genug Platz für den Wizard (z.B. einen Date Picker) ist.'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['8']['0'] = 'long'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['8']['1'] = 'Setzt das Feld auf 100% Breite.'; diff --git a/src/CoreBundle/Resources/contao/languages/de/modules.php b/src/CoreBundle/Resources/contao/languages/de/modules.php new file mode 100644 index 000000000..5da858751 --- /dev/null +++ b/src/CoreBundle/Resources/contao/languages/de/modules.php @@ -0,0 +1,31 @@ +/orderDir/.html\' oder per GET-Parameter überschrieben werden.'; +$GLOBALS['TL_LANG']['tl_content']['metamodel_sort_param_type']['0'] = 'URL-Typ für Parameter'; +$GLOBALS['TL_LANG']['tl_content']['metamodel_sort_param_type']['1'] = 'Bitte wählen Sie den Typ der URL Parameter als Slug (key/value) oder GET (key=value).'; +$GLOBALS['TL_LANG']['tl_content']['metamodel_sort_urlfragment']['0'] = 'URL-Fragment'; +$GLOBALS['TL_LANG']['tl_content']['metamodel_sort_urlfragment']['1'] = 'URL-Fragment als Sprungmarke zu einem Anker oder ID.'; +$GLOBALS['TL_LANG']['tl_content']['metamodel_sortby']['0'] = 'Sortieren nach'; +$GLOBALS['TL_LANG']['tl_content']['metamodel_sortby']['1'] = 'Bitte wählen Sie eine Reihenfolge für die Sortierung aus.'; +$GLOBALS['TL_LANG']['tl_content']['metamodel_sortby_direction']['0'] = 'Sortierreihenfolge'; +$GLOBALS['TL_LANG']['tl_content']['metamodel_sortby_direction']['1'] = 'In aufsteigender oder absteigender Reihenfolge'; +$GLOBALS['TL_LANG']['tl_content']['metamodel_use_limit']['0'] = 'Offset und Limit für die Auflistung verwenden'; +$GLOBALS['TL_LANG']['tl_content']['metamodel_use_limit']['1'] = 'Auswählen, falls Sie die Anzahl anzuzeigender Items begrenzen möchten. Diese Einstellung ist beipielsweise nützlich, wenn Sie nur die ersten 500 Items anzeigen möchten, oder falls Sie alle Items anzeigen und dabei die ersten 10 überspringen wollen. Eine voreingestellte Paginierung bleibt dabei erhalten.'; +$GLOBALS['TL_LANG']['tl_content']['metamodel_use_parameters']['0'] = 'Parameter aktivieren'; +$GLOBALS['TL_LANG']['tl_content']['metamodel_use_parameters']['1'] = 'Sie können die Parameterliste aktivieren, um Ihre eigenen Parameter einzustellen.'; +$GLOBALS['TL_LANG']['tl_content']['mm_config_legend'] = 'MetaModel-Einstellungen'; +$GLOBALS['TL_LANG']['tl_content']['mm_filter_legend'] = 'MetaModel-Filter'; +$GLOBALS['TL_LANG']['tl_content']['mm_meta_legend'] = 'Suchmaschinen-Optimierung'; +$GLOBALS['TL_LANG']['tl_content']['mm_pagination_legend'] = 'MetaModel Paginierung'; +$GLOBALS['TL_LANG']['tl_content']['mm_parameters_legend'] = 'Parameter-Einstellungen'; +$GLOBALS['TL_LANG']['tl_content']['mm_rendering_legend'] = 'MetaModel Render-Einstellung'; +$GLOBALS['TL_LANG']['tl_content']['mm_sorting_legend'] = 'MetaModel Sortierung'; diff --git a/src/CoreBundle/Resources/contao/languages/de/tl_form_field.php b/src/CoreBundle/Resources/contao/languages/de/tl_form_field.php new file mode 100644 index 000000000..6b4d6a2da --- /dev/null +++ b/src/CoreBundle/Resources/contao/languages/de/tl_form_field.php @@ -0,0 +1,27 @@ +Hinweis: Diese Option wird automatisch gesetzt, wenn in der Attributkonfiguration "Eindeutige Werte" ausgewählt wurde.'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['mandatory_for_unique_attr'] = 'Eindeutige (unique) Attribute sind automatisch Pflichtfelder (Einstellung nicht änderbar).'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['name_langcode'] = 'Sprache'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['name_value'] = 'Legenden-Titel'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['new']['0'] = 'Neu'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['new']['1'] = 'Neue Einstellung erstellen.'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['overview_legend'] = 'Filtern und Suchen in der Backend-Liste'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['pasteafter']['0'] = 'Neue Einstellung oben anlegen'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['pasteafter']['1'] = 'Neue Einstellung nach Element ID %s anlegen'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['pastenew']['0'] = 'Neue Einstellung oben anlegen'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['pastenew']['1'] = 'Neues Einstellung nach dem Element ID %s anlegen'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['presentation_legend'] = 'Anzeigeoptionen des Widgets'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['preserveTags']['0'] = 'Alle HTML-Tags nicht encodieren'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['preserveTags']['1'] = 'Falls angewählt, werden keine HTML-Tags encodiert.'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['readonly']['0'] = 'Nur lesen'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['readonly']['1'] = 'Wenn aktiviert, erlaubt das Feld nur das Lesen und kann nicht geändert werden.'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['readonly_for_force_alias'] = 'Attribute mit "Neuerstellung erzwingen" sind automatisch "nur lesend" (Einstellung nicht änderbar).'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['rows']['0'] = 'Zeilen'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['rows']['1'] = 'Anzahl der Zeilen, die für longtext / table Widget verwendet werden.'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['rte']['0'] = 'Richtext-Editor aktivieren'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['rte']['1'] = 'Wählen Sie eine Voreinstellung für den Richtext-Editor aus, die für dieses Feld benutzt werden soll (falls vorhanden).'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['searchable']['0'] = 'Suchbar'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['searchable']['1'] = 'Auswählen, falls dieses Attribut für die Suche im Backend zur Verfügung stehen soll.'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['show']['0'] = 'Einstellungsdetails'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['show']['1'] = 'Zeige Details der Einstellung ID %s'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['spaceToUnderscore']['0'] = 'Leerzeichen durch Unterstriche ersetzen'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['spaceToUnderscore']['1'] = 'Falls diese Option angewählt ist, werden Leerzeichen durch Unterstriche ersetzt.'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['submitOnChange']['0'] = 'Absenden bei Änderungen'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['submitOnChange']['1'] = 'Wenn aktiv, wird das Formular bei Änderungen eines Feldwertes abgesendet.'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['template']['0'] = 'Angepasstes Template für die Ausgabe'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['template']['1'] = 'Wählen Sie das Template aus, das für das gewählte Attribut verwendet werden soll. Gültige Dateinamen für das Template beginnen mit "mm_<typ>", wobei <typ> für den Typ steht.'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['title_legend'] = 'Typ'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['tl_class']['0'] = 'Backend-Klasse'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['tl_class']['1'] = 'Hier können Sie eine oder mehrere Backend-Klassen festlegen.'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['toggle']['0'] = 'Wechseln'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['toggle']['1'] = 'Umschaltung des Status der Einstellung ID %s'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['trailingSlash']['0'] = 'Führende \'/\' bearbeiten'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['trailingSlash']['1'] = 'Hier können Sie angeben, wie führende \'/\' behandelt werden sollen.'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['trailingSlash_options']['0'] = 'Schrägstrich beim Speichern entfernen'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['trailingSlash_options']['1'] = 'Schrägstrich beim Speichern hinzufügen'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['trailingSlash_options']['2'] = 'Nichts tun'; diff --git a/src/CoreBundle/Resources/contao/languages/de/tl_metamodel_dcasetting_condition.php b/src/CoreBundle/Resources/contao/languages/de/tl_metamodel_dcasetting_condition.php new file mode 100644 index 000000000..52b3e2ad9 --- /dev/null +++ b/src/CoreBundle/Resources/contao/languages/de/tl_metamodel_dcasetting_condition.php @@ -0,0 +1,69 @@ +%s
für Attribut %s (Parameter: %s)'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting_condition']['typedesc']['conditionand'] = '%s %s
alle Bedingungen müssen erfüllt sein.'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting_condition']['typedesc']['conditionnot'] = '%s %s
kehrt das Ergebnis der vorgegebenen Bedingung um.'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting_condition']['typedesc']['conditionor'] = '%s %s
eine beliebige Bedingung muss erfüllt sein.'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting_condition']['value']['0'] = 'Wert'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting_condition']['value']['1'] = 'Bitte wählen Sie einen eigenen Wert aus.'; diff --git a/src/CoreBundle/Resources/contao/languages/de/tl_metamodel_filter.php b/src/CoreBundle/Resources/contao/languages/de/tl_metamodel_filter.php new file mode 100644 index 000000000..3c6cb6348 --- /dev/null +++ b/src/CoreBundle/Resources/contao/languages/de/tl_metamodel_filter.php @@ -0,0 +1,44 @@ +[%s, "%s"]'; +$GLOBALS['TL_LANG']['tl_metamodel_filtersetting']['typedesc']['_comment_'] = '
%s'; +$GLOBALS['TL_LANG']['tl_metamodel_filtersetting']['typedesc']['_default_'] = '%1$s %2$s%3$s%5$s%4$s'; +$GLOBALS['TL_LANG']['tl_metamodel_filtersetting']['typedesc']['_url_'] = ' (URL: %s)'; +$GLOBALS['TL_LANG']['tl_metamodel_filtersetting']['typedesc']['conditionand'] = '%1$s %2$s%4$s'; +$GLOBALS['TL_LANG']['tl_metamodel_filtersetting']['typedesc']['conditionor'] = '%1$s %2$s%4$s'; +$GLOBALS['TL_LANG']['tl_metamodel_filtersetting']['typedesc']['fefilter'] = '%1$s %2$s %3$s%4$s'; +$GLOBALS['TL_LANG']['tl_metamodel_filtersetting']['typedesc']['simplelookup'] = '%1$s %2$s%3$s%5$s%4$s'; +$GLOBALS['TL_LANG']['tl_metamodel_filtersetting']['typenames']['conditionand'] = 'UND-Bedingung (AND)'; +$GLOBALS['TL_LANG']['tl_metamodel_filtersetting']['typenames']['conditionor'] = 'ODER-Bedingung (OR)'; +$GLOBALS['TL_LANG']['tl_metamodel_filtersetting']['typenames']['customsql'] = 'Eigenes SQL'; +$GLOBALS['TL_LANG']['tl_metamodel_filtersetting']['typenames']['idlist'] = 'Vordefinierter Satz von Items'; +$GLOBALS['TL_LANG']['tl_metamodel_filtersetting']['typenames']['simplelookup'] = 'Einfache Abfrage'; +$GLOBALS['TL_LANG']['tl_metamodel_filtersetting']['urlparam']['0'] = 'URL-Parameter'; +$GLOBALS['TL_LANG']['tl_metamodel_filtersetting']['urlparam']['1'] = 'Geben Sie den URL-Parameter an, der dem ausgewählten Attribut zugeordnet werden soll. Der "auto_item"-Parameter kann ebenfalls verwendet werden. Diese Einstellung ist nützlich um Aliase zu verwenden.'; diff --git a/src/CoreBundle/Resources/contao/languages/de/tl_metamodel_item.php b/src/CoreBundle/Resources/contao/languages/de/tl_metamodel_item.php new file mode 100644 index 000000000..f1324b9cf --- /dev/null +++ b/src/CoreBundle/Resources/contao/languages/de/tl_metamodel_item.php @@ -0,0 +1,51 @@ +%s [%s]'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['addAll_activate'] = 'Hinzugefügte Attribute aktivieren.'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['addAll_addsuccess'] = 'Das Attribut "%s" [%s] wurde der Render-Einstellung hinzugefügt.'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['addAll_alreadycontained'] = 'Das Attribut "%s" [%s] ist bereits in der Render-Einstellung vorhanden.'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['addAll_willadd'] = 'Fügt das Attribut "%s" [%s] den Render-Einstellung hinzu.'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['addall']['0'] = 'Alle hinzufügen'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['addall']['1'] = 'Alle Attribute der Render-Einstellung hinzufügen.'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['additional_class']['0'] = 'Eigene CSS-Klasse'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['additional_class']['1'] = 'Eingabe einer CSS-Klasse, wenn diese mit dem Attribut ausgegeben werden soll.'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['advanced_legend'] = 'Erweitern'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['attr_id']['0'] = 'Attribut'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['attr_id']['1'] = 'Attribut, auf das sich diese Einstellung bezieht.'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['copy']['0'] = 'Render-Einstellung kopieren'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['copy']['1'] = 'Kopieren Sie die Render-Einstellung ID %s.'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['cut']['0'] = 'Render-Einstellung ausschneiden'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['cut']['1'] = 'Ausschneiden der Render-Einstellung ID %s.'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['delete']['0'] = 'Render-Einstellung löschen'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['delete']['1'] = 'Löschen Sie die Render-Einstellung ID %s'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['edit']['0'] = 'Einstellung bearbeiten'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['edit']['1'] = 'Render-Einstellung ID %s bearbeiten.'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['new']['0'] = 'Neu'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['new']['1'] = 'Neue Einstellung erstellen.'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['pastenew']['0'] = 'Neue Einstellung oben erstellen'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['pastenew']['1'] = 'Neues Einstellung nach Render-Einstellung ID %s anlegen'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['show']['0'] = 'Details der Render-Einstellung'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['show']['1'] = 'Anzeige Details der Render-Einstellung ID %s'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['template']['0'] = 'Angepasstes Template für die Ausgabe'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['template']['1'] = 'Wählen Sie das Template aus, das für das gewählte Attribut verwendet werden soll. Gültige Dateinamen für das Template beginnen mit "mm_<typ>", wobei <typ> für den Typ steht.'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['title_legend'] = 'Typ'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['toggle']['0'] = 'Wechseln'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['toggle']['1'] = 'Umschaltung des Status für die Render-Einstellung ID %s.'; diff --git a/src/CoreBundle/Resources/contao/languages/de/tl_metamodel_rendersettings.php b/src/CoreBundle/Resources/contao/languages/de/tl_metamodel_rendersettings.php new file mode 100644 index 000000000..c411243bf --- /dev/null +++ b/src/CoreBundle/Resources/contao/languages/de/tl_metamodel_rendersettings.php @@ -0,0 +1,74 @@ +/orderDir/.html\' oder per GET-Parameter überschrieben werden.'; +$GLOBALS['TL_LANG']['tl_module']['metamodel_sort_param_type']['0'] = 'URL-Typ für Parameter'; +$GLOBALS['TL_LANG']['tl_module']['metamodel_sort_param_type']['1'] = 'Bitte geben Sie den Typ der URL-Parameter als Slug (key/value) oder GET (key=value) an.'; +$GLOBALS['TL_LANG']['tl_module']['metamodel_sort_urlfragment']['0'] = 'URL-Fragment'; +$GLOBALS['TL_LANG']['tl_module']['metamodel_sort_urlfragment']['1'] = 'URL-Fragment als Sprungmarke zu einem Anker oder ID.'; +$GLOBALS['TL_LANG']['tl_module']['metamodel_sortby']['0'] = 'Sortieren nach'; +$GLOBALS['TL_LANG']['tl_module']['metamodel_sortby']['1'] = 'Bitte wählen Sie eine Reihenfolge für die Sortierung aus.'; +$GLOBALS['TL_LANG']['tl_module']['metamodel_sortby_direction']['0'] = 'Sortierreihenfolge'; +$GLOBALS['TL_LANG']['tl_module']['metamodel_sortby_direction']['1'] = 'In aufsteigender oder absteigender Reihenfolge'; +$GLOBALS['TL_LANG']['tl_module']['metamodel_use_limit']['0'] = 'Offset und Limit für die Auflistung verwenden'; +$GLOBALS['TL_LANG']['tl_module']['metamodel_use_limit']['1'] = 'Auswählen, falls Sie die Anzahl anzuzeigender Datensätze begrenzen möchten. Diese Einstellung ist beispielsweise nützlich, wenn Sie nur die ersten 500 Datensätze anzeigen möchten, oder falls Sie alle Datensätze anzeigen und dabei die ersten 10 überspringen wollen. Eine voreingestellte Paginierung bleibt dabei erhalten.'; +$GLOBALS['TL_LANG']['tl_module']['metamodel_use_parameters']['0'] = 'Parameter aktivieren'; +$GLOBALS['TL_LANG']['tl_module']['metamodel_use_parameters']['1'] = 'Sie können die Parameterliste aktivieren, um Ihre eigenen Parameter einzustellen.'; +$GLOBALS['TL_LANG']['tl_module']['mm_config_legend'] = 'MetaModel-Einstellungen'; +$GLOBALS['TL_LANG']['tl_module']['mm_filter_legend'] = 'MetaModel-Filter'; +$GLOBALS['TL_LANG']['tl_module']['mm_meta_legend'] = 'Suchmaschinen-Optimierung'; +$GLOBALS['TL_LANG']['tl_module']['mm_pagination_legend'] = 'MetaModel Paginierung'; +$GLOBALS['TL_LANG']['tl_module']['mm_parameters_legend'] = 'Parameter-Einstellungen'; +$GLOBALS['TL_LANG']['tl_module']['mm_rendering_legend'] = 'MetaModel Render-Einstellung'; +$GLOBALS['TL_LANG']['tl_module']['mm_sorting_legend'] = 'MetaModel Sortierung'; diff --git a/src/CoreBundle/Resources/contao/languages/de/tl_syncCto_database.php b/src/CoreBundle/Resources/contao/languages/de/tl_syncCto_database.php new file mode 100644 index 000000000..a597cbf78 --- /dev/null +++ b/src/CoreBundle/Resources/contao/languages/de/tl_syncCto_database.php @@ -0,0 +1,32 @@ +απλό ερώτημα '; +$GLOBALS['TL_LANG']['XPL']['customsql']['2']['0'] = 'Παραδειγμα 2
εισαγωγη ονοματος ταμπελας'; +$GLOBALS['TL_LANG']['XPL']['customsql']['3']['0'] = 'Εισαγωγη ετικετων'; +$GLOBALS['TL_LANG']['XPL']['customsql']['4']['0'] = 'Ασφαλης εισαγωγη ετικετων'; +$GLOBALS['TL_LANG']['XPL']['customsql']['5']['0'] = 'Πηγες παραμετρων
'; +$GLOBALS['TL_LANG']['XPL']['customsql']['6']['0'] = 'Παραδειγμα 3
χρησιμοποιηση φιλτρων των παραμετρων πηγων'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['3']['0'] = 'OR'; diff --git a/src/CoreBundle/Resources/contao/languages/el/modules.php b/src/CoreBundle/Resources/contao/languages/el/modules.php new file mode 100644 index 000000000..1fc670e0b --- /dev/null +++ b/src/CoreBundle/Resources/contao/languages/el/modules.php @@ -0,0 +1,31 @@ +%s [%s]'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['addall']['0'] = 'Προσθηκη ολων'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['addall']['1'] = ' +Προσθέστε όλα τα χαρακτηριστικά για να καταστήσει τη ρύθμιση '; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['advanced_legend'] = 'Προσαρμογη'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['attr_id']['0'] = ' Χαρακτηριστικο'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['attr_id']['1'] = 'Χαρακτηριστικό που η ρύθμιση αυτή το αφορά.'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['edit']['0'] = 'Επεξεργασια ρυθμισης'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['new']['0'] = 'Νεος τυπος'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['new']['1'] = 'Δημιουργια νεας ρυθμισης'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['template']['0'] = 'Προσαρμοσμένο πρότυπο που θα χρησιμοποιηθεί για την παραγωγή '; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['template']['1'] = 'Επιλέξτε το πρότυπο που πρέπει να χρησιμοποιηθεί για την επιλεγμένη ιδιότητα. Ισχύει για αρχεία προτύπων αρχίζουν με "mm_<type>" όπου το όνομα του τύπου τίθεται για <type>'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['title_legend'] = 'Τυπος'; diff --git a/src/CoreBundle/Resources/contao/languages/el/tl_metamodel_rendersettings.php b/src/CoreBundle/Resources/contao/languages/el/tl_metamodel_rendersettings.php new file mode 100644 index 000000000..cd49e122c --- /dev/null +++ b/src/CoreBundle/Resources/contao/languages/el/tl_metamodel_rendersettings.php @@ -0,0 +1,63 @@ +lihtne päring'; +$GLOBALS['TL_LANG']['XPL']['customsql']['3']['0'] = 'Sisesta silte'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['0']['0'] = 'Omaduse väärtus on...'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['2']['0'] = 'Kas omadus on nähtav...'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['3']['0'] = 'VÕI'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['4']['0'] = 'JA'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['5']['0'] = 'EI'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['2']['0'] = 'clr'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['3']['0'] = 'clx'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['4']['0'] = 'w50'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['5']['0'] = 'w50x'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['6']['0'] = 'm12'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['7']['0'] = 'juhendaja'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['8']['0'] = 'Pikk'; diff --git a/src/CoreBundle/Resources/contao/languages/et/modules.php b/src/CoreBundle/Resources/contao/languages/et/modules.php new file mode 100644 index 000000000..4254c948f --- /dev/null +++ b/src/CoreBundle/Resources/contao/languages/et/modules.php @@ -0,0 +1,26 @@ +requête plaine'; +$GLOBALS['TL_LANG']['XPL']['customsql']['2']['0'] = 'Example 2
insert tablename'; +$GLOBALS['TL_LANG']['XPL']['customsql']['3']['0'] = 'Balises d\'insertion'; +$GLOBALS['TL_LANG']['XPL']['customsql']['4']['0'] = 'Sécuriser les balises'; +$GLOBALS['TL_LANG']['XPL']['customsql']['5']['0'] = 'Source des paramètres
'; +$GLOBALS['TL_LANG']['XPL']['customsql']['6']['0'] = 'Example 3
Utilise des sources de paramètres de filtre complexe'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['3']['0'] = 'OR'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['2']['0'] = 'clr'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['2']['1'] = 'Effacer tous les flottants'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['3']['0'] = 'clx'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['3']['1'] = 'Enlever seulement le débordement caché ennuyeux, à utiliser avec "clr".'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['4']['0'] = 'w50'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['4']['1'] = 'Définir la largeur du champ à 50% et son type de flottant (float:left).'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['5']['0'] = 'w50x'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['5']['1'] = 'Retirer seulement la hauteur fixe ennuyeuse, à utiliser avec "w50".'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['6']['0'] = 'm12'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['6']['1'] = 'Ajoute 12 pixels à la marge haute de l\'élément (utilisé pour les cases à cocher simples).'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['7']['0'] = 'wizard'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['7']['1'] = 'Raccourcir le champ de saisie de sorte qu\'il y ait assez de place pour le bouton Assistant (ex : champ sélecteur de date).'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['8']['0'] = 'long'; diff --git a/src/CoreBundle/Resources/contao/languages/fr/modules.php b/src/CoreBundle/Resources/contao/languages/fr/modules.php new file mode 100644 index 000000000..f48a0ed0b --- /dev/null +++ b/src/CoreBundle/Resources/contao/languages/fr/modules.php @@ -0,0 +1,31 @@ +"auto_item" peut aussi être utilisé, spécialement pour les alias de colonnes.'; diff --git a/src/CoreBundle/Resources/contao/languages/fr/tl_metamodel_item.php b/src/CoreBundle/Resources/contao/languages/fr/tl_metamodel_item.php new file mode 100644 index 000000000..d76d83197 --- /dev/null +++ b/src/CoreBundle/Resources/contao/languages/fr/tl_metamodel_item.php @@ -0,0 +1,45 @@ +%s [%s]'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['addall']['0'] = 'Ajouter tout'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['addall']['1'] = 'Ajouter tout les attributs au paramètre de rendu'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['advanced_legend'] = 'Avancé'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['attr_id']['0'] = 'Attribut'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['attr_id']['1'] = 'l\'attribut auquel ce paramètre se réfère.'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['edit']['0'] = 'Éditer le paramètre'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['new']['0'] = 'Nouveau'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['new']['1'] = 'Créer nouveau paramètre'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['template']['0'] = 'Modèle personnalisé à utiliser pour la production'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['template']['1'] = 'Sélectionner le modèle qui doit être utilisé pour l\'attribut sélectionné. les fichiers modèle valides commencent par "mm_<type>" où le nom type est mis pour <type>'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['title_legend'] = 'Type'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['toggle']['0'] = 'Basculer'; diff --git a/src/CoreBundle/Resources/contao/languages/fr/tl_metamodel_rendersettings.php b/src/CoreBundle/Resources/contao/languages/fr/tl_metamodel_rendersettings.php new file mode 100644 index 000000000..618ba1b4d --- /dev/null +++ b/src/CoreBundle/Resources/contao/languages/fr/tl_metamodel_rendersettings.php @@ -0,0 +1,64 @@ +query semplice'; +$GLOBALS['TL_LANG']['XPL']['customsql']['2']['0'] = 'Esempio 2
Riferimento nome tabella'; +$GLOBALS['TL_LANG']['XPL']['customsql']['3']['0'] = 'Insert tags'; +$GLOBALS['TL_LANG']['XPL']['customsql']['4']['0'] = 'Secure insert tags'; +$GLOBALS['TL_LANG']['XPL']['customsql']['5']['0'] = 'Sorgente dei parametri'; +$GLOBALS['TL_LANG']['XPL']['customsql']['6']['0'] = 'Esempio 3
Utilizzo di filtri di sorgenti parametri complessi '; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['3']['0'] = 'OR'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['2']['0'] = 'clr'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['2']['1'] = 'Elimina tutti i floats.'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['3']['0'] = 'clx'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['3']['1'] = 'Rimuove solo l\'overflow hidden fastidioso. Si prega di utilizzare insieme con "clr".'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['4']['0'] = 'w50'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['4']['1'] = 'Imposta la larghezza del campo al 50% e con float (float:left)'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['5']['0'] = 'w50x'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['5']['1'] = 'Rimuove solo l\'altezza fissa fastidiosa. Si prega di utilizzare insieme con "w50".'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['6']['0'] = 'm12'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['6']['1'] = 'Aggiungi 12 pixel al top margin dell\'elemento (utilizzato per i checkbox singoli)'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['7']['0'] = 'assistente'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['7']['1'] = 'Accorciare il campo di input per permettere di avere un pulsante di aiuto sul campo (esempio nei campi data per far comparire il calendario)'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['8']['0'] = 'lungo'; diff --git a/src/CoreBundle/Resources/contao/languages/it/modules.php b/src/CoreBundle/Resources/contao/languages/it/modules.php new file mode 100644 index 000000000..f488c9513 --- /dev/null +++ b/src/CoreBundle/Resources/contao/languages/it/modules.php @@ -0,0 +1,31 @@ +"auto_item" può essere utilizzato, questo è particolarmente utile come alias delle colonne.'; diff --git a/src/CoreBundle/Resources/contao/languages/it/tl_metamodel_item.php b/src/CoreBundle/Resources/contao/languages/it/tl_metamodel_item.php new file mode 100644 index 000000000..00593bc00 --- /dev/null +++ b/src/CoreBundle/Resources/contao/languages/it/tl_metamodel_item.php @@ -0,0 +1,45 @@ +%s [%s]'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['addall']['0'] = 'Aggiungi tutti'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['addall']['1'] = 'Aggiungi tutti gli attributi nelle impostazioni del render'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['advanced_legend'] = 'Avanzato'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['attr_id']['0'] = 'Attributo'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['attr_id']['1'] = 'Attributo a cui questa impostazione si riferisce.'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['edit']['0'] = 'Modifica l\'impostazione'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['new']['0'] = 'Nuovo'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['new']['1'] = 'Crea una nuova impostazione'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['template']['0'] = 'Template personalizzato da utilizzare per la generazione'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['template']['1'] = 'Selezionare il template che deve essere utilizzato per l\'attributo selezionato. Il nome del template deve iniziare con "mm_<type>" dove il nome del tipo deve essere inserito al posto di <type>'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['title_legend'] = 'Tipo'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['toggle']['0'] = 'Toggle'; diff --git a/src/CoreBundle/Resources/contao/languages/it/tl_metamodel_rendersettings.php b/src/CoreBundle/Resources/contao/languages/it/tl_metamodel_rendersettings.php new file mode 100644 index 000000000..5ced74e6e --- /dev/null +++ b/src/CoreBundle/Resources/contao/languages/it/tl_metamodel_rendersettings.php @@ -0,0 +1,64 @@ +dumonda simpla'; +$GLOBALS['TL_LANG']['XPL']['customsql']['2']['0'] = 'Exempel 2
inserir num da tabella'; +$GLOBALS['TL_LANG']['XPL']['customsql']['3']['0'] = 'Insert-tags'; +$GLOBALS['TL_LANG']['XPL']['customsql']['4']['0'] = 'Insert-tags segirs'; +$GLOBALS['TL_LANG']['XPL']['customsql']['5']['0'] = 'Funtaunas da parameters
'; +$GLOBALS['TL_LANG']['XPL']['customsql']['6']['0'] = 'Exempel 3
utilisar funtaunas da parameters cumplexas'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['3']['0'] = 'OR'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['2']['0'] = 'clr'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['2']['1'] = 'Annular tut ils floats.'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['3']['0'] = 'clx'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['3']['1'] = 'Allontanar l\'overflow zuppentà mulestus. Utilisar ensemen cun "clr".'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['4']['0'] = 'w50'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['4']['1'] = 'Definir la ladezza dal champ a 50% e laschar circumdar (float:left).'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['5']['0'] = 'w50x'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['5']['1'] = 'Allontanar la autezza fixa mulestusa. Utilisar ensemen cun "w50".'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['6']['0'] = 'm12'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['6']['1'] = 'Agiuntar sura a l\'element in ur da 12 pixels (vegn utilisà per chaschettas da controlla singulas).'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['7']['0'] = 'assistent'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['7']['1'] = 'Scursanir il champ d\'endataziun per ch\'i haja avunda plaz per in buttun d\'assistenza (p.ex. champs da tscherner la data).'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['8']['0'] = 'long'; diff --git a/src/CoreBundle/Resources/contao/languages/rm/modules.php b/src/CoreBundle/Resources/contao/languages/rm/modules.php new file mode 100644 index 000000000..c36509be8 --- /dev/null +++ b/src/CoreBundle/Resources/contao/languages/rm/modules.php @@ -0,0 +1,31 @@ +"auto_item" po era vegnir utilisà, quai è specialmain practic per colonnas dad alias.'; diff --git a/src/CoreBundle/Resources/contao/languages/rm/tl_metamodel_item.php b/src/CoreBundle/Resources/contao/languages/rm/tl_metamodel_item.php new file mode 100644 index 000000000..e919d7863 --- /dev/null +++ b/src/CoreBundle/Resources/contao/languages/rm/tl_metamodel_item.php @@ -0,0 +1,45 @@ +%s [%s]'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['addall']['0'] = 'Agiuntar tuts'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['addall']['1'] = 'Agiuntar tut ils attributs a la configuraziun da visualisar'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['advanced_legend'] = 'Avanzà'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['attr_id']['0'] = 'Attribut'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['attr_id']['1'] = 'Attribut che vegn definì da questa configuraziun.'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['edit']['0'] = 'Modifitgar la configuraziun'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['new']['0'] = 'Nov'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['new']['1'] = 'Crear ina nova configuraziun'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['template']['0'] = 'Template persunalisà per generar'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['template']['1'] = 'Tscherna il template che duai vegnir utilisà per l\'attribut tschernì. Datotecas da template validas cumenzan cun "mm_<type>", e <type> stat per il tip.'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['title_legend'] = 'Tip'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['toggle']['0'] = 'Activar/deactivar'; diff --git a/src/CoreBundle/Resources/contao/languages/rm/tl_metamodel_rendersettings.php b/src/CoreBundle/Resources/contao/languages/rm/tl_metamodel_rendersettings.php new file mode 100644 index 000000000..66932bf51 --- /dev/null +++ b/src/CoreBundle/Resources/contao/languages/rm/tl_metamodel_rendersettings.php @@ -0,0 +1,64 @@ +простой запрос'; +$GLOBALS['TL_LANG']['XPL']['customsql']['2']['0'] = 'Пример 2
вставка имени таблицы'; +$GLOBALS['TL_LANG']['XPL']['customsql']['3']['0'] = 'Вставка тегов'; +$GLOBALS['TL_LANG']['XPL']['customsql']['3']['1'] = 'Вставка тегов поддерживается, но имейте в виду, что не все теги могут + быть доступны когда используется параметр фильтра + (например, {{page::id}} доступен только при использовании + с передней страницы, а не из RSS-каналов).'; +$GLOBALS['TL_LANG']['XPL']['customsql']['4']['0'] = 'Безопасная вставка тегов'; +$GLOBALS['TL_LANG']['XPL']['customsql']['4']['1'] = 'Безопасные теги вставки похожи на теги простой вставки, но их значение ускользает в запросе.
+ Поэтому, возможно, вам лучше использовать безопасный эквивалент, если вы точно не знаете, что делаете.
+ Обозначения: +
{{secure::page::id}}
'; +$GLOBALS['TL_LANG']['XPL']['customsql']['5']['0'] = 'Параметр источников'; +$GLOBALS['TL_LANG']['XPL']['customsql']['5']['1'] = 'Источники параметров имеют нормальную компоновку: +
{{param::[source]?[query string]}}
+ Где источником может быть любой из: +
    +
  • get - строка запроса HTTP GET
  • +
  • post - HTTP POST поля
  • +
  • cookie - HTTP COOKIE значения
  • +
  • session - любое поле в the Contao сессии
  • +
  • filter - любой из переданных параметров фильтра (для обмена параметрами между настройками фильтра).
  • +
  • container - имя вызываемой службы в контейнере службы MetaModels (для этого требуется дополнительное PHP-кодирование с вашей стороны).
  • +
+ Строка запроса построена как обычная строка запроса HTTP как пары «имя = значение», которые объединены с помощью символа & char и должны содержать по крайней мере поле «имя». + Можно использовать одну или несколько следующих дополнительных клавиш: +
    +
  • default - значение по умолчанию для использования, если нет доступного значения.
  • +
  • aggregate - либо «список», либо «набор».
  • +
  • key - установить 1, чтобы прочитать ключ массивов (требуется совокупность с «set»).
  • +
  • recursive - устанавливается в 1 для чтения рекурсивных массивов (требуется совокупность с «set»).
  • +
  • service - имя службы для извлечения (требуется источник «service»).
  • +
+ '; +$GLOBALS['TL_LANG']['XPL']['customsql']['6']['0'] = 'Пример 3
использовать сложный фильтр параметров источников'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['0']['0'] = 'Значение атрибута...'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['0']['1'] = 'Условие выполняется, когда значение атрибута равно заданному значению.'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['1']['0'] = 'Значения атрибута содержат любое из...'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['1']['1'] = 'Условие выполняется, когда любое из значений атрибута соответствует хотя бы одному из указанных значений (установить пересечение).'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['2']['0'] = 'Является ли атрибут видимым...'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['2']['1'] = 'Условие выполняется, когда выполняется условие указанного атрибута. Другими словами, атрибут отображается, если и только если указанный атрибут также виден.'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['3']['0'] = 'ИЛИ'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['3']['1'] = 'Любое дополнительное условие должно быть выполнено.'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['4']['0'] = 'И'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['4']['1'] = 'Все вспомогательные условия должны быть выполнены.'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['5']['0'] = 'НЕ'; +$GLOBALS['TL_LANG']['XPL']['dcasetting_condition']['5']['1'] = 'Инвертировать результат содержащегося условия.'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['2']['0'] = 'clr'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['2']['1'] = 'Очистить все floats.'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['3']['0'] = 'clx'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['3']['1'] = 'Чтобы удалить только раздражающее переполнение, используйте его вместе с «clr».'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['4']['0'] = 'w50'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['4']['1'] = 'Установите ширину поля на 50% и поместите ее (float: left).'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['5']['0'] = 'w50x'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['5']['1'] = 'Чтобы удалить только раздражающую фиксированную высоту, используйте ее вместе с «w50».'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['6']['0'] = 'm12'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['6']['1'] = 'Добавьте верхний край 12 пикселей к элементу (используется для отдельных флажков).'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['7']['0'] = 'мастер'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['7']['1'] = 'Сократите поле ввода, чтобы было достаточно места для кнопки мастера (например, поля выбора даты).'; +$GLOBALS['TL_LANG']['XPL']['tl_class']['8']['0'] = 'длинный'; diff --git a/src/CoreBundle/Resources/contao/languages/ru/modules.php b/src/CoreBundle/Resources/contao/languages/ru/modules.php new file mode 100644 index 000000000..06d7ddd6c --- /dev/null +++ b/src/CoreBundle/Resources/contao/languages/ru/modules.php @@ -0,0 +1,31 @@ +ПРИМЕЧАНИЕ: Это будет неявно активным, если вы выбрали «Уникальные значения» в конфигурации атрибута.'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['mandatory_for_unique_attr'] = 'Уникальные атрибуты автоматически обязательны (это невозможно изменить).'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['name_langcode'] = 'Язык'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['name_value'] = 'Название легенды'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['new']['0'] = 'Новый'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['new']['1'] = 'Создать новую настройку'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['pasteafter']['0'] = 'Создать новую настройку сверху'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['pasteafter']['1'] = 'Создать новый после настройки ID %s'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['pastenew']['0'] = 'Добавить новый сверху'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['pastenew']['1'] = 'Добавить новый после настройки ID %s'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['presentation_legend'] = 'Связанные параметры внешнего вида виджета'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['preserveTags']['0'] = 'Не кодировать все теги html.'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['preserveTags']['1'] = 'Если вы выберете это, HTML-теги не будут закодированы.'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['readonly']['0'] = 'Только чтение'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['readonly']['1'] = 'Если истина, виджет будет доступен только для чтения и не может быть изменен.'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['readonly_for_force_alias'] = 'Атрибуты с принудительным псевдонимом автоматически считываются (это невозможно изменить).'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['rows']['0'] = 'Строки'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['rows']['1'] = 'Количество строк для виджета longtext/table.'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['rte']['0'] = 'Включить редактор расширенного текста'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['rte']['1'] = 'Выберите конфигурацию расширенного текста, которая будет использоваться в этом поле (если есть).'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['searchable']['0'] = 'Поисковый'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['searchable']['1'] = 'Выберите, если этот атрибут должен быть доступен для поиска в панели управления.'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['show']['0'] = 'Детали настроек'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['show']['1'] = 'Показать детали настроек ID %s'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['spaceToUnderscore']['0'] = 'Заменять пробелы на подчеркивания'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['spaceToUnderscore']['1'] = 'Если истина, любой пробел будет заменен подчеркиванием.'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['submitOnChange']['0'] = 'Отправить по изменению'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['submitOnChange']['1'] = 'Если активно, форма будет отправлена ​​при изменении значения поля.'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['template']['0'] = 'Пользовательские шаблоны для генерации'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['template']['1'] = 'Выберите шаблон, который должен использоваться для выбранного атрибута. Названия шаблонов начинаются с "mm_<type>", где название типа ставится для <type>'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['title_legend'] = 'Тип'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['tl_class']['0'] = 'Класс панели управления'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['toggle']['0'] = 'Переключить'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['toggle']['1'] = 'Переключить состояние настройки ID %s'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['trailingSlash']['0'] = 'Обработка замыкающего слеша'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['trailingSlash']['1'] = 'Здесь вы можете указать, как обрабатывать конечные слеши'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['trailingSlash_options']['0'] = 'Сбросить косую черту при сохранении'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['trailingSlash_options']['1'] = 'Добавить косую черту при сохранении'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting']['trailingSlash_options']['2'] = 'Ничего не делать'; diff --git a/src/CoreBundle/Resources/contao/languages/ru/tl_metamodel_dcasetting_condition.php b/src/CoreBundle/Resources/contao/languages/ru/tl_metamodel_dcasetting_condition.php new file mode 100644 index 000000000..145625ad3 --- /dev/null +++ b/src/CoreBundle/Resources/contao/languages/ru/tl_metamodel_dcasetting_condition.php @@ -0,0 +1,68 @@ +%s
для атрибута %s (Параметр: %s)'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting_condition']['typedesc']['conditionand'] = '%s %s
все вспомогательные условия должны быть выполнены'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting_condition']['typedesc']['conditionnot'] = '%s %s
инвертировать результат содержащегося условия'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting_condition']['typedesc']['conditionor'] = '%s %sлюбые условия должны быть выполнены'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting_condition']['value']['0'] = 'Значение'; +$GLOBALS['TL_LANG']['tl_metamodel_dcasetting_condition']['value']['1'] = 'Выберите нужное значение.'; diff --git a/src/CoreBundle/Resources/contao/languages/ru/tl_metamodel_filter.php b/src/CoreBundle/Resources/contao/languages/ru/tl_metamodel_filter.php new file mode 100644 index 000000000..d31550ab4 --- /dev/null +++ b/src/CoreBundle/Resources/contao/languages/ru/tl_metamodel_filter.php @@ -0,0 +1,44 @@ +"auto_item", что особенно полезно для столбцов псевдонимов.'; diff --git a/src/CoreBundle/Resources/contao/languages/ru/tl_metamodel_item.php b/src/CoreBundle/Resources/contao/languages/ru/tl_metamodel_item.php new file mode 100644 index 000000000..29af2f70a --- /dev/null +++ b/src/CoreBundle/Resources/contao/languages/ru/tl_metamodel_item.php @@ -0,0 +1,51 @@ +%s [%s]'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['addAll_activate'] = 'Добавить новые настройки.'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['addall']['0'] = 'Добавить все'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['addall']['1'] = 'Добавить все атрибуты к настройкам визуализации'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['additional_class']['0'] = 'Пользовательский CSS-класс'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['additional_class']['1'] = 'Введите все классы CSS, которые вы хотите добавить в вывод этого атрибута'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['advanced_legend'] = 'Дополнительно'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['attr_id']['0'] = 'Атрибут'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['attr_id']['1'] = 'Атрибут этой настройки относится к.'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['copy']['0'] = 'Копировать настройки визуализации определения'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['copy']['1'] = 'Копировать настройки визуализации ID %s'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['cut']['0'] = 'Вырезать настройки визуализации определения'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['cut']['1'] = 'Вырезать настройки визуализации ID %s'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['delete']['0'] = 'Удалить настройки визуализации'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['delete']['1'] = 'Удалить настройки визуализации ID %s'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['edit']['0'] = 'Редактировать настройки'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['edit']['1'] = 'Изменить настройки визуализации ID %s'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['new']['0'] = 'Новый'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['new']['1'] = 'Создать новую настройку'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['pastenew']['0'] = 'Добавить новый сверху'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['pastenew']['1'] = 'Добавить новый после настройки визуализации ID %s'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['show']['0'] = 'Настройки визуализации деталей'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['show']['1'] = 'Показать детали визуализации настроек ID %s'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['template']['0'] = 'Пользовательские шаблоны для генерации'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['template']['1'] = 'Выберите шаблон, который должен использоваться для выбранного атрибута. Имена шаблонов начинаются с "mm_<type>" где имя типа ставится для <type>'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['title_legend'] = 'Тип'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['toggle']['0'] = 'Переключить'; +$GLOBALS['TL_LANG']['tl_metamodel_rendersetting']['toggle']['1'] = 'Переключить состояние настройки визуализации ID %s'; diff --git a/src/CoreBundle/Resources/contao/languages/ru/tl_metamodel_rendersettings.php b/src/CoreBundle/Resources/contao/languages/ru/tl_metamodel_rendersettings.php new file mode 100644 index 000000000..f8fdebc1c --- /dev/null +++ b/src/CoreBundle/Resources/contao/languages/ru/tl_metamodel_rendersettings.php @@ -0,0 +1,72 @@ +get('translator'); +assert($translator instanceof \Symfony\Contracts\Translation\TranslatorInterface); +?>
cssID ?>style): ?> style="style ?>"> - + trans('clear_all', [], 'metamodels_filter') ?>
diff --git a/src/CoreBundle/Resources/public/css/style.css b/src/CoreBundle/Resources/public/css/style.css index 34c266dd2..1c8c22695 100644 --- a/src/CoreBundle/Resources/public/css/style.css +++ b/src/CoreBundle/Resources/public/css/style.css @@ -15,6 +15,7 @@ * @author Sven Baumann * @author Carolina Koehn * @author Cliff Parnitzky + * @author Christian Schiffler * @copyright 2012-2024 The MetaModels team. * @license https://github.com/MetaModels/core/blob/master/LICENSE LGPL-3.0-or-later * @filesource @@ -164,3 +165,28 @@ form[id^=mm_] .sort_hint { .tl_formbody_edit .settings { margin: 0 0 10px 12px; } + +#tl_metamodel_rendersettings .jumpTo_language { + width: 15%; +} +#tl_metamodel_rendersettings .jumpTo_type { + width: 15%; +} +#tl_metamodel_rendersettings .jumpTo_type select { + width: 100%; +} +#tl_metamodel_rendersettings .jumpTo_page { + width: 15%; +} +#tl_metamodel_rendersettings .jumpTo_page input { + width: 88%; +} +#tl_metamodel_rendersettings .jumpTo_filter { + width: 55%; +} +#tl_metamodel_rendersettings .jumpTo_filter select { + width: 100%; +} +#tl_metamodel_rendersettings .operations { + display: none; +} diff --git a/src/CoreBundle/Resources/public/scss/style.scss b/src/CoreBundle/Resources/public/scss/style.scss index 8eb1c77c3..855618291 100644 --- a/src/CoreBundle/Resources/public/scss/style.scss +++ b/src/CoreBundle/Resources/public/scss/style.scss @@ -1,7 +1,7 @@ /** * This file is part of MetaModels/core. * - * (c) 2012-2022 The MetaModels team. + * (c) 2012-2024 The MetaModels team. * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -14,7 +14,8 @@ * @author Ingolf Steinhardt * @author Sven Baumann * @author Carolina Koehn - * @copyright 2012-2022 The MetaModels team. + * @author Christian Schiffler + * @copyright 2012-2024 The MetaModels team. * @license https://github.com/MetaModels/core/blob/master/LICENSE LGPL-3.0-or-later * @filesource */ @@ -144,3 +145,30 @@ form[id^=mm_] .sort_hint { .tl_formbody_edit .settings { margin: 0 0 10px 12px; } + +#tl_metamodel_rendersettings { + .jumpTo_language { + width: 15%; + } + .jumpTo_type { + width: 15%; + select { + width: 100%; + } + } + .jumpTo_page { + width: 15%; + input { + width: 88%; + } + } + .jumpTo_filter { + width: 55%; + select { + width: 100%; + } + } + .operations { + display: none; + } +} diff --git a/src/CoreBundle/Resources/translations/metamodels_default.de.xlf b/src/CoreBundle/Resources/translations/metamodels_default.de.xlf new file mode 100644 index 000000000..7d26481fa --- /dev/null +++ b/src/CoreBundle/Resources/translations/metamodels_default.de.xlf @@ -0,0 +1,18 @@ + + + + + global scope + Globaler Gültigkeitsbereich + + + default + Standard + + + %template% (%themes%) + %template% (%themes%) + + + + \ No newline at end of file diff --git a/src/CoreBundle/Resources/translations/metamodels_filter.de.xlf b/src/CoreBundle/Resources/translations/metamodels_filter.de.xlf new file mode 100644 index 000000000..83b478229 --- /dev/null +++ b/src/CoreBundle/Resources/translations/metamodels_filter.de.xlf @@ -0,0 +1,33 @@ + + + + + Filter value for attribute "%id%" + Filterwert für Attribut "%id%" + + + + + + Filter + Filter + + + No filtering + Nicht filtern + + + Select all + Alles auswählen + + + Clear all filter + Alle Filter zurücksetzen + + + (No matching combinations found.) + (Keine passenden Kombinationen gefunden.) + + + + \ No newline at end of file diff --git a/src/CoreBundle/Resources/translations/metamodels_filter.en.xlf b/src/CoreBundle/Resources/translations/metamodels_filter.en.xlf index a4c91a2b7..62a4eb514 100644 --- a/src/CoreBundle/Resources/translations/metamodels_filter.en.xlf +++ b/src/CoreBundle/Resources/translations/metamodels_filter.en.xlf @@ -8,6 +8,21 @@ + + Filter + + + No filtering + + + Select all + + + Clear all filter + + + (No matching combinations found.) + diff --git a/src/CoreBundle/Resources/translations/metamodels_list.de.xlf b/src/CoreBundle/Resources/translations/metamodels_list.de.xlf new file mode 100644 index 000000000..cbddb9147 --- /dev/null +++ b/src/CoreBundle/Resources/translations/metamodels_list.de.xlf @@ -0,0 +1,30 @@ + + + + + Sorting + Sortierung + + + Random + Zufällig + + + Id + ID + + + %field_label%: + %field_label%: + + + There are no items matching your search. + Es gibt keine Einträge, die Ihrer Suche entsprechen. + + + Details + Details + + + + \ No newline at end of file diff --git a/src/CoreBundle/Resources/translations/metamodels_navigation.de.xlf b/src/CoreBundle/Resources/translations/metamodels_navigation.de.xlf new file mode 100644 index 000000000..1c0d3f208 --- /dev/null +++ b/src/CoreBundle/Resources/translations/metamodels_navigation.de.xlf @@ -0,0 +1,66 @@ + + + + + MetaModels + MetaModels + + + MetaModels + MetaModels + + + The MetaModels extension allows you to create own data models. + Die MetaModels-Erweiterung ermöglicht es Ihnen, eigene Datenmodelle zu erstellen. + + + MetaModels + MetaModels + + + Attributes of "%s" + Attribute von "%s" + + + All render setting of "%s" + Alle Render-Einstellungen von "%s" + + + Render settings in "%s" + Render-Einstellungen in "%s" + + + Sorting and grouping in "%s" + Sortierung und Gruppierung in "%s" + + + All input screens of "%s" + Alle Eingabemasken von "%s" + + + Input screens in "%s" + Eingabemasken in "%s" + + + Input screen and render setting combination for "%s" + Eingabemaske und Render-Einstellung kombinieren für "%s" + + + Visibility conditions for attribute "%s" + Ansichtsbedingungen für Attribut "%s" + + + All filter of "%s" + Alle Filter von "%s" + + + Filter settings in "%s" + Filtereinstellungen in "%s" + + + All indexes of "%s" + Alle Indizes von "%s" + + + + \ No newline at end of file diff --git a/src/CoreBundle/Resources/translations/metamodels_support.de.xlf b/src/CoreBundle/Resources/translations/metamodels_support.de.xlf new file mode 100644 index 000000000..bb5df5ff6 --- /dev/null +++ b/src/CoreBundle/Resources/translations/metamodels_support.de.xlf @@ -0,0 +1,72 @@ + + + + + Support MetaModels + MetaModels unterstützen + + + Support information for the MetaModels extension. + Informieren Sie sich darüber, wie Sie die Entwicklung der MetaModels-Extension unterstützen können. + + + As the developers of this project, we receive no compensation for our work. + Much of our valuable time is freely given to the MetaModels project. Any + donations towards the MetaModels project would allow us to work on the + project during our working hours, speeding up development significantly. + <br /><br /> We guarantee to spend any donations only on this project. + If you have any specific requirements or features requests, you are free + to hire a member from our <a target="_blank" + href="https://now.metamodel.me/en/about/team">team</a>, who will gladly + help you.<br /><br />A big thanks to all our <a target="_blank" + href="https://now.metamodel.me/en/supporters">existing supporters and + sponsors</a>. Please consider joining our list of sponsors. We could not + create such a popular open source project without the support of the + community.<br /><br /><a target="_blank" + href="https://now.metamodel.me/en/supporters/donate">More informations</a> + + Als Entwickler dieses Projektes erhalten wir keine Vergütung für unsere Arbeit. Ein Großteil unserer wertvollen Zeit widmen wir dem MetaModels-Projekt. Jede Spende an das MetaModels-Projekt würde es uns ermöglichen, während unserer regulären Arbeitszeit an dem Projekt zu arbeiten, was die Entwicklung erheblich beschleunigen würde. Deshalb bitten wir um eine Unterstützung für das MetaModels-Projekt. +<br /><br /> Wir garantieren, dass Spendengelder nur für dieses Projekt ausgegeben werden. Sollten Sie spezielle Wünsche oder Anforderungen haben, können Sie gerne ein Mitglied unseres <a target="_blank" href="https://now.metamodel.me/de/ueber-uns/team">Teams</a>, anfragen, das Ihnen gerne weiterhilft. +<br /><br />Ein großes Dankeschön an alle <a target="_blank" href="https://now.metamodel.me/de/unterstuetzung">bestehenden Supporter und Sponsoren</a>. Bitte beachten Sie unsere Spendenseite. Ein solches umfangreiches Open Source Projekt konnten wir ohne die Unterstützung der Community nicht realisieren.<br /><br /><a target="_blank" href="https://now.metamodel.me/de/unterstuetzer/spenden">Mehr Infos</a> + + + We are calling for your help! + Bitte unterstützen Sie uns! + + + Thanks to these users for tickets, suggestions and translations + Wir danken diesen Benutzerinnen und Benutzern für Tickets, Anregungen und Übersetzungen: + + + Purpose + Verwendungszweck + + + For donations check also our + <a target="_blank" href="https://now.metamodel.me/en/supporters/fundraising"> + fundraisings</a> or consider + <a target="_blank" href="https://now.metamodel.me/en/supporters/donate"> + donating for the manual</a>. + + Für Spenden besuchen Sie auch unsere <a target="_blank" href="https://now.metamodel.me/de/unterstuetzer/fundraising">Fundraisings</a> oder beachten Sie <a target="_blank" href="https://now.metamodel.me/de/unterstuetzer/spenden">Spenden für das Handbuch</a>. + + + Help for your MetaModels projects + Hilfe für Dein MetaModels Projekt + + + On our <a target="_blank" href="https://now.metamodel.me/en/help">help + website as guide to MetaModels</a> you can find the manual, all support + channels, videos tutorials and our newsletter service.<br /><br /> + <a target="_blank" href="https://metamodels.readthedocs.io/en/latest/"> + Direct link to the MetaModels manual...</a> + + Auf unserer <a target="_blank" href="https://now.metamodel.me/de/hilfe">Hilfe-Website</a> finden Sie als Leitfaden zu MetaModels das Handbuch, alle Support-Kanäle, Videos und unseren Newsletter-Service.<br /><br /><a target="_blank" href="https://metamodels.readthedocs.io/de/latest/">Direkter Link zum MetaModels Handbuch...</a> + + + See contributors at github... + Mitwirkende bei Github... + + + + \ No newline at end of file diff --git a/src/CoreBundle/Resources/translations/metamodels_wildcard.de.xlf b/src/CoreBundle/Resources/translations/metamodels_wildcard.de.xlf new file mode 100644 index 000000000..8d9029754 --- /dev/null +++ b/src/CoreBundle/Resources/translations/metamodels_wildcard.de.xlf @@ -0,0 +1,50 @@ + + + + + MM + MM + + + MetaModel + MetaModel + + + Fi + Fi + + + Filter + Filter + + + Rs + Rs + + + Rendersetting + Render-Einstellungen + + + MetaModels elements + MetaModels Elemente + + + MetaModels list + MetaModels Liste + + + MetaModels list + MetaModels Liste + + + MetaModels frontend filter + MetaModels Frontend-Filter + + + MetaModels clear all + MetaModels Filter leeren + + + + \ No newline at end of file diff --git a/src/CoreBundle/Resources/translations/modules.en.xlf b/src/CoreBundle/Resources/translations/modules.en.xlf deleted file mode 100644 index b7f0c549a..000000000 --- a/src/CoreBundle/Resources/translations/modules.en.xlf +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/CoreBundle/Resources/translations/tl_content.de.xlf b/src/CoreBundle/Resources/translations/tl_content.de.xlf new file mode 100644 index 000000000..1c6c74708 --- /dev/null +++ b/src/CoreBundle/Resources/translations/tl_content.de.xlf @@ -0,0 +1,34 @@ + + + + + Edit MetaModel + MetaModel bearbeiten + + + Edit the MetaModel ID %id%. + Bearbeite MetaModel ID %id%. + + + Edit render setting + Render-Einstellungen bearbeiten + + + Edit the render setting ID %id%. + Bearbeite Render-Einstellungen ID %id%. + + + Edit filter setting + Filtereinstellungen bearbeiten + + + Edit the filter setting ID %id%. + Bearbeite Filtereinstellungen ID %id%. + + + - no value [null] - + - ohne Datenwert [null] - + + + + \ No newline at end of file diff --git a/src/CoreBundle/Resources/translations/tl_content.en.xlf b/src/CoreBundle/Resources/translations/tl_content.en.xlf index d179d01c0..d068ef2d5 100644 --- a/src/CoreBundle/Resources/translations/tl_content.en.xlf +++ b/src/CoreBundle/Resources/translations/tl_content.en.xlf @@ -20,6 +20,9 @@ Edit the filter setting ID %id%. + + - no value [null] - + diff --git a/src/CoreBundle/Resources/translations/tl_metamodel.de.xlf b/src/CoreBundle/Resources/translations/tl_metamodel.de.xlf new file mode 100644 index 000000000..d24f0a85e --- /dev/null +++ b/src/CoreBundle/Resources/translations/tl_metamodel.de.xlf @@ -0,0 +1,320 @@ + + + + + All MetaModels + Alle MetaModels + + + New MetaModel + Neues MetaModel + + + Create a new MetaModel + Ein neues MetaModel erstellen + + + Edit multiple + Mehrere bearbeiten + + + Edit multiple elements at once + Mehrere Elemente auf einmal bearbeiten + + + Create a new element at the top + Ein neues Element oben erstellen + + + Create a new element after element ID %id% + Erstellt ein neues Element nach dem Element mit der ID %id% + + + Paste at the top + Oben einfügen + + + Paste after element ID %id% + Nach dem Element mit der ID %id% einfügen + + + Go back + Zurück + + + Back to the previous page + Zurück zur vorherigen Seite navigieren + + + Show the details of record %id% + Die Details des Datensatzes %id% anzeigen + + + Id + ID + + + Id of the MetaModel + ID des MetaModels + + + Name + Name + + + MetaModel name. + Name des MetaModels. + + + Revision date + Aktualisierungsdatum + + + Date and time of the latest revision + Datum und Zeit der letzten Aktualisierung + + + Table name + Tabellenname + + + Name of database table to store items to. + Name der Datenbanktabelle, in der Datensätze gespeichert werden. + + + Parent list mode + Elternteil Liste Modus + + + Mode to use for parent/child relationship. + Modus für Eltern / Kind-Beziehung verwenden. + + + Translation + Übersetzung + + + Check if this MetaModel shall support translation/multilingualism. + Auswählen, falls das MetaModel Übersetzungen / Mehrsprachigkeit unterstützen soll- + + + Languages to provide for translation + Sprachen für die Übersetzungen + + + Specify all languages that shall be available for translation. + Alle Sprachen angeben, die für Übersetzungen zur Verfügung stehen sollen. + + + Language + Sprache + + + Select the languages you want to provide. + Wählen Sie die Sprachen für die Übersetzungen aus. + + + Fallback language + Fallback-Sprache + + + Check the language that shall be used as fallback. + Wählen Sie die Sprache aus, die als Fallback verwendet werden soll, falls keine Übersetzung vorliegt. + + + Variant support + Varianten + + + Check if this MetaModel shall support variants of items. + Anwählen, falls dieses MetaModel Varianten der Items unterstützen soll. + + + Locale territory support + Support für Territory-Angabe in der Sprache + + + Check if this MetaModel shall support language territory at locale. + Mit der Checkbox wird die Territory-Angabe bei dem Sprachkey unterstützt. + + + Sorting + Sortierung + + + Sorting order of items. + Sortierreihenfolge der Datensätze. + + + Name and table + Name und Tabelle + + + Translation + Übersetzung + + + Advanced settings + Erweiterte Einstellungen + + + Cancel + Abbrechen + + + Cancel multiple processing. + Mehrfachbearbeitung abbrechen + + + Manage items + Items verwalten + + + Manage items of MetaModel ID %id% + Die Items für MetaModel ID %id% verwalten + + + Copy MetaModel definition + MetaModel-Definition kopieren + + + Copy definition of MetaModel ID %id% + Kopieren Sie die Definition des MetaModels ID %id% + + + Delete MetaModel + MetaModel löschen + + + Delete MetaModel ID %id% + Das MetaModel mit der ID %id% löschen. + + + Do you really want to delete element ID %id%? + Soll das Element ID %id% wirklich gelöscht werden? + + + MetaModel details + MetaModel-Details + + + Show details of MetaModel ID %id% + Die Details des MetaModel ID %id% anzeigen + + + Edit MetaModel + MetaModel bearbeiten + + + Edit the MetaModel ID %id% + Das MetaModel mit der ID %id% bearbeiten. + + + Define attributes + Attribute definieren + + + Define attributes for MetaModel ID %id% + Die Attribute für MetaModel ID %id% festlegen + + + Define filters + Filter definieren + + + Define filters for MetaModel ID %id% + Die Filter für MetaModel ID %id% festlegen + + + Define render settings + Render-Einstellungen definieren + + + Define render settings for MetaModel ID %id% + Render-Einstellungen für MetaModel ID %id% definieren. + + + Define input screens + Eingabemasken definieren + + + Define input screens for MetaModel ID %id% + Die Eingabemasken für MetaModel ID %id% festlegen + + + Define input/output combinations + Eingabe-/Render-Zuordnungen definieren + + + Define input/output combinations for MetaModel ID %id% + Definieren der Eingabe-/Render-Zuordnungen für MetaModel ID %id%. + + + Move MetaModel + MetaModel verschieben + + + Define the order of your MetaModels. + Die Reihenfolge der MetaModels festlegen. + + + Define search settings + Sucheinstellungen festlegen + + + Define search settings for MetaModel ID %id% + Die Sucheinstellungen für MetaModel ID %id% festlegen + + + {-1} Table does not exist, run migration!| {0} No items|{1} 1 item|[2,Inf[ %count% items + {-1} Tabelle existiert nicht - Migration ausführen!| {0} Keine Items|{1} 1 Item|[2,Inf[ %count% Items + + + Do you really want to delete MetaModel ID %id%? + Soll das MetaModel ID %id% wirklich gelöscht werden? + + + After creating a model, the database must be migrated (console, Contao Manager) - even if the table + name is changed. When changing the table name, the user data itself must be transferred. + + Nach der Erstellung eines Modells muss die Datenbank migriert werden (Konsole, Contao Manager) - auch wenn der Tabellenname geändert wird. Bei der Änderung des Tabellennamens müssen die Daten selbst übertragen werden. + + + Create a new item + Neues Item erstellen + + + Edit record %id% + Bearbeite Datensatz %id% + + + Save + Speichern + + + Save and close + Speichern und schliessen + + + Save and new + Speichern und neu + + + Save and go back + Speichern und zurück + + + The table name is not given or empty. + Der Tabellenname wurde nicht gesetzt oder ist leer. + + + The table name "%table_name%" is invalid. + Der Tabellenname "%col_name%" ist ungültig. + + + Table "%table_name%" already exists. + Die Tabelle "%table_name%" existiert bereits. + + + + \ No newline at end of file diff --git a/src/CoreBundle/Resources/translations/tl_metamodel.fr.xlf b/src/CoreBundle/Resources/translations/tl_metamodel.fr.xlf new file mode 100644 index 000000000..77c01fc6a --- /dev/null +++ b/src/CoreBundle/Resources/translations/tl_metamodel.fr.xlf @@ -0,0 +1,243 @@ + + + + + All MetaModels + + + New MetaModel + + + Create a new MetaModel + + + Edit multiple + + + Edit multiple elements at once + + + Create a new element at the top + + + Create a new element after element ID %id% + + + Paste at the top + + + Paste after element ID %id% + + + Go back + + + Back to the previous page + + + Show the details of record %id% + + + Id + Id + + + Id of the MetaModel + + + Name + + + MetaModel name. + + + Revision date + + + Date and time of the latest revision + + + Table name + + + Name of database table to store items to. + + + Parent list mode + + + Mode to use for parent/child relationship. + + + Translation + + + Check if this MetaModel shall support translation/multilingualism. + + + Languages to provide for translation + + + Specify all languages that shall be available for translation. + + + Language + + + Select the languages you want to provide. + + + Fallback language + + + Check the language that shall be used as fallback. + + + Variant support + + + Check if this MetaModel shall support variants of items. + + + Locale territory support + + + Check if this MetaModel shall support language territory at locale. + + + Sorting + + + Sorting order of items. + + + Name and table + + + Translation + + + Advanced settings + + + Cancel + + + Cancel multiple processing. + + + Manage items + + + Manage items of MetaModel ID %id% + + + Copy MetaModel definition + + + Copy definition of MetaModel ID %id% + + + Delete MetaModel + + + Delete MetaModel ID %id% + + + Do you really want to delete element ID %id%? + + + MetaModel details + + + Show details of MetaModel ID %id% + + + Edit MetaModel + + + Edit the MetaModel ID %id% + + + Define attributes + + + Define attributes for MetaModel ID %id% + + + Define filters + + + Define filters for MetaModel ID %id% + + + Define render settings + + + Define render settings for MetaModel ID %id% + + + Define input screens + + + Define input screens for MetaModel ID %id% + + + Define input/output combinations + + + Define input/output combinations for MetaModel ID %id% + + + Move MetaModel + + + Define the order of your MetaModels. + + + Define search settings + + + Define search settings for MetaModel ID %id% + + + {-1} Table does not exist, run migration!| {0} No items|{1} 1 item|[2,Inf[ %count% items + + + Do you really want to delete MetaModel ID %id%? + + + After creating a model, the database must be migrated (console, Contao Manager) - even if the table + name is changed. When changing the table name, the user data itself must be transferred. + + + + Create a new item + + + Edit record %id% + + + Save + + + Save and close + + + Save and new + + + Save and go back + + + The table name is not given or empty. + + + The table name "%table_name%" is invalid. + + + Table "%table_name%" already exists. + + + + \ No newline at end of file diff --git a/src/CoreBundle/Resources/translations/tl_metamodel_attribute.de.xlf b/src/CoreBundle/Resources/translations/tl_metamodel_attribute.de.xlf new file mode 100644 index 000000000..24a81779f --- /dev/null +++ b/src/CoreBundle/Resources/translations/tl_metamodel_attribute.de.xlf @@ -0,0 +1,250 @@ + + + + + All attributes + Alle Attribute + + + Id + Id + + + Pid + PId + + + Sorting + Sortierung + + + Revision date + Aktualisierungsdatum + + + New attribute + Neues Attribut + + + Create a new attribute + Ein neues Attribut erstellen + + + Edit multiple + Mehrere bearbeiten + + + Edit multiple elements at once + Mehrere Elemente auf einmal bearbeiten + + + Create a new element at the top + Ein neues Element oben erstellen + + + Create a new element after element ID %id% + Erstellt ein neues Element nach dem Element mit der ID%id% + + + Paste at the top + Oben einfügen + + + Paste after element ID %id% + Nach dem Element mit der ID %id% einfügen + + + Go back + Zurück + + + Back to the previous page + Zurück zur vorherigen Seite navigieren + + + Attribute type + Attribut-Typ + + + Select the type of this attribute. WARNING: if you change this, all existing data within this attribute + will be deleted. + + Den Typ des Attributes auswählen. ACHTUNG: Bei einer Änderung werden alle bestehenden Daten dieses Attributes gelöscht. + + + Name + Name + + + Human readable name + Für Menschen lesbarer Name + + + Description + Beschreibung + + + Human readable description + Für Menschen lesbare Beschreibung + + + Column name + Spaltenname + + + Internal reference name for this attribute + Interner Referenz-Name für dieses Attribut. + + + Enable variant override + Varianten überschreiben + + + Check this, if you want variants within the MetaModel to override the parent item's value + Anwählen, falls Sie innerhalb des MetaModels Varianten wünschen, um Elternwerte zu überschreiben. + + + Unique values + Eindeutige Werte + + + Check this, if you want to ensure that each value only occurs once + Wählen Sie diese Option, wenn Sie sicherstellen möchten, dass jeder Wert nur einmal vorkommen kann. + + + Language + Sprache + + + Description + Beschreibung + + + Type, naming and base attribute configuration + Typ, Benennung und Grundeinstellungen des Attributes. + + + Advanced settings + Erweiterte Einstellungen + + + Edit attribute + Attribute bearbeiten + + + Cancel + Abbrechen + + + Cancel multiple processing. + Mehrfachbearbeitung abbrechen + + + Edit attribute ID %id% + Attribut ID %id% bearbeiten + + + Cut attribute definition + Attribut-Definition ausschneiden + + + Cut definition of attribute ID %id% + Schneiden Sie die Definition des Attributes ID %id% aus. + + + Copy attribute definition + Attribut-Definition kopieren + + + Copy definition of attribute ID %id% + Kopieren Sie die Definition des Attributes ID %id%. + + + Delete attribute + Attribut löschen + + + Delete attribute ID %id% + Attribut ID%id% löschen + + + Do you really want to delete element ID %id%? + Soll das Element ID %id% wirklich gelöscht werden? + + + Attribute details + Attribut-Details + + + Show details of attribute ID %id% + Die Details des Attributs ID %id% anzeigen + + + Edit attribute + Attribut bearbeiten + + + Edit the attribute + Bearbeiten Sie das Attribut + + + Unknown attribute! + Unbekanntes Attribut + + + Extension missing? The attribute type "%id%" is not installed. + Fehlende Erweiterung? Der Attribut-Typ "%id%" ist nicht installiert. + + + Do you really want to delete attribute ID %id%? + Soll das Attribut ID %id% wirklich gelöscht werden? + + + After creating an attribute, the database must be migrated (console, Contao Manager) - even if the + column name is changed. When changing the column name, the user data itself must be transferred. + + Nach der Erstellung eines Attributs muss die Datenbank migriert werden (Konsole, Contao Manager) - auch wenn der Spaltenname geändert wird. Bei Änderung des Spaltennamens müssen die Benutzerdaten selbst übertragen werden. + + + Create a new item + Neues Item erstellen + + + Edit record %id% + Datensatz %id% bearbeiten + + + Show the details of record %id% + Die Details des Datensatzes %id% anzeigen + + + Save + Speichern + + + Save and close + Speichern und schliessen + + + Save and new + Speichern und neu + + + Save and go back + Speichern und zurück + + + Column "%col_name%" already exists on table "%table_name%". + Die Spalte "%col_name%" ist in der Tabelle "%table_name%" bereits vorhanden. + + + The column name "%col_name%" is invalid. + Der Spaltenname "%col_name%" ist ungültig. + + + The column name "%col_name%" is reserved for system use. + Der Spaltenname "%col_name%" ist für Systemzwecke reserviert. + + + + \ No newline at end of file diff --git a/src/CoreBundle/Resources/translations/tl_metamodel_dca.de.xlf b/src/CoreBundle/Resources/translations/tl_metamodel_dca.de.xlf new file mode 100644 index 000000000..52b03ab59 --- /dev/null +++ b/src/CoreBundle/Resources/translations/tl_metamodel_dca.de.xlf @@ -0,0 +1,370 @@ + + + + + All input screens + Alle Eingabemasken + + + Id + ID + + + Pid + PID + + + Sorting + Sortierung + + + New input screen + Neue Eingabemaske + + + Create a new input screen + Eine neue Eingabemaske erstellen + + + Edit multiple + Mehrere bearbeiten + + + Edit multiple elements at once + Mehrere Elemente auf einmal bearbeiten + + + Create a new element at the top + Ein neues Element oben erstellen + + + Create a new element after element ID %id% + Erstellt ein neues Element nach dem Element mit der ID%id% + + + Paste at the top + Oben einfügen + + + Paste after element ID %id% + Nach dem Element mit der ID %id% einfügen + + + Save + Speichern + + + Save and close + Speichern und schliessen + + + Save and new + Speichern und neu + + + Save and go back + Speichern und zurück + + + Go back + Zurück + + + Back to the previous page + Zurück zur vorherigen Seite navigieren + + + Show the details of record %id% + Die Details des Datensatzes %id% anzeigen + + + Edit record %id% + Datensatz %id% bearbeiten + + + Edit MetaModel + MetaModel bearbeiten + + + Edit the MetaModel ID %id% + Das MetaModel mit der ID %id% bearbeiten. + + + Name + Name + + + Name of the input screen. + Name der Eingabemaske + + + Revision date + Aktualisierungsdatum + + + Date and time of the latest revision. + Datum und Zeit der letzten Aktualisierung + + + Integration + Integration + + + Select the desired type of integration. + Die gewünschte Art der Integration auswählen + + + Render mode + Render-Modus + + + Select the desired render mode. + Wählen Sie eine gewünschte Render-Einstellung aus. + + + Parent table name + Name der Elterntabelle + + + Name of the database table that shall be referred to as parent table. + Name der Datenbanktabelle, die als Elterntabelle benutzt werden soll. + + + Use column based layout + Anzeige in Tabellenform + + + If selected a table header will be generated with column names. + Ist die Option ausgewählt, erfolgt die Anzeige in Form einer Tabelle. + + + Backend section + Backend-Bereich + + + Select the desired backend section where you want the MetaModel appear. For models that shall be edited + by end users, the "content" section most likely will be appropriate. + + Wählen Sie das gewünschte Backend-Symbol, das zum Zeichnen eines Icons in der übergeordneten Liste verwendet wird, wenn Sie eine Integration als Kindtabelle haben. + + + Backend icon + Backend-Icon + + + Select the desired backend icon.This icon will get used to draw an image in the parent list if you have + a integration as child table. + + Wählen Sie das gewünschte Backend-Symbol, das zum Zeichnen eines Icons in der übergeordneten Liste verwendet wird, wenn Sie eine Integration als Kindtabelle haben. + + + Backend caption + Backend-Hilfetext + + + The text you specify in here, will get used as the label and description text in the backend menu. + + Dieser Text wird als Label und Beschreibung im Backend benutzt. + + + Language + Sprache + + + Select the languages you want to provide. + Wählen Sie die Sprachen aus, die Sie zur Verfügung stellen wollen. + + + Label text + Labeltext + + + The text you specify in here, will get used as the menu label in the backend menu. + Dieser Text wird als Menü-Label im Backend benutzt. + + + Description text + Beschreibungstext + + + The text you specify in here, will get used as the description (hover title) in the backend menu. + + Dieser Text wird als Beschreibung (Hover) im Backend benutzt. + + + Panel layout + Panel-Layout + + + Separate panel options with comma (= space) and semicolon (= new line) like + "filter;search;sort,limit". + + Fügen Sie eine oder mehrere Panel-Optionen hinzu und trennen Sie diese mit einem Komma (= Freiraum) oder Semikolon (= neue Zeile), z. B. "filter;search;sort,limit". + + + Panelpicker + Panelpicker + + + View limitation + Limitierung anzeigen + + + Activate the view limitation. + Die Limitierungsansicht aktivieren. + + + Limit the render setting + Rendering-Einstellung begrenzen + + + Choose between front end or backend. + Wählen Sie zwischen Frontend und Backend aus. + + + Allow editing of items + Bearbeitung erlauben + + + If checked, this input screen allows the editing of items. + Falls ausgewählt erlaubt die Eingabemaske das Bearbeiten der Items. + + + Allow creating of items + Erstellung erlauben + + + If checked, this input screen allows the creating of items. + Falls ausgewählt erlaubt die Eingabemaske das Erstellen von Items. + + + Allow deleting of items + Löschung erlauben + + + If checked, this input screen allows the deleting of items. + Falls ausgewählt erlaubt die Eingabemaske das Löschen von Items. + + + Name + Name + + + View settings + Darstellungsoptionen + + + Backend integration + Backend-Integration + + + Data display settings + Anzeigeeinstellungen + + + Data manipulation permissions + Berechtigungen zur Datenanpassung + + + Edit input screen + Eingabemasken bearbeiten + + + Edit the input screen ID %id% + Die Eingabemaske ID %id% bearbeiten + + + Copy input screen definition + Eingabemaske kopieren + + + Copy definition of input screen ID %id% + Kopieren Sie die Definition der Eingabemaske ID %id%. + + + Delete input screen + Eingabemaske löschen + + + Delete input screen ID %id% + Die Eingabemaske ID %id% löschen + + + Do you really want to delete element ID %id%? + Soll das Element ID %id% wirklich gelöscht werden? + + + Input screen details + Eingabemasken-Details + + + Show details of input screen ID %id% + Die Details der Eingabemaske ID %id% anzeigen + + + Input screen settings + Eingabemasken-Einstellungen + + + Edit the settings of input screen ID %id% + Bearbeiten Sie die anzuzeigenden Felder der Eingabemaske ID %id%. + + + Grouping and sorting + Gruppieren und sortieren + + + Edit the grouping and sorting settings of input screen ID %id% + Bearbeiten Sie die Gruppierung und Sortierung der Eingabemaske ID %id%. + + + Additions to the mask-heading + Ergänzungen zur Maskenüberschrift + + + The field can be used to adapt the heading of the mask at edit and replaces the output of the ID.You can + use simple tokens e.g. ##model_name##, ##model_firstname## [##model_id##] + + Das Feld kann verwendet werden, um die Überschrift der Maske bei der Bearbeitung anzupassen und ersetzt die Ausgabe der ID. Sie können einfache Token verwenden, z. B. ##model_name##, ##model_firstname## [##model_id##] + + + Standalone + Unabhängig + + + As child table + Als Kind-Tabelle + + + Flat + Eine Ebene (ohne Hierarchie) + + + Parented + Elternelement vorhanden + + + Hierarchical + Hierarchie + + + When using the "Hierarchical" render mode, the current sort must be enable to "Manual sorting" as + default. + + Wenn Sie den Rendering-Modus "Hierarchie" verwenden, muss die aktuelle Sortierung standardmäßig auf "Manuelle Sortierung" eingestellt sein. + + + Do you really want to delete input screen ID %id%? + Soll die Eingabemaske ID %id% wirklich gelöscht werden? + + + Cancel + Abbrechen + + + Cancel multiple processing. + Mehrfachbearbeitung abbrechen + + + + \ No newline at end of file diff --git a/src/CoreBundle/Resources/translations/tl_metamodel_dca_combine.de.xlf b/src/CoreBundle/Resources/translations/tl_metamodel_dca_combine.de.xlf new file mode 100644 index 000000000..3385fcde6 --- /dev/null +++ b/src/CoreBundle/Resources/translations/tl_metamodel_dca_combine.de.xlf @@ -0,0 +1,92 @@ + + + + + All input/output combinations + Alle Kombinationen der Eingabemaske und Ansichten + + + Save + Speichern + + + Save and close + Speichern und schliessen + + + Save and new + Speichern und neu + + + Save and go back + Speichern und zurück + + + Go back + Zurück + + + Back to the previous page + Zurück zur vorherigen Seite navigieren + + + Edit record %id% + Datensatz %id% bearbeiten + + + Combination configuration + Konfiguration der Kombination + + + Permissions for input screen and views + Rechte für Eingabemaske und Ansichten + + + For selected frontend user group (if any) and selected backend user group (if any) use the selected + palette and the selected view. + + Benutzen Sie die ausgewählte Palette und Ansicht für eine Mitglieder- und / oder Benutzergruppe (falls vorhanden). + + + Frontend group + Mitgliedergruppe + + + The frontend user group the combination applies to; * is 'catch all'. + Die Mitgliedergruppe, für die die Kombination gilt; * ist "catch all". + + + Backend group + Benutzergruppe + + + The backend user group the combination applies to; * is 'catch all'. + Die Benutzergruppe, für die die Kombination gilt; * ist "catch all". + + + Input screen + Eingabemaske + + + The input screen the combination applies to. + Geben Sie die Eingabemaske an, für die diese Kombination gelten soll. + + + Render setting + Render-Einstellung + + + The view the combination applies to. + Anzuwendende Ansicht. + + + Administrator + Administrator + + + Anonymous + "Gäste" + + + + \ No newline at end of file diff --git a/src/CoreBundle/Resources/translations/tl_metamodel_dca_sortgroup.de.xlf b/src/CoreBundle/Resources/translations/tl_metamodel_dca_sortgroup.de.xlf new file mode 100644 index 000000000..965598499 --- /dev/null +++ b/src/CoreBundle/Resources/translations/tl_metamodel_dca_sortgroup.de.xlf @@ -0,0 +1,303 @@ + + + + + All grouping and sorting settings + Einstellungen Gruppierung und Sortierung + + + Id + ID + + + Pid + PID + + + Revision date + Aktualisierungsdatum + + + Sorting + Sortierung + + + Published + Veröffentlicht + + + New Sorting and grouping + Neue Sortierung und Gruppierung + + + Create a new Sorting and grouping + Erstellt eine Sortierung und Gruppierung. + + + Edit multiple + Mehrere bearbeiten + + + Edit multiple elements at once + Mehrere Elemente auf einmal bearbeiten + + + Create a new element at the top + Ein neues Element oben erstellen + + + Create a new element after element ID %id% + Erstellt ein neues Element nach dem Element mit der ID %id% + + + Paste at the top + Oben einfügen + + + Paste after element ID %id% + Nach dem Element mit der ID %id% einfügen + + + Go back + Zurück + + + Back to the previous page + Zurück zur vorherigen Seite navigieren + + + Save + Speichern + + + Save and close + Speichern und schliessen + + + Save and new + Speichern und Neu + + + Save and go back + Speichern und zurück + + + Edit record %id% + Datensatz %id% bearbeiten + + + Name + Name + + + Name of the sorting group. + Name der Sortierungsruppe + + + Is default + Als Standard verwenden + + + Determines that this input screen shall be used as default for the parenting MetaModel. + Bestimmt, dass diese Eingabemaske als Standard für das Eltern-MetaModel benutzt wird. + + + Render mode + Render-Modus + + + Select the desired render mode. + Wählen Sie eine gewünschte Render-Einstellung aus.. + + + Language + Sprache + + + Select the languages you want to provide. + Wählen Sie die Sprachen aus, die Sie zur Verfügung stellen wollen. + + + Label text + Labeltext + + + The text you specify in here, will get used as the menu label in the backend menu. + Dieser Text wird als Menü-Label im Backend benutzt. + + + Description text + Beschreibungstext + + + The text you specify in here, will get used as the description (hover title) in the backend menu. + + Dieser Text wird als Beschreibung (Hover) im Backend benutzt. + + + Grouping type + Gruppierungstyp + + + The grouping type to use in the item view. + Gruppierungstyp für die Item-Ansicht + + + Grouping attribute + Attribute der Gruppierung + + + The attribute to use for grouping in the item view. + Attribute für die Gruppierung in der Item-Ansicht. + + + Grouping length + Gruppierungslänge + + + The amount of characters to use for grouping. + Die Anzahl an Buchstaben, welche für die Gruppierung eingesetzt wird. + + + Sorting attribute + Attribut der Sortierung + + + The attribute to sort by. + Attribut nach dem sortiert wird. + + + Sorting direction + Sortierrichtung + + + The sorting direction. + Richtung der Sortierung. + + + Enable manual sorting + Manuelle Sortierung aktivieren + + + If this is enabled, the user will be able to perform manual sorting. + Wenn aktiviert, kann der Nutzer eine manuelle Sortierung vornehmen. + + + Name + Name + + + Data display settings + Anzeigeeinstellungen + + + Edit definition + Einstellung bearbeiten + + + Edit the definition ID %id% + Bearbeitung der Definition ID %id%. + + + Copy definition + Kopiere Definition + + + Copy the definition ID %id% + Kopieren Sie die Definition ID %id%. + + + Delete definition + Definition löschen + + + Delete the definition ID %id% + Löschen Sie die Definition ID %id%. + + + Do you really want to delete element ID %id%? + Soll das Element ID %id% wirklich gelöscht werden? + + + Definition details + Details der Definition + + + Show details of definition ID %id% + Zeige Details der Definition ID %id%. + + + Toggle + Wechseln + + + Toggle the state of definition ID %id% + Umschaltung des Status für die Definition ID %id%. + + + Definition settings + Einstellungen der Definition + + + Edit the settings of definition ID %id% + Bearbeiten Sie ein Einstellungen der Definition ID %id%. + + + Do not group + Nicht gruppieren + + + Group by initial letter(s) + Gruppiere nach Anfangsbuchstabe(n) + + + Group by numeric order + Gruppiere nach Zahlen + + + Group by day of date + Gruppiere nach Tag des Datums + + + Group by weekday of date + Gruppiere nach Wochentag des Datums + + + Group by week of year + Gruppiere nach Woche des Jahres eines Datums + + + Group by month of date + Gruppiere nach Monat des Datums + + + Group by year of date + Gruppiere nach Jahr des Datums + + + Ascending + Aufsteigend + + + Descending + Absteigend + + + Do you really want to delete definition ID %id%? + Soll die Definition ID %id% wirklich gelöscht werden? + + + Show the details of record %id% + Die Details des Datensatzes %id% anzeigen + + + Cancel + Abbrechen + + + Cancel multiple processing. + Mehrfachbearbeitung abbrechen + + + + \ No newline at end of file diff --git a/src/CoreBundle/Resources/translations/tl_metamodel_dcasetting.de.xlf b/src/CoreBundle/Resources/translations/tl_metamodel_dcasetting.de.xlf new file mode 100644 index 000000000..cdfea9e4e --- /dev/null +++ b/src/CoreBundle/Resources/translations/tl_metamodel_dcasetting.de.xlf @@ -0,0 +1,456 @@ + + + + + All input screen settings + Alle Einstellungen der Eingabemaske + + + Id + ID + + + Pid + PID + + + Sorting + Sortierung + + + Revision date + Aktualisierungsdatum + + + Published + Veröffentlicht + + + New attribute or legend + Neues Attribut oder Legende + + + Add a new attribute or legend for input mask + Fügt ein neues Attribut oder eine Legende zur Eingabemaske hinzu + + + Edit multiple + Mehrere bearbeiten + + + Edit multiple elements at once + Mehrere Elemente auf einmal bearbeiten + + + Create a new element at the top + Ein neues Element oben erstellen + + + Create a new element after element ID %id% + Erstellt ein neues Element nach dem Element mit der ID %id% + + + Paste at the top + Oben einfügen + + + Paste after element ID %id% + Nach dem Element mit der ID %id% einfügen + + + Go back + Zurück + + + Back to the previous page + Zurück zur vorherigen Seite navigieren + + + Edit record %id% + Datensatz bearbeiten %id% + + + Save + Speichern + + + Save and close + Speichern und schliessen + + + Save and new + Speichern und Neu + + + Save and go back + Speichern und zurück + + + Continue + Fortfahren + + + Select all + Alles auswählen + + + Cancel + Abbrechen + + + Cancel multiple processing. + Mehrfachbearbeitung abbrechen + + + Type + Typ + + + Select the attribute type. + Den Attribut-Typ auswählen. + + + Attribute + Attribut + + + Attribute this setting relates to. + Attribut, auf das sich diese Einstellung bezieht. + + + Custom template to use for generating + Angepasstes Template für die Ausgabe + + + Select the template that shall be used for the selected attribute. Valid template files start with "mm_&lt;type&gt;" + where the type name is put for &lt;type&gt; + + Wählen Sie das Template aus, das für das gewählte Attribut verwendet werden soll. Gültige Dateinamen für das Template beginnen mit "mm_&lt;typ&gt;", wobei &lt;typ&gt; für den Typ steht. + + + Backend class + Backend-Klasse + + + Here you can set backend class(es). Open the wizard for an overview of the classes. + Hier können Sie eine oder mehrere Backend-Klassen festlegen. + + + Template at backend + Template für das Backend + + + You can chose own template for widget in backend - add file in root folder of template. + Sie können eine eigenes Template für das Widget im Backend auswählen - fügen Sie die Datei im Stammordner der Templates hinzu. + + + Collapse section + Abschnitt ausblenden + + + Collapse the section by default. + Abschnitt als Standardeinstellung ausblenden. + + + Legend title + Legenden-Titel + + + Here you can enter the legend title. + Hier können Sie den Legenden-Titel eingeben. + + + Language + Sprache + + + Legend title + Legenden-Titel + + + Mandatory + Pflichtfeld + + + Check if this attribute shall be mandatory. + <br />NOTE: This will be implicitely active on if you selected "Unique values" in the attribute + configuration. + + Wählen Sie diese Option, wenn das Attribut ein Pflichtfeld ist. +<br />Hinweis: Diese Option wird automatisch gesetzt, wenn in der Attributkonfiguration "Eindeutige Werte" ausgewählt wurde. + + + Always save + Immer speichern + + + If true the field will always be saved, even if its value has not changed. + Falls angewählt, wird dieses Feld - unabhängig davon, ob sich sein Wert geändert hat - immer gespeichert, + + + Chosen + Chosen + + + Enable Chosen graphical select widget. + 'Chosen' für die Auswahl aktivieren. + + + Filterable + Filterbar + + + Check if this attribute shall be available for backend filtering. + Auswählen, falls dieses Attribut für die Filterung im Backend zur Verfügung stehen soll. + + + Searchable + Suchbar + + + Check if this attribute shall be available for backend search. + Auswählen, falls dieses Attribut für die Suche im Backend zur Verfügung stehen soll. + + + Do not encode allowed html tags. + Erlaubte HTML-Tags nicht encodieren + + + If you select this, allowed HTML tags from system settings will not be encoded. + Falls angewählt, werden die erlaubten HTML-Tags aus den Systemeinstellungen nicht encodiert. + + + Do not encode all html tags. + Alle HTML-Tags nicht encodieren + + + If you select this, no HTML tags will be encoded. + Falls angewählt, werden keine HTML-Tags encodiert. + + + Decode HTML entities. + HTML-Entitäten dekodieren. + + + If you select this, all HTML entities will be decoded. Note that HTML entities are always decoded if "Do + not encode allowed html tags" is true. + + Falls ausgewählt, werden alle HTML-Entitäten dekodiert. Beachten Sie, dass HTML-Entitäten immer dann decodiert werden, wenn "Erlaubte HTML-Tags nicht encodieren" aktiviert ist. + + + Enable richtext editor on this + Richtext-Editor aktivieren + + + Select the rich text configuration that shall be used on this field (if any). + Wählen Sie eine Voreinstellung für den Richtext-Editor aus, die für dieses Feld benutzt werden soll (falls vorhanden). + + + Rows + Zeilen + + + Amount of rows to use for longtext/table widget. + Anzahl der Zeilen, die für Longtext-/Table-Widget verwendet werden. + + + Columns + Spalten + + + Amount of colums to use for longtext/table widget + Anzahl der Spalten, die für Longtext-/Table-Widget verwendet werden. + + + Trailing slash handling + Führende '/' bearbeiten + + + Here you can specify how trailing slashes shall be handled + Hier können Sie angeben, wie führende '/' behandelt werden sollen. + + + Replace spaces with underscore + Leerzeichen durch Unterstriche ersetzen + + + If true any whitespace character will be replaced by an underscore. + Falls diese Option angewählt ist, werden Leerzeichen durch Unterstriche ersetzt. + + + Include blank option + Leere Option einfügen + + + if true a blank option will be added to the options which allows to define a &quot;no item selected&quot; + option. + + Falls diese Option angewählt ist, wird zusätzlich "kein Element ausgewählt" ermöglicht. + + + Read only + Nur lesen + + + If true a the widget will be read only and may not be changed. + Wenn aktiviert, erlaubt das Feld nur das Lesen und kann nicht geändert werden. + + + Submit on change + Absenden bei Änderungen + + + If active the form will be submitted when the field value changes. + Wenn aktiv, wird das Formular bei Änderungen eines Feldwertes abgesendet. + + + Type + Typ + + + Widget appearance related options + Anzeigeoptionen des Widgets + + + Functionality related options + Funktionsbezogene Einstellungen + + + Filtering and searching in the backend list + Filter und Suche in der Backend-Liste + + + Backend + Backend + + + Configuration + Einstellungen + + + Advanced + Erweitert + + + Edit setting + Einstellung bearbeiten + + + Edit the setting ID %id% + Bearbeite Einstellung ID %id%. + + + Cut setting definition + Einstellung ausschneiden + + + Cut the setting ID %id% + Ausschneiden der Einstellung ID %id%. + + + Copy setting definition + Kopiere Einstellung + + + Copy the setting ID %id% + Kopiere Einstellung ID %id%. + + + Delete setting + Lösche Einstellung + + + Delete the setting ID %id% + Lösche Einstellung ID %id%. + + + Do you really want to delete element ID %id%? + Soll das Element ID %id% wirklich gelöscht werden? + + + Manage visibility conditions + Ansichtsbedingungen des Eingabefeldes + + + Manage the visibility conditions of property ID %id% + Ansichtsbedingungen des Eingabefeldes ID %id%. + + + Setting details + Einstellungsdetails + + + Show details of setting ID %id% + Zeige Details der Einstellung ID %id%. + + + Toggle + Wechseln + + + Toggle the state of setting ID %id% + Wechseln des Status der Einstellung ID %id%. + + + Add all + Alle hinzufügen + + + Add all attributes to input screen + Alle Attribute der Eingabemaske hinzufügen. + + + Legend + Legende + + + Attribute + Attribut + + + Strip slash on save + Schrägstrich beim Speichern entfernen + + + Add slash on save + Schrägstrich beim Speichern hinzufügen + + + Do nothing + Nichts tun + + + Will add the attribute "%name%" [%type%, "%colName%"] to the input screen. + Fügt das Attribut "%name%" [%type%, "%colName%"] der Eingabemaske hinzu. + + + Attribute "%name%" [%type%, "%colName%"] is already contained in input screen. + Attribut "%name%" [%type%, "%colName%"] ist bereits in der Eingabemaske vorhanden. + + + Added the attribute "%name%" [%type%, "%colName%"] to the input screen. + Fügt das Attribut "%name%" [%type%, "%colName%"] der Eingabemaske hinzu. + + + Add new settings enabled. + Hinzugefügte Einstellungen aktivieren. + + + Set backend class. + Backend-Klasse setzen + + + Unique attribues are automatically mandatory (this is not changable). + Eindeutige (unique) Attribute sind automatisch Pflichtfelder (Einstellung nicht änderbar). + + + Attribues with force alias are automatically readonly (this is not changable). + Attribute mit "Neuerstellung erzwingen" sind automatisch "nur lesend" (Einstellung nicht änderbar). + + + Show the details of record %id% + Zeige Details Datensatz ID %id%. + + + + \ No newline at end of file diff --git a/src/CoreBundle/Resources/translations/tl_metamodel_dcasetting.en.xlf b/src/CoreBundle/Resources/translations/tl_metamodel_dcasetting.en.xlf index fca38de04..9d9354312 100644 --- a/src/CoreBundle/Resources/translations/tl_metamodel_dcasetting.en.xlf +++ b/src/CoreBundle/Resources/translations/tl_metamodel_dcasetting.en.xlf @@ -51,9 +51,21 @@ Back to the previous page + + Edit record %id% + + + Save + Save and close + + Save and new + + + Save and go back + Continue diff --git a/src/CoreBundle/Resources/translations/tl_metamodel_dcasetting_condition.de.xlf b/src/CoreBundle/Resources/translations/tl_metamodel_dcasetting_condition.de.xlf new file mode 100644 index 000000000..a28148fd5 --- /dev/null +++ b/src/CoreBundle/Resources/translations/tl_metamodel_dcasetting_condition.de.xlf @@ -0,0 +1,251 @@ + + + + + All input screen conditions + Alle Ansichtsbedingenen + + + Id + ID + + + Pid + PID + + + Fid + FID + + + Sorting + Sortierung + + + Revision date + Aktualisierungsdatum + + + New condition + Neue Bedingung + + + Add a new visibility condition + Eine neue Bdingung zur Sichtbarkeit hinzufügen + + + Edit multiple + Mehrere bearbeiten + + + Edit multiple elements at once + Mehrere Elemente auf einmal bearbeiten + + + Go back + Zurück + + + Back to the previous page + Zurück zur vorherigen Seite navigieren + + + Visibility conditons + Sichtbarkeits-Bedingungen + + + Basic configuration + Grundkonfiguration + + + Condition configuration + Konfiguration der Bedingung + + + Type + Typ + + + Select the condition type. + Wählen Sie einen Bedingungstyp aus. Weitere Informationen erhalten Sie über den Hilfe-Assistenten. + + + Enabled + Aktiviert + + + Check to enable this condition. + Auswählen um die Bedingung zu aktivieren. + + + Comment + Kommentar + + + Enter a comment to describe the purpose of this condition. + Ein kurzer Kommentar, der den Zweck dieser Bedingung beschreibt. + + + Attribute + Attibut + + + Select the attribute to use for this condition. + Das Attribut auswählen, das in dieser Bedingung verwendet werden soll. + + + Value + Wert + + + Please select the desired value. + Bitte wählen Sie einen eigenen Wert aus. + + + Edit setting + Einstellung bearbeiten + + + Edit the setting ID %id% + Bearbeiten Sie die Einstellungen ID %id%. + + + Cut setting definition + Einstellung ausschneiden + + + Cut the setting ID %id% + Ausschneiden der Einstellung ID %id%. + + + Copy setting definition + Einstellung kopieren + + + Copy the setting ID %id% + Kopieren Sie die Einstellung ID %id%. + + + Delete setting + Einstellung löschen + + + Delete the setting ID %id% + Löschen Sie die Einstellung ID %id%. + + + Do you really want to delete element ID %id%? + Soll das Element ID %id% wirklich gelöscht werden? + + + Manage conditions + Bedingungen verwalten + + + Manage the conditions of property ID %id% + Verwalten Sie die Bedingungen der Eigenschaft ID %id%. + + + Setting details + Einstellungsdetails + + + Show details of setting ID %id% + Zeige Details der Einstellung ID %id%. + + + Toggle + Wechseln + + + Toggle the state of setting ID %id% + Wechseln des Status der Einstellung ID %id% + + + Add all + Alle hinzufügen + + + Add all attributes to input screen + Alle Attribute der Eingabemaske hinzufügen + + + Add new at the top + Neue Einstellung oben erstellen. + + + Add new after setting ID %id% + Neues Einstellung nach dem Element ID %id% erstellen. + + + Create new after setting ID %id% + Neue Einstellung nach Element ID %id% anlegen. + + + Create new after setting ID %id% + Neue Einstellung nach Element ID %id% anlegen. + + + Create new setting at the top + Neue Einstellung oben anlegen. + + + Create new at the top of setting ID %id% + Neue Einstellung oberhalb von Einstellung ID %id% anlegen. + + + Attribute value is... + Eigenschaftswert ist... + + + Attribute values contain any of... + Eigenschaftswert kann beinhalten ... + + + Is attribute visible... + Eigenschaft ist sichtbar ... + + + OR + ODER + + + AND + UND + + + NOT + NICHT + + + %icon% <strong>%name%</strong> - for attribute <em>%attribute%</em> (Parameter: %value%)%comment% + + %icon% <strong>%name%</strong> - für Attribut <em>%attribute%</em> (Parameter: %value%)%comment% + + + %icon% <strong>%name%</strong> - any sub conditions must be fulfilled%comment% + %icon% <strong>%name%</strong> - eine beliebige Bedingung muss erfüllt sein. %comment% + + + %icon% <strong>%name%</strong> - all sub conditions must be fulfilled%comment% + %icon% <strong>%name%</strong> - alle Bedingungen müssen erfüllt sein. %comment% + + + %icon% <strong>%name%</strong> - invert the result of the contained condition%comment% + %icon% <strong>%name%</strong> - kehrt das Ergebnis der vorgegebenen Bedingung um. %comment% + + + %icon% <strong>%attribute%</strong> value is %value%%comment% + %icon% <strong>%attribute%</strong> Wert ist %value%%comment% + + + Do you really want to delete setting ID %id%? + Möchten Sie die Einstellung mit der ID %id% wirklich löschen? + + + Show the details of record %id% + Die Details des Datensatzes %id% anzeigen + + + + \ No newline at end of file diff --git a/src/CoreBundle/Resources/translations/tl_metamodel_filter.de.xlf b/src/CoreBundle/Resources/translations/tl_metamodel_filter.de.xlf new file mode 100644 index 000000000..82e959f32 --- /dev/null +++ b/src/CoreBundle/Resources/translations/tl_metamodel_filter.de.xlf @@ -0,0 +1,166 @@ + + + + + All filters + Alle Filter + + + Id + ID + + + Pid + PID + + + Save + Speichern + + + Save and close + Speichern und schliessen + + + Save and new + Speichern und neu + + + Save and go back + Speichern und zurück + + + Edit record %id% + Datensatz %id% bearbeiten + + + Show the details of record %id% + Die Details des Datensatzes %id% anzeigen + + + New filter + Neuer Filter + + + Create a new filter + Einen neuen Filter erstellen + + + Edit multiple + Mehrere bearbeiten + + + Edit multiple elements at once + Mehrere Elemente auf einmal bearbeiten + + + Create a new element at the top + Erstellt ein neues Element oben + + + Create a new element after element ID %id% + Erstellt ein neues Element nach dem Element mit der ID %id% + + + Paste at the top + Oben einfügen + + + Paste after element ID %id% + Nach dem Element mit der ID %id% einfügen + + + Go back + Zurück + + + Back to the previous page + Zurück zur vorherigen Seite navigieren + + + Name + Name + + + Filter setting name. + Name des Filters + + + Revision date + Aktualisierungsdatum + + + Date and time of the latest revision. + Datum und Zeit der letzten Aktualisierung + + + Name + Name + + + Edit + Bearbeiten + + + Edit MetaModel + MetaModel bearbeiten + + + Edit setting + Einstellungen bearbeiten + + + Edit the filter setting ID %id% + Die Filtereinstellung ID %id% bearbeiten + + + Copy filter setting + Filtereinstellung kopieren + + + Copy the filter setting ID %id% + Die Filtereinstellung Id %id% bearbeiten. + + + Delete filter setting + Filtereinstellung löschen + + + Delete the filter setting ID %id% + Die Filtereinstellung Id %id% löschen + + + Do you really want to delete element ID %id%? + Soll das Element ID %id% wirklich gelöscht werden? + + + Filter setting details + Filtereinstellungs-Details + + + Show details of filter setting ID %id% + Die Details der Filtereinstellung ID %id% anzeigen + + + Define attribute settings + Attributeinstellungen festlegen + + + Define attribute settings for filter setting ID %id% + Die Attributeinstellungen für Filtereinstellung Id %id% festlegen + + + Do you really want to delete filter setting ID %id%? + Soll die Filtereinstellung ID %id% wirklich gelöscht werden? + + + Cancel + Abbrechen + + + Cancel multiple processing. + Mehrfachbearbeitung abbrechen + + + + \ No newline at end of file diff --git a/src/CoreBundle/Resources/translations/tl_metamodel_filtersetting.de.xlf b/src/CoreBundle/Resources/translations/tl_metamodel_filtersetting.de.xlf new file mode 100644 index 000000000..62b2eac2c --- /dev/null +++ b/src/CoreBundle/Resources/translations/tl_metamodel_filtersetting.de.xlf @@ -0,0 +1,444 @@ + + + + + All filter settings + Alle Filtereinstellungen + + + Id + ID + + + Pid + PID + + + Sorting + Sortierung + + + Revision date + Aktualisierungsdatum + + + New filter setting + Neue Filtereinstellung + + + Create a new filter setting + Eine neue Filtereinstellung erstellen + + + Edit multiple + Mehrere bearbeiten + + + Edit multiple elements at once + Mehrere Elemente auf einmal bearbeiten + + + Create a new element at the top + Ein neues Element oben erstellen + + + Create a new element after element ID %id% + Erstellt ein neues Element nach dem Element mit der ID %id% + + + Paste at the top + Oben einfügen + + + Paste after element ID %id% + Nach dem Element mit der ID %id% einfügen + + + Create new setting at the top + Neue Einstellung oben anlegen. + + + Create new into setting ID %id% + Neue Einstellung nach Element ID %id% anlegen. + + + Go back + Zurück + + + Back to the previous page + Zurück zur vorherigen Seite navigieren + + + Filter settings + Filtereinstellungen + + + Parent collection + Aus übergeordnetem Element + + + The collection of filter settings, this setting belongs to. + Filtereinstellung(en), zu denen diese Einstellungen gehören. + + + Type + Typ + + + The type of this setting. + Geben Sie den Typ dieser Einstellung an. + + + Enabled + Aktiviert + + + Enable this filter setting. + Filtereinstellung aktivieren + + + Comment + Kommentar + + + A short comment for describing the purpose of this filter setting. + Ein kurzer Kommentar, der den Zweck dieser Filtereinstellung beschreibt. + + + Attribute + Attibut + + + Attribute this setting relates to. + Attribut, auf das sich diese Einstellung bezieht. + + + Search all languages + Alle Sprachen durchsuchen + + + Check if you want to perform the lookup language independant. If this is not checked, only the current + active language will be searched. + + Auswählen, um die Suche sprachunabhängig auszuführen. Falls nicht aktiviert wird nur die aktuelle Sprache in die Suche mit einbezogen. + + + Allow empty value + Leeren Wert erlauben + + + Check if you want to allow this filter value to be emtpy, if checked and the parameter holds an empty + value, this filter rule will behave as if it was not defined. + + Auswählen, wenn der Filterwert leer sein darf. Falls diese Option angewählt ist und der Parameter einen leeren Wert enthält, dann verhält sich dieser Filter so, als wäre er nicht definiert. + + + Stop after first match + Nach erstem Treffer beenden + + + Check if you want this filter setting to stop executing its child rules after the first subset returned + matches. + + Anwählen, falls Sie möchten, dass nachfolgende Regeln nach dem ersten Treffer nicht mehr ausgeführt werden. + + + URL parameter + URL-Parameter + + + The URL parameter that shall get mapped to the selected attribute. The special <em>"auto_item"</em> + parameter can also be used, this is especially useful for alias columns. + + Geben Sie den URL-Parameter an, der dem ausgewählten Attribut zugeordnet werden soll. Der <em>"auto_item"</em>-Parameter kann ebenfalls verwendet werden. Diese Einstellung ist nützlich um Aliase zu verwenden. + + + Static parameter + Statischer Parameter + + + Check if you want to be able to set the value of this parameter in the parenting list (modules, content + elements, etc.). + + Auswählen, wenn Sie Werte für diesen Parameter aus einer übergeordneten Liste (wie zum Beispiel Module, Inhaltselemente, etc.) beziehen möchten. + + + Provide Frontend widget + Frontend-Widget erzeugen + + + Check if you want to display a filter widget in the Frontend. + Auswählen, falls ein Filter-Widget im Frontend angezeigt werden soll. + + + Custom SQL Query + Eigene SQL-Abfrage + + + The SQL query that shall be executed, insert tags are supported. + Auszuführende SQL-Abfrage. Insert-Tags werden unterstützt. + + + Label + Label + + + Show label instead of attribute name. + Das Label wird anstelle des Attributnamens angezeigt. + + + Template + Template + + + Sub template for this filter element. Standard: form widget. + Sub-Template für dieses Filterelement. Standard ist das FormWidget. + + + Empty option + Leere Auswahl ermöglichen + + + Show empty options in filter widget. + Leere Auswahloption im Filterwidget ermöglichen. + + + Assigned values only + Nur zugeordnete Werte + + + Show only options, that are assigned somewhere in the MetaModel. + Zeige nur die Werte, die im MetaModel bereits zugeordnet sind. + + + Remaining values only + Nur verbleibende Werte + + + Show only options, that are still assigned somewhere after the actual filter is set. + Zeige nur die Werte, für die es nach Anwendung dieses Filters ein Ergebnis gibt. + + + Ignore this filter for the remaining values + Diesen Filter für verbleibende Werte ignorieren + + + If activate the filter will return all options without itself in the filter rules. + Falls aktiviert, wird dieser Filter alle Werte außer seine eigenen zurück liefern. + + + Hide label in filter widget + Label verbergen + + + If active, the label is not output. + Falls aktiviert wird das Label nicht im Frontend ausgegeben. + + + Use label as blank option + Label als leere Option nutzen + + + If active, the label output as blank option. + Falls aktiviert wird das Label als leere Option im Frontend ausgegeben. + + + Sorting + Sortierung + + + Please enter sorting of values in filter widget. + Sortierung der Werte im Filterwidget wählen. + + + CSS ID/class + CSS Id / Klasse + + + Here you can set an ID and one or more classes. + Hier können Sie die CSS-Klasse oder ID setzen. + + + Placeholder + Platzhalter + + + Show this text as long as the field is empty. + Diesen Text anzeigen solange das Fekld leer ist. + + + Natural sorting (ASC) + Natürliche Sortierung (aufsteigend) + + + Natural sorting (DESC) + Natürliche Sortierung (absteigend) + + + Default + Standard + + + Default value for selection. + Standardwert für die Auswahl festlegen + + + Type + Typ + + + Configuration + Konfiguration + + + Frontend filter + Frontend-Filter + + + Edit setting + Einstellung bearbeiten + + + Edit the filter setting ID %id% + Die Filtereinstellung ID %id% bearbeiten + + + Copy filter setting definition + Filtereinstellung kopieren + + + Copy the filter setting ID %id% + Kopieren Sie die Filtereinstellung ID %id% + + + Cut filter setting definition + Filtereinstellungen ausschneiden + + + Cut the filter setting ID %id% + Filtereinstellungen ID %id% ausschneiden. + + + Delete filter setting + Filtereinstellung löschen + + + Delete the filter setting ID %id% + Die Filtereinstellung Id %id% löschen + + + Do you really want to delete element ID %id%? + Soll das Element ID %id% wirklich gelöscht werden? + + + Filter setting details + Details der Filtereinstellungen + + + Show details of filter setting ID %id% + Die Details der Filtereinstellung ID %id% anzeigen + + + Toggle + Wechseln + + + Toggle the state of setting ID %id% + Wechseln des Status der Einstellung ID %id% + + + Predefined set of items + Vordefinierter Satz von Items + + + Simple lookup + Einfache Abfrage + + + Custom SQL + Eigenes SQL + + + OR condition + ODER-Bedingung + + + AND condition + UND-Bedingung + + + <em>[%colName%, "%name%"]</em> + <em>[%colName%, "%name%"]</em> + + + <em>(URL: %urlparam%)</em> + <em>(URL: %urlparam%)</em> + + + <br />%comment% + <br />%comment% + + + %1$s <strong>%2$s</strong> %3$s %5$s %4$s + %1$s <strong>%2$s</strong> %3$s %5$s %4$s + + + %1$s <strong>%2$s</strong> %3$s %5$s %4$s + %1$s <strong>%2$s</strong> %3$s %5$s %4$s + + + %1$s <strong>%2$s</strong> %3$s %4$s + %1$s <strong>%2$s</strong> %3$s %4$s + + + %1$s <strong>%2$s</strong> %4$s + %1$s <strong>%2$s</strong> %4$s + + + %1$s <strong>%2$s</strong> %4$s + %1$s <strong>%2$s</strong> %4$s + + + Items + Items + + + Please enter the IDs of the items for filtering as comma-separated list. + Bitte geben Sie für die Filterung die IDs der Items als Komma-Separierte-Liste ein. + + + Do you really want to delete filter setting ID %id%? + Soll die Filtereinstellung ID %id% wirklich gelöscht werden? + + + Cancel + Abbrechen + + + Cancel multiple processing. + Mehrfachbearbeitung abbrechen + + + Edit record %id% + Datensatz %id% bearbeiten + + + Save + Speichern + + + Save and close + Speichern und schliessen + + + Save and new + Speichern und neu + + + Save and go back + Speichern und zurück + + + + \ No newline at end of file diff --git a/src/CoreBundle/Resources/translations/tl_metamodel_item.de.xlf b/src/CoreBundle/Resources/translations/tl_metamodel_item.de.xlf new file mode 100644 index 000000000..31a60a115 --- /dev/null +++ b/src/CoreBundle/Resources/translations/tl_metamodel_item.de.xlf @@ -0,0 +1,195 @@ + + + + + New item + Neuer Datensatz + + + Create new item + Neuer Datensatz erstellen + + + Edit item + Item bearbeiten + + + Edit item ID %id% + Bearbeite Datensatz %id% + + + Edit multiple + Mehrere bearbeiten + + + Edit multiple + Mehrere bearbeiten + + + Edit "%child_name%" + "%child_name%" berabeiten + + + Edit "%child_name%" for item %id% + "%child_name%" für Datensatz %id% bearbeiten + + + Copy item + Datensatz kopieren + + + Copy item ID %id% + Datensatz ID %id% kopieren + + + New variant + Neue Variante + + + Create a new variant of item ID %id% + Erstellt eine neue Variante von Datensatz ID %id% + + + Move item + Datensatz verschieben + + + Move item ID %id% + Datensatz ID %id% verschieben + + + Delete item + Datensatz löschen + + + Delete item ID %id% + Datensatz ID %id% löschen + + + Do you really want to delete element ID %id%? + Soll das Element ID %id% wirklich gelöscht werden? + + + Item details + Datensatz-Details + + + Show details of item ID %id% + Die Details des Datensatz ID %id% anzeigen + + + Edit item type + Datensatz-Typ bearbeiten + + + Edit the item type + Bearbeiten Sie den Datensatz-Typ + + + Create new item + Neuen Datensatz erstellen + + + Create a new item after item ID %id% + Erstellt ein neuen Datensatz nach dem Datensatz mit der ID %id% + + + Create new item + Neuen Datensatz erstellen + + + Create a new item in item ID %id% + Erstellt ein neuen Datensatz nach dem Datensatz mit der ID %id% + + + Add new at the top + Oben einfügen + + + Add new item after item ID %id% + Erstellt ein neuen Datensatz nach Datensatz mit der ID %id% + + + Is variant base + Basis für Varianten + + + Check this if you want to make this the base for the current variant group + Aktivieren wenn dies die Basis für die aktuelle Gruppe an Varianten sein soill + + + Edit item %id% + Bearbeite Datensatz %id% + + + Create a new item + Neuen Datensatz erstellen + + + Sorting + Sortierung + + + The manual sorting + Manuelle Sortierung + + + ID of the item + ID des Datensatzes + + + The id of the item + ID des Datensatzes + + + Parent item id + Eltern-ID + + + The id of the parent item + Die ID des Eltern-Datensatzes + + + Revision date + Aktualisierungsdatum + + + The date when the item revision was created + Aktualisierungsdatum + + + Details + Details + Used in the frontend for the "Details" link caption. + + + Show the details of record %id% + Die Details des Datensatzes %id% anzeigen + + + Go back + Zurück + + + Back to the previous page + Zurück zur vorherigen Seite navigieren + + + Save + Speichern + + + Save and close + Speichern und schliessen + + + Save and new + Speichern und Neu + + + Save and go back + Speichern und zurück + + + + \ No newline at end of file diff --git a/src/CoreBundle/Resources/translations/tl_metamodel_item.en.xlf b/src/CoreBundle/Resources/translations/tl_metamodel_item.en.xlf index 56e1fb534..25e2a41e9 100644 --- a/src/CoreBundle/Resources/translations/tl_metamodel_item.en.xlf +++ b/src/CoreBundle/Resources/translations/tl_metamodel_item.en.xlf @@ -91,7 +91,7 @@ Check this if you want to make this the base for the current variant group - Edit item %item% + Edit item %id% Create a new item diff --git a/src/CoreBundle/Resources/translations/tl_metamodel_rendersetting.de.xlf b/src/CoreBundle/Resources/translations/tl_metamodel_rendersetting.de.xlf new file mode 100644 index 000000000..2912cda75 --- /dev/null +++ b/src/CoreBundle/Resources/translations/tl_metamodel_rendersetting.de.xlf @@ -0,0 +1,232 @@ + + + + + All render setting settings + Alle Einstellungen des Render-Settings + + + Id + ID + + + Pid + PID + + + Revision date + Aktualisierungsdatum + + + Sorting + Sortierung + + + New attribute + Neues Attribut + + + Add a new attribute for render setting + Ein neues Attribut für die Render-Settings hinzufügen. + + + Edit multiple + Mehrere bearbeiten + + + Edit multiple elements at once + Mehrere Elemente auf einmal bearbeiten + + + Create a new element at the top + Erstellt ein neues Element oben + + + Create a new element after element ID %id% + Erstellt ein neues Element nach dem Element mit der ID %id% + + + Paste at the top + Oben einfügen + + + Paste after element ID %id% + Nach dem Element mit der ID %id% einfügen + + + Go back + Zurück + + + Back to the previous page + Zurück zur vorherigen Seite navigieren + + + Continue + Fortfahren + + + Select all + Alles auswählen + + + Save + Speichern + + + Save and close + Speichern und schliessen + + + Save and new + Speichern und neu + + + Save and go back + Speichern und zurück + + + Edit record %id% + Datensatz %id% bearbeiten + + + Attribute + Attribut + + + Attribute this setting relates to. + Attribut, auf das sich diese Einstellung bezieht. + + + Custom template to use for generating + Angepasstes Template für die Ausgabe + + + Select the template that shall be used for the selected attribute. Valid template files start with "mm_&lt;type&gt;" + where the type name is put for &lt;type&gt; + + Wählen Sie das Template aus, das für das gewählte Attribut verwendet werden soll. Gültige Dateinamen für das Template beginnen mit "mm_&lt;typ&gt;", wobei &lt;typ&gt; für den Typ steht. + + + Custom CSS class + Individuelle CSS-Klasse + + + Enter any CSS classes that you want get added to the output of this attribute + Eingabe einer CSS-Klasse, wenn diese mit dem Attribut ausgegeben werden soll. + + + Type + Typ + + + Advanced + Erweitert + + + Edit setting + Einstellung bearbeiten + + + Edit render setting ID %id% + Render-Einstellung ID %id% bearbeiten. + + + Cut render setting definition + Render-Einstellung ausschneiden + + + Cut the render setting ID %id% + Ausschneiden der Render-Einstellung ID %id%. + + + Copy render setting definition + Render-Einstellung kopieren + + + Copy the render setting ID %id% + Kopieren Sie die Render-Einstellung ID %id%. + + + Delete render setting + Render-Einstellung löschen + + + Delete the render setting ID %id% + Löschen der Render-Einstellung ID %id%. + + + Do you really want to delete element ID %id%? + Soll das Element ID %id% wirklich gelöscht werden? + + + Render setting details + Details der Render-Einstellung + + + Show details of render setting ID %id% + Anzeige Details der Render-Einstellung ID %id%. + + + Toggle + Wechseln + + + Toggle the state of render setting ID %id% + Wechseln des Status für die Render-Einstellung ID %id%. + + + Add all + Alle hinzufügen + + + Add all attributes to render setting + Alle Attribute der Render-Einstellung hinzufügen. + + + %id% <strong>%id%</strong> <em>[%id%]</em> + %id% <strong>%id%</strong> <em>[%id%]</em> + + + Will add the attribute "%name%" [%type%, "%colName%"] to the input screen. + Fügt das Attribut "%name%" [%type%, "%colName%"] den Render-Einstellung hinzu. + + + Attribute "%name%" [%type%, "%colName%"] is already contained in input screen. + Das Attribut "%name%" [%type%, "%colName%"] ist bereits in der Render-Einstellung vorhanden. + + + Added the attribute "%name%" [%type%, "%colName%"] to the input screen. + Das Attribut "%name%" [%type%, "%colName%"] wurde der Render-Einstellung hinzugefügt. + + + Add new settings enabled. + Neue Einstellung aktivieren. + + + Do you really want to render filter setting ID %id%? + Soll die Einstellung mit ID %id% wirklich gelöscht werden? + + + Enabled + Aktivieren + + + Enable this filter setting. + Aktiviert die Filtereinstellung + + + Show the details of record %id% + Die Details des Datensatzes %id% anzeigen + + + Cancel + Abbrechen + + + Cancel multiple processing. + Mehrfachbearbeitung abbrechen + + + + \ No newline at end of file diff --git a/src/CoreBundle/Resources/translations/tl_metamodel_rendersettings.de.xlf b/src/CoreBundle/Resources/translations/tl_metamodel_rendersettings.de.xlf new file mode 100644 index 000000000..8fe9b5c91 --- /dev/null +++ b/src/CoreBundle/Resources/translations/tl_metamodel_rendersettings.de.xlf @@ -0,0 +1,294 @@ + + + + + All render settings + Render-Einstellungen + + + Id + ID + + + Pid + PID + + + Revision date + Aktualisierungsdatum + + + New render setting + Neue Render-Einstellungen + + + Create a new render setting + Erstellt eine neue Render-Einstellung. + + + Edit multiple + Mehrere bearbeiten + + + Edit multiple elements at once + Mehrere Elemente auf einmal bearbeiten + + + Create a new element at the top + Ein neues Element oben erstellen + + + Create a new element after element ID %id% + Erstellt ein neues Element nach dem Element mit der ID %id% + + + Paste at the top + Oben einfügen + + + Paste after element ID %id% + Nach dem Element mit der ID %id% einfügen + + + Go back + Zurück + + + Back to the previous page + Zurück zur vorherigen Seite navigieren + + + Edit MetaModel + MetaModel bearbeiten + + + Edit the MetaModel ID %id% + Das MetaModel mit der ID %id% bearbeiten. + + + Name + Name + + + General settings + Grundeinstellungen + + + Expert settings + Experteneinstellungen + + + Frontend jump-to settings + Einstellungen der Weiterleitung (jump-to) + + + Additional files + Zusätzliche Dateien + + + Name + Name + + + Setting name. + Einstellungsname + + + Template + Template + + + The template to use to render the items. + Geben Sie das Template an, das für die Render-Einstellung der Einträge benutzt werden soll. Das kann auch ein angepasstes Template sein. + + + Output format + Ausgabeformat + + + Define the output format. Leave empty to use the format used by current page. + Legen Sie das Ausgabeformat fest. Lassen Sie die Definition leer, um das Format zu verwenden, das von der aktuellen Seite benutzt wird. + + + HTML5 + HTML5 + + + Text + Text + + + JumpTo page + Weiterleitungsseite (jumpTo) + + + The page that shall be used as "show details" urls. Note that the detailed URL params will get generated + by the filter setting that is currently in use. + + Wählen Sie die Seite aus, die für die Detailansicht verwendet werden soll. Beachten Sie, dass die genauen URL-Parameter durch die verwendete Filtereinstellung bestimmt werden. + + + All languages + Alle Sprachen + + + Language + Sprache + + + The language for the jump to page. + Sprache der Weiterleitungsseite. + + + Jump to page + Springe zu Seite + + + The page to use for detail links. + Geben Sie die Seite an, die für die Links zur Detailseite verwendet werden soll. + + + Filter settings + Filtereinstellungen + + + The filter settings that define how the target (the reader/lister on the detail page) will filter the + items. + + Wählen Sie die Filtereinstellungen aus, die bestimmen, wie das Ziel (also die Listen- oder Reader-Seite) passende Datensätze erkennt. + + + Hide empty values + Leere Einträge verbergen + + + Hide empty values in backend and frontend. + Verbirgt leere Einträge im Backend und im Frontend. + + + Hide labels + Labels verbergen + + + Hide all labels in backend and frontend. + Mit dieser Einstellung werden im Backend und im Frontend alle Labels verborgen. + + + Additional css files + Zusätzliche CSS-Dateien + + + Choose this, if you want to include additional css files. + Wählen Sie diese Option, wenn Sie zusätzliche CSS-Dateien ausgeben möchten. + + + Additional javascript files + Zusätzliche Javascript-Dateien + + + Choose this, if you want to include additional javascript files. + Wählen Sie diese Option, wenn Sie zusätzliche JavaScript-Dateien ausgeben möchten. + + + File + Datei + + + Choose a file + Datei auswählen + + + Publish + Veröffentlichen + + + Check to publish the file. + Prüfen Sie, ob die Datei veröffentlicht werden soll. + + + Edit setting + Einstellung bearbeiten + + + Edit the setting ID %id% + Bearbeiten Sie die Einstellungen ID %id%. + + + Copy setting definition + Einstellung kopieren + + + Copy the setting ID %id% + Kopieren Sie die Einstellung ID %id% + + + Delete setting + Einstellung löschen + + + Delete the setting ID %id% + Löschen Sie die Einstellung ID %id% + + + Do you really want to delete element ID %id%? + Wollen Sie wirklich die Einstellung mit der ID %id% löschen? + + + Filter details + Filterdetails + + + Show details of setting ID %id% + Zeige Details der Einstellung ID %id% + + + Define attribute settings + Attributseinstellungen festlegen + + + Define attribute settings for setting ID %id% + Legen Sie die Attributseinstellungen für die Filtereinstellung ID %id% fest. + + + Unknown ID: %id% + Unbekannte ID: %id% + + + unknown attribute + Unbekanntes Attribut + + + Unknown column + Unbekannte Spalte + + + Do you really want to render setting ID %id%? + Wollen Sie die Einstellung ID %id% wirklich rendern? + + + Show the details of record %id% + Die Details des Datensatzes %id% anzeigen + + + Edit record %id% + Datensatz %id% bearbeiten + + + Save + Speichern + + + Save and close + Speichern und schliessen + + + Save and new + Speichern und Neu + + + Save and go back + Speichern und zurück + + + + \ No newline at end of file diff --git a/src/CoreBundle/Resources/translations/tl_metamodel_rendersettings.en.xlf b/src/CoreBundle/Resources/translations/tl_metamodel_rendersettings.en.xlf index 9649e9518..5147cad20 100644 --- a/src/CoreBundle/Resources/translations/tl_metamodel_rendersettings.en.xlf +++ b/src/CoreBundle/Resources/translations/tl_metamodel_rendersettings.en.xlf @@ -107,6 +107,24 @@ The language for the jump to page. + + URL type + + + The reference type to use when generating the URL. + + + Absolute URL, e.g. "https://example.com/dir/file". + + + Absolute path, e.g. "/dir/file". + + + Relative path based on the current request path, e.g. "../parent-file". + + + Network path, e.g. "//example.com/dir/file". + Jump to page diff --git a/src/CoreBundle/Resources/translations/tl_metamodel_searchable_pages.de.xlf b/src/CoreBundle/Resources/translations/tl_metamodel_searchable_pages.de.xlf new file mode 100644 index 000000000..dbd9ab270 --- /dev/null +++ b/src/CoreBundle/Resources/translations/tl_metamodel_searchable_pages.de.xlf @@ -0,0 +1,182 @@ + + + + + All search settings + Alle Indexierungen + + + Id + ID + + + Pid + PID + + + New index + Neuer Index + + + Create a new searchable page setting + Erstellen einer neuen Indexierung. + + + Edit multiple + Mehrere bearbeiten + + + Edit multiple elements at once + Mehrere Elemente auf einmal bearbeiten + + + Create a new element at the top + Ein neues Element oben erstellen + + + Create a new element after element ID %id% + Erstellt ein neues Element nach dem Element mit der ID %id% + + + Paste at the top + Oben einfügen + + + Paste after element ID %id% + Nach dem Element mit der ID %id% einfügen + + + Go back + Zurück + + + Back to the previous page + Zurück zur vorherigen Seite navigieren + + + Show the details of record %id% + Zeige die Details der Einstellungen für die Indexierung ID %id% an. + + + Name + Name + + + Name of the searchable page setting + Name der Einstellungen für die Indexierung + + + Revision date + Aktualisierungsdatum + + + Date and time of the latest revision. + Datum und Zeit der letzten Aktualisierung + + + Rendersetting + Render-Einstellung + + + Choose the rendersetting which will be used for the search rendering. + Wähle die Render-Einstellung, die bei der Indexierung verwendet werden soll. Meistens ist es sinnvoll, die Render-Einstellung für die Listenansicht zu benutzen. + + + Filtersetting + Filtereinstellungen + + + Choose the filtersetting which will be used for the search rendering. + Wähle das Filterset aus, welches bei der Indexierung verwendet werden soll. Eine Filterung ist nur dann notwendig, wenn bestimmte Seiten von der Indexierung ausgeschlossen werden sollen. + + + Filter parameter override + Filterparameter überschreiben + + + Filter parameter override + Filterparameter überschreiben + + + Name + Name + + + General settings + Grundeinstellungen + + + Edit searchable page + Indexierung bearbeiten + + + Edit the searchable page setting ID %id% + Indexierung ID %id% bearbeiten. + + + Copy searchable page + Kopieren der Indexierung + + + Copy definition of searchable page setting ID %id% + Kopieren der Definition der Indexierung ID %id% + + + Delete searchable page + Indexierung löschen + + + Delete searchable page setting ID %id% + Löschen der Indexierung ID %id% + + + Do you really want to delete element ID %id%? + Wollen Sie wirklich die Einstellung mit der ID %id% löschen? + + + Searchable page setting details + Details der Einstellungen der Indexierung + + + Show details of searchable page setting ID %id% + Zeigen Sie die Details der Einstellungen für die Indexierung ID %id% an. + + + Toggle + Wechseln + + + Toggle the state of searchable page setting ID %id% + Wechseln des Status für die Einstellungen ID %id% + + + Searchable page settings + Einstellungen der Indexierung + + + Edit the settings of searchable page setting ID %id% + Bearbeiten der Einstellungen der Indexierung ID %id% + + + Searchable page settings + Einstellungen Indexierung + + + Published + Veröffentlicht + + + Do you really want to render setting ID %id%? + Wollen Sie die Einstellung ID %id% wirklich rendern? + + + Cancel + Abbrechen + + + Cancel multiple processing. + Mehrfachbearbeitung abbrechen + + + + \ No newline at end of file diff --git a/src/CoreBundle/Resources/translations/tl_module.de.xlf b/src/CoreBundle/Resources/translations/tl_module.de.xlf new file mode 100644 index 000000000..e00612f27 --- /dev/null +++ b/src/CoreBundle/Resources/translations/tl_module.de.xlf @@ -0,0 +1,34 @@ + + + + + Edit MetaModel + MetaModel bearbeiten + + + Edit the MetaModel ID %id%. + Bearbeite MetaModel ID %id%. + + + Edit render setting + Render-Einstellungen bearbeiten + + + Edit the render setting ID %id%. + Bearbeite Render-Einstellungen ID %id%. + + + Edit filter setting + Filtereinstellungen bearbeiten + + + Edit the filter setting ID %id%. + Bearbeite Filtereinstellungen ID %id%. + + + - no value [null] - + - ohne Datenwert [null] - + + + + \ No newline at end of file diff --git a/src/CoreBundle/Resources/translations/tl_modules.en.xlf b/src/CoreBundle/Resources/translations/tl_module.en.xlf similarity index 85% rename from src/CoreBundle/Resources/translations/tl_modules.en.xlf rename to src/CoreBundle/Resources/translations/tl_module.en.xlf index bc384cb5e..21d2a058c 100644 --- a/src/CoreBundle/Resources/translations/tl_modules.en.xlf +++ b/src/CoreBundle/Resources/translations/tl_module.en.xlf @@ -1,6 +1,6 @@ - + Edit MetaModel @@ -20,6 +20,9 @@ Edit the filter setting ID %id%. + + - no value [null] - + diff --git a/src/CoreBundle/Translator/MetaModelTranslationLoader.php b/src/CoreBundle/Translator/MetaModelTranslationLoader.php index 1dcc6eb34..abd680a11 100644 --- a/src/CoreBundle/Translator/MetaModelTranslationLoader.php +++ b/src/CoreBundle/Translator/MetaModelTranslationLoader.php @@ -184,9 +184,11 @@ private function handleInputScreen( $prefix = 'inputscreen.' . $inputScreen['meta']['id'] . '.'; foreach ($inputScreen['legends'] as $index => $legend) { - $value = $this->extractLangString($legend['label'], $locale, $mainLanguage) ?? ''; + $value = $this->extractLangString($legend['label'], $locale, $mainLanguage); // Suffix '_legend' due to EditMask in DcGeneral. - $catalog->set($prefix . $index . '_legend', $value, $domain); + if (null !== $value) { + $catalog->set($prefix . $index . '_legend', $value, $domain); + } } if ('standalone' === $inputScreen['meta']['rendertype']) { @@ -251,7 +253,7 @@ private function extractLangString(string|array $value, string $locale, string $ } } - if ('en' === $locale && null === $fallback && (null !== $default = ($value[''] ?? null))) { + if ('en' === $locale && null === $fallback && (null !== $default = ($value['default'] ?? $value[''] ?? null))) { return $default; } diff --git a/src/CoreBundle/Translator/MetaModelTranslatorConfigurator.php b/src/CoreBundle/Translator/MetaModelTranslatorConfigurator.php index b70ed2490..e3c2b1f61 100644 --- a/src/CoreBundle/Translator/MetaModelTranslatorConfigurator.php +++ b/src/CoreBundle/Translator/MetaModelTranslatorConfigurator.php @@ -20,12 +20,18 @@ namespace MetaModels\CoreBundle\Translator; +use Contao\CoreBundle\Intl\Locales; use MetaModels\IFactory; use MetaModels\ITranslatedMetaModel; use Psr\Cache\InvalidArgumentException; use Symfony\Component\Translation\Translator as SymfonyTranslator; use Symfony\Contracts\Cache\CacheInterface; +use function array_unique; +use function array_values; +use function call_user_func; +use function in_array; + /** @psalm-type TDomainList=iterable> */ final class MetaModelTranslatorConfigurator { @@ -42,6 +48,7 @@ final class MetaModelTranslatorConfigurator public function __construct( private readonly IFactory $factory, private readonly CacheInterface $cache, + private readonly Locales $localeProvider, $previous = null ) { if (null !== $previous && !is_callable($previous)) { @@ -61,7 +68,7 @@ public function __invoke(SymfonyTranslator $translator): void { // Apply previous configurator if (null !== $this->previous) { - \call_user_func($this->previous, $translator); + call_user_func($this->previous, $translator); } foreach ($this->fetchDomains() as $domain => $locales) { @@ -84,22 +91,24 @@ private function fetchDomains(): iterable /** @return TDomainList */ function (): iterable { $result = []; + + $installedLanguages = \array_values($this->localeProvider->getEnabledLocaleIds()); foreach ($this->factory->collectNames() as $metamodelName) { $instance = $this->factory->getMetaModel($metamodelName); if (!$instance instanceof ITranslatedMetaModel) { - $result[$metamodelName] = ['en']; + $result[$metamodelName] = $installedLanguages; continue; } - $locales = []; + $locales = $installedLanguages; foreach ($instance->getLanguages() as $language) { $locales[] = $language; } // Fix: Always add 'en' to the language domains, even if user only set 'af_NA' by quick save. - if (!\in_array('en', $locales, true)) { + if (!in_array('en', $locales, true)) { array_unshift($locales, 'en'); } - $result[$metamodelName] = $locales; + $result[$metamodelName] = array_values(array_unique($locales)); } return $result; diff --git a/src/Filter/FilterUrlBuilder.php b/src/Filter/FilterUrlBuilder.php index 2b4573bd5..1ed92821c 100644 --- a/src/Filter/FilterUrlBuilder.php +++ b/src/Filter/FilterUrlBuilder.php @@ -122,14 +122,15 @@ public function __construct( /** * Generate a frontend url. * - * @param FilterUrl $filterUrl The filter URL. + * @param FilterUrl $filterUrl The filter URL. + * @param int $referenceType The url reference type. * * @return string * * @SuppressWarnings(PHPMD.CyclomaticComplexity) * @SuppressWarnings(PHPMD.Superglobals) */ - public function generate(FilterUrl $filterUrl): string + public function generate(FilterUrl $filterUrl, int $referenceType = UrlGeneratorInterface::ABSOLUTE_PATH): string { $jumpTo = $filterUrl->getPage(); @@ -172,11 +173,11 @@ public function generate(FilterUrl $filterUrl): string } if ($this->hasLegacyRouting) { - return $this->urlGenerator->generate($jumpTo['alias'] . $url, $parameters); + return $this->urlGenerator->generate($jumpTo['alias'] . $url, $parameters, $referenceType); } $parameters['parameters'] = $url; - return $this->urlGenerator->generate('tl_page.' . $jumpTo['id'], $parameters); + return $this->urlGenerator->generate('tl_page.' . $jumpTo['id'], $parameters, $referenceType); } /** diff --git a/src/Filter/Setting/Collection.php b/src/Filter/Setting/Collection.php index d854d3ea7..095cb3d53 100644 --- a/src/Filter/Setting/Collection.php +++ b/src/Filter/Setting/Collection.php @@ -3,7 +3,7 @@ /** * This file is part of MetaModels/core. * - * (c) 2012-2023 The MetaModels team. + * (c) 2012-2024 The MetaModels team. * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -17,7 +17,7 @@ * @author Sven Baumann * @author Richard Henkenjohann * @author Ingolf Steinhardt - * @copyright 2012-2023 The MetaModels team. + * @copyright 2012-2024 The MetaModels team. * @license https://github.com/MetaModels/core/blob/master/LICENSE LGPL-3.0-or-later * @filesource */ @@ -28,6 +28,7 @@ use MetaModels\IItem; use MetaModels\Filter\IFilter; use MetaModels\IMetaModel; +use MetaModels\ITranslatedMetaModel; use MetaModels\Render\Setting\ICollection as IRenderSettings; /** @@ -195,25 +196,34 @@ public function getParameterFilterWidgets( $arrJumpTo, FrontendFilterOptions $objFrontendFilterOptions ) { - $parameters = []; - - // Get the id with all enabled filter. - $objFilter = $this->getMetaModel()->getEmptyFilter(); - $this->addRules($objFilter, $arrFilterUrl); - - $arrBaseIds = $objFilter->getMatchingIds(); - - foreach ($this->arrSettings as $setting) { - if ($setting->get('skipfilteroptions')) { - $objFilter = $this->getMetaModel()->getEmptyFilter(); - $this->addRules($objFilter, $arrFilterUrl, array($setting->get('id'))); - $ids = $objFilter->getMatchingIds(); - } else { - $ids = $arrBaseIds; + $parameters = []; + $metaModel = $this->getMetaModel(); + $previousLanguage = ($metaModel instanceof ITranslatedMetaModel) + ? $metaModel->selectLanguage($arrJumpTo['language'] ?? $metaModel->getMainLanguage()) + : null; + try { + // Get the id with all enabled filter. + $objFilter = $this->getMetaModel()->getEmptyFilter(); + $this->addRules($objFilter, $arrFilterUrl); + + $arrBaseIds = $objFilter->getMatchingIds(); + + foreach ($this->arrSettings as $setting) { + if ($setting->get('skipfilteroptions')) { + $objFilter = $this->getMetaModel()->getEmptyFilter(); + $this->addRules($objFilter, $arrFilterUrl, array($setting->get('id'))); + $ids = $objFilter->getMatchingIds(); + } else { + $ids = $arrBaseIds; + } + + $parameters[] = + $setting->getParameterFilterWidgets($ids, $arrFilterUrl, $arrJumpTo, $objFrontendFilterOptions); + } + } finally { + if (null !== $previousLanguage && ($metaModel instanceof ITranslatedMetaModel)) { + $metaModel->selectLanguage($previousLanguage); } - - $parameters[] = - $setting->getParameterFilterWidgets($ids, $arrFilterUrl, $arrJumpTo, $objFrontendFilterOptions); } return [] === $parameters ? [] : \array_merge(...$parameters); diff --git a/src/Filter/Setting/CustomSql.php b/src/Filter/Setting/CustomSql.php index d9e065130..c2b73753e 100644 --- a/src/Filter/Setting/CustomSql.php +++ b/src/Filter/Setting/CustomSql.php @@ -541,7 +541,7 @@ private function resolveTag(string $tag): string { $parts = \explode('::', $tag, 2); if (!\array_key_exists(1, $parts)) { - return $tag; + return $this->parseInsertTagsInternal('{{' . $tag . '}}'); } switch ($parts[0]) { diff --git a/src/Filter/Setting/Simple.php b/src/Filter/Setting/Simple.php index d6adedafa..64ee07da6 100644 --- a/src/Filter/Setting/Simple.php +++ b/src/Filter/Setting/Simple.php @@ -38,6 +38,7 @@ use MetaModels\Render\Setting\ICollection as IRenderSettings; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\HttpFoundation\Request; +use Symfony\Contracts\Translation\TranslatorInterface; /** * Base class for filter setting implementation. @@ -75,6 +76,13 @@ abstract class Simple implements ISimple */ private FilterUrlBuilder $filterUrlBuilder; + /** + * The translator. + * + * @var TranslatorInterface + */ + protected TranslatorInterface $translator; + /** * Constructor - initialize the object and store the parameters. * @@ -82,12 +90,14 @@ abstract class Simple implements ISimple * @param array $data The attributes for this filter setting. * @param EventDispatcherInterface|null $eventDispatcher The event dispatcher. * @param FilterUrlBuilder|null $filterUrlBuilder The filter URL builder. + * @param TranslatorInterface $translator The translator. */ public function __construct( $collection, $data, EventDispatcherInterface $eventDispatcher = null, - FilterUrlBuilder $filterUrlBuilder = null + FilterUrlBuilder $filterUrlBuilder = null, + TranslatorInterface $translator = null ) { $this->collection = $collection; $this->data = $data; @@ -115,8 +125,20 @@ public function __construct( assert($filterUrlBuilder instanceof FilterUrlBuilder); } + if (null === $translator) { + // @codingStandardsIgnoreStart + @trigger_error( + 'Translator is missing. It has to be passed in the constructor. Fallback will be dropped.', + E_USER_DEPRECATED + ); + // @codingStandardsIgnoreEnd + $translator = System::getContainer()->get('translator'); + assert($translator instanceof TranslatorInterface); + } + $this->eventDispatcher = $eventDispatcher; $this->filterUrlBuilder = $filterUrlBuilder; + $this->translator = $translator; } /** @@ -381,7 +403,7 @@ protected function prepareFrontendFilterOptions($arrWidget, $arrFilterUrl, $arrJ 'key' => '', 'value' => (string) ( $arrWidget['eval']['blankOptionLabel'] - ?? ($GLOBALS['TL_LANG']['metamodels_frontendfilter']['do_not_filter'] ?? '') + ?? $this->translator->trans('do_not_filter', [], 'metamodels_filter') ), 'href' => $this->filterUrlBuilder->generate( $filterUrl->clone()->setSlug($parameterName, '')->setGet($parameterName, '') diff --git a/src/Filter/Setting/SimpleLookup.php b/src/Filter/Setting/SimpleLookup.php index 09df3880d..6ee1a827c 100644 --- a/src/Filter/Setting/SimpleLookup.php +++ b/src/Filter/Setting/SimpleLookup.php @@ -299,7 +299,7 @@ public function getParameterFilterWidgets( ), 'blankOptionLabel' => $this->get('label_as_blankoption') ? $this->getLabel() - : $GLOBALS['TL_LANG']['metamodels_frontendfilter']['do_not_filter'] ?? '', + : $this->translator->trans('do_not_filter', [], 'metamodels_filter'), 'colname' => $attribute->getColname(), 'urlparam' => $paramName, 'onlyused' => $this->get('onlyused'), diff --git a/src/FrontendIntegration/FrontendFilter.php b/src/FrontendIntegration/FrontendFilter.php index 7b9d25845..d47035621 100644 --- a/src/FrontendIntegration/FrontendFilter.php +++ b/src/FrontendIntegration/FrontendFilter.php @@ -42,6 +42,7 @@ use MetaModels\FrontendIntegration\Module\FilterClearAll as ModuleFilterClearAll; use RuntimeException; use Symfony\Component\EventDispatcher\EventDispatcherInterface; +use Symfony\Contracts\Translation\TranslatorInterface; /** * FE-filtering for Contao MetaModels. @@ -81,14 +82,25 @@ class FrontendFilter */ private FilterUrlBuilder $filterUrlBuilder; + /** + * The translator. + * + * @var TranslatorInterface + */ + private TranslatorInterface $translator; + /** * FrontendFilter constructor. * * @param Connection|null $connection Database connection. * @param FilterUrlBuilder|null $filterUrlBuilder The filter URL builder. + * @param TranslatorInterface $translator The translator. */ - public function __construct(Connection $connection = null, FilterUrlBuilder $filterUrlBuilder = null) - { + public function __construct( + Connection $connection = null, + FilterUrlBuilder $filterUrlBuilder = null, + TranslatorInterface $translator = null + ) { if (null === $connection) { // @codingStandardsIgnoreStart @trigger_error( @@ -112,6 +124,18 @@ public function __construct(Connection $connection = null, FilterUrlBuilder $fil assert($filterUrlBuilder instanceof FilterUrlBuilder); } $this->filterUrlBuilder = $filterUrlBuilder; + + if (null === $translator) { + // @codingStandardsIgnoreStart + @trigger_error( + 'Translator is missing. It has to be passed in the constructor. Fallback will be dropped.', + E_USER_DEPRECATED + ); + // @codingStandardsIgnoreEnd + $translator = System::getContainer()->get('translator'); + assert($translator instanceof TranslatorInterface); + } + $this->translator = $translator; } /** @@ -443,7 +467,7 @@ protected function getFilters() 'filters' => $renderedWidgets, 'submit' => ($filterOptions->isAutoSubmit() ? '' - : $GLOBALS['TL_LANG']['metamodels_frontendfilter']['submit'] ?? '' + : $this->translator->trans('submit', [], 'metamodels_filter') ) ]; } diff --git a/src/Helper/LocaleUtil.php b/src/Helper/LocaleUtil.php index e602d2b5e..99e0f8302 100644 --- a/src/Helper/LocaleUtil.php +++ b/src/Helper/LocaleUtil.php @@ -36,16 +36,7 @@ final class LocaleUtil */ public static function formatAsLanguageTag(string $localeId): string { - $packages = System::getContainer()->getParameter('kernel.packages'); - assert(is_array($packages)); - $coreVersion = $packages['contao/core-bundle'] ?? ''; - - if (\version_compare($coreVersion, '4.13', '>=')) { - return self::formatAsLocale($localeId); - } - - // Legacy call. - return \str_replace('_', '-', ContaoLocaleUtil::formatAsLocale($localeId)); + return self::formatAsLocale($localeId); } /** diff --git a/src/Helper/ToolboxFile.php b/src/Helper/ToolboxFile.php index bb6b2c19b..1e5e4c0f2 100644 --- a/src/Helper/ToolboxFile.php +++ b/src/Helper/ToolboxFile.php @@ -212,7 +212,6 @@ class ToolboxFile * @param PictureFactoryInterface|null $pictureFactory The picture factory. * @param Session|null $session The session. * - * @SuppressWarnings(PHPMD.Superglobals) * @SuppressWarnings(PHPMD.CamelCaseVariableName) * @SuppressWarnings(PHPMD.CyclomaticComplexity) * @SuppressWarnings(PHPMD.NPathComplexity) @@ -253,10 +252,6 @@ public function __construct( /** @psalm-suppress DeprecatedProperty */ $this->dispatcher = $dispatcher; } - // Initialize some values to sane base. - if (isset($GLOBALS['TL_CONFIG']) && isset($GLOBALS['TL_CONFIG']['allowedDownload'])) { - $this->setAcceptedExtensions(StringUtil::trimsplit(',', $GLOBALS['TL_CONFIG']['allowedDownload'])); - } if (null === $rootDir) { // @codingStandardsIgnoreStart @@ -515,9 +510,16 @@ public function withDownloadKeys(bool $withDownloadKeys): void * Walks the list of pending folders via ToolboxFile::addPath(). * * @return void + * + * @SuppressWarnings(PHPMD.Superglobals) */ protected function collectFiles() { + // Initialize accepted extensions if not done yet. + if ([] === $this->getAcceptedExtensions() && isset($GLOBALS['TL_CONFIG']['allowedDownload'])) { + $this->setAcceptedExtensions(StringUtil::trimsplit(',', $GLOBALS['TL_CONFIG']['allowedDownload'])); + } + $table = FilesModel::getTable(); $conditions = []; diff --git a/src/IMetaModel.php b/src/IMetaModel.php index de02bf631..b3e4d8622 100644 --- a/src/IMetaModel.php +++ b/src/IMetaModel.php @@ -35,6 +35,8 @@ * @see MetaModelFactory::byId To instantiate a MetaModel by its ID. * * @see IFactory::getMetaModel To instantiate a MetaModel by its table name. + * + * @psalm-suppress DeprecatedInterface */ interface IMetaModel { @@ -44,8 +46,6 @@ interface IMetaModel * @return IMetaModelsServiceContainer * * @deprecated Inject services via constructor or setter. - * - * @psalm-suppress DeprecatedInterface */ public function getServiceContainer(); diff --git a/src/ItemList.php b/src/ItemList.php index a10de0b28..1083e77d6 100644 --- a/src/ItemList.php +++ b/src/ItemList.php @@ -901,7 +901,8 @@ public function prepare(): self if (null !== $this->objItems) { return $this; } - $metaModel = $this->getMetaModel(); + $metaModel = $this->getMetaModel(); + $previousLanguage = $this->setLanguageInMetaModel($metaModel); // Create an empty filter object if not done before. if (!isset($this->objFilter)) { @@ -922,24 +923,6 @@ public function prepare(): self $this->objTemplate->total = $total; } - if ($metaModel instanceof TranslatedMetaModel) { - if (null === $this->language) { - // @codingStandardsIgnoreStart - @trigger_error( - sprintf( - 'Not setting a language code in "%s" is deprecated since MetaModels 2.3 and will fail in 3.0', - __CLASS__ - ), - E_USER_DEPRECATED - ); - // @codingStandardsIgnoreEnd - - // @deprecated usage of TL_LANGUAGE - remove for Contao 5.0. - $this->language = LocaleUtil::formatAsLocale($GLOBALS['TL_LANGUAGE'] ?? 'en'); - } - $previousLanguage = $metaModel->selectLanguage($this->language); - } - $this->objItems = $metaModel->findByFilter( $this->objFilter, $this->strSortBy, @@ -949,9 +932,7 @@ public function prepare(): self $this->getAttributeNames() ); - if (isset($previousLanguage) && ($metaModel instanceof TranslatedMetaModel)) { - $metaModel->selectLanguage($previousLanguage); - } + $this->resetLanguageInMetaModel($metaModel, $previousLanguage); return $this; } @@ -1231,7 +1212,11 @@ public function render(bool $isNoNativeParsing, object $caller = null): string $outputFormat = $this->getOutputFormat(); if (!$isNoNativeParsing && null !== $this->objItems && $this->objItems->getCount()) { + $metaModel = $this->getMetaModel(); + $previousLanguage = $this->setLanguageInMetaModel($metaModel); $this->objTemplate->data = $this->objItems->parseAll($outputFormat, $this->objView); + $this->resetLanguageInMetaModel($metaModel, $previousLanguage); + unset($previousLanguage); } else { $this->objTemplate->data = []; } @@ -1272,4 +1257,43 @@ public function render(bool $isNoNativeParsing, object $caller = null): string return $this->objTemplate->parse($outputFormat); } + + /** + * @param IMetaModel $metaModel + * + * @return string + * + * @SuppressWarnings(PHPMD.Superglobals) + */ + public function setLanguageInMetaModel(IMetaModel $metaModel): ?string + { + if (!$metaModel instanceof ITranslatedMetaModel) { + return null; + } + if (null === $this->language) { + // @codingStandardsIgnoreStart + @trigger_error( + sprintf( + 'Not setting a language code in "%s" is deprecated since MetaModels 2.3 and will fail in 3.0', + __CLASS__ + ), + E_USER_DEPRECATED + ); + // @codingStandardsIgnoreEnd + + // @deprecated usage of TL_LANGUAGE - remove for Contao 5.0. + $this->language = LocaleUtil::formatAsLocale($GLOBALS['TL_LANGUAGE'] ?? 'en'); + } + + return $metaModel->selectLanguage($this->language); + } + + private function resetLanguageInMetaModel(IMetaModel $metaModel, ?string $previousLanguage): void + { + if ((null === $previousLanguage) || !$metaModel instanceof ITranslatedMetaModel) { + return; + } + + $metaModel->selectLanguage($previousLanguage); + } } diff --git a/src/MetaModel.php b/src/MetaModel.php index 04bdc457a..f6fc5f751 100644 --- a/src/MetaModel.php +++ b/src/MetaModel.php @@ -53,6 +53,8 @@ * @SuppressWarnings(PHPMD.TooManyPublicMethods) * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * + * @psalm-suppress DeprecatedInterface */ class MetaModel implements IMetaModel { @@ -78,8 +80,6 @@ class MetaModel implements IMetaModel * The service container. * * @var \Closure|IMetaModelsServiceContainer|null - * - * @psalm-suppress DeprecatedInterface */ protected $serviceContainer = null; @@ -193,8 +193,6 @@ public function getServiceContainer() * @return MetaModel * * @deprecated Inject services via constructor or setter. - * - * @psalm-suppress DeprecatedInterface */ public function setServiceContainer($serviceContainer, $deprecationNotice = true) { diff --git a/src/Render/Setting/Collection.php b/src/Render/Setting/Collection.php index 13fe9e2cd..12a90a6f4 100644 --- a/src/Render/Setting/Collection.php +++ b/src/Render/Setting/Collection.php @@ -35,10 +35,13 @@ use MetaModels\IMetaModel; use MetaModels\ITranslatedMetaModel; use Symfony\Component\EventDispatcher\EventDispatcherInterface; +use Symfony\Component\Routing\Generator\UrlGeneratorInterface; use Symfony\Contracts\Translation\TranslatorInterface; /** * Base implementation for render settings. + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class Collection implements ICollection { @@ -278,12 +281,14 @@ private function lookupJumpTo(bool $translated, string $desired = null, string $ { $jumpToPageId = ''; $filterSettingId = ''; + $referenceType = UrlGeneratorInterface::ABSOLUTE_PATH; foreach ((array) $this->get('jumpTo') as $jumpTo) { $langCode = $jumpTo['langcode'] ?? null; // If either desired language or fallback, keep the result. if (!$translated || ($langCode === $desired) || ($langCode === $fallback)) { $jumpToPageId = $jumpTo['value'] ?? ''; $filterSettingId = (string) ($jumpTo['filter'] ?? ''); + $referenceType = (int) ($jumpTo['type'] ?? UrlGeneratorInterface::ABSOLUTE_PATH); // If the desired language, break. // Otherwise, try to get the desired one until all have been evaluated. if (!$translated || ($desired === $jumpTo['langcode'])) { @@ -302,6 +307,7 @@ private function lookupJumpTo(bool $translated, string $desired = null, string $ 'pageDetails' => $pageDetails, 'filter' => $filterSettingId, 'filterSetting' => $filterSetting, + 'referenceType' => $referenceType, // Mask out the "all languages" language key (See #687). 'language' => $pageDetails['language'] ?? '', 'label' => $this->getJumpToLabel() @@ -311,7 +317,7 @@ private function lookupJumpTo(bool $translated, string $desired = null, string $ /** * {@inheritdoc} */ - public function buildJumpToUrlFor(IItem $item) + public function buildJumpToUrlFor(IItem $item /**, int $referenceType */) { $information = $this->determineJumpToInformation(); if (empty($information['pageDetails'])) { @@ -341,7 +347,11 @@ public function buildJumpToUrlFor(IItem $item) $result['params'] = $parameterList; $result['deep'] = !empty($filterUrl->getSlugParameters()); - $result['url'] = $this->filterUrlBuilder->generate($filterUrl); + $result['url'] = $this->filterUrlBuilder->generate( + $filterUrl, + $information['referenceType'] + ?? ((1 < func_num_args()) ? (int) func_get_arg(1) : UrlGeneratorInterface::ABSOLUTE_PATH) + ); return $result; } diff --git a/src/Render/Setting/ICollection.php b/src/Render/Setting/ICollection.php index 94dfe37cb..562cad2d6 100644 --- a/src/Render/Setting/ICollection.php +++ b/src/Render/Setting/ICollection.php @@ -78,9 +78,10 @@ public function getSettingNames(); /** * Render a filter url for the given item. * - * @param IItem $item The item to generate the filter url for. + * @param IItem $item The item to generate the filter url for. + * @param int $referenceType Optional reference type - mandatory from MetaModels 3.0 on. * * @return array */ - public function buildJumpToUrlFor(IItem $item); + public function buildJumpToUrlFor(IItem $item /**, int $referenceType */); } diff --git a/src/TranslatedMetaModel.php b/src/TranslatedMetaModel.php index aa0f3d131..b83d5aa54 100644 --- a/src/TranslatedMetaModel.php +++ b/src/TranslatedMetaModel.php @@ -114,7 +114,7 @@ public function selectLanguage(string $activeLanguage): string $previousLanguage = $this->getLanguage(); if (!$this->hasTerritorySupport) { - $previousLanguage = \substr($previousLanguage, 0, 2); + $activeLanguage = \substr($activeLanguage, 0, 2); } $this->activeLanguage = $activeLanguage; @@ -136,7 +136,7 @@ public function selectLanguage(string $activeLanguage): string protected function fetchTranslatedAttributeValues(ITranslated $attribute, $ids) { // @deprecated usage of TL_LANGUAGE - remove for Contao 5.0. - $originalLanguage = LocaleUtil::formatAsLocale($GLOBALS['TL_LANGUAGE']); + $originalLanguage = LocaleUtil::formatAsLocale($GLOBALS['TL_LANGUAGE'] ?? 'en'); $GLOBALS['TL_LANGUAGE'] = LocaleUtil::formatAsLanguageTag($this->getLanguage()); try { diff --git a/src/Widgets/TagsWidget.php b/src/Widgets/TagsWidget.php index 86f75ee52..b6744f793 100644 --- a/src/Widgets/TagsWidget.php +++ b/src/Widgets/TagsWidget.php @@ -22,7 +22,9 @@ namespace MetaModels\Widgets; +use Contao\System; use Contao\Widget; +use Symfony\Contracts\Translation\TranslatorInterface; /** * Form field "tags", based on form field by Leo Feyer. @@ -164,9 +166,9 @@ public function generate(): string $count = 0; - /** @psalm-suppress MixedAssignment */ - $langBase = $GLOBALS['TL_LANG']['metamodels_frontendfilter'] ?? []; - assert(\is_array($langBase)); + $translator = System::getContainer()->get('translator'); + assert($translator instanceof TranslatorInterface); + if (\is_array($this->options) && [] !== $this->options) { // Show not filter option. if ((bool) $this->arrConfiguration['includeBlankOption']) { @@ -184,7 +186,7 @@ public function generate(): string $return .= $this->generateOption( [ 'value' => '--all--', - 'label' => (string) ($langBase['select_all'] ?? '') + 'label' => $translator->trans('select_all', [], 'metamodels_filter') ], $count++ ); @@ -194,7 +196,7 @@ public function generate(): string $return .= $this->generateOption($val, $count++); } } else { - $return .= '' . (string) ($langBase['no_combinations'] ?? '') . ''; + $return .= '' . $translator->trans('no_combinations', [], 'metamodels_filter') . ''; } $return .= ''; diff --git a/tests/Filter/Setting/SimpleTest.php b/tests/Filter/Setting/SimpleTest.php index 11437b669..9b87c6622 100644 --- a/tests/Filter/Setting/SimpleTest.php +++ b/tests/Filter/Setting/SimpleTest.php @@ -3,7 +3,7 @@ /** * This file is part of MetaModels/core. * - * (c) 2012-2021 The MetaModels team. + * (c) 2012-2024 The MetaModels team. * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -14,7 +14,8 @@ * @author Christian Schiffler * @author Sven Baumann * @author David Molineus - * @copyright 2012-2021 The MetaModels team. + * @author Ingolf Steinhardt + * @copyright 2012-2024 The MetaModels team. * @license https://github.com/MetaModels/core/blob/master/LICENSE LGPL-3.0-or-later * @filesource */ @@ -27,6 +28,7 @@ use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use Symfony\Component\EventDispatcher\EventDispatcherInterface; +use Symfony\Contracts\Translation\TranslatorInterface; /** * Test simple filter settings. @@ -47,10 +49,11 @@ protected function mockSimpleFilterSetting($properties = []) $filterSetting = $this->getMockForAbstractClass(ICollection::class); $eventDispatcher = $this->getMockForAbstractClass(EventDispatcherInterface::class); $filterUrlBuilder = $this->getMockBuilder(FilterUrlBuilder::class)->disableOriginalConstructor()->getMock(); + $translator = $this->getMockForAbstractClass(TranslatorInterface::class); $setting = $this ->getMockBuilder(Simple::class) - ->setConstructorArgs([$filterSetting, $properties, $eventDispatcher, $filterUrlBuilder]) + ->setConstructorArgs([$filterSetting, $properties, $eventDispatcher, $filterUrlBuilder, $translator]) ->getMockForAbstractClass(); return $setting; @@ -60,11 +63,8 @@ protected function mockSimpleFilterSetting($properties = []) * Add a parameter to the url, if it is auto_item, it will get prepended. * * @param Simple $instance The instance. - * * @param string $url The url built so far. - * * @param string $name The parameter name. - * * @param string $value The parameter value. * * @return string. @@ -80,9 +80,7 @@ protected function addUrlParameter($instance, $url, $name, $value) * Internal convenience method to call the protected generateSql method on the customSql instance. * * @param Simple $instance The instance. - * * @param array $params The filter url parameter array. - * * @param string $paramName The filter url parameter name. * * @return string