Zend framework2 zend framework 2使用其他注释进行gettext翻译

Zend framework2 zend framework 2使用其他注释进行gettext翻译,zend-framework2,gettext,zend-translate,xgettext,Zend Framework2,Gettext,Zend Translate,Xgettext,我想知道是否可能使用已创建的注释来构建其他注释,这些注释除了包含其他文本外,还包含已使用的注释 e、 g //归档 msgid "User no logged" msgstr "" msgid "#previous commend# as participant" msgstr "" //Es文件 msgid "User no logged" msgstr "Usuario no logueado" msgid "#previous commend# as pa

我想知道是否可能使用已创建的注释来构建其他注释,这些注释除了包含其他文本外,还包含已使用的注释

e、 g

//归档

  msgid "User no logged"
  msgstr ""

  msgid "#previous commend# as participant"
  msgstr ""
//Es文件

  msgid "User no logged"
  msgstr "Usuario no logueado"

  msgid "#previous commend# as participant"
  msgstr "#previous translation# como participante"
我想用这个翻译:

  $this->translate('User no logged as participant');
  //I want obtain: Usuario no logueado como participante
有没有可能用什么方法来改变#…#单词


提前谢谢。

这不是你的另一个问题的基本内容吗?但如果我正确理解您的意图,可能是这样的:

echo $this->translate(sprintf(
    '%s as participant', 
    $this->translate('User no logged')
));
但在这种情况下,对我来说,这只是一行中的两个翻译,如:

echo sprintf('%s %s', 
    $this->translate('User no logged'),
    $this->translate('as participant')
);

在这个问题中,我只想使用une time$this->translate(),不想使用%s,因为我有一个包含所有消息的类(没有%s)。 我只想在.po文件中关联评论(可能吗?)

Strings.php

    class Strings {
        public static $USER_NO_LOGGED = 'El usuario no esta logueado.';
        private static $translator;
        private static $translatorTextDomain = 'default';

        public static function setTranslator(Translator $translator) {
            self::$translator = $translator;
        }
        public static function getTranslator() {
            return self::$translator;
        }   
        public static function setTranslatorTextDomain($textDomain = 'default') {
            self::$translatorTextDomain = $textDomain;
        }   
        public static function getTranslatorTextDomain() {
            return self::$translatorTextDomain;
        }   
        public static function getMessage($message) {       
            $translator = self::getTranslator();
            if (!$translator) return $message;

            return self::getTranslator()->translate($message, self::$translatorTextDomain);
        }
    }
如您所见,getMessage方法只有一个translate方法,对函数的调用如下所示:

  echo Strings::getMessage(Strings::$USER_NO_LOGGED); 

在这个问题中,我只想使用une time$this->translate(),不想使用%s,因为我有一个包含所有消息的类(没有%s)。好吧,我已经向您展示了我可以想到的两个选项;)另外,我实际上根本不知道你们班做什么。我看不出有任何好处^^