Yii Framework Forum: internacionalização - mensagens customizadas - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

internacionalização - mensagens customizadas Rate Topic: -----

#1 User is offline   MarcosX 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 12
  • Joined: 21-July 09

Posted 11 August 2009 - 05:35 PM

Boa noite pessoal, estou com uma dúvida aqui e tá irritando porque não entendo..hehe

no controller está assim:

Yii::t('fs','Unable to create the directory "{dir}" to disk. The "{parent}" does not appear to be writable.',array('{dir}'=>$path, '{parent}'=>$parent));


dentro de protected/messages criei o diretório pt_br (no core eu copiei o pt pra pt_br)
e criei o arquivo fs.php

ficou protected/messages/pt_br/fs.php

o arquivo fs.php assim :

<?php
return array (
		'Unable to create the directory "{dir}" to disk. The "{parent}" does not appear to be writable.'=>'Impossível criar o diretório "{dir}" no servidor. O "{parent}" parece não ter permissão de escrita.',
);
?>


e em config/main.php está:

'sourceLanguage' => 'pt_br',

as mensagens do yii, exibem em portugues corretamente.

essa mensagem customizada/personalizada só a string em inglês que passei no parametro

o que estou fazendo de errado que não traduz?
0

#2 User is offline   josafafilho 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 43
  • Joined: 08-July 09
  • Location:Brazil

Posted 12 August 2009 - 09:12 AM

MarcosX, dá uma olhada nesse tópico e vê se pode te ajudar.

http://www.yiiframew...5-yii-em-pt-br/
0

#3 User is offline   MarcosX 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 12
  • Joined: 21-July 09

Posted 12 August 2009 - 11:48 AM

View Postjosafafilho, on 12 August 2009 - 09:12 AM, said:

MarcosX, dá uma olhada nesse tópico e vê se pode te ajudar.

http://www.yiiframew...5-yii-em-pt-br/


Eu já olhei esse tópico. Mas o problema não é com as mensagens do yii. Essas funcionam sem problemas.

Eu andei lendo os fontes, mas to achando muito estranho.. se eu definir a linguagem lá no main.php ele não vai traduzir essas mensagens personalizadas.. pra traduzir eu teria que usar o quinto param em t() e definir o idioma <_<
se eu defino em componentes no config.main.php em CMessageSource translate() ele verifica se é diferente os idiomas pra traduzir, logo como é igual ele não traduz. É igual pois o sourceLanguage está definido em pt_br

Então pra funcionar eu tenho que escrever as mensagens no idioma que eu definir no main.php e criar a tradução do português para o inglês no caso?
É isso?

Porque a aplicação serão em 3 idiomas, logo intuitivamente eu pressupunha que mantinha tudo em ingles, definiria a principal que é portugues lá no main, manteria o padrão no aplicativo com as mensagens originais em ingles, e passaria por session a seleção do usuário se é inglês/português/espanhol..
0

#4 User is offline   MarcosX 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 12
  • Joined: 21-July 09

Posted 12 August 2009 - 11:55 AM

Ou então, pra funcionar a forma "gambiarrística" de alterar no core :S

ai funcionaria, se adicionar no array principal, ai funciona como eu achava que deveria fazer, lá traduz para o português e o espanhol sem problemas. Desde que eu mantenha a mensagem em inglês.
0

#5 User is offline   MarcosX 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 12
  • Joined: 21-July 09

Posted 12 August 2009 - 05:06 PM

Boa noite, estava consultando no site sobre o problema e ví um comentário na página http://www.yiiframew...doc/cookbook/18

ao invés de copiar pra não perder mensagens caso faça uma atualização no framework

<?php

return CMap::mergeArray(
    require(Yii::getFrameworkPath().'/messages/pt_br/yii.php'),
    array(
            '{file} exists in directory.'=>'{file} já existe no diretório.',
            'Unable to create the directory "{dir}" to disk. The "{parent}" does not appear to be writable.'=>'Impossível criar o diretório "{dir}" no servidor. Talvez "{parent}" não tenha permissão de escrita.',
            'You do not have permission to perform this operation or access "{resource}"'=>'Você não tem permissão para acessar ou executar "{resource}"' ,
        )
    );

?>


resolvi fazer o mergê, e colocar no arquivo yii.php em protected/messages mesmo.. mas se mudar a categoria em t(), o primeiro parametro, ele não busca está buscando no arquivo como fala na documentação.

Mesmo assim obrigado por quem tentou ajudar... Quando tiver tempo, vou ver o porque só carrega quando é o yii.php
0

#6 User is offline   Moshiko 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 3
  • Joined: 13-October 09

Posted 13 October 2009 - 07:39 AM

No final voce conseguiu? Deu certo?
0

#7 User is offline   ricardograna 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 376
  • Joined: 31-March 09
  • Location:Manaus/AM - Brazil

Posted 13 October 2009 - 09:37 AM

View PostMarcosX, on 11 August 2009 - 05:35 PM, said:


Yii::t('fs','Unable to create the directory "{dir}" to disk. The "{parent}" does not appear to be writable.',array('{dir}'=>$path, '{parent}'=>$parent));




Olha, nunca usei mensagens personalizadas exceto as do core do Yii.

Porém, pelo que sei, o primeiro parametro do Yii:t é referente à categoria da mensagem. Se vc alterou o arquivo em pt-br, entao vc está adicionando uma mensagem na categoria 'yii', logo, o comando deveria ser

Yii::t('yii','Unable to create the directory "{dir}" to disk. The"{parent}" does not appear to be writable.',array('{dir}'=>$path,'{parent}'=>$parent));


Se vc deseja fazer mensagens especificas para seu sistema, vc deve criar um arquivo chamado 'fs' em app/messages e lá adicinar seu trecho de codigo (aí vc pode usar a categoria como 'fs')

Reforçando, é o que li pelo forum, talvez eu esteja enganado em alguma parte, mas é por aih :P
Yes, It Is!
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users