Passer des variables à l'intérieur des rails de l'internationalisation fichier yml
Je veux utiliser les variables déclarées dans le fichier yml là.
Par exemple, j'ai déclaré site_name
et souhaitez l'utiliser ci-dessous dans description
.
en:
site_name: &site_name "Site Name"
static_pages:
company:
description: *site_name #this works fine
description: "#{*site_name} is an online system" #this doesn't work
Comment puis-je combiner *site_name
variable avec le texte supplémentaire?
- Voir aussi: stackoverflow.com/questions/15777987/...
Vous devez vous connecter pour publier un commentaire.
La réponse courte est, je crois, non, vous ne peut pas faire de chaîne d'interpolation en YAML la façon dont vous voulez à l'aide de un alias.
Dans votre cas, ce que je voudrais faire est d'avoir quelque chose comme ce qui suit dans mon fichier de paramètres régionaux:
et ensuite appeler dans l'affichage approprié avec le nom du site en tant que paramètre:
lequel vous obtiendrez
"Site Name is an online system"
.Toutefois, si vous êtes désespérés pour utiliser des alias dans votre fichier YAML pour concaténer des chaînes dans leur ensemble, les complètement obsolète code également de travailler en ayant de la chaîne de deux éléments d'un tableau:
et puis,
join
le tableau dans la vue appropriée comme ceci:Qui serait également obtenir vous
"Site Name is an online system"
.Toutefois, avant de vous décider à aller dans cette voie, en dehors de la question que @felipeclopes liés à, avoir un regard sur:
join
, il peut être utile. Mais d'un résumé de toutes les options que j'ai choisi d'écrire le nom du site en plusieurs fois .fichier yml. Il n'est pas en accord avec le principe SEC, mais mieux que d'autres délicat d'options.Vous pouvez utiliser la syntaxe suivante, comme dans l'exemple:
Cet exemple est tiré de: Refactoring Ruby on Rails i18n les fichiers YAML à l'aide de dictionnaires