Factory ‚NetteTranslator\Gettext::getTranslator‘ is not callable

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Saja
Člen | 7
+
0
-

Zdravím, postupoval jsem podle návodu zde: https://componette.org/search/?…

Soubory jsem nahrál do lib/NetteTranslator a po obnovení stránky mi napíše laděnka tuto chybu:
Factory NetteTranslator\Gettext::getTranslator‘ is not callable

mám nejnovější verzi Nette pro PHP 5.2

Mohl by mi někdo poradit, kde bude problém? Díky

config:
`#
# SECURITY WARNING: it is CRITICAL that this file & directory are NOT accessible directly via a web browser!
#
# If you don't protect this directory from direct web access, anybody will be able to see your passwords.
# https://nette.org/…rity-warning
#
common:
parameters:

lang: cs

php:
date.timezone: Europe/Prague
# session.save_path: „%tempDir%/sessions“
# zlib.output_compression: yes

nette:
session:
expiration: ‚+ 14 days‘

database:
default:
dsn: ‚%database.driver%:host=%database.host%;dbname=%database.dbname%‘
user: %database.user%
password: %database.password%

services:
database: @\NConnection

authenticator: Authenticator( @database::table(accounts) )

translator:
factory: NetteTranslator\Gettext::getTranslator
setup:
- addFile(%appDir%/languages, front)
- NetteTranslator\Panel::register

factories:

production < common:

development < common:`

kralik
Člen | 230
+
0
-

Ahoj Nettáci,
zkoušel jsem to také dle kuchařky, ale bohužel mám stejný problém.

Prosím, poraďte někdo.

PHP/5.3.5, Nette Framework 2.0.8

mooc díky

redhead
Člen | 1313
+
0
-

Zkusil si promazat temp složku?

Editoval redhead (25. 2. 2013 14:39)

kralik
Člen | 230
+
0
-

jasně
to bylo první co jsem udělal, když se mi objevila tato chyba.

redhead
Člen | 1313
+
0
-

Hm, zkusil jsem (Nette 2.0.8) a mě to v pohodě jede.

kralik
Člen | 230
+
0
-

Prosím a poradil bys mi v čem může být problém?
Vůbec netuším kde mám hledat.

Nevím zda je problém v config.neon nebo v Presenterech.

Vše mám stejné jako v kuchařce.

Mooc díky

můj config.neon

<?php
#
# SECURITY WARNING: it is CRITICAL that this file & directory are NOT accessible directly via a web browser!
#
# If you don't protect this directory from direct web access, anybody will be able to see your passwords.
# https://nette.org/en/security-warning
#
common:
	parameters:
		lang: cs
	php:
		date.timezone: Europe/Prague

	nette:
		application:
			errorPresenter: Error

		database:
			dsn: 'mysql:host=localhost;dbname=sb_di'
			user: jmeno
			password: heslo

		session:
			expiration: 14 days


	services:
		authenticator: Authenticator
		translator:
			create: NetteTranslator\Gettex::getTranslator
			setup:
				- addFile(%appDir%/lang, front)
				- NetteTranslator\Panel::register
		translatorPanel:
				class: NetteTranslator\Panel
				arguments: ['@myContext']
				run: true
		obedyRepository: Todo\ObedyRepository(@nette.database.default)
		userRepository: Todo\UserRepository(@nette.database.default)
		listRepository: Todo\ListRepository(@nette.database.default)


	factories:

production < common:

development < common:

?>

Můj bootstrap.php

<?php
<?php

/**
 * My Application bootstrap file.
 */
use Nette\Application\Routers\Route;

// Load Nette Framework or autoloader generated by Composer
require LIBS_DIR . '/Nette/loader.php';

// Configure application
$configurator = new Nette\Config\Configurator;

// Enable Nette Debugger for error visualisation & logging
//$configurator->setDebugMode($configurator::AUTO);
$configurator->enableDebugger(__DIR__ . '/../log');

// Enable RobotLoader - this will load all classes automatically
$configurator->setTempDirectory(__DIR__ . '/../temp');
$configurator->createRobotLoader()
	->addDirectory(APP_DIR)
	->addDirectory(LIBS_DIR)
	->register();

// Create Dependency Injection container from config.neon file
$configurator->addConfig(__DIR__ . '/config/config.neon');

$container = $configurator->createContainer();

// Setup router
$container->router[] = new Route('index.php', 'Homepage:default', Route::ONE_WAY);

$container->router[] = new Route('[<lang [a-z]{2}>/]<presenter>/<action>[/<id>]', array(
    'presenter' => 'Homepage',
    'action' => 'default',
    'lang' => $container->translator->getDefault()
        ));

// Configure and run the application!
$container->application->run();

?>
kralik
Člen | 230
+
0
-

Tak jsem to zkoušel načisto a funguje to.
Se sandbox a Nette 2.0.8. to jede bez problémů.

Myslím si, že mám botu někde v pokusech s DI.
Zkusím do funkčního dostat DI.

Mooc díky

kralik
Člen | 230
+
0
-

Prosím ještě o radu.
Nyní mám funkční řešení, avšak toto řešení vyžaduje složky pro oba jazyky.

  • Homepage
    • cs
      • default.latte (stejný soubor)
    • en
      • default.latte (stejný soubor)

Je možné aby tyto složky nebyly vyžadovány a byl použit jen jeden soubor default.latte a tento soubor byl uložen přímo ve složce Homepage?

Mooc díky