Reorganized files
This commit is contained in:
parent
66b1cbe21f
commit
c0bf423bbf
16 changed files with 153 additions and 156 deletions
77
scripts/i18n_Translator.rb
Normal file
77
scripts/i18n_Translator.rb
Normal file
|
@ -0,0 +1,77 @@
|
|||
# Classes for translating text similar to GNU gettext
|
||||
|
||||
# Translation class: contains translation data
|
||||
class Translation
|
||||
attr_reader :events
|
||||
attr_reader :scripts
|
||||
attr_reader :actors
|
||||
attr_reader :items
|
||||
end
|
||||
|
||||
# Translator class: translate text to another language
|
||||
class Translator
|
||||
# Create Translator object
|
||||
def initialize(code = :en)
|
||||
if code == :en
|
||||
@data = nil
|
||||
else
|
||||
begin
|
||||
@data = load_data("Languages/#{code.to_s}.rxdata")
|
||||
rescue
|
||||
@data = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# Translate all database items
|
||||
def translate_database
|
||||
$data_actors.each do |i|
|
||||
i.name = actor(i.name) if i && !i.name.empty?
|
||||
end
|
||||
$data_items.each do |i|
|
||||
i.name, i.description = item(i.name, i.description) if i && !i.name.empty?
|
||||
end
|
||||
end
|
||||
|
||||
# Translate script text
|
||||
def script(name, text)
|
||||
if @data == nil
|
||||
return text
|
||||
else
|
||||
return @data.scripts["#{name}/#{text}"] || text
|
||||
end
|
||||
end
|
||||
|
||||
# Translate text from event
|
||||
def event(name, text)
|
||||
if @data == nil
|
||||
return text
|
||||
else
|
||||
return @data.events["#{name}/#{text}"] || text
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
# Translate Actor name
|
||||
def actor(name)
|
||||
if @data == nil
|
||||
return name
|
||||
else
|
||||
return @data.actors[name] || name
|
||||
end
|
||||
end
|
||||
|
||||
# Translate Item name (and description)
|
||||
def item(name, description)
|
||||
if @data == nil
|
||||
return [name, description]
|
||||
else
|
||||
return @data.items[name] || [name, description]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# Hacky translation helper function
|
||||
def tr(text)
|
||||
$tr.script(Kernel.caller.first.split(':', 3)[1], text)
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue