Fixed Localisation functions
This commit is contained in:
parent
e781df8562
commit
e59dfec8b5
@ -2,13 +2,18 @@
|
||||
|
||||
static class Localisation
|
||||
{
|
||||
static ConsoleLogger logger = new($"logs", "autoloc");
|
||||
static ConsoleLogger logger = new("logs", "autoloc");
|
||||
static void Log(params string[] msg) => logger.Log(msg);
|
||||
|
||||
public static void GenerateRussian(IOPath engDir, IOPath rusDir)
|
||||
public static void GenerateRussian(IOPath _engDir, IOPath _rusDir)
|
||||
{
|
||||
int counter = 0;
|
||||
foreach (var fileName in Directory.GetAllFiles(engDir))
|
||||
ProcessDir(_engDir, _rusDir);
|
||||
Log("g",$"created {counter} localisation files");
|
||||
|
||||
void ProcessDir(IOPath engDir, IOPath rusDir)
|
||||
{
|
||||
foreach (var fileName in Directory.GetFiles(engDir))
|
||||
{
|
||||
if (!fileName.EndsWith("l_english.yml"))
|
||||
continue;
|
||||
@ -17,66 +22,88 @@ static class Localisation
|
||||
.ReplaceBase(engDir, rusDir)
|
||||
.Replace("l_english", "l_russian");
|
||||
|
||||
if (!File.Exists(rusFileName))
|
||||
if (File.Exists(rusFileName))
|
||||
{
|
||||
Log("gray", $"skipped file {rusFileName.RemoveBase(rusDir)}");
|
||||
// Log("w", $"skipped {rusFileName.RemoveBase(rusDir)}");
|
||||
continue;
|
||||
}
|
||||
|
||||
string text = File.ReadAllText(fileName)
|
||||
.Replace("l_english:", "l_russian: ");
|
||||
byte[] bytes = StringConverter.UTF8BOM.GetBytes(text);
|
||||
File.WriteAllBytes(rusFileName, bytes);
|
||||
Log("g", $"file {rusFileName} created");
|
||||
Log("g", $"created {rusFileName}");
|
||||
counter++;
|
||||
}
|
||||
Log("g",$"created {counter} localisation files");
|
||||
|
||||
void ProcessSubdir(string subdirEngName, string subdirRusName)
|
||||
{
|
||||
var subdirEng = Path.Concat(engDir,subdirEngName);
|
||||
var subdirRus = Path.Concat(rusDir,subdirRusName);
|
||||
if (Directory.Exists(subdirEng))
|
||||
ProcessDir(subdirEng, subdirRus);
|
||||
}
|
||||
|
||||
ProcessSubdir("english", "russian");
|
||||
ProcessSubdir("replace", "replace");
|
||||
ProcessSubdir("name_lists", "name_lists");
|
||||
ProcessSubdir("random_names", "random_names");
|
||||
}
|
||||
}
|
||||
|
||||
// deletes all localisations except l_russian and l_english
|
||||
public static void Clean(IOPath _loc_dir)
|
||||
{
|
||||
Log("g", $"deleted {RemoveUnneededDirs(_loc_dir)} dirs");
|
||||
Log("g", $"deleted {RemoveUnneededFiles(_loc_dir)} files");
|
||||
int deleted_files_count=0, deleted_dirs_count=0;
|
||||
DeleteUnneededDirs(_loc_dir);
|
||||
DeleteUnneededFiles(_loc_dir);
|
||||
Log("g", $"deleted {deleted_files_count} files");
|
||||
Log("g", $"deleted {deleted_dirs_count} dirs");
|
||||
|
||||
|
||||
int RemoveUnneededDirs(IOPath loc_dir)
|
||||
void DeleteUnneededDirs(IOPath loc_dir)
|
||||
{
|
||||
int count = 0;
|
||||
foreach (var subdir in Directory.GetDirectories(loc_dir))
|
||||
{
|
||||
string dir_basename = subdir.LastName().Str;
|
||||
if (dir_basename == "russian" || dir_basename == "english")
|
||||
continue;
|
||||
|
||||
if (dir_basename == "replace")
|
||||
if (dir_basename is "russian" or "english")
|
||||
{
|
||||
RemoveUnneededDirs(subdir);
|
||||
RemoveUnneededFiles(subdir);
|
||||
// Log("w",$"skipped {subdir}");
|
||||
continue;
|
||||
}
|
||||
|
||||
if (dir_basename.Contains("rus"))
|
||||
if (dir_basename is "replace" or "name_lists" or "random_names")
|
||||
{
|
||||
DeleteUnneededDirs(subdir);
|
||||
DeleteUnneededFiles(subdir);
|
||||
continue;
|
||||
}
|
||||
|
||||
// incorrect dirs, for example l_russian/
|
||||
if (dir_basename.ToLower().Contains("russian") || dir_basename.ToLower().Contains("english"))
|
||||
Log("y", $"unexpected dir: {subdir}");
|
||||
|
||||
Directory.Delete(subdir);
|
||||
count++;
|
||||
Log("m", $"deleted {subdir}");
|
||||
deleted_dirs_count++;
|
||||
}
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
int RemoveUnneededFiles(IOPath loc_dir)
|
||||
void DeleteUnneededFiles(IOPath loc_dir)
|
||||
{
|
||||
int count = 0;
|
||||
foreach (var file in Directory.GetFiles(loc_dir))
|
||||
{
|
||||
if(file.EndsWith("l_russian") || file.EndsWith("l_enghish"))
|
||||
if(file.EndsWith("l_russian.yml") || file.EndsWith("l_enghish.yml"))
|
||||
{
|
||||
// Log("w",$"skipped {file}");
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!file.Contains("_l_") || !file.EndsWith(".yml"))
|
||||
Log("y",$"unexpected file: {file}");
|
||||
File.Delete(file);
|
||||
count++;
|
||||
Log("m",$"deleted {file}");
|
||||
deleted_files_count++;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user