È possibile utilizzare la variabile globale da config.yml nel file di traduzione in symfony 2? Se sì, puoi fornire qualche esempio o link utile?Come usare il valore di configurazione nella traduzione di symfony2?
risposta
è possibile seguire quei 2 semplici passaggi:
iniettare un Global variable in tutti i modelli utilizzando la configurazione ramoscello:
# app/config/parameters.yml parameters: my_favorite_website: www.stackoverflow.com
E
# app/config/config.yml twig: globals: my_favorite_website: "%my_favorite_website%"
Usa Message Placeholders a avere la possibilità di inserire il testo nel tuo tra nslation:
# messages.en.yml I.love.website: "I love %website%!!" # messages.fr.yml I.love.website: "J'adore %website%!!"
È ora possibile utilizzare la seguente sintassi ramoscello nei modelli per ottenere il risultato atteso:
{{ 'I.love.website'|trans({'%website%': my_favorite_website}) }}
Grazie, ma voglio evitare questo passaggio in ramoscello. In questo esempio mi piacerebbe usare _my_favorite_website_ direttamente nella traduzione e chiamarlo in twig senza passare alcun valore: '{{'I.love.website' | trans()}}' – japysha
Mmmmh temo non ci sia un semplice soluzione per fare questo. Il servizio di traduzione richiede che tu passi il segnaposto in un 'array()' come secondo parametro quando lo chiami, quindi è più una "limitazione" del servizio di traduzione che una di ramoscello. Probabilmente potresti scrivere un'estensione di ramoscello se il segnaposto è sempre lo stesso, ma sarebbe un trucco sporco ... – cheesemacfly
Per l'iniezione di un (o tutti) ramoscello globali nelle vostre traduzioni è necessario per sovrascrivere il servizio di traduzione. Controlla this answer se vuoi una spiegazione dettagliata. Ecco quello che ho fatto:
Sostituisci il parametro translator.class
(ad esempio, nel parameters.yml
):
translator.class: Acme\YourBundle\Translation\Translator
Creare il nuovo Translator
servizio:
use Symfony\Bundle\FrameworkBundle\Translation\Translator as BaseTranslator;
class Translator extends BaseTranslator
{
}
Infine sovrascrivono sia trans
e 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
);
}
In questo esempio sto iniettando tutte le coordinate del ramoscello. Si può iniettare solo uno come questo:
array_merge(['%your_global%' => $this->container->get('twig')->getGlobals()['your_global']], $parameters)
- 1. Come aggiungere un array con valori nella configurazione di Symfony2?
- 2. Symfony2 - Imposta il dominio di traduzione per un intero modulo
- 3. symfony2 yaml: configurazione di sovrascrittura
- 4. Symfony2: root di configurazione personalizzata
- 5. Aggiunta di valore dinamicamente nella configurazione di buildout
- 6. I18n: come verificare se mancano coppie chiave/valore di traduzione?
- 7. Prototipi nidificati in configurazione Symfony2
- 8. Come leggere le impostazioni di configurazione da Symfony2 config.yml?
- 9. Tag HTML nella traduzione i18next
- 10. Possiamo usare regex nel controllo di accesso di symfony2?
- 11. Come estendere la configurazione di bundle diversi in Symfony2?
- 12. Riferimento di traduzione all'interno di un'altra traduzione
- 13. Come memorizzare i dati nella cache in symfony2
- 14. Come collegare il framework solo nella configurazione di Debug?
- 15. Configurare Symfony2/Swiftmailer da usare "-t sendmail"
- 16. Symfony2, FOSRestBundle. Come usare il gruppo con JMSSerializerBundle?
- 17. Symfony2: Ottenere il percorso nella pagina Carica listener di eventi
- 18. Symfony2: come ottenere i valori di configurazione del listener di autenticazione in un altro servizio?
- 19. Variabili di ambiente memorizzate nella cache nella configurazione di Rails?
- 20. Come utilizzare il servizio di traduzione all'interno di un'entità?
- 21. Configurazione MySQL: quando usare il trattino e quando usare il carattere di sottolineatura
- 22. Symfony2 + Ramoscello, variabile in cambio di traduzione "Un messaggio deve essere un semplice testo"
- 23. Posso includere un file di configurazione opzionale in Symfony2?
- 24. da c a C++, perso nella traduzione
- 25. Come cancellare il valore del campo con i moduli Symfony2
- 26. Configurazione SMTP SendUtilizzo del valore di configurazione con ASP-Classic
- 27. Spring: Come faccio a iniettare ENUM nella configurazione di Spring?
- 28. symfony2: come includere interruzioni di riga/newline nelle traduzioni?
- 29. Symfony2: scelta senza valore vuoto
- 30. Qual è il valore predefinito di configurazione git core.askpass?
Cosa intendi esattamente? – cheesemacfly
Vorrei usare del testo (esempio: www.stackoverflow.com) in più file di traduzione. Non voglio passare ogni volta da twig o php questo valore nella traduzione. Voglio solo mettere in qualche modo nelle traduzioni. – japysha
http://stackoverflow.com/a/15566695/1847340 dai un'occhiata a questa soluzione. ha funzionato per me :) – ferdynator