Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony][Symfony2] Translations
Forum PHP.pl > Forum > PHP > Frameworki
Lirdoner
Witam, próbuję na swojej stronie utworzyć moduł zmiany języków. Posługując się dokumentacją: http://symfony.com/doc/current/translation.html ustawiłem
config.yml
Kod
framework:
    translator:      { fallbacks: [pl] }

Utworzyłem plik w app/Resources/translations/messages.gb.xlf z zawartością:
Kod
<?xml version="1.0"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
    <file source-language="pl" datatype="plaintext" original="file.ext">
        <body>
            <trans-unit id="Czesc">
                <source>Cześć</source>
                <target>Hello!</target>
            </trans-unit>
        </body>
    </file>
</xliff>

Następnie w twig zrobiłem
Kod
{% trans %}Cześć{% endtrans %}


Moduł zmieniania języków ogarnąłem, widzę w debugerze, że _locale się zmienia, jednak nie tłumaczy mi tej frazy "Cześć". Dostaję w debugerze info o brakującym tłumaczeniu. Co zrobiłem źle?
Crash89
Spróbuj cos w tym stylu: {{ 'application.czesc'|trans }}
Pilsener
Translacje to słaba strona symfony, kilka moich uwag:
1. Językiem źródłowym nie powinien być polski
2. Kluczowa jest komenda konsolowa translation:update, której wywołanie powinno zaktualizować pliki językowe i oznaczyć nowe/zmienione frazy.

Problem w tym, że to teoria i prawie zawsze jest problem z wyłapywaniem fraz do tłumaczenia. Powodów może być wiele: konfiguracja, lokalizacja plików językowych, różnice w wersjach bibliotek, potrzeba implementacji w miejscach, które nie zostały przewidziane itp. itd. etc.

P.S. > u Ciebie np. widać, że język ustawiasz PL ale plik językowy masz GB, czyli brak tłumaczenia dla PL. Potem może się okazać, że masz np. enabled na false. Potem jeszcze kilka innych powodów businesssmiley.png
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.