mn-requirements 0.4.0 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/isodoc/i18n.rb +1 -1
- data/lib/isodoc-yaml/i18n-ja.yaml +31 -0
- data/lib/metanorma/default/cleanup.rb +2 -2
- data/lib/metanorma/default/default.rb +1 -0
- data/lib/metanorma/default/isodoc.rb +33 -21
- data/lib/metanorma/default/utils.rb +5 -0
- data/lib/metanorma/modspec/cleanup.rb +4 -3
- data/lib/metanorma/modspec/isodoc.rb +38 -17
- data/lib/metanorma/modspec/reqt_label.rb +24 -19
- data/lib/metanorma/modspec/table_cleanup.rb +6 -4
- data/lib/metanorma/requirements/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 75b1df8d56f422dda0f7d9ad8118a4ec48dd57c2d05994b84119e5f8bbf2d5cd
|
4
|
+
data.tar.gz: 436b0b873cdba89c706bbd549ad4aa4bbfd23ff551a017af10b611f340f6f9af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1bec02a150e493a2fa71fedeaa42c9d1167c13022a82106c6ab91974e26a0ae6e96088b879d21afc2fbc9bc83d44c88af982579ad3bc2ddfb74a56c7658a50ec
|
7
|
+
data.tar.gz: b508da3936b44d98d437c4c7c27b46515a55bcb01671c1040cd282f6472013b7c6426b8c0703ce476ba482671dc7222487ab12d10c5c7efc02f7372ca701dd50
|
data/lib/isodoc/i18n.rb
CHANGED
@@ -0,0 +1,31 @@
|
|
1
|
+
requirements:
|
2
|
+
default:
|
3
|
+
requirement: 要求
|
4
|
+
recommendation: 推奨
|
5
|
+
permission: 許可
|
6
|
+
obligation: 義務
|
7
|
+
subject: 主題
|
8
|
+
inherits: 継承
|
9
|
+
modspec:
|
10
|
+
recommendationtest: 要求テスト
|
11
|
+
requirementtest: 要求テスト
|
12
|
+
permissiontest: 許可テスト
|
13
|
+
recommendationclass: 要求クラス
|
14
|
+
requirementclass: 要求クラス
|
15
|
+
permissionclass: 許可クラス
|
16
|
+
abstracttest: 抽象テスト
|
17
|
+
conformanceclass: 適合クラス
|
18
|
+
conformancetest: 適合性テスト
|
19
|
+
targettype: ターゲットタイプ
|
20
|
+
target: ターゲット
|
21
|
+
testpurpose: テスト目的
|
22
|
+
testmethod: 試験方法
|
23
|
+
dependency: 前提条件
|
24
|
+
indirectdependency: 間接的な前提条件
|
25
|
+
identifier: 識別子
|
26
|
+
included_in: 含まれる
|
27
|
+
statement: 声明
|
28
|
+
description: 説明
|
29
|
+
guidance: ガイダンス
|
30
|
+
implements: 実装
|
31
|
+
provision: 規範的声明
|
@@ -72,7 +72,7 @@ module Metanorma
|
|
72
72
|
end
|
73
73
|
|
74
74
|
def requirement_metadata1_attrs
|
75
|
-
%w(obligation model type)
|
75
|
+
%w(obligation model type class)
|
76
76
|
end
|
77
77
|
|
78
78
|
def requirement_metadata1_tags
|
@@ -112,7 +112,7 @@ module Metanorma
|
|
112
112
|
def unwrap_para(ddef)
|
113
113
|
e = ddef.elements and e.size == 1 && e.first.name == "p" and
|
114
114
|
ddef = e.first
|
115
|
-
ddef.children
|
115
|
+
to_xml(ddef.children)
|
116
116
|
end
|
117
117
|
|
118
118
|
def reqt_dl_to_classif(ins, reqt, dlist)
|
@@ -6,13 +6,33 @@ module Metanorma
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def recommendation_label(elem, type, xrefs)
|
9
|
-
|
10
|
-
|
9
|
+
label, title = recommendation_labels(elem)
|
10
|
+
type = "<span class='fmt-element-name'>#{type}</span>"
|
11
|
+
num = xrefs.anchor(elem["id"], :label, false)
|
12
|
+
num &&= "<semx element='autonum' source='#{elem['id']}'>#{num}</semx>"
|
13
|
+
ret = "#{type} #{num}".strip
|
14
|
+
label || title and
|
15
|
+
ret += recommendation_label_add(elem, label, title)
|
16
|
+
ret
|
17
|
+
end
|
18
|
+
|
19
|
+
def recommendation_label_add(elem, label, title)
|
20
|
+
r = recommendation_label_caption_delim
|
21
|
+
label and
|
22
|
+
r += "<semx element='identifier' source='#{elem['id']}'>#{label}</semx>"
|
23
|
+
label && title and r += ". "
|
24
|
+
title and
|
25
|
+
r += "<semx element='title' source='#{elem['id']}'>#{title}</semx>"
|
26
|
+
r
|
27
|
+
end
|
28
|
+
|
29
|
+
def recommendation_label_caption_delim
|
30
|
+
"<span class='fmt-caption-delim'>:<br/></span>"
|
11
31
|
end
|
12
32
|
|
13
33
|
def reqt_metadata_node?(node)
|
14
34
|
%w(identifier title subject classification tag value
|
15
|
-
inherit name).include? node.name
|
35
|
+
inherit name fmt-name fmt-xref-label fmt-title).include? node.name
|
16
36
|
end
|
17
37
|
|
18
38
|
def requirement_render1(node)
|
@@ -25,35 +45,27 @@ module Metanorma
|
|
25
45
|
out
|
26
46
|
end
|
27
47
|
|
48
|
+
def recommendation_header(_node, out)
|
49
|
+
out
|
50
|
+
end
|
51
|
+
|
28
52
|
def recommendation_base(node, klass)
|
29
53
|
out = node.document.create_element(klass)
|
30
54
|
node.attributes.each do |k, v|
|
31
55
|
out[k] = v
|
32
56
|
end
|
57
|
+
n = node.at(ns("./fmt-name")) and out << n
|
58
|
+
n = node.at(ns("./fmt-xref-label")) and out << n
|
33
59
|
out
|
34
60
|
end
|
35
61
|
|
36
62
|
def recommendation_labels(node)
|
37
|
-
[node.at(ns("./identifier")), node.at(ns("./title"))
|
38
|
-
node.at(ns("./name"))]
|
63
|
+
[node.at(ns("./identifier")), node.at(ns("./title"))]
|
39
64
|
.map do |n|
|
40
|
-
n&.children
|
65
|
+
to_xml(n&.children)
|
41
66
|
end
|
42
67
|
end
|
43
68
|
|
44
|
-
def recommendation_header(node, out)
|
45
|
-
label, title, name = recommendation_labels(node)
|
46
|
-
ret = name ? [name] : []
|
47
|
-
if label || title
|
48
|
-
ret << ":" unless ret.empty?
|
49
|
-
ret += ["<br/>", label]
|
50
|
-
ret << ". " if label && title
|
51
|
-
ret << title
|
52
|
-
end
|
53
|
-
out << "<name>#{l10n(ret.compact.join)}</name>"
|
54
|
-
out
|
55
|
-
end
|
56
|
-
|
57
69
|
def recommendation_attributes1(node, out)
|
58
70
|
oblig = node["obligation"] and
|
59
71
|
out << l10n("#{@labels['default']['obligation']}: #{oblig}")
|
@@ -70,14 +82,14 @@ module Metanorma
|
|
70
82
|
end
|
71
83
|
|
72
84
|
def recommendation_attr_parse(node, label)
|
73
|
-
l10n("#{label}: #{node.children
|
85
|
+
l10n("#{label}: #{to_xml(node.children)}")
|
74
86
|
end
|
75
87
|
|
76
88
|
def recommendation_attr_keyvalue(node, key, value)
|
77
89
|
tag = node.at(ns("./#{key}")) or return nil
|
78
90
|
value = node.at(ns("./#{value}")) or return nil
|
79
91
|
l10n("#{Metanorma::Utils.strict_capitalize_first tag.text}: " \
|
80
|
-
"#{value.children
|
92
|
+
"#{to_xml(value.children)}")
|
81
93
|
end
|
82
94
|
|
83
95
|
def recommendation_attributes(node, out)
|
@@ -34,7 +34,7 @@ module Metanorma
|
|
34
34
|
def requirement_metadata1(reqt, dlist, ins)
|
35
35
|
ins1 = super
|
36
36
|
dlist.xpath("./dt").each do |e|
|
37
|
-
tag = e.text&.
|
37
|
+
tag = e.text&.tr(" ", "-")&.downcase
|
38
38
|
tag = "description" if tag == "statement"
|
39
39
|
next unless requirement_metadata_component_tags.include?(tag)
|
40
40
|
|
@@ -93,7 +93,8 @@ module Metanorma
|
|
93
93
|
end
|
94
94
|
|
95
95
|
def requirement_metadata_to_component(reqt)
|
96
|
-
xpath = requirement_metadata_component_tags - %w(statement
|
96
|
+
xpath = requirement_metadata_component_tags - %w(statement
|
97
|
+
description) -
|
97
98
|
requirement_metadata_requirement_tags
|
98
99
|
reqt.xpath(xpath.map { |x| ".//#{x}" }.join(" | ")).each do |c|
|
99
100
|
c["class"] = c.name
|
@@ -126,7 +127,7 @@ module Metanorma
|
|
126
127
|
next if %w(p ol ul dl table component description)
|
127
128
|
.include?(c&.elements&.first&.name)
|
128
129
|
|
129
|
-
c.children = "<p>#{c.children
|
130
|
+
c.children = "<p>#{to_xml(c.children)}</p>"
|
130
131
|
end
|
131
132
|
end
|
132
133
|
|
@@ -8,7 +8,9 @@ module Metanorma
|
|
8
8
|
def requirement_render1(node)
|
9
9
|
init_lookups(node.document)
|
10
10
|
ret = requirement_guidance_parse(node, super)
|
11
|
-
requirement_table_cleanup(node, ret)
|
11
|
+
out = requirement_table_cleanup(node, ret)
|
12
|
+
out["class"] = "modspec" # deferred; node["class"] is labelling class
|
13
|
+
out
|
12
14
|
end
|
13
15
|
|
14
16
|
def recommendation_base(node, _klass)
|
@@ -17,7 +19,6 @@ module Metanorma
|
|
17
19
|
%w(id keep-with-next keep-lines-together unnumbered).each do |x|
|
18
20
|
out[x] = node[x] if node[x]
|
19
21
|
end
|
20
|
-
out["class"] = "modspec"
|
21
22
|
out["type"] = recommend_class(node)
|
22
23
|
recommendation_component_labels(node)
|
23
24
|
out
|
@@ -33,11 +34,11 @@ module Metanorma
|
|
33
34
|
end
|
34
35
|
|
35
36
|
def recommendation_header(reqt, out)
|
36
|
-
n =
|
37
|
+
n = reqt.at(ns("./fmt-name"))
|
37
38
|
x = if reqt.ancestors("requirement, recommendation, permission").empty?
|
38
|
-
|
39
|
-
|
40
|
-
|
39
|
+
<<~THEAD
|
40
|
+
<thead><tr><th scope='colgroup' colspan='2'><p class='#{recommend_name_class(reqt)}'>#{n}</p></th></tr></thead>
|
41
|
+
THEAD
|
41
42
|
else
|
42
43
|
"<thead><tr><th>#{recommendation_class_label(reqt)}</th>" \
|
43
44
|
"<td>#{n}</td></tr></thead>"
|
@@ -46,10 +47,11 @@ module Metanorma
|
|
46
47
|
out
|
47
48
|
end
|
48
49
|
|
50
|
+
=begin
|
49
51
|
def recommendation_name(node, _out)
|
50
52
|
ret = ""
|
51
|
-
name = node.at(ns("./name")) and ret += name.children.to_xml
|
52
|
-
title = node.at(ns("./title"))
|
53
|
+
name = node.at(ns("./fmt-name")) and ret += name.children.to_xml
|
54
|
+
title = node.at(ns("./fmt-title"))
|
53
55
|
return ret unless title &&
|
54
56
|
node.ancestors("requirement, recommendation, permission").empty?
|
55
57
|
|
@@ -57,6 +59,25 @@ module Metanorma
|
|
57
59
|
ret += title.children.to_xml
|
58
60
|
l10n(ret)
|
59
61
|
end
|
62
|
+
=end
|
63
|
+
|
64
|
+
def recommendation_label_add(elem, _label, title)
|
65
|
+
title or return ""
|
66
|
+
r = recommendation_label_caption_delim
|
67
|
+
title and
|
68
|
+
r += "<semx element='title' source='#{elem['id']}'>#{title}</semx>"
|
69
|
+
r
|
70
|
+
end
|
71
|
+
|
72
|
+
def recommendation_label_caption_delim
|
73
|
+
"<span class='fmt-caption-delim'>: </span>"
|
74
|
+
end
|
75
|
+
|
76
|
+
def recommendation_labels(node)
|
77
|
+
node.ancestors("requirement, recommendation, permission").empty? or
|
78
|
+
return [nil, nil]
|
79
|
+
super
|
80
|
+
end
|
60
81
|
|
61
82
|
def recommendation_attributes(node, out)
|
62
83
|
ins = out.add_child("<tbody></tbody>").first
|
@@ -71,7 +92,7 @@ module Metanorma
|
|
71
92
|
label = node.at(ns("./identifier")) or return
|
72
93
|
ret = <<~OUTPUT
|
73
94
|
<tr><th>#{@labels['modspec']['identifier']}</th>
|
74
|
-
<td><tt><modspec-ident>#{label.children
|
95
|
+
<td><tt><modspec-ident>#{to_xml(label.children)}</modspec-ident></tt></td>
|
75
96
|
OUTPUT
|
76
97
|
out.add_child(ret)
|
77
98
|
end
|
@@ -119,7 +140,7 @@ module Metanorma
|
|
119
140
|
def recommendation_attributes1_inherit(node, head)
|
120
141
|
node.xpath(ns("./inherit")).each do |i|
|
121
142
|
head << [@labels["modspec"]["dependency"],
|
122
|
-
recommendation_id(i.children
|
143
|
+
recommendation_id(to_xml(i.children))]
|
123
144
|
end
|
124
145
|
head
|
125
146
|
end
|
@@ -128,8 +149,8 @@ module Metanorma
|
|
128
149
|
%w(indirect-dependency implements).each do |x|
|
129
150
|
node.xpath(ns("./classification[tag][value]")).each do |c|
|
130
151
|
c.at(ns("./tag")).text.casecmp(x).zero? or next
|
131
|
-
xref = recommendation_id(c.at(ns("./value")).children
|
132
|
-
head << [@labels["modspec"][x.
|
152
|
+
xref = recommendation_id(to_xml(c.at(ns("./value")).children)) and
|
153
|
+
head << [@labels["modspec"][x.delete("-")], xref]
|
133
154
|
end
|
134
155
|
end
|
135
156
|
head
|
@@ -145,9 +166,9 @@ module Metanorma
|
|
145
166
|
|
146
167
|
d = node.at(ns("./component[@class = 'step']"))
|
147
168
|
d = d.replace("<ol class='steps'><li#{id_attr(d)}>" \
|
148
|
-
"#{d.children
|
169
|
+
"#{to_xml(d.children)}</li></ol>").first
|
149
170
|
node.xpath(ns("./component[@class = 'step']")).each do |f|
|
150
|
-
f = f.replace("<li#{id_attr(f)}>#{f.children
|
171
|
+
f = f.replace("<li#{id_attr(f)}>#{to_xml(f.children)}</li>").first
|
151
172
|
d << f
|
152
173
|
end
|
153
174
|
node
|
@@ -202,7 +223,7 @@ module Metanorma
|
|
202
223
|
recommend_class(node.parent) == "recommend" and
|
203
224
|
lbl = "statement"
|
204
225
|
out << "<tr><th>#{@labels['modspec'][lbl]}</th>" \
|
205
|
-
"<td>#{node.children
|
226
|
+
"<td>#{to_xml(node.children)}</td></tr>"
|
206
227
|
out
|
207
228
|
end
|
208
229
|
|
@@ -219,8 +240,8 @@ module Metanorma
|
|
219
240
|
node.xpath(ns("./dt")).each do |dt|
|
220
241
|
dd = dt.next_element
|
221
242
|
dd&.name == "dd" or next
|
222
|
-
out.add_child("<tr><th>#{dt.children
|
223
|
-
"<td>#{dd.children
|
243
|
+
out.add_child("<tr><th>#{to_xml(dt.children)}</th>" \
|
244
|
+
"<td>#{to_xml(dd.children)}</td></tr>")
|
224
245
|
end
|
225
246
|
out
|
226
247
|
end
|
@@ -1,7 +1,11 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
module Nokogiri
|
2
|
+
module XML
|
3
|
+
class Document
|
4
|
+
def reqt_iter(&block)
|
5
|
+
xpath("//xmlns:requirement | //xmlns:recommendation | //xmlns:permission")
|
6
|
+
.each_with_object({}, &block)
|
7
|
+
end
|
8
|
+
end
|
5
9
|
end
|
6
10
|
end
|
7
11
|
|
@@ -23,10 +27,11 @@ module Metanorma
|
|
23
27
|
def recommendation_label_xref(elem, label, xrefs, type)
|
24
28
|
id = @reqtlabels[label]
|
25
29
|
number = xrefs.anchor(id, :modspec, false)
|
26
|
-
number.nil? and return type
|
30
|
+
number.nil? and return "<span class='fmt-element-name'>#{type}</span>"
|
27
31
|
elem.ancestors("requirement, recommendation, permission").empty? and
|
28
32
|
return number
|
29
|
-
"<xref target='#{id}'>#{number}</xref>"
|
33
|
+
#"<xref target='#{id}'>#{number}</xref>"
|
34
|
+
number
|
30
35
|
end
|
31
36
|
|
32
37
|
def init_lookups(doc)
|
@@ -54,17 +59,13 @@ module Metanorma
|
|
54
59
|
end
|
55
60
|
|
56
61
|
def recommendation_class_label(node)
|
62
|
+
node["class"] and return node["class"]
|
57
63
|
case node["type"]
|
58
|
-
when "verification" then @labels["modspec"]["conformancetest"]
|
59
64
|
when "class" then @labels["modspec"]["#{node.name}class"]
|
60
|
-
when "
|
61
|
-
when "
|
62
|
-
|
63
|
-
|
64
|
-
when "recommendation" then @labels["default"]["recommendation"]
|
65
|
-
when "requirement" then @labels["default"]["requirement"]
|
66
|
-
when "permission" then @labels["default"]["permission"]
|
67
|
-
end
|
65
|
+
when "verification" then @labels["modspec"]["conformancetest"]
|
66
|
+
when "abstracttest", "conformanceclass"
|
67
|
+
@labels["modspec"][node["type"]]
|
68
|
+
else @labels["default"][node.name]
|
68
69
|
end
|
69
70
|
end
|
70
71
|
|
@@ -103,7 +104,8 @@ module Metanorma
|
|
103
104
|
|
104
105
|
def recommendation_link_test(ident)
|
105
106
|
test = @reqt_links_test[ident&.strip] or return nil
|
106
|
-
"<xref target='#{test[:id]}'>#{test[:lbl]}</xref>"
|
107
|
+
#"<xref target='#{test[:id]}'>#{test[:lbl]}</xref>"
|
108
|
+
test[:lbl]
|
107
109
|
end
|
108
110
|
|
109
111
|
# we have not implemented multiple levels of nesting of classes
|
@@ -155,12 +157,15 @@ module Metanorma
|
|
155
157
|
|
156
158
|
def recommendation_link_class(ident)
|
157
159
|
test = @reqt_links_class[ident&.strip] or return nil
|
158
|
-
"<xref target='#{test[:id]}'>#{test[:lbl]}</xref>"
|
160
|
+
#"<xref target='#{test[:id]}'>#{test[:lbl]}</xref>"
|
161
|
+
test[:lbl]
|
159
162
|
end
|
160
163
|
|
161
164
|
def recommendation_id(ident)
|
162
165
|
test = @reqt_ids[ident&.strip] or return ident&.strip
|
163
|
-
"
|
166
|
+
#require "debug"; binding.b if test.include?("<xref")
|
167
|
+
#"<xref target='#{test[:id]}'>#{test[:lbl]}</xref>"
|
168
|
+
test[:lbl]
|
164
169
|
end
|
165
170
|
|
166
171
|
def recommendation_backlinks_test(node, id, ret)
|
@@ -185,7 +190,7 @@ module Metanorma
|
|
185
190
|
.xpath(ns("//requirement//xref | //permission//xref | " \
|
186
191
|
"//recommendation//xref"))).each do |x|
|
187
192
|
@reqt_id_base[x["target"]] or next # is a modspec requirement
|
188
|
-
x.children = x.children.
|
193
|
+
x.children = to_xml(x.children).delete_prefix(@modspecidentifierbase)
|
189
194
|
end
|
190
195
|
end
|
191
196
|
|
@@ -46,7 +46,7 @@ module Metanorma
|
|
46
46
|
hdr = th.text
|
47
47
|
th.children = @i18n.inflect(hdr, number: "pl")
|
48
48
|
td = th.next_element
|
49
|
-
res = [td.children
|
49
|
+
res = [to_xml(td.children)]
|
50
50
|
res += gather_consec_table_rows(trow, hdr)
|
51
51
|
td.children = res.join("<br/>")
|
52
52
|
end
|
@@ -55,7 +55,7 @@ module Metanorma
|
|
55
55
|
ret = []
|
56
56
|
trow.xpath("./following-sibling::xmlns:tr").each do |r|
|
57
57
|
r.at(ns("./th[text() = '#{hdr}']")) or break
|
58
|
-
ret << r.remove.at(ns("./td")).children
|
58
|
+
ret << to_xml(r.remove.at(ns("./td")).children)
|
59
59
|
end
|
60
60
|
ret
|
61
61
|
end
|
@@ -65,6 +65,8 @@ module Metanorma
|
|
65
65
|
x = t.at(ns("./thead/tr")) or next
|
66
66
|
x.at(ns("./th")).children =
|
67
67
|
requirement_table_nested_cleanup_hdr(node)
|
68
|
+
f = x.at(ns("./td/fmt-name")) and
|
69
|
+
f.replace(f.children)
|
68
70
|
t.parent.parent.replace(x)
|
69
71
|
end
|
70
72
|
table
|
@@ -78,7 +80,7 @@ module Metanorma
|
|
78
80
|
|
79
81
|
def strip_id_base(elem, base)
|
80
82
|
base.nil? and return elem.children
|
81
|
-
elem.children.
|
83
|
+
to_xml(elem.children).delete_prefix(base)
|
82
84
|
end
|
83
85
|
|
84
86
|
def truncate_id_base_in_reqt1(table, base)
|
@@ -94,7 +96,7 @@ module Metanorma
|
|
94
96
|
# any xrefs not yet expanded out to rendering need to be expanded out,
|
95
97
|
# so that the identifier instances they contain can be truncated
|
96
98
|
def expand_xrefs_in_reqt(table)
|
97
|
-
table.xpath(ns(".//xref[not(@style)][
|
99
|
+
table.xpath(ns(".//xref[not(@style)][string-length() = 0]"))
|
98
100
|
.each do |x|
|
99
101
|
ref = @xrefs.anchor(x["target"], :xref, false) or next
|
100
102
|
x << ref
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mn-requirements
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-08
|
11
|
+
date: 2024-12-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: isodoc-i18n
|
@@ -226,6 +226,7 @@ files:
|
|
226
226
|
- lib/isodoc-yaml/i18n-en.yaml
|
227
227
|
- lib/isodoc-yaml/i18n-es.yaml
|
228
228
|
- lib/isodoc-yaml/i18n-fr.yaml
|
229
|
+
- lib/isodoc-yaml/i18n-ja.yaml
|
229
230
|
- lib/isodoc-yaml/i18n-ru.yaml
|
230
231
|
- lib/isodoc-yaml/i18n-zh-Hans.yaml
|
231
232
|
- lib/isodoc/i18n.rb
|