# encoding: utf-8
=begin
* Name: SiSU
* Description: a framework for document structuring, publishing and search
* Author: Ralph Amissah
* Copyright: (C) 1997 - 2011, Ralph Amissah, All Rights Reserved.
* License: GPL 3 or later:
SiSU, a framework for document structuring, publishing and search
Copyright (C) Ralph Amissah
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option)
any later version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see .
If you have Internet connection, the latest version of the GPL should be
available at these locations:
* SiSU uses:
* Standard SiSU markup syntax,
* Standard SiSU meta-markup syntax, and the
* Standard SiSU object citation numbering and system
* Hompages:
* Download:
* Ralph Amissah
** Description: internationalisation
=end
module SiSU_i18n
@@language_table,@@language_list=nil,nil
class Languages
def language
def table
@@language_table ||= {
am: { c: 'am', n: 'Amharic', t: 'Amharic', xlp: 'amharic' },
bg: { c: 'bg', n: 'Bulgarian', t: 'Български (Bəlgarski)', xlp: 'bulgarian' },
bn: { c: 'bn', n: 'Bengali', t: 'Bengali', xlp: 'bengali' },
br: { c: 'br', n: 'Breton', t: 'Breton', xlp: 'breton' },
ca: { c: 'ca', n: 'Catalan', t: 'catalan', xlp: 'catalan' },
cs: { c: 'cs', n: 'Czech', t: 'česky', xlp: 'czech' },
cy: { c: 'cy', n: 'Welsh', t: 'Welsh', xlp: 'welsh' },
da: { c: 'da', n: 'Danish', t: 'dansk', xlp: 'danish' },
de: { c: 'de', n: 'German', t: 'Deutsch', xlp: 'german' },
el: { c: 'el', n: 'Greek', t: 'Ελληνικά (Ellinika)', xlp: 'greek' },
en: { c: 'en', n: 'English', t: 'English', xlp: 'english' },
eo: { c: 'eo', n: 'Esperanto', t: 'Esperanto', xlp: 'esperanto' },
es: { c: 'es', n: 'Spanish', t: 'español', xlp: 'spanish' },
et: { c: 'et', n: 'Estonian', t: 'Estonian', xlp: 'estonian' },
eu: { c: 'eu', n: 'Basque', t: 'basque', xlp: 'basque' },
fi: { c: 'fi', n: 'Finnish', t: 'suomi', xlp: 'finnish' },
fr: { c: 'fr', n: 'French', t: 'français', xlp: 'french' },
ga: { c: 'ga', n: 'Irish', t: 'Irish', xlp: 'irish' },
gl: { c: 'gl', n: 'Galician', t: 'Galician', xlp: 'galician' },
he: { c: 'he', n: 'Hebrew', t: 'Hebrew', xlp: 'hebrew' },
hi: { c: 'hi', n: 'Hindi', t: 'Hindi', xlp: 'hindi' },
hr: { c: 'hr', n: 'Croatian', t: 'Croatian', xlp: 'croatian' },
hy: { c: 'hy', n: 'Armenian', t: 'Armenian', xlp: 'armenian' },
ia: { c: 'ia', n: 'Interlingua', t: 'Interlingua', xlp: 'interlingua' },
is: { c: 'is', n: 'Icelandic', t: 'Icelandic', xlp: 'icelandic' },
it: { c: 'it', n: 'Italian', t: 'Italiano', xlp: 'italian' },
la: { c: 'la', n: 'Latin', t: 'Latin', xlp: 'latin' },
lo: { c: 'lo', n: 'Lao', t: 'Lao', xlp: 'lao' },
lt: { c: 'lt', n: 'Lithuanian', t: 'Lithuanian', xlp: 'lithuanian' },
lv: { c: 'lv', n: 'Latvian', t: 'Latvian', xlp: 'latvian' },
ml: { c: 'ml', n: 'Malayalam', t: 'Malayalam', xlp: 'malayalam' },
mr: { c: 'mr', n: 'Marathi', t: 'Marathi', xlp: 'marathi' },
nl: { c: 'nl', n: 'Dutch', t: 'Nederlands', xlp: 'dutch' },
no: { c: 'no', n: 'Norwegian', t: 'norsk', xlp: 'norsk' },
nn: { c: 'nn', n: 'Norwegian Nynorsk', t: 'nynorsk', xlp: 'nynorsk' },
oc: { c: 'oc', n: 'Occitan', t: 'Occitan', xlp: 'occitan' },
pl: { c: 'pl', n: 'Polish', t: 'polski', xlp: 'polish' },
pt: { c: 'pt', n: 'Portuguese', t: 'Português', xlp: 'portuges' },
pt_BR: { c: 'pt_BR', n: 'Portuguese Brazil', t: 'Brazilian Português', xlp: 'brazilian' },
ro: { c: 'ro', n: 'Romanian', t: 'română', xlp: 'romanian' },
ru: { c: 'ru', n: 'Russian', t: 'Русский (Russkij)', xlp: 'russian' },
sa: { c: 'sa', n: 'Sanskrit', t: 'Sanskrit', xlp: 'sanskrit' },
se: { c: 'se', n: 'Sami', t: 'Samin', xlp: 'samin' },
sk: { c: 'sk', n: 'Slovak', t: 'slovensky', xlp: 'slovak' },
sl: { c: 'sl', n: 'Slovenian', t: 'Slovenian', xlp: 'slovenian' },
sq: { c: 'sq', n: 'Albanian', t: 'Albanian', xlp: 'albanian' },
sr: { c: 'sr', n: 'Serbian', t: 'Serbian', xlp: 'serbian' },
sv: { c: 'sv', n: 'Swedish', t: 'svenska', xlp: 'swedish' },
ta: { c: 'ta', n: 'Tamil', t: 'Tamil', xlp: 'tamil' },
te: { c: 'te', n: 'Telugu', t: 'Telugu', xlp: 'telugu' },
th: { c: 'th', n: 'Thai', t: 'Thai', xlp: 'thai' },
tk: { c: 'tk', n: 'Turkmen', t: 'Turkmen', xlp: 'turkmen' },
tr: { c: 'tr', n: 'Turkish', t: 'Türkçe', xlp: 'turkish' },
uk: { c: 'uk', n: 'Ukranian', t: 'українська (ukrajins\'ka)', xlp: 'ukrainian' },
ur: { c: 'ur', n: 'Urdu', t: 'Urdu', xlp: 'urdu' },
us: { c: 'en', n: 'English (American)',t: 'English', xlp: 'english' },
vi: { c: 'vi', n: 'Vietnamese', t: 'Vietnamese', xlp: 'vietnamese' },
en: { c: 'en', n: 'English', t: 'English', xlp: 'english' },
xx: { c: 'xx', n: 'Default', t: 'English', xlp: 'english' },
}
end
def list
@@language_list ||= {
'am' => table[:am],
'bg' => table[:bg],
'bn' => table[:bn],
'br' => table[:br],
'ca' => table[:ca],
'cs' => table[:cs],
'cy' => table[:cy],
'da' => table[:da],
'de' => table[:de],
'el' => table[:el],
'en' => table[:en],
'eo' => table[:eo],
'es' => table[:es],
'et' => table[:et],
'eu' => table[:eu],
'fi' => table[:fi],
'fr' => table[:fr],
'ga' => table[:ga],
'gl' => table[:gl],
'he' => table[:he],
'hi' => table[:hi],
'hr' => table[:hr],
'hy' => table[:hy],
'ia' => table[:ia],
'is' => table[:is],
'it' => table[:it],
'la' => table[:la],
'lo' => table[:lo],
'lt' => table[:lt],
'lv' => table[:lv],
'ml' => table[:ml],
'mr' => table[:mr],
'nl' => table[:nl],
'no' => table[:no],
'nn' => table[:nn],
'oc' => table[:oc],
'pl' => table[:pl],
'pt' => table[:pt],
'pt_BR' => table[:pt_BR],
'ro' => table[:ro],
'ru' => table[:ru],
'sa' => table[:sa],
'se' => table[:se],
'sk' => table[:sk],
'sl' => table[:sl],
'sq' => table[:sq],
'sr' => table[:sr],
'sv' => table[:sv],
'ta' => table[:ta],
'te' => table[:te],
'th' => table[:th],
'tk' => table[:tk],
'tr' => table[:tr],
'uk' => table[:uk],
'ur' => table[:ur],
'us' => table[:en],
'vi' => table[:vi],
'en' => table[:en],
'xx' => table[:en]
}
end
self
end
end
end
__END__
Language Lists
* po4a c:
Px[:lng_lst]=%w[am bg bn br ca cs cy da de el en eo es et eu fi fr ga gl he hi hr hy ia is it la lo lt lv ml mr nl nn no oc pl pt pt_BR ro ru sa se sk sl sq sr sv ta te th tk tr uk ur us vi]
* polyglossia xlp:
missing from (:c) list:
arabic asturian bahasai bahasam coptic divehi farsi lsorbian magyar scottish syriac usorbian
note ISO_639-1
also note ISO_639-2
Px[:lng_lst] # constants.rb
module SiSU_text_translation
class Language
def initialize(md)
@md=md
end
def tex_name(char)
@lang=if char
case char
when 'sq'; 'albanian'
when 'am'; 'amharic'
#when 'ar'; 'arabic' # see polyglossia
when 'hy'; 'armenian'
#when ''; 'asturian' # polyglossia
#when ''; 'bahasai' # polyglossia
#when ''; 'bahasam' # polyglossia
when 'eu'; 'basque'
when 'bn'; 'bengali'
when 'pt_BR'; 'brazilian'
when 'br'; 'breton'
when 'bg'; 'bulgarian'
when 'ca'; 'catalan' # see polyglossia
#when ''; 'coptic' # polyglossia
when 'hr'; 'croatian'
when 'cs'; 'czech'
when 'da'; 'danish'
#when ''; 'divehi' # polyglossia
when 'nl'; 'dutch' # see polyglossia
when 'en'; 'english' # see polyglossia
when 'eo'; 'esperanto' # see polyglossia
when 'et'; 'estonian'
when 'gl'; 'galician'
when 'de'; 'german'
when 'el'; 'greek' #gl ?
when 'he'; 'hebrew'
when 'hi'; 'hindi'
when 'is'; 'icelandic'
when 'ia'; 'interlingua'
when 'ga'; 'irish'
when 'it'; 'italian'
#when ''; 'farsi' # polyglossia
when 'fi'; 'finnish'
when 'fr'; 'french'
when 'lo'; 'lao'
when 'la'; 'latin'
when 'lv'; 'latvian'
when 'lt'; 'lithuanian'
#when ''; 'lsorbian' # polyglossia
#when ''; 'magyar' # polyglossia
when 'ml'; 'malayalam'
when 'mr'; 'marathi'
#when 'hu'; 'magyar'
when 'no'; 'norske'
when 'nn'; 'nynorsk'
when 'oc'; 'occitan'
when 'pl'; 'polish'
when 'pt'; 'portuges'
when 'ro'; 'romanian'
when 'ru'; 'russian'
when 'se'; 'samin' #(check sami?)
when 'sa'; 'sanskrit'
when 'sr'; 'serbian'
#when ''; 'scottish' # polyglossia (gd (Gaelic (Scots)))
when 'sk'; 'slovak'
when 'sl'; 'slovenian'
when 'es'; 'spanish'
when 'sv'; 'swedish'
when 'ta'; 'tamil'
when 'te'; 'telugu'
when 'th'; 'thai'
when 'tr'; 'turkish'
when 'tk'; 'turkmen'
when 'uk'; 'ukrainian'
when 'ur'; 'urdu'
#when ''; 'usorbian' # polyglossia
when 'vi'; 'vietnamese'
when 'cy'; 'welsh'
when 'us'; 'USenglish' # depreciated, see iso-639-2
else 'english'
end
else 'english'
end
end
end
end