diff --git a/services/LocalizationService.php b/services/LocalizationService.php index d8c90744..b418443d 100644 --- a/services/LocalizationService.php +++ b/services/LocalizationService.php @@ -50,67 +50,57 @@ class LocalizationService { $culture = $this->Culture; - if (!(apcu_exists("grocy_LocalizationService_".$culture."_Pot") && - apcu_exists("grocy_LocalizationService_".$culture."_Po") && - apcu_exists("grocy_LocalizationService_".$culture."_PoUserStrings") && - apcu_exists("grocy_LocalizationService_".$culture."_PotMain") - )) + + + $Pot = null; + $PotMain = null; + + if (GROCY_MODE === 'dev') { + $this->PotMain = Translations::fromPoFile(__DIR__ . '/../localization/strings.pot'); - $Pot = null; - $PotMain = null; + $this->Pot = Translations::fromPoFile(__DIR__ . '/../localization/chore_period_types.pot'); + $this->Pot = $this->Pot->mergeWith(Translations::fromPoFile(__DIR__ . '/../localization/chore_assignment_types.pot')); + $this->Pot = $this->Pot->mergeWith(Translations::fromPoFile(__DIR__ . '/../localization/component_translations.pot')); + $this->Pot = $this->Pot->mergeWith(Translations::fromPoFile(__DIR__ . '/../localization/demo_data.pot')); + $this->Pot = $this->Pot->mergeWith(Translations::fromPoFile(__DIR__ . '/../localization/stock_transaction_types.pot')); + $this->Pot = $this->Pot->mergeWith(Translations::fromPoFile(__DIR__ . '/../localization/strings.pot')); + $this->Pot = $this->Pot->mergeWith(Translations::fromPoFile(__DIR__ . '/../localization/userfield_types.pot')); + } - if (GROCY_MODE === 'dev') + $this->PoUserStrings = new Translations(); + $this->PoUserStrings->setDomain('grocy/userstrings'); + + $this->Po = Translations::fromPoFile(__DIR__ . "/../localization/$culture/chore_period_types.po"); + $this->Po = $this->Po->mergeWith(Translations::fromPoFile(__DIR__ . "/../localization/$culture/chore_assignment_types.po")); + $this->Po = $this->Po->mergeWith(Translations::fromPoFile(__DIR__ . "/../localization/$culture/component_translations.po")); + $this->Po = $this->Po->mergeWith(Translations::fromPoFile(__DIR__ . "/../localization/$culture/demo_data.po")); + $this->Po = $this->Po->mergeWith(Translations::fromPoFile(__DIR__ . "/../localization/$culture/stock_transaction_types.po")); + $this->Po = $this->Po->mergeWith(Translations::fromPoFile(__DIR__ . "/../localization/$culture/strings.po")); + $this->Po = $this->Po->mergeWith(Translations::fromPoFile(__DIR__ . "/../localization/$culture/userfield_types.po")); + + $quantityUnits = null; + try + { + $quantityUnits = $this->getDatabase()->quantity_units()->fetchAll(); + } + catch (\Exception $ex) + { + // Happens when database is not initialised or migrated... + } + + if ($quantityUnits !== null) + { + foreach ($quantityUnits as $quantityUnit) { - $PotMain = Translations::fromPoFile(__DIR__ . '/../localization/strings.pot'); + $translation = new Translation('', $quantityUnit['name']); + $translation->setTranslation($quantityUnit['name']); + $translation->setPlural($quantityUnit['name_plural']); + $translation->setPluralTranslations(preg_split('/\r\n|\r|\n/', $quantityUnit['plural_forms'])); - $Pot = Translations::fromPoFile(__DIR__ . '/../localization/chore_period_types.pot'); - $Pot = $Pot->mergeWith(Translations::fromPoFile(__DIR__ . '/../localization/chore_assignment_types.pot')); - $Pot = $Pot->mergeWith(Translations::fromPoFile(__DIR__ . '/../localization/component_translations.pot')); - $Pot = $Pot->mergeWith(Translations::fromPoFile(__DIR__ . '/../localization/demo_data.pot')); - $Pot = $Pot->mergeWith(Translations::fromPoFile(__DIR__ . '/../localization/stock_transaction_types.pot')); - $Pot = $Pot->mergeWith(Translations::fromPoFile(__DIR__ . '/../localization/strings.pot')); - $Pot = $Pot->mergeWith(Translations::fromPoFile(__DIR__ . '/../localization/userfield_types.pot')); + $PoUserStrings[] = $translation; } - - $PoUserStrings = new Translations(); - $PoUserStrings->setDomain('grocy/userstrings'); - - $Po = Translations::fromPoFile(__DIR__ . "/../localization/$culture/chore_period_types.po"); - $Po = $Po->mergeWith(Translations::fromPoFile(__DIR__ . "/../localization/$culture/chore_assignment_types.po")); - $Po = $Po->mergeWith(Translations::fromPoFile(__DIR__ . "/../localization/$culture/component_translations.po")); - $Po = $Po->mergeWith(Translations::fromPoFile(__DIR__ . "/../localization/$culture/demo_data.po")); - $Po = $Po->mergeWith(Translations::fromPoFile(__DIR__ . "/../localization/$culture/stock_transaction_types.po")); - $Po = $Po->mergeWith(Translations::fromPoFile(__DIR__ . "/../localization/$culture/strings.po")); - $Po = $Po->mergeWith(Translations::fromPoFile(__DIR__ . "/../localization/$culture/userfield_types.po")); - - $quantityUnits = null; - try - { - $quantityUnits = $this->getDatabase()->quantity_units()->fetchAll(); - } - catch (\Exception $ex) - { - // Happens when database is not initialised or migrated... - } - - if ($quantityUnits !== null) - { - foreach ($quantityUnits as $quantityUnit) - { - $translation = new Translation('', $quantityUnit['name']); - $translation->setTranslation($quantityUnit['name']); - $translation->setPlural($quantityUnit['name_plural']); - $translation->setPluralTranslations(preg_split('/\r\n|\r|\n/', $quantityUnit['plural_forms'])); - - $PoUserStrings[] = $translation; - } - $Po = $Po->mergeWith($PoUserStrings); - } - apcu_store("grocy_LocalizationService_".$culture."_Po", $Po); - apcu_store("grocy_LocalizationService_".$culture."_Pot", $Pot); - apcu_store("grocy_LocalizationService_".$culture."_PoUserStrings", $PoUserStrings); - apcu_store("grocy_LocalizationService_".$culture."_PotMain", $PotMain); + $this->Po = $this->Po->mergeWith($PoUserStrings); } $this->Pot = apcu_fetch("grocy_LocalizationService_".$culture."_Pot");