Pegar Linguagem default do Windows - xHarbour

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Pegar Linguagem default do Windows - xHarbour

Mensagem por sygecom »

Código: Selecionar todos

Func Main()
alertr(GetUserDefaultLanguage(3))
Return Nil
//Revisar em windows 98 que da um erro

Código: Selecionar todos

Function GetUserDefaultLanguage( n )

   Local nLang, nScan, ;
         aLang:={ { 1078, "af", "Afrikaans - South Africa" }, ;
                  { 1052, "sq", " Albanian - Albania" }, ;
                  { 1118, "am", "Amharic - Ethiopia" }, ;
                  { 1025, "ar", "Arabic - Saudi Arabia" }, ;
                  { 5121, "ar", "Arabic - Algeria" }, ;
                  { 15361, "ar", "Arabic - Bahrain" }, ;
                  { 3073, "ar", "Arabic - Egypt" }, ;
                  { 2049, "ar", "Arabic - Iraq" }, ;
                  { 11265, "ar", "Arabic - Jordan" }, ;
                  { 13313, "ar", "Arabic - Kuwait" }, ;
                  { 12289, "ar", "Arabic - Lebanon" }, ;
                  { 4097, "ar", "Arabic - Libya" }, ;
                  { 6145, "ar", "Arabic - Morocco" }, ;
                  { 8193, "ar", "Arabic - Oman" }, ;
                  { 16385, "ar", "Arabic - Qatar" }, ;
                  { 10241, "ar", "Arabic - Syria" }, ;
                  { 7169, "ar", "Arabic - Tunisia" }, ;
                  { 14337, "ar", "Arabic - U.A.E." }, ;
                  { 9217, "ar", "Arabic - Yemen" }, ;
                  { 1067, "hy", "Armenian - Armenia" }, ;
                  { 1101, "as", "Assamese" }, ;
                  { 2092, "None", "Azeri (Cyrillic)" }, ;
                  { 1068, "None", "Azeri (Latin)" }, ;
                  { 1069, "eu", "Basque" }, ;
                  { 1059, "be", "Belarusian" }, ;
                  { 1093, "bn", "Bengali (India)" }, ;
                  { 2117, "bn", "Bengali (Bangladesh)" }, ;
                  { 5146, "bs", "Bosnian (Bosnia/Herzegovina)" }, ;
                  { 1026, "bg", "Bulgarian" }, ;
                  { 1109, "my", "Burmese" }, ;
                  { 1027, "ca", "Catalan" }, ;
                  { 1116, "None", "Cherokee - United States" }, ;
                  { 2052, "zh", "Chinese - People's Republic of China" }, ;
                  { 4100, "zh", "Chinese - Singapore" }, ;
                  { 1028, "zh", "Chinese - Taiwan" }, ;
                  { 3076, "zh", "Chinese - Hong Kong SAR" }, ;
                  { 5124, "zh", "Chinese - Macao SAR" }, ;
                  { 1050, "hr", "Croatian" }, ;
                  { 4122, "hr", "Croatian (Bosnia/Herzegovina)" }, ;
                  { 1029, "cs", "Czech" }, ;
                  { 1030, "da", "Danish" }, ;
                  { 1125, "dv", "Divehi" }, ;
                  { 1043, "nl", "Dutch - Netherlands" }, ;
                  { 2067, "nl", "Dutch - Belgium" }, ;
                  { 1126, "None", "Edo" }, ;
                  { 1033, "en", "English - United States" }, ;
                  { 2057, "en", "English - United Kingdom" }, ;
                  { 3081, "en", "English - Australia" }, ;
                  { 10249, "en", "English - Belize" }, ;
                  { 4105, "en", "English - Canada" }, ;
                  { 9225, "en", "English - Caribbean" }, ;
                  { 15369, "en", "English - Hong Kong SAR" }, ;
                  { 16393, "en", "English - India" }, ;
                  { 14345, "en", "English - Indonesia" }, ;
                  { 6153, "en", "English - Ireland" }, ;
                  { 8201, "en", "English - Jamaica" }, ;
                  { 17417, "en", "English - Malaysia" }, ;
                  { 5129, "en", "English - New Zealand" }, ;
                  { 13321, "en", "English - Philippines" }, ;
                  { 18441, "en", "English - Singapore" }, ;
                  { 7177, "en", "English - South Africa" }, ;
                  { 11273, "en", "English - Trinidad" }, ;
                  { 12297, "en", "English - Zimbabwe" }, ;
                  { 1061, "et", "Estonian" }, ;
                  { 1080, "fo", "Faroese" }, ;
                  { 1065, "None", "Farsi" }, ;
                  { 1124, "None", "Filipino" }, ;
                  { 1035, "fi", "Finnish" }, ;
                  { 1036, "fr", "French - France" }, ;
                  { 2060, "fr", "French - Belgium" }, ;
                  { 11276, "fr", "French - Cameroon" }, ;
                  { 3084, "fr", "French - Canada" }, ;
                  { 9228, "fr", "French - Democratic Rep. of Congo" }, ;
                  { 12300, "fr", "French - Cote d'Ivoire" }, ;
                  { 15372, "fr", "French - Haiti" }, ;
                  { 5132, "fr", "French - Luxembourg" }, ;
                  { 13324, "fr", "French - Mali" }, ;
                  { 6156, "fr", "French - Monaco" }, ;
                  { 14348, "fr", "French - Morocco" }, ;
                  { 58380, "fr", "French - North Africa" }, ;
                  { 8204, "fr", "French - Reunion" }, ;
                  { 10252, "fr", "French - Senegal" }, ;
                  { 4108, "fr", "French - Switzerland" }, ;
                  { 7180, "fr", "French - West Indies" }, ;
                  { 1122, "fy", "Frisian - Netherlands" }, ;
                  { 1127, "None", "Fulfulde - Nigeria" }, ;
                  { 1071, "mk", "FYRO Macedonian" }, ;
                  { 2108, "ga", "Gaelic (Ireland)" }, ;
                  { 1084, "gd", "Gaelic (Scotland)" }, ;
                  { 1110, "gl", "Galician" }, ;
                  { 1079, "ka", "Georgian" }, ;
                  { 1031, "de", "German - Germany" }, ;
                  { 3079, "de", "German - Austria" }, ;
                  { 5127, "de", "German - Liechtenstein" }, ;
                  { 4103, "de", "German - Luxembourg" }, ;
                  { 2055, "de", "German - Switzerland" }, ;
                  { 1032, "el", "Greek" }, ;
                  { 1140, "gn", "Guarani - Paraguay" }, ;
                  { 1095, "gu", "Gujarati" }, ;
                  { 1128, "ha", "Hausa - Nigeria" }, ;
                  { 1141, "None", "Hawaiian - United States" }, ;
                  { 1037, "he", "Hebrew" }, ;
                  { 1081, "hi", "Hindi" }, ;
                  { 1038, "hu", "Hungarian" }, ;
                  { 1129, "None", "Ibibio - Nigeria" }, ;
                  { 1039, "is", "Icelandic" }, ;
                  { 1136, "ig", "Igbo - Nigeria" }, ;
                  { 1057, "id", "Indonesian" }, ;
                  { 1117, "iu", "Inuktitut" }, ;
                  { 1040, "it", "Italian - Italy" }, ;
                  { 2064, "it", "Italian - Switzerland" }, ;
                  { 1041, "ja", "Japanese" }, ;
                  { 1099, "kn", "Kannada" }, ;
                  { 1137, "kr", "Kanuri - Nigeria" }, ;
                  { 2144, "ks", "Kashmiri" }, ;
                  { 1120, "ks", "Kashmiri (Arabic)" }, ;
                  { 1087, "kk", "Kazakh" }, ;
                  { 1107, "km", "Khmer" }, ;
                  { 1111, "None", "Konkani" }, ;
                  { 1042, "ko", "Korean" }, ;
                  { 1088, "ky", "Kyrgyz (Cyrillic)" }, ;
                  { 1108, "lo", "Lao" }, ;
                  { 1142, "la", "Latin" }, ;
                  { 1062, "lv", "Latvian" }, ;
                  { 1063, "lt", "Lithuanian" }, ;
                  { 1086, "ms", "Malay - Malaysia" }, ;
                  { 2110, "ms", "Malay - Brunei Darussalam" }, ;
                  { 1100, "ml", "Malayalam" }, ;
                  { 1082, "mt", "Maltese" }, ;
                  { 1112, "None", "Manipuri" }, ;
                  { 1153, "mi", "Maori - New Zealand" }, ;
                  { 1102, "mr", "Marathi" }, ;
                  { 1104, "mn", "Mongolian (Cyrillic)" }, ;
                  { 2128, "mn", "Mongolian (Mongolian)" }, ;
                  { 1121, "ne", "Nepali" }, ;
                  { 2145, "ne", "Nepali - India" }, ;
                  { 1044, "no", "Norwegian" }, ;
                  { 2068, "no", "Norwegian (Nynorsk)" }, ;
                  { 1096, "or", "Oriya" }, ;
                  { 1138, "om", "Oromo" }, ;
                  { 1145, "None", "Papiamentu" }, ;
                  { 1123, "ps", "Pashto" }, ;
                  { 1045, "pl", "Polish" }, ;
                  { 1046, "pt", "Portuguese - Brazil" }, ;
                  { 2070, "pt", "Portuguese - Portugal" }, ;
                  { 1094, "pa", "Punjabi" }, ;
                  { 2118, "pa", "Punjabi (Pakistan" }, ;
                  { 1131, "qu", "Quecha - Bolivia" }, ;
                  { 2155, "qu", "Quecha - Ecuador" }, ;
                  { 3179, "qu", "Quecha - Peru" }, ;
                  { 1047, "rm", "Rhaeto-Romanic" }, ;
                  { 1048, "ro", "Romanian" }, ;
                  { 2072, "ro", "Romanian - Moldava" }, ;
                  { 1049, "ru", "Russian" }, ;
                  { 2073, "ru", "Russian - Moldava" }, ;
                  { 1083, "None", "Sami (Lappish)" }, ;
                  { 1103, "sa", "Sanskrit" }, ;
                  { 1132, "None", "Sepedi" }, ;
                  { 3098, "sr", "Serbian (Cyrillic)" }, ;
                  { 2074, "sr", "Serbian (Latin)" }, ;
                  { 1113, "sd", "Sindhi - India" }, ;
                  { 2137, "sd", "Sindhi - Pakistan " }, ;
                  { 1115, "si", "Sinhalese - Sri Lanka" }, ;
                  { 1051, "sk", "Slovak" }, ;
                  { 1060, "sl", "Slovenian" }, ;
                  { 1143, "so", "Somali" }, ;
                  { 1070, "None", "Sorbian" }, ;
                  { 3082, "es", "Spanish - Spain (Modern Sort)" }, ;
                  { 1034, "es", "Spanish - Spain (Traditional Sort)" }, ;
                  { 11274, "es", "Spanish - Argentina" }, ;
                  { 16394, "es", "Spanish - Bolivia" }, ;
                  { 13322, "es", "Spanish - Chile" }, ;
                  { 9226, "es", "Spanish - Colombia" }, ;
                  { 5130, "es", "Spanish - Costa Rica" }, ;
                  { 7178, "es", "Spanish - Dominican Republic" }, ;
                  { 12298, "es", "Spanish - Ecuador" }, ;
                  { 17418, "es", "Spanish - El Salvador" }, ;
                  { 4106, "es", "Spanish - Guatemala" }, ;
                  { 18442, "es", "Spanish - Honduras" }, ;
                  { 58378, "es", "Spanish - Latin America" }, ;
                  { 2058, "es", "Spanish - Mexico" }, ;
                  { 19466, "es", "Spanish - Nicaragua" }, ;
                  { 6154, "es", "Spanish - Panama" }, ;
                  { 15370, "es", "Spanish - Paraguay" }, ;
                  { 10250, "es", "Spanish - Peru" }, ;
                  { 20490, "es", "Spanish - Puerto Rico" }, ;
                  { 21514, "es", "Spanish - United States" }, ;
                  { 14346, "es", "Spanish - Uruguay" }, ;
                  { 8202, "es", "Spanish - Venezuela" }, ;
                  { 1072, "None", "Sutu" }, ;
                  { 1089, "sw", "Swahili" }, ;
                  { 1053, "sv", "Swedish" }, ;
                  { 2077, "sv", "Swedish - Finland" }, ;
                  { 1114, "None", "Syriac" }, ;
                  { 1064, "tg", "Tajik" }, ;
                  { 1119, "None", "Tamazight (Arabic)" }, ;
                  { 2143, "None", "Tamazight (Latin)" }, ;
                  { 1097, "ta", "Tamil" }, ;
                  { 1092, "tt", "Tatar" }, ;
                  { 1098, "te", "Telugu" }, ;
                  { 1054, "th", "Thai" }, ;
                  { 2129, "bo", "Tibetan - Bhutan" }, ;
                  { 1105, "bo", "Tibetan - People's Republic of China" }, ;
                  { 2163, "ti", "Tigrigna - Eritrea" }, ;
                  { 1139, "ti", "Tigrigna - Ethiopia" }, ;
                  { 1073, "ts", "Tsonga" }, ;
                  { 1074, "tn", "Tswana" }, ;
                  { 1055, "tr", "Turkish" }, ;
                  { 1090, "tk", "Turkmen" }, ;
                  { 1152, "ug", "Uighur - China" }, ;
                  { 1058, "uk", "Ukrainian" }, ;
                  { 1056, "ur", "Urdu" }, ;
                  { 2080, "ur", "Urdu - India" }, ;
                  { 2115, "uz", "Uzbek (Cyrillic)" }, ;
                  { 1091, "uz", "Uzbek (Latin)" }, ;
                  { 1075, "ve", "Venda" }, ;
                  { 1066, "vi", "Vietnamese" }, ;
                  { 1106, "cy", "Welsh" }, ;
                  { 1076, "xh", "Xhosa" }, ;
                  { 1144, "None", "Yi" }, ;
                  { 1085, "yi", "Yiddish" }, ;
                  { 1130, "yo", "Yoruba" }, ;
                  { 1077, "zu", "Zulu" }}

   nLang := GetUserDefaultUILanguage()

   If n == Nil .or. n > 3
      Return nLang
   EndIf

   nScan := AScan( aLang, { |x| x[ 1 ] == nLang } )

   If nScan == 0
      If n == 1
         Return 0
      Else
         Return ""
      EndIf
   EndIf

Return aLang[ nScan, n ]

#pragma BEGINDUMP

#include <windows.h>
#include <hbapi.h>

HB_FUNC( GETUSERDEFAULTUILANGUAGE )
{
   hb_retnl( GetUserDefaultUILanguage( ) ) ;
}

#pragma ENDDUMP
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder