sisu 7.0.0

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.
Files changed (207) hide show
  1. checksums.yaml +7 -0
  2. data/bin/sisu +367 -0
  3. data/bin/sisugem +367 -0
  4. data/data/sisu/image/arrow_next_red.png +0 -0
  5. data/data/sisu/image/arrow_prev_red.png +0 -0
  6. data/data/sisu/image/arrow_up_red.png +0 -0
  7. data/data/sisu/image/b_bluebell.png +0 -0
  8. data/data/sisu/image/b_doc.png +0 -0
  9. data/data/sisu/image/b_epub.png +0 -0
  10. data/data/sisu/image/b_home.png +0 -0
  11. data/data/sisu/image/b_info.png +0 -0
  12. data/data/sisu/image/b_odf.png +0 -0
  13. data/data/sisu/image/b_pdf.png +0 -0
  14. data/data/sisu/image/b_search.png +0 -0
  15. data/data/sisu/image/b_toc.png +0 -0
  16. data/data/sisu/image/bullet_08.png +0 -0
  17. data/data/sisu/image/bullet_09.png +0 -0
  18. data/data/sisu/image/bullet_10.png +0 -0
  19. data/data/sisu/image/bullet_11.png +0 -0
  20. data/data/sisu/image/bullet_12.png +0 -0
  21. data/data/sisu/image/bullet_doc.png +0 -0
  22. data/data/sisu/image/bullet_red.png +0 -0
  23. data/data/sisu/image/dot_clear.png +0 -0
  24. data/data/sisu/image/dot_white.png +0 -0
  25. data/data/sisu/image/gplv3.png +0 -0
  26. data/data/sisu/image/gplv3_free_software.png +0 -0
  27. data/data/sisu/image/next.png +0 -0
  28. data/data/sisu/image/previous.png +0 -0
  29. data/data/sisu/image/rb7.ico +0 -0
  30. data/data/sisu/image/sisu.png +0 -0
  31. data/data/sisu/image/toctoc.png +0 -0
  32. data/data/sisu/version.yml +5 -0
  33. data/lib/sisu.rb +94 -0
  34. data/lib/sisu/air.rb +80 -0
  35. data/lib/sisu/ao.rb +590 -0
  36. data/lib/sisu/ao_character_check.rb +102 -0
  37. data/lib/sisu/ao_composite.rb +286 -0
  38. data/lib/sisu/ao_doc_objects.rb +565 -0
  39. data/lib/sisu/ao_doc_str.rb +2269 -0
  40. data/lib/sisu/ao_endnotes.rb +136 -0
  41. data/lib/sisu/ao_expand_insertions.rb +514 -0
  42. data/lib/sisu/ao_hash_digest.rb +174 -0
  43. data/lib/sisu/ao_idx.rb +422 -0
  44. data/lib/sisu/ao_images.rb +187 -0
  45. data/lib/sisu/ao_metadata.rb +86 -0
  46. data/lib/sisu/ao_misc_arrange.rb +207 -0
  47. data/lib/sisu/ao_numbering.rb +720 -0
  48. data/lib/sisu/ao_persist.rb +194 -0
  49. data/lib/sisu/ao_references.rb +502 -0
  50. data/lib/sisu/ao_syntax.rb +640 -0
  51. data/lib/sisu/cgi.rb +84 -0
  52. data/lib/sisu/cgi_pgsql.rb +270 -0
  53. data/lib/sisu/cgi_sql_common.rb +986 -0
  54. data/lib/sisu/cgi_sqlite.rb +244 -0
  55. data/lib/sisu/conf.rb +287 -0
  56. data/lib/sisu/constants.rb +388 -0
  57. data/lib/sisu/css.rb +3484 -0
  58. data/lib/sisu/db_columns.rb +1997 -0
  59. data/lib/sisu/db_create.rb +689 -0
  60. data/lib/sisu/db_dbi.rb +90 -0
  61. data/lib/sisu/db_drop.rb +207 -0
  62. data/lib/sisu/db_import.rb +877 -0
  63. data/lib/sisu/db_indexes.rb +146 -0
  64. data/lib/sisu/db_load_tuple.rb +323 -0
  65. data/lib/sisu/db_remove.rb +182 -0
  66. data/lib/sisu/db_select.rb +230 -0
  67. data/lib/sisu/db_sqltxt.rb +173 -0
  68. data/lib/sisu/db_tests.rb +114 -0
  69. data/lib/sisu/dbi.rb +166 -0
  70. data/lib/sisu/dbi_discrete.rb +206 -0
  71. data/lib/sisu/digests.rb +306 -0
  72. data/lib/sisu/dp.rb +1606 -0
  73. data/lib/sisu/dp_identify_markup.rb +161 -0
  74. data/lib/sisu/dp_make.rb +668 -0
  75. data/lib/sisu/embedded.rb +149 -0
  76. data/lib/sisu/errors.rb +84 -0
  77. data/lib/sisu/generic_parts.rb +131 -0
  78. data/lib/sisu/git.rb +277 -0
  79. data/lib/sisu/html.rb +775 -0
  80. data/lib/sisu/html_concordance.rb +391 -0
  81. data/lib/sisu/html_format.rb +1348 -0
  82. data/lib/sisu/html_harvest.rb +109 -0
  83. data/lib/sisu/html_harvest_author_format.rb +111 -0
  84. data/lib/sisu/html_harvest_authors.rb +466 -0
  85. data/lib/sisu/html_harvest_topics.rb +893 -0
  86. data/lib/sisu/html_lite_shared.rb +324 -0
  87. data/lib/sisu/html_manifest.rb +1032 -0
  88. data/lib/sisu/html_minitoc.rb +230 -0
  89. data/lib/sisu/html_parts.rb +437 -0
  90. data/lib/sisu/html_persist.rb +237 -0
  91. data/lib/sisu/html_promo.rb +440 -0
  92. data/lib/sisu/html_scroll.rb +235 -0
  93. data/lib/sisu/html_segments.rb +716 -0
  94. data/lib/sisu/html_shared.rb +62 -0
  95. data/lib/sisu/html_table.rb +64 -0
  96. data/lib/sisu/html_tune.rb +301 -0
  97. data/lib/sisu/hub.rb +277 -0
  98. data/lib/sisu/hub_actions.rb +1122 -0
  99. data/lib/sisu/hub_loop_markup_files.rb +170 -0
  100. data/lib/sisu/hub_options.rb +1695 -0
  101. data/lib/sisu/i18n.rb +702 -0
  102. data/lib/sisu/manpage.rb +377 -0
  103. data/lib/sisu/manpage_format.rb +85 -0
  104. data/lib/sisu/object_munge.rb +307 -0
  105. data/lib/sisu/prog_text_translation.rb +1702 -0
  106. data/lib/sisu/qrcode.rb +754 -0
  107. data/lib/sisu/relaxng.rb +1153 -0
  108. data/lib/sisu/remote.rb +246 -0
  109. data/lib/sisu/rexml.rb +148 -0
  110. data/lib/sisu/se.rb +158 -0
  111. data/lib/sisu/se_cleanoutput.rb +145 -0
  112. data/lib/sisu/se_clear.rb +105 -0
  113. data/lib/sisu/se_createsite.rb +273 -0
  114. data/lib/sisu/se_css.rb +221 -0
  115. data/lib/sisu/se_date.rb +92 -0
  116. data/lib/sisu/se_db.rb +214 -0
  117. data/lib/sisu/se_envcall.rb +326 -0
  118. data/lib/sisu/se_file_op.rb +2758 -0
  119. data/lib/sisu/se_filemap.rb +247 -0
  120. data/lib/sisu/se_get_init.rb +238 -0
  121. data/lib/sisu/se_hub_particulars.rb +234 -0
  122. data/lib/sisu/se_info_env.rb +2179 -0
  123. data/lib/sisu/se_info_port.rb +70 -0
  124. data/lib/sisu/se_info_system.rb +202 -0
  125. data/lib/sisu/se_load.rb +108 -0
  126. data/lib/sisu/se_processing.rb +659 -0
  127. data/lib/sisu/se_programs.rb +394 -0
  128. data/lib/sisu/se_remotes.rb +553 -0
  129. data/lib/sisu/se_standardise_lang.rb +176 -0
  130. data/lib/sisu/se_version.rb +174 -0
  131. data/lib/sisu/shared_images.rb +137 -0
  132. data/lib/sisu/shared_markup_alt.rb +336 -0
  133. data/lib/sisu/shared_metadata.rb +1361 -0
  134. data/lib/sisu/shared_sem.rb +156 -0
  135. data/lib/sisu/sisu_thor_lib.rb +407 -0
  136. data/lib/sisu/sitemaps.rb +224 -0
  137. data/lib/sisu/src_kdissert_share.rb +102 -0
  138. data/lib/sisu/src_po4a_share.rb +309 -0
  139. data/lib/sisu/src_po4a_shelf.rb +1217 -0
  140. data/lib/sisu/src_po4a_shelf_set.rb +297 -0
  141. data/lib/sisu/src_po4a_sst_ao_sst.rb +893 -0
  142. data/lib/sisu/src_po4a_sst_ao_sst_set.rb +284 -0
  143. data/lib/sisu/src_po4a_sstm.rb +135 -0
  144. data/lib/sisu/src_shared.rb +347 -0
  145. data/lib/sisu/src_sisupod_make.rb +171 -0
  146. data/lib/sisu/src_sisupod_sstm.rb +109 -0
  147. data/lib/sisu/sst_convert_markup.rb +323 -0
  148. data/lib/sisu/sst_do_inline_footnotes.rb +440 -0
  149. data/lib/sisu/sst_from_xml.rb +178 -0
  150. data/lib/sisu/sst_identify_markup.rb +482 -0
  151. data/lib/sisu/sst_to_s_xml_sax.rb +471 -0
  152. data/lib/sisu/termsheet.rb +163 -0
  153. data/lib/sisu/texinfo.rb +430 -0
  154. data/lib/sisu/texinfo_format.rb +541 -0
  155. data/lib/sisu/texpdf.rb +1162 -0
  156. data/lib/sisu/texpdf_format.rb +1689 -0
  157. data/lib/sisu/texpdf_parts.rb +235 -0
  158. data/lib/sisu/txt_asciidoc.rb +354 -0
  159. data/lib/sisu/txt_asciidoc_decorate.rb +207 -0
  160. data/lib/sisu/txt_markdown.rb +389 -0
  161. data/lib/sisu/txt_markdown_decorate.rb +207 -0
  162. data/lib/sisu/txt_orgmode.rb +376 -0
  163. data/lib/sisu/txt_orgmode_decorate.rb +186 -0
  164. data/lib/sisu/txt_output.rb +86 -0
  165. data/lib/sisu/txt_plain.rb +410 -0
  166. data/lib/sisu/txt_plain_decorate.rb +189 -0
  167. data/lib/sisu/txt_read.rb +109 -0
  168. data/lib/sisu/txt_rst.rb +371 -0
  169. data/lib/sisu/txt_rst_decorate.rb +186 -0
  170. data/lib/sisu/txt_shared.rb +241 -0
  171. data/lib/sisu/txt_textile.rb +367 -0
  172. data/lib/sisu/txt_textile_decorate.rb +186 -0
  173. data/lib/sisu/update.rb +141 -0
  174. data/lib/sisu/urls.rb +696 -0
  175. data/lib/sisu/utils.rb +232 -0
  176. data/lib/sisu/utils_composite.rb +115 -0
  177. data/lib/sisu/utils_response.rb +114 -0
  178. data/lib/sisu/utils_screen_text_color.rb +472 -0
  179. data/lib/sisu/utils_spell.rb +99 -0
  180. data/lib/sisu/webrick.rb +191 -0
  181. data/lib/sisu/wikispeak.rb +375 -0
  182. data/lib/sisu/xhtml.rb +472 -0
  183. data/lib/sisu/xhtml_epub2.rb +890 -0
  184. data/lib/sisu/xhtml_epub2_concordance.rb +322 -0
  185. data/lib/sisu/xhtml_epub2_format.rb +2272 -0
  186. data/lib/sisu/xhtml_epub2_persist.rb +278 -0
  187. data/lib/sisu/xhtml_epub2_segments.rb +599 -0
  188. data/lib/sisu/xhtml_epub2_tune.rb +330 -0
  189. data/lib/sisu/xhtml_parts.rb +183 -0
  190. data/lib/sisu/xhtml_shared.rb +62 -0
  191. data/lib/sisu/xhtml_table.rb +97 -0
  192. data/lib/sisu/xml_docbook5.rb +376 -0
  193. data/lib/sisu/xml_dom.rb +624 -0
  194. data/lib/sisu/xml_fictionbook2.rb +389 -0
  195. data/lib/sisu/xml_format.rb +865 -0
  196. data/lib/sisu/xml_md_oai_pmh_dc.rb +229 -0
  197. data/lib/sisu/xml_odf_odt.rb +887 -0
  198. data/lib/sisu/xml_odf_odt_format.rb +674 -0
  199. data/lib/sisu/xml_parts.rb +191 -0
  200. data/lib/sisu/xml_persist.rb +126 -0
  201. data/lib/sisu/xml_sax.rb +521 -0
  202. data/lib/sisu/xml_scaffold_structure_collapsed.rb +198 -0
  203. data/lib/sisu/xml_scaffold_structure_sisu.rb +201 -0
  204. data/lib/sisu/xml_shared.rb +665 -0
  205. data/lib/sisu/xml_tables.rb +261 -0
  206. data/lib/sisu/zap.rb +90 -0
  207. metadata +251 -0
data/lib/sisu/i18n.rb ADDED
@@ -0,0 +1,702 @@
1
+ # encoding: utf-8
2
+ =begin
3
+
4
+ * Name: SiSU
5
+
6
+ ** Description: documents, structuring, processing, publishing, search
7
+ *** internationalisation
8
+
9
+ ** Author: Ralph Amissah
10
+ <ralph@amissah.com>
11
+ <ralph.amissah@gmail.com>
12
+
13
+ ** Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
14
+ 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Ralph Amissah,
15
+ All Rights Reserved.
16
+
17
+ ** License: GPL 3 or later:
18
+
19
+ SiSU, a framework for document structuring, publishing and search
20
+
21
+ Copyright (C) Ralph Amissah
22
+
23
+ This program is free software: you can redistribute it and/or modify it
24
+ under the terms of the GNU General Public License as published by the Free
25
+ Software Foundation, either version 3 of the License, or (at your option)
26
+ any later version.
27
+
28
+ This program is distributed in the hope that it will be useful, but WITHOUT
29
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
30
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
31
+ more details.
32
+
33
+ You should have received a copy of the GNU General Public License along with
34
+ this program. If not, see <http://www.gnu.org/licenses/>.
35
+
36
+ If you have Internet connection, the latest version of the GPL should be
37
+ available at these locations:
38
+ <http://www.fsf.org/licensing/licenses/gpl.html>
39
+ <http://www.gnu.org/licenses/gpl.html>
40
+
41
+ <http://www.sisudoc.org/sisu/en/manifest/gpl.fsf.html>
42
+
43
+ ** SiSU uses:
44
+ * Standard SiSU markup syntax,
45
+ * Standard SiSU meta-markup syntax, and the
46
+ * Standard SiSU object citation numbering and system
47
+
48
+ ** Hompages:
49
+ <http://www.jus.uio.no/sisu>
50
+ <http://www.sisudoc.org>
51
+
52
+ ** Git
53
+ <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=summary>
54
+ <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob;f=lib/sisu/i18n.rb;hb=HEAD>
55
+
56
+ =end
57
+ module SiSU_i18n
58
+ @@language_table,@@language_list=nil,nil
59
+ class Languages
60
+ def language
61
+ def table
62
+ @@language_table ||= {
63
+ am: { c: 'am', n: 'Amharic', t: 'Amharic', xlp: 'amharic' },
64
+ bg: { c: 'bg', n: 'Bulgarian', t: 'Български (Bəlgarski)', xlp: 'bulgarian' },
65
+ bn: { c: 'bn', n: 'Bengali', t: 'Bengali', xlp: 'bengali' },
66
+ br: { c: 'br', n: 'Breton', t: 'Breton', xlp: 'breton' },
67
+ ca: { c: 'ca', n: 'Catalan', t: 'catalan', xlp: 'catalan' },
68
+ cs: { c: 'cs', n: 'Czech', t: 'česky', xlp: 'czech' },
69
+ cy: { c: 'cy', n: 'Welsh', t: 'Welsh', xlp: 'welsh' },
70
+ da: { c: 'da', n: 'Danish', t: 'dansk', xlp: 'danish' },
71
+ de: { c: 'de', n: 'German', t: 'Deutsch', xlp: 'german' },
72
+ el: { c: 'el', n: 'Greek', t: 'Ελληνικά (Ellinika)', xlp: 'greek' },
73
+ en: { c: 'en', n: 'English', t: 'English', xlp: 'english' },
74
+ eo: { c: 'eo', n: 'Esperanto', t: 'Esperanto', xlp: 'esperanto' },
75
+ es: { c: 'es', n: 'Spanish', t: 'español', xlp: 'spanish' },
76
+ et: { c: 'et', n: 'Estonian', t: 'Estonian', xlp: 'estonian' },
77
+ eu: { c: 'eu', n: 'Basque', t: 'basque', xlp: 'basque' },
78
+ fi: { c: 'fi', n: 'Finnish', t: 'suomi', xlp: 'finnish' },
79
+ fr: { c: 'fr', n: 'French', t: 'français', xlp: 'french' },
80
+ ga: { c: 'ga', n: 'Irish', t: 'Irish', xlp: 'irish' },
81
+ gl: { c: 'gl', n: 'Galician', t: 'Galician', xlp: 'galician' },
82
+ he: { c: 'he', n: 'Hebrew', t: 'Hebrew', xlp: 'hebrew' },
83
+ hi: { c: 'hi', n: 'Hindi', t: 'Hindi', xlp: 'hindi' },
84
+ hr: { c: 'hr', n: 'Croatian', t: 'Croatian', xlp: 'croatian' },
85
+ hy: { c: 'hy', n: 'Armenian', t: 'Armenian', xlp: 'armenian' },
86
+ ia: { c: 'ia', n: 'Interlingua', t: 'Interlingua', xlp: 'interlingua' },
87
+ is: { c: 'is', n: 'Icelandic', t: 'Icelandic', xlp: 'icelandic' },
88
+ it: { c: 'it', n: 'Italian', t: 'Italiano', xlp: 'italian' },
89
+ ja: { c: 'ja', n: 'Japanese', t: '日本語 (Nihongo)', xlp: 'japanese' },
90
+ ko: { c: 'ko', n: 'Korean', t: 'Korean', xlp: 'korean' },
91
+ la: { c: 'la', n: 'Latin', t: 'Latin', xlp: 'latin' },
92
+ lo: { c: 'lo', n: 'Lao', t: 'Lao', xlp: 'lao' },
93
+ lt: { c: 'lt', n: 'Lithuanian', t: 'Lithuanian', xlp: 'lithuanian' },
94
+ lv: { c: 'lv', n: 'Latvian', t: 'Latvian', xlp: 'latvian' },
95
+ ml: { c: 'ml', n: 'Malayalam', t: 'Malayalam', xlp: 'malayalam' },
96
+ mr: { c: 'mr', n: 'Marathi', t: 'Marathi', xlp: 'marathi' },
97
+ nl: { c: 'nl', n: 'Dutch', t: 'Nederlands', xlp: 'dutch' },
98
+ no: { c: 'no', n: 'Norwegian', t: 'norsk', xlp: 'norsk' },
99
+ nn: { c: 'nn', n: 'Norwegian Nynorsk', t: 'nynorsk', xlp: 'nynorsk' },
100
+ oc: { c: 'oc', n: 'Occitan', t: 'Occitan', xlp: 'occitan' },
101
+ pl: { c: 'pl', n: 'Polish', t: 'polski', xlp: 'polish' },
102
+ pt: { c: 'pt', n: 'Portuguese', t: 'Português', xlp: 'portuges' },
103
+ pt_BR: { c: 'pt_BR', n: 'Portuguese Brazil', t: 'Brazilian Português', xlp: 'brazilian' },
104
+ ro: { c: 'ro', n: 'Romanian', t: 'română', xlp: 'romanian' },
105
+ ru: { c: 'ru', n: 'Russian', t: 'Русский (Russkij)', xlp: 'russian' },
106
+ sa: { c: 'sa', n: 'Sanskrit', t: 'Sanskrit', xlp: 'sanskrit' },
107
+ se: { c: 'se', n: 'Sami', t: 'Samin', xlp: 'samin' },
108
+ sk: { c: 'sk', n: 'Slovak', t: 'slovensky', xlp: 'slovak' },
109
+ sl: { c: 'sl', n: 'Slovenian', t: 'Slovenian', xlp: 'slovenian' },
110
+ sq: { c: 'sq', n: 'Albanian', t: 'Albanian', xlp: 'albanian' },
111
+ sr: { c: 'sr', n: 'Serbian', t: 'Serbian', xlp: 'serbian' },
112
+ sv: { c: 'sv', n: 'Swedish', t: 'svenska', xlp: 'swedish' },
113
+ ta: { c: 'ta', n: 'Tamil', t: 'Tamil', xlp: 'tamil' },
114
+ te: { c: 'te', n: 'Telugu', t: 'Telugu', xlp: 'telugu' },
115
+ th: { c: 'th', n: 'Thai', t: 'Thai', xlp: 'thai' },
116
+ tk: { c: 'tk', n: 'Turkmen', t: 'Turkmen', xlp: 'turkmen' },
117
+ tr: { c: 'tr', n: 'Turkish', t: 'Türkçe', xlp: 'turkish' },
118
+ uk: { c: 'uk', n: 'Ukranian', t: 'українська (ukrajins\'ka)', xlp: 'ukrainian' },
119
+ ur: { c: 'ur', n: 'Urdu', t: 'Urdu', xlp: 'urdu' },
120
+ us: { c: 'en', n: 'English (American)',t: 'English', xlp: 'english' },
121
+ vi: { c: 'vi', n: 'Vietnamese', t: 'Vietnamese', xlp: 'vietnamese' },
122
+ zh: { c: 'zh', n: 'Chinese', t: '中文', xlp: 'chinese' },
123
+ en: { c: 'en', n: 'English', t: 'English', xlp: 'english' },
124
+ xx: { c: 'xx', n: 'Default', t: 'English', xlp: 'english' },
125
+ }
126
+ end
127
+ def list
128
+ @@language_list ||= {
129
+ 'am' => table[:am],
130
+ 'bg' => table[:bg],
131
+ 'bn' => table[:bn],
132
+ 'br' => table[:br],
133
+ 'ca' => table[:ca],
134
+ 'cs' => table[:cs],
135
+ 'cy' => table[:cy],
136
+ 'da' => table[:da],
137
+ 'de' => table[:de],
138
+ 'el' => table[:el],
139
+ 'en' => table[:en],
140
+ 'eo' => table[:eo],
141
+ 'es' => table[:es],
142
+ 'et' => table[:et],
143
+ 'eu' => table[:eu],
144
+ 'fi' => table[:fi],
145
+ 'fr' => table[:fr],
146
+ 'ga' => table[:ga],
147
+ 'gl' => table[:gl],
148
+ 'he' => table[:he],
149
+ 'hi' => table[:hi],
150
+ 'hr' => table[:hr],
151
+ 'hy' => table[:hy],
152
+ 'ia' => table[:ia],
153
+ 'is' => table[:is],
154
+ 'it' => table[:it],
155
+ 'ja' => table[:ja],
156
+ 'ko' => table[:ko],
157
+ 'la' => table[:la],
158
+ 'lo' => table[:lo],
159
+ 'lt' => table[:lt],
160
+ 'lv' => table[:lv],
161
+ 'ml' => table[:ml],
162
+ 'mr' => table[:mr],
163
+ 'nl' => table[:nl],
164
+ 'no' => table[:no],
165
+ 'nn' => table[:nn],
166
+ 'oc' => table[:oc],
167
+ 'pl' => table[:pl],
168
+ 'pt' => table[:pt],
169
+ 'pt_BR' => table[:pt_BR],
170
+ 'ro' => table[:ro],
171
+ 'ru' => table[:ru],
172
+ 'sa' => table[:sa],
173
+ 'se' => table[:se],
174
+ 'sk' => table[:sk],
175
+ 'sl' => table[:sl],
176
+ 'sq' => table[:sq],
177
+ 'sr' => table[:sr],
178
+ 'sv' => table[:sv],
179
+ 'ta' => table[:ta],
180
+ 'te' => table[:te],
181
+ 'th' => table[:th],
182
+ 'tk' => table[:tk],
183
+ 'tr' => table[:tr],
184
+ 'uk' => table[:uk],
185
+ 'ur' => table[:ur],
186
+ 'us' => table[:en],
187
+ 'vi' => table[:vi],
188
+ 'zh' => table[:zh],
189
+ 'en' => table[:en],
190
+ 'xx' => table[:en]
191
+ }
192
+ end
193
+ self
194
+ end
195
+ end
196
+ class Alphabet
197
+ def initialize(lng_code)
198
+ @lng_code=lng_code
199
+ end
200
+ def hash_arrays
201
+ @alph=case @lng_code
202
+ when /en/ #english
203
+ {
204
+ u: %w[A B C D E F G H I J K L M N O P Q R S T U V W X Y Z],
205
+ l: %w[a b c d e f g h i j k l m n o p q r s t u v w x y z]
206
+ }
207
+ when /da|no|nn/ #danish, norwegian
208
+ {
209
+ u: %w[A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Å Æ Ø],
210
+ l: %w[a b c d e f g h i j k l m n o p q r s t u v w x y z å æ ø]
211
+ #u: %W[A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Æ Ø Å],
212
+ #l: %w[a b c d e f g h i j k l m n o p q r s t u v w x y z æ ø å]
213
+ }
214
+ when /sv/ #swedish
215
+ {
216
+ u: %w[A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Å Ä Ö],
217
+ l: %w[a b c d e f g h i j k l m n o p q r s t u v w x y z å ä ö]
218
+ }
219
+ else #english default
220
+ {
221
+ u: %w[A B C D E F G H I J K L M N O P Q R S T U V W X Y Z],
222
+ l: %w[a b c d e f g h i j k l m n o p q r s t u v w x y z]
223
+ }
224
+ end
225
+ end
226
+ def hash_strings
227
+ { u: hash_arrays[:u].join, l: hash_arrays[:l].join }
228
+ end
229
+ end
230
+ end
231
+ __END__
232
+ Language Lists
233
+ * po4a c:
234
+ <http://www.debian.org/international/l10n/po/>
235
+ Px[:lng_lst] see constants.rb
236
+ * polyglossia xlp:
237
+ <http://mirrors.ctan.org/macros/xetex/latex/polyglossia/polyglossia.pdf>
238
+ missing from (:c) list:
239
+ arabic asturian bahasai bahasam coptic divehi farsi lsorbian magyar scottish syriac usorbian
240
+ note ISO_639-1
241
+ <http://en.wikipedia.org/wiki/ISO_639-1>
242
+ <http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes>
243
+ also note ISO_639-2
244
+ <http://en.wikipedia.org/wiki/ISO_639-2>
245
+ <http://en.wikipedia.org/wiki/List_of_ISO_639-2_codes>
246
+
247
+ Px[:lng_lst] # constants.rb
248
+
249
+ module SiSU_TextTranslation
250
+ class Language
251
+ def initialize(md)
252
+ @md=md
253
+ end
254
+ def tex_name(char)
255
+ @lang=if char
256
+ case char
257
+ when 'sq' then 'albanian'
258
+ when 'am' then 'amharic'
259
+ #when 'ar' then 'arabic' # see polyglossia
260
+ when 'hy' then 'armenian'
261
+ #when '' then 'asturian' # polyglossia
262
+ #when '' then 'bahasai' # polyglossia
263
+ #when '' then 'bahasam' # polyglossia
264
+ when 'eu' then 'basque'
265
+ when 'bn' then 'bengali'
266
+ when 'pt_BR' then 'brazilian'
267
+ when 'br' then 'breton'
268
+ when 'bg' then 'bulgarian'
269
+ when 'ca' then 'catalan' # see polyglossia
270
+ #when '' then 'coptic' # polyglossia
271
+ when 'hr' then 'croatian'
272
+ when 'cs' then 'czech'
273
+ when 'da' then 'danish'
274
+ #when '' then 'divehi' # polyglossia
275
+ when 'nl' then 'dutch' # see polyglossia
276
+ when 'en' then 'english' # see polyglossia
277
+ when 'eo' then 'esperanto' # see polyglossia
278
+ when 'et' then 'estonian'
279
+ when 'gl' then 'galician'
280
+ when 'de' then 'german'
281
+ when 'el' then 'greek' #gl ?
282
+ when 'he' then 'hebrew'
283
+ when 'hi' then 'hindi'
284
+ when 'is' then 'icelandic'
285
+ when 'ia' then 'interlingua'
286
+ when 'ga' then 'irish'
287
+ when 'it' then 'italian'
288
+ #when '' then 'farsi' # polyglossia
289
+ when 'fi' then 'finnish'
290
+ when 'fr' then 'french'
291
+ when 'lo' then 'lao'
292
+ when 'la' then 'latin'
293
+ when 'lv' then 'latvian'
294
+ when 'lt' then 'lithuanian'
295
+ #when '' then 'lsorbian' # polyglossia
296
+ #when '' then 'magyar' # polyglossia
297
+ when 'ml' then 'malayalam'
298
+ when 'mr' then 'marathi'
299
+ #when 'hu' then 'magyar'
300
+ when 'no' then 'norske'
301
+ when 'nn' then 'nynorsk'
302
+ when 'oc' then 'occitan'
303
+ when 'pl' then 'polish'
304
+ when 'pt' then 'portuges'
305
+ when 'ro' then 'romanian'
306
+ when 'ru' then 'russian'
307
+ when 'se' then 'samin' #(check sami?)
308
+ when 'sa' then 'sanskrit'
309
+ when 'sr' then 'serbian'
310
+ #when '' then 'scottish' # polyglossia (gd (Gaelic (Scots)))
311
+ when 'sk' then 'slovak'
312
+ when 'sl' then 'slovenian'
313
+ when 'es' then 'spanish'
314
+ when 'sv' then 'swedish'
315
+ when 'ta' then 'tamil'
316
+ when 'te' then 'telugu'
317
+ when 'th' then 'thai'
318
+ when 'tr' then 'turkish'
319
+ when 'tk' then 'turkmen'
320
+ when 'uk' then 'ukrainian'
321
+ when 'ur' then 'urdu'
322
+ #when '' then 'usorbian' # polyglossia
323
+ when 'vi' then 'vietnamese'
324
+ when 'cy' then 'welsh'
325
+ when 'us' then 'USenglish' # depreciated, see iso-639-2
326
+ else then 'english'
327
+ end
328
+ else 'english'
329
+ end
330
+ end
331
+ end
332
+ end
333
+ #% Language List po4a
334
+ http://www.debian.org/international/l10n/po/
335
+ see polyglossia for subset
336
+ * CSB (Unknown language)
337
+ * KAB (Unknown language)
338
+ * TLH (Unknown language)
339
+ * aa (Afar)
340
+ * ab (Abkhazian)
341
+ * af (Afrikaans)
342
+ * af_ZA (Afrikaans, as spoken in South Africa)
343
+ * am (Amharic)
344
+ * an (Unknown language)
345
+ * ang (Unknown language)
346
+ * ar (Arabic)
347
+ * ar_AR (Arabic, as spoken in Argentina)
348
+ * ar_EG (Arabic, as spoken in Egypt)
349
+ * ar_OM (Arabic, as spoken in Oman)
350
+ * ar_PS (Arabic, as spoken in Palestinian Territory, Occupied)
351
+ * ar_SA (Arabic, as spoken in Saudi Arabia)
352
+ * ar_SY (Arabic, as spoken in Syrian Arab Republic)
353
+ * as (Assamese)
354
+ * ast (Unknown language)
355
+ * ay (Aymara)
356
+ * az (Azerbaijani)
357
+ * az_IR (Azerbaijani, as spoken in Iran)
358
+ * be (Belarusian)
359
+ * be@latin (Unknown language)
360
+ * be@tarask (Unknown language)
361
+ * bem (Unknown language)
362
+ * bg (Bulgarian)
363
+ * bg_BG (Bulgarian, as spoken in Bulgaria)
364
+ * bi (Bislama)
365
+ * bn (Bengali)
366
+ * bn_BD (Bengali, as spoken in Bangladesh)
367
+ * bn_IN (Bengali, as spoken in India)
368
+ * bo (Tibetan)
369
+ * br (Breton)
370
+ * bs (Bosnian)
371
+ * bs_BA (Bosnian, as spoken in Bosnia and Herzegovina)
372
+ * bs_BS (Bosnian, as spoken in Bahamas)
373
+ * byn (Unknown language)
374
+ * ca (Catalan)
375
+ * ca@valencia (Unknown language)
376
+ * ca_AD (Catalan, as spoken in Andorra)
377
+ * ca_ES (Catalan, as spoken in Spain)
378
+ * ca_ES@valencia (Unknown language)
379
+ * ca_FR (Catalan, as spoken in France)
380
+ * ca_IT (Catalan, as spoken in Italy)
381
+ * co (Corsican)
382
+ * crh (Unknown language)
383
+ * cs (Czech)
384
+ * cs_CZ (Czech, as spoken in Czech Republic)
385
+ * csb (Unknown language)
386
+ * cy (Welsh)
387
+ * cy_GB (Welsh, as spoken in Great Britain)
388
+ * cz (Unknown language)
389
+ * da (Danish)
390
+ * da_DK (Danish, as spoken in Denmark)
391
+ * de (German)
392
+ * de_AT (German, as spoken in Austria)
393
+ * de_CH (German, as spoken in Switzerland)
394
+ * de_DE (German, as spoken in Germany)
395
+ * dk (Unknown language)
396
+ * dz (Dzongkha)
397
+ * el (Greek)
398
+ * el_GR (Greek, as spoken in Greece)
399
+ * en (English)
400
+ * en@boldquot (Unknown language)
401
+ * en@quot (Unknown language)
402
+ * en@shaw (Unknown language)
403
+ * en_AU (English, as spoken in Australia)
404
+ * en_CA (English, as spoken in Canada)
405
+ * en_GB (English, as spoken in Great Britain)
406
+ * en_NZ (English, as spoken in New Zealand)
407
+ * en_US (English, as spoken in United States)
408
+ * en_US@piglatin (Unknown language)
409
+ * en_ZA (English, as spoken in South Africa)
410
+ * eo (Esperanto)
411
+ * es (Spanish)
412
+ * es_AR (Spanish, as spoken in Argentina)
413
+ * es_CL (Spanish, as spoken in Chile)
414
+ * es_CO (Spanish, as spoken in Colombia)
415
+ * es_CR (Spanish, as spoken in Costa Rica)
416
+ * es_DO (Spanish, as spoken in Dominican Republic)
417
+ * es_EC (Spanish, as spoken in Ecuador)
418
+ * es_ES (Spanish, as spoken in Spain)
419
+ * es_GA (Spanish, as spoken in Gabon)
420
+ * es_GT (Spanish, as spoken in Guatemala)
421
+ * es_HN (Spanish, as spoken in Honduras)
422
+ * es_LA (Spanish, as spoken in Lao People''s Democratic Republic)
423
+ * es_MX (Spanish, as spoken in Mexico)
424
+ * es_NI (Spanish, as spoken in Nicaragua)
425
+ * es_PA (Spanish, as spoken in Panama)
426
+ * es_PE (Spanish, as spoken in Peru)
427
+ * es_PR (Spanish, as spoken in Puerto Rico)
428
+ * es_SV (Spanish, as spoken in El Salvador)
429
+ * es_UY (Spanish, as spoken in Uruguay)
430
+ * es_VE (Spanish, as spoken in Venezuela)
431
+ * et (Estonian)
432
+ * et_EE (Estonian, as spoken in Estonia)
433
+ * eu (Basque)
434
+ * eu_ES (Basque, as spoken in Spain)
435
+ * fa (Persian)
436
+ * fa_AF (Persian, as spoken in Afghanistan)
437
+ * fa_IR (Persian, as spoken in Iran)
438
+ * fi (Finnish)
439
+ * fi_FI (Finnish, as spoken in Finland)
440
+ * fil (Unknown language)
441
+ * fo (Faeroese)
442
+ * fo_FO (Faeroese, as spoken in Faroe Islands)
443
+ * fr (French)
444
+ * fr_BE (French, as spoken in Belgium)
445
+ * fr_CA (French, as spoken in Canada)
446
+ * fr_CH (French, as spoken in Switzerland)
447
+ * fr_FR (French, as spoken in France)
448
+ * fr_FX (French, as spoken in France, Metropolitan)
449
+ * fr_LU (French, as spoken in Luxembourg)
450
+ * frp (Unknown language)
451
+ * fur (Unknown language)
452
+ * fy (Frisian)
453
+ * fy_NL (Frisian, as spoken in Netherlands)
454
+ * ga (Irish)
455
+ * gd (Gaelic (Scots))
456
+ * gez (Unknown language)
457
+ * gl (Galician)
458
+ * gl_ES (Galician, as spoken in Spain)
459
+ * gn (Guarani)
460
+ * gu (Gujarati)
461
+ * gv (Manx)
462
+ * ha (Hausa)
463
+ * he (Hebrew)
464
+ * he_IL (Hebrew, as spoken in Israel)
465
+ * hi (Hindi)
466
+ * hne (Unknown language)
467
+ * hr (Croatian)
468
+ * hr_HR (Croatian, as spoken in Croatia)
469
+ * ht (Unknown language)
470
+ * hu (Hungarian)
471
+ * hu_HU (Hungarian, as spoken in Hungary)
472
+ * hy (Armenian)
473
+ * ia (Interlingua)
474
+ * id (Indonesian)
475
+ * id_ID (Indonesian, as spoken in Indonesia)
476
+ * ig (Unknown language)
477
+ * io (Unknown language)
478
+ * is (Icelandic)
479
+ * is_IS (Icelandic, as spoken in Iceland)
480
+ * it (Italian)
481
+ * it_CH (Italian, as spoken in Switzerland)
482
+ * it_IT (Italian, as spoken in Italy)
483
+ * iu (Inuktitut)
484
+ * ja (Japanese)
485
+ * ja_JP (Japanese, as spoken in Japan)
486
+ * jv (Unknown language)
487
+ * jv_ID (Unknown language)
488
+ * ka (Georgian)
489
+ * kab (Unknown language)
490
+ * kk (Kazakh)
491
+ * kl (Kalaallisut)
492
+ * km (Khmer)
493
+ * km_KH (Khmer, as spoken in Cambodia)
494
+ * kn (Kannada)
495
+ * ko (Korean)
496
+ * ko_KR (Korean, as spoken in Korea)
497
+ * ks (Kashmiri)
498
+ * ku (Kurdish)
499
+ * kw (Cornish)
500
+ * ky (Kirghiz)
501
+ * la (Latin)
502
+ * lb (Letzeburgesch)
503
+ * lg (Unknown language)
504
+ * li (Unknown language)
505
+ * ln (Lingala)
506
+ * lo (Lao)
507
+ * lt (Lithuanian)
508
+ * lt_LT (Lithuanian, as spoken in Lithuania)
509
+ * lv (Latvian)
510
+ * lv_LV (Latvian, as spoken in Latvia)
511
+ * mai (Unknown language)
512
+ * mal (Unknown language)
513
+ * mg (Malagasy)
514
+ * mi (Maori)
515
+ * mk (Macedonian)
516
+ * mk_MK (Macedonian, as spoken in Macedonia, the Former Yugoslav Republic of)
517
+ * ml (Malayalam)
518
+ * ml_IN (Malayalam, as spoken in India)
519
+ * ml_ML (Malayalam, as spoken in Mali)
520
+ * mn (Mongolian)
521
+ * mr (Marathi)
522
+ * ms (Malay)
523
+ * ms_MY (Malay, as spoken in Malaysia)
524
+ * mt (Maltese)
525
+ * my (Burmese)
526
+ * my_MM (Burmese, as spoken in Myanmar)
527
+ * na (Nauru)
528
+ * nb (Norwegian Bokmål)
529
+ * nb_NO (Norwegian Bokmål, as spoken in Norway)
530
+ * nds (Unknown language)
531
+ * ne (Nepali)
532
+ * new (Unknown language)
533
+ * nl (Dutch)
534
+ * nl_BE (Dutch, as spoken in Belgium)
535
+ * nl_NL (Dutch, as spoken in Netherlands)
536
+ * nn (Norwegian Nynorsk)
537
+ * nn_NO (Norwegian Nynorsk, as spoken in Norway)
538
+ * no (Norwegian)
539
+ * no_NO (Norwegian, as spoken in Norway)
540
+ * nr (Ndebele, South)
541
+ * nso (Unknown language)
542
+ * oc (Occitan (post 1500))
543
+ * oc_FR (Occitan (post 1500), as spoken in France)
544
+ * om (Oromo)
545
+ * or (Oriya)
546
+ * pa (Panjabi)
547
+ * pl (Polish)
548
+ * pl_PL (Polish, as spoken in Poland)
549
+ * pms (Unknown language)
550
+ * ps (Pushto)
551
+ * pt (Portuguese)
552
+ * pt_BR (Portuguese, as spoken in Brazil)
553
+ * pt_PT (Portuguese, as spoken in Portugal)
554
+ * qu (Quechua)
555
+ * rm (Rhaeto-Romance)
556
+ * ro (Romanian)
557
+ * ro_RO (Romanian, as spoken in Romania)
558
+ * ru (Russian)
559
+ * ru_RU (Russian, as spoken in Russia)
560
+ * rw (Kinyarwanda)
561
+ * sa (Sanskrit)
562
+ * sc (Sardinian)
563
+ * sd (Sindhi)
564
+ * se (Sami)
565
+ * se_NO (Sami, as spoken in Norway)
566
+ * si (Sinhalese)
567
+ * si_LK (Sinhalese, as spoken in Sri Lanka)
568
+ * si_SI (Sinhalese, as spoken in Slovenia)
569
+ * sk (Slovak)
570
+ * sk_SK (Slovak, as spoken in Slovakia)
571
+ * sl (Slovenian)
572
+ * sl_SI (Slovenian, as spoken in Slovenia)
573
+ * sl_SL (Slovenian, as spoken in Sierra Leone)
574
+ * so (Somali)
575
+ * sp (Unknown language)
576
+ * sq (Albanian)
577
+ * sq_AL (Albanian, as spoken in Albania)
578
+ * sr (Serbian)
579
+ * sr@Latn (Unknown language)
580
+ * sr@ije (Unknown language)
581
+ * sr@ijekavian (Unknown language)
582
+ * sr@ijekavianlatin (Unknown language)
583
+ * sr@latin (Unknown language)
584
+ * sr_SR (Serbian, as spoken in Suriname)
585
+ * sr_YU (Serbian, as spoken in Yugoslavia)
586
+ * st (Sotho)
587
+ * su (Sundanese)
588
+ * su_ID (Sundanese, as spoken in Indonesia)
589
+ * sv (Swedish)
590
+ * sv_SE (Swedish, as spoken in Sweden)
591
+ * sw (Swahili)
592
+ * ta (Tamil)
593
+ * ta_LK (Tamil, as spoken in Sri Lanka)
594
+ * te (Telugu)
595
+ * tg (Tajik)
596
+ * th (Thai)
597
+ * th_TH (Thai, as spoken in Thailand)
598
+ * ti (Tigrinya)
599
+ * tig (Unknown language)
600
+ * tk (Turkmen)
601
+ * tl (Tagalog)
602
+ * tlh (Unknown language)
603
+ * to (Tonga)
604
+ * tr (Turkish)
605
+ * tr_TR (Turkish, as spoken in Turkey)
606
+ * tt (Tatar)
607
+ * ug (Uighur)
608
+ * ug_CN (Uighur, as spoken in China)
609
+ * uk (Ukrainian)
610
+ * uk_UA (Ukrainian, as spoken in Ukraine)
611
+ * ur (Urdu)
612
+ * ur_PK (Urdu, as spoken in Pakistan)
613
+ * uz (Uzbek)
614
+ * uz@cyrillic (Unknown language)
615
+ * ve (Unknown language)
616
+ * vi (Vietnamese)
617
+ * vi_AR (Vietnamese, as spoken in Argentina)
618
+ * vi_DE (Vietnamese, as spoken in Germany)
619
+ * vi_PL (Vietnamese, as spoken in Poland)
620
+ * vi_TR (Vietnamese, as spoken in Turkey)
621
+ * vi_VN (Vietnamese, as spoken in Vietnam)
622
+ * wa (Unknown language)
623
+ * wal (Unknown language)
624
+ * wo (Wolof)
625
+ * xh (Xhosa)
626
+ * yi (Yiddish)
627
+ * yo (Yoruba)
628
+ * zh (Chinese)
629
+ * zh_CN (Chinese, as spoken in China)
630
+ * zh_HK (Chinese, as spoken in Hong Kong)
631
+ * zh_TW (Chinese, as spoken in Taiwan)
632
+ * zu (Zulu)
633
+
634
+ 'sq'; 'albanian'
635
+ 'am'; 'amharic'
636
+ #'ar'; 'arabic' # see polyglossia
637
+ 'hy'; 'armenian'
638
+ #''; 'asturian' # polyglossia
639
+ #''; 'bahasai' # polyglossia
640
+ #''; 'bahasam' # polyglossia
641
+ 'eu'; 'basque'
642
+ 'bn'; 'bengali'
643
+ 'pt_BR'; 'brazilian'
644
+ 'br'; 'breton'
645
+ 'bg'; 'bulgarian'
646
+ 'ca'; 'catalan' # see polyglossia
647
+ #''; 'coptic' # polyglossia
648
+ 'hr'; 'croatian'
649
+ 'cs'; 'czech'
650
+ 'da'; 'danish'
651
+ #''; 'divehi' # polyglossia
652
+ 'nl'; 'dutch' # see polyglossia
653
+ 'en'; 'english' # see polyglossia
654
+ 'eo'; 'esperanto' # see polyglossia
655
+ 'et'; 'estonian'
656
+ 'gl'; 'galician'
657
+ 'de'; 'german'
658
+ 'el'; 'greek' #gl ?
659
+ 'he'; 'hebrew'
660
+ 'hi'; 'hindi'
661
+ 'is'; 'icelandic'
662
+ 'ia'; 'interlingua'
663
+ 'ga'; 'irish'
664
+ 'it'; 'italian'
665
+ #''; 'farsi' # polyglossia
666
+ 'fi'; 'finnish'
667
+ 'fr'; 'french'
668
+ 'lo'; 'lao'
669
+ 'la'; 'latin'
670
+ 'lv'; 'latvian'
671
+ 'lt'; 'lithuanian'
672
+ #''; 'lsorbian' # polyglossia
673
+ #''; 'magyar' # polyglossia
674
+ 'ml'; 'malayalam'
675
+ 'mr'; 'marathi'
676
+ #'hu'; 'magyar'
677
+ 'no'; 'norske'
678
+ 'nn'; 'nynorsk'
679
+ 'oc'; 'occitan'
680
+ 'pl'; 'polish'
681
+ 'pt'; 'portuges'
682
+ 'ro'; 'romanian'
683
+ 'ru'; 'russian'
684
+ 'se'; 'samin' #(check sami?)
685
+ 'sa'; 'sanskrit'
686
+ 'sr'; 'serbian'
687
+ #''; 'scottish' # polyglossia (gd (Gaelic (Scots)))
688
+ 'sk'; 'slovak'
689
+ 'sl'; 'slovenian'
690
+ 'es'; 'spanish'
691
+ 'sv'; 'swedish'
692
+ 'ta'; 'tamil'
693
+ 'te'; 'telugu'
694
+ 'th'; 'thai'
695
+ 'tr'; 'turkish'
696
+ 'tk'; 'turkmen'
697
+ 'uk'; 'ukrainian'
698
+ 'ur'; 'urdu'
699
+ #''; 'usorbian' # polyglossia
700
+ 'vi'; 'vietnamese'
701
+ 'cy'; 'welsh'
702
+ 'us'; 'USenglish' # depreciated, see iso-639-2