Contributte/Translation – integrace symfony translation do Nette

ali
Člen | 342
+
+21
-

Contributte/Translation (v2.0.0)

>> dokumentace <<

Editoval ali (14. 7. 2022 12:07)

Mysteria
Člen | 797
+
+1
-

Super, poslední komponenta, který mě držela na Nette 2.4. Tady jsou moje poznatky z jejího použití:

  1. Vyžaduje "nette/utils": "^2.5 || ^3.0", ale je kompatibilní pouze s "nette/utils": "^3.0", protože nesedí rozhraní ITranslatoru s implementací Translatoru.
  2. TranslatorExtension není kompatibilní s nette/di v3.0.0-RC3 (Service latte.latteFactory: Nette\DI\Definitions\FactoryDefinition::addSetup() is deprecated, use ->getResultDefinition()->addSetup())
  3. Nepodporuje n:translation makro, takže je nutné psát vždy celé cesty, což by se asi taky hodilo „vypůjčit“ :)

Na jeden privátní projekt jsem to nasadil, protože jednička se vyřešila s migrací komplet na Nette 3.0, dvojka „jenom“ generuje warningy a trojku jsem upravil na celé cesty, protože tam bylo jenom pár překladů. :) Těším se na další verze.

ali
Člen | 342
+
+1
-

@Mysteria diky za feedback

  1. Pozustatek z testovani, zavislosti upraveny
  2. Opraveno, nevim jak mi to mohlo uniknout
  3. Makro dodelano, udelal jsem to trosku jinak nez v Kdyby

Vydal jsem verzi 0.0.2, ve ktere tyto veci jiz jsou.

F.Vesely
Člen | 368
+
0
-

Super nápad, vypadá to pěkně. Osobně z Kdyby hlavně využívám PrefixedTranslator na formuláře a featurku s ‚//‘ na začátku.

ali
Člen | 342
+
+2
-

@FVesely dodelano do verze 0.0.3

sucho
Člen | 57
+
0
-

Na backende sa to používa stále klasicky ako v Symfony?
$this->translator->translate(homepage.header.home);

h4kuna to mal pekne vyriešené skrátenou verziou
https://github.com/…ettext-latte#…

ale dokážem s tým žiť už som si zvykol :D

Mysteria
Člen | 797
+
0
-

Tak jsem upgradoval. :) Potvrzuji, že předchozí tři chyby vyřešeny, nicméně stále mi nefunguje makro n:translator, respektive nepřekládá.

<table>
    <thead n:translator='common.template.table.thead'>
        <tr>
            <th>{_name}</th>
        </tr>
	</thead>
</table>

Co jsem koukal do kódu tak problém je v různém parsování, protože celé makro {_common.template.table.thead.name} udělá domain=common a id=template.table.thead.name, ale n:translator makro udělá domain=common.template.table.theadid=name.

Díky za rychlé řešení objevených problémů, jen tak dál. :)

EDIT: Nemělo by v šabloně místo

$this->global->translator->domain = "common.template.table.thead";

být něco jako

$this->global->translator->domain = "common";
$this->global->translator->prefix = "template.table.thead";

a v Translatoru pak místo

} elseif ($this->domain !== null) {
	$domain = $this->domain;
}

něco jako

} elseif ($this->domain !== null && $this->prefix !== null) {
	$domain = $this->domain;
	$id = sprintf('%s.%s', $this->prefix, $id);
}

Editoval Mysteria (29. 3. 2019 23:41)

ali
Člen | 342
+
+1
-

@Mysteria myslel jsem, ze se do toho makra zadavala pouze domena, ale ono slo o regulerni prefix :-) predelano ve verzi 0.0.4

@sucho ano, klasicky jako v „Symfony“

Editoval ali (30. 3. 2019 9:39)

Mysteria
Člen | 797
+
+1
-

Super, verze 0.0.4 mi už funguje přesně tak jako předtím Kdyby\Translation. Díky! :)

Editoval Mysteria (30. 3. 2019 14:48)

F.Vesely
Člen | 368
+
+1
-

Podle me by ten prefix nemel byt primo ve tride Translator. Pokud totiz budu mit na jedne strance vice formularu a kazdemu budu chtit predat Tranlator s jinym prefixem, tak to nepujde. Kdyby to resilo PrefixedTranslatorem.

ali
Člen | 342
+
0
-

@FVesely a ty si do formularu predavas novou instanci PrefixedTranslator?

Editoval ali (30. 3. 2019 20:00)

F.Vesely
Člen | 368
+
0
-

@ali Ano, Translator ma metodu domain(string $prefix), ktera vraci PrefixedTranslator viz https://github.com/…anslator.php#…

Ten PrefixedTranslator vlastne dela jen to, ze vola translate z Translatoru s danym prefixem.

ali
Člen | 342
+
0
-

@FVesely vyzkousej verzi 0.0.5

duskohu
Člen | 778
+
0
-

Ahoj, chcel by som si pridat DatabaseLoader, ked to riesim takto, tak to nestaci a nenacita sa, vies mi poradit ako to riesit?

//loadConfiguration
$builder->addDefinition($this->prefix('databaseLoader'))->setFactory(DatabaseLoader::class);

// beforeCompile
$translator = $builder->getDefinition('translation.translator');
$translator->addSetup('addLoader', ['databaseLoader', '@' . $this->prefix('databaseLoader')]);
ali
Člen | 342
+
0
-

@duskohu loader si muzes jednoduse pridat pres konfiguraci

translation:
	loader:
		extension: My\Loader
duskohu
Člen | 778
+
0
-

ali napsal(a):

@duskohu loader si muzes jednoduse pridat pres konfiguraci

translation:
	loader:
		extension: My\Loader

@ali , o ten zapis som mal v extension, ale aj ked ho pridam cez neon tak sa nenacita

translation:
    locales:
        default: sk
    loaders:
        database: Nas\TranslateModule\DI\Translator\DatabaseLoader
ali
Člen | 342
+
0
-

@duskohu a mas ho v DI kontejneru?

*edit
koukam na to, ze ty loadry spusti metodu load jen tehdy, pokud najdou dany soubor, coz pri DB neni mozne. Mozna proto tohle to bylo v Kdyby podporovane v jinaci vetvi

Editoval ali (1. 4. 2019 15:02)

duskohu
Člen | 778
+
0
-

ali napsal(a):

@duskohu a mas ho v DI kontejneru?

*edit
koukam na to, ze ty loadry spusti metodu load jen tehdy, pokud najdou dany soubor, coz pri DB neni mozne. Mozna proto tohle to bylo v Kdyby podporovane v jinaci vetvi

@ali to bude asi v tom, a dalsia vec nejako nefunguje, stale mi spracuvava len HeaderLocaleResolvers, aj ked mam u vurl locale.

ali
Člen | 342
+
0
-

@duskohu ohledne DB loadru, v Symfony dokumentaci mas napsano jak na to: https://symfony.com/…ic_tags.html#…

neznamy_uzivatel
Člen | 115
+
0
-

Ahoj, nějak jsem se zamotal do těch závislostí :(
Je to funkční pouze s php 7.1.3?

Mám možnost 7.0.33, nebo 7.2.16, ale píše mi to
symfony/translation v4.2.5 requires php ^7.1.3 → your PHP version (7.0.33) (nebo 7.2.16)
Debian má aktuálně 7.0.33, na tom to tedy nerozjedu?
Co znamená ^ před verzí? >, <, =? Nebo 7.1.cokoliv?

CZechBoY
Člen | 3608
+
+1
-

@neznamy_uzivatel Trosku Googleni nezaskodi…
https://jubianchi.github.io/semver-check/#/^7.1.3/7.2.16

neznamy_uzivatel
Člen | 115
+
0
-

ok, díky, ani jsem nevěděl jak pojmenovat co hledám. :)
Problém byl v composer.json „platform“: { „php“: „7.1“ }, ignorovalo to novější php, stačilo přepsat na 7.2 a jede to

ali
Člen | 342
+
+6
-

S @chemix a @Felix jsme se dohodli, ze tento repozitar presuneme pod kridla Contributte, takze se vydala nova verze 0.1.0, ktera krome jednoho BC breaku (zmena namespace) obsahuje par dalsich vylepsenich, vice v release notes.

jikki
Člen | 73
+
0
-

Ahoj, poraďte prosím jak rozjet překlad formulářů. Funguje mi pouze překlad v šablonách.

V common.neon mám:

extensions:
	translation: Contributte\Translation\DI\TranslationExtension

translation:
    locales:
        default: cs
    dirs:
        - ..\App\Lang

v BasePresenteru chci mít $translator, který pak nastavím formulářům (podobně jak to bylo s Kdyby/Translation), ale nefunguje mi to.

<?php
    /** @var \Contributte\Translation\Translator @inject */
    public $translator;
?>

Děkuji za pomoc

ali
Člen | 342
+
+2
-

Injectuj Nette\Localization\ITranslator

jikki
Člen | 73
+
0
-

ali napsal(a):

Injectuj Nette\Localization\ITranslator

Díky moc

MajklNajt
Člen | 470
+
0
-

ahoj, v kdyby/translation šlo pridávať zdroje aj v ďalších extensions (pomocou ITranslationProvider), plánuje sa tu táto možnosť príp. alternatíva? …momentálne to je spravené napevno iba z config-u https://github.com/…xtension.php#L177

ali
Člen | 342
+
0
-

@MajklNajt pokud te dobre chapu, tak v dalsich extensionech muzes zdroje pridavat treba takhle:

public function beforeCompile(): void
{
	$defName = $builder->getByType(Nette\Localization\ITranslator::class);

	if ($defName !== null) {
		$translator = $builder->getDefinition($defName);

		$translator->addSetup('addResource', ['neon', 'path', 'locale', 'domain']);
	}
}

Ale jak koukam jak to funguje v Kdyby, tak to bude asi pohodlnejsi reseni..

MajklNajt
Člen | 470
+
0
-

@ali týmto spôsobom by som pre pridanie celého adresáru musel doslova skopírovať 20 riadkov z TranslationExtension, čo mi nepríde moc efektívne…

U kdyby sa mi práve páči to využitie interface, takže teoreticky stačí zaregistrovať jednu službu, ktorá ho implementuje a TranslationExtension si ich vytiahne sama z DI :)

Editoval MajklNajt (13. 5. 2019 10:27)

MajklNajt
Člen | 470
+
0
-

@ali pridal TranslationProviderInterface, vďaka ktorému môžeme načítať preklady z extensions, veľká vďaka za rýchlosť :)

Nastáva však otázka, ktoré preklady majú mať vyššiu prioritu?

  1. importované preklady z extensions alebo
  2. vlastné preklady v projekte (adresáre defnované v config.neon – napr. %appDir%/lang)

Aktuálne to funguje prvým spôsobom, no ja myslím, že použiteľnejšia je druhá možnosť, čo na to ostatní?

Phalanx
Člen | 310
+
+2
-

@MajklNajt Taky jsem pro 2 možnost. V projektu mají být konkrétní překlady, ve vendoru obecné.

Felix
Nette Core | 1183
+
+1
-

MajklNajt napsal(a):

@ali týmto spôsobom by som pre pridanie celého adresáru musel doslova skopírovať 20 riadkov z TranslationExtension, čo mi nepríde moc efektívne…

U kdyby sa mi práve páči to využitie interface, takže teoreticky stačí zaregistrovať jednu službu, ktorá ho implementuje a TranslationExtension si ich vytiahne sama z DI :)

Osobne radeji jdu jinaci cestou, podobnou jako @ali nastinil, pouzivame v nettrine/orm.

Mame na to traitu (https://github.com/…yMapping.php), kterou staci jenom pouzit.

Napr.

use TTranslationResource;

public function beforeCompile(): void
{
    $this->addTranslationResource(['neon', 'path', 'locale', 'domain']);
}

Je to IMHO o trochu vice predvidatelne, nez delat interface a vytahovat si podle nej cizi CompilerExtension. Tam clovek nikdy nevi, kdy chce jakou operaci provest.

V nasem pripade si to clovek managuje sam a urci si presne kdy si to chce zavolat. Pak se v pohode muze doimplementovat napriklad prioritizovani. append/prependTranslationResource(...).

kiCkZ
Člen | 153
+
0
-

Jak by jste řešili odchytávání nepřeložených překladů ? Bohužel v tomto balíčku to není vůči zachycení nijak řešené oproti Kdyby, kdy bylo PsrLogger. Díky

marek-m
Člen | 66
+
0
-

duskohu napsal(a):

ali napsal(a):

@duskohu a mas ho v DI kontejneru?

*edit
koukam na to, ze ty loadry spusti metodu load jen tehdy, pokud najdou dany soubor, coz pri DB neni mozne. Mozna proto tohle to bylo v Kdyby podporovane v jinaci vetvi

@ali to bude asi v tom, a dalsia vec nejako nefunguje, stale mi spracuvava len HeaderLocaleResolvers, aj ked mam u vurl locale.

aj mne to dost dlho trvalo, ale ked to chces rozbehnut tak vytvoris subor narp. messages.sk_SK.nettedatabase – trochu cudne, ale len takto to pojde

ali
Člen | 342
+
+1
-

@marek-m muzes se podelit, co ti konretne dlouho trvalo pochopit? Vsechno ohledne DB loadru je popsane v dokumentaci , ale je mozne, ze nektere veci budou mene pochopitelne, tak rad uvitam nejaky impulz, kde to vylepsit.

marek-m
Člen | 66
+
0
-

ali napsal(a):

@marek-m muzes se podelit, co ti konretne dlouho trvalo pochopit? Vsechno ohledne DB loadru je popsane v dokumentaci , ale je mozne, ze nektere veci budou mene pochopitelne, tak rad uvitam nejaky impulz, kde to vylepsit.

loader symfony, asi od novej verzie hlada subor s priponou pozadovaneho sposobu – tak nejako som to v kode pochopil, cize ked som rozbehaval nettedatabase tak som vytvoril subor messages.sk_SK.nettedatabase a nasledne mi to zacalo fungovat — neviem, uz som do dalej neriesil

iru
Člen | 110
+
0
-

Prosím pomůžete mi rozchodit Contributte Translation? Nainstalovala jsem pomocí composeru a provedla nastavení ale hlásí mi to chybu:
Declaration of Contributte\Translation\Loaders\Neon::load($resource, $locale, $domain = ‚messages‘) must be compatible with Symfony\Component\Translation\Loader\LoaderInterface::load($resource, string $locale, string $domain = ‚messages‘)

Mám PHP 7.1
Composer:

"require": {
		"php": ">= 7.1",
		"nette/application": "^3.0",
		"nette/bootstrap": "^3.0",
		"nette/caching": "^3.0",
		"nette/database": "^3.0",
		"nette/di": "^3.0",
		"nette/finder": "^2.5",
		"nette/forms": "^3.0",
		"nette/http": "^3.0",
		"nette/mail": "^3.0",
		"nette/robot-loader": "^3.0",
		"nette/security": "^3.0",
		"nette/utils": "^3.0",
		"latte/latte": "^2.5",
		"tracy/tracy": "^2.6",
		"nextras/form-components": "^1.0",
		"contributte/translation": "^0.6.0"
	},
	"require-dev": {

common.neon:

extensions:
    translation: Contributte\Translation\DI\TranslationExtension

translation:
    locales:
        whitelist: [en, cs, sk]
        default: en
        fallback: [en]
    loaders:
            nettedatabase: Contributte\Translation\Loaders\NetteDatabase
    localeResolvers:
            - Contributte\Translation\LocalesResolvers\Router

V databázi vytvořenou tabulku podle tohoto příkladu: https://contributte.org/…slation.html#…
Zkoušela jsem to s verzí v souboru, ale problém byl stejný. Budu vděčná za radu.

Marek Bartoš
Nette Blogger | 1146
+
0
-

@iru Řekl bych, že se ti nainstalovalo symfony/translation v5, které není kompatibilní s php 7.1
https://github.com/…tion/pull/18

iru
Člen | 110
+
0
-

Díky @Mabar jestli jsem to dobře pochopila, tak tam píšou, že verze symfony 4.4 je OK, ale v mém případě asi není:

Declaration of Symfony\Component\Translation\TranslatorInterface::setLocale($locale) must be compatible with Symfony\Contracts\Translation\LocaleAwareInterface::setLocale(string $locale)

Zkoušela jsem verzi 4.4 a 4.4.0, v obou případech to samé a při nižší verzi mi composer hlásí chybu, že není kompatibilní s contribute/translation 6.0

Poté jsem zjistila, že jsem si stáhla xampp z odkazu kde bylo psáno, že se jedná o verzi PHP 7.1, verzi 7.2. Nicméně na serveru mám správně 7.1. Takže jsem nainstalovala už správný xampp se 7.1, což mi ale problém nevyřešilo, při novém pokusu instalace contribute/translator compser hlásí:
Using version ^0.6.0 for contributte/translation…
Problem 1
 – sympfony/config v.5.0.4 requires php ^7.2.5 → your PHP version 7.1.33 does not satifistz that requirement

Instalation failed, reverting…

Je nějaká funkční kombinace pro PHP 7.1, kterou bych zadala do composeru a přes update natáhla? Případně dá se to nějak rozchodit?

Editoval iru (20. 2. 2020 17:48)

ali
Člen | 342
+
0
-

Pokud mas vse spravne nastaveno, composer ti nainstaluje spravnou verzi Symfony.

Pri verzi 7.1 ti nainstaluje Symfony 4.4
Pri verzi 7.2 ti nainstaluje Symfony 5.0

Nemas ve svem composeru vynuceny nejaky Symfony balicek?
Co ti vypise tento prikaz: php -v

Editoval ali (21. 2. 2020 6:56)

iru
Člen | 110
+
0
-

@ali vypíše mi:
PHP 7.1.33 <cli> <built: Oct 23 2019 09:24:14 <ZTS MSVC14 <Visual C++ 2015> x64>
Copyright <c> 1997–2018 The PHP Group
Zend Engine v.3.1.0, Copyright<c> 1998–2018 Zend Technologies

Neměla jsem vynucenou verzi Symfony, composer:
„require“: {
„php“: „>= 7.1“,
„nette/application“: „^3.0“,
„nette/bootstrap“: „^3.0“,
„nette/caching“: „^3.0“,
„nette/database“: „^3.0“,
„nette/di“: „^3.0“,
„nette/finder“: „^2.5“,
„nette/forms“: „^3.0“,
„nette/http“: „^3.0“,
„nette/mail“: „^3.0“,
„nette/robot-loader“: „^3.0“,
„nette/security“: „^3.0“,
„nette/utils“: „^3.0“,
„latte/latte“: „^2.5“,
„tracy/tracy“: „^2.6“,
„nextras/form-components“: „^1.0“

},

Ale i tak jsem předtím měla naistalovaný Contributte 0.6.0 a vynutila jsem symfony 4.4 a vyhodilo mi to na webu tuto chybu:
`Declaration of Symfony\Component\Translation\TranslatorInterface::setLocale($locale) must be compatible with Symfony\Contracts\Translation\LocaleAwareInterface::setLocale(string $local

ali
Člen | 342
+
0
-

Vytvoril jsem si tento composer:

{
	"require": {
		"php": "^7.1",
		"nette/application": "^3.0",
		"nette/bootstrap": "^3.0",
		"nette/caching": "^3.0",
		"nette/database": "^3.0",
		"nette/di": "^3.0",
		"nette/finder": "^2.5",
		"nette/forms": "^3.0",
		"nette/http": "^3.0",
		"nette/mail": "^3.0",
		"nette/robot-loader": "^3.0",
		"nette/security": "^3.0",
		"nette/utils": "^3.0",
		"latte/latte": "^2.5",
		"tracy/tracy": "^2.6",
		"nextras/form-components": "^1.0",
		"contributte/translation": "^0.6.0"
	}
}

Zapnul PHP 7.1 a vsechno se mi normalne nainstalovalo

Microsoft Windows [Version 10.0.18362.657]
(c) 2019 Microsoft Corporation. Všechna práva vyhrazena.

C:\Users\Ales\Desktop\s>php -v
PHP 7.1.33 (cli) (built: Oct 23 2019 09:24:14) ( ZTS MSVC14 (Visual C++ 2015) x64 )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

C:\Users\Ales\Desktop\s>composer install
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 27 installs, 0 updates, 0 removals
  - Installing nette/utils (v3.1.1): Loading from cache
  - Installing nette/http (v3.0.3): Loading from cache
  - Installing nette/component-model (v3.0.0): Loading from cache
  - Installing nette/forms (v3.0.3): Loading from cache
  - Installing nette/routing (v3.0.0): Loading from cache
  - Installing nette/application (v3.0.4): Loading from cache
  - Installing nextras/form-components (v1.0.0): Downloading (100%)
  - Installing symfony/polyfill-ctype (v1.14.0): Loading from cache
  - Installing symfony/filesystem (v4.4.4): Downloading (100%)
  - Installing symfony/config (v4.4.4): Loading from cache
  - Installing symfony/polyfill-mbstring (v1.14.0): Loading from cache
  - Installing symfony/translation-contracts (v1.1.7): Downloading (100%)
  - Installing symfony/translation (v4.4.4): Loading from cache
  - Installing nette/schema (v1.0.2): Loading from cache
  - Installing nette/neon (v3.1.1): Loading from cache
  - Installing nette/finder (v2.5.2): Loading from cache
  - Installing nette/robot-loader (v3.2.2): Downloading (100%)
  - Installing nette/php-generator (v3.3.4): Loading from cache
  - Installing nette/di (v3.0.3): Loading from cache
  - Installing latte/latte (v2.6.1): Loading from cache
  - Installing contributte/translation (v0.6.0): Loading from cache
  - Installing nette/bootstrap (v3.0.1): Loading from cache
  - Installing nette/caching (v3.0.1): Loading from cache
  - Installing nette/database (v3.0.6): Downloading (100%)
  - Installing nette/mail (v3.1.0): Loading from cache
  - Installing nette/security (v3.0.3): Downloading (100%)
  - Installing tracy/tracy (v2.7.2): Loading from cache
nette/utils suggests installing ext-intl (to use Strings::webalize(), toAscii(), normalize() and compare())
symfony/config suggests installing symfony/yaml (To use the yaml reference dumper)
symfony/translation suggests installing symfony/yaml
symfony/translation suggests installing psr/log-implementation (To use logging capability in translator)
tracy/tracy suggests installing https://nette.org/en/donate (Please support Tracy via a donation)
Writing lock file
Generating autoload files

C:\Users\Ales\Desktop\s>
iru
Člen | 110
+
0
-

@ali zkusila jsem restartovat PC a ještě jednou, ale bohužel

C:\Users\Iveta\Documents\WWW>cd web-cestovani_2020_nette3

C:\Users\Iveta\Documents\WWW\web-cestovani_2020_nette3>composer require contribu
tte/translation
Using version ^0.6.0 for contributte/translation
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

Problem 1
 – symfony/config v5.0.4 requires php ^7.2.5 → your PHP version (7.1.33) doe
s not satisfy that requirement.
 – symfony/config v5.0.4 requires php ^7.2.5 → your PHP version (7.1.33) doe
s not satisfy that requirement.
 – Installation request for symfony/config (locked at v5.0.4) → satisfiable
by symfony/config[v5.0.4].

Installation failed, reverting ./composer.json to its original content.

C:\Users\Iveta\Documents\WWW\web-cestovani_2020_nette3>

Šaman
Člen | 2632
+
0
-

Iru: Asi ukaž celý composer. Co máš v platform za verzi PHP?

Teď jsem to zkoušel podle Aliho composeru a nainstalovalo se to v pohodě (PHP 7.1.33), pak jsem tam dohrál zbytek projektu a composeru ze sandboxu a composer update si začal stěžovat na předefinovanou verzi PHP v platform na 7.1, která nedostačovala. Po úpravě na 7.1.3 to funguje. Překlady jsou v příslušném panelu na debug baru, dál jsem to nezkoumal.

composer:

{
	"name": "nette/sandbox",
	"description": "The sandbox is a pre-packaged Nette Framework project, basic configured structure for your application.",
	"homepage": "https://nette.org",
	"type": "project",
	"license": ["BSD-3-Clause", "GPL-2.0", "GPL-3.0"],
	"authors": [
		{
			"name": "David Grudl",
			"homepage": "https://davidgrudl.com"
		},
		{
			"name": "Nette Community",
			"homepage": "https://nette.org/en/contributors?lang=en"
		}
	],
	"require": {
		"php": "^7.1",
		"nette/application": "^3.0",
		"nette/bootstrap": "^3.0",
		"nette/caching": "^3.0",
		"nette/database": "^3.0",
		"nette/di": "^3.0",
		"nette/finder": "^2.5",
		"nette/forms": "^3.0",
		"nette/http": "^3.0",
		"nette/mail": "^3.0",
		"nette/robot-loader": "^3.0",
		"nette/security": "^3.0",
		"nette/utils": "^3.0",
		"latte/latte": "^2.5",
		"tracy/tracy": "^2.6",
		"nextras/form-components": "^1.0",
		"contributte/translation": "^0.6.0"
	},
	"require-dev": {
		"nette/tester": "^2.0"
	},
	"autoload": {
		"classmap": ["app/Bootstrap.php"]
	},
	"minimum-stability": "stable",
	"config": {
		"platform": {
			"php": "7.1.3"
		}
	}
}

Problém byl v tom posledním řádku, kde je v sandboxu definovaná verze 7.1

Editoval Šaman (21. 2. 2020 11:10)

iru
Člen | 110
+
0
-

@Šaman

Můj composer:
{
„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“: „>= 7.1“,
„nette/application“: „^3.0“,
„nette/bootstrap“: „^3.0“,
„nette/caching“: „^3.0“,
„nette/database“: „^3.0“,
„nette/di“: „^3.0“,
„nette/finder“: „^2.5“,
„nette/forms“: „^3.0“,
„nette/http“: „^3.0“,
„nette/mail“: „^3.0“,
„nette/robot-loader“: „^3.0“,
„nette/security“: „^3.0“,
„nette/utils“: „^3.0“,
„latte/latte“: „^2.5“,
„tracy/tracy“: „^2.6“,
„nextras/form-components“: „^1.0“
},
„require-dev“: {
„nette/tester“: „^2.0“
},
„autoload“: {
„classmap“: [„app/Bootstrap.php“]
},
„minimum-stability“: „stable“
}

je původní stažení v balíčku s nette3, to co tam máš dole tam není…
Verze PHP je 7.1.33

Editoval iru (21. 2. 2020 11:58)

Šaman
Člen | 2632
+
0
-

Zkus si teda to "contributte/translation": "^0.6.0" vložit přímo do composer.json. A případně založit z tohoto composeru projekt v novém adresáři. (Vezmi ten můj composer do nového prázdného adresáře a dej composer install).
Když to projde bez problémů, tak tam dohraj ze sandboxu všechny ostatní soubory a adresáře.

Nevím v čem je problém, ale evidentně existuje funkční kombinace Nette3 + contributte/translation na PHP 7.1.3.

P.S. Případně ti mohu poslat composer.lock, ten obsahuje už konkrétní verze úspěšně naistalovaných knihoven.

Editoval Šaman (21. 2. 2020 12:15)

jiri.pudil
Nette Blogger | 1028
+
0
-
  • Installation request for symfony/config (locked at v5.0.4) → satisfiable by symfony/config[v5.0.4].

Podle toho „locked at v5.0.4“ bych tipoval, že máš symfony/config v dané verzi už nainstalovaný a zapsaný v composer.lock, nejspíš jako pozůstatek z předchozích pokusů. Zkusil bych v první řadě spustit composer update, tím by se měly přebytečné balíčky odinstalovat a potom už by composer require contributte/translation měl projít a nainstalovat správnou verzi pro PHP 7.1

iru
Člen | 110
+
0
-

@Šaman děkuji moc, konečně jsem přes to dostala… pomohlo mi do composeru natvrdo vložit „contributte/translation“: „^0.6.0“ a dala jsem composer update, tentokrát se natáhlo vše v pořádku.

C:\Users\Iveta\Documents\WWW\web-cestovani_2020_nette3>composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 7 installs, 1 update, 0 removals
 – Updating nette/robot-loader (v3.2.1 ⇒ v3.2.2): Downloading (100%)
 – Installing symfony/polyfill-ctype (v1.14.0): Loading from cache
 – Installing symfony/filesystem (v4.4.4): Downloading (100%)
 – Installing symfony/config (v4.4.4): Downloading (100%)
 – Installing symfony/polyfill-mbstring (v1.14.0): Loading from cache
 – Installing symfony/translation-contracts (v1.1.7): Downloading (connecting..
Downloading (100%)
 – Installing symfony/translation (v4.4.4): Downloading (100%)
 – Installing contributte/translation (v0.6.0): Loading from cache
symfony/config suggests installing symfony/yaml (To use the yaml reference dumpe
r)
symfony/translation suggests installing symfony/yaml
symfony/translation suggests installing psr/log-implementation (To use logging c
apability in translator)
Writing lock file
Generating autoload files

C:\Users\Iveta\Documents\WWW\web-cestovani_2020_nette3>

moc děkuji

iru
Člen | 110
+
0
-

@jiripudil ano asi to tak bylo…

d@rkWolf
Člen | 162
+
0
-

Zdravím @ali, asi blbě hledám, nebo tomu nerozumím…Tracy mi zobrazuje nepřeložené texty, jde nějak nastavit, aby se ukládaly do Neonu k překladu, nebo při použití DB loaderu do DB, nebo kam takovou věc navěsit, vyhledávat/vytahovat to ručně je dost neefektivní?

A ještě jedna věc, je vhodné řešení kvůli globálnímu nastavení překladové domény pro celý modul(front/admin/whatever, chci mít něco jako front.cs.latte, front.en.latte, admin.cs.latte apod.) obalit výchozí šablonu modulu @layout.latte celou do {translator front/admin} makra? Nebo je na to nějaké jiné řešení?