Ich habe von nem Kunden zur Lokalisierung seiner Webapp JSON-Dateien erhalten, welche Strings, numerische Werte und auch HTML enthalten können.
Sie sind wie in der Struktur wie folgt aufgebaut (hier gekürzt zur Anschauung).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// Desc: DoScan language file
// lang: DE
// Date: 2012-07-12T1755
//
{ "version" : 37,
"title" : {
"description" : "Name der Anwendung",
"message" : "DoScan"
},
"purpose" : {
"description" : "Funktionalität der Anwendung",
"message" : "Diese Anwendung erlaubt das Scannen nach Texten:<br>
<ul>
<li>Im Netzwerk
<li>Lokal
<li>In der Shell
</ul>
Weiteres unter <a href=\"/manula/scndo\">Manual</a> <br>
"
},
//
"copyright" : {
"description" : "Copyright und Rechte",
"message" : "<p>All Rights reserved.<br>
(c)2013 Example Gmbh, Oxdorf
</p>"
},
"prompt_for_name": {
"message": "What's your name?",
"description": "Ask for the user's name"
},
"hello": {
"message": "Hello, $USER$",
"description": "Greet the user",
"placeholders": {
"user": {
"content": "$1",
"example": "Cira"
}
}
}
//
}
Das Problem ist dass hier im Falle der Webanwendung (hier Chromium + Mozilla-Kern) JSON nur einzeilige Werte bei
message zulässt.
Mit json_pp oder json_xs lässt sich sowas nicht parsen, da meckert es sowohl die Kommentare an als auch die newlines der Werte bei message.
Oder habe ich irgendeinen Parameter bei json_pp übersehen?
Sicher kann man mit einem Texteditor rum wurschteln und das HTML einzeilig machen. Aber solch Sklavenarbeit ist abgeschafft.
Wie bekomme ich das nun automatisiert mit Perl hin, dass die Werte für
message in einer Zeile laufen?
Weiß jemand eine Lösung? Es muss nämlich als Perl-Script später automatisiert in einem Makefile laufen.
Last edited: 2018-07-28 14:02:56 +0200 (CEST)