Add another language “cookbook”
One of the main design principles is the extensibility of the system. We tried to divide our software into separate, independent modules. This way, changing or plugging in into Phoneme should be fairly easy and bug-less.
One Such example is the “add language” extension. Phoneme is designed to handle any unicode-supported language (virtually any language).
Here we will descrive this fairly easy process. Let’s assume we want to add Russian support to Phoneme:
-
Add russian to enum like that: PhoneticTranslator.SUPPORTED_LANGUAGES { HEBREW,RUSSIAN}
-
Add another menu item
-
Create a class Rus2EnMap that mapps Latin characters to Cyrillic characters.
-
Create a class “RussianTranslator”, which implements ITranslatable, meaning that has enough wisdom inside it to translate a word in phonemic Russian to Cyrillic Russian. This class should use the Rus2EnMap class.
-
Add code in PhonteicTranslator::setLanguage(String) which allocates the class from section 4 if Russian is selected. E.g:
else if (m_language == SUPPORTEDLANGUAGES.RUSSIAN)
m_myTranslator = new RussianTranslator();
That’s it!
Appendix A
כתיבה וקריאה בכתב פונמי
(נוסח מקוצר)
Taken from http://mila.cs.technion.ac.il
כללי התעתיק (כללי הכתיבה)
תעתיק העיצורים
האות
|
התעתיק
|
האות
|
התעתיק
|
האות
|
התעתיק
|
א
|
^ או `
|
י
|
y
|
ק
|
Q
|
בּ, ב
|
b
|
כ, כּ, ך
|
k
|
ר
|
R
|
גּ, ג
|
g
|
ל
|
l
|
ֹש
|
$, š
|
דּ, ד
|
d
|
מ, ם
|
m
|
שֹ
| $, j, ś |
ה
|
h
|
נ, ן
|
n
|
ת
|
t
|
ו
|
w
|
ס
|
s
|
ג'
|
ğ
|
ז
|
z
|
ע
|
' &
|
ז'
|
ž
|
ח
|
, ḥ x
|
פּ, פ, ף
|
p
|
צ'
|
č
|
ט
|
ṭ @
|
צ, ץ
|
c
|
|
|
סימני עזר: - להפרדת מילות שימוש זעירות, _ להפרדה בין אותיות זהות כשאין הכוונה למכפל.
תעתיק התנועות: חמש התנועות הן: a,e,i,o,u. תנועה שישית היא צירוף של e ו-i. סימון זה נחוץ רק כדי לתעתק בו את הצירה המלא, תנועה המסומנת בכתב העברי באות י'. כך למשל תיכתב המילה העברית ביצה: beica.
-
בתעתיק מדויק אין צורך לתעתק תנועות לא-פונמיות, כגון שווא ("נע" וכמובן "נח"), פתח גנוב, תנועת עזר סגולית, וזה יהיה אפוא תעתיק המילים הבאות: ילדים, כלבים, דואר, ילד, תפוח: tappux, yeld, do`r, klabim, yladim. כך ניכר יפה המשקל והמבנה התיאורטי של המילה, וניתן להשוות למשל בין צורות הריבוי הדומות של ילד ושל כלב לעומת הביצוע השונה שלהן.
2. מכפל (דגש חזק) יש לתעתק ברצף של שתי אותיות זהות. במיוחד יש לשים לב לאותיות ב, כ, פ. כאן אם המבטא קשה ולפני העיצור הזה באה תנועה – אין להשמיט כפל אותיות בשום מקרה: tikkon לעומת tikon, dober - dibbur ( תִּכּוֹן – תִּיכוֹן, דּוֹבֵר – דִּבּוּר, וראו את הסעיף המתאים בכללי הקריאה.)
-
שני עיצורים זהים רצופים שאינם יוצרים מכפל – יש להוסיף ביניהם קו נומך ("_") כגון xog_gim (חוֹגְגִים), בלעדיו ייראה כאן מכפל.
-
מילות השימוש הזעירות מ-, ש-, ה-, ו-, כ-, ל-, ב- - שבכתב העברי אין רווח אחריהן – מופרדות מן המילה שאחריהן במקף: ha-bayt, mi-$am. (אין אלה "אותיות", ובשפתנו החיה לא נכון לכנות קבוצה זו כאילו הן אותיות.) כללי התעתיק של האקדמיה מציעים הפרדה בין ה' היידוע והמילה שאחריה, אך אינם מזכירים את שאר המילות.
5. א' בראש מילה – ראוי לכתבה, גם אם עיצור א' אינו נשמע למעשה.
6. החטפים: ראוי להתייחס אל כל חטף כאל תנועה לא פונמית: ×xda$im, hlika, `munim .
Appendix B
Phoneme Documentation
Phoneme Class Documentation
Phoneme::AppProfile Class Reference Error: Reference source not found
Public Member Functions Error: Reference source not found
Public Attributes Error: Reference source not found
Detailed Description Error: Reference source not found
Constructor & Destructor Documentation Error: Reference source not found
Member Function Documentation Error: Reference source not found
Member Data Documentation Error: Reference source not found
Phoneme::Heb2EnMap Class Reference Error: Reference source not found
Public Member Functions Error: Reference source not found
Detailed Description Error: Reference source not found
Constructor & Destructor Documentation Error: Reference source not found
Member Function Documentation Error: Reference source not found
Phoneme::HebrewTranslator Class Reference Error: Reference source not found
Public Member Functions Error: Reference source not found
Public Attributes Error: Reference source not found
Detailed Description Error: Reference source not found
Constructor & Destructor Documentation Error: Reference source not found
Member Data Documentation Error: Reference source not found
Phoneme::IPhoneticTranslatorUserInteraction Interface Reference Error: Reference source not found
Public Member Functions Error: Reference source not found
Detailed Description Error: Reference source not found
Member Function Documentation Error: Reference source not found
Phoneme::ITranslatable Interface Reference Error: Reference source not found
Public Member Functions Error: Reference source not found
Detailed Description Error: Reference source not found
Member Function Documentation Error: Reference source not found
Phoneme::LowLevelKeyboardHook Class Reference Error: Reference source not found
Public Member Functions Error: Reference source not found
Public Attributes Error: Reference source not found
Static Public Attributes Error: Reference source not found
Classes Error: Reference source not found
Detailed Description Error: Reference source not found
Constructor & Destructor Documentation Error: Reference source not found
Member Function Documentation Error: Reference source not found
Member Data Documentation Error: Reference source not found
Phoneme::LowLevelKeyboardHook::KeboardHookEventArgs Class Reference Error: Reference source not found
Detailed Description Error: Reference source not found
Phoneme::Phoneme Class Reference Error: Reference source not found
Public Member Functions Error: Reference source not found
Public Attributes Error: Reference source not found
Static Public Attributes Error: Reference source not found
Protected Member Functions Error: Reference source not found
Detailed Description Error: Reference source not found
Constructor & Destructor Documentation Error: Reference source not found
Member Function Documentation Error: Reference source not found
Member Data Documentation Error: Reference source not found
Phoneme::PhoneticTranslator Class Reference Error: Reference source not found
Public Types Error: Reference source not found
Public Member Functions Error: Reference source not found
Public Attributes Error: Reference source not found
Detailed Description Error: Reference source not found
Member Enumeration Documentation Error: Reference source not found
Constructor & Destructor Documentation Error: Reference source not found
Member Function Documentation Error: Reference source not found
Member Data Documentation Error: Reference source not found
Phoneme::predefinedTranslations Class Reference Error: Reference source not found
Public Member Functions Error: Reference source not found
Detailed Description Error: Reference source not found
Constructor & Destructor Documentation Error: Reference source not found
Member Function Documentation Error: Reference source not found
Phoneme::StringTrie Class Reference Error: Reference source not found
Public Member Functions Error: Reference source not found
Public Attributes Error: Reference source not found
Detailed Description Error: Reference source not found
Constructor & Destructor Documentation Error: Reference source not found
Member Function Documentation Error: Reference source not found
Member Data Documentation Error: Reference source not found
Phoneme::TrieNode Class Reference Error: Reference source not found
Public Member Functions Error: Reference source not found
Public Attributes Error: Reference source not found
Detailed Description Error: Reference source not found
Constructor & Destructor Documentation Error: Reference source not found
Member Function Documentation Error: Reference source not found
Member Data Documentation Error: Reference source not found
Phoneme::Win32API Class Reference Error: Reference source not found
Public Types Error: Reference source not found
Classes Error: Reference source not found
Detailed Description Error: Reference source not found
Member Enumeration Documentation Error: Reference source not found
Phoneme::Win32API::POINT Struct Reference Error: Reference source not found
Detailed Description Error: Reference source not found
Phoneme::WordlistDBInterface Interface Reference Error: Reference source not found
Public Member Functions Error: Reference source not found
Detailed Description Error: Reference source not found
Member Function Documentation Error: Reference source not found
Share with your friends: |