1{
2    "language": "de",
3    "messages": [
4        {
5            "id": "Hello world!",
6            "message": "Hello world!",
7            "translation": "Hallo Welt!"
8        },
9        {
10            "id": "Hello {City}!",
11            "message": "Hello {City}!",
12            "translation": "Hallo {City}!",
13            "placeholders": [
14                {
15                    "id": "City",
16                    "string": "%[1]s",
17                    "type": "string",
18                    "underlyingType": "string",
19                    "argNum": 1,
20                    "expr": "city"
21                }
22            ]
23        },
24        {
25            "id": "{Person} is visiting {Place}!",
26            "message": "{Person} is visiting {Place}!",
27            "translation": "{Person} besucht {Place}!",
28            "placeholders": [
29                {
30                    "id": "Person",
31                    "string": "%[1]s",
32                    "type": "string",
33                    "underlyingType": "string",
34                    "argNum": 1,
35                    "expr": "person",
36                    "comment": "The person of matter."
37                },
38                {
39                    "id": "Place",
40                    "string": "%[2]s",
41                    "type": "string",
42                    "underlyingType": "string",
43                    "argNum": 2,
44                    "expr": "place",
45                    "comment": "Place the person is visiting."
46                }
47            ]
48        },
49        {
50            "id": "{2} files remaining!",
51            "message": "{2} files remaining!",
52            "translation": "Noch zwei Bestände zu gehen!",
53            "placeholders": [
54                {
55                    "id": "2",
56                    "string": "%[1]d",
57                    "type": "int",
58                    "underlyingType": "int",
59                    "argNum": 1,
60                    "expr": "2"
61                }
62            ]
63        },
64        {
65            "id": "{N} more files remaining!",
66            "message": "{N} more files remaining!",
67            "translation": "Noch {N} Bestände zu gehen!",
68            "placeholders": [
69                {
70                    "id": "N",
71                    "string": "%[1]d",
72                    "type": "int",
73                    "underlyingType": "int",
74                    "argNum": 1,
75                    "expr": "n"
76                }
77            ]
78        },
79        {
80            "id": "Use the following code for your discount: {ReferralCode}",
81            "message": "Use the following code for your discount: {ReferralCode}",
82            "translation": "",
83            "placeholders": [
84                {
85                    "id": "ReferralCode",
86                    "string": "%[1]d",
87                    "type": "./testdata/test1.referralCode",
88                    "underlyingType": "int",
89                    "argNum": 1,
90                    "expr": "c"
91                }
92            ]
93        },
94        {
95            "id": [
96                "msgOutOfOrder",
97                "{Device} is out of order!"
98            ],
99            "message": "{Device} is out of order!",
100            "translation": "",
101            "comment": "This comment wins.\n",
102            "placeholders": [
103                {
104                    "id": "Device",
105                    "string": "%[1]s",
106                    "type": "string",
107                    "underlyingType": "string",
108                    "argNum": 1,
109                    "expr": "device"
110                }
111            ]
112        },
113        {
114            "id": "{Miles} miles traveled ({Miles_1})",
115            "message": "{Miles} miles traveled ({Miles_1})",
116            "translation": "",
117            "placeholders": [
118                {
119                    "id": "Miles",
120                    "string": "%.2[1]f",
121                    "type": "float64",
122                    "underlyingType": "float64",
123                    "argNum": 1,
124                    "expr": "miles"
125                },
126                {
127                    "id": "Miles_1",
128                    "string": "%[1]f",
129                    "type": "float64",
130                    "underlyingType": "float64",
131                    "argNum": 1,
132                    "expr": "miles"
133                }
134            ]
135        }
136    ]
137}