Erweiterung des Slim PHP Micro-Framework-Version 3, um sprachbasiertes Routing, dh I18N und L10N, zu aktivieren.
Durch Terminal:
composer require luism-s/multilingualslim Der $container wird als Schnittstelle zwischen Middleware und Routen verwendet. Die Multilinguage Middleware injiziert die folgenden Variablen in den $container : default_language , available_languages und language . Die ersten beiden sind Variablen, die vom Entwickler festgelegt wurden, und die letzte wird von der Middleware selbst festgelegt und zeigt die angeforderte Sprache an.
use Psr Http Message ServerRequestInterface as Request ;
use Psr Http Message ResponseInterface as Response ;
require ' ../vendor/autoload.php ' ;
$ default_language = ' pt ' ;
$ available_languages = [ ' pt ' , ' en ' ];
$ app = new Slim App ();
$ container = $ app -> getContainer ();
$ app -> add ( new MultilingualSlim LanguageMiddleware ( $ available_languages , $ default_language , $ container ) );
$ app -> get ( ' / ' , function ( Request $ request , Response $ response ) {
// This works with '/', '/pt' and '/en',
// and prints 'Hello' in each language.
if ( $ this -> language === ' pt ' ) {
return $ response -> write ( " Olá Mundo " );
} elseif ( $ this -> language === ' en ' ) {
return $ response -> write ( " Hello World " );
}
});
$ app -> run ();Sie können auch eine Bibliothek verwenden, um Vorlagen wie PHP-View zu rendern. Zum Beispiel:
$ container [ ' renderer ' ] = new Slim Views PhpRenderer ( " ../views/ " );
$ app -> get ( ' /home ' , function ( Request $ request , Response $ response ) {
// This works with '/home', '/pt/home' and '/en/home',
// and returns the template views/base.php.
// It also passes the chosen language as an argument accessible from the chosen template.
return $ this -> renderer -> render ( $ response , " base.php " , [
" language " => $ this -> language
]);
});Dieses Projekt wird größtenteils von Simotod/Slim-Multilanguage beeinflusst, die derselben Philosophie folgt, aber für die Version 2 von Slim hergestellt wird.
Entwickeln Sie Funktionen, um Dinge wie das Testen auf Standardsprache zu tun, die aktuelle Sprache zu erhalten, Sprache zu vergleichen und vielleicht mehr.