TYPO3-在扩展程序内的PHP ViewHelper中进行流体翻译

时间:2018-08-15 08:30:09

标签: typo3 typo3-8.x typo3-extensions

使用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视图帮助器中时,如何执行此操作的任何想法

3 个答案:

答案 0 :(得分:0)

查看TranslateViewHelper并查看其操作方式(很可能是translate(...)方法),然后使用代码从XLFF文件中呈现自己的标签

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您实际要查找的是“%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