لتحويل الكتابة من لغة إلى أخرى في دلفي.
#1
السلام عليكم ورحمة الله تعالى وبركاته.Smile

هذا مثال بسيط حول تحويل الكتابة في لوحة المفاتيح (KeyBorad) بواسطة دلفي:Wink

لتحويل الكتابة إلى اللغة العربية: AR

كود :
LoadKeyboardLayout('00000401',klf_activate);

لتحويل الكتابة إلى اللغة الإنجليزية: EN

كود :
LoadKeyboardLayout('00000409',klf_activate);

لتحويل الكتابة إلى اللغة الروسية: RU

كود :
LoadKeyboardLayout('00000419',klf_activate);

مـــــوفقين إن شاء الله.
[-] كل من 1 user says قال شكرا ل ضيف على المشاركة المفيدة
  • invocker
الرد
#2
السلام عليكم
من الامثلة السابقة يتضح ان لكل لغة كود اي
العربية ---------00000401
الانكليزية ---------00000409

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

لكن من اين آتي بأرقام اللغات ؟

يعني مثلا الكيبورد السويدي...
كيف اعرف رقمه وكوده ؟

الله يكرمكم
الرد
#4
moh__ كتب :لكن من اين آتي بأرقام اللغات ؟

يعني مثلا الكيبورد السويدي...
كيف اعرف رقمه وكوده ؟

الله يكرمكم


من هذا الرابط:
كود :
http://msdn.microsoft.com/en-us/goglobal/bb964664.aspx
من تشبه بقوم فهو منهم
الرد
#5
bsm12 كتب :السلام عليكم
من الامثلة السابقة يتضح ان لكل لغة كود اي
العربية ---------00000401
الانكليزية ---------00000409

ممكن بعض الاكزاد للغات أخري كالفرنسية مثلا


الفرنسية 00000409
ان اردت اكواد جميع الغات راجع الموقع الذي وضعه الاخ
الرد
#6
لتحديد لغة إقليمية معينة من خلال ثوابت معرفة في Windows.pas يمكن استخدام الـ Macro الذي يعيد الرمز التعريفي للغة:
كود :
#define [color=DarkSlateBlue]MAKELANGID[/color](p, s) ((((WORD) (s)) << 10) | (WORD) (p))
المصدر:
كود :
http://msdn.microsoft.com/en-us/library/bb202928.aspx
في دلفي:
كود :
function [color=DarkSlateBlue]MAKELANGID[/color](usPrimaryLanguage, usSubLanguage: LANGID): WORD;
begin
  Result := ([color=DarkGreen]usSubLanguage [/color]shl 10) + [color=Blue]usPrimaryLanguage[/color];
end;
usPrimaryLanguage: تأخذ اللغة المستخدمة نستخدم: LANG_ARABIC/LANG_ENGLISH
usSubLanguage: تأخذ إقليم اللغة: SUBLANG_ARABIC_SYRIA/SUBLANG_ARABIC_EGYPT
لتسهيل الاستخدام نعيد كتابته في تابع يعيد string عوضا عن Word
ونستخدم TSpeedButton كزر للتغيير لأنه لا يغير موضع المؤشر (Cursor Focus). المثال:
PHP كود :
function GetLangID(usPrimaryLanguageusSubLanguageLANGID): string;
begin
  Result 
:= IntToHex((usSubLanguage shl 10) + usPrimaryLanguage8);
end;

procedure TForm1.SpeedButton1Click(SenderTObject);
begin
  LoadKeyboardLayout
(pchar(GetLangID(LANG_ARABICSUBLANG_ARABIC_SAUDI_ARABIA)), KLF_ACTIVATE);
end
بقية الثوابت معرفة في Windows.pas.
الرد
#7
[صورة: picture0002a.jpg]

[صورة: picture0001zo.jpg]

[صورة: picture0003h.jpg]
الرد
#8
كود :
Language identifier    Language       Sublanguage - locale

00000436                 Afrikaans             South Africa
0000041c                 Albanian             Albania
00001401                 Arabic                 Algeria
00003c01                 Arabic                 Bahrain
00000c01                 Arabic                 Egypt
00000801                 Arabic                 Iraq
00002c01                 Arabic                 Jordan
00003401                 Arabic                 Kuwait
00003001                 Arabic                 Lebanon
00001001                 Arabic                 Libya
00001801                 Arabic                 Morocco
00002001                 Arabic                 Oman
00004001                 Arabic                 Qatar
00000401                 Arabic                 Saudi Arabia
00002801                 Arabic                 Syria
00001c01                 Arabic                 Tunisia
00003801                 Arabic                 UAE
00002401                 Arabic                 Yemen
0000042b                 Armenian           Armenia
0000082c                 Azeri                  Azerbaijan (Cyrillic)
0000042c                 Azeri                  Azerbaijan (Latin)
0000042d                 Basque               Spain
00000423                 Belarusian          Belarus
00000402                 Bulgarian            Bulgaria
00000403                 Catalan               Spain
00000c04                 Chinese                Hong Kong SAR
00001404                 Chinese                Macao SAR
00000804                 Chinese                PRC
00001004                 Chinese                Singapore
00000404                 Chinese                Taiwan
0000041a                 Croatian               Croatia
00000405                 Czech                  Czech Republic
00000406                 Danish                 Denmark
00000465                 Divehi                 Maldives
00000813                 Dutch                  Belgium
00000413                 Dutch                  Netherlands
00000c09                 English                Australia
00002809                 English                Belize
00001009                 English                Canada
00002409                 English                Caribbean
00001809                 English                Ireland
00002009                 English                Jamaica
00001409                 English                New Zealand
00003409                 English                Philippines
00001c09                 English                South Africa
00002c09                 English                Trinidad
00000809                 English                United Kingdom
00000409                 English                United States
00003009                 English                Zimbabwe
00000425                 Estonian               Estonia
00000438                 Faroese                Faroe Islands
00000429                 Farsi                  Iran
0000040b                 Finnish                Finland
0000080c                 French                 Belgium
00000c0c                 French                 Canada
0000040c                 French                 France
0000140c                 French                 Luxembourg
0000180c                 French                 Monaco
0000100c                 French                 Switzerland
0000042f                 FYRO Macedonia         FYRO Macedonia
00000456                 Galician               Spain
00000437                 Georgian               Georgia
00000c07                 German                 Austria
00000407                 German                 Germany
00001407                 German                 Liechtenstein
00001007                 German                 Luxembourg
00000807                 German                 Switzerland
00000408                 Greek                  Greece
00000447                 Gujarati               India
0000040d                 Hebrew                 Israel
00000439                 Hindi                  India
0000040e                 Hungarian              Hungary
0000040f                 Icelandic              Iceland
00000421                 Indonesian             Indonesia (Bahasa)
00000410                 Italian                Italy
00000810                 Italian                Switzerland
00000411                 Japanese               Japan
0000044b                   Kannada                 India (Kannada script)
0000043f                   Kazakh                  Kazakstan
00000457                   Konkani                 India
00000412                   Korean                  Korea
00000440                   Kyrgyz                  Kyrgyzstan
00000426                   Latvian                 Latvia
00000427                   Lithuanian              Lithuania
0000083e                   Malay                   Brunei Darussalam
0000043e                   Malay                   Malaysia
0000044e                   Marathi                 India
00000450                   Mongolian (Cyrillic)    Mongolia
00000414                   Norwegian               Norway (Bokmål)
00000814                   Norwegian               Norway (Nynorsk)
00000415                   Polish                  Poland
00000416                   Portuguese              Brazil
00000816                   Portuguese              Portugal
00000446                   Punjabi                 India (Gurmukhi script)
00000418                   Romanian                Romania
00000419                   Russian                 Russia
0000044f                   Sanskrit                India
00000c1a                   Serbian                 Serbia (Cyrillic)
0000081a                   Serbian                 Serbia (Latin)
0000041b                   Slovak                  Slovakia
00000424                   Slovenian               Slovenia
00002c0a                   Spanish                 Argentina
0000400a                   Spanish                 Bolivia
0000340a                   Spanish                 Chile
0000240a                   Spanish                 Colombia
0000140a                   Spanish                 Costa Rica
00001c0a                   Spanish                 Dominican Republic
0000300a                   Spanish                 Ecuador
0000440a                   Spanish                 El Salvador
0000100a                   Spanish                 Guatemala
0000480a                   Spanish                 Honduras
0000080a                   Spanish                 Mexico
00004c0a                   Spanish                 Nicaragua
0000180a                   Spanish                 Panama
00003c0a                   Spanish                 Paraguay
0000280a                   Spanish                 Peru
0000500a                   Spanish                 Puerto Rico
0000040a                   Spanish                 Spain (Traditional sort)
00000c0a                   Spanish                 Spain (International sort)
0000380a                   Spanish                 Uruguay
0000200a                   Spanish                 Venezuela
00000441                   Swahili                 Kenya
0000081d                   Swedish                 Finland
0000041d                   Swedish                 Sweden
0000045a                   Syriac                  Syria
00000449                   Tamil                   India
00000444                   Tatar                   Tatarstan
0000044a                   Telugu                  India (Telugu script)
0000041e                   Thai                    Thailand
0000041f                   Turkish                 Turkey
00000422                   Ukrainian               Ukraine
00000420                   Urdu                    Pakistan
00000843                   Uzbek                   Uzbekistan (Cyrillic)
00000443                   Uzbek                   Uzbekistan (Latin)
0000042a                   Vietnamese              Viet Nam
الرد
#9
السلام عليكم
لقدوضعت هذا الكود فتحولت اللغة إلى الإنجليزية وأنا أود تحويلها إلى العربية الجزائرية

LOADKEYBOARdlayout('00001401',klf_activate);

هل من مساعد؟
الرد
#10
جرب
كود :
Application.BiDiKeyboard:='00000401';
LoadKeyboardLayout('00000401',KLF_ACTIVATE);
اعتقد انك يجب ان تضيف العربية الجزائرية للجهاز
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم