Автоматизация локализации презентаций в PHP

Изменить язык для презентации и текста формы

  • Создайте экземпляр класса Presentation.
  • Получите ссылку на слайд, используя его Index.
  • Добавьте AutoShape типа Rectangle на слайд.
  • Добавьте некоторый текст в TextFrame.
  • Set Language Id для текста.
  • Сохраните презентацию как файл PPTX.

Реализация указанных шагов демонстрируется ниже в примере.

  $pres = new Presentation("test.pptx");
  try {
    $shape = $pres->getSlides()->get_Item(0)->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 50, 200, 50);
    $shape->addTextFrame("Text to apply spellcheck language");
    $shape->getTextFrame()->getParagraphs()->get_Item(0)->getPortions()->get_Item(0)->getPortionFormat()->setLanguageId("en-EN");
    $pres->save("output.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Часто задаваемые вопросы

Вызывает ли Language ID автоматический перевод текста?

Нет. Language ID в Aspose.Slides хранит язык для проверки орфографии и грамматики, но не переводит и не изменяет содержимое текста. Это метаданные, которые PowerPoint понимает для проверки.

Влияет ли Language ID на переносы и разбиение строк при рендеринге?

В Aspose.Slides language ID предназначен для проверки. Качество переноса слов и разбиения строк в основном зависит от наличия правильные шрифты и настроек разметки/разрыва строк для системы письма. Чтобы обеспечить корректный рендеринг, предоставьте необходимые шрифты, настройте правила замены шрифтов и/или встраивание шрифтов в презентацию.

Можно ли задать разные языки в одном абзаце?

Да. Language ID применяется на уровне части текста, поэтому в одном абзаце можно смешивать несколько языков с различными настройками проверки.