[Telegram] Modify the contact_selection view and the search fuction 00/49800/3
authormoon87.park <moon87.park@samsung.com>
Tue, 20 Oct 2015 10:32:50 +0000 (19:32 +0900)
committermoon87.park <moon87.park@samsung.com>
Tue, 20 Oct 2015 11:30:42 +0000 (20:30 +0900)
Change-Id: I319bd54d15db23ec2829424d84c74c8e063669b3

55 files changed:
TelegramTizen/inc/ucol.h [new file with mode: 0755]
TelegramTizen/res/po/ar.po
TelegramTizen/res/po/as.po
TelegramTizen/res/po/az.po
TelegramTizen/res/po/be_BY.po
TelegramTizen/res/po/bn.po
TelegramTizen/res/po/bn_BD.po
TelegramTizen/res/po/de.po
TelegramTizen/res/po/en.po
TelegramTizen/res/po/en_PH.po
TelegramTizen/res/po/en_US.po
TelegramTizen/res/po/es_ES.po
TelegramTizen/res/po/es_US.po
TelegramTizen/res/po/fa.po
TelegramTizen/res/po/fr.po
TelegramTizen/res/po/gu.po
TelegramTizen/res/po/hi.po
TelegramTizen/res/po/hy.po
TelegramTizen/res/po/id.po
TelegramTizen/res/po/it_IT.po
TelegramTizen/res/po/ka.po [new file with mode: 0755]
TelegramTizen/res/po/kk.po
TelegramTizen/res/po/km.po
TelegramTizen/res/po/kn.po
TelegramTizen/res/po/ko_KR.po
TelegramTizen/res/po/ky_KG.po
TelegramTizen/res/po/lo.po
TelegramTizen/res/po/ml.po
TelegramTizen/res/po/mn_MN.po
TelegramTizen/res/po/mr.po
TelegramTizen/res/po/ms.po
TelegramTizen/res/po/my_ZG.po
TelegramTizen/res/po/ne.po
TelegramTizen/res/po/or.po
TelegramTizen/res/po/pa.po
TelegramTizen/res/po/pt_BR.po
TelegramTizen/res/po/pt_PT.po
TelegramTizen/res/po/ru_RU.po
TelegramTizen/res/po/si.po
TelegramTizen/res/po/ta.po
TelegramTizen/res/po/te.po
TelegramTizen/res/po/tg_TJ.po
TelegramTizen/res/po/th.po
TelegramTizen/res/po/tk_TM.po
TelegramTizen/res/po/tl.po
TelegramTizen/res/po/tr_TR.po
TelegramTizen/res/po/uk.po
TelegramTizen/res/po/ur.po
TelegramTizen/res/po/uz.po
TelegramTizen/res/po/vi.po
TelegramTizen/res/po/zh_CN.po
TelegramTizen/src/contact_selection_view.c
TelegramTizen/src/telegramtizen.c
TelegramTizen/src/tg_search_peer_view.c
TelegramTizen/src/ucol.c [new file with mode: 0755]

diff --git a/TelegramTizen/inc/ucol.h b/TelegramTizen/inc/ucol.h
new file mode 100755 (executable)
index 0000000..4cc04df
--- /dev/null
@@ -0,0 +1,35 @@
+#ifndef TG_UCOL_H_
+#define TG_UCOL_H_
+
+#include "tg_common.h"
+
+enum LANGUAGE {
+       LANG_ENGLISH,
+       LANG_KOREAN,
+       LANG_JAPANESS,
+       LANG_CHINESS,
+       LANG_UNKNOWN
+};
+
+extern int ucol_init(void);
+
+extern int ucol_compare(const char *src, const char *dest);
+extern int ucol_case_compare(const char *src, const char *dest);
+
+extern int ucol_ncompare(const char *src, const char *dest, int len);
+extern int ucol_case_ncompare(const char *src, const char *dest, int len);
+
+extern int ucol_search(const char *haystack, const char *needle);
+extern int ucol_case_search(const char *haystack, const char *needle);
+
+extern int ucol_compare_first_letters(const char *src, const char *letters);
+extern int ucol_detect_lang(int ch);
+extern int ucol_fini(void);
+extern const int ucol_current_lang(void);
+extern int ucol_is_alpha(const char *name);
+extern int ucol_is_jamo(const char *name);
+extern int ucol_is_hangul(const char *name);
+/* End of a file */
+
+
+#endif
index 4bb56fe..b775f39 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ابتثجحخدذرزسشصضطظعغفقكلمنهوي"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "تطبيق المراسلة %1$sالأسرع%2$s حول العالم\nوهو %3$sمجاني%4$s و%5$sآمن%6$s."
 
index 398c032..882140a 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "অআইঈউঊঋএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযৰলৱশষসহABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "বিশ্বৰ %1$sদ্ৰুততম%2$s মেচেজ এপ\nএইটো %3$sবিনামূলীয়া%4$s আৰু %5$sসুৰক্ষিত%6$s৷"
 
@@ -463,3 +466,18 @@ msgstr "অনাৱৰোধ কৰক"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "ভাগ-বতৰা"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "লগ আউট কৰক"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "অন্তিমৰ পৰা অন্তিমলৈ এনক্ৰিপ্ট কৰক"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "কোনো ঠাইতে সংৰক্ষণ কৰা নাই"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "এটা প্ৰিছেট সময়ৰ পিছত স্বয়ংক্ৰিয়ভাৱে বিলোপ হ'ব"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "অগ্ৰসৰ কৰিব পৰা নাযাব"
+
index 2f2c913..85f7c52 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCÇDEƏFGĞHXIİJKQLMNOÖPRSŞTUÜVYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "Dünyanın %1$sən sürətli%2$s mesajlaşma proqramı\nO %3$spulsuz%4$s və %5$stəhlükəsizdir%6$s."
 
index 99fbe45..3777fed 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "АБВГДЕЁЖЗІЙКЛМНОПРСТУЎФХЦЧШЫЬЭЮЯ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "Самая %1$sхуткая%2$s праграма абмену паведамленняў у свеце\nЯна %3$sбясплатная%4$s і %5$sбяспечная%6$s."
 
@@ -463,3 +466,18 @@ msgstr "Разблак."
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "Абагуліць"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "Выйсці з сістэмы"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "Зашыфравана цалкам"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "Нідзе не захавана"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "Аўтаматычна выдалена праз перадвызначаны час"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "Немагчыма пераадрасаваць"
+
index 941a100..b464e2a 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "অআইঈউঊঋএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "বিশ্বের %1$sদ্রুততম%2$s মেসেজিং অ্যাপ\nএটি %3$sবিনামূল্যে%4$s এবং %5$sনিরাপদ%6$s।"
 
@@ -463,3 +466,18 @@ msgstr "অবরোধমুক্ত করুন"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "শেয়ার করুন"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "লগ আউট"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "শেষ থেকে শেষ অবধি এনক্রিপ্টেড"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "অন্য কোথাও সংরক্ষিত নেই"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "একটি প্রিসেট সময়ের পরে স্বয়ংক্রিয়ভাবে মোছা হয়েছে"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "অগ্রবর্তী করা যাবে না"
+
index 515b7a4..d504953 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "অআইঈউঊঋএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "বিশ্বের %1$sসবচেয়ে নিরাপদ%2$s মেসেজিং অ্যাপ\nএটি %3$sফ্রি%4$s ও %5$sনিরাপদ%6$s৷"
 
@@ -463,3 +466,18 @@ msgstr "আনব্লক"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "শেয়ার করুন"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "লগ-আউট"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "এক প্রান্ত থেকে আরেক প্রান্ত পর্যন্ত এনক্রিপ্টেড"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "কোথাও সংরক্ষিত হয়নি"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "পূর্বনির্ধারিত সময় পরে স্বয়ংক্রিয়ভাবে মুছে ফেলা হয়েছে"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "ফরোয়ার্ড করা যাবে না"
+
index 08d5eec..0f14ad7 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "Die %1$sschnellste%2$s Nachrichten-App der Welt\nSie ist %3$sgratis%4$s und %5$ssicher%6$s."
 
index 399d216..0f0b648 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "The world's %1$sfastest%2$s messaging app\nIt is %3$sfree%4$s and %5$ssecure%6$s."
 
index 399d216..0f0b648 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "The world's %1$sfastest%2$s messaging app\nIt is %3$sfree%4$s and %5$ssecure%6$s."
 
index 70ee1e6..05c6ce7 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "The world's %1$sfastest%2$s messaging app\nIt is %3$sfree%4$s and %5$ssecure%6$s."
 
index 56d76e5..742cb11 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "La aplicación de mensajería %1$smás rápida%2$s del mundo\nEs %3$sgratuita%4$s y %5$ssegura%6$s."
 
index 2dfc8e7..a7c5c1c 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "La aplicación de mensajes %1$smás rápida%2$s del mundo\nEs %3$sgratis%4$s y %5$ssegura%6$s."
 
@@ -374,7 +377,7 @@ msgid "IDS_TGRAM_OPT_SAVE"
 msgstr "Guardar"
 
 msgid "IDS_TGRAM_HEADER_SLIDE_TO_CANCEL_ABB"
-msgstr "Desliza cancelar"
+msgstr "Deslizar cancela"
 
 msgid "IDS_TGRAM_HEADER_SETTINGS_ABB4"
 msgstr "Ajustes"
index c06cd34..c91d130 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "%1$sسریع‌ترین%2$s برنامه پیام‌رسانی جهانی\nاین برنامه %3$sرایگان%4$s و %5$sایمن%6$s است."
 
@@ -463,3 +466,18 @@ msgstr "رفع انسداد"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "اشتراک"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "خروج از سیستم"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "رمزگذاری دو سویه"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "هیچ جا ذخیره نشده است"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "پس از گذشت زمان پیش‌تنظیم، به طور خودکار حذف شد"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "هدایت ممکن نیست"
+
index 3cb09e9..06b1c8c 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "L'application de messagerie %1$sla plus rapide%2$s au monde\nElle est %3$sgratuite%4$s et %5$ssécurisée%6$s."
 
index dd05c46..beda9b2 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "અઆઇઈઉઊૠએઍઐઓઑઔકખગઘચછજઝટઠડઢણતથદધનપફબભમયરલવશષસહABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "વિશ્વની %1$sસૌથી વધુ ઝડપી%2$s મેસેજિંગ એપ\nતે %3$sમફત%4$s છે અને %5$sસુરક્ષિત%6$s છે."
 
@@ -463,3 +466,18 @@ msgstr "અનાવરોધિત કરો"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "શેર કરો"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "લોગ આઉટ કરો"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "સમાપ્તિથી સુધી સમાપ્તિ સુધી એન્ક્રિપ્ટ કરેલ"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "ક્યાંય પણ સાચવેલ નથી"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "પ્રીસેટ સમય પછી સ્વચાલિત રીતે હટાવવામાં આવ્યું"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "ફોર્વર્ડ કરી શકાતું નથી"
+
index 9a9c527..a4bf2e1 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "अआइईउऊएऐओऔकखगघङचछजझञटठडढणतथदधनपफबभमयरलवशषसहABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "विश्व का %1$sसबसे तेज%2$s सन्देश सेवा एप है\nयह %3$sनिःशुल्क%4$s और %5$sसुरक्षित%6$s है।"
 
index 6d75388..79a69d7 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "#ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՈՒՓՔԵՎՕՖ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "Աշխարհի %1$sամենաարագ%2$s հաղորդագրման ծրագիրը\nԱյն %3$sանվճար%4$s և %5$sապահով%6$s է:"
 
index d993e09..5dd81f2 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "Aplikasi pesan %1$stercepat%2$s di dunia\nIni %3$sgratis%4$s dan %5$saman%6$s."
 
@@ -463,3 +466,18 @@ msgstr "Buka blokir"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "Bagi"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "Keluar"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "Dienkripsi dari ujung ke ujung"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "Tidak disimpan"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "Otomatis dihapus setelah waktu yang prasetel"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "Tidak dapat diteruskan"
+
index 3f2f90d..a2cdab1 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "L'applicazione di messaggistica %1$spiù veloce%2$s al mondo\nÈ %3$sgratuita%4$s e %5$ssicura%6$s."
 
diff --git a/TelegramTizen/res/po/ka.po b/TelegramTizen/res/po/ka.po
new file mode 100755 (executable)
index 0000000..1bf4db8
--- /dev/null
@@ -0,0 +1,483 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "აბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰ"
+
+msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
+msgstr "მსოფლიოს %1$sუსწრაფესი%2$s შეტყობინებების აპლიკაცია\n%3$sუფასო%4$s და %5$sუსაფრთხოა%6$s."
+
+msgid "IDS_TGRAM_HEADER_TELEGRAM"
+msgstr "Telegram"
+
+msgid "IDS_TGRAM_HEADER_FAST"
+msgstr "ჩქარი"
+
+msgid "IDS_TGRAM_HEADER_FREE"
+msgstr "უფასო"
+
+msgid "IDS_TGRAM_ACBUTTON_START_MESSAGING"
+msgstr "შეტყობინებების დაწყება"
+
+msgid "IDS_TGRAM_BUTTON_NEXT_ABB5"
+msgstr "შემდეგი"
+
+msgid "IDS_TGRAM_BUTTON_PREVIOUS_ABB4"
+msgstr "წინა"
+
+msgid "IDS_TGRAM_BUTTON_NEXT_ABB6"
+msgstr "შემდეგი"
+
+msgid "IDS_TGRAM_SBODY_P1SSTELEGRAMP2SS_DELIVERS_MESSAGES_NFASTER_THAN_ANY_OTHER_APP"
+msgstr "%1$sTelegram%2$s-ს უფრო სწრაფად მიაქვს შეტყობინებები,\nვიდრე სხვა აპლიკაციას."
+
+msgid "IDS_TGRAM_SBODY_P1SSTELEGRAMP2SS_IS_FREE_FOREVER_N_NNO_ADS_NO_SUBSCRIPTION_FEES"
+msgstr "%1$sTelegram%2$s მუდამ უფასოა.\n\nრეკლამები არ არის. გამოწერა უფასოა."
+
+msgid "IDS_TGRAM_SBODY_P1SSTELEGRAMP2SS_KEEPS_YOUR_MESSAGES_NSAFE_FROM_HACKERS"
+msgstr "%1$sTelegram%2$s ჰაკერებისგან უსაფრთხოდ\nინახავს თქვენს შეტყობინებებს."
+
+msgid "IDS_TGRAM_SBODY_P1SSTELEGRAMP2SS_HAS_NO_LIMITS_ON_THE_SIZE_OF_NCHATS_AND_MEDIA_YOU_CAN_SHARE"
+msgstr "%1$sTelegram%2$s-ს არ აქვს შეზღუდვა\nთქვენ მიერ გაზიარებულ საუბრებსა და მედიაზე."
+
+msgid "IDS_TGRAM_SBODY_P1SSTELEGRAMP2SS_ALLOWS_YOU_TO_ACCESS_NYOUR_MESSAGES_FROM_MULTIPLE_DEVICES"
+msgstr "%1$sTelegram%2$s საშუალებას გაძლევთ, გახსნათ\nთქვენი შეტყობინებები რამდენიმე მოწყობილობიდან."
+
+msgid "IDS_TGRAM_SBODY_P1SSTELEGRAMP2SS_MESSAGES_ARE_STRONGLY_ENCRYPTED_NAND_CAN_BE_DELETED_AUTOMATICALLY"
+msgstr "%1$sTelegram%2$s შეტყობინებები მკაცრადაა დაშიფრული\nდა ავტომატურად შეიძლება მათი წაშლა."
+
+msgid "IDS_TGRAM_HEADER_SECURE"
+msgstr "დაცული"
+
+msgid "IDS_TGRAM_HEADER_POWERFUL"
+msgstr "ძლიერი"
+
+msgid "IDS_TGRAM_HEADER_CLOUD_BASED_ABB"
+msgstr "ონლაინ-საცავზე დამყარებული"
+
+msgid "IDS_TGRAM_HEADER_PRIVATE"
+msgstr "პერსონალური"
+
+msgid "IDS_TGRAM_BUTTON_PREVIOUS"
+msgstr "წინა"
+
+msgid "IDS_TGRAM_ACBUTTON_CANCEL_ABB"
+msgstr "გაუქმება"
+
+msgid "IDS_TGRAM_ACBUTTON_DONE_ABB"
+msgstr "მზადაა"
+
+msgid "IDS_TGRAM_HEADER_ENTER_NUMBER_ABB"
+msgstr "ნომერი"
+
+msgid "IDS_TGRAM_HEADER_ENTER_CODE_ABB"
+msgstr "ჩაწერეთ კოდი"
+
+msgid "IDS_TGRAM_HEADER_ENTER_NAME_ABB2"
+msgstr "სახელი"
+
+msgid "IDS_TGRAM_BODY_CONFIRM_YOUR_COUNTRY_CODE_MSG"
+msgstr "დაადასტურეთ დამცავი კოდი და შეიყვანეთ თქვენი ტელეფონის ნომერი."
+
+msgid "IDS_TGRAM_BODY_A_VERIFICATION_CODE_HAS_BEEN_SENT_MSG"
+msgstr "დადასტურების კოდი გაიგზავნა. გახსენით შეტყობინებები და შეიყვანეთ დადასტურების კოდი."
+
+msgid "IDS_TGRAM_BODY_TELEGRAM_WILL_CALL_IN_P1SD_CP2SD"
+msgstr "Telegram დარეკავს %1$d:%2$d საათზე."
+
+msgid "IDS_TGRAM_BODY_ENTER_YOUR_FIRST_AND_LAST_NAME_ABB"
+msgstr "შეიყვანეთ თქვენი სახელი გვარი."
+
+msgid "IDS_TGRAM_BODY_FIRST_NAME_HREQUIRED_ABB"
+msgstr "სახელი (მოითხოვება)"
+
+msgid "IDS_TGRAM_BODY_LAST_NAME_HREQUIRED_ABB"
+msgstr "გვარი (მოითხოვება)"
+
+msgid "IDS_TGRAM_BODY_CODE"
+msgstr "კოდი"
+
+msgid "IDS_TGRAM_BODY_PHONE_NUMBER_ABB"
+msgstr "ტელეფონის ნომერი"
+
+msgid "IDS_TGRAM_HEADER_CONTACTS_ABB"
+msgstr "კონტაქტები"
+
+msgid "IDS_TGRAM_NPBODY_SEARCH"
+msgstr "ძებნა"
+
+msgid "IDS_TGRAM_MBODY_INVITE_FRIENDS"
+msgstr "მოიწვიეთ მეგობრები"
+
+msgid "IDS_TGRAM_MBODY_SECRET_CHAT"
+msgstr "აირჩიეთ საუბარი"
+
+msgid "IDS_TGRAM_TMBODY_SELECT_CONTACTS_ABB"
+msgstr "აირჩიეთ კონტაქტები"
+
+msgid "IDS_TGRAM_MBODY_GROUP_CHAT"
+msgstr "ჯგუფური საუბარი"
+
+msgid "IDS_TGRAM_MBODY_SELECT_ALL"
+msgstr "ყველას არჩევა"
+
+msgid "IDS_TGRAM_HEADER_CREATE_GROUP_ABB"
+msgstr "ჯგუფის შექმნა"
+
+msgid "IDS_TGRAM_NPBODY_NEW_GROUP_NAME_ABB"
+msgstr "ახალი ჯგუფის სახელი"
+
+msgid "IDS_TGRAM_BUTTON_PD_SELECTED_ABB"
+msgstr "არჩეულია %d"
+
+msgid "IDS_TGRAM_SBODY_LAST_SEEN_PD_MINUTES_AGO_ABB"
+msgstr "ბოლოს ნანახია %d წუთის წინ"
+
+msgid "IDS_TGRAM_SBODY_LAST_SEEN_1_HOUR_AGO_ABB"
+msgstr "ბოლოს ნანახია 1 საათის წინ"
+
+msgid "IDS_TGRAM_SBODY_LAST_SEEN_PD_HOURS_AGO_ABB"
+msgstr "ბოლოს ნანახია %d საათის წინ"
+
+msgid "IDS_TGRAM_SBODY_LAST_SEEN_WITHIN_WEEK_ABB"
+msgstr "ბოლოს ნანახია გასულ კვირაში"
+
+msgid "IDS_TGRAM_SBODY_LAST_SEEN_WITHIN_MONTH_ABB"
+msgstr "ბოლოს ნანახია გასულ თვეში"
+
+msgid "IDS_TGRAM_SBODY_ONLINE"
+msgstr "ინტერნეტში"
+
+msgid "IDS_TGRAM_SBODY_LAST_SEEN_RECENTLY_ABB"
+msgstr "ბოლოს ნანახია ცოტა ხნის წინ"
+
+msgid "IDS_TGRAM_SBODY_LAST_SEEN_LONG_TIME_AGO_ABB"
+msgstr "ბოლოს ნანახია დიდი ხნის წინ"
+
+msgid "IDS_TGRAM_SBODY_LAST_SEEN_1_MINUTE_AGO_ABB"
+msgstr "ბოლოს ნანახია 1 წუთის წინ"
+
+msgid "IDS_TGRAM_ACBUTTON_SEND_ABB3"
+msgstr "გგზ."
+
+msgid "IDS_TGRAM_BODY_P1SD_P2SD"
+msgstr "%1$d/%2$d"
+
+msgid "IDS_TGRAM_HEADER_COMPOSE_MESSAGE_ABB2"
+msgstr "შეტყობინების შედგენა"
+
+msgid "IDS_TGRAM_HEADER_CREATE_CONTACT_ABB"
+msgstr "კონტაქტის შექმნა"
+
+msgid "IDS_TGRAM_BODY_NAME_ABB"
+msgstr "სახელი"
+
+msgid "IDS_TGRAM_BODY_FIRST_NAME_ABB"
+msgstr "სახელი"
+
+msgid "IDS_TGRAM_BODY_LAST_NAME_ABB"
+msgstr "გვარი"
+
+msgid "IDS_TGRAM_BODY_MOBILE_ABB"
+msgstr "მობილური"
+
+msgid "IDS_TGRAM_OPT_PHONE_NUMBER_ABB"
+msgstr "ტელეფონის ნომერი"
+
+msgid "IDS_TGRAM_OPT_MOBILE"
+msgstr "მობილური"
+
+msgid "IDS_TGRAM_OPT_HOME"
+msgstr "სახლი"
+
+msgid "IDS_TGRAM_OPT_WORK"
+msgstr "სამსახური"
+
+msgid "IDS_TGRAM_OPT_FAX_HHOME"
+msgstr "ფაქსი (სახლის)"
+
+msgid "IDS_TGRAM_OPT_FAX_HWORK"
+msgstr "ფაქსი (სამსახურის)"
+
+msgid "IDS_TGRAM_OPT_FAX_HOTHER_ABB"
+msgstr "ფაქსი (სხვა)"
+
+msgid "IDS_TGRAM_OPT_PAGER"
+msgstr "პეიჯერი"
+
+msgid "IDS_TGRAM_OPT_OTHER"
+msgstr "სხვა"
+
+msgid "IDS_TGRAM_OPT_SEARCH"
+msgstr "ძებნა"
+
+msgid "IDS_TGRAM_OPT_CONTACTS"
+msgstr "კონტაქტები"
+
+msgid "IDS_TGRAM_OPT_SETTINGS"
+msgstr "პარამეტრები"
+
+msgid "IDS_TGRAM_NPBODY_NO_CHATS"
+msgstr "საუბრები არაა"
+
+msgid "IDS_TGRAM_BODY_TO_START_A_NEW_CONVERSATION_TAP_THE_CREATE_NEW_GROUP_BUTTON_IN_THE_BOTTOM_RIGHT_OR_PRESS_THE_MENU_KEY_FOR_MORE_OPTIONS"
+msgstr "ახალი საუბრის დასაწყებად, შეეხეთ ახალი ჯგუფის შექმნის ღილაკს ქვედა მარჯვენა კუთხეში, ან დააჭირეთ მენიუს ღილაკს სხვა ვარიანტებისთვის."
+
+msgid "IDS_TGRAM_HEADER_SEARCH"
+msgstr "ძებნა"
+
+msgid "IDS_TGRAM_NPBODY_NO_RESULTS_FOUND_ABB"
+msgstr "შედეგები არ მოიძებნა"
+
+msgid "IDS_TGRAM_HEADER_SELECT_CHAT_ABB"
+msgstr "აირჩიე საუბარი"
+
+msgid "IDS_TGRAM_HEADER_SELECT_CHATS_ABB"
+msgstr "აირჩიე საუბრები"
+
+msgid "IDS_TGRAM_HEADER_LAST_SEEN_RECENTLY_ABB"
+msgstr "ბოლოს ნანახია ცოტა ხნის წინ"
+
+msgid "IDS_TGRAM_HEADER_LAST_SEEN_LONG_TIME_AGO_ABB"
+msgstr "ბოლოს ნანახია დიდი ხნის წინ"
+
+msgid "IDS_TGRAM_HEADER_LAST_SEEN_1_MINUTE_AGO_ABB"
+msgstr "ბოლოს ნანახია 1 წუთის წინ"
+
+msgid "IDS_TGRAM_HEADER_LAST_SEEN_PD_MINUTES_AGO_ABB"
+msgstr "ბოლოს ნანახია %d წუთის წინ"
+
+msgid "IDS_TGRAM_HEADER_LAST_SEEN_1_HOUR_AGO_ABB"
+msgstr "ბოლოს ნანახია 1 საათის წინ"
+
+msgid "IDS_TGRAM_HEADER_LAST_SEEN_PD_HOURS_AGO_ABB"
+msgstr "ბოლოს ნანახია %d საათის წინ"
+
+msgid "IDS_TGRAM_HEADER_LAST_SEEN_WITHIN_A_WEEK_ABB"
+msgstr "ბოლოს ნანახია გასულ კვირაში"
+
+msgid "IDS_TGRAM_HEADER_LAST_SEEN_WITHIN_A_MONTH_ABB"
+msgstr "ბოლოს ნანახია გასულ თვეში"
+
+msgid "IDS_TGRAM_OPT_VIEW_PROFILE_ABB"
+msgstr "პროფილის ნახვა"
+
+msgid "IDS_TGRAM_OPT_DELETE"
+msgstr "წაშლა"
+
+msgid "IDS_TGRAM_OPT_NOTIFICATION_SETTINGS_ABB"
+msgstr "შეტყობინების პარამეტრები"
+
+msgid "IDS_TGRAM_BODY_NO_MESSAGES_HERE_YET_ING"
+msgstr "აქ ჯერ არ არის შეტყობინებები..."
+
+msgid "IDS_TGRAM_BODY_PD_PARTICIPANTS"
+msgstr "%d მონაწილე"
+
+msgid "IDS_TGRAM_BODY_P1SS_P2SS"
+msgstr "%1$s %2$s"
+
+msgid "IDS_TGRAM_BODY_YOU_HAVE_CREATED_THIS_GROUP_CHAT"
+msgstr "თქვენ შექმენით ეს ჯგუფური საუბარი."
+
+msgid "IDS_TGRAM_OPT_LEAVE_GROUP_CHAT_ABB"
+msgstr "ჯგუფური საუბრიდან გასვლა"
+
+msgid "IDS_TGRAM_BODY_PS_HAS_LEFT_THE_GROUP_CHAT_ABB"
+msgstr "%s გავიდა ჯგუფური საუბარიდან."
+
+msgid "IDS_TGRAM_HEADER_PS_CREATED_THIS_GROUP_CHAT_ABB"
+msgstr "%s არის ამ ჯგუფური საუბრის შემქმნელი."
+
+msgid "IDS_TGRAM_HEADER_LEAVE_GROUP_CHAT_ABB2"
+msgstr "ჯგუფური საუბრიდან გასვლა"
+
+msgid "IDS_TGRAM_POP_YOU_WILL_LEAVE_THIS_GROUP"
+msgstr "თქვენ გახვალთ ამ ჯგუფიდან."
+
+msgid "IDS_TGRAM_BUTTON_CANCEL_ABB5"
+msgstr "გაუქმება"
+
+msgid "IDS_TGRAM_BUTTON_LEAVE_ABB2"
+msgstr "დატოვება"
+
+msgid "IDS_TGRAM_OPT_ADD_TO_TELEGRAM"
+msgstr "Telegram-ში დამატება"
+
+msgid "IDS_TGRAM_SBODY_UNKNOWN"
+msgstr "უცნობი"
+
+msgid "IDS_TGRAM_HEADER_DELETE"
+msgstr "წაშლა"
+
+msgid "IDS_TGRAM_POP_PS_WILL_BE_REMOVED_FROM_YOUR_CONTACT_LIST_IN_TELEGRAM"
+msgstr "%s წაიშლება თქვენს Telegram კონტაქტებში."
+
+msgid "IDS_TGRAM_OPT_COPY_TEXT"
+msgstr "ტექსტის კოპირება"
+
+msgid "IDS_TGRAM_OPT_FORWARD"
+msgstr "გადაგზავნა"
+
+msgid "IDS_TGRAM_OPT_FORWARD_VIA_TELEGRAM_ABB"
+msgstr "გადაგზავნა Telegram-ით"
+
+msgid "IDS_TGRAM_OPT_REPLY"
+msgstr "პასუხი"
+
+msgid "IDS_TGRAM_POP_THIS_MESSAGE_WILL_BE_DELETED"
+msgstr "ეს წერილი წაიშლება."
+
+msgid "IDS_TGRAM_OPT_PROFILE_DETAILS_ABB"
+msgstr "პროფილის დეტალები"
+
+msgid "IDS_TGRAM_HEADER_SELECT_ITEMS_ABB3"
+msgstr "აირჩიე ელემენტ."
+
+msgid "IDS_TGRAM_ACBUTTON_DELETE_ABB2"
+msgstr "წაშლა"
+
+msgid "IDS_TGRAM_OPT_ENABLE"
+msgstr "ჩართვა"
+
+msgid "IDS_TGRAM_OPT_MUTE_FOR_1_HOUR_ABB"
+msgstr "ხმა გამოირთოს 1 საათით"
+
+msgid "IDS_TGRAM_OPT_MUTE_FOR_PD_HOURS_ABB"
+msgstr "ხმა გამოირთოს %d საათით"
+
+msgid "IDS_TGRAM_OPT_MUTE_FOR_PD_DAYS_ABB"
+msgstr "ხმა გამოირთოს %d დღით"
+
+msgid "IDS_TGRAM_OPT_DISABLE"
+msgstr "გამორთვა"
+
+msgid "IDS_TGRAM_HEADER_SHARE_CONTACT_DETAILS_ABB"
+msgstr "საკონტაქტო ინფოს გაზიარება"
+
+msgid "IDS_TGRAM_POP_P1SSS_CONTACT_DETAILS_WILL_BE_SHARED_WITH_P2SS"
+msgstr "%1$s-ის საკონტაქტო დეტალები გაზიარდება %2$s-თან."
+
+msgid "IDS_TGRAM_BUTTON_SHARE_ABB2"
+msgstr "გაზიარება"
+
+msgid "IDS_TGRAM_OPT_ADD_TO_CONTACTS_ABB2"
+msgstr "კონტაქტებში დამატება"
+
+msgid "IDS_TGRAM_OPT_CALL"
+msgstr "ზარი"
+
+msgid "IDS_TGRAM_OPT_COMPOSE_MESSAGE_ABB"
+msgstr "შეადგინეთ შეტყობინება"
+
+msgid "IDS_TGRAM_OPT_CREATE_CONTACT_ABB"
+msgstr "ახალი კონტაქტი"
+
+msgid "IDS_TGRAM_OPT_UPDATE_CONTACT_ABB2"
+msgstr "კონტაქტის განახლება"
+
+msgid "IDS_TGRAM_OPT_SAVE"
+msgstr "შენახვა"
+
+msgid "IDS_TGRAM_HEADER_SLIDE_TO_CANCEL_ABB"
+msgstr "გადასმით გაუქმ."
+
+msgid "IDS_TGRAM_HEADER_SETTINGS_ABB4"
+msgstr "პარამეტრები"
+
+msgid "IDS_TGRAM_OPT_SOUNDS_AND_NOTIFICATIONS_ABB"
+msgstr "ხმები და შეტყობინებები"
+
+msgid "IDS_TGRAM_OPT_PRIVACY_AND_SECURITY_ABB"
+msgstr "კონფიდენციალურობა და უსაფრთხოება"
+
+msgid "IDS_TGRAM_OPT_SET_BACKGROUND_IMAGE_ABB"
+msgstr "სურათის დაყენება ფონზე"
+
+msgid "IDS_TGRAM_OPT_SET_PROFILE_PICTURE_ABB"
+msgstr "პროფილის სურათის დაყენება"
+
+msgid "IDS_TGRAM_OPT_EDIT_NAME"
+msgstr "სახელის რედაქტირება"
+
+msgid "IDS_TGRAM_OPT_LOG_OUT"
+msgstr "გამოსვლა"
+
+msgid "IDS_TGRAM_OPT_FROM_GALLERY_ABB2"
+msgstr "გალერეიდან"
+
+msgid "IDS_TGRAM_OPT_TAKE_PICTURE_ABB"
+msgstr "სურათის გადაღება"
+
+msgid "IDS_TGRAM_HEADER_SELECT_IMAGE_ABB2"
+msgstr "სურათის არჩევა"
+
+msgid "IDS_TGRAM_POP_USE_TELEGRAM_SEAMLESSLY_ACROSS_ANY_NUMBER_OF_DEVICES_MSG"
+msgstr "შეუფერხებლად გამოიყენეთ Telegram ერთდროულად, ნებისმიერი რაოდენობის მოწყობილობაში. ამასთან, საიდუმლო საუბრები გაქრება, როდესაც გახვალთ."
+
+msgid "IDS_TGRAM_BUTTON_LOG_OUT_ABB2"
+msgstr "გამოსვლა"
+
+msgid "IDS_TGRAM_BODY_YOU_HAVE_INVITED_PS_TO_A_SECRET_CHAT"
+msgstr "თქვენ %s მოიწვიეთ საიდუმლო საუბარში."
+
+msgid "IDS_TGRAM_BODY_SECRET_CHAT_CONTENT_C"
+msgstr "საიდუმლო საუბრის შიგთავსი:"
+
+msgid "IDS_TGRAM_HEADER_SET_AUTO_DELETE_TIME_ABB"
+msgstr "ავტომატური წაშლის დაყენება"
+
+msgid "IDS_TGRAM_OPT_VIEW_CONTACT_DETAILS_ABB"
+msgstr "იხილეთ საკონტაქტო მონაცემები"
+
+msgid "IDS_TGRAM_OPT_SET_AUTO_DELETE_TIME_ABB"
+msgstr "ავტომატური წაშლის დროის დაყენება"
+
+msgid "IDS_TGRAM_OPT_CLEAR_HISTORY_ABB3"
+msgstr "ისტორიის წაშლა"
+
+msgid "IDS_TGRAM_OPT_LEAVE_CHAT"
+msgstr "საუბრიდან გასვლა"
+
+msgid "IDS_TGRAM_OPT_EDIT"
+msgstr "რედაქტირება"
+
+msgid "IDS_TGRAM_OPT_ADD_TO_CONTACTS_ABB3"
+msgstr "კონტაქტებში დამატება"
+
+msgid "IDS_TGRAM_OPT_START_SECRET_CHAT_ABB"
+msgstr "საიდუმლო საუბრის დაწყება"
+
+msgid "IDS_TGRAM_OPT_BLOCK"
+msgstr "დაბლოკვა"
+
+msgid "IDS_TGRAM_OPT_UNBLOCK"
+msgstr "განბლოკვა"
+
+msgid "IDS_TGRAM_HEADER_BLOCK"
+msgstr "დაბლოკვა"
+
+msgid "IDS_TGRAM_POP_PS_WILL_BE_BLOCKED"
+msgstr "%s დაიბლოკება."
+
+msgid "IDS_TGRAM_POP_PS_WILL_BE_UNBLOCKED"
+msgstr "%s განიბლოკება."
+
+msgid "IDS_TGRAM_HEADER_UNBLOCK"
+msgstr "განბლოკვა"
+
+msgid "IDS_TGRAM_OPT_SHARE"
+msgstr "გაზიარება"
+
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "გამოსვლა"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "დაშიფრულია ერთი ბოლოდან მეორე ბოლომდე"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "არსად შეინახა"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "ავტომატურად წაიშალა წინასწარ დაყენებული დროის შემდეგ"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "ვერ გადამისამართდება"
+
index 3df054e..515fdab 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "АӘБВГҒДЕЁЖЗИЙКҚЛМНҢОӨПРСТУҰҮФХҺЦЧШЩЪЫІЬЭЮЯ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "Әлемнің %1$sең жылдам%2$s хабар алмасу қолданбасы\nБұл %3$sтегін%4$s және %5$sқауіпсіз%6$s."
 
index 3e9f004..bab45f8 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "កខគឃងចឆជឈញដឋឌឍណតថទធនបផពភមយរលវសហឡអABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "កម្មវិធី​សារ%1$sលឿន​បំផុត%2$s របស់​ពិភពលោក\nវា​គឺ %3$sឥតគិតថ្លៃ%4$s និង %5$sមាន​សន្តិសុខ%6$s។"
 
@@ -463,3 +466,18 @@ msgstr "ឈប់ខ្ទប់"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "ចែករំលែក"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "ចុះឈ្មោះចេញ"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "បាន​អ៊ិនគ្រីប​ពី​ចុង​ទៅ​ចុង"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "មិន​បាន​រក្សាទុក​នៅ​កន្លែង​ណា​មួយ"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "បាន​លុប​ដោយ​ស្វ័យប្រវត្តិ​បន្ទាប់​ពី​ម៉ោង​បុរេកំណត់"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "មិន​អាច​បញ្ជូនបន្ត"
+
index e285906..b978e30 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ಅಆಇಈಉಊಋಎಏಐಒಓಔಅಕಖಗಘಙಚಛಜಝಞಟಠಡಢಣತಥದಧನಪಫಬಭಮಯರಲವಶಷಸಹಳABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "ಜಗತ್ತಿನ %1$sಅತಿವೇಗದ%2$s ಮೆಸೇಜಿಂಗ್ ಅನ್ವಯಿಸುವಿಕೆ\nಇದು %3$sಉಚಿತವಾಗಿದೆ%4$s ಮತ್ತು %5$sಸುರಕ್ಷಿತವಾಗಿದೆ%6$s."
 
@@ -463,3 +466,18 @@ msgstr "ಅನಿರ್ಬಂಧಿಸು"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "ಹಂಚಿಕೊಳ್ಳಿ"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "ಲಾಗ್ ಔಟ್"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "ಅಂತ್ಯದಿಂದ ಅಂತ್ಯಕ್ಕೆ ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಲಾಗಿದೆ"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "ಎಲ್ಲಿಯೂ ಉಳಿಸಲಾಗಿಲ್ಲ"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "ಪ್ರೀಸೆಟ್ ಸಮಯದ ನಂತರ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅಳಿಸಲಾಗಿದೆ"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "ಫಾರ್ವರ್ಡ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ"
+
index ff8d3c4..d57475b 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ㄱㄴㄷㄹㅁㅂㅅㅇㅈㅊㅋㅌㅍㅎ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "세상에서 %1$s가장 빠른%2$s메시지 앱\n%3$s무료%4$s이며 %5$s안전%6$s합니다."
 
index 01771dd..c9c406d 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "АБВГДЕЁЖЗИЙКЛМНҢОӨПРСТУҮФХЦЧШЩЬЫЪЭЮЯ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "Дүйнөнүн %1$sэң тез%2$s билдирүү алмашуу колдонмосу\nАл %3$sакысыз%4$s жана %5$sкоопсуз%6$s."
 
@@ -463,3 +466,18 @@ msgstr "Кулпудан чечүү"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "Бөлүшүү"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "Чыгуу"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "Бир башынан экинчи башына чейин шифрленген"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "Эч жерде сакталган жок"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "Алдын ала коюлган убакыттан кийин автоматтык түрдө өчүрүлдү"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "Которууга болбойт"
+
index 363199f..9a2b006 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢຣລວຫອຮ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "ແອັບການສົ່ງຂໍ້ຄວາມ %1$sໄວທີ່ສຸດ%2$s ຂອງໂລກ\nມັນ %3$sຟຣີ%4$s ແລະ %5$sປອດໄພ%6$s."
 
@@ -463,3 +466,18 @@ msgstr "ປົດການບລັອກ"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "ແຊຣ໌"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "ອອກຈາກລະບົບ"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "ໃສ່ລະຫັດແລ້ວຕັ້ງແຕ່ຕົ້ນຈົນຈົບ"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "ບໍ່ໄດ້ບັນທຶກຢູ່ບ່ອນໃດເລີຍ"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "ໄດ້ລຶບຢ່າງອັດຕະໂນມັດຫຼັງຈາກເວລາທີ່ຕັ້ງຄ່າມາກ່ອນ"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "ບໍ່ສາມາດຖືກສົ່ງຕໍ່ໄດ້"
+
index 58b1b49..c8f1b15 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "അആഇഈഉഊഋഎഏഐഒഓഔകഖഗഘങചഛജഝഞടഠഡഢണതഥദധനപഫബഭമയരലവശഷസഹളഴറABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "ലോകത്തിലെ %1$sഏറ്റവും വേഗമേറിയ%2$s സന്ദേശമയയ്ക്കൽ ആപ്ലിക്കേഷൻ\nഇത് %3$sസൗജന്യവും%4$s %5$sസുരക്ഷിതവുമാണ്%6$s."
 
@@ -463,3 +466,18 @@ msgstr "തടയൽ മാറ്റുക"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "പങ്കിടുക"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "ലോഗ് ഔട്ട് ചെയ്യുക"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "ആദ്യാവസാനം എൻക്രിപ്റ്റ് ചെയ്യപ്പെടുന്നു"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "എവിടെയും സംരക്ഷിച്ചിട്ടില്ല"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "ഒരു മുൻക്രമീകൃത സമയത്തിന് ശേഷം ഓട്ടോമാറ്റിക്കായി ഇല്ലാതാക്കപ്പെടുന്നു"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "ഫോർവേഡ് ചെയ്യാനാവില്ല"
+
index 8acf3c6..fe88978 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "АБВГДЕЁЖЗИЙКЛМНОӨПРСТУҮФХЦЧШЩЪЬЫЭЮЯ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "Дэлхийн %1$sхамгийн хурдан%2$s зурвас хэрэглүүр\n%3$sҮнэгүй%4$s бас %5$sнайдвартай%6$s."
 
@@ -463,3 +466,18 @@ msgstr "Нээх"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "Хуваалцах"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "Гарах"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "Төгсгөл хооронд шифрлэсэн"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "Хаана ч хадгалагдаагүй"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "Урьдчилан тохируулсан хугацааны дараа автоматаар устана"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "Цааш илгээх боломжгүй"
+
index aba41a0..8d1e041 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "अआइईउऊऋएऐओऔकखगघङचछजझञटठडढणतथदधनपफबभमयरलवशषसहABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "जगातील%1$sसर्वात जलद%2$s संदेश प्रेषण अनुप्रयोग\nहा %3$sविनामूल्य%4$s आणि %5$sसुरक्षित%6$s आहे."
 
@@ -463,3 +466,18 @@ msgstr "अनावरोधित करा"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "सहभागी करा"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "लॉग आउट करा"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "या टोकापासून त्या टोकापर्यंत एन्क्रिप्ट केलेला"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "कुठेही जतन केलेले नाही"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "स्वयंचलितपणे प्रीसेट वेळानंतर हटवले"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "अग्रेषित केले जाऊ शकत नाही"
+
index 77790ea..5f0fa5c 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "Aplikasi mesej %1$sterpantas%2$s di dunia\nIa adalah %3$spercuma%4$s dan %5$sselamat%6$s."
 
@@ -463,3 +466,18 @@ msgstr "Nyahsekat"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "Kongsi"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "Log keluar"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "Disulitkan dari hujung ke hujung"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "Tidak disimpan di mana-mana"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "Dipadam secara automatik selepas masa pratetap"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "Tidak boleh dimajukan"
+
index 0f75303..f95cda4 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "ကမၻာ့ %1$sအျမန္ဆံုး%2$sမက္ေဆ့ခ်္ေပးပုိ႔သည့္ အက္ပ္\n%3$sအခမဲ့%4$sျဖစ္ၿပီး %5$sလံုျခံဳမႈ%6$sရွိပါသည္။"
 
@@ -463,3 +466,18 @@ msgstr "ပိတ္ဆီးမႈျဖဳတ္ပါ"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "မွ်ေဝပါ"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "ေလာ့ ေအာက္"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "အဆံုးတစ္ဖက္မွ တစ္ဖက္သုိ႔ ကုဒ္ေျပာင္းထားသည္"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "မည္သည့္ေနရာတြင္မွ မသိမ္းထားပါ"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "ႀကိဳတင္သတ္မွတ္ခ်ိန္ၿပီးေနာက္ အလုိအေလ်ာက္ ဖ်က္လုိက္ပါသည္"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "လုိင္းလႊဲေျပာင္း၍ မရပါ"
+
index e85c71e..13d7d5e 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "अआइईउऊऋएऐओऔकखगघङचछजझञटठडढणतथदधनपफबभमयरलवशषसहABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "विश्वको %1$sसबैभन्दा द्रुत%2$s मेसेजिङ एप\nयो %3$sनिःशुल्क%4$s र %5$sसुरक्षित%6$s छ।"
 
@@ -463,3 +466,18 @@ msgstr "अनब्लक गर्नुहोस्"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "साझा गर्नुहोस्"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "लग आउट गर्नुहोस्"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "सुरुदेखि अन्तसम्म इन्क्रिप्ट गरिएको"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "कहीँपनि सेव गरिएको छैन"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "पूर्वनिश्चित समयपछि स्वचालित रूपमा मेटाइन्छ"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "फवार्ड गर्न सकिँदैन"
+
index 241df57..317f5a3 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ଅଆଇଈଉଊଋୠଏଐଓଔକଖଗଘଙଚଛଜଝଞଟଠଡଢଡ଼ଢ଼ଣତଥଦଧନପଫବଭମଯୟରଲଳୱଶଷସହABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "ବିଶ୍ୱର %1$sଦ୍ରୁତତର%2$s ମେସେଜିଂ ଆପ୍\nଏହା %3$sମୁକ୍ତ%4$s ଏବଂ %5$sସୁରକ୍ଷିତ%6$s।"
 
@@ -463,3 +466,18 @@ msgstr "ଅନାବରୋଧ"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "ଅଂଶୀଦାର"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "ଲଗ୍ ଆଉଟ୍"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "ଶେଷରୁ ଶେଷ ପର୍ଯ୍ୟନ୍ତ ଏନକ୍ରିପ୍ଟ ହୋଇଛି"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "କୌଣସି ସ୍ଥାନରେ ସଞ୍ଚୟ ହୋଇନାହିଁ"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "ଏକ ପୂର୍ବସେଟ୍ ସମୟରେ ପରେ ସ୍ୱତଃସ୍ପୃତ ଭାବେ ବିଲୋପ ହୋଇଛି"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "ଅଗ୍ରଗାମୀ ହୋଇପାରିବ ନାହିଁ"
+
index 0d8e519..057b3ce 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ਉਅੲਸਹਕਖਗਘਙਚਛਜਝਞਟਠਡਢਣਤਥਦਧਨਪਫਬਭਮਯਰਲਵੜਸ਼ਖ਼ਗ਼ਜ਼ਫ਼ਲ਼ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "ਵਿਸ਼ਵ ਦੀ %1$sਸਭ ਤੋਂ ਤੇਜ਼%2$s ਮੈਸੇਜਿੰਗ ਐਪ\nਇਹ %3$sਮੁਫ਼ਤ%4$s ਅਤੇ %5$sਸੁਰੱਖਿਅਤ%6$s ਹੈ।"
 
@@ -463,3 +466,18 @@ msgstr "ਅਨਬਲੌਕ ਕਰੋ"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "ਸਾਂਝਾ ਕਰੋ"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "ਲੌਗ ਆਉਟ"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "ਅੰਤ ਤੋਂ ਅੰਤ ਤੱਕ ਏਨਕ੍ਰਿਪਟ ਕੀਤਾ ਗਿਆ"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "ਕਿਤੇ ਵੀ ਸੁਰੱਖਿਅਤ ਨਹੀਂ"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "ਇੱਕ ਪ੍ਰੀਸੈੱਟ ਸਮੇਂ ਤੋਂ ਬਾਅਦ ਸਵੈਚਲਿਤ ਮਿਟਾਇਆ ਗਿਆ"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "ਫਾਰਵਰਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"
+
index ec2f520..8d7bbfd 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "O aplicativo de mensagens %1$smais rápido%2$s do mundo\nÉ %3$sgratuito%4$s e %5$sseguro%6$s."
 
index efd9851..84512f9 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "A aplicação de mensagens %1$smais rápida%2$s do mundo\nÉ %3$sgratuita%4$s e %5$ssegura%6$s."
 
index 758122a..63137fd 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "Самое %1$sбыстрое%2$s в мире %3$sбесплатное%4$s и %5$sзащищенное%6$s\nприложение для обмена сообщениями."
 
index 3c1d0dc..71e2f33 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "අආඇඈඉඊඋඌඍඎඑඒඓඔඕඖකඛගඝඞඟචඡජඣඤඦටඨඩඪණඬතථදධනඳපඵබභමඹයරලවශෂසහළෆABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "ලොව %1$sවේගවත්ම%2$s පණිවිඩකරණ යෙදුම\nඑය %3$sනොමිලේ%4$s සහ %5$sආරක්ෂිතය%6$s."
 
@@ -463,3 +466,18 @@ msgstr "අනවහිර කිරීම"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "බෙදාහදා ගන්න"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "පිටවීම"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "නිමාවෙන් නිමාවට ගුප්ත කේතිතයි"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "කිසිදු තැනක සුරැක නැත"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "පෙරසකසූ වේලාවකට පසුව ස්වයංක්‍රීයව මැකිණි"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "යොමු කළ නොහැක"
+
index ba5b631..3ff42a9 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "அஆஇஈஉஊஎஏஐஒஓஔஃகஙசஞடணதநபமயரலவழளறனABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "உலகின் %1$sஅதிவேகமான%2$s மெசேஜிங் பயன்பாடு\nஇது %3$sஇலவசமானது%4$s மற்றும் %5$sபாதுகாப்பானது%6$s."
 
@@ -463,3 +466,18 @@ msgstr "தடுப்பு நீக்கவும்"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "பகிர்க"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "வெளியேறுக"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "முழுவதும் மறைகுறியாக்கப்பட்டது"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "எங்கும் சேமிக்கப்படவில்லை"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "முன்னமைத்த நேரத்திற்குப் பிறகு தானாக நீக்கப்படும்"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "முன்னனுப்ப இயலாது"
+
index 96249c7..f5ae392 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "కఖగఘఙచఛజఝఞటఠడఢణతథదధనపఫబభమయరలళవశషసహఱABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "ప్రపంచపు %1$sవేగవంతమైన%2$s మెసేజింగ్ అప్లికేషన్\nఇది %3$sఉచితం%4$s మరియు %5$sసురక్షితం%6$s."
 
@@ -463,3 +466,18 @@ msgstr "అనుమతించు"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "భాగస్వామ్యం చేయి"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "లాగ్ అవుట్ చేయి"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "మొదటి నుండి చివరి వరకు ఎన్‌క్రిప్ట్ చేయబడింది"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "ఎక్కడా సేవ్ చేయబడలేదు"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "ప్రీసెట్ సమయం తర్వాత స్వయంచాలకంగా తొలగించబడుతుంది"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "ఫార్వార్డ్ చేయబడదు"
+
index 08f3f08..1da60c3 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMNOPQRSTUVWXYZ#"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "Барномаи паёмнависии %1$sзудкортарин%2$s дар ҷаҳон\nОн %3$sройгон%4$s ва %5$sамн%6$s аст."
 
@@ -463,3 +466,18 @@ msgstr "Ғайримамнуъ кардан"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "Мубодила кардан"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "Баромадан"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "Аз охир то охир рамзбандӣ шудааст"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "Дар ягон ҷо захира нашудааст"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "Баъди вақти таъйиншуда ба таври худкор нест карда мешавад"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "Бозфиристӣ ғайриимкон аст"
+
index 98972a4..50d9b5e 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลวศษสหฬอฮ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "แอพรับส่งข้อความที่ %1$sเร็วที่สุด%2$s ในโลก\n ซึ่งทั้ง %3$sฟรี%4$s และ %5$sปลอดภัย%6$s"
 
@@ -463,3 +466,18 @@ msgstr "ปลดบล็อค"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "แชร์"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "ออกจากระบบ"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "เข้ารหัสทั้งหมด"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "ไม่ได้บันทึกไว้ที่ใดเลย"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "ลบอัตโนมัติเมื่อเลยเวลาที่กำหนดไว้"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "ไม่สามารถส่งต่อได้"
+
index fcbb2c6..5b17944 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "Dünýäniň %1$siň çalt%2$s hat alyşma goýmasy\nOl %3$smugt%4$s we %5$showpsuz%6$s."
 
@@ -463,3 +466,18 @@ msgstr "Beklemeden aýyr"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "Paýlaş"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "Çyk"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "Uçdan uja şifrlenen"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "Hiç ýerde ýazdyrylmadyk"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "Öňbellenen wagtdan soň awtomatik öçürildi"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "Gönükdirip bolmaýar"
+
index 15a71ec..27619cc 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "Ang %1$spinakamabilis%2$s na messaging app\n%3$sLibre%4$s at %5$sligtas%6$s ito."
 
@@ -463,3 +466,18 @@ msgstr "I-unblock"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "Ibahagi"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "Mag-log out"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "Naka-encrypt mula isang dulo hanggang sa kabilang dulo"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "Hindi naka-save saanman"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "Awtomatikong tanggalin pagkalipas ng tinakdang oras"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "Hindi mai-forward"
+
index 83f1ebc..a3b6bfe 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "Dünyanın %1$sen hızlı%2$s mesajlaşma uygulaması\n%3$sÜcretsiz%4$s ve %5$sgüvenli%6$s."
 
index 14c61e2..5dadca2 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "АБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "%1$sНайшвидша%2$s у світі %3$sбезкоштовна%4$s та %5$sзахищена%6$s\nпрограма обміну повідомленнями."
 
index ccea4a8..b312dfc 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ابپتٹثجچحخدڈذرڑژسشصضطظعغفقکگلمنوہھءیے"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "دنیا کا %1$sتیز ترین%2$s پیغامات بھیجنے والا ایپلیکیشن\nیہ %3$sمفت%4$s اور %5$sمحفوظ%6$s ہے۔"
 
@@ -463,3 +466,18 @@ msgstr "ان بلاک کریں"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "شراکت کریں"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "لاگ آؤٹ"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "اینڈ ٹو اینڈ سے خفیہ کردہ"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "کہیں بھی محفوظ نہیں ہوا"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "پہلے سے سیٹ کردہ وقت پر خود بخود حذف ہو گیا"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "آگے نہیں بڑھایا جاسکتا"
+
index 1170ee2..3502bd6 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABDEFGHIJKLMNOPQRSTUVXYZO‘G‘ChShNg"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "Dunyodagi %1$seng tez%2$s xabarlar ilovasi\nU %3$sbepul%4$s va %5$sxavfsiz%6$s."
 
index 07082f1..fcb2bb4 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "Ứng dụng nhắn tin %1$snhanh nhất%2$s thế giới\n%3$sMiễn phí%4$s và %5$sbảo mật%6$s."
 
@@ -463,3 +466,18 @@ msgstr "Bỏ chặn"
 msgid "IDS_TGRAM_OPT_SHARE"
 msgstr "Chia sẻ"
 
+msgid "IDS_TGRAM_HEADER_LOG_OUT"
+msgstr "Đăng xuất"
+
+msgid "IDS_TGRAM_BODY_ENCRYPTED_FROM_END_TO_END_M_NOUN"
+msgstr "Mã hóa hai đầu"
+
+msgid "IDS_TGRAM_BODY_NOT_SAVED_ANYWHERE_M_NOUN"
+msgstr "Chưa lưu ở bất kỳ đâu"
+
+msgid "IDS_TGRAM_BODY_AUTOMATICALLY_DELETED_AFTER_A_PRESET_TIME_M_NOUN"
+msgstr "Tự động xóa sau thời gian đặt sẵn"
+
+msgid "IDS_TGRAM_BODY_CANNOT_BE_FORWARDED_M_NOUN"
+msgstr "Không thể chuyển tiếp"
+
index 4614167..a79e924 100755 (executable)
@@ -1,3 +1,6 @@
+msgid "IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+msgstr "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
 msgid "IDS_TGRAM_SBODY_THE_WORLDS_P1SSFASTESTP2SS_MESSAGING_APP_NIT_IS_P3SSFREEP4SS_AND_P5SSSECUREP6SS"
 msgstr "全球%1$s最快的%2$s信息应用程序\n%3$s免费%4$s又%5$s安全%6$s。"
 
index 89c55d9..0ca9a4e 100644 (file)
@@ -6,6 +6,7 @@
 
 #include "contact_selection_view.h"
 #include "group_chat_entry_view.h"
+#include "ucol.h"
 
 static Evas_Object* create_image_object_from_file(const char *icon_name, Evas_Object *parent)
 {
@@ -85,18 +86,23 @@ char* on_buddy_name_get_cb(void *data, Evas_Object *obj, const char *part)
 {
        int id = (int)data;
        appdata_s* ad = evas_object_data_get(obj, "app_data");
+       Eina_List *list = evas_object_data_get(obj, "result_list");
 
-       if (id == 0 && ad->buddy_list && eina_list_count(ad->buddy_list) > 0) {
-               char buf[512] = {'\0'};
-               snprintf(buf, 512, "<font=Tizen:style=Bold color=#000000 align=left><font_size=40>%s</font_size></font>", "Select all");
-               return strdup(buf);
+       if (!list) {
+               list = ad->buddy_list;
        }
 
-       if (ad->buddy_list && eina_list_count(ad->buddy_list) > 0) {
-               user_data_with_pic_s* item = eina_list_nth(ad->buddy_list, id - 1);
-               user_data_s* user = item->use_data;
-
+       if (list && eina_list_count(list) > 0) {
                if (!strcmp(part,"elm.text")){
+                       if (id == 0) {
+                               char buf[512] = { 0, };
+                               snprintf(buf, 512, "%s", i18n_get_text("IDS_TGRAM_MBODY_SELECT_ALL"));
+                               return strdup(buf);
+                       }
+
+                       user_data_with_pic_s* item = eina_list_nth(list, id - 1);
+                       user_data_s* user = item->use_data;
+
                        char* user_name = replace(user->print_name, '_', " ");
                        char buf[512] = {'\0'};
                        snprintf(buf, 512, "<align=left><font_size=35><color=#000000>%s</color></font_size></align>", user_name);
@@ -115,10 +121,15 @@ void on_item_checkbox_sel_cb(void *data, Evas_Object *obj, void *event_info)
        appdata_s* ad = evas_object_data_get(obj, "app_data");
        Eina_Bool checked = elm_check_state_get(obj);
        Evas_Object* buddy_gen_list = evas_object_data_get(obj, "buddy_gen_list");
-       if (ad && ad->buddy_list && eina_list_count(ad->buddy_list) > 0) {
+       Eina_List *list = evas_object_data_get(buddy_gen_list, "result_list");
+
+       if (!list) {
+               list = ad->buddy_list;
+       }
+       if (ad && list && eina_list_count(list) > 0) {
                if(id == 0) {
-                       for (int i = 0 ; i < eina_list_count(ad->buddy_list) ; i++) {
-                               user_data_with_pic_s *item = eina_list_nth(ad->buddy_list, i);
+                       for (int i = 0 ; i < eina_list_count(list) ; i++) {
+                               user_data_with_pic_s *item = eina_list_nth(list, i);
                                user_data_s* user = item->use_data;
                                user->is_selected = checked;
 
@@ -131,7 +142,7 @@ void on_item_checkbox_sel_cb(void *data, Evas_Object *obj, void *event_info)
                                }
                        }
                } else {
-                       user_data_with_pic_s *item = eina_list_nth(ad->buddy_list, id - 1);
+                       user_data_with_pic_s *item = eina_list_nth(list, id - 1);
                        user_data_s* user = item->use_data;
                        user->is_selected = checked;
 
@@ -145,8 +156,8 @@ void on_item_checkbox_sel_cb(void *data, Evas_Object *obj, void *event_info)
                                }
                        } else {
                                Eina_Bool all_items_selected = EINA_TRUE;
-                               for (int i = 0 ; i < eina_list_count(ad->buddy_list) ; i++) {
-                                       user_data_with_pic_s *item = eina_list_nth(ad->buddy_list, i);
+                               for (int i = 0 ; i < eina_list_count(list) ; i++) {
+                                       user_data_with_pic_s *item = eina_list_nth(list, i);
                                        user_data_s* user = item->use_data;
                                        if (!user->is_selected) {
                                                all_items_selected = EINA_FALSE;
@@ -178,20 +189,27 @@ Evas_Object* on_buddy_selection_part_content_get_cb(void *data, Evas_Object *obj
                return NULL;
        }
 
+       Eina_List *list = evas_object_data_get(obj, "result_list");
+
+       if (!list) {
+               list = ad->buddy_list;
+       }
+
        if (!strcmp(part, "elm.swallow.icon")) {
                Evas_Object *image = NULL;
 
-               if (id == 0 && ad->buddy_list && eina_list_count(ad->buddy_list) > 0) {
+               if (id == 0 && list && eina_list_count(list) > 0) {
                        return eo;
                }
 
-               user_data_with_pic_s *item = eina_list_nth(ad->buddy_list, id - 1);
+               user_data_with_pic_s *item = eina_list_nth(list, id - 1);
                user_data_s* user = item->use_data;
 
                if (user->photo_path && strcmp(user->photo_path, "") != 0) {
                        image = create_image_object_from_file(user->photo_path, obj);
                } else {
-                       image = create_image_object_from_file(ui_utils_get_resource(DEFAULT_PROFILE_PIC), obj);
+                       image = create_image_object_from_file(ui_utils_get_resource(DEFAULT_LIST_THUMB_SINGLE_PIC), obj);
+                       evas_object_color_set(image, 45, 165, 224, 255);
                }
 
                item->contact_icon = image;
@@ -201,19 +219,19 @@ Evas_Object* on_buddy_selection_part_content_get_cb(void *data, Evas_Object *obj
                        char edj_path[PATH_MAX] = {0, };
                        app_get_resource(TELEGRAM_INIT_VIEW_EDJ, edj_path, (int)PATH_MAX);
                        Evas_Object* user_pic_layout = elm_layout_add(ad->nf);
-                       elm_layout_file_set(user_pic_layout, edj_path, "circle_layout");
+                       elm_layout_file_set(user_pic_layout, edj_path, "search_circle_layout");
                        evas_object_size_hint_weight_set(user_pic_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
                        evas_object_size_hint_align_set(user_pic_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
                        evas_object_show(user_pic_layout);
-                       elm_object_part_content_set(user_pic_layout, "content", image);
+                       elm_object_part_content_set(user_pic_layout, "content", item->contact_icon);
 
                        eo = elm_layout_add(obj);
-                       elm_layout_theme_set(eo, "layout", "list/C/type.3", "default");
+                       elm_layout_theme_set(eo, "layout", "list/B/type.2", "default");
                        elm_layout_content_set(eo, "elm.swallow.content", user_pic_layout);
 
                }
        } else if (!strcmp(part, "elm.swallow.end")) {
-               if (id == 0 && ad->buddy_list && eina_list_count(ad->buddy_list) > 0) {
+               if (id == 0 && list && eina_list_count(list) > 0) {
 
                        Eina_Bool all_items_selected = (Eina_Bool)evas_object_data_get(obj, "all_selected");
 
@@ -230,7 +248,7 @@ Evas_Object* on_buddy_selection_part_content_get_cb(void *data, Evas_Object *obj
                        return eo;
                }
 
-               user_data_with_pic_s *item = eina_list_nth(ad->buddy_list, id - 1);
+               user_data_with_pic_s *item = eina_list_nth(list, id - 1);
                user_data_s* user = item->use_data;
 
                eo = elm_layout_add(obj);
@@ -290,6 +308,277 @@ void on_cancel_buton_clicked(void *data, Evas_Object *object, void *event_info)
        evas_object_show(ad->panel);
 }
 
+#if 0
+static char* _util_get_first_char(char *input_text)
+{      /*
+       int unicode_len = eina_unicode_utf8_get_len(input_text);
+       int str_len = strlen(input_text);
+       int lang_byte = str_len / unicode_len + (str_len % unicode_len > 0 ? 1 : 0);
+
+       first_char = strndup(input_text, lang_byte);
+       */
+       char *first_char = NULL;
+       int count;
+       int flag;
+       unsigned char mask = 0x80;
+
+       count = 0;
+       while (*input_text & mask) {
+               mask = mask >> 1;
+               count++;
+       }
+
+       count = count == 0 ? 1 : count;
+       first_char = strndup(input_text, count);
+
+       return first_char;
+}
+
+static void _update_index_item(void *data, void *item_data, int id, Eina_List *list)
+{
+       appdata_s* ad = data;
+       if (id == 0) {
+               return;
+       }
+       user_data_with_pic_s* item = eina_list_nth(list, id-1);
+       user_data_s* user = item->use_data;
+
+       Evas_Object *index = evas_object_data_get(ad->nf, "fs_index");
+
+       /*
+       char *index_text = NULL;
+       int unicode_len = eina_unicode_utf8_get_len(user->print_name);
+       int str_len = strlen(user->print_name);
+       int lang_byte = str_len / unicode_len + (str_len % unicode_len > 0 ? 1 : 0);
+
+       index_text = strndup(user->print_name, lang_byte);
+       */
+
+       char *index_text = _util_get_first_char(user->print_name);
+
+       Elm_Object_Item *it = elm_index_item_append(index, index_text, NULL, NULL);
+
+       elm_object_item_data_set(it, item_data);
+
+}
+#endif
+
+static void _append_peer_item(Evas_Object *genlist, appdata_s *ad, Eina_List* item_list)
+{
+       int i;
+       static Elm_Genlist_Item_Class itc;
+       Elm_Object_Item* item = NULL;
+
+       itc.item_style = "type1";
+       itc.func.text_get = on_buddy_name_get_cb;
+       itc.func.content_get = on_buddy_selection_part_content_get_cb;
+       itc.func.state_get = NULL;
+       itc.func.del = NULL;
+
+       int count = eina_list_count(item_list);
+
+       evas_object_data_set(genlist, "result_list", item_list);
+
+       if(count > 0) {
+               for (i = 0; i < count+1; i++) {
+                       item = elm_genlist_item_append(genlist, &itc, (void *) i, NULL, ELM_GENLIST_ITEM_NONE, on_buddy_selected, (void*) i);
+                       //_update_index_item(ad, item, i, item_list);
+               }
+       } else {
+               i = 1;
+               elm_genlist_item_append(genlist, &itc, (void *) i, NULL, ELM_GENLIST_ITEM_NONE, NULL, (void*) i);
+       }
+}
+
+static void _on_search_entry_changed(void *data, Evas_Object *obj, void *event_info)
+{
+       appdata_s* ad = data;
+       char* entry_text = NULL;
+
+       Evas_Object *buddy_list = evas_object_data_get(ad->nf, "buddy_list");
+       Evas_Object *main_layout = evas_object_data_get(ad->nf, "main_layout");
+       Evas_Object *index = evas_object_data_get(ad->nf, "fs_index");
+
+       user_data_with_pic_s *item;
+       user_data_s* user; // = item->use_data;
+
+       if (!buddy_list) {
+               DBG("buddy_list is null");
+               return;
+       }
+
+       elm_genlist_clear(buddy_list);
+       //elm_index_item_clear(index);
+
+       entry_text = trim(elm_entry_markup_to_utf8(elm_object_text_get(obj)));
+
+       Eina_List *result_list = NULL;
+       Eina_List *l = NULL;
+
+       if (ucol_is_jamo(entry_text)) {
+               LOGD("entry_text is jamo, %s", entry_text);
+               EINA_LIST_FOREACH(ad->buddy_list, l, item) {
+                       int result;
+                       user = item->use_data;
+                       result = ucol_compare_first_letters(user->print_name, entry_text);
+                       if (result == 0) {
+                               result_list = eina_list_append(result_list, item);
+                       }
+               }
+       } else {
+               LOGD("entry_text is not jamo, %s", entry_text);
+               EINA_LIST_FOREACH(ad->buddy_list, l, item) {
+                       user = item->use_data;
+
+                       if (ucol_ncompare(user->print_name, entry_text, strlen(entry_text)) == 0) {
+                               result_list = eina_list_append(result_list, item);
+                       }
+               }
+       }
+
+       if ((entry_text == NULL || strlen(entry_text) == 0) && result_list == NULL) {
+               result_list = ad->buddy_list;
+       }
+
+       LOGD("count of result_list is %d", eina_list_count(result_list));
+
+       if (result_list) {
+               Evas_Object *fs_layout = evas_object_data_get(ad->nf, "fs_layout");
+               _append_peer_item(buddy_list, data, result_list);
+               Evas_Object *content = elm_object_part_content_unset(main_layout, "elm.swallow.content");
+               if (evas_object_data_get(ad->nf, "no_contents_layout") == content) {
+                       evas_object_hide(content);
+               }
+               elm_object_part_content_set(main_layout, "elm.swallow.content", fs_layout);
+
+       } else {
+               Evas_Object *no_contents = evas_object_data_get(ad->nf, "no_contents_layout");
+
+               elm_object_part_content_unset(main_layout, "elm.swallow.content");
+               elm_object_part_content_set(main_layout, "elm.swallow.content", no_contents);
+       }
+
+       elm_index_level_go(index, 0);
+       elm_genlist_realized_items_update(buddy_list);
+       if (entry_text) {
+               free(entry_text);
+       }
+}
+
+static void _on_search_entry_focused(void *data, Evas_Object *obj, void *event_info)
+{
+       Evas_Object *layout = data;
+       if (elm_object_focus_get(layout)) {
+               elm_object_signal_emit(layout, "elm,state,focused", "");
+       } else{
+               elm_object_signal_emit(layout, "elm,state,unfocused", "");
+       }
+}
+
+static Evas_Object *create_searchbar(Evas_Object* parent, void* data)
+{
+       char edj_path[PATH_MAX] = {0, };
+       app_get_resource(TELEGRAM_INIT_VIEW_EDJ, edj_path, (int)PATH_MAX);
+
+       Evas_Object* layout = elm_layout_add(parent);
+       elm_layout_file_set(layout, edj_path, "");
+
+       /* editfield layout */
+       Evas_Object* searchbar_layout = elm_layout_add(parent);
+       elm_layout_theme_set(searchbar_layout, "layout", "searchfield", "singleline");
+       evas_object_size_hint_align_set(searchbar_layout, EVAS_HINT_FILL, 0.0);
+       evas_object_size_hint_weight_set(searchbar_layout, EVAS_HINT_EXPAND, 0.0);
+       //evas_object_event_callback_add(searchbar_layout, EVAS_CALLBACK_DEL, _searchbar_layout_del_cb, NULL);
+
+       /* entry */
+       Evas_Object* searchbar_entry = elm_entry_add(searchbar_layout);
+       elm_entry_cursor_end_set(searchbar_entry);
+       evas_object_size_hint_weight_set(searchbar_entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(searchbar_entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_entry_single_line_set(searchbar_entry,  EINA_TRUE);
+       elm_entry_scrollable_set (searchbar_entry, EINA_FALSE);
+       elm_entry_cnp_mode_set(searchbar_entry, ELM_CNP_MODE_NO_IMAGE);
+       elm_entry_context_menu_disabled_set(searchbar_entry, EINA_TRUE);
+       elm_object_part_text_set(searchbar_entry, "elm.guide", i18n_get_text("IDS_TGRAM_NPBODY_SEARCH"));
+       elm_object_focus_set(searchbar_entry, EINA_FALSE);
+
+       limit_filter_data.max_char_count = 255;
+       elm_entry_markup_filter_append(searchbar_entry, elm_entry_filter_limit_size, &limit_filter_data);
+
+
+       evas_object_smart_callback_add(searchbar_entry, "changed", _on_search_entry_changed, data);
+       evas_object_smart_callback_add(searchbar_entry, "preedit,changed", _on_search_entry_changed, data);
+       evas_object_smart_callback_add(searchbar_entry, "focused", _on_search_entry_focused, searchbar_layout);
+
+       elm_object_part_content_set(searchbar_layout, "elm.swallow.content", searchbar_entry);
+       return searchbar_layout;
+}
+
+static void _index_selected_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       appdata_s* ad = data;
+       Evas_Object *buddy_list = evas_object_data_get(ad->nf, "buddy_list");
+       //Elm_Object_Item *gl_item = elm_genlist_first_item_get(search_list);
+
+       user_data_with_pic_s* gl_item = NULL;//eina_list_nth(ad->search_peer_list, 0);
+
+       //tg_peer_info_s* user = item->use_data;
+       Eina_List* list = ad->buddy_list;
+       int index = 0;
+       Eina_List *l;
+
+       EINA_LIST_FOREACH(list, l, gl_item) {
+               if (ucol_compare_first_letters(gl_item->use_data->print_name, elm_index_item_letter_get(event_info)) == 0) {
+                       break;
+               }
+               index++;
+       }
+
+       if (eina_list_count(list) == index) {
+               return;
+       }
+
+       Elm_Object_Item *item = elm_genlist_nth_item_get(buddy_list, ++index);
+       elm_genlist_item_show(item, ELM_GENLIST_ITEM_SCROLLTO_TOP);
+}
+
+static Evas_Object* create_fastscroll(appdata_s *ad)
+{
+       Evas_Object *parent = ad->nf;
+       Evas_Object *index;
+       int i = 0, j, len;
+       char *str;
+       char buf[PATH_MAX] = {0, };
+
+       index = elm_index_add(parent);
+       elm_object_part_content_set(parent, "elm.swallow.fastscroll", index);
+       elm_index_autohide_disabled_set(index, EINA_TRUE);
+       elm_index_omit_enabled_set(index, EINA_TRUE);
+
+       /* 1. Special character & Numbers */
+       elm_index_item_append(index, "#", NULL, NULL);
+
+       /* 2. Local language */
+       str = i18n_get_text("IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ");
+       len = strlen(str);
+
+       while (i < len) {
+               j = i;
+               eina_unicode_utf8_next_get(str, &i);
+               snprintf(buf, i - j + 1, "%s", str + j);
+               buf[i - j + 1] = 0;
+
+               elm_index_item_append(index, buf, NULL, NULL);
+       }
+       elm_index_level_go(index, 0);
+
+       evas_object_smart_callback_add(index, "selected", _index_selected_cb, ad);
+       //evas_object_smart_callback_add(index, "changed", _index_changed_cb, NULL);
+       //evas_object_smart_callback_add(index, "language,changed", _index_language_changed_cb, NULL);
+
+       return index;
+}
+
 void launch_contact_selction_view(void *data)
 {
        appdata_s* ad = data;
@@ -300,9 +589,24 @@ void launch_contact_selction_view(void *data)
                elm_panel_hidden_set(ad->panel, EINA_TRUE);
        }
 
-
        elm_layout_theme_set(ad->layout, "layout", "application", "default");
-       static Elm_Genlist_Item_Class itc;
+
+       /* Modified */
+       Evas_Object* layout = elm_layout_add(ad->nf);
+       elm_layout_theme_set(layout, "layout", "application", "searchbar_base");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(layout);
+
+       Evas_Object* searchbar_layout = create_searchbar(layout, ad);
+       elm_object_part_content_set(layout, "searchbar", searchbar_layout);
+
+       Evas_Object* fs_layout = elm_layout_add(layout);
+       elm_layout_theme_set(fs_layout, "layout", "application", "fastscroll");
+       elm_object_part_content_set(layout, "elm.swallow.content", fs_layout);
+
+       Evas_Object* index = create_fastscroll(ad);
+       elm_object_part_content_set(fs_layout, "elm.swallow.fastscroll", index);
 
        Evas_Object* buddy_gen_list = elm_genlist_add(ad->nf);
        elm_list_mode_set(buddy_gen_list, ELM_LIST_COMPRESS);
@@ -313,10 +617,14 @@ void launch_contact_selction_view(void *data)
        evas_object_size_hint_align_set(buddy_gen_list, EVAS_HINT_FILL, EVAS_HINT_FILL);
 
        evas_object_data_set(buddy_gen_list, "app_data", ad);
+       elm_object_part_content_set(fs_layout, "elm.swallow.content", buddy_gen_list);
+
        Eina_Bool all_items_selected = EINA_FALSE;
        evas_object_data_set(buddy_gen_list, "all_selected", (void *)((int)all_items_selected));
+#if 0
+       static Elm_Genlist_Item_Class itc;
 
-       itc.item_style = "default_style";
+       itc.item_style = "type1";
        itc.func.text_get = on_buddy_name_get_cb;
        itc.func.content_get = on_buddy_selection_part_content_get_cb;
        itc.func.state_get = NULL;
@@ -333,23 +641,38 @@ void launch_contact_selction_view(void *data)
        for (int i = 0; i < size; i++) {
                elm_genlist_item_append(buddy_gen_list, &itc, (void*)i, NULL, ELM_GENLIST_ITEM_NONE, on_buddy_selected, (void*)i);
        }
-
+#endif
        evas_object_show(buddy_gen_list);
 
+       _append_peer_item(buddy_gen_list, ad, ad->buddy_list);
+
+       /* no contents */
+       Evas_Object *nocontents = elm_layout_add(ad->nf);
+       elm_layout_theme_set(nocontents, "layout", "nocontents", "default");
+       evas_object_size_hint_weight_set(nocontents, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(nocontents, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       elm_object_part_text_set(nocontents, "elm.text", "No Items");
+       evas_object_data_set(ad->nf, "no_contents_layout", nocontents);
+
+       evas_object_data_set(ad->nf, "fs_layout", fs_layout);
+       evas_object_data_set(ad->nf, "fs_index", index);
+       evas_object_data_set(ad->nf, "main_layout", layout);
+       evas_object_data_set(ad->nf, "buddy_list", buddy_gen_list);
+
        Evas_Object* done_btn = elm_button_add(ad->layout);
-       elm_object_style_set(done_btn, "naviframe/title_icon");
+       elm_object_style_set(done_btn, "naviframe/title_right");
        evas_object_smart_callback_add(done_btn, "clicked", on_done_buton_clicked, ad);
-       elm_object_text_set(done_btn, "Done");
+       elm_object_text_set(done_btn, i18n_get_text("IDS_TGRAM_ACBUTTON_DONE_ABB"));
        evas_object_show(done_btn);
 
        Evas_Object* cancel_btn = elm_button_add(ad->layout);
-       elm_object_style_set(cancel_btn, "naviframe/title_icon");
+       elm_object_style_set(cancel_btn, "naviframe/title_left");
        evas_object_smart_callback_add(cancel_btn, "clicked", on_cancel_buton_clicked, ad);
-       elm_object_text_set(cancel_btn, "Cancel");
+       elm_object_text_set(cancel_btn, i18n_get_text("IDS_TGRAM_ACBUTTON_CANCEL_ABB"));
        evas_object_show(cancel_btn);
 
        Elm_Object_Item* buddy_sel_nav_item = NULL;
-       buddy_sel_nav_item = elm_naviframe_item_push(ad->nf, "Select friends", NULL, NULL, buddy_gen_list, NULL);
+       buddy_sel_nav_item = elm_naviframe_item_push(ad->nf, i18n_get_text("IDS_TGRAM_TMBODY_SELECT_CONTACTS_ABB"), NULL, NULL, layout, NULL);
        elm_object_item_part_content_set(buddy_sel_nav_item, "title_right_btn", done_btn);
        elm_object_item_part_content_set(buddy_sel_nav_item, "title_left_btn", cancel_btn);
 
index 3dafa96..79a5aca 100644 (file)
@@ -11,6 +11,7 @@
 #include "tg_start_messaging_view.h"
 #include "tg_user_info_view.h"
 #include "tg_chat_info_view.h"
+#include "ucol.h"
 #include <notification.h>
 #include <badge.h>
 static void
@@ -2784,6 +2785,8 @@ static void create_base_gui(appdata_s *ad)
                ecore_timer_add(2, on_load_main_view_requested, ad);
 
        }
+
+       ucol_init();
        //eina_list_free(user_info);
 }
 
index 4803e4c..a3ad69a 100755 (executable)
@@ -9,6 +9,7 @@
 #include "tg_db_wrapper.h"
 #include "tg_messaging_view.h"
 #include "contact_selection_view.h"
+#include "ucol.h"
 
 #define COMMAND_MENU_ITEM_COUNT 2
 
@@ -31,9 +32,7 @@ static _command_item_info contact_screen_command_item_list[COMMAND_MENU_ITEM_COU
 };
 
 
-char* _util_get_first_char(char *input_text)
-
-
+static char* _util_get_first_char(char *input_text)
 {      /*
        int unicode_len = eina_unicode_utf8_get_len(input_text);
        int str_len = strlen(input_text);
@@ -76,8 +75,13 @@ char* on_peer_list_name_requested(void *data, Evas_Object *obj, const char *part
        int id = (int) data;
 
        appdata_s* ad = evas_object_data_get(obj, "app_data");
+       Eina_List *list = evas_object_data_get(obj, "result_list");
 
-       user_data_with_pic_s *item = eina_list_nth(ad->search_peer_list, id);
+       if (!list) {
+               list = ad->search_peer_list;
+       }
+
+       user_data_with_pic_s *item = eina_list_nth(list, id);
        if (!item) {
                return NULL;
        }
@@ -155,12 +159,16 @@ Evas_Object* on_peer_list_image_requested(void *data, Evas_Object *obj, const ch
        if (!strcmp(part, "elm.icon.left") || !strcmp(part, "elm.icon.1") || !strcmp(part, "elm.swallow.icon")  ) {
                int id = (int) data;
                appdata_s* ad = evas_object_data_get(obj, "app_data");
-               int size = eina_list_count(ad->search_peer_list);
+               Eina_List *list = evas_object_data_get(obj, "result_list");
+               if (!list) {
+                       list = ad->search_peer_list;
+               }
+               int size = eina_list_count(list);
                if (size <= 0) {
                        return eo;
                }
 
-               user_data_with_pic_s *item = eina_list_nth(ad->search_peer_list, id);
+               user_data_with_pic_s *item = eina_list_nth(list, id);
                user_data_s *user = item->use_data;
                Evas_Object *profile_pic = NULL;
 
@@ -383,10 +391,11 @@ static void on_peer_item_clicked(void *data, Evas_Object *obj, void *event_info)
        launch_messaging_view_cb(ad, peer_id);
 }
 
-static void _update_index_item(void *data, void *item_data, int id)
+#if 0
+static void _update_index_item(void *data, void *item_data, int id, Eina_List *list)
 {
        appdata_s* ad = data;
-       user_data_with_pic_s* item = eina_list_nth(ad->search_peer_list, id);
+       user_data_with_pic_s* item = eina_list_nth(list, id);
        user_data_s* user = item->use_data;
 
        Evas_Object *index = evas_object_data_get(ad->nf, "fs_index");
@@ -407,6 +416,7 @@ static void _update_index_item(void *data, void *item_data, int id)
        elm_object_item_data_set(it, item_data);
 
 }
+#endif
 
 static void _append_peer_item(Evas_Object *genlist, appdata_s *ad, Eina_List* item_list)
 {
@@ -423,10 +433,11 @@ static void _append_peer_item(Evas_Object *genlist, appdata_s *ad, Eina_List* it
 
        int count = eina_list_count(item_list);
 
+       evas_object_data_set(genlist, "result_list", item_list);
+
        if(count > 0) {
                for (i = 0; i < count; i++) {
                        item = elm_genlist_item_append(genlist, &itc, (void *) i, NULL, ELM_GENLIST_ITEM_NONE, on_peer_item_clicked, (void*) i);
-                       _update_index_item(ad, item, i);
                }
        } else {
                i = 1;
@@ -472,7 +483,6 @@ static void _append_index_item(Evas_Object *genlist, appdata_s *ad)
        if(count > 0) {
                for (i = 0; i < count; i++) {
                        item = elm_genlist_item_append(genlist, &itc, (void *) i, NULL, ELM_GENLIST_ITEM_NONE, on_peer_item_clicked, (void*) i);
-                       _update_index_item(ad, item, i);
                }
        } else {
                i = 1;
@@ -528,33 +538,58 @@ static void _on_search_entry_changed(void *data, Evas_Object *obj, void *event_i
        Evas_Object *main_layout = evas_object_data_get(ad->nf, "main_layout");
        Evas_Object *index = evas_object_data_get(ad->nf, "fs_index");
 
+       user_data_with_pic_s *item;
+       user_data_s* user; // = item->use_data;
+
        if (!search_list) {
                DBG("search_list is null");
                return;
        }
 
        elm_genlist_clear(search_list);
-       clear_search_list(ad);
-       elm_index_item_clear(index);
 
        entry_text = trim(elm_entry_markup_to_utf8(elm_object_text_get(obj)));
 
-       Eina_Bool is_name_null = EINA_FALSE;
-       if (strlen(entry_text) > 0) {
-               ad->search_peer_list = load_buddy_data_by_name(ad->user_id.id, entry_text);
+       Eina_List *result_list = NULL;
+       Eina_List *l = NULL;
+
+       if (ucol_is_jamo(entry_text)) {
+               LOGD("entry_text is jamo, %s", entry_text);
+               EINA_LIST_FOREACH(ad->search_peer_list, l, item) {
+                       int result;
+                       user = item->use_data;
+                       result = ucol_compare_first_letters(user->print_name, entry_text);
+                       if (result == 0) {
+                               result_list = eina_list_append(result_list, item);
+                       }
+               }
        } else {
-               is_name_null = EINA_TRUE;
-               ad->search_peer_list = load_buddy_data_by_name(ad->user_id.id, NULL);
+               LOGD("entry_text is not jamo, %s", entry_text);
+               EINA_LIST_FOREACH(ad->search_peer_list, l, item) {
+                       user = item->use_data;
+
+                       if (ucol_ncompare(user->print_name, entry_text, strlen(entry_text)) == 0) {
+                               result_list = eina_list_append(result_list, item);
+                       }
+               }
        }
 
-       if (ad->search_peer_list) {
+       if ((entry_text == NULL || strlen(entry_text) == 0) && result_list == NULL) {
+               result_list = ad->search_peer_list;
+               _append_command_item(search_list, ad);
+       }
+
+       LOGD("count of result_list is %d", eina_list_count(result_list));
+
+       if (result_list) {
                Evas_Object *fs_layout = evas_object_data_get(ad->nf, "fs_layout");
-               if (is_name_null) {
-                       _append_command_item(search_list, ad);
+               _append_peer_item(search_list, data, result_list);
+               Evas_Object *content = elm_object_part_content_unset(main_layout, "elm.swallow.content");
+               if (evas_object_data_get(ad->nf, "no_contents_layout") == content) {
+                       evas_object_hide(content);
                }
-               _append_peer_item(search_list, data, ad->search_peer_list);
-               elm_object_part_content_unset(main_layout, "elm.swallow.content");
                elm_object_part_content_set(main_layout, "elm.swallow.content", fs_layout);
+
        } else {
                Evas_Object *no_contents = evas_object_data_get(ad->nf, "no_contents_layout");
 
@@ -580,7 +615,7 @@ static void _on_search_entry_focused(void *data, Evas_Object *obj, void *event_i
 }
 
 
-Evas_Object *_create_searchbar(Evas_Object* parent, void* data)
+static Evas_Object *_create_searchbar(Evas_Object* parent, void* data)
 {
        char edj_path[PATH_MAX] = {0, };
        app_get_resource(TELEGRAM_INIT_VIEW_EDJ, edj_path, (int)PATH_MAX);
@@ -636,69 +671,64 @@ static void _index_selected_cb(void *data, Evas_Object *obj, void *event_info)
 
        //tg_peer_info_s* user = item->use_data;
        Eina_List* list = ad->search_peer_list;
-
        int index = 0;
-       while (list) {
-               //const char *part_text = elm_object_item_part_text_get(gl_item, "elm.text");
-               //const char *part_text = elm_object_item_data_get(gl_item);
-               gl_item = eina_list_data_get(list);
-               char *part_text = gl_item->use_data->print_name;
-
-               const char *index_letter = elm_index_item_letter_get(event_info);
-
-               int unicode_len = eina_unicode_utf8_get_len(part_text);
-               int str_len = strlen(part_text);
-               int lang_byte = str_len/unicode_len+(str_len%unicode_len > 0 ? 1: 0);
-               char *compare_text = strndup(part_text, lang_byte);
+       Eina_List *l;
 
-               Elm_Object_Item *item = elm_genlist_nth_item_get(search_list, index);
-
-               if (!strcasecmp(index_letter, compare_text)) {
-                       elm_genlist_item_show(item, ELM_GENLIST_ITEM_SCROLLTO_TOP);
+       EINA_LIST_FOREACH(list, l, gl_item) {
+               if (ucol_compare_first_letters(gl_item->use_data->print_name, elm_index_item_letter_get(event_info)) == 0) {
                        break;
                }
-               //gl_item = elm_genlist_item_next_get(gl_item);
-               list = eina_list_next(list);
                index++;
        }
-}
 
-static Evas_Object* create_fastscroll(appdata_s *ad)
-{
-       Evas_Object *parent = ad->nf;
-       Evas_Object *index;
-       int i = 0, j, len;
-       char *str;
-       char buf[PATH_MAX] = {0, };
+       if (eina_list_count(list) == index) {
+               return;
+       }
 
-       index = elm_index_add(parent);
-       elm_object_part_content_set(parent, "elm.swallow.fastscroll", index);
-       elm_index_autohide_disabled_set(index, EINA_TRUE);
-       elm_index_omit_enabled_set(index, EINA_TRUE);
+       if (list == ad->search_peer_list) {
+               index += 2;
+       }
 
-       /* 1. Special character & Numbers */
-       elm_index_item_append(index, "#", NULL, NULL);
+       Elm_Object_Item *item = elm_genlist_nth_item_get(search_list, index);
+       elm_genlist_item_show(item, ELM_GENLIST_ITEM_SCROLLTO_TOP);
+}
 
-       /* 2. Local language */
-       str = dgettext("efl-extension", "IDS_EA_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ");
-       len = strlen(str);
+static Evas_Object* create_fastscroll(appdata_s *ad)
+       {
+               Evas_Object *parent = ad->nf;
+               Evas_Object *index;
+               int i = 0, j, len;
+               char *str;
+               char buf[PATH_MAX] = {0, };
+
+               index = elm_index_add(parent);
+               elm_object_part_content_set(parent, "elm.swallow.fastscroll", index);
+               elm_index_autohide_disabled_set(index, EINA_TRUE);
+               elm_index_omit_enabled_set(index, EINA_TRUE);
+
+               /* 1. Special character & Numbers */
+               elm_index_item_append(index, "#", NULL, NULL);
+
+               /* 2. Local language */
+               str = i18n_get_text("IDS_COM_BODY_ABCDEFGHIJKLMNOPQRSTUVWXYZ");
+               len = strlen(str);
+
+               while (i < len) {
+                       j = i;
+                       eina_unicode_utf8_next_get(str, &i);
+                       snprintf(buf, i - j + 1, "%s", str + j);
+                       buf[i - j + 1] = 0;
+
+                       elm_index_item_append(index, buf, NULL, NULL);
+               }
+               elm_index_level_go(index, 0);
 
-       while (i < len) {
-               j = i;
-               eina_unicode_utf8_next_get(str, &i);
-               snprintf(buf, i - j + 1, "%s", str + j);
-               buf[i - j + 1] = 0;
+               evas_object_smart_callback_add(index, "selected", _index_selected_cb, ad);
+               //evas_object_smart_callback_add(index, "changed", _index_changed_cb, NULL);
+               //evas_object_smart_callback_add(index, "language,changed", _index_language_changed_cb, NULL);
 
-               elm_index_item_append(index, buf, NULL, NULL);
+               return index;
        }
-       elm_index_level_go(index, 0);
-
-       evas_object_smart_callback_add(index, "selected", _index_selected_cb, ad);
-       //evas_object_smart_callback_add(index, "changed", _index_changed_cb, NULL);
-       //evas_object_smart_callback_add(index, "language,changed", _index_language_changed_cb, NULL);
-
-       return index;
-}
 
 
 static Evas_Object* create_genlist(appdata_s *ad, Evas_Object *layout)
@@ -760,6 +790,6 @@ void launch_start_peer_search_view(appdata_s* ad)
        evas_object_data_set(ad->nf, "main_layout", layout);
        evas_object_data_set(ad->nf, "search_list", peer_list);
 
-       elm_naviframe_item_push(ad->nf, "<font=Tizen:style=Bold color=#ffffff align=center><font_size=48>Contacts</font_size></font>", NULL, NULL, layout, NULL);
+       elm_naviframe_item_push(ad->nf, i18n_get_text("IDS_TGRAM_HEADER_CONTACTS_ABB"), NULL, NULL, layout, NULL);
 
 }
diff --git a/TelegramTizen/src/ucol.c b/TelegramTizen/src/ucol.c
new file mode 100755 (executable)
index 0000000..a073527
--- /dev/null
@@ -0,0 +1,851 @@
+/*
+ *  Add Viewer
+ *
+ * Copyright (c) 2000 - 2013 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#define _GNU_SOURCE
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <string.h>
+#include <strings.h>
+#include <unistd.h>
+
+#include <ctype.h>
+
+#include <Eina.h>
+#include <dlog.h>
+#include <Evas.h>
+
+#include <utils_i18n.h>
+
+#include "ucol.h"
+
+static struct info {
+       i18n_ucollator_h coll;
+       enum LANGUAGE lang;
+       char *env_lang;
+} s_info = {
+       .coll = NULL,
+       .lang = LANG_ENGLISH,
+       .env_lang = NULL,
+};
+
+ int ucol_init(void)
+{
+       const char *env;
+       int status = I18N_ERROR_NONE;
+
+       env = getenv("LANG");
+       if (env) {
+               if (!strcasecmp(env, "en_US.utf-8")) {
+                       s_info.lang = LANG_ENGLISH;
+                       s_info.env_lang = "en_US.utf-8";
+               } else if (!strcasecmp(env, "ja_JP.utf-8")) {
+                       s_info.lang = LANG_JAPANESS;
+                       s_info.env_lang = "ja_JP.utf-8";
+               } else if (!strcasecmp(env, "ko_KR.utf-8")) {
+                       s_info.lang = LANG_KOREAN;
+                       s_info.env_lang = "ko_KR.utf-8";
+               }
+       }
+
+       status = i18n_ucollator_create(NULL, &s_info.coll);
+       if (I18N_ERROR_NONE != status) {
+               LOGE("Failed to open ucol (%d)\n", status);
+               i18n_ucollator_destroy(s_info.coll);
+               s_info.coll = NULL;
+       }
+
+       status = I18N_ERROR_NONE;
+       status = i18n_ucollator_set_attribute(s_info.coll, I18N_UCOLLATOR_NORMALIZATION_MODE, I18N_UCOLLATOR_ON);
+       if (I18N_ERROR_NONE != status) {
+               LOGE("Failed to open ucol (%d)\n", status);
+               i18n_ucollator_destroy(s_info.coll);
+               s_info.coll = NULL;
+       }
+
+       i18n_ucollator_set_strength(s_info.coll, I18N_UCOLLATOR_PRIMARY);
+       return 0;
+}
+
+static inline i18n_uchar *to_UTF16(const char *src, int *out_len)
+{
+       i18n_uchar *res;
+       int status = I18N_ERROR_NONE;
+       int len;
+
+       i18n_ustring_from_UTF8(NULL, 0, &len, src, -1, &status);
+
+       res = malloc((len + 1) * sizeof(*res));
+       if (!res) {
+               LOGE("malloc: %d\n", errno);
+               return NULL;
+       }
+
+       status = I18N_ERROR_NONE;
+       i18n_ustring_from_UTF8(res, len + 1, &len, src, -1, &status);
+       if (I18N_ERROR_NONE != status) {
+               LOGE("Unable to convert(%s) to UTF16(%d)\n", src, status);
+               free(res);
+               return NULL;
+       }
+       res[len] = (i18n_uchar)0;
+
+       if (out_len) {
+               *out_len = len;
+       }
+       return res;
+}
+
+static inline char *to_UTF8(i18n_uchar *src, int *out_len)
+{
+       char *res;
+       int status = I18N_ERROR_NONE;
+       int len;
+
+       i18n_ustring_to_UTF8(NULL, 0, &len, src, -1, &status);
+
+       res = malloc((len + 1) * sizeof(*res));
+       if (!res) {
+               LOGE("malloc: %d\n", errno);
+               return NULL;
+       }
+
+       status = I18N_ERROR_NONE;
+       i18n_ustring_to_UTF8(res, len + 1, &len, src, -1, &status);
+       if (I18N_ERROR_NONE != status) {
+               LOGE("Unable to convert to UTF8(%d)\n", status);
+               free(res);
+               return NULL;
+       }
+       res[len] = '\0';
+
+       if (out_len) {
+               *out_len = len;
+       }
+
+       return res;
+}
+
+static inline int hangul_to_jamo(const char *index)
+{
+       Eina_Unicode *ret;
+       Eina_Unicode tmp = 0;
+       int base = 0xAC00;
+       int last = 0xD79F;
+       int a;
+       static int table[] = {
+               0x00003131, 0x00003131,
+               0x00003134,
+               0x00003137, 0x00003137,
+               0x00003139,
+               0x00003141,
+               0x00003142, 0x00003142,
+               0x00003145, 0x00003145,
+               0x00003147,
+               0x00003148, 0x00003148,
+               0x0000314a,
+               0x0000314b,
+               0x0000314c,
+               0x0000314d,
+               0x0000314e,
+               /*
+                  0xb184e3, 0xb284e3, 0xb484e3, 0xb784e3, 0xb884e3, 0xb984e3,
+                  0x8185e3, 0x8285e3, 0x8385e3, 0x8585e3, 0x8685e3, 0x8785e3,
+                  0x8885e3, 0x8985e3, 0x8a85e3, 0x8b85e3, 0x8c85e3, 0x8d85e3,
+                  0x8e85e3,
+                */
+       };
+
+       ret = eina_unicode_utf8_to_unicode(index, &a);
+       if (ret) {
+               tmp = *ret;
+               free(ret);
+       }
+
+       if (tmp < base || tmp > last) {
+               return tmp;
+       }
+
+       tmp = tmp - base;
+       a = tmp / (21 * 28);
+       return table[a];
+}
+
+#define __isalpha(a)   (((a) >= 'a' && (a) <= 'z') || ((a) >= 'A' && (a) <= 'Z'))
+#define __tolower(a)   (((a) >= 'A' && (a) <= 'Z') ? (a) + 32 : (a))
+
+ int ucol_compare_first_letters(const char *name, const char *letters)
+{
+       if (ucol_is_hangul(letters)) {
+               int jamo_name;
+               int jamo_letters = 0;
+               Eina_Unicode *ucs;
+
+               jamo_name = hangul_to_jamo(name);
+
+               ucs = eina_unicode_utf8_to_unicode(letters, &jamo_letters);
+               if (ucs) {
+                       jamo_letters = (int)*ucs;
+                       free(ucs);
+               }
+
+               if (__isalpha(jamo_letters)) {
+                       if (!__isalpha(jamo_name)) {
+                               //LOGD("%d - %d (%s, %s)\n", jamo_name, jamo_letters, name, letters);
+                               return -1;
+                       }
+
+                       return __tolower(jamo_name) - __tolower(jamo_letters);
+               }
+
+               return jamo_name - jamo_letters;
+       }
+
+       return ucol_ncompare(name, letters, strlen(letters));
+}
+
+ int ucol_is_jamo(const char *name)
+{
+       i18n_uchar *uni;
+       int name_len = 0;
+       int lang = 0;
+
+       uni = to_UTF16(name, &name_len);
+       if (!uni) {
+               LOGE("DEST: Failed to convert to UTF16\n");
+               return 0;
+       }
+
+       i18n_uchar_get_ublock_code(*uni, &lang);
+       free(uni);
+       switch (lang) {
+       case I18N_UCHAR_UBLOCK_HANGUL_JAMO:
+       case I18N_UCHAR_UBLOCK_HANGUL_COMPATIBILITY_JAMO:
+       case I18N_UCHAR_UBLOCK_HANGUL_JAMO_EXTENDED_A:
+       case I18N_UCHAR_UBLOCK_HANGUL_JAMO_EXTENDED_B:
+               return 1;
+       case I18N_UCHAR_UBLOCK_HANGUL_SYLLABLES:
+       default:
+               break;
+       }
+
+       return 0;
+}
+
+int ucol_is_hangul(const char *name)
+{
+       i18n_uchar *uni;
+       int name_len = 0;
+       int lang = 0;
+
+       uni = to_UTF16(name, &name_len);
+       if (!uni) {
+               LOGE("DEST: Failed to convert to UTF16\n");
+               return 0;
+       }
+
+       i18n_uchar_get_ublock_code(*uni, &lang);
+       free(uni);
+       switch (lang) {
+       case I18N_UCHAR_UBLOCK_HANGUL_JAMO:
+       case I18N_UCHAR_UBLOCK_HANGUL_COMPATIBILITY_JAMO:
+       case I18N_UCHAR_UBLOCK_HANGUL_JAMO_EXTENDED_A:
+       case I18N_UCHAR_UBLOCK_HANGUL_JAMO_EXTENDED_B:
+       case I18N_UCHAR_UBLOCK_HANGUL_SYLLABLES:
+               return 1;
+       default:
+               break;
+       }
+
+       return 0;
+ }
+
+
+ int ucol_is_alpha(const char *name)
+{
+       Eina_Unicode *ucs;
+       int len;
+       int letter = 0;
+
+       ucs = eina_unicode_utf8_to_unicode(name, &len);
+       if (ucs) {
+               letter = (int)*ucs;
+               free(ucs);
+       }
+
+       return __isalpha(letter);
+}
+
+ int ucol_detect_lang(int ch)
+{
+       //      int result;
+       int lang;
+       //      int status;
+       //      int size;
+
+       /*
+          u_strToUpper((UChar *)&ch, 1, (UChar *)&result, -1, NULL, &status);
+          if (U_FAILURE(status)) {
+          LOGE("u_strToLower: %s\n", u_errorName(status));
+          return LANG_UNKNOWN;
+          }
+
+          size = unorm_normalize((UChar *)&result, 1, UNORM_NFD, 0, (UChar *)&result, 1, &status);
+          if (U_FAILURE(status)) {
+          LOGE("unorm_normalize: %s\n", u_errorName(status));
+          return LANG_UNKNOWN;
+          }
+        */
+
+       i18n_uchar_get_ublock_code(ch, &lang);
+       switch (lang) {
+       case I18N_UCHAR_UBLOCK_HIRAGANA:
+       case I18N_UCHAR_UBLOCK_KATAKANA:
+       case I18N_UCHAR_UBLOCK_KATAKANA_PHONETIC_EXTENSIONS:
+       case I18N_UCHAR_UBLOCK_JAVANESE:
+       case I18N_UCHAR_UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS:
+               lang = LANG_JAPANESS;
+               break;
+       case I18N_UCHAR_UBLOCK_HANGUL_JAMO:
+       case I18N_UCHAR_UBLOCK_HANGUL_COMPATIBILITY_JAMO:
+       case I18N_UCHAR_UBLOCK_HANGUL_SYLLABLES:
+       case I18N_UCHAR_UBLOCK_HANGUL_JAMO_EXTENDED_A:
+       case I18N_UCHAR_UBLOCK_HANGUL_JAMO_EXTENDED_B:
+               lang = LANG_KOREAN;
+               break;
+       case I18N_UCHAR_UBLOCK_BASIC_LATIN:                                                        // = 1, /*[0000]*/
+       case I18N_UCHAR_UBLOCK_LATIN_1_SUPPLEMENT:                                 // =2, /*[0080]*/
+       case I18N_UCHAR_UBLOCK_LATIN_EXTENDED_A:                                           // =3, /*[0100]*/
+       case I18N_UCHAR_UBLOCK_LATIN_EXTENDED_B:                                           // =4, /*[0180]*/
+       case I18N_UCHAR_UBLOCK_LATIN_EXTENDED_ADDITIONAL:                  // =38, /*[1E00]*/
+               lang = LANG_ENGLISH;
+               break;
+       case I18N_UCHAR_UBLOCK_CJK_RADICALS_SUPPLEMENT:                     //=58, /*[2E80]*/
+       case I18N_UCHAR_UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION:                 //=61, /*[3000]*/
+       case I18N_UCHAR_UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS:  //=68, /*[3200]*/
+       case I18N_UCHAR_UBLOCK_CJK_STROKES:                                                         // =130, /*[31C0]*/
+       case I18N_UCHAR_UBLOCK_CJK_COMPATIBILITY:                                           // =69, /*[3300]*/
+       case I18N_UCHAR_UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A: //=70, /*[3400]*/
+       case I18N_UCHAR_UBLOCK_CJK_UNIFIED_IDEOGRAPHS:                              //=71, /*[4E00]*/
+       case I18N_UCHAR_UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS:                //=79, /*[F900]*/
+       case I18N_UCHAR_UBLOCK_CJK_COMPATIBILITY_FORMS:                             //=83, /*[FE30]*/
+       case I18N_UCHAR_UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B :       // =94, /*[20000]*/
+       case I18N_UCHAR_UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT:         // =95, /*[2F800]*/
+       case I18N_UCHAR_UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C:         // =197, /*[2A700]*/
+       case I18N_UCHAR_UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D:         // =209, /*[2B740]*/
+               lang = LANG_CHINESS;
+               break;
+       default:
+               LOGD("Detected unknown: %d\n", lang);
+               lang = LANG_UNKNOWN;
+               break;
+       }
+
+       return lang;
+}
+
+static char *ucol_toupper(const char *haystack)
+{
+       i18n_uchar *_haystack;
+       i18n_uchar *u_haystack;
+       int haystack_len;
+       int status = I18N_ERROR_NONE;
+       int ret;
+       char *utf8_ret;
+
+       u_haystack = to_UTF16(haystack, &haystack_len);
+       if (!u_haystack) {
+               // Error will be printed by to_UTF16
+               return NULL;
+       }
+
+       haystack_len = i18n_ustring_to_upper(NULL, 0, u_haystack, -1, NULL, &status);
+
+       _haystack = malloc(sizeof(*_haystack) * (haystack_len + 1));
+       if (!_haystack) {
+               LOGE("malloc: %d\n", errno);
+               free(u_haystack);
+               return NULL;
+       }
+
+       //ret = u_strFoldCase((UChar *)_haystack, haystack_len, (UChar *)haystack, -1, U_FOLD_CASE_DEFAULT, &status);
+       status = I18N_ERROR_NONE;
+       ret = i18n_ustring_to_upper(_haystack, haystack_len + 1, u_haystack, -1, NULL, &status);
+       free(u_haystack);
+       if (I18N_ERROR_NONE != status) {
+               LOGE("upper: %d\n", status);
+               free(_haystack);
+               return NULL;
+       }
+
+       utf8_ret = to_UTF8(_haystack, &ret);
+       free(_haystack);
+
+       return utf8_ret;
+}
+
+ int ucol_case_ncompare(const char *src, const char *dest, int len)
+{
+       char *_src;
+       char *_dest;
+       int ret;
+
+       if (!src || !dest || len <= 0) {
+               return -EINVAL;
+       }
+
+       if (!s_info.coll) {
+               LOGE("Fallback to strncasecmp\n");
+               return strncasecmp(src, dest, len);
+       }
+
+       _src = ucol_toupper(src);
+       if (!_src) {
+               return -EFAULT;
+       }
+
+       _dest = ucol_toupper(dest);
+       if (!_dest) {
+               free(_src);
+               return -EFAULT;
+       }
+
+       ret = ucol_ncompare(_src, _dest, len);
+
+       free(_src);
+       free(_dest);
+       return ret;
+}
+
+ int ucol_ncompare(const char *src, const char *dest, int len)
+{
+       i18n_uchar *src_uni;
+       i18n_uchar *dest_uni;
+       i18n_ucollator_result_e res;
+       int32_t dest_len;
+       int32_t src_len;
+       char *tmp;
+
+       if (!src || !dest || len <= 0) {
+               return -EINVAL;
+       }
+
+       if (!s_info.coll) {
+               LOGE("Fallback to strcmp\n");
+               return strncmp(src, dest, len);
+       }
+
+       tmp = malloc(len + 1);
+       if (!tmp) {
+               LOGE("malloc: %d\n", errno);
+               return strncmp(src, dest, len);
+       }
+       strncpy(tmp, dest, len);
+       tmp[len] = '\0';
+
+       /* To get the ucs16 len */
+       src_uni = to_UTF16(tmp, &len);
+       free(tmp);
+       if (!src_uni) {
+               LOGE("Failed get utf16\n");
+               return strncmp(src, dest, len);
+       }
+       free(src_uni);
+
+       src_uni = to_UTF16(src, &src_len);
+       if (!src_uni) {
+               LOGE("SRC: Failed to convert to UTF16\n");
+               return strncmp(src, dest, len);
+       }
+
+       dest_uni = to_UTF16(dest, &dest_len);
+       if (!dest_uni) {
+               LOGE("DEST: Failed to convert to UTF16\n");
+               free(src_uni);
+               return strncmp(src, dest, len);
+       }
+
+       switch (s_info.lang) {
+       case LANG_JAPANESS:
+               if (__isalpha(*src_uni) && !__isalpha(*dest_uni)) {
+                       res = I18N_UCOLLATOR_GREATER;
+               } else if (!__isalpha(*src_uni) && __isalpha(*dest_uni)) {
+                       res = I18N_UCOLLATOR_LESS;
+               } else {
+                       int src_lang;
+                       int dest_lang;
+
+                       src_lang = ucol_detect_lang(*src_uni);
+                       dest_lang = ucol_detect_lang(*dest_uni);
+
+                       if (src_lang == LANG_JAPANESS && dest_lang != LANG_JAPANESS) {
+                               res = I18N_UCOLLATOR_LESS;
+                       } else if (src_lang != LANG_JAPANESS && dest_lang == LANG_JAPANESS) {
+                               res = I18N_UCOLLATOR_GREATER;
+                       } else {
+                               i18n_ucollator_str_collator(s_info.coll, src_uni, len, dest_uni, len, &res);
+                       }
+               }
+               break;
+       case LANG_KOREAN:
+               if (__isalpha(*src_uni) && !__isalpha(*dest_uni)) {
+                       res = I18N_UCOLLATOR_GREATER;
+               } else if (!__isalpha(*src_uni) && __isalpha(*dest_uni)) {
+                       res = I18N_UCOLLATOR_LESS;
+               } else {
+                       int src_lang;
+                       int dest_lang;
+
+                       src_lang = ucol_detect_lang(*src_uni);
+                       dest_lang = ucol_detect_lang(*dest_uni);
+
+                       if (src_lang == LANG_KOREAN && dest_lang != LANG_KOREAN) {
+                               res = I18N_UCOLLATOR_LESS;
+                       } else if (src_lang != LANG_KOREAN && dest_lang == LANG_KOREAN) {
+                               res = I18N_UCOLLATOR_GREATER;
+                       } else {
+                               i18n_ucollator_str_collator(s_info.coll, src_uni, len, dest_uni, len, &res);
+                       }
+               }
+               break;
+       case LANG_ENGLISH:
+       default:
+               /*
+                  if (__isalpha(*src_uni) && !__isalpha(*dest_uni)) {
+                  res = UCOL_LESS;
+                  } else if (!__isalpha(*src_uni) && __isalpha(*dest_uni)) {
+                  res = UCOL_GREATER;
+                  } else {
+                */
+               i18n_ucollator_str_collator(s_info.coll, src_uni, len, dest_uni, len, &res);
+               /*
+                  }
+                */
+       }
+
+       free(src_uni);
+       free(dest_uni);
+
+       switch (res) {
+       case I18N_UCOLLATOR_LESS:
+               return -1;
+
+       case I18N_UCOLLATOR_EQUAL:
+               return 0;
+
+       case I18N_UCOLLATOR_GREATER:
+               return 1;
+
+       default:
+               LOGD("%s ? %s\n", src, dest);
+               return 0;
+       }
+}
+
+ int ucol_case_compare(const char *src, const char *dest)
+{
+       char *_src;
+       char *_dest;
+       int ret;
+
+       if (!src || !dest) {
+               return -EINVAL;
+       }
+
+       if (!s_info.coll) {
+               LOGE("Fallback to strcasecmp\n");
+               return strcasecmp(src, dest);
+       }
+
+       _src = ucol_toupper(src);
+       if (!_src) {
+               return -EFAULT;
+       }
+
+       _dest = ucol_toupper(dest);
+       if (!_dest) {
+               free(_src);
+               return -EFAULT;
+       }
+
+       ret = ucol_compare(_src, _dest);
+       free(_src);
+       free(_dest);
+       return ret;
+}
+
+ int ucol_compare(const char *src, const char *dest)
+{
+       i18n_uchar *src_uni;
+       i18n_uchar *dest_uni;
+       i18n_ucollator_result_e res;
+       int32_t dest_len;
+       int32_t src_len;
+       int len;
+
+       if (!src || !dest) {
+               return -EINVAL;
+       }
+
+       if (!s_info.coll) {
+               LOGE("Fallback to strcmp\n");
+               return strcmp(src, dest);
+       }
+
+       src_uni = to_UTF16(src, &src_len);
+       if (!src_uni) {
+               LOGE("SRC: Failed to convert to UTF16\n");
+               return strcmp(src, dest);
+       }
+
+       dest_uni = to_UTF16(dest, &dest_len);
+       if (!dest_uni) {
+               LOGE("DEST: Failed to convert to UTF16\n");
+               free(src_uni);
+               return strcmp(src, dest);
+       }
+
+       len = src_len > dest_len ? dest_len : src_len;
+
+       switch (s_info.lang) {
+       case LANG_JAPANESS:
+               if (__isalpha(*src_uni) && !__isalpha(*dest_uni)) {
+                       res = I18N_UCOLLATOR_GREATER;
+               } else if (!__isalpha(*src_uni) && __isalpha(*dest_uni)) {
+                       res = I18N_UCOLLATOR_LESS;
+               } else {
+                       int src_lang;
+                       int dest_lang;
+
+                       src_lang = ucol_detect_lang(*src_uni);
+                       dest_lang = ucol_detect_lang(*dest_uni);
+
+                       if (src_lang == LANG_JAPANESS && dest_lang != LANG_JAPANESS) {
+                               res = I18N_UCOLLATOR_LESS;
+                       } else if (src_lang != LANG_JAPANESS && dest_lang == LANG_JAPANESS) {
+                               res = I18N_UCOLLATOR_GREATER;
+                       } else {
+                               i18n_ucollator_str_collator(s_info.coll, src_uni, len, dest_uni, len, &res);
+                       }
+               }
+               break;
+       case LANG_KOREAN:
+               if (__isalpha(*src_uni) && !__isalpha(*dest_uni)) {
+                       res = I18N_UCOLLATOR_GREATER;
+               } else if (!__isalpha(*src_uni) && __isalpha(*dest_uni)) {
+                       res = I18N_UCOLLATOR_LESS;
+               } else {
+                       int src_lang;
+                       int dest_lang;
+
+                       src_lang = ucol_detect_lang(*src_uni);
+                       dest_lang = ucol_detect_lang(*dest_uni);
+
+                       if (src_lang == LANG_KOREAN && dest_lang != LANG_KOREAN) {
+                               res = I18N_UCOLLATOR_LESS;
+                       } else if (src_lang != LANG_KOREAN && dest_lang == LANG_KOREAN) {
+                               res = I18N_UCOLLATOR_GREATER;
+                       } else {
+                               i18n_ucollator_str_collator(s_info.coll, src_uni, len, dest_uni, len, &res);
+                       }
+               }
+               break;
+       case LANG_ENGLISH:
+       default:
+               if (__isalpha(*src_uni) && !__isalpha(*dest_uni)) {
+                       res = I18N_UCOLLATOR_LESS;
+               } else if (!__isalpha(*src_uni) && __isalpha(*dest_uni)) {
+                       res = I18N_UCOLLATOR_GREATER;
+               } else {
+                       i18n_ucollator_str_collator(s_info.coll, src_uni, len, dest_uni, len, &res);
+               }
+       }
+
+       free(src_uni);
+       free(dest_uni);
+
+       switch (res) {
+       case I18N_UCOLLATOR_LESS:
+               return -1;
+
+       case I18N_UCOLLATOR_EQUAL:
+               if (src_len > dest_len) {
+                       return 1;
+               } else if (src_len == dest_len) {
+                       return 0;
+               }
+
+               return -1;
+
+       case I18N_UCOLLATOR_GREATER:
+               return 1;
+
+       default:
+               LOGD("%s ? %s\n", src, dest);
+               return 0;
+       }
+}
+
+static int util_get_utf8_len(char ch)
+ {
+     int idx_len;
+     if ((ch & 0x80) == 0x00) {
+         idx_len = 1;
+     } else if ((ch & 0xE0) == 0xC0) {
+         idx_len = 2;
+     } else if ((ch & 0xF0) == 0xE0) {
+         idx_len = 3;
+     } else if ((ch & 0xFC) == 0xF8) {
+         idx_len = 4;
+     } else if ((ch & 0xFE) == 0xFC) {
+         idx_len = 5;
+     } else if ((ch & 0xFF) == 0xFE) {
+         idx_len = 6;
+     } else {
+         idx_len = 1;
+     }
+
+     return idx_len;
+ }
+
+
+ int ucol_case_search(const char *haystack, const char *needle)
+{
+       char *_haystack;
+       char *_needle;
+       const char *ptr;
+       int len;
+       int needle_len;
+       int idx;
+       int ret;
+
+       if (!haystack || !needle) {
+               return -EINVAL;
+       }
+
+       if (!s_info.coll) {
+               LOGE("Fallback to strcasestr\n");
+               ptr = strcasestr(haystack, needle);
+               if (!ptr) {
+                       return -ENOENT;
+               }
+
+               return (int)(ptr - haystack);
+       }
+
+       _haystack = ucol_toupper(haystack);
+       if (!_haystack) {
+               // Error will be printed by ucol_toupper
+               return -EFAULT;
+       }
+
+       _needle = ucol_toupper(needle);
+       if (!_needle) {
+               // Error will be printed by ucol_toupper
+               free(_haystack);
+               return -EFAULT;
+       }
+
+       needle_len = strlen(_needle);
+       len = strlen(_haystack) - needle_len;
+       if (len == 0) {
+               ret = ucol_compare(_haystack, _needle);
+               free(_needle);
+               free(_haystack);
+               return ret == 0 ? 0 : -ENOENT;
+       } else if (len < 0) {
+               free(_haystack);
+               free(_needle);
+               return -ENOENT;
+       }
+
+       for (idx = 0; idx <= len; ) {
+               ret = ucol_ncompare(_haystack + idx, _needle, needle_len);
+               if (ret == 0) {
+                       free(_haystack);
+                       free(_needle);
+                       return idx;
+               }
+
+               idx += util_get_utf8_len(_haystack[idx]);
+       }
+
+       free(_haystack);
+       free(_needle);
+       return -ENOENT;
+}
+
+ int ucol_search(const char *haystack, const char *needle)
+{
+       int ret;
+       int len;
+       const char *ptr;
+       int idx;
+       int needle_len;
+
+       if (!haystack || !needle) {
+               return -EINVAL;
+       }
+
+       if (!s_info.coll) {
+               LOGE("Fallback to strstr\n");
+               ptr = strstr(haystack, needle);
+               if (!ptr) {
+                       return -ENOENT;
+               }
+
+               return (int)(ptr - haystack);
+       }
+
+       needle_len = strlen(needle);
+       len = strlen(haystack) - needle_len;
+       if (len == 0) {
+               return ucol_compare(haystack, needle) == 0 ? 0 : -ENOENT;
+       } else if (len < 0) {
+               return -ENOENT;
+       }
+
+       for (idx = 0; idx < len;) {
+               ret = ucol_ncompare(haystack + idx, needle, needle_len);
+               if (ret == 0) {
+                       return idx;
+               }
+
+               idx += util_get_utf8_len(haystack[idx]);
+       }
+
+       return -ENOENT;
+}
+
+ int ucol_fini(void)
+{
+       if (s_info.coll) {
+               i18n_ucollator_destroy(s_info.coll);
+               s_info.coll = NULL;
+       }
+       return 0;
+}
+
+ const int ucol_current_lang(void)
+{
+       return s_info.lang;
+}
+
+/* End of a file */