Jump to content

[مساعدة]: ملف


Recommended Posts

السلام عليكم ورحمة الله وبركاته
اخباركم؟
 

DisplayName ={"Arabic","English","French","German","Korean","Romanian"}
theElement = {}

function setLanguageText(theElement,...)
 for n, k in pairs(theElement) do
  local hFile = fileOpen(DisplayName..".lng", true)  
  local text = tostring(n)
  _G [ n ] = loadstring (hFile)
  fileWrite(hFile, text,... ) 
  setElementData (n,"language:gui",...)
 end
end

function getLanguageText(text,DisplayName)
	if getElementData (text,"language:gui") then
	setLanguageText(text,DisplayName)
	end
	return setLanguageText(text,DisplayName)
end


--Example
addEventHandler ("onClientResourceStart",resourceRoot,function()
	local screenWidth, screenHeight = guiGetScreenSize()
	local windowWidth, windowHeight = 200,100
	local left = screenWidth/2 - windowWidth/2
	local top = screenHeight/2 - windowHeight/2
	local languagesComboBox = guiCreateComboBox ( left, top, windowWidth,windowHeight, "Languages", false ) 
		for n, k in type("-gui" )do
		guiComboBoxAddItem ( languageComboBox, guiGetText(getLanguageText(n,"Arabic")) ) 
		guiComboBoxAddItem ( languageComboBox, guiGetText(getLanguageText(n,"English")) ) 
		guiComboBoxAddItem ( languageComboBox, guiGetText(getLanguageText(n,"German")) ) 
		end
			if guiComboBoxGetSelected(languagesComboBox)then
			local button = guiCreateButton( 50, 80, 100, 100, "كبار شخصيات", false )
			end
end)

افتح ملف Arabic.lng

button = "كبار شخصيات"

and

English.lng

button = "VIP"

 

Link to comment

مافهمتك,

تبي لما يختار عربي يصير عربي

ولما يختار انجليزي يصير انجليزي !.

 addEventHandler("onClientGUIDoubleClick", root,
function ()
    if source == languagesComboBox then
        local comboboxxx = guiComboBoxGetSelected(languagesComboBox)
        if comboboxxx == 0 then ---- انجليزي
        guiSetText(Button,"Text")
	elseif comboboxxx == 1 then --- عربي
	guiSetText(Button,"نص") 
    end
end
end
 )

 

واذا هي بـ الالمنت داتا

استخدم جلب الالمنت داتا او استخدم الـ 

useful function

Edited by Abu-Solo
  • Like 1
Link to comment
18 minutes ago, Abu-Solo said:

مافهمتك,

تبي لما يختار عربي يصير عربي

ولما يختار انجليزي يصير انجليزي !.


 addEventHandler("onClientGUIDoubleClick", root,
function ()
    if source == languagesComboBox then
        local comboboxxx = guiComboBoxGetSelected(languagesComboBox)
        if comboboxxx == 0 then ---- انجليزي
        guiSetText(Button,"Text")
	elseif comboboxxx == 1 then --- عربي
	guiSetText(Button,"نص") 
    end
end
end
 )

 

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

Link to comment
1 hour ago, medo7 said:

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

ماتعرف تترجم؟

استخدم مترجم قوقل,

Link to comment
2 hours ago, Abu-Solo said:

ماتعرف تترجم؟

استخدم مترجم قوقل,

انا اقصد انه معايا الملف بس مو عارف كيف افتحه

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

Link to comment
13 hours ago, medo7 said:

انا اقصد انه معايا الملف بس مو عارف كيف افتحه

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

جرب تجيب الحدث حق اللغه من المود نفسه

getElementData

Link to comment
13 hours ago, medo7 said:

انا اقصد انه معايا الملف بس مو عارف كيف افتحه

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

حط جدول بأول سطر

كمثال كذا :
 

languages = {}

وعند كل ملف سوي كذا
كمثال مثلاً داخل ملف اللغة العربية :
 

languages["arabic"] = { } -- example .-.

وعشان تعرف الكلمات سوي كذا 
 

languages["arabic"] = {
	button = "كبار الشخصيات"
}

واذا تبي تجيب اي كلمة سوي كذا
 

local lang = getElementData ( localPlayer, "lang" ) or "arabic"			
local button = guiCreateButton( 50, 80, 100, 100, languages[arabic]['button'], false )

وعشان يغير اللغة حط الحدث كذا 
 

addEventHandler ( "onClientGUIComboBoxAccepted", root,
	function ( comboBox )
			local item = guiComboBoxGetSelected ( Combo )
            local text = tostring ( guiComboBoxGetItemText ( Combo , item ) )
            if ( text ~= "" ) then
                 setElementData ( localPlayer, "lang", string.lower ( text ) )
            end
	end
)

 

  • Like 1
Link to comment

 

function onDataChange(data)
    if source == localPlayer and data == "lang" then -- اسم الداتا للغة الاعب
        local file = File(source:getData "lang" ..".lng", true)
        local data = file:read(file.size) 
        for var, text in data:gmatch "([%a_][_%w]*)%s*=%s*(\"(.*)\")" do
            local elem = _G[var]
            if isElement(elem)  then
                -- وضع النص للعنصر
                elem.text = text
            end
        end
    end
end

* بعض العناصر لها وظيفة اخرى لتغير النص مثل القريد ليست 

* العناصر اللي تصنع بعد تغير الداتا لن يتغير لها

* الطريقة قد تستهلك الذاكرة والمعالج اذا كان الملف كبير

* قد لاتنفع للعناصر خارج السكربت الحالي

* onDataChange ضع حدث تغير الداتا ل

وعندي ملاحظات اخرى مدري كيف اشرحها اهم شي الفكرة العامة وصلت

Edited by </Mr.Tn6eL>
  • Like 3
Link to comment


 

function createNewResource (resourceName)
        local newResource = createResource ( tostring ( ":vip/"..resourceName  )) -- Create the new resource.
                addResourceConfig(newResource, "client")
                triggerClientEvent ( resourceName, "onDataLang", resourceName)
end
addEventHandler("onResourceStart",getResourceRootElement(),createNewResource)

function renameResource(newResource,textLang) -- Renames a resource.
    renameResource(newResource,textLang)
end
addEventHandler("onResourceStart", resourceRoot, renameResource)
addEvent( "onRenameResource", true )
addEventHandler( "onRenameResource", resourceRoot, renameResource)

 

Link to comment
On 10/29/2017 at 20:11, </Mr.Tn6eL> said:

مافي طريقة محدد لكن اتوقع طريقة تنجح


function Folder(folder_name)
    local file = File.new(folder_name.."/file")
    if file then
      file:close()
      File.delete(folder_name.."/file")
    end
end

 

ممتاز ..، ظبطتت معي متشكر أخي:x

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...