Je veux utiliser des variables déclarées dans le fichier yml juste 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 du texte supplémentaire?
La réponse courte est, je crois, non, vous ne pouvez pas faire d'interpolation de chaîne en YAML comme vous le souhaitez en utilisant n alias .
Dans votre cas, ce que je ferais, c'est avoir quelque chose comme ceci dans mon fichier de paramètres régionaux:
en:
site_name: "Site Name"
static_pages:
company:
description: ! '%{site_name} is an online system'
puis appelez la vue appropriée avec le nom du site comme paramètre:
t('.description', site_name: t('site_name'))
ce qui vous ferait "Site Name is an online system"
.
Cependant, si vous êtes désespéré d'utiliser des alias dans votre fichier YAML pour concaténer des chaînes ensemble, le code suivant complètement non recommandé fonctionnerait également en ayant la chaîne être deux éléments d'un tableau:
en:
site_name: &site_name "Site Name"
static_pages:
company:
description:
- *site_name
- "is an online system"
puis vous join
le tableau dans la vue appropriée comme ceci:
t('.description').join(" ")
Ce qui vous permettrait également "Site Name is an online system"
.
Cependant, avant de décider de suivre cette voie, à part la question à laquelle @felipeclopes est liée, jetez un œil à:
Vous pouvez utiliser la syntaxe suivante, comme dans l'exemple:
dictionary:
email: &email Email
name: &name Name
password: &password Password
confirmation: &confirmation Confirmation
activerecord:
attributes:
user:
email: *email
name: *name
password: *password
password_confirmation: *confirmation
models:
user: User
users:
fields:
email: *email
name: *name
password: *password
confirmation: *confirmation
sessions:
new:
email: *email
password: *password
Cet exemple est tiré de: Refactoring Ruby on Rails i18n fichiers YAML utilisant des dictionnaires