Re: [AsteriskBrasil] Patch para adaptação ao idioma PT-BR (somente Asterisk 1.2.7.1)
Celso Fassoni
celso.fassoni em gmail.com
Quarta Abril 26 21:37:12 BRT 2006
Caio, está parecendo que se trata do VoiceMail, correto? Neste caso,
verifique o timezone no voicemail.conf.
Fiz uma atualização do README.lang_br com a descrição das aplicações e
formatos suportados. De uma olhada no anexo.
Diga-nos os resultados!!
Obrigado,
Celso Fassoni
Em 26/04/06, Caio Begotti<caio em ueberalles.net> escreveu:
> On Wednesday 26 April 2006 18:39, Caio Begotti wrote:
> > Ele tá tentando tocar o digits/at e o digits/pt-as um seguido do outro.
>
> Outro problema (por enquanto só reports, nada de patch para o patch hehe):
>
> -- Playing 'digits/6' (language 'br')
> -- Playing 'digits/pt-da' (language 'br')
> -- Playing 'digits/night' (language 'br')
> -- Playing 'digits/20' (language 'br')
> -- Playing 'digits/pt-e' (language 'br')
> -- Playing 'digits/7' (language 'br')
> -- Playing 'digits/minutes' (language 'br')
> -- Playing 'digits/pt-da' (language 'br')
> -- Playing 'digits/night' (language 'br')
>
> Ele ta falando: 6 da noite 20 e 7 minutos da noite
> Deveria ser: 6 horas e 20 e 7 minutos da noite
>
> Falou!
>
> --
> caio[1982] begotti
> http://caio.ueberalles.net
> _______________________________________________
> LIsta de discussões AsteriskBrasil.org
> AsteriskBrasil em listas.asteriskbrasil.org
> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>
> _______________________________________________
> Acesse o wiki AsteriskBrasil.org:
> http://www.asteriskbrasil.org
>
-------------- Próxima Parte ----------
ABSTRACT
========
The Portuguese Language spoken in some countries like Portugal and Brazil needs
some adaptations in the code in order to make the pronunciation be grammatically
correct.
These README is to Brazilian users who want to have their Asterisk working
in their native language and teachs how to apply a patch in the source code in
order to implement those adaptations. The instructions will be available only
in Portuguese.
DISCLAIMER
==========
The author disclaims responsability in the code or its usage. All the credits go
to Asterisk community world wide and the source code is licensed under GPL.
The implementation is totally EXPERIMENTAL. Use it with caution!
INSTRU??ES
==========
O seguinte trabalho foi feito com base no c?digo existente para v?rios idiomas
tais como o pr?prio Portugues de Portugal (language=pt), Espanhol e Frances.
Os arquivos alterados s?o:
<asterisk src root>/say.c
<asterisk src root>/apps/app_voicemail.c
ATEN??O: A vers?o compat?vel no momento ? 1.2.7.1
Nenhuma anterior ou posterior foi testada e poder? ocorrer problemas se tentado
1) Instale o c?digo fonte do Asterisk no diret?rio de prefer?ncia (p.ex. /usr/src)
# cd /usr/src
# wget http://ftp.digium.com/pub/asterisk/releases/asterisk-1.2.7.1.tar.gz
# tar xzvf asterisk-1.2.7.1.tar.gz
# cd asterisk-1.2.7.1
2) Aplique o patch
# patch -p0 < /path/to/the/patch/lang_br_asterisk-1.2.7.1.patch
N?o dever? ser mostrada qualquer mensagem de erro se tudo ocorreu bem. Caso
contr?rio, aborte e verifique.
3) Compile e instale
# make
# make install
APLICA??ES
==========
- SayNumber
----------------------------------------------------------------------------------
Fala um n?mero (exemplo "dois mil, duzentos e trinta e sete").
Sintaxe
SayNumber(numero[,genero])
Fala um n?mero no idioma escolhido (padr?o em Ingl?s).
Aceita somente inteiros entre 0 e 999,999,999, positivos ou negativos.
'genero' pode ser:
"f" feminino
Descri??o
Alterando o par?metro ou vari?vel 'language' afeta a maneira de como os n?meros
s?o pronunciados de acordo com o idioma. Por exemplo, 92 usando "language=en"
(arquivos "90" seguido do "2" do diret?rio "sounds/digits" padr?o) n?o usar?
os mesmos prompts do que 92 em "br" (arquivos "90", "pt-e" seguido do "2" do
diret?rio "sounds/digits/br" espec?fico para o idioma "br"). Esta caracter?stica
est? codificada internamente no software para v?rios idiomas.
Examplos (language=br)
SayNumber(123) ; Fala "cento e vinte e tres" (100E + 20 + pt-e + 3)
SayNumber(389,f); Fala "trezentas e oitenta e nove" (300F + pt-e + 80 + pt-e + 9)
SayNumber(-25); Fala "menos vinte e cinco" (minus + 20 + pt-e + 5)
Veja tamb?m
Lista de prompts para o idioma Portugues do Brasil ao final deste documento
- SayUnixTime
----------------------------------------------------------------------------------
Fala a data e/ou hora para o originador de acordo com o formato especificado.
Sintaxe
SayUnixTime(unixtime,timezone,format)
Descri??o
Utiliza alguns arquivos de ?udio armazenados em /var/lib/asterisk/sounds/digits
para construir a frase, falando a data e/ou hora num formato espec?fico.
SayUnixTime ? compat?vel com v?rios idiomasa. Ele pronunciar? a data e hora
de acordo com o 'language' configurado no canal ou substitu?do pelo comando
SetLanugage. Neste descritivo foi ilustrado com o language=br.
'unixtime' ? a data/hora a ser pronunciada, representada como um timestamp padr?o
do unix (numero de segundos desde 00:00:00 de 1/Jan/1970 UTC).
Se o par?metro for omitido, a data/hora corrente do sistema ? utilizada.
'timezone' especifica o fuso hor?rio correspondente a data/hora especificada por
unixtime. Se o par?metro for omitido. ser? utilizado o valor padr?o
do sistema. Consulte seu /usr/share/zoneinfo para uma lista de fusos
v?lidos no sistema, por exemplo "Pacific/Samoa".
'format' ? um sequencia de caracteres que determina a maneira de como o hor?rio
ser? pronunciado. Ele utiliza um formato baseado na chamada do sistema
strftime(3), se voc? for familizarizado com tal fun??o. Se omitido, o
padr?o ser?:
ABdY 'digits/at' IMp
Que resulta numa frase como: "Segunda-feira Janeiro vinte e um dois mil
e tres as sete cinquenta e dois minutos da noite". Note que 'digits/at'
refere-se ao audio em /var/lib/asterisk/sounds/digits/br/at.gsm, ou seja,
? um caminho relativo ao arquivo de ?udio.
Codigos para o formato:
'filename' arquivo de audio a ser emitido. O ap?strofo ' ? requerido.
A ou a Dia da semana (domingo, segunda-feira, ... s?bado)
B, b ou h Mes (Janeiro, Fevereiro,... Dezembro)
d ou e Dia do mes (um, dois, ... trinta e um)
Y Ano (sempre com milhar: dois mil e seis)
I Hora no formato de 12h, precedido das preposi??es "a", "ao" ou "as"
(00:00 - a meia-noite, 12:00 - ao meio-dia, 02:00 - as duas da tarde ou manha)
l Hora no formato de 12h, sem preceder com preposi??es
(00:00 - meia-noite, 12:00 - meio-dia, 02:00 - duas da tarde ou manha)
H Hora no formato 24h (zero hora, uma hora, duas... vinte e tres horas)
k Hora no formato 24h, omitindo-se "hora"/"horas" (zero, uma... vinte e tres)
M Minutos (zero minuto, um minuto, ... cinquenta e nove minutos)
m Mes em formato numerico (um, dois,... doze)
P ou p Per?odo da hora (at? as 12:00 "da manha", entre 12:00 e
18:00 "da tarde" e ap?s 18:00 "da noite")
Q "Hoje", "Ontem" ou ABdY
q "Ontem", dia da semana ou ABdY (omite o "hoje")
R Hora e minutos no formato 24h (ex., quatorze horas e um minuto)
S Segundo (zero segundo, um segundo,... cinquenta e nove segundos)
T Hora, minutos e segundos (como HMS), sem a preposi??o "e" entre
os elementos
C?digo de Retorno
0 ou -1 on hangup.
Exemplo
SayUnixTime(,,HM) ; Pronuncia como "dezesseis horas e vinte e sete minutos"
Veja tamb?m
Lista de prompts para o idioma Portugues do Brasil ao final deste documento
voicemail.conf - configura??o do par?metro tz (timezone)
voicemail.conf
----------------------------------------------------------------------------------
Abaixo um exemplo de como configurar o par?metro tz para que a pron?ncia da
data e hora da mensagem esteja de acordo com o idioma Portugues do Brasil.
Os c?digos de formato na linha da defini??o do timezone segue exatamente ao formato
definido na aplica??o SayUnixTime.
[general]
...
tz=brazil
[zonemessages]
brazil=America/Sao_Paulo|'vm-received' QR
[default]
;Defini??o das caixas postais
;maxmsg=50
<mailbox> => <senha>,Nome do Usu?rio,email em dousuario,,tz=brazil
Veja tamb?m
SayUnixTime
ARQUIVOS DE AUDIO (PROMPTS) NECESS?RIOS
=======================================
Devido a complexidade na composi??o de frases no idioma Portugues, foi necess?rio
o acr?scimo de v?rios arquivos. Abaixo uma rela??o de prompts usados (alguns
arquivos podem ja estar dispon?veis):
Em "digits/br"
Arquivo Frase Exemplo, como em...
--------------------------------------------------------------------------
0.gsm zero
1.gsm um UM minuto
1F.gsm uma UMA hora
2.gsm dois DOIS minutos
2F.gsm duas DUAS horas
3.gsm tres
4.gsm quatro
5.gsm cinco
6.gsm seis
7.gsm sete
8.gsm oito
9.gsm nove
10.gsm dez
11.gsm onze
12.gsm doze
13.gsm treze
14.gsm quatorze
15.gsm quinze
16.gsm dezesseis
17.gsm dezessete
18.gsm dezoito
19.gsm dezenove
20.gsm vinte
30.gsm trinta
40.gsm quarenta
50.gsm cinquenta
60.gsm sessenta
70.gsm setenta
80.gsm oitenta
90.gsm noventa
100.gsm cem
100E.gsm cento e CENTO E quarenta e tres
200.gsm duzentos
200F.gsm duzentas
300.gsm trezentos
300F.gsm trezentas
400.gsm quatrocentos
400F.gsm quatrocentas
500.gsm quinhentos
500F.gsm quinhentas
600.gsm seiscentos
600F.gsm seiscentas
700.gsm setecentos
700F.gsm setecentas
800.gsm oitocentos
800F.gsm oitocentas
900.gsm novecentos
900F.gsm novecentas
1000.gsm mil
1000000.gsm milh?o
1000000S.gsm milh?es
pt-de.gsm de trinta DE abril
pt-a.gsm a recebido A meia-noite
pt-meianoite.gsm meia noite
pt-ao.gsm ao recebido AO meio-dia
pt-meiodia.gsm meio dia
pt-as.gsm ?s recebido AS dezesseis horas
pt-da.gsm da quatro horas DA tarde
pt-e.gsm e vinte E um
morning.gsm manh? nove horas da MANH?
afternoon.gsm tarde duas horas da TARDE
night.gsm noite oito horas da NOITE
hour.gsm hora uma HORA
hours.gsm horas duas HORAS
minute.gsm minuto um MINUTO
minutes.gsm minutos dois MINUTOS
second.gsm segundo um SEGUNDO
seconds.gsm segundos dois SEGUNDOS
minus.gsm menos MENOS vinte e cinco
Em "sounds/br":
vm-INBOXs.gsm nova uma mensagem NOVA
vm-Olds.gsm antiga uma mensagem ANTIGA
vm-youhaveno.gsm voc? n?o tem VOC? N?O TEM mensagens
DUVIDAS, SUGEST?ES
==================
Poste suas d?vidas e sugest?es na lista AsteriskBrasil:
AsteriskBrasil em listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
O Autor
Celso Porto Fassoni
celso.fassoni em gmail.com
-- Abr/2006 --
Mais detalhes sobre a lista de discussão AsteriskBrasil