Als ich die Dokumentation von symfony 3 gelesen habe, bin ich sehr verwirrt, und ich bin mir nicht sicher, ob ich alles richtig mache. Dies ist, wie einer meiner normalen Controller auf den Start schaute:Mehrsprachige Option zu einem symfony hinzufügen 3 Projekt
class IndexController extends Controller
{
/**
* @Route("/", name="index")
*/
public function indexAction(Request $request)
{
$articles = $this->getDoctrine()
->getRepository(Article::class)->findAll();
return $this->render("index.html.twig", array(
'articles' => $articles
));
}
}
Ich wollte Option für Multi-Sprache hinzufügen. Vor Symfony habe ich gesehen, dass ich die Sprache einfach speichern konnte, und einen Knopf, um sie zu ändern. In symfony habe ich einen translations Ordner und eine Datei für jede Sprache hinzugefügt.
//messages.en.yml
base.menu.1: Home
base.menu.2: Products
base.menu.3: Brands
//messages.bg.yml
base.menu.1: Начало
base.menu.2: Продукти
base.menu.3: Марки
Danach ich in einigen titorial sah, dass ich meine _locale wie diese, in meiner Route hinzufügen:
@Route ("{_ locale} /" name = "index")
Und das hat tatsächlich funktioniert. Meine ich konnte die Sprache meiner Homepage ändern, indem ich in bg /, oder en/ging.
Aber das Gebietsschema variabe wurde nirgendwo gespeichert. Wenn ich zu einer anderen Seite gegangen bin, weiß ich nicht, welche Sprache vorher eingestellt wurde. Also las ich mehr, und war ich dieses Problem beheben kann, indem alle meine Routen in routing.yml wie folgt zu speichern:
index:
path: /{_locale}/
defaults: { _controller: AppBundle:Index:index }
requirements:
_locale: '%app.locales%'
einzusetzen und dann meine config:
parameters:
locale: bg
app.locales: bg|en
framework:
translator: { fallbacks: ['%locale%'] }
All diese funktioniert, außer ich muss mein Routing von ihren Controllern zu routing.yml verschieben. Ich möchte fragen, ob dies die richtige Methode ist, um all dies zu tun, weil ich nicht sicher bin, dass die Dokumentation nicht 100% klar ist (höchstwahrscheinlich kann ich es einfach nicht verstehen) und kann keine guten Titorials finden .
Das war es, danke! – symfonypleb