در زبان فارسی پخش اعداد و ترتیب کلمات در جملات با زبان انگلیسی تفاوتهایی دارد به همین علت برای فارسی سازی غیر از محتوی فارسی لازم است گرامر پخش اعداد نیز تغییر کند . ما در اینجا شما را با نحوه انجام این کار آشنا می کنیم.
- به منظور اضافه کردن زبان فارسی در استریسک پوشه ای با نام fa در مسیر var/lib/asterisk/sounds/ ایجاد می کنیم:
# mkdir -p /var/lib/asterisk/sounds/fa
- برای فارسی سازی اعداد در استریسک ابتدا لام است فایلهای صوتی با محتوی زیر(جدول A-1) را تهیه و در مسیر /var/lib/asterisk/sounds/fa/digits کپی کنید. و فایل say.conf در مسیر /etc/asterisk/ را ویرایش کرده و تنظیمات زیر را به فایلsay.conf اضافه کنید. و استریسک را بازنشانی کنید.
# nano /etc/asterisk/say.conf
;;;;;; ;;;;;;;;Persian;;;;;;; [fa-base](!) _[n]um:0. => num:${SAY:1} _[n]um:X => digits/${SAY} _[n]um:1X => digits/${SAY} _[n]um:[2-9]0 => digits/${SAY} _[n]um:[2-9][1-9] => digits/${SAY:0:1}0o, num:${SAY:1} _[n]um:X00 => digits/${SAY} _[n]um:XXX => digits/${SAY:0:1}00o, num:${SAY:1} _[n]um:1000 => digits/hezar _[n]um:X000 => digits/${SAY:0:1}, digits/hezar _[n]um:XXXX => digits/${SAY:0:1}, digits/hezaro, num:${SAY:1} _[n]um:XX000 => num:${SAY:0:2}, digits/hezar _[n]um:XXXXX => num:${SAY:0:2}, digits/hezaro, num:${SAY:2} _[n]um:XXX000 => num:${SAY:0:3}, digits/hezar _[n]um:XXXXXX => num:${SAY:0:3}, digits/hezaro, num:${SAY:3} _[n]um:X000000 => num:${SAY:0:1}, digits/million _[n]um:XXXXXXX => num:${SAY:0:1}, digits/milliono, num:${SAY:1} _[n]um:XX000000 => num:${SAY:0:2}, digits/million _[n]um:XXXXXXXX => num:${SAY:0:2}, digits/milliono, num:${SAY:2} _[n]um:XXX000000 => num:${SAY:0:3}, digits/million _[n]um:XXXXXXXXX => num:${SAY:0:3}, digits/milliono, num:${SAY:3} _[n]um:X000000000 => num:${SAY:0:1}, digits/miliard _[n]um:XXXXXXXXXX => num:${SAY:0:1}, digits/miliardo, num:${SAY:1} _[n]um:XX000000000 => num:${SAY:0:2}, digits/miliard _[n]um:XXXXXXXXXXX => num:${SAY:0:2}, digits/miliardo, num:${SAY:2} _[n]um:XXX000000000 => num:${SAY:0:3}, digits/miliard _[n]um:XXXXXXXXXXXX => num:${SAY:0:3}, digits/miliardo, num:${SAY:3} ; enumeration _e[n]um:0X => digits/${SAY:1:1}of _e[n]um:[1-3]X => digits/${SAY}of _e[n]um:[2-9]0 => digits/h-${SAY} _e[n]um:[2-9][1-9] => num:${SAY:0:1}0, digits/h-${SAY:1} _e[n]um:[1-9]00 => num:${SAY:0:1}, digits/h-hundred _e[n]um:[1-9]XX => num:${SAY:0:1}, digits/h-hundred, enum:${SAY:1} [fa](fa-base) ; time hours ;_hour:X => digits/${SAY}h _hour:0000 => digits/24 _hour:00XX => num:${SAY:2:2}, digits/minute, digits/a-m _hour:000X => num:/${SAY:3:1}, digits/minute, digits/a-m _hour:0X00 => num:${SAY:1:1} _hour:0X0X => digits/h-${SAY:1:1}, num:${SAY:3:1}, digits/minute _hour:0XXX => digits/h-${SAY:1:1}, num:${SAY:2:2}, digits/minute _hour:XX00 => num:${SAY:0:2} _hour:XX0X => digits/h-${SAY:0:2}, num:${SAY:3:1}, digits/minute _hour:XXXX => digits/h-${SAY:0:2}, num:${SAY:2:2}, digits/minute _digit:[0-9] => digits/${SAY} _digit:[-] => letters/dash _digit:[*] => letters/star _digit:[@] => letters/at _digit:[0-9]. => digit:${SAY:0:1},digits/oh, digit:${SAY:1} ; the 'SAY' variable contains YYYYMMDDHHmm.ss-dow-doy ; these rule map the strftime attributes. _date:[Y]:. => num:${SAY:0:4} ; year, 19xx _date:[Bbh]:. => digits/mon-${SAY:4:2} ; month name, 0..11 _date:[Aa]:. => digits/day-${SAY:16:1} ; day of week _date:[de]:. => enum:${SAY:6:2} ; day of month _date:[H]:. => hour:${SAY:8:4} ; hour (oh one, oh two, ..., oh nine, ten, eleven, ..., twenty-three) _date:[I]:. => num:$[${SAY:8:2} % 12] ; hour 0-12 ;_date:[M]:. => digits/${SAY:10:2} ; minute _date:[M]:. => mnt:${SAY:10:2} ; minute ; XXX too bad the '?' function does not remove the quotes ; _date:[pP]:. => digits/$[ ${SAY:10:2} > 12 ? "p-m" :: "a-m"] ; am pm _date:[pP]:. => digits/p-m ; am pm _date:[S]:. => num:${SAY:13:2} ; seconds _date:[Ii]:. => num:$[${SAY:8:2} % 12] ; hour 0-12 _date:[k]:. => num:${SAY:8:2} ; hour (one, two. three, ...,twenty three _date:[m]:. => num:${SAY:4:2} ; month number _date:[Q]:. => date:dby ;incompleat ; "today", "yesterday" or ABdY _date:[q]:. => date:dby ;incompleat ; "" (for today), "yesterday", weekday, or ABdY _date:[R]:. => date:HM${SAY} ; 24 hour time, including minute _date:[T]:. => date:HMS${SAY} ; 24 hour, minure, seconds _datetime::. => date:AdBYH:${SAY} _datetime:dBY:. => date:dBY:${SAY} _datetime:ABdYH:. => date:AdBYH:${SAY} _datetime:H:. => date:H:${SAY}
- برای تست زبان داخلی مورد نظرتان را fa تنظیم کرده و کانتکس آن را را به test-say تغییر داده و تنظیم زیر را به فایل /etc/asterisk/extensions.conf/ اضافه کرده و استریسک را بازنشانی و از روی داخلی مورد نظر شماره ۱۲۳ را شماره گیری کنید:
[test-say] exten = 123,1,SayUnixTime() exten = 123,n,SayNumber(34367867879) exten = 123,n,goto(1)
# service asterisk restart
نام فایل | محتوا فارسی |
۱of | اول ِ |
۲of | دوم ِ |
۳of | سوم ِ |
۴of | چهارم ِ |
۵of | پنجم ِ |
۶of | ششم ِ |
۷of | هفتم ِ |
۸of | هشتم ِ |
۹of | نهم ِ |
۱۰of | دهم ِ |
۱۱of | یازدهم ِ |
۱۲of | دوازدهم ِ |
۱۳of | سیزدهم ِ |
۱۴of | چهاردهم ِ |
۱۵of | پانزدهم ِ |
۱۶of | شانزدهم ِ |
۱۷of | هفدهم ِ |
۱۸of | هجدهم ِ |
۱۹of | نوزدهم ِ |
۲۰of | بیستم ِ |
۲۱of | بیست و یکم ِ |
۲۲of | بیست و دوم ِ |
۲۳of | بیست و سوم ِ |
۲۴of | بیست و چهارم ِ |
۲۵of | بیست و پنجم ِ |
۲۶of | بیست و ششم ِ |
۲۷of | بیست و هفتم ِ |
۲۸of | بیست و هشتم ِ |
۲۹of | بیست و نهم ِ |
۳۰of | سی اُم ِ |
۳۱of | سی و یکم |
۱۰۰o | یکصد ُ |
۱۰۰ | یکصد |
۱۰ | ده |
۱۱ | یازده |
۱۲ | دوازده |
۱۳ | سیزده |
۱۴ | چهارده |
۱۵ | پانزده |
۱۶ | شانزده |
۱۷ | هفده |
۱۸ | هجده |
۱۹ | نوزده |
۱ | یک |
۲۰۰o | دویست ُ |
۲۰۰ | دویست |
۲۰o | بیست ُ |
۲۰ | بیست |
۲ | دو |
۳۰۰o | سیصد ُ |
۳۰۰ | سیصد |
۳۰o | سی ُ |
۳۰ | سی |
۳ | سه |
۴۰۰o | چهارصد ُ |
۴۰۰ | چهارصد |
۴۰o | چهل ُ |
۴۰ | چهل |
۴ | چهار |
۵۰۰o | پانصد ُ |
۵۰۰ | پانصد |
۵۰o | پنجاه ُ |
۵۰ | پنجاه |
۵ | پنج |
۶۰۰o | ششصد ُ |
۶۰۰ | ششصد |
۶۰o | شصت ُ |
۶۰ | شصت |
۶ | شش |
۷۰۰o | هفتصد ُ |
۷۰۰ | هفتصد |
۷۰o | هفتاد ُ |
۷۰ | هفتاد |
۷ | هفت |
۸۰۰o | هشتصد ُ |
۸۰۰ | هشتصد |
۸۰o | هشتاد ُ |
۸۰ | هشتاد ُ |
۸ | هشت |
۹۰۰o | نهصد ُ |
۹۰۰ | نهصد |
۹۰o | نود ُ |
۹۰ | نود |
۹ | نه |
hezaro | هزارُ |
hezar | هزار |
miliardo | میلیارد ُ |
miliard | میلیارد |
milliono | میلیون ُ |
million | میلیون |
zero | صفر |
۲zeros | دو صفر |
۳zeros | سه صفر |
۴zeros | چهار صفر |
۵zeros | پنج صفر |
۶zeros | شش صفر |
h-1 | یک ُ |
h-2 | دو ُ |
h-3 | سه ُ |
h-4 | چهار ُ |
h-5 | پنج ُ |
h-6 | شش ُ |
h-7 | هفت ُ |
h-8 | هشت ُ |
h-9 | نه ُ |
h-10 | ده ُ |
h-11 | یازده ُ |
h-12 | دوازده ُ |
h-13 | سیزده ُ |
h-14 | چهارده ُ |
h-15 | پانزده ُ |
h-16 | شانزده ِ |
h-17 | هفده ُ |
h-18 | هجده ُ |
h-19 | نوزده ُ |
h-20 | بیست ُ |
h-21 | بیست و یک ُ |
h-22 | بیست و دوُ |
h-23 | بیست و سه ُ |
h-24 | بیست وچهارُ |
h-30 | سی اُم |
a-m | بامداد |
p-m | بعد از ظهر |
hundred | صد |
thousand | هزار |
million | میلیون |
day-6 | شنبه |
day-0 | یکشنبه |
day-1 | دوشنبه |
day-2 | سه شنبه |
day-3 | چهارشنبه |
day-4 | پنج شنبه |
day-5 | جمعه |
dollars | دلار |
mon-0 | ژانویه ء |
mon-1 | فوریه ء |
mon-2 | مارس ِ |
mon-3 | آوریل ِ |
mon-4 | می ِ |
mon-5 | ژوئن ِ |
mon-6 | جولای ِ |
mon-7 | آگوست ِ |
mon-8 | سپتامبر ِ |
mon-9 | اکتبر ِ |
mon-10 | نوامبر ِ |
mon-11 | دسامبر ِ |
oclock | ساعت ِ |
and | و |
minute | دقیقه |
second | ثانیه |
star | ستاره |
Thousandand | هزار |
pound | مربع |
today | امروز |
tomorrow | فردا |
yesterday | دیروز |
باسلام لطفا درموردتهیه جدولa-1وفایل صوتی آماده بیشترراهنمایی فرمایید.
باتشکر
سلام
منظور ظبط کردن فایلهای صوتی بر اساس ستون محتوا و ذخیره با نام مربوطه در ستون نام فایل و کپی در پوشه digits در مسیر /var/lib/asterisk/sounds/fa
سلام و خسته نباشید
خیلی جالب بود.تشکر
سلام مگه فایل های صداهای فارسی مگه توی cd واک نیست ؟؟؟
سلام
ضمن تشکر از شما
در این مطلب بحث فارسی سازی در استریسک است نه واک ولی اگر در واک هم همه این فایلها را داشته و تنظیمات لازم نیز انجام شده باشد وقتی زبان کانال فارسی باشد application های مرتبط درست کار میکنند.
سلام آقای پاپی می شه googletalk یا yahoo ID که آنلاین هستد رو بگذارید و اینکه شما در مورد توابه تعویض Caller ID توی استریسک چیزی شنیدید؟
سلام
بعداز این کارها باید یک بار say load new را در cli اعمال کرد تا جواب دهد اما بعد از هر بار restart شدن استریسک یا سیستم این load از بین میره راه حل چیست؟
در خود فایل say.conf میتونید mode = old را به mode = new تغییر دهید.
سلام . و البته در نسخه ۱٫۶٫۰ استریسک میشه.
کسی تا حالا همه این فایل ها رو با یک صدا آماده کرده ؟
سلام
خیلی کاربردی بود ، ممنون . فقط من با یک مشکل مواجه شدم و اون اینکه وقتی یک عدد مثل ۱۲۳۴۵ رو به فارسی میخواد بخونه ۱۲ رو فارسی میخونه هزار رو انگلیسی سی رو فارسی صد رو انگلیسی، کسی به این مشکل برخورده ؟ ممنون میشم.
سلام دوست عزیز
این مشکلی که شما مطرح میفرمایید مربوط به فایلهای صوتی است به نظر میرسد که فایلهای صوتی با نامهای hezaro–300o در مسیر زبان فارسی وجود ندارد .
سلام
ممنون از راهنماییتون.
عااااااااااااااااالی بود.