aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2022-06-28 12:04:32 +0200
committerChristian Grothoff <christian@grothoff.org>2022-06-28 12:04:32 +0200
commit3e74c39480cb1236a31e7a167d306e32a0a92f5d (patch)
tree6e186cf1b9b330a4afa934d3cfcb2c0354d26a55
parent85381ce06f8ec4a1f1bcfe6f7da42e5f22a58cf3 (diff)
downloadanastasis-3e74c39480cb1236a31e7a167d306e32a0a92f5d.tar.gz
anastasis-3e74c39480cb1236a31e7a167d306e32a0a92f5d.zip
fix #7225: change way we do i18n for contrib/ resource files
-rw-r--r--.gitignore1
-rw-r--r--contrib/Makefile.am7
-rwxr-xr-xcontrib/extract.sh23
-rwxr-xr-xcontrib/pogen.sh3
-rw-r--r--contrib/redux.al.json7
-rw-r--r--contrib/redux.be.json3
-rw-r--r--contrib/redux.ch.json5
-rw-r--r--contrib/redux.countries.json194
-rw-r--r--contrib/redux.cz.json5
-rw-r--r--contrib/redux.de.json5
-rw-r--r--contrib/redux.dk.json5
-rw-r--r--contrib/redux.es.json8
-rw-r--r--contrib/redux.fr.json5
-rw-r--r--contrib/redux.in.json3
-rw-r--r--contrib/redux.it.json7
-rw-r--r--contrib/redux.jp.json5
-rw-r--r--contrib/redux.nl.json5
-rw-r--r--contrib/redux.sk.json5
-rw-r--r--contrib/redux.us.json4
-rw-r--r--contrib/redux.xx.json2
-rw-r--r--po/POTFILES.in77
21 files changed, 184 insertions, 195 deletions
diff --git a/.gitignore b/.gitignore
index 0d5dbc1..998e44b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -130,3 +130,4 @@ src/cli/test_reducer.err
130vgcore* 130vgcore*
131__pycache__ 131__pycache__
132tags 132tags
133contrib/extracted.h
diff --git a/contrib/Makefile.am b/contrib/Makefile.am
index 75bce03..85ee5ba 100644
--- a/contrib/Makefile.am
+++ b/contrib/Makefile.am
@@ -23,7 +23,8 @@ ppen_DATA = \
23 pp/en/0.xml \ 23 pp/en/0.xml \
24 pp/en/0.html 24 pp/en/0.html
25 25
26 26extracted.h: *.json
27 ./extract.sh
27 28
28pkgdatadir= $(prefix)/share/anastasis/ 29pkgdatadir= $(prefix)/share/anastasis/
29 30
@@ -46,7 +47,9 @@ EXTRA_DIST = \
46 uncrustify_precommit \ 47 uncrustify_precommit \
47 gana.sh \ 48 gana.sh \
48 gana-update.sh \ 49 gana-update.sh \
49 microhttpd.tag 50 microhttpd.tag \
51 extract.sh \
52 extracted.h
50 53
51pkgdata_DATA = \ 54pkgdata_DATA = \
52 redux.al.json \ 55 redux.al.json \
diff --git a/contrib/extract.sh b/contrib/extract.sh
new file mode 100755
index 0000000..e879e74
--- /dev/null
+++ b/contrib/extract.sh
@@ -0,0 +1,23 @@
1#!/bin/sh
2# This file is in the public domain.
3# It extracts translateable strings from the JSON file(s).
4#
5# The resulting 'extracted.h' file is only used by
6# gettext, and not in the actual code. We still make
7# sure it is legal C code.
8
9for n in redux.??.json
10do
11 jq '.required_attributes[].label' < $n | awk '{print "_(" $0 "),"}' >> prep.h
12done
13
14jq '.countries[].continent' < redux.countries.json | awk '{print "_(" $0 "),"}' >> prep.h
15
16jq '.countries[].name' < redux.countries.json | awk '{print "_(" $0 "),"}' >> prep.h
17
18echo "// This is a generated file, see extract.sh" > extracted.h
19echo "const char * i18n[] = {" >> extracted.h
20sort prep.h | uniq >> extracted.h
21echo "};" >> extracted.h
22
23rm -f prep.h
diff --git a/contrib/pogen.sh b/contrib/pogen.sh
index 89140ea..21eedce 100755
--- a/contrib/pogen.sh
+++ b/contrib/pogen.sh
@@ -1,3 +1,4 @@
1#!/bin/sh 1#!/bin/sh
2find src -name "*.c" | sort > po/POTFILES.in 2find src -name "*.c" | sort > po/POTFILES.in
3find contrib -name "*.json" | sort >> po/POTFILES.in 3echo "contrib/extracted.h" >> po/POTFILES.in
4echo "src/authorization/extracted.h" >> po/POTFILES.in
diff --git a/contrib/redux.al.json b/contrib/redux.al.json
index bb4360e..2696540 100644
--- a/contrib/redux.al.json
+++ b/contrib/redux.al.json
@@ -19,11 +19,8 @@
19 { 19 {
20 "type": "string", 20 "type": "string",
21 "name": "nid_number", 21 "name": "nid_number",
22 "label": "Numri i Identitetit", 22 "label": "Identity Number",
23 "label_i18n":{ 23 "tooltip": "Numri i Identitetit",
24 "en": "Identity Number",
25 "al": "Numri i Identitetit"
26 },
27 "widget": "anastasis_gtk_ia_nid_al", 24 "widget": "anastasis_gtk_ia_nid_al",
28 "uuid": "256e5d30-d65e-481b-9ac4-55f5ac03b24a", 25 "uuid": "256e5d30-d65e-481b-9ac4-55f5ac03b24a",
29 "validation-regex": "^[0-9A-T][0-9](((0|5)[0-9])|10|11|51|52)[0-9]{3}[A-W]$", 26 "validation-regex": "^[0-9A-T][0-9](((0|5)[0-9])|10|11|51|52)[0-9]{3}[A-W]$",
diff --git a/contrib/redux.be.json b/contrib/redux.be.json
index 821a3eb..80711cf 100644
--- a/contrib/redux.be.json
+++ b/contrib/redux.be.json
@@ -27,9 +27,6 @@
27 "type": "string", 27 "type": "string",
28 "name": "nrn_number", 28 "name": "nrn_number",
29 "label": "National Register Number", 29 "label": "National Register Number",
30 "label_i18n":{
31 "en": "National Register Number"
32 },
33 "widget": "anastasis_gtk_ia_nid_be", 30 "widget": "anastasis_gtk_ia_nid_be",
34 "uuid": "0452f99a-06f7-48bd-8ac0-2e4ed9a24560", 31 "uuid": "0452f99a-06f7-48bd-8ac0-2e4ed9a24560",
35 "validation-regex": "^[0-9]{11}$", 32 "validation-regex": "^[0-9]{11}$",
diff --git a/contrib/redux.ch.json b/contrib/redux.ch.json
index ecda1a0..6b99ca1 100644
--- a/contrib/redux.ch.json
+++ b/contrib/redux.ch.json
@@ -27,10 +27,7 @@
27 "type": "string", 27 "type": "string",
28 "name": "ahv_number", 28 "name": "ahv_number",
29 "label": "AHV number", 29 "label": "AHV number",
30 "label_i18n":{ 30 "tooltip":"AHV-Nummer",
31 "de_DE":"AHV-Nummer",
32 "de_CH":"AHV-Nummer"
33 },
34 "widget": "anastasis_gtk_ia_ahv", 31 "widget": "anastasis_gtk_ia_ahv",
35 "uuid" : "1da87570-ba16-4f62-8a7e-cbda92f51591", 32 "uuid" : "1da87570-ba16-4f62-8a7e-cbda92f51591",
36 "validation-regex": "^(756)\\.[0-9]{4}\\.[0-9]{4}\\.[0-9]{2}|(756)[0-9]{10}$", 33 "validation-regex": "^(756)\\.[0-9]{4}\\.[0-9]{4}\\.[0-9]{2}|(756)[0-9]{10}$",
diff --git a/contrib/redux.countries.json b/contrib/redux.countries.json
index 0d824fc..cbccb0a 100644
--- a/contrib/redux.countries.json
+++ b/contrib/redux.countries.json
@@ -3,168 +3,94 @@
3 "SPDX-License-Identifier": "GPL3.0-or-later", 3 "SPDX-License-Identifier": "GPL3.0-or-later",
4 "countries": [ 4 "countries": [
5 { 5 {
6 "code" : "al", 6 "code" : "al",
7 "name" : "Albania", 7 "name" : "Albania",
8 "continent" : "Europe", 8 "continent" : "Europe",
9 "name_i18n" : { 9 "call_code" : "+355"
10 "de_DE": "Albanien",
11 "en_UK": "Albania"
12 },
13 "call_code" : "+355"
14 }, 10 },
15 { 11 {
16 "code" : "be", 12 "code" : "be",
17 "name" : "Belgium", 13 "name" : "Belgium",
18 "continent" : "Europe", 14 "continent" : "Europe",
19 "name_i18n" : { 15 "call_code" : "+32"
20 "de_DE": "Belgien",
21 "en_UK": "Belgium"
22 },
23 "call_code" : "+32"
24 }, 16 },
25 { 17 {
26 "code" : "ch", 18 "code" : "ch",
27 "name" : "Switzerland", 19 "name" : "Switzerland",
28 "continent" : "Europe", 20 "continent" : "Europe",
29 "name_i18n" : { 21 "call_code" : "+41"
30 "de_DE": "Schweiz",
31 "de_CH": "Schwiiz",
32 "fr_FR": "Suisse",
33 "en_UK": "Swiss"
34 },
35 "call_code" : "+41"
36 }, 22 },
37 { 23 {
38 "code" : "cz", 24 "code" : "cz",
39 "name" : "Czech Republic", 25 "name" : "Czech Republic",
40 "continent" : "Europe", 26 "continent" : "Europe",
41 "name_i18n" : { 27 "call_code" : "+420"
42 "en_UK": "Czech Republic"
43 },
44 "call_code" : "+420"
45 }, 28 },
46 { 29 {
47 "code" : "de", 30 "code" : "de",
48 "name" : "Germany", 31 "name" : "Germany",
49 "continent" : "Europe", 32 "continent" : "Europe",
50 "continent_i18n" : { "de_DE" : "Europa" }, 33 "call_code" : "+49"
51 "name_i18n" : {
52 "de_DE": "Deutschland",
53 "de_CH": "Deutschland",
54 "fr_FR": "Allemagne",
55 "en_UK": "Germany"
56 },
57 "call_code" : "+49"
58 }, 34 },
59 { 35 {
60 "code" : "dk", 36 "code" : "dk",
61 "name" : "Denmark", 37 "name" : "Denmark",
62 "continent" : "Europe", 38 "continent" : "Europe",
63 "continent_i18n" : { "de_DE" : "Europa" }, 39 "call_code" : "+45"
64 "name_i18n" : {
65 "en_UK": "Denmark"
66 },
67 "call_code" : "+45"
68 }, 40 },
69 { 41 {
70 "code" : "es", 42 "code" : "es",
71 "name" : "Spain", 43 "name" : "Spain",
72 "continent" : "Europe", 44 "continent" : "Europe",
73 "continent_i18n" : { "es_ES" : "Europa" }, 45 "call_code" : "+44"
74 "name_i18n" : {
75 "es_ES": "España"
76 },
77 "call_code" : "+44"
78 }, 46 },
79 { 47 {
80 "code" : "fr", 48 "code" : "fr",
81 "name" : "France", 49 "name" : "France",
82 "continent" : "Europe", 50 "continent" : "Europe",
83 "name_i18n" : { 51 "call_code" : "+33"
84 "de_DE": "Frankreich",
85 "fr_FR": "La France"
86 },
87 "call_code" : "+33"
88 }, 52 },
89 { 53 {
90 "code" : "in", 54 "code" : "in",
91 "name" : "India", 55 "name" : "India",
92 "continent" : "India", 56 "continent" : "India",
93 "continent_i18n" : { "en_EN" : "India" }, 57 "call_code" : "+91"
94 "name_i18n" : {
95 "de_DE": "Indien",
96 "de_CH": "Indien",
97 "fr_FR": "l'Inde",
98 "en_UK": "India"
99 },
100 "call_code" : "+91"
101 }, 58 },
102 { 59 {
103 "code" : "it", 60 "code" : "it",
104 "name" : "Italy", 61 "name" : "Italy",
105 "continent" : "Europe", 62 "continent" : "Europe",
106 "name_i18n" : { 63 "call_code" : "+39"
107 "de_DE": "Italien",
108 "en_UK": "Italy"
109 },
110 "call_code" : "+39"
111 }, 64 },
112 { 65 {
113 "code" : "jp", 66 "code" : "jp",
114 "name" : "Japan", 67 "name" : "Japan",
115 "continent" : "Asia", 68 "continent" : "Asia",
116 "continent_i18n" : { "en_EN" : "Japan" }, 69 "call_code" : "+81"
117 "name_i18n" : {
118 "de_DE": "Japan",
119 "de_CH": "Japan",
120 "en_UK": "Japan"
121 },
122 "call_code" : "+81"
123 }, 70 },
124 { 71 {
125 "code" : "nl", 72 "code" : "nl",
126 "name" : "Netherlands", 73 "name" : "Netherlands",
127 "continent" : "Europe", 74 "continent" : "Europe",
128 "name_i18n" : { 75 "call_code" : "+31"
129 "de_DE": "Niederlande",
130 "nl_NL": "Nederland",
131 "en_UK": "Netherlands"
132 },
133 "call_code" : "+31"
134 }, 76 },
135 { 77 {
136 "code" : "sk", 78 "code" : "sk",
137 "name" : "Slovakia", 79 "name" : "Slovakia",
138 "continent" : "Europe", 80 "continent" : "Europe",
139 "name_i18n" : { 81 "call_code" : "+421"
140 "en_UK": "Slovakia"
141 },
142 "call_code" : "+421"
143 }, 82 },
144 { 83 {
145 "code" : "us", 84 "code" : "us",
146 "name" : "United States of America (USA)", 85 "name" : "United States of America (USA)",
147 "continent" : "North America", 86 "continent" : "North America",
148 "continent_i18n" : { "de_DE" : "Nordamerika" }, 87 "call_code" : "+1"
149 "name_i18n" : {
150 "de_DE": "Vereinigte Staaten von Amerika (USA)",
151 "de_CH": "Vereinigte Staaten von Amerika (USA)",
152 "fr_FR": "États-Unis d'Amérique (USA)",
153 "en_UK": "United States of America (USA)"
154 },
155 "call_code" : "+1"
156 }, 88 },
157 { 89 {
158 "code" : "xx", 90 "code" : "xx",
159 "name" : "Testland", 91 "name" : "Testland",
160 "continent" : "Demoworld", 92 "continent" : "Demoworld",
161 "name_i18n" : { 93 "call_code" : "+00"
162 "de_DE": "Testlandt",
163 "de_CH": "Testlandi",
164 "fr_FR": "Testpais",
165 "en_UK": "Testland"
166 },
167 "call_code" : "+00"
168 } 94 }
169 ] 95 ]
170} 96}
diff --git a/contrib/redux.cz.json b/contrib/redux.cz.json
index e7118a8..3f11118 100644
--- a/contrib/redux.cz.json
+++ b/contrib/redux.cz.json
@@ -20,10 +20,7 @@
20 "type": "string", 20 "type": "string",
21 "name": "birth_number", 21 "name": "birth_number",
22 "label": "Birth Number", 22 "label": "Birth Number",
23 "label_i18n":{ 23 "tooltip": "rodné číslo",
24 "en": "Birth Number",
25 "cz": "rodné číslo"
26 },
27 "widget": "anastasis_gtk_ia_birthnumber_cz", 24 "widget": "anastasis_gtk_ia_birthnumber_cz",
28 "uuid": "03e3a05b-1192-44f1-ac36-7425512eee1a", 25 "uuid": "03e3a05b-1192-44f1-ac36-7425512eee1a",
29 "validation-regex": "^[0-9]{2}(((0|2|5|7)[0-9])|10|11|31|32|51|52|81|82)/[0-9]{3}[0-9]?$", 26 "validation-regex": "^[0-9]{2}(((0|2|5|7)[0-9])|10|11|31|32|51|52|81|82)/[0-9]{3}[0-9]?$",
diff --git a/contrib/redux.de.json b/contrib/redux.de.json
index 21bbaaf..e62f24a 100644
--- a/contrib/redux.de.json
+++ b/contrib/redux.de.json
@@ -27,10 +27,7 @@
27 "type": "string", 27 "type": "string",
28 "name": "social_security_number", 28 "name": "social_security_number",
29 "label": "Social security number", 29 "label": "Social security number",
30 "label_i18n":{ 30 "tooltip": "Deutsche Sozialversicherungsnummer",
31 "de_DE": "Deutsche Sozialversicherungsnummer",
32 "en": "German Social security number"
33 },
34 "widget": "anastasis_gtk_ia_ssn_de", 31 "widget": "anastasis_gtk_ia_ssn_de",
35 "uuid": "d5e2aa79-1c88-4cf4-a4d2-252508b38e05", 32 "uuid": "d5e2aa79-1c88-4cf4-a4d2-252508b38e05",
36 "validation-regex": "^[0-9]{8}[[:upper:]][0-9]{3}$", 33 "validation-regex": "^[0-9]{8}[[:upper:]][0-9]{3}$",
diff --git a/contrib/redux.dk.json b/contrib/redux.dk.json
index 29c7c6c..66859b5 100644
--- a/contrib/redux.dk.json
+++ b/contrib/redux.dk.json
@@ -20,10 +20,7 @@
20 "type": "string", 20 "type": "string",
21 "name": "cpr_number", 21 "name": "cpr_number",
22 "label": "CPR-nummer", 22 "label": "CPR-nummer",
23 "label_i18n":{ 23 "tooltip": "CPR-nummer",
24 "en": "CPR Number",
25 "dk": "CPR-nummer"
26 },
27 "widget": "anastasis_gtk_ia_cpr_dk", 24 "widget": "anastasis_gtk_ia_cpr_dk",
28 "uuid": "38f13a4d-4302-4ada-ada1-c3ff4a8ff689", 25 "uuid": "38f13a4d-4302-4ada-ada1-c3ff4a8ff689",
29 "validation-regex": "^(0[1-9]|[1-2][0-9]|30|31)((0[1-9]|10|11|12))[0-9]{2}-[0-9A-Z]{4}$" 26 "validation-regex": "^(0[1-9]|[1-2][0-9]|30|31)((0[1-9]|10|11|12))[0-9]{2}-[0-9A-Z]{4}$"
diff --git a/contrib/redux.es.json b/contrib/redux.es.json
index d4a6b2a..320d346 100644
--- a/contrib/redux.es.json
+++ b/contrib/redux.es.json
@@ -27,9 +27,7 @@
27 "type": "string", 27 "type": "string",
28 "name": "tax_number", 28 "name": "tax_number",
29 "label": "Tax number", 29 "label": "Tax number",
30 "label_i18n":{ 30 "tooltip":"Número de Identificación Fiscal (DNI, NIE)",
31 "es_ES":"Número de Identificación Fiscal (DNI, NIE)"
32 },
33 "widget": "anastasis_gtk_ia_es_dni", 31 "widget": "anastasis_gtk_ia_es_dni",
34 "uuid" : "ac8bd865-6be8-445c-b650-6a18eef16a49", 32 "uuid" : "ac8bd865-6be8-445c-b650-6a18eef16a49",
35 "validation-regex": "^[0-9MXYZ][0-9]{7}[TRWAGMYFPDXBNJZSQVHLCKE]$", 33 "validation-regex": "^[0-9MXYZ][0-9]{7}[TRWAGMYFPDXBNJZSQVHLCKE]$",
@@ -39,9 +37,7 @@
39 "type": "string", 37 "type": "string",
40 "name": "ssn_number", 38 "name": "ssn_number",
41 "label": "Social security number", 39 "label": "Social security number",
42 "label_i18n":{ 40 "tooltip":"Número de Seguridad Social",
43 "es_ES":"Número de Seguridad Social"
44 },
45 "widget": "anastasis_gtk_ia_es_ssn", 41 "widget": "anastasis_gtk_ia_es_ssn",
46 "uuid" : "22396a19-f3bb-497e-b63a-961fd639140e", 42 "uuid" : "22396a19-f3bb-497e-b63a-961fd639140e",
47 "validation-regex": "^[0-9]{11}$" 43 "validation-regex": "^[0-9]{11}$"
diff --git a/contrib/redux.fr.json b/contrib/redux.fr.json
index 1b57210..fe6ce9b 100644
--- a/contrib/redux.fr.json
+++ b/contrib/redux.fr.json
@@ -27,10 +27,7 @@
27 "type": "string", 27 "type": "string",
28 "name": "social_security_number", 28 "name": "social_security_number",
29 "label": "Code Insee", 29 "label": "Code Insee",
30 "label_i18n":{ 30 "tooltip": "Code Insee",
31 "fr_FR": "Code Insee",
32 "en": "INSEE code"
33 },
34 "widget": "anastasis_gtk_ia_insee_fr", 31 "widget": "anastasis_gtk_ia_insee_fr",
35 "uuid": "2f36a81c-3f6d-41f3-97ee-9c885bc41873", 32 "uuid": "2f36a81c-3f6d-41f3-97ee-9c885bc41873",
36 "validation-regex": "^[0-9]{15}$", 33 "validation-regex": "^[0-9]{15}$",
diff --git a/contrib/redux.in.json b/contrib/redux.in.json
index a53035c..e7dc8fa 100644
--- a/contrib/redux.in.json
+++ b/contrib/redux.in.json
@@ -27,9 +27,6 @@
27 "type": "string", 27 "type": "string",
28 "name": "aadhar_number", 28 "name": "aadhar_number",
29 "label": "Aadhar number", 29 "label": "Aadhar number",
30 "label_i18n":{
31 "en": "Aadhar number"
32 },
33 "widget": "anastasis_gtk_ia_aadhar_in", 30 "widget": "anastasis_gtk_ia_aadhar_in",
34 "uuid": "55afe97a-98bc-48d1-bb37-a9658be3fdc9", 31 "uuid": "55afe97a-98bc-48d1-bb37-a9658be3fdc9",
35 "validation-regex": "^[2-9]{1}[0-9]{3}\\s[0-9]{4}\\s[0-9]{4}$", 32 "validation-regex": "^[2-9]{1}[0-9]{3}\\s[0-9]{4}\\s[0-9]{4}$",
diff --git a/contrib/redux.it.json b/contrib/redux.it.json
index f744497..f67cd45 100644
--- a/contrib/redux.it.json
+++ b/contrib/redux.it.json
@@ -19,11 +19,8 @@
19 { 19 {
20 "type": "string", 20 "type": "string",
21 "name": "fiscal_code", 21 "name": "fiscal_code",
22 "label": "Codice fiscale", 22 "label": "Fiscal code",
23 "label_i18n":{ 23 "tooltip": "Codice fiscale",
24 "it": "Codice fiscale",
25 "en": "Fiscal code"
26 },
27 "widget": "anastasis_gtk_ia_cf_it", 24 "widget": "anastasis_gtk_ia_cf_it",
28 "uuid": "88f53c51-52ad-4d63-a163-ec042589f925", 25 "uuid": "88f53c51-52ad-4d63-a163-ec042589f925",
29 "validation-regex": "^[[:upper:]]{6}[0-9]{2}[A-EHLMPRT](([0-24-6][0-9])|(30|31|70|71))[A-MZ][0-9]{3}[A-Z]$", 26 "validation-regex": "^[[:upper:]]{6}[0-9]{2}[A-EHLMPRT](([0-24-6][0-9])|(30|31|70|71))[A-MZ][0-9]{3}[A-Z]$",
diff --git a/contrib/redux.jp.json b/contrib/redux.jp.json
index 2a80cdf..9eda2f6 100644
--- a/contrib/redux.jp.json
+++ b/contrib/redux.jp.json
@@ -27,10 +27,7 @@
27 "type": "string", 27 "type": "string",
28 "name": "my_number", 28 "name": "my_number",
29 "label": "My number", 29 "label": "My number",
30 "label_i18n":{ 30 "tooltip": "マイナンバー",
31 "en": "My number",
32 "jp": "マイナンバー"
33 },
34 "widget": "anastasis_gtk_ia_my_jp", 31 "widget": "anastasis_gtk_ia_my_jp",
35 "uuid": "90848f42-a83e-4226-8186-329696c14152", 32 "uuid": "90848f42-a83e-4226-8186-329696c14152",
36 "validation-regex": "^[0-9]{12}$" 33 "validation-regex": "^[0-9]{12}$"
diff --git a/contrib/redux.nl.json b/contrib/redux.nl.json
index 506c2d0..ce6b766 100644
--- a/contrib/redux.nl.json
+++ b/contrib/redux.nl.json
@@ -27,10 +27,7 @@
27 "type": "string", 27 "type": "string",
28 "name": "social_security_number", 28 "name": "social_security_number",
29 "label": "Citizen Service Number", 29 "label": "Citizen Service Number",
30 "label_i18n":{ 30 "tooltip": "Burgerservicenummer (BSN)",
31 "nl_NL": "Burgerservicenummer (BSN)",
32 "en": "Citizen Service Number"
33 },
34 "widget": "anastasis_gtk_ia_ssn_nl", 31 "widget": "anastasis_gtk_ia_ssn_nl",
35 "uuid": "b6bf1f14-1f85-4afb-af21-f54b88490bdc", 32 "uuid": "b6bf1f14-1f85-4afb-af21-f54b88490bdc",
36 "validation-regex": "^[1-9][0-9]{8}$", 33 "validation-regex": "^[1-9][0-9]{8}$",
diff --git a/contrib/redux.sk.json b/contrib/redux.sk.json
index e2acef7..7520d15 100644
--- a/contrib/redux.sk.json
+++ b/contrib/redux.sk.json
@@ -20,10 +20,7 @@
20 "type": "string", 20 "type": "string",
21 "name": "birth_number", 21 "name": "birth_number",
22 "label": "Birth Number", 22 "label": "Birth Number",
23 "label_i18n":{ 23 "tooltip": "rodné číslo",
24 "en": "Birth Number",
25 "sk": "rodné číslo"
26 },
27 "widget": "anastasis_gtk_ia_birthnumber_sk", 24 "widget": "anastasis_gtk_ia_birthnumber_sk",
28 "uuid": "1cd372fe-2cea-4928-9f29-66f2bdd8555c", 25 "uuid": "1cd372fe-2cea-4928-9f29-66f2bdd8555c",
29 "validation-regex": "^[0-9]{2}(((0|2|5|7)[0-9])|10|11|31|32|51|52|81|82)/[0-9]{3}[0-9]?$", 26 "validation-regex": "^[0-9]{2}(((0|2|5|7)[0-9])|10|11|31|32|51|52|81|82)/[0-9]{3}[0-9]?$",
diff --git a/contrib/redux.us.json b/contrib/redux.us.json
index 08c0167..c6d0189 100644
--- a/contrib/redux.us.json
+++ b/contrib/redux.us.json
@@ -27,9 +27,7 @@
27 "type": "string", 27 "type": "string",
28 "name": "social_security_number", 28 "name": "social_security_number",
29 "label": "Social security number", 29 "label": "Social security number",
30 "label_i18n":{ 30 "tooltip": "US Social security number",
31 "en": "US Social security number"
32 },
33 "widget": "anastasis_gtk_ia_ssn_us", 31 "widget": "anastasis_gtk_ia_ssn_us",
34 "uuid": "310a138c-b0b7-4985-b8b8-d00e765e9f9b", 32 "uuid": "310a138c-b0b7-4985-b8b8-d00e765e9f9b",
35 "validation-regex": "^[0-9]{3}-[0-9]{2}-[0-9]{4}$", 33 "validation-regex": "^[0-9]{3}-[0-9]{2}-[0-9]{4}$",
diff --git a/contrib/redux.xx.json b/contrib/redux.xx.json
index 1b11cd5..71d67e5 100644
--- a/contrib/redux.xx.json
+++ b/contrib/redux.xx.json
@@ -21,6 +21,7 @@
21 "type": "string", 21 "type": "string",
22 "name": "prime_number", 22 "name": "prime_number",
23 "label": "Prime number", 23 "label": "Prime number",
24 "tooltip": "Mathematics is fun",
24 "widget": "anastasis_gtk_xx_prime", 25 "widget": "anastasis_gtk_xx_prime",
25 "uuid" : "39190a95-cacb-4412-8bae-1f7da3f980b4", 26 "uuid" : "39190a95-cacb-4412-8bae-1f7da3f980b4",
26 "validation-regex": "^[0-9]+$", 27 "validation-regex": "^[0-9]+$",
@@ -31,6 +32,7 @@
31 "type": "string", 32 "type": "string",
32 "name": "sq_number", 33 "name": "sq_number",
33 "label": "Square number", 34 "label": "Square number",
35 "tooltip": "Mathematics is fun",
34 "widget": "anastasis_gtk_xx_square", 36 "widget": "anastasis_gtk_xx_square",
35 "uuid" : "ed790bca-89bf-11eb-96f2-233996cf644e", 37 "uuid" : "ed790bca-89bf-11eb-96f2-233996cf644e",
36 "validation-regex": "^[0-9]+$", 38 "validation-regex": "^[0-9]+$",
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 1c8ee65..7395de9 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,2 +1,77 @@
1# List of source files which contain translatable strings. 1src/authorization/anastasis_authorization_plugin.c
2src/authorization/anastasis_authorization_plugin_email.c
3src/authorization/anastasis_authorization_plugin_file.c
4src/authorization/anastasis_authorization_plugin_iban.c
5src/authorization/anastasis_authorization_plugin_post.c
6src/authorization/anastasis_authorization_plugin_sms.c
7src/authorization/anastasis_authorization_plugin_totp.c
8src/authorization/anastasis-helper-authorization-iban.c
9src/authorization/iban.c
10src/authorization/libanastasiseufin/lae_common.c
11src/authorization/libanastasiseufin/lae_credit.c
12src/authorization/libanastasiseufin/lae_parse.c
13src/backend/anastasis-httpd.c
14src/backend/anastasis-httpd_config.c
15src/backend/anastasis-httpd_mhd.c
16src/backend/anastasis-httpd_policy.c
17src/backend/anastasis-httpd_policy-meta.c
18src/backend/anastasis-httpd_policy-upload.c
19src/backend/anastasis-httpd_terms.c
20src/backend/anastasis-httpd_truth-challenge.c
21src/backend/anastasis-httpd_truth-solve.c
22src/backend/anastasis-httpd_truth-upload.c
23src/cli/anastasis-cli-discover.c
24src/cli/anastasis-cli-redux.c
25src/lib/anastasis_backup.c
26src/lib/anastasis_meta.c
27src/lib/anastasis_recovery.c
28src/reducer/anastasis_api_backup_redux.c
29src/reducer/anastasis_api_discovery.c
2src/reducer/anastasis_api_recovery_redux.c 30src/reducer/anastasis_api_recovery_redux.c
31src/reducer/anastasis_api_redux.c
32src/reducer/validation_CH_AHV.c
33src/reducer/validation_CZ_BN.c
34src/reducer/validation_DE_SVN.c
35src/reducer/validation_DE_TIN.c
36src/reducer/validation_ES_DNI.c
37src/reducer/validation_FR_INSEE.c
38src/reducer/validation_IN_AADHAR.c
39src/reducer/validation_IT_CF.c
40src/reducer/validation_NL_BSN.c
41src/reducer/validation_XX_SQUARE.c
42src/reducer/validation_XY_PRIME.c
43src/restclient/anastasis_api_config.c
44src/restclient/anastasis_api_curl_defaults.c
45src/restclient/anastasis_api_keyshare_lookup.c
46src/restclient/anastasis_api_policy_lookup.c
47src/restclient/anastasis_api_policy_meta_lookup.c
48src/restclient/anastasis_api_policy_store.c
49src/restclient/anastasis_api_truth_challenge.c
50src/restclient/anastasis_api_truth_solve.c
51src/restclient/anastasis_api_truth_store.c
52src/stasis/anastasis-dbinit.c
53src/stasis/anastasis_db_plugin.c
54src/stasis/plugin_anastasis_postgres.c
55src/stasis/test_anastasis_db.c
56src/testing/test_anastasis_api.c
57src/testing/test_anastasis.c
58src/testing/testing_api_cmd_config.c
59src/testing/testing_api_cmd_policy_lookup.c
60src/testing/testing_api_cmd_policy_store.c
61src/testing/testing_api_cmd_truth_challenge.c
62src/testing/testing_api_cmd_truth_solve.c
63src/testing/testing_api_cmd_truth_store.c
64src/testing/testing_api_helpers.c
65src/testing/testing_api_traits.c
66src/testing/testing_cmd_challenge_answer.c
67src/testing/testing_cmd_policy_create.c
68src/testing/testing_cmd_recover_secret.c
69src/testing/testing_cmd_secret_share.c
70src/testing/testing_cmd_truth_upload.c
71src/util/anastasis-config.c
72src/util/anastasis_crypto.c
73src/util/anastasis-crypto-tvg.c
74src/util/os_installation.c
75src/util/pin.c
76src/util/test_anastasis_crypto.c
77contrib/extracted.h