--- /dev/null
+#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
+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_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৷"
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 "অগ্ৰসৰ কৰিব পৰা নাযাব"
+
+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."
+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_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 "Немагчыма пераадрасаваць"
+
+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।"
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 "অগ্রবর্তী করা যাবে না"
+
+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৷"
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 "ফরোয়ার্ড করা যাবে না"
+
+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."
+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."
+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."
+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."
+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."
+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."
msgstr "Guardar"
msgid "IDS_TGRAM_HEADER_SLIDE_TO_CANCEL_ABB"
-msgstr "Desliza cancelar"
+msgstr "Deslizar cancela"
msgid "IDS_TGRAM_HEADER_SETTINGS_ABB4"
msgstr "Ajustes"
+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_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 "هدایت ممکن نیست"
+
+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."
+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 છે."
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 "ફોર્વર્ડ કરી શકાતું નથી"
+
+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 है।"
+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_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."
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"
+
+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."
--- /dev/null
+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 "ვერ გადამისამართდება"
+
+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_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។"
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 "មិនអាចបញ្ជូនបន្ត"
+
+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."
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 "ಫಾರ್ವರ್ಡ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ"
+
+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_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_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 "Которууга болбойт"
+
+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_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 "ບໍ່ສາມາດຖືກສົ່ງຕໍ່ໄດ້"
+
+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."
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 "ഫോർവേഡ് ചെയ്യാനാവില്ല"
+
+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_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 "Цааш илгээх боломжгүй"
+
+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 आहे."
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 "अग्रेषित केले जाऊ शकत नाही"
+
+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."
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"
+
+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ရွိပါသည္။"
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 "လုိင္းလႊဲေျပာင္း၍ မရပါ"
+
+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 छ।"
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 "फवार्ड गर्न सकिँदैन"
+
+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।"
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 "ଅଗ୍ରଗାମୀ ହୋଇପାରିବ ନାହିଁ"
+
+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 ਹੈ।"
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 "ਫਾਰਵਰਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"
+
+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."
+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."
+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приложение для обмена сообщениями."
+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."
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 "යොමු කළ නොහැක"
+
+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."
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 "முன்னனுப்ப இயலாது"
+
+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."
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 "ఫార్వార్డ్ చేయబడదు"
+
+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 аст."
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 "Бозфиристӣ ғайриимкон аст"
+
+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_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 "ไม่สามารถส่งต่อได้"
+
+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."
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"
+
+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."
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"
+
+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."
+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програма обміну повідомленнями."
+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_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 "آگے نہیں بڑھایا جاسکتا"
+
+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."
+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."
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"
+
+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。"
#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)
{
{
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);
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;
}
}
} 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;
}
} 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;
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;
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");
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);
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;
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);
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;
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);
#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
ecore_timer_add(2, on_load_main_view_requested, ad);
}
+
+ ucol_init();
//eina_list_free(user_info);
}
#include "tg_db_wrapper.h"
#include "tg_messaging_view.h"
#include "contact_selection_view.h"
+#include "ucol.h"
#define COMMAND_MENU_ITEM_COUNT 2
};
-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);
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;
}
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;
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");
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 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;
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;
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");
}
-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);
//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)
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);
}
--- /dev/null
+/*
+ * 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 */