isodoc 0.5.8 → 0.5.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.tb.yml +20 -10
- data/lib/isodoc/blocks.rb +13 -13
- data/lib/isodoc/cleanup.rb +19 -3
- data/lib/isodoc/comments.rb +1 -1
- data/lib/isodoc/convert.rb +2 -0
- data/lib/isodoc/footnotes.rb +4 -2
- data/lib/isodoc/html.rb +28 -10
- data/lib/isodoc/i18n-en.yaml +9 -0
- data/lib/isodoc/i18n-fr.yaml +12 -3
- data/lib/isodoc/i18n-zh-Hans.yaml +10 -1
- data/lib/isodoc/i18n.rb +9 -2
- data/lib/isodoc/inline.rb +5 -6
- data/lib/isodoc/iso2wordhtml.rb +9 -6
- data/lib/isodoc/lists.rb +7 -5
- data/lib/isodoc/metadata.rb +27 -10
- data/lib/isodoc/references.rb +12 -6
- data/lib/isodoc/section.rb +17 -11
- data/lib/isodoc/table.rb +2 -4
- data/lib/isodoc/terms.rb +3 -3
- data/lib/isodoc/utils.rb +15 -14
- data/lib/isodoc/version.rb +1 -1
- data/lib/isodoc/wordconvert/comments.rb +1 -1
- data/lib/isodoc/wordconvert/wordconvertmodule.rb +51 -12
- data/lib/isodoc/xref_gen.rb +30 -26
- data/lib/isodoc/xref_sect_gen.rb +31 -13
- data/spec/assets/scripts.html +1 -0
- data/spec/isodoc/blocks_spec.rb +50 -49
- data/spec/isodoc/cleanup_spec.rb +6 -6
- data/spec/isodoc/footnotes_spec.rb +10 -2
- data/spec/isodoc/i18n_spec.rb +86 -54
- data/spec/isodoc/inline_spec.rb +22 -18
- data/spec/isodoc/lists_spec.rb +25 -11
- data/spec/isodoc/metadata_spec.rb +4 -3
- data/spec/isodoc/postproc_spec.rb +108 -42
- data/spec/isodoc/ref_spec.rb +9 -7
- data/spec/isodoc/section_spec.rb +162 -141
- data/spec/isodoc/table_spec.rb +18 -16
- data/spec/isodoc/terms_spec.rb +9 -9
- data/spec/isodoc/xref_spec.rb +153 -122
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 90089f0b90f1392ef99b4d676db3215397bb70fc
|
4
|
+
data.tar.gz: 5d82f8fb83a29877f878716df97dc6499a998834
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb49c04b480775ba01401325d448b9d03181c93f6f456525755ac7a704b8eae5b19a88afd3ac736ff234bb5fc4e7e3a2c0affa0555128efc1e89071eec14f10b
|
7
|
+
data.tar.gz: 382f620801c7e6a447f00de270f2d372a81abbc6f7bb878760e7a000527e2c085389ae694483a426f76d3b75fdb48d93d1d40abcd0601d9db68dee5bc6fd3e95
|
data/.rubocop.tb.yml
CHANGED
@@ -352,8 +352,18 @@ Style/TrailingCommaInArguments:
|
|
352
352
|
- no_comma
|
353
353
|
Enabled: true
|
354
354
|
|
355
|
-
Style/
|
356
|
-
Description: 'Checks for trailing comma in array
|
355
|
+
Style/TrailingCommaInArrayLiteral:
|
356
|
+
Description: 'Checks for trailing comma in array literals.'
|
357
|
+
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
|
358
|
+
EnforcedStyleForMultiline: comma
|
359
|
+
SupportedStylesForMultiline:
|
360
|
+
- comma
|
361
|
+
- consistent_comma
|
362
|
+
- no_comma
|
363
|
+
Enabled: true
|
364
|
+
|
365
|
+
Style/TrailingCommaInHashLiteral:
|
366
|
+
Description: 'Checks for trailing comma in hash literals.'
|
357
367
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
|
358
368
|
EnforcedStyleForMultiline: comma
|
359
369
|
SupportedStylesForMultiline:
|
@@ -398,6 +408,13 @@ Layout/AlignParameters:
|
|
398
408
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-double-indent'
|
399
409
|
Enabled: false
|
400
410
|
|
411
|
+
Layout/ConditionPosition:
|
412
|
+
Description: >-
|
413
|
+
Checks for condition placed in a confusing position relative to
|
414
|
+
the keyword.
|
415
|
+
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#same-line-condition'
|
416
|
+
Enabled: false
|
417
|
+
|
401
418
|
Layout/DotPosition:
|
402
419
|
Description: 'Checks the position of the dot in multi-line method calls.'
|
403
420
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-multi-line-chains'
|
@@ -450,13 +467,6 @@ Lint/CircularArgumentReference:
|
|
450
467
|
Description: "Don't refer to the keyword argument in the default value."
|
451
468
|
Enabled: false
|
452
469
|
|
453
|
-
Lint/ConditionPosition:
|
454
|
-
Description: >-
|
455
|
-
Checks for condition placed in a confusing position relative to
|
456
|
-
the keyword.
|
457
|
-
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#same-line-condition'
|
458
|
-
Enabled: false
|
459
|
-
|
460
470
|
Lint/DeprecatedClassMethods:
|
461
471
|
Description: 'Check for deprecated class method calls.'
|
462
472
|
Enabled: false
|
@@ -523,7 +533,7 @@ Lint/UnderscorePrefixedVariableName:
|
|
523
533
|
Description: 'Do not use prefix `_` for a variable that is used.'
|
524
534
|
Enabled: false
|
525
535
|
|
526
|
-
Lint/
|
536
|
+
Lint/UnneededCopDisableDirective:
|
527
537
|
Description: >-
|
528
538
|
Checks for rubocop:disable comments that can be removed.
|
529
539
|
Note: this cop is not disabled when disabling all cops.
|
data/lib/isodoc/blocks.rb
CHANGED
@@ -10,7 +10,9 @@ module IsoDoc
|
|
10
10
|
|
11
11
|
def note_p_parse(node, div)
|
12
12
|
div.p **{ class: "Note" } do |p|
|
13
|
-
p
|
13
|
+
p.span **{ class: "note_label" } do |s|
|
14
|
+
s << note_label(node)
|
15
|
+
end
|
14
16
|
insert_tab(p, 1)
|
15
17
|
node.first_element_child.children.each { |n| parse(n, p) }
|
16
18
|
end
|
@@ -19,7 +21,9 @@ module IsoDoc
|
|
19
21
|
|
20
22
|
def note_parse1(node, div)
|
21
23
|
div.p **{ class: "Note" } do |p|
|
22
|
-
p
|
24
|
+
p.span **{ class: "note_label" } do |s|
|
25
|
+
s << note_label(node)
|
26
|
+
end
|
23
27
|
insert_tab(p, 1)
|
24
28
|
end
|
25
29
|
node.children.each { |n| parse(n, div) }
|
@@ -39,10 +43,8 @@ module IsoDoc
|
|
39
43
|
|
40
44
|
def figure_name_parse(node, div, name)
|
41
45
|
div.p **{ class: "FigureTitle", align: "center" } do |p|
|
42
|
-
p
|
43
|
-
|
44
|
-
b << " — #{name.text}" if name
|
45
|
-
end
|
46
|
+
p << l10n("#{@figure_lbl} #{get_anchors[node['id']][:label]}")
|
47
|
+
p << " — #{name.text}" if name
|
46
48
|
end
|
47
49
|
end
|
48
50
|
|
@@ -72,7 +74,7 @@ module IsoDoc
|
|
72
74
|
end
|
73
75
|
|
74
76
|
EXAMPLE_TBL_ATTR =
|
75
|
-
{ width: "110pt", valign: "top",
|
77
|
+
{ width: "110pt", valign: "top", class: "example_label",
|
76
78
|
style: "width:82.8pt;padding:.75pt .75pt .75pt .75pt" }.freeze
|
77
79
|
|
78
80
|
# used if we are boxing examples
|
@@ -91,7 +93,7 @@ module IsoDoc
|
|
91
93
|
tr.td **EXAMPLE_TBL_ATTR do |td|
|
92
94
|
td << example_label(node)
|
93
95
|
end
|
94
|
-
tr.td **{ valign: "top" } do |td|
|
96
|
+
tr.td **{ valign: "top", class: "example" } do |td|
|
95
97
|
node.children.each { |n| parse(n, td) }
|
96
98
|
end
|
97
99
|
end
|
@@ -100,9 +102,7 @@ module IsoDoc
|
|
100
102
|
|
101
103
|
def sourcecode_name_parse(_node, div, name)
|
102
104
|
div.p **{ class: "FigureTitle", align: "center" } do |p|
|
103
|
-
p
|
104
|
-
b << name.text
|
105
|
-
end
|
105
|
+
p << name.text
|
106
106
|
end
|
107
107
|
end
|
108
108
|
|
@@ -124,14 +124,14 @@ module IsoDoc
|
|
124
124
|
out.span **{ class: "zzMoveToFollowing" } do |s|
|
125
125
|
s << "<#{node.at(ns("//callout[@target='#{node['id']}']")).text}> "
|
126
126
|
end
|
127
|
-
|
127
|
+
node.children.each { |n| parse(n, out) }
|
128
128
|
@annotation = false
|
129
129
|
end
|
130
130
|
|
131
131
|
def admonition_parse(node, out)
|
132
132
|
name = node["type"]
|
133
133
|
out.div **{ class: "Admonition" } do |t|
|
134
|
-
t.title { |b| b << name.upcase } if name
|
134
|
+
t.title { |b| b << @admonition[name].upcase } if name
|
135
135
|
node.children.each do |n|
|
136
136
|
parse(n, t)
|
137
137
|
end
|
data/lib/isodoc/cleanup.rb
CHANGED
@@ -12,6 +12,7 @@ module IsoDoc
|
|
12
12
|
figure_cleanup(docxml)
|
13
13
|
table_cleanup(docxml)
|
14
14
|
symbols_cleanup(docxml)
|
15
|
+
example_cleanup(docxml)
|
15
16
|
admonition_cleanup(docxml)
|
16
17
|
end
|
17
18
|
|
@@ -24,6 +25,13 @@ module IsoDoc
|
|
24
25
|
docxml
|
25
26
|
end
|
26
27
|
|
28
|
+
def example_cleanup(docxml)
|
29
|
+
docxml.xpath("//table[@class = 'example']//p[not(@class)]").each do |p|
|
30
|
+
p["class"] = "example"
|
31
|
+
end
|
32
|
+
docxml
|
33
|
+
end
|
34
|
+
|
27
35
|
def figure_get_or_make_dl(t)
|
28
36
|
dl = t.at(".//dl")
|
29
37
|
if dl.nil?
|
@@ -93,10 +101,15 @@ module IsoDoc
|
|
93
101
|
t.xpath(".//aside").each do |a|
|
94
102
|
merge_fnref_into_fn_text(a)
|
95
103
|
a.name = "div"
|
96
|
-
a["class"] = "
|
104
|
+
a["class"] = "TableFootnote"
|
97
105
|
t << a.remove
|
98
106
|
end
|
99
107
|
end
|
108
|
+
# preempt html2doc putting MsoNormal there
|
109
|
+
docxml.xpath("//p[not(self::*[@class])]"\
|
110
|
+
"[ancestor::*[@class = 'TableFootnote']]").each do |p|
|
111
|
+
p["class"] = "TableFootnote"
|
112
|
+
end
|
100
113
|
end
|
101
114
|
|
102
115
|
def remove_bottom_border(td)
|
@@ -127,10 +140,13 @@ module IsoDoc
|
|
127
140
|
end
|
128
141
|
|
129
142
|
def table_note_cleanup(docxml)
|
130
|
-
docxml.xpath("//table[div[@class = 'Note'
|
143
|
+
docxml.xpath("//table[div[@class = 'Note' or "\
|
144
|
+
"@class = 'TableFootnote']]").each do |t|
|
131
145
|
tfoot = table_get_or_make_tfoot(t)
|
132
146
|
insert_here = new_fullcolspan_row(t, tfoot)
|
133
|
-
t.xpath("div[@class = 'Note']").each
|
147
|
+
t.xpath("div[@class = 'Note' or @class = 'TableFootnote']").each do |d|
|
148
|
+
d.parent = insert_here
|
149
|
+
end
|
134
150
|
end
|
135
151
|
# preempt html2doc putting MsoNormal there
|
136
152
|
docxml.xpath("//p[not(self::*[@class])]"\
|
data/lib/isodoc/comments.rb
CHANGED
@@ -32,7 +32,7 @@ module IsoDoc
|
|
32
32
|
out.span(**comment_link_attrs(fn, node)) do |s1|
|
33
33
|
s1.span **{ lang: "EN-GB", style: "font-size:9.0pt" } do |s2|
|
34
34
|
s2.a **{ style: "mso-comment-reference:SMC_#{fn};"\
|
35
|
-
"mso-comment-date:#{node['date']}" }
|
35
|
+
"mso-comment-date:#{node['date'].gsub(/[-:Z]/, '')}" }
|
36
36
|
s2.span **{ style: "mso-special-character:comment",
|
37
37
|
target: fn } # do |s|
|
38
38
|
end
|
data/lib/isodoc/convert.rb
CHANGED
@@ -39,6 +39,7 @@ module IsoDoc
|
|
39
39
|
@wordcoverpage = options[:wordcoverpage]
|
40
40
|
@htmlintropage = options[:htmlintropage]
|
41
41
|
@wordintropage = options[:wordintropage]
|
42
|
+
@scripts = options[:scripts]
|
42
43
|
@i18nyaml = options[:i18nyaml]
|
43
44
|
@ulstyle = options[:ulstyle]
|
44
45
|
@olstyle = options[:olstyle]
|
@@ -61,6 +62,7 @@ module IsoDoc
|
|
61
62
|
@closemathdelim = "`"
|
62
63
|
@lang = "en"
|
63
64
|
@script = "Latn"
|
65
|
+
@files_to_delete = []
|
64
66
|
end
|
65
67
|
|
66
68
|
def convert1(docxml, filename, dir)
|
data/lib/isodoc/footnotes.rb
CHANGED
@@ -34,7 +34,7 @@ module IsoDoc
|
|
34
34
|
|
35
35
|
def make_generic_footnote_text(node, fnid)
|
36
36
|
noko do |xml|
|
37
|
-
xml.aside **{ id: "ftn#{fnid}" } do |div|
|
37
|
+
xml.aside **{ id: "ftn#{fnid}", class: "footnote" } do |div|
|
38
38
|
node.children.each { |n| parse(n, div) }
|
39
39
|
end
|
40
40
|
end.join("\n")
|
@@ -53,7 +53,9 @@ module IsoDoc
|
|
53
53
|
# do not output footnote text if we have already seen it for this table
|
54
54
|
return if @seen_footnote.include?(tid + fn)
|
55
55
|
@in_footnote = true
|
56
|
-
out.aside {
|
56
|
+
out.aside **{ class: "footnote" } do |a|
|
57
|
+
a << make_table_footnote_text(node, tid + fn, fn)
|
58
|
+
end
|
57
59
|
@in_footnote = false
|
58
60
|
@seen_footnote << (tid + fn)
|
59
61
|
end
|
data/lib/isodoc/html.rb
CHANGED
@@ -3,10 +3,13 @@ module IsoDoc
|
|
3
3
|
def postprocess(result, filename, dir)
|
4
4
|
result = from_xhtml(cleanup(to_xhtml(result)))
|
5
5
|
toHTML(result, filename)
|
6
|
+
@files_to_delete.each { |f| system "rm #{f}" }
|
6
7
|
end
|
7
8
|
|
8
9
|
def toHTML(result, filename)
|
9
|
-
result = from_xhtml(html_cleanup(to_xhtml(result)))
|
10
|
+
result = from_xhtml(html_cleanup(to_xhtml(result))).
|
11
|
+
gsub(%r{<script><!\[CDATA\[}, "<script>").
|
12
|
+
gsub(%r{\]\]></script>}, "</script>")
|
10
13
|
result = populate_template(result, :html)
|
11
14
|
File.open("#{filename}.html", "w") do |f|
|
12
15
|
f.write(result)
|
@@ -14,8 +17,8 @@ module IsoDoc
|
|
14
17
|
end
|
15
18
|
|
16
19
|
def html_cleanup(x)
|
17
|
-
footnote_backlinks(
|
18
|
-
|
20
|
+
footnote_backlinks(html_toc(
|
21
|
+
term_header(move_images(html_footnote_filter(html_preface(htmlstyle(x))))))
|
19
22
|
)
|
20
23
|
end
|
21
24
|
|
@@ -36,24 +39,38 @@ module IsoDoc
|
|
36
39
|
MATHJAX.gsub("OPEN", open).gsub("CLOSE", close)
|
37
40
|
end
|
38
41
|
|
42
|
+
def term_header(docxml)
|
43
|
+
%w(h1 h2 h3 h4 h5 h6 h7 h8).each do |h|
|
44
|
+
docxml.xpath("//p[@class = 'TermNum'][../#{h}]").each do |p|
|
45
|
+
p.name = "h#{h[1].to_i + 1}"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
docxml
|
49
|
+
end
|
50
|
+
|
39
51
|
def html_preface(docxml)
|
40
52
|
html_cover(docxml) if @htmlcoverpage
|
41
53
|
html_intro(docxml) if @htmlintropage
|
42
|
-
docxml.at("
|
43
|
-
|
54
|
+
docxml.at("//body") << mathjax(@openmathdelim, @closemathdelim)
|
55
|
+
if @scripts
|
56
|
+
scripts = File.read(@scripts, encoding: "UTF-8")
|
57
|
+
docxml.at("//body").add_child scripts #scripts.to_xml(encoding: "US-ASCII")
|
58
|
+
end
|
44
59
|
docxml
|
45
60
|
end
|
46
61
|
|
47
62
|
def html_cover(docxml)
|
48
|
-
cover =
|
63
|
+
cover = File.read(@htmlcoverpage, encoding: "UTF-8")
|
64
|
+
coverxml = to_xhtml_fragment(cover)
|
49
65
|
d = docxml.at('//div[@class="WordSection1"]')
|
50
|
-
d.children.first.add_previous_sibling
|
66
|
+
d.children.first.add_previous_sibling coverxml.to_xml(encoding: "US-ASCII")
|
51
67
|
end
|
52
68
|
|
53
69
|
def html_intro(docxml)
|
54
|
-
|
70
|
+
intro = File.read(@htmlintropage, encoding: "UTF-8")
|
71
|
+
introxml = to_xhtml_fragment(intro)
|
55
72
|
d = docxml.at('//div[@class="WordSection2"]')
|
56
|
-
d.children.first.add_previous_sibling
|
73
|
+
d.children.first.add_previous_sibling introxml.to_xml(encoding: "US-ASCII")
|
57
74
|
end
|
58
75
|
|
59
76
|
def htmlstylesheet
|
@@ -140,7 +157,8 @@ module IsoDoc
|
|
140
157
|
ret = ""
|
141
158
|
prevname = ""
|
142
159
|
docxml.xpath("//h1 | //h2").each do |h|
|
143
|
-
|
160
|
+
next if ["toc-contents", "TermNum"].include? h["class"]
|
161
|
+
ret = html_toc1(h, ret, prevname)
|
144
162
|
prevname = h.name
|
145
163
|
end
|
146
164
|
ret += "<ul>" if prevname == "h2"
|
data/lib/isodoc/i18n-en.yaml
CHANGED
@@ -10,6 +10,7 @@ term_def_boilerplate: |
|
|
10
10
|
</p> </li> </ul>
|
11
11
|
scope: Scope
|
12
12
|
symbols: Symbols and Abbreviated Terms
|
13
|
+
table_of_contents: Table of Contents
|
13
14
|
introduction: Introduction
|
14
15
|
foreword: Foreword
|
15
16
|
termsdef: Terms and Definitions
|
@@ -18,6 +19,7 @@ normref: Normative References
|
|
18
19
|
bibliography: Bibliography
|
19
20
|
clause: Clause
|
20
21
|
annex: Annex
|
22
|
+
appendix: Appendix
|
21
23
|
no_terms_boilerplate: |
|
22
24
|
<p>No terms and definitions are listed in this document.</p>
|
23
25
|
internal_terms_boilerplate: |
|
@@ -57,6 +59,13 @@ deprecated: DEPRECATED
|
|
57
59
|
source: SOURCE
|
58
60
|
and: and
|
59
61
|
all_parts: All Parts
|
62
|
+
admonition: {
|
63
|
+
danger: Danger,
|
64
|
+
warning: Warning,
|
65
|
+
caution: Caution,
|
66
|
+
important: Important,
|
67
|
+
safety precautions: Safety Precautions,
|
68
|
+
}
|
60
69
|
locality: {
|
61
70
|
section: Section,
|
62
71
|
clause: Clause,
|
data/lib/isodoc/i18n-fr.yaml
CHANGED
@@ -10,14 +10,16 @@ term_def_boilerplate: |
|
|
10
10
|
</p> </li> </ul>
|
11
11
|
scope: Domaine d'application
|
12
12
|
symbols: Symboles et termes abrégés
|
13
|
+
table_of_contents: Sommaire
|
13
14
|
introduction: Introduction
|
14
15
|
foreword: Avant-propos
|
15
16
|
termsdef: Terms et définitions
|
16
17
|
termsdefsymbols: Terms, définitions, symboles et termes abrégés
|
17
18
|
normref: Références normatives
|
18
|
-
bibliography:
|
19
|
-
clause:
|
19
|
+
bibliography: Bibliographie
|
20
|
+
clause: Article
|
20
21
|
annex: Annexe
|
22
|
+
appendix: Appendice
|
21
23
|
no_terms_boilerplate: |
|
22
24
|
<p>Aucun terme n'est defini dans le présent document.</p>
|
23
25
|
internal_terms_boilerplate: |
|
@@ -50,6 +52,13 @@ deprecated: DÉCONSEILLÉ
|
|
50
52
|
source: SOURCE
|
51
53
|
and: et
|
52
54
|
all_parts: toutes les parties
|
55
|
+
admonition: {
|
56
|
+
danger: Danger,
|
57
|
+
warning: Avertissement,
|
58
|
+
caution: Attention,
|
59
|
+
important: Important,
|
60
|
+
safety precautions: Précautions de Sécurité,
|
61
|
+
}
|
53
62
|
locality: {
|
54
63
|
section: Section,
|
55
64
|
clause: Article,
|
@@ -63,4 +72,4 @@ locality: {
|
|
63
72
|
example: Exemple,
|
64
73
|
note: Note,
|
65
74
|
formula: Formule
|
66
|
-
}
|
75
|
+
}
|
@@ -8,6 +8,7 @@ term_def_boilerplate: |
|
|
8
8
|
</p> </li> </ul>
|
9
9
|
scope: 范围
|
10
10
|
symbols: 符号、代号和缩略语
|
11
|
+
table_of_contents: 目次
|
11
12
|
introduction: 引言
|
12
13
|
foreword: 前言
|
13
14
|
termsdef: 术语和定义
|
@@ -15,7 +16,8 @@ termsdefsymbols_lbl: 术语、定义、符号、代号和缩略语
|
|
15
16
|
normref: 规范性引用文件
|
16
17
|
bibliography: 参考文献
|
17
18
|
clause: 条
|
18
|
-
annex:
|
19
|
+
annex: 附件
|
20
|
+
appendix: 附录
|
19
21
|
no_terms_boilerplate: |
|
20
22
|
<p>本文件不提供术语和定义。</p>
|
21
23
|
internal_terms_boilerplate: |
|
@@ -50,6 +52,13 @@ deprecated: 被取代
|
|
50
52
|
source: 定义
|
51
53
|
and: 和
|
52
54
|
all_parts: 所有部分
|
55
|
+
admonition: {
|
56
|
+
danger: 危险,
|
57
|
+
warning: 警告,
|
58
|
+
caution: 注意,
|
59
|
+
important: 重要,
|
60
|
+
safety precautions: 安全须知,
|
61
|
+
}
|
53
62
|
locality: {
|
54
63
|
section: 条,
|
55
64
|
clause: 条,
|
data/lib/isodoc/i18n.rb
CHANGED
@@ -20,6 +20,7 @@ module IsoDoc
|
|
20
20
|
@term_def_boilerplate = y["term_def_boilerplate"]
|
21
21
|
@scope_lbl = y["scope"]
|
22
22
|
@symbols_lbl = y["symbols"]
|
23
|
+
@table_of_contents_lbl = y["table_of_contents"]
|
23
24
|
@introduction_lbl = y["introduction"]
|
24
25
|
@foreword_lbl = y["foreword"]
|
25
26
|
@termsdef_lbl = y["termsdef"]
|
@@ -28,6 +29,7 @@ module IsoDoc
|
|
28
29
|
@bibliography_lbl = y["bibliography"]
|
29
30
|
@clause_lbl = y["clause"]
|
30
31
|
@annex_lbl = y["annex"]
|
32
|
+
@appendix_lbl = y["appendix"]
|
31
33
|
@no_terms_boilerplate = y["no_terms_boilerplate"]
|
32
34
|
@internal_terms_boilerplate = y["internal_terms_boilerplate"]
|
33
35
|
@norm_with_refs_pref = y["norm_with_refs_pref"]
|
@@ -56,12 +58,16 @@ module IsoDoc
|
|
56
58
|
@and_lbl = y["and"]
|
57
59
|
@all_parts_lbl = y["all_parts"]
|
58
60
|
@locality = y["locality"]
|
61
|
+
@admonition = y["admonition"]
|
62
|
+
@labels = y
|
63
|
+
@labels["language"] = @lang
|
64
|
+
@labels["script"] = @script
|
59
65
|
end
|
60
66
|
|
61
67
|
def eref_localities1_zh(type, from, to)
|
62
68
|
ret = ", 第#{from.text}" if from
|
63
69
|
ret += "–#{to}" if to
|
64
|
-
ret += @locality[type]
|
70
|
+
ret += (@locality[type] || type.sub(/^locality:/, "").capitalize )
|
65
71
|
ret
|
66
72
|
end
|
67
73
|
|
@@ -69,7 +75,8 @@ module IsoDoc
|
|
69
75
|
subsection = from&.text&.match?(/\./)
|
70
76
|
return l10n(eref_localities1_zh(type, from, to)) if lang == "zh"
|
71
77
|
ret = ","
|
72
|
-
|
78
|
+
loc = @locality[type] || type.sub(/^locality:/, "").capitalize
|
79
|
+
ret += " #{loc}" unless subsection && type == "clause"
|
73
80
|
ret += " #{from.text}" if from
|
74
81
|
ret += "–#{to.text}" if to
|
75
82
|
l10n(ret)
|