Use TouchGFX
This commit is contained in:
@ -0,0 +1,72 @@
|
||||
#!env ruby
|
||||
# Copyright (c) 2018(-2023) STMicroelectronics.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This file is part of the TouchGFX 4.21.2 distribution.
|
||||
#
|
||||
# This software is licensed under terms that can be found in the LICENSE file in
|
||||
# the root directory of this software component.
|
||||
# If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
#
|
||||
###############################################################################/
|
||||
|
||||
$:.unshift File.dirname(__FILE__)
|
||||
|
||||
require 'lib/text_database_validator'
|
||||
require 'lib/translation_io'
|
||||
require 'lib/version'
|
||||
|
||||
WINDOWS_LINE_ENDINGS = "\r\n"
|
||||
UNIX_LINE_ENDINGS = "\n"
|
||||
#on windows/mingw file.write will it self translate \n to \r\n, on linux not
|
||||
LINE_ENDINGS = RUBY_PLATFORM.match(/linux/) ? WINDOWS_LINE_ENDINGS : UNIX_LINE_ENDINGS
|
||||
|
||||
def root_dir
|
||||
# Get the dirname of this (main.rb) file:
|
||||
@root_dir ||= File.dirname(__FILE__)
|
||||
end
|
||||
|
||||
class Main
|
||||
def self.banner
|
||||
<<-BANNER
|
||||
Export and import the text database for translation using e.g. Excel
|
||||
|
||||
Usage: #{File.basename($0)} {export|import} assets/texts/texts.xml translations.xlsx [language]*
|
||||
|
||||
Export: Will create the "translations.xlsx" by extracting the texts for
|
||||
all languages from the given assets/texts/texts.xml
|
||||
|
||||
Import: Will merge the text translations from "translations.xlsx" into
|
||||
the given assets/texts/texts.xml. Only the actual texts are
|
||||
imported, not alignment and text direction.
|
||||
|
||||
If no languages are specified, all languages will be handled,
|
||||
otherwise only the specified languages are imported/exported.
|
||||
BANNER
|
||||
end
|
||||
|
||||
abort self.banner if ARGV.count < 3
|
||||
|
||||
option = ARGV.shift
|
||||
abort self.banner if option!='import' && option!='export'
|
||||
file_name = ARGV.shift # texts.xml
|
||||
translation_name = ARGV.shift # translations.xlsx
|
||||
languages = ARGV # Remaining arguments are the languages
|
||||
|
||||
begin
|
||||
TextDatabaseValidator.new.validate(file_name)
|
||||
translation_io = TranslationIO.new(file_name, translation_name)
|
||||
if option == 'export'
|
||||
translation_io.exportExcel(languages)
|
||||
else option=='import'
|
||||
translation_io.importExcel(languages)
|
||||
end
|
||||
|
||||
rescue SystemExit => e
|
||||
|
||||
rescue Exception => e
|
||||
STDERR.puts e
|
||||
STDERR.puts e.backtrace if ENV['DEBUG']
|
||||
abort "An error occurred during translations #{option}!"
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user