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