1{
2    "language": "en-US",
3    "messages": [
4        {
5            "id": "Hello world!",
6            "message": "Hello world!",
7            "translation": "Hello world!"
8        },
9        {
10            "id": "Hello {City}!",
11            "message": "Hello {City}!",
12            "translation": "Hello {City}n",
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} is visiting {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": "{2} files remaining!",
53            "translatorComment": "Copied from source.",
54            "placeholders": [
55                {
56                    "id": "2",
57                    "string": "%[1]d",
58                    "type": "int",
59                    "underlyingType": "int",
60                    "argNum": 1,
61                    "expr": "2"
62                }
63            ],
64            "fuzzy": true
65        },
66        {
67            "id": "{N} more files remaining!",
68            "message": "{N} more files remaining!",
69            "translation": {
70                "select": {
71                    "feature": "plural",
72                    "arg": "N",
73                    "cases": {
74                        "one": {
75                            "msg": "One file remaining!"
76                        },
77                        "other": {
78                            "msg": "There are {N} more files remaining!"
79                        }
80                    }
81                }
82            },
83            "placeholders": [
84                {
85                    "id": "N",
86                    "string": "%[1]d",
87                    "type": "int",
88                    "underlyingType": "int",
89                    "argNum": 1,
90                    "expr": "n"
91                }
92            ]
93        },
94        {
95            "id": "Use the following code for your discount: {ReferralCode}",
96            "message": "Use the following code for your discount: {ReferralCode}",
97            "translation": "Use the following code for your discount: {ReferralCode}",
98            "translatorComment": "Copied from source.",
99            "placeholders": [
100                {
101                    "id": "ReferralCode",
102                    "string": "%[1]d",
103                    "type": "golang.org/x/text/cmd/gotext/examples/extract.referralCode",
104                    "underlyingType": "int",
105                    "argNum": 1,
106                    "expr": "c"
107                }
108            ],
109            "fuzzy": true
110        },
111        {
112            "id": [
113                "msgOutOfOrder",
114                "{Device} is out of order!"
115            ],
116            "message": "{Device} is out of order!",
117            "translation": "{Device} is out of order!",
118            "comment": "FOO\n",
119            "placeholders": [
120                {
121                    "id": "Device",
122                    "string": "%[1]s",
123                    "type": "string",
124                    "underlyingType": "string",
125                    "argNum": 1,
126                    "expr": "device"
127                }
128            ]
129        },
130        {
131            "id": "{Miles} miles traveled ({Miles_1})",
132            "message": "{Miles} miles traveled ({Miles_1})",
133            "translation": "{Miles} miles traveled ({Miles_1})",
134            "placeholders": [
135                {
136                    "id": "Miles",
137                    "string": "%.2[1]f",
138                    "type": "float64",
139                    "underlyingType": "float64",
140                    "argNum": 1,
141                    "expr": "miles"
142                },
143                {
144                    "id": "Miles_1",
145                    "string": "%[1]f",
146                    "type": "float64",
147                    "underlyingType": "float64",
148                    "argNum": 1,
149                    "expr": "miles"
150                }
151            ]
152        }
153    ]
154}