Contributte/Translation – integrace symfony translation do Nette

před 2 měsíci

ali
Člen | 329
+
0
-

Na logovani chybejicich prekladu slouzi logger

https://github.com/…xtension.php#L28

translation:
   ...
   logger: true

...

services:
    - My\PsrLogger

A jestli je vhodne cely layout obalit do translator makra netusim, osobne tohle to reseni nepouzivam a vzdy pisu celou cestu pro preklad.

Editoval ali (25. 3. 6:19)

před měsícem

johnnie
Backer | 51
+
0
-

Ahojte, ako riesite cache pri develope ? Ak pouzivam neon loader tak ide vsetko v poriadku ak pouzivam Nette Database loader tak musim vzdy zmazat zlozku temp/cache

před měsícem

ali
Člen | 329
+
0
-

@johnnie ono jedina moznost, jak to udelat automaticky je napsat si vlastni cache factory a nahradit tim tu symfonackou pres konfiguraci, osobne DB loadry nepouzivam, pridal jsem to do knihovny jen jako zajimavost, ze to proste jde :-)
Taky by bylo zajimave mit na to tlacitko v tracy baru

Editoval ali (14. 4. 19:21)

před měsícem

d@rkWolf
Člen | 99
+
0
-

Existuje nějaký způsob, jak přidávat/rušit/měnit výchozí jazyky na základě tabulky v DB? Myslím tu konfiguraci, co se dělá v Neonu. Nebo to chce nějak generovat prostě ten Neon soubor?

před 19 dny

d@rkWolf
Člen | 99
+
0
-

@ali ahoj, proč se nepřekládají options položky v Selectu? Mám nadefinované asociativní pole s pár položkama do Selectu a potřebuju je přeložit-je neměnné, je to prostě seznam variant, co je nutno vybrat. Když zadám jako hodnotu normální cestu k překladu, v Tracy se mi ukáží chybějící překlady, přeložím je, chybějící překlady zmízí, ale v tom Selectu vidím furt ty cesty k překladu. Myslel jsem, že pokud nenastavím ->setTranslator(null), tak se položky Selectu mají překladát?

před 19 dny

ali
Člen | 329
+
0
-

@darkWolf o prekladani options v selectu se stara primo Nette/Forms, ty musis akorad nastavit formulari translator

https://github.com/…electBox.php#L96
https://github.com/…eControl.php#L395

před 19 dny

d@rkWolf
Člen | 99
+
0
-

@ali no jo, to je teda sakra divný, proč mi to nepřekládá? translator mám nastavený ve FormFactory přes kterou vytvářím formuláře normálně takto:

<?php
$form = new Form();
$form->setTranslator($this->translator);
?>

Popisky apod. se překládají, nepřekládaj se optiony selectu, taky nefungovaly checkboxy(na front-endu jsem to vyřešil manuálním renderem a ručně přeložením v šabloně, ale tam je jeden malej formulář…v adminu mám hromady formulářů a ručně je vykreslovat nechci, to bych se z toho po…). Vykresluju formuláře přes contributte/forms-bootstrap, ale zkusil jsem je vyhodit a použít UI\Forms a žádný efekt to nepřineslo.

před 18 dny

ali
Člen | 329
+
0
-

@darkWolf zkus tady hodit minimalisticky kod tve form tovarny, kde ti to nefunguje

před 18 dny

d@rkWolf
Člen | 99
+
0
-

@ali takhle nějak:

formFactory.php

<?php
final class FormFactory
{
    use Nette\SmartObject;

    /** @var Translator */
    protected $translator;


    /**
     * FormFactory constructor.
     * @param  Translator          $translator
     */
    public function __construct(Translator $translator)
    {
        $this->translator = $translator;
    }


    /**
     * @return Form
     */
    public function create(): Form
    {
        /** @var BootstrapForm $form */
        $form = new BootstrapForm();
        $form->setTranslator($this->translator);
	return $form
	}
?>

filtersFormFactory.php

<?php
class GalleryFiltersFormFactory
{
    use Nette\SmartObject;

    /** @var FormFactory $factory */
    private $factory;

    /** @var GalleryFiltersRepository */
    private $galleryFiltersRepo;


    public function __construct(FormFactory $factory, GalleryFiltersRepository $galleryFiltersRepo)
    {
        $this->factory = $factory;
        $this->galleryFiltersRepo = $galleryFiltersRepo;
    }


    /**
     * @param  callable $onSuccess
     * @param  callable $onException
     * @return BootstrapForm
     */
    public function create(callable $onSuccess, callable $onException): BootstrapForm
    {
        /** @var BootstrapForm $form */
        $form = $this->factory->create();
        $form->ajax = true;
        $form->renderMode = RenderMode::VERTICAL_MODE;
        $form->addSelect('type', 'admin.gallery_filters.type', $this->galleryFiltersRepo::FILTERS)
			->setPrompt('admin.select_choose')
			->setRequired('admin.field_required');
        $form->addText('name', 'admin.name')
             ->setRequired('admin.field_required')
             ->setMaxLength(100);
		...
		 $form->onSuccess[] = function (BootstrapForm $form, Nette\Utils\ArrayHash $values) use ($onSuccess, $onException): void {
		...
        return $form;
    }
?>

A pole FILTERS

<?php
    const FILTERS = [
        1 => 'admin.gallery_filters.category',
        2 => 'admin.gallery_filters.color',
        3 => 'admin.gallery_filters.finish',
    ];
?>

V selectu pole FILTERS se nepřeloží, Prompt se taky nepřeloží, vše ostatní kde sou kódy pro překladač se přeloží.

Editoval d@rkWolf (8. 5. 9:20)

před 11 dny

kralik
Člen | 186
+
0
-

Ahoj,
nějak se mi nedaří napojit se na NetteDB.
Prosím o radu.

common.neon

extensions:
	translation: Contributte\Translation\DI\TranslationExtension

translation:
	locales:
		whitelist: [en, cs, ru, de]
		default: en
		fallback: [en]
	dirs:
		- %appDir%/lang
	localeResolvers:
		- Contributte\Translation\LocalesResolvers\Router

	loaders:
		nettedatabase: Contributte\Translation\Loaders\NetteDatabase

v adresáři app/lang mám soubor lang-db

table: "languages" # if you specify table key, "messages" from file name will be ignored
id: "key" # id column name, default is "id"
locale: "locale" # locale column name, default is "locale"
message: "message" # message column name, default is "message"

Mooc díky

před 11 dny

ali
Člen | 329
+
0
-

@kralik jak se jmenuje tvuj lang soubor i s priponou a kde ho mas umisteny?

před 10 dny

kralik
Člen | 186
+
0
-

ali napsal(a):

@kralik jak se jmenuje tvuj lang soubor i s priponou a kde ho mas umisteny?

soubor se jmenuje lang-db, nemá příponu.

Uložený je:

projekt
  | - app
       |- lang
            |- lang-db   (měl příponu lang-db.cfg, i lang-db.neon)

Editoval kralik (16. 5. 6:49)

před 10 dny

ali
Člen | 329
+
0
-

@kralik ten soubor musi mit priponu nettedatabase, presne tak jak mas napsan klic u toho loadru

před 9 dny

kralik
Člen | 186
+
0
-

ali napsal(a):

@kralik ten soubor musi mit priponu nettedatabase, presne tak jak mas napsan klic u toho loadru

Soubor má příponu nettedatabase a spojení na DB nefuguje.
Nevím zda tento souboru může být v níže uvedené složce?

projekt/app/lang/lang-db.nettedatabase

Editoval kralik (17. 5. 18:09)

před 9 dny

ali
Člen | 329
+
0
-

@kralik musis i ten nazev dat do akceptovatelneho formatu, viz dokumentace

před 8 dny

kralik
Člen | 186
+
0
-

ali napsal(a):

@kralik musis i ten nazev dat do akceptovatelneho formatu, viz dokumentace

Super, už to funguje.
Škoda, že potřebná konfigurace se musí ukládát do souboru a nejde ji mít v configu (common.neon)

Mohu-li rád bych se zeptal jak šikovně vyřešit překlad celých stránek?

Díky

před 7 dny

ali
Člen | 329
+
0
-

@kralik co myslis tim preklad celych stranek?

před 6 dny

kralik
Člen | 186
+
0
-

ali napsal(a):

@kralik co myslis tim preklad celych stranek?

například překlad článku blogu.
Nebo stránku „O nás“ mít ve více jazycích.

Jak se toto šikovně řeší?

Díky