2013-02-21 7 views
25

Ich internationalisiere eine Anwendung und kann nicht herausfinden, wie man einen Übersetzungsstring deklariert, der sowohl einfache als auch doppelte Anführungszeichen enthält. Hier ist ein Beispiel für die en.yml Zeichenfolge, die ich versuche zuWie deklariere ich eine Zeichenfolge mit einfachen und doppelten Anführungszeichen in YAML?

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

Mit der obigen Zeichenfolge, ich die folgende Fehlermeldung erhalten:

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

Wenn es nur doppelte Anführungszeichen wäre, würde ich es wickeln in einfachen Anführungszeichen und umgekehrt. Wie gehe ich jedoch mit doppelten und einfachen Anführungszeichen um?

+3

haben Sie versucht, ihnen zu entkommen? "Wenn du doppelte Anführungszeichen verwendest, sehen sie aus wie" this "" – jvnill

+0

@jvnill Leider nein, aber das hat den Trick gemacht. Ich habe versucht, einfachen Anführungszeichen zu entkommen, und es funktionierte nicht, also nahm ich an, dass Doppelgänger auch nicht entkommen würden. Wenn du das als Antwort postest, werde ich es akzeptieren. –

+0

danke, gerade tat :) – jvnill

Antwort

32

Entkommen sollte wie dieses

"When you're using double quotes, they look like \"this\"" 
+0

Dieses ... funktioniert nicht für mich. Wenn ich so etwas mache und dann die Zeichenkette "packe", druckt es "Wenn du doppelte Anführungszeichen verwendest, sehen sie wie" this "aus. Hilfe? – elsurudo

+0

umgeben Sie es in Anführungszeichen? – jvnill

+0

Ja. Versuchte auch einzelne Anführungszeichen - das gleiche Ergebnis. – elsurudo

9

Eigentlich kann ich nicht herausfinden, erfolgen warum Sie überholt Schreibmaschine zitiert in Übersetzungs-Strings benötigen. Es gibt 2013 und wir sind nicht mehr an ASCII-7 gebunden. Die Typografie-Regeln schreiben ihre Forderungen vor, unicode quotation marks zu verwenden.

, dass die beste Praxis ist immer: die innerhalb der 3. Tastaturebene Karte (oder schließlich sed Ihre yml):

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

Mit einem solchen Ansatz werden Sie nie mit zu entkommen und Ihre Kunden in Schwierigkeiten laufen wird Auf jeden Fall sagen "Oh, ordentlich."

Sorry, wenn dies ein wenig off-topic scheint, aber da die Frage über Übersetzung Strings war, halte ich es immer noch für die beste Lösung.

+2

Ich mag diese Idee! Gerade entdeckt, könnte ich sie mit der Option + linke/rechte Klammer (OS X) eingeben. –

+2

Ich weiß, ich bin zu spät mit dem Spiel, aber die Verwendung von ungeraden Zeichen für Zitate macht keinen Sinn.Sie lassen sich nur schwer einfügen, machen das Parsen zum Problem (jeder Prozess, der Ihre Daten verbraucht, muss wissen, dass Sie nicht standardisierte Anführungszeichen verwenden), fügt aber nichts hinzu. Entkomme ihnen einfach wie in der angenommenen Antwort - es gibt keine Überraschungen für jemanden mit dieser Methode. – Knetic

+0

@Knetic Man bekommt einfach keinen Punkt. Es macht einen großen Sinn, es ist einfach einzufügen, es macht das Parsen zu einem Reiz (linke und rechte Anführungszeichen unterscheiden sich) und niemand, der gesund ist, würde absichtlich mit Ihren _übersetzten Saiten arbeiten. Auf der anderen Seite fügen Sie eine Ästhetik hinzu, die mehr Wert hat als alles andere. Im Jahr 2015 bleiben nur Neandertaler mit Schreibmaschinen-Zitaten stecken. – mudasobwa

0

sehen, ob dies für Sie arbeitet, es funktioniert perfekt für mich in meiner Feder Boot-Anwendungen, bei denen ich in JSON Werte passieren benötigt:

YAML Rohr Stil mit:

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

Ihr Fall wäre :

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

Gefaltete Stil könnte auch funktionieren, aber ich habe es nicht versucht.

Sehen Sie hier mehr: http://symfony.com/doc/current/components/yaml/yaml_format.html#strings

Verwandte Themen