sisu 7.0.0

Sign up to get free protection for your applications and to get access to all the features.
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