Added script function for finding what needs to be translated.
This commit is contained in:
@@ -4,6 +4,18 @@ The StepMania 5 Changelog covers all post-sm-ssc changes. For a list of changes
|
|||||||
from StepMania 4 alpha 5 to sm-ssc v1.2.5, see Changelog_sm-ssc.txt.
|
from StepMania 4 alpha 5 to sm-ssc v1.2.5, see Changelog_sm-ssc.txt.
|
||||||
________________________________________________________________________________
|
________________________________________________________________________________
|
||||||
|
|
||||||
|
2015/02/02
|
||||||
|
----------
|
||||||
|
* [Scripts] find_missing_strings_in_theme_translations function added to
|
||||||
|
_fallback scripts to assist translators in finding what needs to be
|
||||||
|
translated. If you need/want to run it on your them, write a piece of lua
|
||||||
|
like this:
|
||||||
|
find_missing_strings_in_theme_translations("_fallback", "en.ini")
|
||||||
|
The first arg is the folder name of the theme to look at.
|
||||||
|
The second arg is the name of the language that is fully translated. All
|
||||||
|
other languages will be compared to it to decide what is missing or unused.
|
||||||
|
[kyzentun]
|
||||||
|
|
||||||
2015/01/31
|
2015/01/31
|
||||||
----------
|
----------
|
||||||
* [EditMode] Want more lead in time before recording starts?
|
* [EditMode] Want more lead in time before recording starts?
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
-- All other languages are compared to the master language to determine what is
|
||||||
|
-- missing and what is unused.
|
||||||
|
-- The list of missing strings for a language is saved to lang_missing.ini,
|
||||||
|
-- where lang is the name of the language.
|
||||||
|
-- The list of unused strings is saved to lang_unused.ini.
|
||||||
|
|
||||||
|
function find_missing_strings_in_theme_translations(theme_name, master_name)
|
||||||
|
local lang_folder= "Themes/"..theme_name.."/Languages/"
|
||||||
|
local master_language= IniFile.ReadFile(lang_folder .. master_name)
|
||||||
|
local other_languages= {}
|
||||||
|
local language_names= FILEMAN:GetDirListing(lang_folder)
|
||||||
|
-- Load all languages.
|
||||||
|
for i, name in ipairs(language_names) do
|
||||||
|
if name ~= master_name and not name:find("missing")
|
||||||
|
and not name:find("unused") then
|
||||||
|
other_languages[#other_languages+1]= {
|
||||||
|
name= name, data= IniFile.ReadFile(lang_folder .. name)}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- Find out what is missing from each language.
|
||||||
|
local missing_list= {}
|
||||||
|
local function find_missing_in_section(section_name, section)
|
||||||
|
local function add_str_to_missing(str_name, str_value)
|
||||||
|
for i, other in ipairs(other_languages) do
|
||||||
|
if not other.data[section_name] or
|
||||||
|
not other.data[section_name][str_name] then
|
||||||
|
if not missing_list[other.name] then
|
||||||
|
missing_list[other.name]= {}
|
||||||
|
end
|
||||||
|
if not missing_list[other.name][section_name] then
|
||||||
|
missing_list[other.name][section_name]= {}
|
||||||
|
end
|
||||||
|
missing_list[other.name][section_name][str_name]= str_value
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
foreach_ordered(section, add_str_to_missing)
|
||||||
|
end
|
||||||
|
foreach_ordered(master_language, find_missing_in_section)
|
||||||
|
local function save_missing_data(lang_name, data)
|
||||||
|
IniFile.WriteFile(
|
||||||
|
lang_folder .. lang_name:sub(1, -5) .. "_missing.ini", data)
|
||||||
|
end
|
||||||
|
foreach_ordered(missing_list, save_missing_data)
|
||||||
|
-- Find out what is extra in each language.
|
||||||
|
for i, other in ipairs(other_languages) do
|
||||||
|
local unused= {}
|
||||||
|
local function find_unused_in_section(section_name, section)
|
||||||
|
local function add_str_to_unused(str_name, str_value)
|
||||||
|
if not master_language[section_name] or
|
||||||
|
not master_language[section_name][str_name] then
|
||||||
|
if not unused[section_name] then
|
||||||
|
unused[section_name]= {}
|
||||||
|
end
|
||||||
|
unused[section_name][str_name]= str_value
|
||||||
|
end
|
||||||
|
end
|
||||||
|
foreach_ordered(section, add_str_to_unused)
|
||||||
|
end
|
||||||
|
foreach_ordered(other.data, find_unused_in_section)
|
||||||
|
IniFile.WriteFile(
|
||||||
|
lang_folder .. other.name:sub(1, -5) .. "_unused.ini", unused)
|
||||||
|
end
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user