[Scummvm-git-logs] scummvm-web master -> 4292507fcbebfaa88478f9032e8f52fbc4da5254

Mataniko mataniko at gmail.com
Fri Jan 1 15:08:08 UTC 2021


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm-web' repo located at https://github.com/scummvm/scummvm-web .

Summary:
4292507fcb WEB: Convert localization utils to a static class


Commit: 4292507fcbebfaa88478f9032e8f52fbc4da5254
    https://github.com/scummvm/scummvm-web/commit/4292507fcbebfaa88478f9032e8f52fbc4da5254
Author: Mataniko (mataniko at gmail.com)
Date: 2021-01-01T10:07:47-05:00

Commit Message:
WEB: Convert localization utils to a static class

Changed paths:
    include/DataUtils.php
    include/LocalizationUtils.php


diff --git a/include/DataUtils.php b/include/DataUtils.php
index 046043f6..a05f42af 100644
--- a/include/DataUtils.php
+++ b/include/DataUtils.php
@@ -131,7 +131,9 @@ class DataUtils
                                 glob("./public_html" . DIR_SCREENSHOTS . "/". $item['filemask']),
                                 function (string $file) {
                                     return \strpos($file, "_full.");
-                                }));
+                                }
+                            )
+                        );
                     }
                     $dbItem->fromArray($item, TableMap::TYPE_FIELDNAME);
                     $dbItem->save();
@@ -145,7 +147,3 @@ class DataUtils
 }
 
 DataUtils::updateData();
-// $dir = "./public_html" . DIR_SCREENSHOTS . "/". 'sierra/bc/bc_dos_en_1_*';
-// echo $dir;
-// var_dump(glob($dir));
-// echo count(glob("./" . DIR_SCREENSHOTS . "/". 'sierra/bc/bc_dos_en_1_*'));
diff --git a/include/LocalizationUtils.php b/include/LocalizationUtils.php
index 97ffa877..d510b5ac 100644
--- a/include/LocalizationUtils.php
+++ b/include/LocalizationUtils.php
@@ -11,23 +11,25 @@ use Erusev\Parsedown;
 
 class LocalizationUtils
 {
-    private $purifier;
+    private static $purifier;
 
     const NO_FILES = 'No Localization Files Found';
 
-    public function __construct()
+    public static function localize()
     {
         $config = \HTMLPurifier_Config::createDefault();
-        $this->purifier = new \HTMLPurifier($config);
+        self::$purifier = new \HTMLPurifier($config);
 
         $langs = array_slice(scandir(DIR_DATA), 2);
-        foreach ($langs as $key => $value) {
-            $this->convertLanguageJsonToSmartyIni($value);
-            $this->updateNewsL10n($value);
+        foreach ($langs as $value) {
+            if (\is_dir(DIR_DATA . "/$value")) {
+                self::convertLanguageJsonToSmartyIni($value);
+                self::updateNewsL10n($value);
+            }
         }
     }
 
-    private function convertLanguageJsonToSmartyIni($lang)
+    private static function convertLanguageJsonToSmartyIni($lang)
     {
         $Parsedown = new \Parsedown();
         $Parsedown->setBreaksEnabled(true);
@@ -39,14 +41,14 @@ class LocalizationUtils
         $output = "";
         foreach ($json as $key => $value) {
             if ($value) {
-                $output .= $key . ' = """' . $this->purifier->purify($Parsedown->line($value)) . '"""' . "\n";
+                $output .= $key . ' = """' . self::$purifier->purify($Parsedown->line($value)) . '"""' . "\n";
             }
         }
 
         file_put_contents(join(DIRECTORY_SEPARATOR, [DIR_DATA, $lang, "strings.ini"]), $output);
     }
 
-    private function updateNewsL10n($lang)
+    private static function updateNewsL10n($lang)
     {
         $newsFile = join(DIRECTORY_SEPARATOR, [DIR_DATA, $lang, "news.json"]);
         // For non-english, create/overwrite JSON files from our l10n file
@@ -60,17 +62,17 @@ class LocalizationUtils
             foreach ($l10n as $key => $translatedArticle) {
                 $englishArticle = YamlFrontMatter::parse(file_get_contents(join(DIRECTORY_SEPARATOR, [DIR_DATA, DEFAULT_LOCALE, 'news', "/{$key}.markdown"])));
 
-                $date = $this->purifier->purify($englishArticle->date);
-                $author = $this->purifier->purify($englishArticle->author);
+                $date = self::$purifier->purify($englishArticle->date);
+                $author = self::$purifier->purify($englishArticle->author);
                 if (property_exists($translatedArticle, 'title') && $translatedArticle->title) {
-                    $title = $this->purifier->purify(str_replace('"', '\"', $translatedArticle->title));
+                    $title = self::$purifier->purify(str_replace('"', '\"', $translatedArticle->title));
                 } else {
-                    $title = $this->purifier->purify(str_replace('"', '\"', $englishArticle->title));
+                    $title = self::$purifier->purify(str_replace('"', '\"', $englishArticle->title));
                 }
                 if (property_exists($translatedArticle, 'content') && $translatedArticle->content) {
-                    $content = $this->purifier->purify(trim($translatedArticle->content));
+                    $content = self::$purifier->purify(trim($translatedArticle->content));
                 } else {
-                    $content = $this->purifier->purify(trim($englishArticle->body()));
+                    $content = self::$purifier->purify(trim($englishArticle->body()));
                 }
 
                 // Special handling of french colon character
@@ -99,7 +101,7 @@ class LocalizationUtils
         } else {
             // Update the base english l10n file
             echo("Converting English Markdown files to the l10n base file\n");
-            $news = $this->getAllNews($lang);
+            $news = self::getAllNews($lang);
 
             file_put_contents(
                 $newsFile,
@@ -108,7 +110,7 @@ class LocalizationUtils
         }
     }
 
-    private function getAllNews($lang)
+    private static function getAllNews($lang)
     {
         $dir = join(DIRECTORY_SEPARATOR, [DIR_DATA, $lang, 'news']);
 
@@ -131,4 +133,4 @@ class LocalizationUtils
     }
 }
 
-new LocalizationUtils();
+LocalizationUtils::localize();




More information about the Scummvm-git-logs mailing list