web-dev-qa-db-fra.com

Comment déclarer une chaîne avec des guillemets simples et doubles en YAML?

J'internationalise une application et je ne sais pas comment déclarer une chaîne de traduction contenant des guillemets simples et doubles. Voici un exemple de la chaîne en.yml que j'essaie de

en:
  my_string: When you're using double quotes, they look like "this"

Avec la chaîne ci-dessus, j'obtiens l'erreur suivante:

can not load translations from /vagrant/config/locales/en.yml,
expected it to return a hash, but does not

S'il n'y avait que des guillemets doubles, je l'envelopperais entre guillemets simples et vice versa. Comment puis-je gérer les guillemets doubles et simples?

32
Peter Brown

s'échapper doit se faire comme ça

"When you're using double quotes, they look like \"this\""
42
jvnill

En fait, je ne peux pas comprendre pourquoi avez-vous besoin de citations de machine à écrire obsolètes dans les chaînes de traduction. Nous sommes en 2013 et nous ne sommes plus bloqués en ASCII-7. Les règles de typographie dictent leurs demandes d'utilisation guillemets unicode .

C’est la meilleure pratique de tous les temps: mappez ceux du 3e niveau du clavier (ou, éventuellement, sed votre yml):

"When you’re using double quotes, they look like “this”"

Avec une telle approche, vous ne rencontrerez jamais de problèmes d'évasion et vos clients diront certainement "oh, bien."

Désolé, si cela semble un peu hors sujet, mais comme la question portait sur les chaînes de traduction , je considère toujours que c'est la meilleure solution.

12
Aleksei Matiushkin

Voyez si cela fonctionne pour vous, cela fonctionne parfaitement pour moi dans mes applications de démarrage de printemps où je devais passer des valeurs JSON dans:

Utilisation du style de tuyau YAML:

app.json:
  values: |
    {"key": "value"}

Votre cas serait:

en:
  my_string: |
    When you're using double quotes, they look like "this"

Le style plié pourrait aussi fonctionner mais je n'ai pas essayé.

Voir plus ici: http://symfony.com/doc/current/components/yaml/yaml_format.html#strings

4
coolersport