-loading language font mappings from file now, for scripts. Still needs to be done for the keybindings menu
This commit is contained in:
parent
1566d62886
commit
9960d49d00
|
|
@ -1,5 +1,4 @@
|
||||||
# Classes for translating text similar to GNU gettext
|
# Classes for translating text similar to GNU gettext
|
||||||
|
|
||||||
# Translator class: translate text to another language
|
# Translator class: translate text to another language
|
||||||
|
|
||||||
# for debug REMOVE BEFORE COMMITTING / BUILDING
|
# for debug REMOVE BEFORE COMMITTING / BUILDING
|
||||||
|
|
@ -7,19 +6,8 @@
|
||||||
|
|
||||||
class Language
|
class Language
|
||||||
FONT_WESTERN = 'Terminus (TTF)'
|
FONT_WESTERN = 'Terminus (TTF)'
|
||||||
FONT_CK = 'WenQuanYi Micro Hei'
|
|
||||||
FONT_J = 'HigashiOme Gothic regular'
|
FONT_J = 'HigashiOme Gothic regular'
|
||||||
LANG_WESTERN = [
|
LANGUAGES = []
|
||||||
'en', 'fr', 'pt_BR', 'es'
|
|
||||||
]
|
|
||||||
LANG_J = [
|
|
||||||
'ja'
|
|
||||||
]
|
|
||||||
LANG_CK = [
|
|
||||||
'ko', 'zh_CN'
|
|
||||||
]
|
|
||||||
LANGUAGES = (LANG_WESTERN + LANG_CK + LANG_J)
|
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
def set(lc)
|
def set(lc)
|
||||||
dbg_print(lc.lang)
|
dbg_print(lc.lang)
|
||||||
|
|
@ -27,47 +15,42 @@ class Language
|
||||||
@tr = nil
|
@tr = nil
|
||||||
script = nil
|
script = nil
|
||||||
[lc.full.to_s, lc.lang.to_s].each do |name|
|
[lc.full.to_s, lc.lang.to_s].each do |name|
|
||||||
path = "Languages/#{name}.pot"
|
path = "Languages/#{name}.po"
|
||||||
dbg_print(path)
|
dbg_print(path)
|
||||||
if FileTest.exist?(path)
|
if FileTest.exist?(path)
|
||||||
load_pot(path)
|
load_pot(path)
|
||||||
if LANG_CK.include? name
|
loadFontMap
|
||||||
Font.default_name = FONT_CK
|
Font.default_name = @languageFontMap[name]
|
||||||
elsif LANG_J.include? name
|
|
||||||
Font.default_name = FONT_J
|
|
||||||
else
|
|
||||||
Font.default_name = FONT_WESTERN
|
|
||||||
end
|
|
||||||
Journal.setLang(name)
|
Journal.setLang(name)
|
||||||
dbg_print(Font.default_name)
|
dbg_print(Font.default_name)
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
reset_fonts(@text_sprites)
|
reset_fonts(@text_sprites)
|
||||||
Oneshot.set_yes_no(tr('Yes'), tr('No'))
|
Oneshot.set_yes_no(tr('Yes'), tr('No'))
|
||||||
end
|
end
|
||||||
|
|
||||||
def load_pot(path)
|
def load_pot(path)
|
||||||
msgid = nil
|
msgid = nil
|
||||||
msgstr = nil
|
msgstr = nil
|
||||||
@data = Hash.new
|
@data = Hash.new
|
||||||
if FileTest.exist?(path)
|
if FileTest.exist?(path)
|
||||||
File.readlines(path).each do |line|
|
File.readlines(path).each do |line|
|
||||||
if line.start_with?("msgid ")
|
if line.start_with?("msgid ")
|
||||||
line = line[6..-1]
|
line = line[6..-1]
|
||||||
#unescape the string
|
#unescape the string
|
||||||
eval("msgid = " + line)
|
eval("msgid = " + line)
|
||||||
elsif line.start_with?("msgstr ")
|
elsif line.start_with?("msgstr ")
|
||||||
line = line[7..-1]
|
line = line[7..-1]
|
||||||
#unescape the string
|
#unescape the string
|
||||||
eval("msgstr = " + line)
|
eval("msgstr = " + line)
|
||||||
if !(msgid.nil? || msgid.empty?)
|
if !(msgid.nil? || msgid.empty?)
|
||||||
@data[Oneshot::crc32(msgid)] = msgstr
|
@data[Oneshot::crc32(msgid)] = msgstr
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Translate some text
|
# Translate some text
|
||||||
def tr(string)
|
def tr(string)
|
||||||
|
|
@ -81,6 +64,23 @@ class Language
|
||||||
return String.new(rv)
|
return String.new(rv)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def loadFontMap
|
||||||
|
if !@fontMapLoaded
|
||||||
|
@languageFontMap = Hash.new
|
||||||
|
path = "Languages/language_fonts.ini"
|
||||||
|
if FileTest.exist?(path)
|
||||||
|
File.readlines(path).each do |line|
|
||||||
|
parts = line.split("=", 2)
|
||||||
|
if parts.length == 2
|
||||||
|
LANGUAGES.push(parts[0])
|
||||||
|
@languageFontMap[parts[0]] = parts[1].strip
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
@fontMapLoaded = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# Turn all database items into translatable strings
|
# Turn all database items into translatable strings
|
||||||
def initialize_database
|
def initialize_database
|
||||||
$data_actors.each do |i|
|
$data_actors.each do |i|
|
||||||
|
|
@ -116,7 +116,7 @@ class Language
|
||||||
if sprites.kind_of?(Array)
|
if sprites.kind_of?(Array)
|
||||||
sprites.each do |spr|
|
sprites.each do |spr|
|
||||||
if spr.kind_of?(Sprite) and !spr.disposed?
|
if spr.kind_of?(Sprite) and !spr.disposed?
|
||||||
spr.bitmap.font.name = Font.default_name
|
spr.bitmap.font.name = Font.default_name
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
elsif sprites.kind_of?(Hash)
|
elsif sprites.kind_of?(Hash)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue