Jump to content
Son zamanlarda artan kullanıcı hesap hırsızlıkları sebebiyle tüm kullanıcılara şifre sıfırlama maili gönderilmiştir. Lütfen güveli şifreler seçiniz. Mevcut e-mail adresinize erişemiyorsanız, en aşağıdaki destek linkinden bize ulaşınız. ×

_Setlanguage


blackman12
 Share

Recommended Posts

Evet gecenin 1inde oturdum bu fonksiyonu yazdım arkadaşlar. işinizi hayli kolaylaştırabilecek bir fonksiyon. Bir örneği paylaşıyorum aşağıda kullanım alanları geniştir. size düşen bu alanları keşfetmek:

[code]Global $dildosyasi = "lang.ini"
$gui = GUICreate("",500,500)
$combo = GUICtrlCreateCombo("",20,20,100,20,0x0003)
$button = GUICtrlCreateButton("tamam",20,50,100,25)
$label = GUICtrlCreateLabel("",20,90,100,20)
$input = GUICtrlCreateInput("",20,120,100,21)
$buton2 = GUICtrlCreateButton("",20,150,100,25)
;
$lang = _RegOku("lang","Türkçe")
$dilgetir = _SetLanguage($lang)
GUICtrlSetData($combo,_SetLanguage($lang,0),$lang)
GUICtrlSetData($label,$dilgetir[1])
GUICtrlSetData($input,$dilgetir[2])
GUICtrlSetData($buton2,$dilgetir[3])
WinSetTitle($gui,"",$dilgetir[4])
;
GUISetState()

While 1
$nmsg = GUIGetMsg()
Switch $nmsg
Case -3
Exit
Case $button
RegWrite("HKEY_CURRENT_USER\Software\HavvaDurumu\Dil","lang","REG_SZ",GUICtrlRead($combo))
$yenile = _SetLanguage(GUICtrlRead($combo))
GUICtrlSetData($label,$yenile[1])
GUICtrlSetData($input,$yenile[2])
GUICtrlSetData($buton2,$yenile[3])
WinSetTitle($gui,"",$yenile[4])
EndSwitch
WEnd



Func _SetLanguage($dil,$flag = 1)
Local $dilvar = 0, $return[1] = [0], $diller = ""
if FileExists($dildosyasi) Then
$dilvarmi = IniReadSectionNames($dildosyasi)
if Not @error Then
if $flag Then
for $i = 1 to $dilvarmi[0]
if $dilvarmi[$i] = $dil Then
$dilvar = 1
ExitLoop
EndIf
Next
if $dilvar = 0 Then
SetError(3)
Return -3
Else
$deger = IniRead($dildosyasi,"t","deger",3)
ReDim $return[$deger+2]
$return[0] = $deger+1
if Not @error Then
for $i = 1 to $deger+1
$return[$i] = IniRead($dildosyasi,$dil,$i-1,"")
Next
SetError(0)
Return $return
Else
SetError(4)
Return -4
EndIf
EndIf
Else
for $i = 1 to $dilvarmi[0]
if $dilvarmi[$i] <> "t" Then $diller &= $dilvarmi[$i] & "|"
Next
Return $diller
EndIf
Else
SetError(2)
Return -2
EndIf
Else
SetError(1)
Return -1
EndIf
EndFunc

Func _RegOku($Ad,$Deger,$iStr = 1)
$Degisken = RegRead("HKEY_CURRENT_USER\Software\HavvaDurumu\Dil",$Ad)
If $Degisken = "" Then
if $iStr = 0 Then $Deger = Number($Deger)
RegWrite("HKEY_CURRENT_USER\Software\HavvaDurumu\Dil",$Ad,"REG_SZ",$Deger)
$Degisken = $Deger
Else
if $iStr = 0 Then $Degisken = Number($Degisken)
EndIf
Return $Degisken
EndFunc[/code]

lang.ini içeriği:

[code][t]
deger=3

[Spanish]
0=hola
1=este
2=experimento
3=el tutilo de esta

[Italian]
0=ciao
1=quesot
2=esperimento
3=il titolo di questo

[Türkçe]
0=merhaba
1=bu bir
2=deneme
3=bu da başlık

[English]
0=welcome
1=this is an
2=experiment
3=this is a title

[Russian]
0=??????
1=????
2=???????????
3=????? ? ???? ???????

[French]
0=bonjour
1=cette
2=exprience
3=le titre de cette[/code]
Link to comment
Share on other sites

Örneği biraz daha geliştirdim ve daha işlevsel bir hale getirdim:

[codebox]Global $dildosyasi = "lang.ini"
Dim $nesneler[4]
$nesneler[0] = GUICreate("",500,500)
$combo = GUICtrlCreateCombo("",20,20,100,20,0x0003)
$button = GUICtrlCreateButton("tamam",20,50,100,25)
$nesneler[1] = GUICtrlCreateLabel("",20,90,100,20)
$nesneler[2] = GUICtrlCreateInput("",20,120,100,21)
$nesneler[3] = GUICtrlCreateButton("",20,150,100,25)
;
$lang = _RegOku("lang","Türkçe")
GUICtrlSetData($combo,_SetLanguage($lang,0),$lang)
_DiliYerlestir($nesneler)
;
GUISetState()

While 1
$nmsg = GUIGetMsg()
Switch $nmsg
Case -3
Exit
Case $button
RegWrite("HKEY_CURRENT_USER\Software\HavvaDurumu\Dil","lang","REG_SZ",GUICtrlRead($combo))
_DiliYerlestir($nesneler)
EndSwitch
WEnd

Func _DiliYerlestir(ByRef $aArray)
if not IsArray($aArray) Then Return -1
$dilial = _RegOku("lang","Türkçe")
$dilgetir = _SetLanguage($dilial)
if Not @error Then
for $i = 0 to UBound($aArray)-1
if WinExists($aArray[$i]) Then
WinSetTitle($aArray[$i],"",$dilgetir[$i+1])
Else
GUICtrlSetData($aArray[$i],$dilgetir[$i+1])
EndIf
Next
Else
SetError(1)
Return -2
EndIf
EndFunc

Func _SetLanguage($dil,$flag = 1)
Local $dilvar = 0, $return[1] = [0], $diller = ""
if FileExists($dildosyasi) Then
$dilvarmi = IniReadSectionNames($dildosyasi)
if Not @error Then
if $flag Then
for $i = 1 to $dilvarmi[0]
if $dilvarmi[$i] = $dil Then
$dilvar = 1
ExitLoop
EndIf
Next
if $dilvar = 0 Then
SetError(3)
Return -3
Else
$deger = IniRead($dildosyasi,"t","deger",3)
ReDim $return[$deger+2]
$return[0] = $deger+1
if Not @error Then
for $i = 1 to $deger+1
$return[$i] = IniRead($dildosyasi,$dil,$i-1,"")
Next
SetError(0)
Return $return
Else
SetError(4)
Return -4
EndIf
EndIf
Else
for $i = 1 to $dilvarmi[0]
if $dilvarmi[$i] <> "t" Then $diller &= $dilvarmi[$i] & "|"
Next
Return $diller
EndIf
Else
SetError(2)
Return -2
EndIf
Else
SetError(1)
Return -1
EndIf
EndFunc

Func _RegOku($Ad,$Deger,$iStr = 1)
$Degisken = RegRead("HKEY_CURRENT_USER\Software\HavvaDurumu\Dil",$Ad)
If $Degisken = "" Then
if $iStr = 0 Then $Deger = Number($Deger)
RegWrite("HKEY_CURRENT_USER\Software\HavvaDurumu\Dil",$Ad,"REG_SZ",$Deger)
$Degisken = $Deger
Else
if $iStr = 0 Then $Degisken = Number($Degisken)
EndIf
Return $Degisken
EndFunc[/codebox]

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...