• Модуль: translate
  • Путь к файлу: ~/bitrix/modules/translate/lib/controller/editor/operation.php
  • Класс: BitrixTranslateControllerEditorOperation
  • Вызов: Operation::updateLangFile
protected function updateLangFile(TranslateFile $langFile): bool
{
	// backup
	if ($langFile->isExists() && TranslateConfig::needToBackUpFiles())
	{
		if (!$langFile->backup())
		{
			$this->addError(new MainError(
				Loc::getMessage('TR_CREATE_BACKUP_ERROR', ['#FILE#' => $langFile->getPath()])
			));
		}
	}

	// sort phrases by key
	if (TranslateConfig::needToSortPhrases())
	{
		if (in_array($langFile->getLangId(), TranslateConfig::getNonSortPhraseLanguages()) === false)
		{
			$langFile->sortPhrases();
		}
	}

	try
	{
		if (!$langFile->save())
		{
			if ($langFile->hasErrors())
			{
				$this->addErrors($langFile->getErrors());
			}

			return false;
		}
	}
	catch (MainIOIoException $exception)
	{
		if (!$langFile->isExists())
		{
			$this->addError(new MainError(
				Loc::getMessage('TR_ERROR_WRITE_CREATE', ['#FILE#' => $langFile->getPath()])
			));
		}
		else
		{
			$this->addError(new MainError(
				Loc::getMessage('TR_ERROR_WRITE_UPDATE', ['#FILE#' => $langFile->getPath()])
			));
		}

		return false;
	}

	return true;
}