Czy można użyć zmiennej globalnej z pliku config.yml w pliku tłumaczenia w symfony 2? Jeśli tak, proszę podać przykładowy lub przydatny link?Jak używać wartości konfiguracyjnej w tłumaczeniu symfony2?
Odpowiedz
Możesz śledzić te 2 proste kroki:
wstrzyknąć Global variable we wszystkich szablonów wykorzystując konfigurację gałązka:
# app/config/parameters.yml parameters: my_favorite_website: www.stackoverflow.com
I
# app/config/config.yml twig: globals: my_favorite_website: "%my_favorite_website%"
Korzystając Message Placeholders do mieć możliwość umieszczania tekstu w tra nslation:
# messages.en.yml I.love.website: "I love %website%!!" # messages.fr.yml I.love.website: "J'adore %website%!!"
Teraz można użyć następującej składni gałązka w szablonach, aby uzyskać oczekiwany rezultat:
{{ 'I.love.website'|trans({'%website%': my_favorite_website}) }}
Dzięki, ale chcę uniknąć tego kroku w gałązce. W tym przykładzie chciałbym użyć _my_favorite_website_ bezpośrednio w tłumaczeniu i nazwać go twigiem bez podania jakiejkolwiek wartości: '{{'I.love.website' | trans()}}' – japysha
Mmmmh Obawiam się, że nie ma prostego rozwiązanie, aby to zrobić. Usługa tłumaczenia wymaga podania symbolu zastępczego w 'array()' jako drugiego parametru podczas wywoływania go, więc jest to bardziej "ograniczające" tłumaczenie usługi niż gałązka. Możesz prawdopodobnie napisać rozszerzenie gałązki, jeśli symbol zastępczy jest zawsze taki sam, ale to byłaby brudna sztuczka ... – cheesemacfly
do wtryskiwania (lub wszystkie) gałązka globalnych do tłumaczeń trzeba aby zastąpić usługę tłumaczenia. Sprawdź this answer, jeśli chcesz uzyskać szczegółowe wyjaśnienie. Oto co zrobiłem:
zastąpić parametr translator.class
(np swój parameters.yml
):
translator.class: Acme\YourBundle\Translation\Translator
Utwórz nową Translator
usługę:
use Symfony\Bundle\FrameworkBundle\Translation\Translator as BaseTranslator;
class Translator extends BaseTranslator
{
}
Wreszcie zastępują zarówno trans
i transChoice
:
/**
* {@inheritdoc}
*/
public function trans($id, array $parameters = array(), $domain = null, $locale = null)
{
return parent::trans(
$id,
array_merge($this->container->get('twig')->getGlobals(), $parameters),
$domain,
$locale
);
}
/**
* {@inheritdoc}
*/
public function transChoice($id, $number, array $parameters = array(), $domain = null, $locale = null)
{
return parent::transChoice(
$id,
$number,
array_merge($this->container->get('twig')->getGlobals(), $parameters),
$domain,
$locale
);
}
W tym przykładzie wstrzykiwam wszystkie globusy gałązkowe. Możesz wstrzyknąć tylko jeden taki:
array_merge(['%your_global%' => $this->container->get('twig')->getGlobals()['your_global']], $parameters)
- 1. Jak używać zmiennych środowiskowych w sekcji konfiguracyjnej Supervisorda?
- 2. Znaczniki HTML w i18następnym tłumaczeniu
- 3. Używanie zmiennej konfiguracyjnej aplikacji Rails w modelu
- 4. Używając klasy konfiguracyjnej Symfony2, jak zdefiniować węzeł tablicy, którego dzieci nie mają kluczy?
- 5. Umożliwianie dodatkowych, niezdefiniowanych opcji w tablicy konfiguracji podczas korzystania z klasy konfiguracyjnej Symfony2:
- 6. Jak używać cudzysłowów w app.config
- 7. Jak mogę przesłonić wartość listy konfiguracyjnej typesafe w wierszu poleceń?
- 8. c do C++, utracone w tłumaczeniu
- 9. Zlokalizowane strony błędów w Symfony2
- 10. Jak mogę pobrać plik poprzez etykietę w specyfikacji konfiguracyjnej?
- 11. Jak używać wartości metryki w aliasie?
- 12. Jak używać niebezpiecznych wartości w wyliczaniu?
- 13. Użyj symboli zastępczych w tłumaczeniu przy użyciu znaczników
- 14. Czy można używać podwójnego uwierzytelniania z symfony2?
- 15. Zend framework 2: Jak uzyskać dostęp do wartości konfiguracyjnej modułu ze sterownika
- 16. Symfony2 wartości przejście do rodzaju formy kolekcja
- 17. Rozpoznawanie podobnych kształtów w losowej skali i tłumaczeniu
- 18. Kiedy używać Formatera wartości i kiedy używać Resolvera wartości
- 19. Symfony2: Jak przetestować wartości węzłów konfiguracji i indeks
- 20. Jak używać czcionek fontello?
- 21. Jak wyłączyć funkcję szablonu w Symfony2
- 22. Jak zaimplementować zapamiętaj mnie programowo w symfony2?
- 23. Jak używać typów do rozdzielania niezgodnych wartości
- 24. Skonfiguruj Symfony2/Swiftmailer do użycia "sendmail -t"
- 25. Jak używać wartości zmiennych w żywych szablonach w Intelli IDS?
- 26. Jak używać wartości programu ProgramFilesFolder w zmiennej w pliku wxi
- 27. Flask - Uzyskiwanie dostępu do zmiennej konfiguracyjnej w szablonie
- 28. Warunkowa walidacja pól na podstawie innych wartości pól w Symfony2
- 29. Symfony2 twig tłumaczyć wartości zmiennych w tagu {% trans%}
- 30. Strategia w Symfony2
Co masz na myśli? – cheesemacfly
Chciałbym użyć trochę tekstu (przykład: www.stackoverflow.com) w większej ilości plików tłumaczeniowych. Nie chcę za każdym razem podawać z gałązki lub php tej wartości w tłumaczeniu. Po prostu chcesz umieścić w tłumaczeniu. – japysha
http://stackoverflow.com/a/15566695/1847340 sprawdź to rozwiązanie. pracował dla mnie :) – ferdynator