From a97d7a737240f74097719e5ec7d960e410f83e4a Mon Sep 17 00:00:00 2001 From: Mycroft Date: Fri, 26 Aug 2022 17:07:17 +0100 Subject: [PATCH] feat: esx_property: furniture translations --- .../esx_property/client/furniture.lua | 68 +++++++++---------- [esx_addons]/esx_property/client/main.lua | 36 +++++----- [esx_addons]/esx_property/locales/en.lua | 38 ++++++++++- [esx_addons]/esx_property/server/main.lua | 2 +- 4 files changed, 90 insertions(+), 54 deletions(-) diff --git a/[esx_addons]/esx_property/client/furniture.lua b/[esx_addons]/esx_property/client/furniture.lua index 4e5ee7c3..1d718e2d 100644 --- a/[esx_addons]/esx_property/client/furniture.lua +++ b/[esx_addons]/esx_property/client/furniture.lua @@ -89,40 +89,40 @@ if Config.Furniture.Enabled then PushScaleformMovieFunctionParameterInt(1) N_0xe83a3e3557a56640(GetControlInstructionalButton(1, Config.Furniture.Controls.MinusX, true)) N_0xe83a3e3557a56640(GetControlInstructionalButton(1, Config.Furniture.Controls.PlusX, true)) - InstructionButtonMessage("X Axis") + InstructionButtonMessage(_U("rot_left_right")) PopScaleformMovieFunctionVoid() PushScaleformMovieFunction(scaleform, "SET_DATA_SLOT") PushScaleformMovieFunctionParameterInt(3) N_0xe83a3e3557a56640(GetControlInstructionalButton(1, Config.Furniture.Controls.MinusY, true)) N_0xe83a3e3557a56640(GetControlInstructionalButton(1, Config.Furniture.Controls.PlusY, true)) - InstructionButtonMessage("Y axis") + InstructionButtonMessage(_U("rot_up_down")) PopScaleformMovieFunctionVoid() PushScaleformMovieFunction(scaleform, "SET_DATA_SLOT") PushScaleformMovieFunctionParameterInt(5) N_0xe83a3e3557a56640(GetControlInstructionalButton(1, Config.Furniture.Controls.Up, true)) N_0xe83a3e3557a56640(GetControlInstructionalButton(1, Config.Furniture.Controls.Down, true)) - InstructionButtonMessage("Height") + InstructionButtonMessage(_U("Height")) PopScaleformMovieFunctionVoid() PushScaleformMovieFunction(scaleform, "SET_DATA_SLOT") PushScaleformMovieFunctionParameterInt(7) N_0xe83a3e3557a56640(GetControlInstructionalButton(1, Config.Furniture.Controls.RotateLeft, true)) N_0xe83a3e3557a56640(GetControlInstructionalButton(1, Config.Furniture.Controls.RotateRight, true)) - InstructionButtonMessage("Rotation") + InstructionButtonMessage(_U("Rotation")) PopScaleformMovieFunctionVoid() PushScaleformMovieFunction(scaleform, "SET_DATA_SLOT") PushScaleformMovieFunctionParameterInt(9) N_0xe83a3e3557a56640(GetControlInstructionalButton(1, Config.Furniture.Controls.Confirm, true)) - InstructionButtonMessage("Place Furniture") + InstructionButtonMessage(_U("place")) PopScaleformMovieFunctionVoid() PushScaleformMovieFunction(scaleform, "SET_DATA_SLOT") PushScaleformMovieFunctionParameterInt(0) N_0xe83a3e3557a56640(GetControlInstructionalButton(1, Config.Furniture.Controls.Exit, true)) - InstructionButtonMessage("Delete") + InstructionButtonMessage(_U("delete_furni")) PopScaleformMovieFunctionVoid() PushScaleformMovieFunction(scaleform, "DRAW_INSTRUCTIONAL_BUTTONS") @@ -221,17 +221,17 @@ if Config.Furniture.Enabled then if IsControlJustPressed(0, Config.Furniture.Controls.Confirm) then if not Existing then ESX.OpenContext("right", - {{unslectable = true, title = "Do you want to buy " .. Config.FurnitureCatagories[PropCatagory][PropIndex].title .. "?", - description = "Price: $" .. Config.FurnitureCatagories[PropCatagory][PropIndex].price, icon = "fas fa-shopping-cart"}, - {title = "Yes", value = "buy", icon = "fas fa-check"}, {title = "No", icon = "fas fa-minus"}}, function(menu, element) + {{unslectable = true, title = _U("confirm_buy",Config.FurnitureCatagories[PropCatagory][PropIndex].title), + description = _U("price",Config.FurnitureCatagories[PropCatagory][PropIndex].price), icon = "fas fa-shopping-cart"}, + {title = _U("yes"), value = "buy", icon = "fas fa-check"}, {title = _U("no"), icon = "fas fa-minus"}}, function(menu, element) if element.value and element.value == "buy" then ESX.TriggerServerCallback("esx_property:buyFurniture", function(response) if response then DeleteEntity(CurrentlyEditing) - ESX.ShowNotification("You Bought ~b~" .. Config.FurnitureCatagories[PropCatagory][PropIndex].title .. "~s~!", "success") + ESX.ShowNotification(_U("bought_furni", Config.FurnitureCatagories[PropCatagory][PropIndex].title), "success") ESX.CloseContext() else - ESX.ShowNotification("You ~r~Cannot~s~ Buy This Furniture", "error") + ESX.ShowNotification(_U("cannot_buy"), "error") end end, CurrentId, PropName, PropIndex, PropCatagory, vector3(CurrentPos.x, CurrentPos.y, CurrentPos.z), CurrentHeading) end @@ -240,10 +240,10 @@ if Config.Furniture.Enabled then ESX.TriggerServerCallback("esx_property:editFurniture", function(response) if response then DeleteEntity(CurrentlyEditing) - ESX.ShowNotification("You Edited ~b~" .. Config.FurnitureCatagories[PropCatagory][PropPrice].title .. "~s~!", "success") + ESX.ShowNotification(_U("edited_furni"), "success") ESX.CloseContext() else - ESX.ShowNotification("You ~r~Cannot~s~ Edit This Furniture", "error") + ESX.ShowNotification(_U("cannot_edit"), "error") end end, CurrentId, PropIndex, vector3(CurrentPos.x, CurrentPos.y, CurrentPos.z), CurrentHeading) end @@ -263,8 +263,8 @@ if Config.Furniture.Enabled then end function FurnitureItems(house, Store, StoreIndex, Catagory) - local Items = {{unselectable = true, title = Store .. " Store - " .. Catagory, icon = "fas fa-store"}, - {title = "Go Back", value = "go-back", icon = "fas fa-arrow-left"}} + local Items = {{unselectable = true, title = _U("store_title", Catagory), icon = "fas fa-store"}, + {title = _U("back"), value = "go-back", icon = "fas fa-arrow-left"}} for k, v in pairs(Config.FurnitureCatagories[Catagory]) do table.insert(Items, {title = v.title, value = v.name, index = k, description = "Price: " .. v.price, icon = "fas fa-shopping-cart"}) @@ -280,8 +280,8 @@ if Config.Furniture.Enabled then end function FurnitureCatagories(house, Store, StoreIndex) - local Catagories = {{unselectable = true, title = Store .. " Store", icon = "fas fa-store"}, - {title = "Go Back", value = "go-back", icon = "fas fa-arrow-left"}} + local Catagories = {{unselectable = true, title = _U("store_title", Store), icon = "fas fa-store"}, + {title = _U("back"), value = "go-back", icon = "fas fa-arrow-left"}} for k, v in pairs(Config.FurnitureStores[StoreIndex].Catagories) do table.insert(Catagories, {title = v}) @@ -299,9 +299,9 @@ if Config.Furniture.Enabled then function FurnitureEdit(propertyId, furniture) local furni = SpawnedFurniture[furniture] local Funiture = Config.FurnitureCatagories[furni.data.Catagory][furni.data.Index] - local Catagories = {{unselectable = true, title = "Edit " .. Funiture.title, icon = "fas fa-store"}, - {title = "Go Back", value = "go-back", icon = "fas fa-arrow-left"}, - {title = "Move", value = "rotate", icon = "fas fa-sync-alt"}, {title = "Delete", value = "delete", icon = "fas fa-trash-alt"}} + local Catagories = {{unselectable = true, title = _U("edit_title",Funiture.title), icon = "fas fa-store"}, + {title = _U("back"), value = "go-back", icon = "fas fa-arrow-left"}, + {title = _U("move_title"), value = "rotate", icon = "fas fa-sync-alt"}, {title = _U("delete_furni"), value = "delete", icon = "fas fa-trash-alt"}} ESX.OpenContext("right", Catagories, function(data, element) if element.value == "go-back" then @@ -310,10 +310,10 @@ if Config.Furniture.Enabled then if element.value == "delete" then ESX.TriggerServerCallback("esx_property:deleteFurniture", function(response) if response then - ESX.ShowNotification("You Deleted ~b~" .. Funiture.title .. "~s~!", "success") + ESX.ShowNotification(_U("delete_confirm", Funiture.title), "success") FurnitureEditSelect(propertyId) else - ESX.ShowNotification("You ~r~Cannot~s~ Delete This Furniture", "error") + ESX.ShowNotification(_U("delete_error", Funiture.title), "error") end end, propertyId, furniture) end @@ -325,8 +325,8 @@ if Config.Furniture.Enabled then end function FurnitureEditSelect(propertyId) - local Furni = {{unselectable = true, title = "Owned Furniture", icon = "far fa-edit"}, - {title = "Go Back", value = "go-back", icon = "fas fa-arrow-left"}} + local Furni = {{unselectable = true, title = _U("owned_furni"), icon = "far fa-edit"}, + {title = _U("back"), value = "go-back", icon = "fas fa-arrow-left"}} for k, v in pairs(SpawnedFurniture) do local Funiture = Config.FurnitureCatagories[v.data.Catagory][v.data.Index] @@ -343,8 +343,8 @@ if Config.Furniture.Enabled then end function FurnitureStores(house) - local Options = {{unselectable = true, title = "Furniture Stores", icon = "fas fa-store"}, - {title = "Go Back", value = "go-back", icon = "fas fa-arrow-left"}} + local Options = {{unselectable = true, title = _U("menu_stores"), icon = "fas fa-store"}, + {title = _U("back"), value = "go-back", icon = "fas fa-arrow-left"}} for k, v in pairs(Config.FurnitureStores) do table.insert(Options, {title = v.title, Store = k}) @@ -360,12 +360,12 @@ if Config.Furniture.Enabled then end function FurnitureMenu(PropertyId) - local Options = {{unselectable = true, title = "Furniture Management", icon = "fas fa-lamp"}, - {title = "Furniture Shop", description = "Buy Furniture", icon = "fas fa-dollar-sign", value = "store"}} + local Options = {{unselectable = true, title = _U("furni_management"), icon = "fas fa-lamp"}, + {title = _U("menu_stores"), description = _U("menu_stores_desc"), icon = "fas fa-dollar-sign", value = "store"}} if #SpawnedFurniture > 0 then - Options[#Options + 1] = {title = "Reset", description = "Clears All Furniture", icon = "fas fa-trash", value = "reset"} - Options[#Options + 1] = {title = "Edit", description = "Move and/or Delete furniture items", icon = "fas fa-archive", value = "edit"} + Options[#Options + 1] = {title = _U("menu_reset"), description = _U("menu_reset_desc"), icon = "fas fa-trash", value = "reset"} + Options[#Options + 1] = {title = _U("menu_edit"), description = _U("menu_edit_desc"), icon = "fas fa-archive", value = "edit"} end ESX.OpenContext("right", Options, function(data, element) @@ -377,9 +377,9 @@ if Config.Furniture.Enabled then elseif element.value == "reset" then ESX.TriggerServerCallback("esx_property:RemoveAllfurniture", function(Removed) if Removed then - ESX.ShowNotification("Furniture Reset!", "success") + ESX.ShowNotification(_U("furni_reset_success"), "success") else - ESX.ShowNotification("You Cannot Reset This Property!", "error") + ESX.ShowNotification(_U("furni_reset_error"), "error") end end, PropertyId) end @@ -387,7 +387,7 @@ if Config.Furniture.Enabled then end) end - ESX.RegisterInput("furniture", "(ESX Property) Open Furniture Menu", "keyboard", "M", function() + ESX.RegisterInput(_U("furni_command"), _U("furni_command_desc"), "keyboard", "M", function() if InProperty then ESX.TriggerServerCallback('esx_property:CanOpenFurniture', function(Access) if Access then @@ -397,7 +397,7 @@ if Config.Furniture.Enabled then FurnitureStores(CurrentId) end else - ESX.ShowNotification("You ~r~Cannot~s~ Access This Menu!", 5000, "error") + ESX.ShowNotification(_U("furni_command_permission"), 5000, "error") end end, CurrentId) else diff --git a/[esx_addons]/esx_property/client/main.lua b/[esx_addons]/esx_property/client/main.lua index e056579c..73eedd5a 100644 --- a/[esx_addons]/esx_property/client/main.lua +++ b/[esx_addons]/esx_property/client/main.lua @@ -155,7 +155,7 @@ end function GiveKeysMenu(Property) ESX.TriggerServerCallback("esx_property:GetInsidePlayers", function(Players) local Elements = {{unselectable = true, title = "Nearby Players", icon = "fas fa-user-plus"}, - {title = "Go Back", icon = "fas fa-arrow-left", value = "go_back"}} + {title = _U("back"), icon = "fas fa-arrow-left", value = "go_back"}} for i = 1, #Players, 1 do Elements[#Elements + 1] = {title = Players[i].Name, icon = "far fa-user", index = Players[i].Id, value = "user"} end @@ -179,7 +179,7 @@ end function RemoveKeysMenu(Property) ESX.TriggerServerCallback("esx_property:GetPlayersWithKeys", function(Players) local Elements = {{unselectable = true, title = "Remove Key From Player", icon = "fas fa-user-plus"}, - {title = "Go Back", icon = "fas fa-arrow-left", value = "go_back"}} + {title = _U("back"), icon = "fas fa-arrow-left", value = "go_back"}} for k, v in pairs(Players) do local name = v.name local Id = k @@ -205,7 +205,7 @@ end function ManageKeys(Property) ESX.HideUI() local Elements = {{unselectable = true, title = "Key Management", icon = "fas fa-key"}, - {title = "Go Back", icon = "fas fa-arrow-left", value = "go_back"}, + {title = _U("back"), icon = "fas fa-arrow-left", value = "go_back"}, {title = "Give Keys", icon = "fas fa-plus", value = "give_keys"}, {title = "Remove Keys", icon = "fas fa-minus", value = "remove_keys"}} @@ -1016,7 +1016,7 @@ RegisterNetEvent("esx_property:CreateProperty", function() description = "Current Status: " .. status, index = "ToggleCCTV"}, {title = "Set Angle", icon = "fas fa-rotate", disabled = not Property[6].value.enabled, description = "Sets the Camera angle to your Cameras Direction", index = "SetCCTVangle"}, - {title = "Go Back", icon = "fas fa-arrow-left", description = "return to property creation.", index = "return"}} + {title = _U("back"), icon = "fas fa-arrow-left", description = "return to property creation.", index = "return"}} exports["esx_context"]:Refresh(opos, "right") end if element.index == "ToggleCCTV" then @@ -1027,7 +1027,7 @@ RegisterNetEvent("esx_property:CreateProperty", function() description = "Current Status: " .. status, index = "ToggleCCTV"}, {title = "Set Angle", icon = "fas fa-rotate", disabled = not Property[6].value.enabled, description = "Sets the Camera angle to your Cameras Direction", index = "SetCCTVangle"}, - {title = "Go Back", icon = "fas fa-arrow-left", description = "return to property creation.", index = "return"}} + {title = _U("back"), icon = "fas fa-arrow-left", description = "return to property creation.", index = "return"}} exports["esx_context"]:Refresh(opos, "right") end if Config.Garage.Enabled and element.index == "garage" then @@ -1039,10 +1039,10 @@ RegisterNetEvent("esx_property:CreateProperty", function() opos[#opos + 1] = {title = "Set Position", icon = "fas fa-map-marker-alt", disabled = not Property[5].value.enabled, description = "Sets the Camera angle to your Cameras Direction", index = "SetGaragePos"} if Property[5].value.pos then - opos[#opos + 1] = {title = "Go Back", icon = "fas fa-arrow-left", description = "return to property creation.", index = "return"} + opos[#opos + 1] = {title = _U("back"), icon = "fas fa-arrow-left", description = "return to property creation.", index = "return"} end else - opos[#opos + 1] = {title = "Go Back", icon = "fas fa-arrow-left", description = "return to property creation.", index = "return"} + opos[#opos + 1] = {title = _U("back"), icon = "fas fa-arrow-left", description = "return to property creation.", index = "return"} end exports["esx_context"]:Refresh(opos, "right") end @@ -1056,7 +1056,7 @@ RegisterNetEvent("esx_property:CreateProperty", function() opos[#opos + 1] = {title = "Set Position", icon = "fas fa-map-marker-alt", disabled = not Property[5].value.enabled, description = "Sets the Camera angle to your Cameras Direction", index = "SetGaragePos"} else - opos[#opos + 1] = {title = "Go Back", icon = "fas fa-arrow-left", description = "return to property creation.", index = "return"} + opos[#opos + 1] = {title = _U("back"), icon = "fas fa-arrow-left", description = "return to property creation.", index = "return"} end exports["esx_context"]:Refresh(opos, "right") end @@ -1130,7 +1130,7 @@ RegisterNetEvent("esx_property:AdminMenu", function() local opos = {} local function GetData() local elements = {{unselectable = true, icon = "fas fa-cogs", title = "Property Management"}, - {title = "Go Back", icon = "fas fa-arrow-left", value = "back"}, + {title = _U("back"), icon = "fas fa-arrow-left", value = "back"}, {title = "Toggle Lock", icon = (Properties[currentProperty].Locked and "fas fa-lock") or "fas fa-unlock", description = "Lock/Unlock The Property.", value = "lock"}, {title = "Enter", description = "Force Entry Into The Property.", icon = "fas fa-door-open", value = "enter"}, @@ -1206,11 +1206,11 @@ RegisterNetEvent("esx_property:AdminMenu", function() disabled = not Properties[currentProperty].garage.enabled, description = "Sets the Garage Position to your Players Position", value = "SetGaragePos"} if Properties[currentProperty].garage.pos then - opos[#opos + 1] = {title = "Go Back", icon = "fas fa-arrow-left", description = "return to Property Management.", + opos[#opos + 1] = {title = _U("back"), icon = "fas fa-arrow-left", description = "return to Property Management.", value = "return"} end else - opos[#opos + 1] = {title = "Go Back", icon = "fas fa-arrow-left", description = "return to Property Management", value = "return"} + opos[#opos + 1] = {title = _U("back"), icon = "fas fa-arrow-left", description = "return to Property Management", value = "return"} end exports["esx_context"]:Refresh(opos, "right") end @@ -1223,11 +1223,11 @@ RegisterNetEvent("esx_property:AdminMenu", function() opos[#opos + 1] = {title = "Set Angle", icon = "fas fa-map-marker-alt", disabled = not Properties[currentProperty].cctv.enabled, description = "Sets the Angle of the Camera.", value = "SetCCTVangle"} if Properties[currentProperty].cctv.rot then - opos[#opos + 1] = {title = "Go Back", icon = "fas fa-arrow-left", description = "return to Property Management.", + opos[#opos + 1] = {title = _U("back"), icon = "fas fa-arrow-left", description = "return to Property Management.", value = "return"} end else - opos[#opos + 1] = {title = "Go Back", icon = "fas fa-arrow-left", description = "return to Property Management", value = "return"} + opos[#opos + 1] = {title = _U("back"), icon = "fas fa-arrow-left", description = "return to Property Management", value = "return"} end exports["esx_context"]:Refresh(opos, "right") end @@ -1243,11 +1243,11 @@ RegisterNetEvent("esx_property:AdminMenu", function() opos[#opos + 1] = {title = "Set Position", icon = "fas fa-map-marker-alt", disabled = not enabled, description = "Sets the Garage Position to your Players Position", value = "SetGaragePos"} if Properties[currentProperty].garage.pos then - opos[#opos + 1] = {title = "Go Back", icon = "fas fa-arrow-left", description = "return to Property Management.", + opos[#opos + 1] = {title = _U("back"), icon = "fas fa-arrow-left", description = "return to Property Management.", value = "return"} end else - opos[#opos + 1] = {title = "Go Back", icon = "fas fa-arrow-left", description = "return to Property Management", + opos[#opos + 1] = {title = _U("back"), icon = "fas fa-arrow-left", description = "return to Property Management", value = "return"} end exports["esx_context"]:Refresh(opos, "right") @@ -1268,11 +1268,11 @@ RegisterNetEvent("esx_property:AdminMenu", function() opos[#opos + 1] = {title = "Set Angle", icon = "fas fa-map-marker-alt", disabled = not enabled, description = "Sets the Angle of the Camera.", value = "SetCCTVangle"} if Properties[currentProperty].cctv.rot then - opos[#opos + 1] = {title = "Go Back", icon = "fas fa-arrow-left", description = "return to Property Management.", + opos[#opos + 1] = {title = _U("back"), icon = "fas fa-arrow-left", description = "return to Property Management.", value = "return"} end else - opos[#opos + 1] = {title = "Go Back", icon = "fas fa-arrow-left", description = "return to Property Management", + opos[#opos + 1] = {title = _U("back"), icon = "fas fa-arrow-left", description = "return to Property Management", value = "return"} end exports["esx_context"]:Refresh(opos, "right") @@ -1447,7 +1447,7 @@ RegisterNetEvent("esx_property:AdminMenu", function() ESX.TriggerServerCallback('esx_property:IsAdmin', function(data) if data then local elements = {{unselectable = true, icon = "fas fa-home", title = "Property Options"}, - {title = "Go Back", icon = "fas fa-arrow-left", value = "back"}, + {title = _U("back"), icon = "fas fa-arrow-left", value = "back"}, {title = "Manage", icon = "fas fa-cogs", description = "Alter This Property's Settings.", value = "manage"}, {title = "Teleport", description = "Teleport To This Property.", icon = "fas fa-map-marker-alt", value = "goto"}, {title = "Set GPS", description = "Set GPS position To Property.", icon = "fa-solid fa-location-dot", value = "gps"}, diff --git a/[esx_addons]/esx_property/locales/en.lua b/[esx_addons]/esx_property/locales/en.lua index 383fee1a..3ded01d6 100644 --- a/[esx_addons]/esx_property/locales/en.lua +++ b/[esx_addons]/esx_property/locales/en.lua @@ -8,5 +8,41 @@ Locales['en'] = { ["night_vision"] = "Toggle Night Vision", ["clipboard"] = "Link Copied To ~b~Cipboard", ["please_wait"] = "Please Wait Before taking another ~b~Picture", - ["exit"] = "Exit" + ["exit"] = "Exit", + + --- Furniture Strings ------ + + ["Height"] = "Height", + ["rotate"] = "Rotation", + ["place"] = "Place Furniture", + ["delete_furni"] = "Delete", + ["confirm_buy"] = "Do You Want To Buy %s ?", + ["price"] = "Price: $&s", + ["yes"] = "Yes", + ["no"] = "No", + ["action"] = "You %s ~b~%s~s~ !", + ["bought_furni"] = "You Have ~g~Bought~s~ A ~b~%s~s~ !", + ["edited_furni"] = "You Have Edited ~b~%s~s~ !", + ["cannot_buy"] = "You ~r~Cannot~s~ Buy This!", + ["cannot_edit"] = "You ~r~Cannot~s~ Edit This!", + ["store_title"] = "Store - %s", + ["back"] = "Return", + ["edit_title"] = "Editing - %s", + ["move_title"] = "Move", + ["deleted_confirm"] = "Deleting ~b~%s~s~!", + ["deleted_error"] = "Cannot Delete ~b~%s~s~!", + ["owned_furni"] = "Owned Furniture", + ["menu_stores"] = "Furniture Stores", + ["menu_stores_desc"] = "Buy Furniture", + ["menu_reset"] = "Reset", + ["menu_reset_desc"] = "Clears All Furniture", + ["menu_edit"] = "Edit", + ["menu_edit_desc"] = "Move and/or Delete furniture items", + ["furni_command"] = "furniture", + ["furni_Command_desc"] = "(ESX Property) Open Furniture Menu", + ["furni_command_permission"] = "You ~r~Cannot~s~ Access This Menu!", + ["furni_reset_success"] = "Furniture Reset!", + ["furni_cannot_afford"] = "You Cannot Afford Todo this!", + ["furni_reset_error"] = "You ~r~Cannot~s~ Reset This Property!", + ["furni_management"] = "Manage Furniture" } \ No newline at end of file diff --git a/[esx_addons]/esx_property/server/main.lua b/[esx_addons]/esx_property/server/main.lua index 982ed01b..7a3905c1 100644 --- a/[esx_addons]/esx_property/server/main.lua +++ b/[esx_addons]/esx_property/server/main.lua @@ -248,7 +248,7 @@ ESX.RegisterServerCallback("esx_property:buyFurniture", function(source, cb, Pro TriggerClientEvent("esx_property:syncFurniture", -1, PropertyId, Properties[PropertyId].furniture) else cb(false) - ESX.ShowNotification("You ~r~Cannot~s~ Afford This Furniture.") + ESX.ShowNotification(_U("furni_cannot_afford")) end else cb(false)