Nette 4.0 jaký doplněk na překlady je kompatibilní?
- iru
- Člen | 110
Zdravím a prosím o pomoc.
V původním starém webu jsem používala Kdyby/translation, po převodu na Nette3.2 už nefungovalo, nebylo kompatibilní. Tedy jsem přešla krátce po spuštění Nette 4.0 na tuto verzi, abych mohla zprovoznit překlady. Ale bohužel Kdyby/translation mi u této verze zase nefunguje, protože není kompatibilní. Našla jsem doporučení používat pro novější projekty Contribute/translation. Dobře, zkusila jsem, Composer mi opět hlásí neprovedenou instalaci:
Problem 1
- contributte/translation[dev-nette-2.4, 0.0.1, ..., v0.4.1] require php ^7.1 -> your php version (8.2.0) does not satisfy that requirement.
- contributte/translation[dev-master, v2.0.3, ..., 2.0.x-dev] require nette/routing ^3.0 -> found nette/routing[v3.0.0, ..., v3.0.x-dev] but the package is fixed to 4.0.x-dev (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
- contributte/translation[v0.4.2, ..., v0.9.3] require latte/latte ^2.5 -> found latte/latte[v2.5.0, ..., v2.11.x-dev] but it conflicts with your root composer.json require (^3.0).
- contributte/translation v0.5.0 requires php ^7.2.9 -> your php version (8.2.0) does not satisfy that requirement.
- contributte/translation[v0.6.0, ..., v0.7.1] require php ^7.1.3 -> your php version (8.2.0) does not satisfy that requirement.
- contributte/translation[dev-php74_symfony5, v0.9.4, v1.0.0, ..., v1.1.0] require latte/latte ^2.6 -> found latte/latte[v2.6.0, ..., v2.11.x-dev] but it conflicts with your root composer.json require (^3.0).
- contributte/translation v2.0.0 requires nette/http ^3.0 -> found nette/http[v3.0.0, ..., v3.2.x-dev] but it conflicts with your root composer.json require (^4.0).
- contributte/translation[v2.0.1, ..., v2.0.2] require nette/http ^3.0.7 -> found nette/http[v3.0.7, ..., v3.2.x-dev] but it conflicts with your root composer.json require (^4.0).
- contributte/translation 2.0.x-dev is an alias of contributte/translation dev-master and thus requires it to be installed too.
- Root composer.json requires contributte/translation * -> satisfiable by contributte/translation[dev-master, dev-nette-2.4, dev-php74_symfony5, 0.0.1, ..., v0.9.4, v1.0.0, ..., v1.1.0, v2.0.0, ..., 2.0.x-dev (alias of dev-master)].
Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
You can also try re-running composer require with an explicit version constraint, e.g. "composer require contributte/translation:*" to figure out if any version is installable, or "composer require contributte/translation:^2.1" if you know which you need.
Installation failed, reverting ./composer.json and ./composer.lock to their original content.
Prosím co používáte na překlady s Nette 4.0?
můj composer.json:
"name": "nette/web-project",
"description": "Nette: Standard Web Project",
"keywords": ["nette"],
"type": "project",
"license": ["MIT", "BSD-3-Clause", "GPL-2.0", "GPL-3.0"],
"require": {
"php": ">= 8.0",
"nette/application": "^4.0",
"nette/bootstrap": "^3.2 || ^4.0",
"nette/caching": "^3.2 || ^4.0",
"nette/database": "^4.0",
"nette/di": "^3.2 || ^4.0",
"nette/forms": "^4.0",
"nette/http": "^4.0",
"nette/mail": "^4.0",
"nette/php-generator": "^4.0",
"nette/robot-loader": "^4.0",
"nette/safe-stream": "^3.0",
"nette/security": "^4.0",
"nette/utils": "^4.0",
"latte/latte": "^3.0",
"tracy/tracy": "^2.10 || ^3.0"
},
"require-dev": {
"nette/tester": "^2.0"
},
"autoload": {
"psr-4": {
"App\\": "app/"
}
},
"minimum-stability": "dev"
}
Díky za vaše doporučení. PHP na serveru mám 8.2
- nightfish
- Člen | 517
@iru V composer.json
změň
"nette/http": "^4.0"
na "nette/http": "^3.0"
a zkus
contributte/translation
nainstalovat znovu – na první pohled mi
to přijde jako jediná kolidující verze.
A zkus při composer require
uvést i konkrétní verzi, trošku
to zpřehlední chybové hlášky, protože se composer nebude pokoušet
nainstalovat několik let starou verzi:
composer require contributte/translation:^2
.
- iru
- Člen | 110
nightfish napsal(a):
@iru V
composer.json
změň"nette/http": "^4.0"
na"nette/http": "^3.0"
a zkuscontributte/translation
nainstalovat znovu – na první pohled mi to přijde jako jediná kolidující verze.
A zkus přicomposer require
uvést i konkrétní verzi, trošku to zpřehlední chybové hlášky, protože se composer nebude pokoušet nainstalovat několik let starou verzi:composer require contributte/translation:^2
.
Díky za nápad, tak jsem to zkusila, ale zase tohle:
The "2" constraint for "contributte/translation" appears too strict and will likely not match what you want. See https://getcomposer.org/constraints
./composer.json has been updated
Running composer update contributte/translation
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires nette/http ^3.0, found nette/http[v3.0.0, ..., v3.2.x-dev] but the package is fixed to 4.0.x-dev (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
Problem 2
- Root composer.json requires contributte/translation 2 -> satisfiable by contributte/translation[v2.0.0].
- contributte/translation v2.0.0 requires nette/http ^3.0 -> found nette/http[v3.0.0, ..., v3.2.x-dev] but the package is fixed to 4.0.x-dev (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
Installation failed, reverting ./composer.json and ./composer.lock to their original content.
Zkusila jsem „composer update“ s tou úpravou na „nette/http“: „^3.0“,
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- nette/application dev-master requires nette/http ^4.0 -> found nette/http[dev-master, 4.0.x-dev (alias of dev-master)] but it conflicts with your root composer.json require (^3.0).
- nette/application 4.0.x-dev is an alias of nette/application dev-master and thus requires it to be installed too.
- Root composer.json requires nette/application ^4.0 -> satisfiable by nette/application[4.0.x-dev (alias of dev-master)].
Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
Už jsem z toho docela nešťastná, protože kvůli překladům jsem nechala přeinstalovat celý server, aby měl PHP 8.2 a já mohla používat Nette4.0, kde jsem doufala, že když budu mít aktuální aplikaci, že to už bude fungovat a místo toho nevím stále co s tím…
Editoval iru (20. 11. 2023 19:08)
- nightfish
- Člen | 517
@iru
Vyzkoušel jsem u sebe. Stav je takový, že většina těch balíčků ještě
nemá vydané verze „4“ – kvůli "minimum-stability": "dev"
se však nainstalují i vývojové verze balíčků, které nejsou
kompatibilní s contributte/translation
.
Když upravím composer.json
na:
{
"name": "nette/web-project",
"description": "Nette: Standard Web Project",
"keywords": ["nette"],
"type": "project",
"license": ["MIT", "BSD-3-Clause", "GPL-2.0", "GPL-3.0"],
"require": {
"php": ">= 8.0",
"latte/latte": "^3.0",
"nette/application": "^3.1",
"nette/bootstrap": "^3.2",
"nette/caching": "^3.2 || ^4.0",
"nette/database": "^3",
"nette/di": "^3.1",
"nette/forms": "^3",
"nette/http": "^3",
"nette/mail": "^4.0",
"nette/php-generator": "^4.0",
"nette/robot-loader": "^4.0",
"nette/safe-stream": "^3.0",
"nette/security": "^3",
"nette/utils": "^4.0",
"tracy/tracy": "^2.10 || ^3.0"
},
"require-dev": {
"nette/tester": "^2.0"
},
"autoload": {
"psr-4": {
"App\\": "app/"
}
}
}
(odstraněna minimum-stability
, protože používání této
konfigurace imho není vůbec dobrý nápad; verze nette
balíčků
sníženy na poslední vydané stable verze)
a zavolám composer update
, tak mi pak následně jde zavolat
composer require contributte/translation:^2
a balíček se
v pořádku nainstaluje.
- iru
- Člen | 110
nightfish napsal(a):
@iru
Vyzkoušel jsem u sebe. Stav je takový, že většina těch balíčků ještě nemá vydané verze „4“ – kvůli"minimum-stability": "dev"
se však nainstalují i vývojové verze balíčků, které nejsou kompatibilní scontributte/translation
.Když upravím
composer.json
na:{ "name": "nette/web-project", "description": "Nette: Standard Web Project", "keywords": ["nette"], "type": "project", "license": ["MIT", "BSD-3-Clause", "GPL-2.0", "GPL-3.0"], "require": { "php": ">= 8.0", "latte/latte": "^3.0", "nette/application": "^3.1", "nette/bootstrap": "^3.2", "nette/caching": "^3.2 || ^4.0", "nette/database": "^3", "nette/di": "^3.1", "nette/forms": "^3", "nette/http": "^3", "nette/mail": "^4.0", "nette/php-generator": "^4.0", "nette/robot-loader": "^4.0", "nette/safe-stream": "^3.0", "nette/security": "^3", "nette/utils": "^4.0", "tracy/tracy": "^2.10 || ^3.0" }, "require-dev": { "nette/tester": "^2.0" }, "autoload": { "psr-4": { "App\\": "app/" } } }
(odstraněna
minimum-stability
, protože používání této konfigurace imho není vůbec dobrý nápad; verzenette
balíčků sníženy na poslední vydané stable verze)
a zavolámcomposer update
, tak mi pak následně jde zavolatcomposer require contributte/translation:^2
a balíček se v pořádku nainstaluje.
Moc děkuji za tvoji ochotu. Zkopírovala jsem tvoje sestavení a dala „composer update“
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 20 updates, 0 removals
- Downgrading latte/latte (dev-master 3e0a15a => v3.0.12)
- Downgrading nette/application (dev-master 08a3723 => v3.1.14)
- Downgrading nette/bootstrap (dev-master 0fd3637 => v3.2.1)
- Downgrading nette/caching (dev-master 31a50f4 => v3.2.3)
- Downgrading nette/component-model (dev-master 0b091e3 => v3.0.3)
- Downgrading nette/database (dev-master 7899cbc => v3.1.9)
- Downgrading nette/di (v3.2.x-dev c9ead27 => v3.1.8)
- Locking nette/finder (v3.0.0)
- Downgrading nette/forms (dev-master 82706a0 => v3.1.14)
- Downgrading nette/http (dev-master a20fb8f => v3.2.3)
- Downgrading nette/mail (dev-master 34639bf => v4.0.2)
- Downgrading nette/neon (dev-master 0da28e1 => v3.4.1)
- Downgrading nette/php-generator (dev-master 561dc1a => v4.1.2)
- Downgrading nette/robot-loader (dev-master 3ccc6fd => v4.0.1)
- Downgrading nette/routing (dev-master 859bcbe => v3.0.5)
- Downgrading nette/safe-stream (dev-master b9a275f => v3.0.0)
- Downgrading nette/schema (v1.2.x-dev 22f7675 => v1.2.5)
- Downgrading nette/security (dev-master 40afa82 => v3.1.8)
- Downgrading nette/tester (dev-master c5eff68 => v2.5.1)
- Downgrading nette/utils (dev-master c99f377 => v4.0.3)
- Downgrading tracy/tracy (dev-master aab82d5 => v2.10.5)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 20 updates, 0 removals
- Downloading latte/latte (v3.0.12)
- Downloading nette/utils (v4.0.3)
- Downloading nette/http (v3.2.3)
- Downloading nette/routing (v3.0.5)
- Downloading nette/application (v3.1.14)
- Downloading nette/schema (v1.2.5)
- Downloading nette/robot-loader (v4.0.1)
- Downloading nette/php-generator (v4.1.2)
- Downloading nette/neon (v3.4.1)
- Downloading nette/di (v3.1.8)
- Downloading nette/bootstrap (v3.2.1)
- Downloading nette/caching (v3.2.3)
- Downloading nette/database (v3.1.9)
- Downloading nette/forms (v3.1.14)
- Downloading nette/mail (v4.0.2)
- Downloading nette/safe-stream (v3.0.0)
- Downloading nette/security (v3.1.8)
- Downloading nette/tester (v2.5.1)
- Downloading tracy/tracy (v2.10.5)
- Downgrading latte/latte (dev-master 3e0a15a => v3.0.12): Extracting archive
- Downgrading nette/utils (dev-master c99f377 => v4.0.3): Extracting archive
- Downgrading nette/http (dev-master a20fb8f => v3.2.3): Extracting archive
- Downgrading nette/routing (dev-master 859bcbe => v3.0.5): Extracting archive
- Downgrading nette/component-model (dev-master 0b091e3 => v3.0.3): Extracting archive
- Downgrading nette/application (dev-master 08a3723 => v3.1.14): Extracting archive
- Downgrading nette/schema (v1.2.x-dev 22f7675 => v1.2.5): Extracting archive
- Downgrading nette/robot-loader (dev-master 3ccc6fd => v4.0.1): Extracting archive
- Downgrading nette/php-generator (dev-master 561dc1a => v4.1.2): Extracting archive
- Downgrading nette/neon (dev-master 0da28e1 => v3.4.1): Extracting archive
- Downgrading nette/di (v3.2.x-dev c9ead27 => v3.1.8): Extracting archive
- Downgrading nette/bootstrap (dev-master 0fd3637 => v3.2.1): Extracting archive
- Installing nette/finder (v3.0.0): Extracting archive
- Downgrading nette/caching (dev-master 31a50f4 => v3.2.3): Extracting archive
- Downgrading nette/database (dev-master 7899cbc => v3.1.9): Extracting archive
- Downgrading nette/forms (dev-master 82706a0 => v3.1.14): Extracting archive
- Downgrading nette/mail (dev-master 34639bf => v4.0.2): Extracting archive
- Downgrading nette/safe-stream (dev-master b9a275f => v3.0.0): Extracting archive
- Downgrading nette/security (dev-master 40afa82 => v3.1.8): Extracting archive
- Downgrading nette/tester (dev-master c5eff68 => v2.5.1): Extracting archive
- Downgrading tracy/tracy (dev-master aab82d5 => v2.10.5): Extracting archive
Generating autoload files
No security vulnerability advisories found
Vyzkoušela aplikaci po tomto kroku, zdálo se vše v pořádku. Následně jsem zadala: „composer require contributte/translation:^2“
The "2" constraint for "contributte/translation" appears too strict and will likely not match what you want. See https://getcomposer.org/constraints
./composer.json has been updated
Running composer update contributte/translation
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires contributte/translation 2 -> satisfiable by contributte/translation[v2.0.0].
- contributte/translation v2.0.0 requires nette/finder ^2.5.2 -> found nette/finder[v2.5.2, v2.5.3, v2.5.4, v2.6.0] but the package is fixed to v3.0.0 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
Installation failed, reverting ./composer.json and ./composer.lock to their original content.
- Pavel Kravčík
- Člen | 1195
minimum-stability
, protože používání této konfigurace imho není vůbec dobrý nápad; verzenette
balíčků sníženy na poslední vydané stable verze.
Dovolím si lehce nesouhlasit. V případně, pokud chceš přecházet na
nejnovější verze „rychle“ není to úplně špatný nápad. Ale je dobré
přidat prefer-stable
.
minimum-stability: "dev"
prefer-stable: true
...
nette/di: "^3"
nette/forms: "^3"
some/translation: "master-dev"
A v composeru si vypsat konkrétní vývojové větve, které chceš. Zbytek nechat stabilní. Takhle si vybereš jen konkrétní větve, které chceš a které máš otestované. Poskytne to o trochu větší kontrolu.
- nightfish
- Člen | 517
@iru Mám pocit, že jsi místo
composer require contributte/translation:^2
napsala
composer require contributte/translation:2
, takže jsi po Composeru
chtěla nainstalovat verzi 2(.0.0), která však není kompatibilní s
„novým“ nette/finder balíčkem. Správný zápis verze je ^2
,
který je v tomto případě ve významu >=2.0.0 <3.0.0 a dovolí
nainstalovat verzi 2.0.3, která je kompatibilní i s nette/finder 3.0.0. Jinak s vypnutým
minimum-stability: dev
by nemusel být problém nechat composer,
aby zjistil použitelnou verzi balíčku:
composer require contributte/translation
(bez uvedení verze, mělo
by taktéž nainstalovat 2.0.3).
@PavelKravčík Máš pravdu, že s prefer-stable: true
je minimum-stability: dev
použitelnější, nicméně pro úroveň
znalosti Composeru, kterou v tomto vlákně řešíme, mi to přijde jako
zbytná komplikace a zdroj problémů.
- iru
- Člen | 110
Pavel Kravčík napsal(a):
minimum-stability
, protože používání této konfigurace imho není vůbec dobrý nápad; verzenette
balíčků sníženy na poslední vydané stable verze.Dovolím si lehce nesouhlasit. V případně, pokud chceš přecházet na nejnovější verze „rychle“ není to úplně špatný nápad. Ale je dobré přidat
prefer-stable
.minimum-stability: "dev" prefer-stable: true ... nette/di: "^3" nette/forms: "^3" some/translation: "master-dev"
A v composeru si vypsat konkrétní vývojové větve, které chceš. Zbytek nechat stabilní. Takhle si vybereš jen konkrétní větve, které chceš a které máš otestované. Poskytne to o trochu větší kontrolu.
Já jsem tam to minimum-stability měla, ale nejsem schopna ani v jednom případě nainstalovat contribute/translation, případně něco jiného než contribute/translation, potřebuji hlavně web ve více jazycích. Já myslím, že vícejazyčný web není zase taková výjimka, že už to někdo snad řešil pro Nette 4…
- iru
- Člen | 110
nightfish napsal(a):
@iru Mám pocit, že jsi místo
composer require contributte/translation:^2
napsalacomposer require contributte/translation:2
, takže jsi po Composeru chtěla nainstalovat verzi 2(.0.0), která však není kompatibilní s „novým“ nette/finder balíčkem. Správný zápis verze je^2
, který je v tomto případě ve významu >=2.0.0 <3.0.0 a dovolí nainstalovat verzi 2.0.3, která je kompatibilní i s nette/finder 3.0.0. Jinak s vypnutýmminimum-stability: dev
by nemusel být problém nechat composer, aby zjistil použitelnou verzi balíčku:composer require contributte/translation
(bez uvedení verze, mělo by taktéž nainstalovat 2.0.3).@PavelKravčík Máš pravdu, že s
prefer-stable: true
jeminimum-stability: dev
použitelnější, nicméně pro úroveň znalosti Composeru, kterou v tomto vlákně řešíme, mi to přijde jako zbytná komplikace a zdroj problémů.
Měla jsem tam opravdu „composer require contributte/translation:^2“ kopíruji přes schránku z konzole…
Ale zkusila jsem i tvůj další návrh „composer require contributte/translation“ bez uvedení verze a to vypadá, že konečně prošlo :-)
C:\Users\............................>composer require contributte/translation
./composer.json has been updated
Running composer update contributte/translation
Loading composer repositories with package information
Updating dependencies
Lock file operations: 8 installs, 0 updates, 0 removals
- Locking contributte/translation (v2.0.3)
- Locking symfony/config (v6.3.8)
- Locking symfony/deprecation-contracts (v3.4.0)
- Locking symfony/filesystem (v6.3.1)
- Locking symfony/polyfill-ctype (v1.28.0)
- Locking symfony/polyfill-mbstring (v1.28.0)
- Locking symfony/translation (v6.3.7)
- Locking symfony/translation-contracts (v3.4.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 8 installs, 0 updates, 0 removals
- Downloading symfony/translation-contracts (v3.4.0)
- Downloading symfony/deprecation-contracts (v3.4.0)
- Downloading symfony/translation (v6.3.7)
- Downloading symfony/filesystem (v6.3.1)
- Downloading symfony/config (v6.3.8)
- Downloading contributte/translation (v2.0.3)
- Installing symfony/translation-contracts (v3.4.0): Extracting archive
- Installing symfony/polyfill-mbstring (v1.28.0): Extracting archive
- Installing symfony/deprecation-contracts (v3.4.0): Extracting archive
- Installing symfony/translation (v6.3.7): Extracting archive
- Installing symfony/polyfill-ctype (v1.28.0): Extracting archive
- Installing symfony/filesystem (v6.3.1): Extracting archive
- Installing symfony/config (v6.3.8): Extracting archive
- Installing contributte/translation (v2.0.3): Extracting archive
Generating autoload files
8 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
No security vulnerability advisories found
Using version ^2.0 for contributte/translation
Editoval iru (21. 11. 2023 7:31)
- nightfish
- Člen | 517
iru napsal(a):
Měla jsem tam opravdu „composer require contributte/translation:^2“ kopíruji přes schránku z konzole…
Composer ti vypsal upozornění
The "2" constraint for "contributte/translation" appears too strict and will likely not match what you want.
,
takže se do něj dostala jenom dvojka. Nicméně podle tvého posledního
příspěvku to vypadá, že používáš Windows, takže je možné
všechno – včetně toho, že PowerShell z ^2
udělá
2
(což je nahlášeno jako
chyba Composeru, ovšem z pohledu composeru je to neopravitelné, protože
se o ^
nemá jak dozvědět).
Můžeš si vyzkoušet řešení v podobě
composer require contributte/translation:^^^^2
, to by údajně
mělo na Windows fungovat.
- iru
- Člen | 110
nightfish napsal(a):
iru napsal(a):
Měla jsem tam opravdu „composer require contributte/translation:^2“ kopíruji přes schránku z konzole…Composer ti vypsal upozornění
The "2" constraint for "contributte/translation" appears too strict and will likely not match what you want.
, takže se do něj dostala jenom dvojka. Nicméně podle tvého posledního příspěvku to vypadá, že používáš Windows, takže je možné všechno – včetně toho, že PowerShell z^2
udělá2
(což je nahlášeno jako chyba Composeru, ovšem z pohledu composeru je to neopravitelné, protože se o^
nemá jak dozvědět).Můžeš si vyzkoušet řešení v podobě
composer require contributte/translation:^^^^2
, to by údajně mělo na Windows fungovat.
Ano máš pravdu, používám windows, to bude tím. Potvrzuji, že tvoje řešení pro windows funguje, právě jsem to pro zajímavost vyzkoušela. A třeba to tu pomůže ještě někomu dalšímu v budoucnu. Ještě jednou velké díky!