mirror of
https://github.com/grocy/grocy.git
synced 2025-08-20 04:12:59 +00:00
Revert "Upgraded gettext/gettext (+ JS-Translator)"
This reverts commit 9abb92763d
.
This commit is contained in:
@@ -2,12 +2,9 @@
|
||||
|
||||
namespace Grocy\Services;
|
||||
|
||||
use Gettext\Headers;
|
||||
use Gettext\Translation;
|
||||
use Gettext\Translations;
|
||||
use Gettext\Translator;
|
||||
use Gettext\Loader\PoLoader;
|
||||
use Gettext\Generator\JsonGenerator;
|
||||
|
||||
class LocalizationService
|
||||
{
|
||||
@@ -38,9 +35,9 @@ class LocalizationService
|
||||
|
||||
public function GetPluralCount()
|
||||
{
|
||||
if ($this->Po->getHeaders()->getPluralForm() !== null)
|
||||
if ($this->Po->getHeader(Translations::HEADER_PLURAL) !== null)
|
||||
{
|
||||
return $this->Po->getHeaders()->getPluralForm()[0];
|
||||
return $this->Po->getPluralForms()[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -50,9 +47,9 @@ class LocalizationService
|
||||
|
||||
public function GetPluralDefinition()
|
||||
{
|
||||
if ($this->Po->getHeaders()->getPluralForm() !== null)
|
||||
if ($this->Po->getHeader(Translations::HEADER_PLURAL) !== null)
|
||||
{
|
||||
return $this->Po->getHeaders()->getPluralForm()[1];
|
||||
return $this->Po->getPluralForms()[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -62,7 +59,7 @@ class LocalizationService
|
||||
|
||||
public function GetPoAsJsonString()
|
||||
{
|
||||
return (new JsonGenerator())->generateString($this->Po);
|
||||
return $this->Po->toJsonString();
|
||||
}
|
||||
|
||||
public function __construct(string $culture)
|
||||
@@ -116,69 +113,69 @@ class LocalizationService
|
||||
private function LoadLocalizations()
|
||||
{
|
||||
$culture = $this->Culture;
|
||||
$loader = new PoLoader();
|
||||
|
||||
if (GROCY_MODE === 'dev')
|
||||
{
|
||||
$this->PotMain = $loader->loadFile(__DIR__ . '/../localization/strings.pot');
|
||||
$this->PotMain = Translations::fromPoFile(__DIR__ . '/../localization/strings.pot');
|
||||
|
||||
$this->Pot = $loader->loadFile(__DIR__ . '/../localization/chore_period_types.pot');
|
||||
$this->Pot = $this->Pot->mergeWith($loader->loadFile(__DIR__ . '/../localization/chore_assignment_types.pot'));
|
||||
$this->Pot = $this->Pot->mergeWith($loader->loadFile(__DIR__ . '/../localization/component_translations.pot'));
|
||||
$this->Pot = $this->Pot->mergeWith($loader->loadFile(__DIR__ . '/../localization/stock_transaction_types.pot'));
|
||||
$this->Pot = $this->Pot->mergeWith($loader->loadFile(__DIR__ . '/../localization/strings.pot'));
|
||||
$this->Pot = $this->Pot->mergeWith($loader->loadFile(__DIR__ . '/../localization/userfield_types.pot'));
|
||||
$this->Pot = $this->Pot->mergeWith($loader->loadFile(__DIR__ . '/../localization/permissions.pot'));
|
||||
$this->Pot = $this->Pot->mergeWith($loader->loadFile(__DIR__ . '/../localization/locales.pot'));
|
||||
$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/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'));
|
||||
$this->Pot = $this->Pot->mergeWith(Translations::fromPoFile(__DIR__ . '/../localization/permissions.pot'));
|
||||
$this->Pot = $this->Pot->mergeWith(Translations::fromPoFile(__DIR__ . '/../localization/locales.pot'));
|
||||
|
||||
if (GROCY_MODE !== 'production')
|
||||
{
|
||||
$this->Pot = $this->Pot->mergeWith($loader->loadFile(__DIR__ . '/../localization/demo_data.pot'));
|
||||
$this->Pot = $this->Pot->mergeWith(Translations::fromPoFile(__DIR__ . '/../localization/demo_data.pot'));
|
||||
}
|
||||
}
|
||||
|
||||
$this->PoUserStrings = Translations::create('grocy');
|
||||
$this->PoUserStrings = new Translations();
|
||||
$this->PoUserStrings->setDomain('grocy/userstrings');
|
||||
|
||||
$this->Po = $loader->loadFile(__DIR__ . "/../localization/$culture/strings.po");
|
||||
$this->Po = Translations::fromPoFile(__DIR__ . "/../localization/$culture/strings.po");
|
||||
|
||||
if (file_exists(__DIR__ . "/../localization/$culture/chore_assignment_types.po"))
|
||||
{
|
||||
$this->Po = $this->Po->mergeWith($loader->loadFile(__DIR__ . "/../localization/$culture/chore_assignment_types.po"));
|
||||
$this->Po = $this->Po->mergeWith(Translations::fromPoFile(__DIR__ . "/../localization/$culture/chore_assignment_types.po"));
|
||||
}
|
||||
|
||||
if (file_exists(__DIR__ . "/../localization/$culture/component_translations.po"))
|
||||
{
|
||||
$this->Po = $this->Po->mergeWith($loader->loadFile(__DIR__ . "/../localization/$culture/component_translations.po"));
|
||||
$this->Po = $this->Po->mergeWith(Translations::fromPoFile(__DIR__ . "/../localization/$culture/component_translations.po"));
|
||||
}
|
||||
|
||||
if (file_exists(__DIR__ . "/../localization/$culture/stock_transaction_types.po"))
|
||||
{
|
||||
$this->Po = $this->Po->mergeWith($loader->loadFile(__DIR__ . "/../localization/$culture/stock_transaction_types.po"));
|
||||
$this->Po = $this->Po->mergeWith(Translations::fromPoFile(__DIR__ . "/../localization/$culture/stock_transaction_types.po"));
|
||||
}
|
||||
|
||||
if (file_exists(__DIR__ . "/../localization/$culture/chore_period_types.po"))
|
||||
{
|
||||
$this->Po = $this->Po->mergeWith($loader->loadFile(__DIR__ . "/../localization/$culture/chore_period_types.po"));
|
||||
$this->Po = $this->Po->mergeWith(Translations::fromPoFile(__DIR__ . "/../localization/$culture/chore_period_types.po"));
|
||||
}
|
||||
|
||||
if (file_exists(__DIR__ . "/../localization/$culture/userfield_types.po"))
|
||||
{
|
||||
$this->Po = $this->Po->mergeWith($loader->loadFile(__DIR__ . "/../localization/$culture/userfield_types.po"));
|
||||
$this->Po = $this->Po->mergeWith(Translations::fromPoFile(__DIR__ . "/../localization/$culture/userfield_types.po"));
|
||||
}
|
||||
|
||||
if (file_exists(__DIR__ . "/../localization/$culture/permissions.po"))
|
||||
{
|
||||
$this->Po = $this->Po->mergeWith($loader->loadFile(__DIR__ . "/../localization/$culture/permissions.po"));
|
||||
$this->Po = $this->Po->mergeWith(Translations::fromPoFile(__DIR__ . "/../localization/$culture/permissions.po"));
|
||||
}
|
||||
|
||||
if (file_exists(__DIR__ . "/../localization/$culture/locales.po"))
|
||||
{
|
||||
$this->Po = $this->Po->mergeWith($loader->loadFile(__DIR__ . "/../localization/$culture/locales.po"));
|
||||
$this->Po = $this->Po->mergeWith(Translations::fromPoFile(__DIR__ . "/../localization/$culture/locales.po"));
|
||||
}
|
||||
|
||||
if (GROCY_MODE !== 'production' && file_exists(__DIR__ . "/../localization/$culture/demo_data.po"))
|
||||
{
|
||||
$this->Po = $this->Po->mergeWith($loader->loadFile(__DIR__ . "/../localization/$culture/demo_data.po"));
|
||||
$this->Po = $this->Po->mergeWith(Translations::fromPoFile(__DIR__ . "/../localization/$culture/demo_data.po"));
|
||||
}
|
||||
|
||||
$quantityUnits = null;
|
||||
@@ -195,16 +192,18 @@ class LocalizationService
|
||||
{
|
||||
foreach ($quantityUnits as $quantityUnit)
|
||||
{
|
||||
$translation = Translation::create($quantityUnit['name'], $quantityUnit['name'], $quantityUnit['name_plural']);
|
||||
$translation->translate($quantityUnit['name']);
|
||||
$translation->translatePlural($quantityUnit['name_plural'], ...preg_split('/\r\n|\r|\n/', $quantityUnit['plural_forms']));
|
||||
$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']));
|
||||
|
||||
$this->PoUserStrings->add($translation);
|
||||
$this->PoUserStrings[] = $translation;
|
||||
}
|
||||
|
||||
$this->Po = $this->Po->mergeWith($this->PoUserStrings);
|
||||
}
|
||||
|
||||
$this->Translator = Translator::createFromTranslations($this->Po);
|
||||
$this->Translator = new Translator();
|
||||
$this->Translator->loadTranslations($this->Po);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user