TYPO3 - PHP 扩展中的 ViewHelper 中的流体翻译

TYPO3 - Fluid Translate in PHP ViewHelper within extension

使用 PHP 8.7.17

我有以下 viewhelper 来举例说明我需要什么

<?php namespace SRS\SrsPccLog\ViewHelpers;
  use TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper;

  class ShowDateAsStringViewHelper extends AbstractViewHelper
  {
      public function initializeArguments()
      {
           $this->registerArgument('month', 'integer', 'month value', true);
      }

       public function render()
       {
            $month = $this->arguments['month'];
            return $this->monthAsString($month, $year);
       }

       public function monthAsString ($month) {
          switch ($month) {
            case 1:
                 return "January";
            case 2:
                 return "February";
            case 3:
                 return "March";
            case 4:
                 return "April";
            case 5:
                 return "May";
            default:
                 return "";
         }
   }

我有这个功能,但我只是想用本地语言显示月份,即替换 return "January'

<f:translate key="tx_srspcclog_domain_model_myext.january" />

这样我就可以减少语言的特定性,并像我为流畅视图所做的那样从语言文件中获取语言。当您不在流动视图中而是在 PHP 视图助手

中时,关于如何执行此操作的任何想法

查看 TranslateViewHelper 内部并了解他们是如何做到的(很可能是 translate(...) 方法),并使用代码从您的 XLFF 文件呈现您自己的标签

\TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate($key, $extensionName)

您实际要查找的是“%B”。

正如文档明确指出的那样,FormatDate ViewHelper 理解 strftime() 和 date() 格式中的格式字符串。 strftime 已经内置了本地化。你不需要自己翻译任何东西。

https://docs.typo3.org/typo3cms/ExtbaseGuide/Fluid/ViewHelper/Format/Date.html#localized-time-using-strftime-syntax http://php.net/manual/de/function.strftime.php