المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : كود تغيير اللغة على حسب دولتك


وليد شوكلاته
22-12-2019, 03:33 AM
السلام عليكم ورحمة الله وبركاته
اخوانى الافاضل وجدت موضوع للاخ المهاجر عن تغيير لغة الادخال من الانجليزية للغة بلدك بواسطة الكود
قمت بتعديل الكود ليعمل اوتوماتيكيا على اختيار اللغه الموجوده على الجهاز لو كان المستخدم يستخدم كمثال
اللغة العربية مصرية الكود سيحددها دون اضافة لغة اخرى وان كان يستخدم اللغة العربية الجزائريه
سيحددها دون اضافة لغة اخرى ايضا وهكذا مع جميع الدول ارجو تجربة الكود فى بلدان مختلفة
وابلاغنا ان كان يعمل او يحتاج تعديل ولكم منا وافر الاحترام والتقدير

الكووووووووووود

language = Registry.GetValue(HKEY_CURRENT_USER, "Control Panel\\International", "sLanguage", true);
if language == 'ARG' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00001401\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARH' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00003C01\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARE' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00000C01\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARI' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00000801\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARJ' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00002C01\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARK' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00003401\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARB' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00003001\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARL' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00001001\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARM' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00001801\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARO' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00002001\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARQ' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00004001\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARA' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00000401\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARS' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00002801\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ART' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00001C01\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARU' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00003801\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARY' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00002401\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
end



نرجو التجربة وبلغونا بالنتيجة

عبد الهادي بهاب
22-12-2019, 04:08 PM
السلام عليكم ورحمة الله وبركاته

مشكور جدا على الجهد سنحاول استخدام الكود

عبد الهادي بهاب
22-12-2019, 04:21 PM
لاحظ معي لما اضف شرط اذ لم يجد اي لغة من تلكم اللغات
نحدد له احداها مثلا الاخيرة

لكن يغير لغة النظام الى الانجليزية



language = Registry.GetValue(HKEY_CURRENT_USER, "Control Panel\\International", "sLanguage", true);
if language == 'ARG' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00001401\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARH' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00003C01\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARE' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00000C01\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARI' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00000801\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARJ' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00002C01\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARK' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00003401\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARB' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00003001\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARL' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00001001\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARM' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00001801\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARO' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00002001\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARQ' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00004001\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARA' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00000401\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARS' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00002801\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ART' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00001C01\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARU' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00003801\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARY' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00002401\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
else
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00003801\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
end
language = Registry.GetValue(HKEY_CURRENT_USER, "Control Panel\\International", "sLanguage", true);
Input.SetText("Input1", language)

وليد شوكلاته
22-12-2019, 06:14 PM
لاحظ معي لما اضف شرط اذ لم يجد اي لغة من تلكم اللغات
نحدد له احداها مثلا الاخيرة

لكن يغير لغة النظام الى الانجليزية



نورت الوضوع اخى عبد الهادي بهاب
بالنسبة لسؤالك لاحظ معى ان هنالك متغير وهو اول سطر
language = Registry.GetValue(HKEY_CURRENT_USER, "Control Panel\\International", "sLanguage", true);
هذا المتغير يتحقق من اللغة المثبته على الجهاز
من خلال الريجسترى ويبحث عن القيمة المحددة "sLanguage"
وهنا ياتى دور شرط اذ "if" اذ ا مفتاح الريجسترى
بقيمة "ARG" يختار اللغة العربية الجزائريه
واذا كانت القيمة تساوى "ARE" يختار اللغة العربية المصرية
وهكذا الى اخر اللغات جرب الكود انا جربته ويعمل ولكن انا لدى
اللغة العربية المصرية اريد من يجرب على جهاز عليه لغة عربية
سعودية او جزائرية او اى بلد اخرى لكى نتأكد من عمل الكود قبل اعتماده
تقبل احترامى

وليد شوكلاته
22-12-2019, 07:38 PM
السلام عليكم ورحمة الله وبركاته
اسف اخى لم افهم سؤالك فى المرة الاولى
لاحظ معي لما اضف شرط اذ لم يجد اي لغة من تلكم اللغات
نحدد له احداها مثلا الاخيرة


كيف سيحددها وهى غير موجودة اصلا لابد ان تضع لغة عربية يثبتها البرنامج
فى حالة ان الجهاز ليس به اى لغة عربية وغالبا تكون الافتراضية وهى اللغة العربية السعودية
الكود الذى وضعته انت بعد التعديل

language = Registry.GetValue(HKEY_CURRENT_USER, "Control Panel\\International", "sLanguage", true);
if language == 'ARG' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00001401\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARH' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00003C01\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARE' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00000C01\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARI' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00000801\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARJ' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00002C01\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARK' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00003401\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARB' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00003001\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARL' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00001001\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARM' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00001801\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARO' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00002001\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARQ' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00004001\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARA' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00000401\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARS' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00002801\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ART' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00001C01\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARU' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00003801\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
elseif language == 'ARY' then
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00002401\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
else
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00000401\", 1", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
end
Input.SetText("Input1", language);

جرب ووافينى بالنتيجة

خادم المسلمين
22-12-2019, 07:45 PM
الموضوع جميل وشوكولاتة خالص:abc_051::abc_022:
ابداع ويستحق التقدير والمتابعة
خاصية تعد مهمة جدا لاسيما فى المشاريع التى تقدم الى مسابقات دولية نقطة تميز تحسب للتطبيق:abc_028:

وليد شوكلاته
22-12-2019, 07:55 PM
الموضوع جميل وشوكولاتة خالص:abc_051::abc_022:
ابداع ويستحق التقدير والمتابعة
خاصية تعد مهمة جدا لاسيما فى المشاريع التى تقدم الى مسابقات دولية نقطة تميز تحسب للتطبيق:abc_028:

نورت الموضوع بمرورك العطر اخى الفاضل خادم المسلمين
واتمنى من الله ان يوفقنا جميعا لخدمة بعضنا البعض
وياريت حد يجرب ويقولنا هل الكود يعمل عند الجميع
لانى لم اجرب الا على اللغة العربيه المصرية لانها
اللغة المثبتة على جهازى
ولكم منى وافر الاحترام والقدير

عبد الهادي بهاب
23-12-2019, 02:29 PM
ا
جرب ووافينى بالنتيجة


جربت لقد اضاف لغة العربية السعودية
وهو فعلا يغير اللغة الى العربية السعودية بعد ان كنت اكتب فرنسي
جميل جدا

وليد شوكلاته
23-12-2019, 02:46 PM
جربت لقد اضاف لغة العربية السعودية
وهو فعلا يغير اللغة الى العربية السعودية بعد ان كنت اكتب فرنسي
جميل جدا

منور الدنيا اخى عبد الهادي مرورك الاجمل
الحمد لله ان الكود يعمل بنجاح هكذا سأعتمد الكود
بالمشروعات القادمة جزاك الله خيرا ونفعنا واياك

نجمة ليبيا
10-02-2020, 12:45 AM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

سمير المخفي
28-01-2021, 08:24 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .
هل هناك طريقة مثلا ان نجعل اللغة العربية هي االبارامترات الإقليمية
بمعني اخر الرموز الغريبة