Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

sedex

Mudando o mês no php ou apache

Recommended Posts

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

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

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.