sedex 0 Denunciar post Postado Janeiro 28, 2008 Pessoal, gostaria de saber onde devo mudar, no (APACHE ou PHP.INI), para que a exibição dos meses seja em português e não inglês. O sistema busca o nome dos meses no servidor! Alguém poderia me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
Paulo André 0 Denunciar post Postado Janeiro 28, 2008 setlocale() Compartilhar este post Link para o post Compartilhar em outros sites
sedex 0 Denunciar post Postado Janeiro 28, 2008 No caso para o português do brasil, deveria colocar então: setlocale("LC_ALL","brazilian"); ou setlocale("LC_ALL","portuguese"); Eu tentei colocar no script que exibe o mês, mas não funcionou... eu devo alterar no PHP.INI? Compartilhar este post Link para o post Compartilhar em outros sites
Paulo André 0 Denunciar post Postado Janeiro 28, 2008 No início do script, tente colocando assim: setlocale("LC_ALL","pt_BR"); lembrando que nem todos os servidores este método funciona, a saída é fazer um script que interpreta e "traduz" isto. []'s Compartilhar este post Link para o post Compartilhar em outros sites
sedex 0 Denunciar post Postado Janeiro 28, 2008 Coloquei, mas apareceu o seguinte erro: Warning: setlocale() [function.setlocale]: Passing locale category name as string is deprecated. Use the LC_* -constants instead. in C:\AppServ\www\site\calendario\include_calendario.php on line 2 Compartilhar este post Link para o post Compartilhar em outros sites
Paulo André 0 Denunciar post Postado Janeiro 28, 2008 Opa... fui dar Ctrl+C e Ctrl+V do seu post ai nem percebi... :D O primeiro parâmetro é uma constante e não string: setlocale(LC_ALL, "pt_BR"); []'s Compartilhar este post Link para o post Compartilhar em outros sites
sedex 0 Denunciar post Postado Janeiro 28, 2008 Da uma olhada no script que eu to tentando mexer! É o Free Super Calendar, é um calendário em Ajax, PHP e MySql. Demo: Free Super Calendar Download: Download Porque não funcionou, o script trava, e fica apenas a imagem de loading... Depois que eu tiro setlocale(LC_ALL, "pt_BR"); funciona normal. Compartilhar este post Link para o post Compartilhar em outros sites
sedex 0 Denunciar post Postado Janeiro 28, 2008 Pessoal, aqui é onde a variável $name recebe o nome dos meses em inglês (January, February, ...) $days=date("t",mktime(0,0,0,$month,1,$year)); $start = $date['wday']+1; $name = $date['month']; $year2 = $date['year']; $offset = $days + $start - 1; if($month==12) { $next=1; $nexty=$year + 1; } else { $next=$month + 1; $nexty=$year; } if($month==1) { $prev=12; $prevy=$year - 1; } else { $prev=$month - 1; $prevy=$year; } Mas não estou conseguindo colocar os meses em portugues (Janeiro, Fevereiro, ...) Compartilhar este post Link para o post Compartilhar em outros sites
Paulo André 0 Denunciar post Postado Janeiro 29, 2008 Onde está a atribuição do array $date? :D Compartilhar este post Link para o post Compartilhar em outros sites
sedex 0 Denunciar post Postado Janeiro 29, 2008 Esse é o arquivo que contém o código que exibe o calendário!! <?php header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" ); header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" ); header("Cache-Control: no-cache, must-revalidate" ); header("Pragma: no-cache" ); header("Content-Type: text/xml; charset=utf-8"); $dbhost = 'localhost'; // usually localhost $dbuser = 'root'; // database username $dbpass = 'root'; // database password $db = @mysql_connect($dbhost, $dbuser, $dbpass) or die ("<?xml version=\"1.0\" ?> <response><content><![CDATA[<span class='error'>Database connection failed.</span>]]></content></response>"); mysql_select_db('bancodedados'); $xml = '<?xml version="1.0" ?><response><content><![CDATA['; if($_GET['event'] != '') { $fields = explode("-",$_GET['event']); $result = mysql_query("SELECT *,DATE_FORMAT(`date`,'%b %e, %Y at %l:%i%p') as thedate,DATE_FORMAT(`date`,'%c') as themonth,DATE_FORMAT(`date`,'%Y') as theyear FROM `events` WHERE YEAR(`date`) = ".$fields[0]." AND MONTH(`date`) = ".$fields[1]." AND DAYOFMONTH(`date`) = ".$fields[2]." ORDER BY `num` ASC"); $i = 0; while($row = mysql_fetch_array($result)) { $xml .= "<div id='event'"; if($i < (mysql_num_rows($result)-1)) $xml .= " style='border-bottom:none'"; $xml .= "><div class='heading'><div class='title'>".$row['heading']."</div><div class='posted'>".$row['thedate']."</div>"; if($i == 0) $xml .= "<div class='back'><a href='java script:navigate(".$row['themonth'].",".$row['theyear'].",\"\")'>« VOLTAR »</a></div>"; $xml .= "</div><div class='line'>".$row['body']."</div><br /></div><br />"; $i++; } } else { $month = $_GET['month']; $year = $_GET['year']; if($month == '' && $year == '') { $time = time(); $month = date('n',$time); $year = date('Y',$time); } $date = getdate(mktime(0,0,0,$month,1,$year)); $today = getdate(); $hours = $today['hours']; $mins = $today['minutes']; $secs = $today['seconds']; if(strlen($hours)<2) $hours="0".$hours; if(strlen($mins)<2) $mins="0".$mins; if(strlen($secs)<2) $secs="0".$secs; $days=date("t",mktime(0,0,0,$month,1,$year)); $start = $date['wday']+1; $name = $date['month']; $year2 = $date['year']; $offset = $days + $start - 1; if($month==12) { $next=1; $nexty=$year + 1; } else { $next=$month + 1; $nexty=$year; } if($month==1) { $prev=12; $prevy=$year - 1; } else { $prev=$month - 1; $prevy=$year; } if($offset <= 28) $weeks=28; elseif($offset > 35) $weeks = 42; else $weeks = 35; $xml .= "<table class='cal' cellpadding='0' cellspacing='1'> <tr> <td colspan='7' class='calhead'> <table> <tr> <td> <a href='java script:navigate($prev,$prevy,\"\")' style='border:none'><img src='images/calLeft.gif' alt='prev' /></a> <a href='java script:navigate(\"\",\"\",\"\")' style='border:none'><img src='images/calCenter.gif' alt='current' /></a> <a href='java script:navigate($next,$nexty,\"\")' style='border:none'><img src='images/calRight.gif' alt='next' /></a> <a href='java script:void(0)' onClick='showJump(this)' style='border:none'><img src='images/calDown.gif' alt='jump' /></a> </td> <td align='center'> $name $year2 </td> </tr> </table> </td> </tr> <tr class='dayhead'> <td>D</td> <td>S</td> <td>T</td> <td>Q</td> <td>Q</td> <td>S</td> <td>S</td> </tr>"; $col=1; $cur=1; $next=0; for($i=1;$i<=$weeks;$i++) { if($next==3) $next=0; if($col==1) $xml.="\n<tr class='dayrow'>"; $xml.="\t<td valign='top' onMouseOver=\"this.className='dayover'\" onMouseOut=\"this.className='dayout'\">"; if($i <= ($days+($start-1)) && $i >= $start) { $xml.="<div class='day'><b"; if(($cur==$today[mday]) && ($name==$today[month])) $xml.=" style='color:#C00'"; $xml.=">$cur</b></div>"; $result = mysql_query("SELECT DATE_FORMAT(`date`,'%Y-%m-%e') FROM `events` WHERE MONTHNAME(`date`)='$name' AND DAYOFMONTH(`date`)=$cur AND YEAR(`date`)=$year2"); if(mysql_num_rows($result) > 0) { $row = mysql_fetch_row($result); $xml.="<div class='calevent'><a href='java script:navigate(\"\",\"\",\"".$row[0]."\")'>Evento</a></div>"; } $xml.="\n\t</td>\n"; $cur++; $col++; } else { $xml.=" \n\t</td>\n"; $col++; } if($col==8) { $xml.="\n</tr>\n"; $col=1; } } $xml.="</table>"; } $xml .= "]]></content></response>"; echo $xml; ?> Compartilhar este post Link para o post Compartilhar em outros sites
Paulo André 0 Denunciar post Postado Janeiro 29, 2008 Alguns servidores a função setlocale() realmente não funciona, que deve ser o seu caso. Faça você mesmo uma função que traduz isto, por exemplo, passando por parâmetro o nome em inglês: <?php function traduzMes( $name ) { $ret = ""; switch( $name ) { case "January": $m = "Janeiro"; break; case "February": $m = "Fevereiro"; break; } return $ret; } ?> E assim por diante. []'s Compartilhar este post Link para o post Compartilhar em outros sites
sedex 0 Denunciar post Postado Janeiro 29, 2008 Pessoal, o unico jeito que teve foi como o amigão Paulo André disse: Traduzir na unha, rsrs Esse trecho de código você coloca na página onde deseja exibir o nome do mês! <?php $mes_ingles = date("n"); // vê o mês em Inglês switch($mes_ingles) // acha o mês em português { case "1": $mes_port = "Janeiro"; break; case "2": $mes_port = "Fevereiro"; break; case "3": $mes_port = "Março"; break; case "4": $mes_port = "Abril"; break; case "5": $mes_port = "Maio"; break; case "6": $mes_port = "Junho"; break; case "7": $mes_port = "Julho"; break; case "8": $mes_port = "Agosto"; break; case "9": $mes_port = "Setembro"; break; case "10": $mes_port = "Outubro"; break; case "11": $mes_port = "Novembro"; break; case "12": $mes_port = "Dezembro"; break; } ?> Aqui exibe o nome do mês (Janeiro, Fevereiro, etc...) <?=$mes_port?> Obrigado a todos pela força mais uma vez! Compartilhar este post Link para o post Compartilhar em outros sites