Usuário com melhor resposta
Tradução do Reporting Service

Pergunta
-
Respostas
-
Bom dia Eleu,
As strings do reportmanager / reportviewer seguem a linguagem configurada no IE. Então você mudando a configuração do IE, automaticamente as mensagens vao vir na outra linguagem. As bad news são: Não temos tradução para português-Brasil por padrão
Para resolver isso você pode implementar sua própria assembly de tradução. Vou colocar alguns links a respeito abaixo:
International Considerations for Reporting Services (Contem uma descrição de quais as configurações de linguagem que afetam os relatórios)
http://msdn2.microsoft.com/en-us/library/ms156493.aspx
IReportViewerMessages Interface (Interface que você vai precisar implementar para traduzir as mensagens)
http://msdn2.microsoft.com/en-us/library/microsoft.reporting.webforms.ireportviewermessages.aspx
Posts com dúvidas parecidas, podem ajudar pois contem alguns exemplos:
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1033950&SiteID=1
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=258192&SiteID=1Abraço
Boreki
-
Junior Galvão - MVP wrote: Boreki,
Muito legal estes links, mas é um trabalho arduo de ser realizado.
Nem dá tanto trabalho assim... O que eu fiz foi o seguinte:
Criei uma classe semelhante a que está nesse link: http://msdn2.microsoft.com/en-us/library/microsoft.reporting.webforms.ireportviewermessages.aspx
E adicionei a senguinte linha no Web.config (minha classe se chama ReportMessage e ela está dentro do APP_CODE):
Code Snippet<
appSettings><
add key="ReportViewerMessages" value="ReportMessage,APP_CODE"/></
appSettings>´
Mas surgiu outra dúvida:
Consegui traduzir todas labels do relatório, porém não consegui ainda as mensagens de erro...
Ex: se não for preenchido um parametro obrigatório, ao gerar o relatorio dará uma mensagem em inglês... ("Please select a value for parameter ...") ...
Andei pesquisando e percebi que tal mensagem vem do Report Server (vide esse link: http://msdn2.microsoft.com/en-us/library/ms156493.aspx )
Mas não compreendi o que têm de ser feito para traduzir inclusive estas mensagens ...
Alguém sabe o que tem que ser feito para traduzir inclusive estas mensagens ?
-
Muito bom Douglas, que fique registrado aqui para servir de ajuda para desenvolvedores que se depararem com o mesmo problema
[]s
Douglas N wrote: Olá senhores, boa tarde.
Consegui fazer a tradução em 100% do Reporting Services.
Primeiramente, segui a dica do Eleu, implementando a interface Microsoft.Reporting.WebForms.IReportViewerMessages na classe que ele sugeriu criar, está intereface permite você rescrever os metodos e colocar mensagens do jeito que você quiser para alguns botoes e links, mas ainda não é possivel traduzir as mensagens de erro.
Depois de muito ler, descobri que uma versão mais recente da dll do ReportViewer permite a implementação de uma outra interface e essa sim permite reescrever os metodos que retornam mensagens para o usuário.
A interface chama-se Microsoft.Reporting.WebForms.IReportViewerMessages2. Logicamente a sua classe deve conter:
Code Snippetusing Microsoft.Reporting.WebForms;Ao implementa-la você reescreve as mensagens da forma que você quiser.
Code Snippetusing Microsoft.Reporting.WebForms;
public class ReportMessage : Microsoft.Reporting.WebForms.IReportViewerMessages, Microsoft.Reporting.WebForms.IReportViewerMessages2
{public ReportMessage()
{
//
// TODO: Add constructor logic here
//
}Restantes dos metodos das interfaces;
}
Bom, frizando que essas mensagens vão ser traduzidas apenas no reportviewer, ou seja, para que a tradução ocorra, a sua pagina deve usar este controle. Estou dizendo isso por que caso você exiba o relatorio direto do servidor de reports, não funciona a tradução. (Mas talvez seja possível de algum outra forma.)
Lembrando:
-Adicionar a classe que vai conter a implementação das interfaces no App_Code.
-Adicionar linha no Web.config como indicou o Eleu.
Code Snippet<appSettings>
<add key="ReportViewerMessages" value="ReportMessage,APP_CODE"/>
</appSettings>
-Utilizar a versão mais atual da dll Microsoft.ReportViewer.WebForms.dll. No caso eu utilizei a 8.0.50727.762
O esforço é praticamente zero. Apenas reescrever as mensagens e botões.
Abraço.
Todas as Respostas
-
Bom dia Eleu,
As strings do reportmanager / reportviewer seguem a linguagem configurada no IE. Então você mudando a configuração do IE, automaticamente as mensagens vao vir na outra linguagem. As bad news são: Não temos tradução para português-Brasil por padrão
Para resolver isso você pode implementar sua própria assembly de tradução. Vou colocar alguns links a respeito abaixo:
International Considerations for Reporting Services (Contem uma descrição de quais as configurações de linguagem que afetam os relatórios)
http://msdn2.microsoft.com/en-us/library/ms156493.aspx
IReportViewerMessages Interface (Interface que você vai precisar implementar para traduzir as mensagens)
http://msdn2.microsoft.com/en-us/library/microsoft.reporting.webforms.ireportviewermessages.aspx
Posts com dúvidas parecidas, podem ajudar pois contem alguns exemplos:
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1033950&SiteID=1
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=258192&SiteID=1Abraço
Boreki
-
Boreki wrote: Bom dia Eleu,
As strings do reportmanager / reportviewer seguem a linguagem configurada no IE. Então você mudando a configuração do IE, automaticamente as mensagens vao vir na outra linguagem. As bad news são: Não temos tradução para português-Brasil por padrão
Para resolver isso você pode implementar sua própria assembly de tradução. Vou colocar alguns links a respeito abaixo:
International Considerations for Reporting Services (Contem uma descrição de quais as configurações de linguagem que afetam os relatórios)
http://msdn2.microsoft.com/en-us/library/ms156493.aspx
IReportViewerMessages Interface (Interface que você vai precisar implementar para traduzir as mensagens)
http://msdn2.microsoft.com/en-us/library/microsoft.reporting.webforms.ireportviewermessages.aspx
Posts com dúvidas parecidas, podem ajudar pois contem alguns exemplos:
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1033950&SiteID=1
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=258192&SiteID=1Abraço
Boreki
Valeu pela dica, consegui fazer ...
Fica ai a dica o povo... -
-
Junior Galvão - MVP wrote: Boreki,
Muito legal estes links, mas é um trabalho arduo de ser realizado.
Nem dá tanto trabalho assim... O que eu fiz foi o seguinte:
Criei uma classe semelhante a que está nesse link: http://msdn2.microsoft.com/en-us/library/microsoft.reporting.webforms.ireportviewermessages.aspx
E adicionei a senguinte linha no Web.config (minha classe se chama ReportMessage e ela está dentro do APP_CODE):
Code Snippet<
appSettings><
add key="ReportViewerMessages" value="ReportMessage,APP_CODE"/></
appSettings>´
Mas surgiu outra dúvida:
Consegui traduzir todas labels do relatório, porém não consegui ainda as mensagens de erro...
Ex: se não for preenchido um parametro obrigatório, ao gerar o relatorio dará uma mensagem em inglês... ("Please select a value for parameter ...") ...
Andei pesquisando e percebi que tal mensagem vem do Report Server (vide esse link: http://msdn2.microsoft.com/en-us/library/ms156493.aspx )
Mas não compreendi o que têm de ser feito para traduzir inclusive estas mensagens ...
Alguém sabe o que tem que ser feito para traduzir inclusive estas mensagens ?
-
Olá senhores, boa tarde.
Consegui fazer a tradução em 100% do Reporting Services.
Primeiramente, segui a dica do Eleu, implementando a interface Microsoft.Reporting.WebForms.IReportViewerMessages na classe que ele sugeriu criar, está intereface permite você rescrever os metodos e colocar mensagens do jeito que você quiser para alguns botoes e links, mas ainda não é possivel traduzir as mensagens de erro.
Depois de muito ler, descobri que uma versão mais recente da dll do ReportViewer permite a implementação de uma outra interface e essa sim permite reescrever os metodos que retornam mensagens para o usuário.
A interface chama-se Microsoft.Reporting.WebForms.IReportViewerMessages2. Logicamente a sua classe deve conter:
Code Snippetusing Microsoft.Reporting.WebForms;Ao implementa-la você reescreve as mensagens da forma que você quiser.
Code Snippetusing Microsoft.Reporting.WebForms;
public class ReportMessage : Microsoft.Reporting.WebForms.IReportViewerMessages, Microsoft.Reporting.WebForms.IReportViewerMessages2
{public ReportMessage()
{
//
// TODO: Add constructor logic here
//
}Restantes dos metodos das interfaces;
}
Bom, frizando que essas mensagens vão ser traduzidas apenas no reportviewer, ou seja, para que a tradução ocorra, a sua pagina deve usar este controle. Estou dizendo isso por que caso você exiba o relatorio direto do servidor de reports, não funciona a tradução. (Mas talvez seja possível de algum outra forma.)
Lembrando:
-Adicionar a classe que vai conter a implementação das interfaces no App_Code.
-Adicionar linha no Web.config como indicou o Eleu.
Code Snippet<appSettings>
<add key="ReportViewerMessages" value="ReportMessage,APP_CODE"/>
</appSettings>
-Utilizar a versão mais atual da dll Microsoft.ReportViewer.WebForms.dll. No caso eu utilizei a 8.0.50727.762
O esforço é praticamente zero. Apenas reescrever as mensagens e botões.
Abraço.
-
Muito bom Douglas, que fique registrado aqui para servir de ajuda para desenvolvedores que se depararem com o mesmo problema
[]s
Douglas N wrote: Olá senhores, boa tarde.
Consegui fazer a tradução em 100% do Reporting Services.
Primeiramente, segui a dica do Eleu, implementando a interface Microsoft.Reporting.WebForms.IReportViewerMessages na classe que ele sugeriu criar, está intereface permite você rescrever os metodos e colocar mensagens do jeito que você quiser para alguns botoes e links, mas ainda não é possivel traduzir as mensagens de erro.
Depois de muito ler, descobri que uma versão mais recente da dll do ReportViewer permite a implementação de uma outra interface e essa sim permite reescrever os metodos que retornam mensagens para o usuário.
A interface chama-se Microsoft.Reporting.WebForms.IReportViewerMessages2. Logicamente a sua classe deve conter:
Code Snippetusing Microsoft.Reporting.WebForms;Ao implementa-la você reescreve as mensagens da forma que você quiser.
Code Snippetusing Microsoft.Reporting.WebForms;
public class ReportMessage : Microsoft.Reporting.WebForms.IReportViewerMessages, Microsoft.Reporting.WebForms.IReportViewerMessages2
{public ReportMessage()
{
//
// TODO: Add constructor logic here
//
}Restantes dos metodos das interfaces;
}
Bom, frizando que essas mensagens vão ser traduzidas apenas no reportviewer, ou seja, para que a tradução ocorra, a sua pagina deve usar este controle. Estou dizendo isso por que caso você exiba o relatorio direto do servidor de reports, não funciona a tradução. (Mas talvez seja possível de algum outra forma.)
Lembrando:
-Adicionar a classe que vai conter a implementação das interfaces no App_Code.
-Adicionar linha no Web.config como indicou o Eleu.
Code Snippet<appSettings>
<add key="ReportViewerMessages" value="ReportMessage,APP_CODE"/>
</appSettings>
-Utilizar a versão mais atual da dll Microsoft.ReportViewer.WebForms.dll. No caso eu utilizei a 8.0.50727.762
O esforço é praticamente zero. Apenas reescrever as mensagens e botões.
Abraço.
-