From 4d901b0b7764c6ebe2e6c68067a91a31b72d5c0c Mon Sep 17 00:00:00 2001 From: Don Date: Wed, 23 Aug 2017 01:20:54 -0700 Subject: [PATCH] Multi-language support Added en language support --- __resource.lua | 6 ++ client/main.lua | 154 ++++++++++++++++++++++++------------------------ config.lua | 1 + locales/en.lua | 47 +++++++++++++++ locales/fr.lua | 47 +++++++++++++++ server/main.lua | 22 +++---- 6 files changed, 189 insertions(+), 88 deletions(-) create mode 100644 locales/en.lua create mode 100644 locales/fr.lua diff --git a/__resource.lua b/__resource.lua index a74c4022..7ce747e8 100644 --- a/__resource.lua +++ b/__resource.lua @@ -4,11 +4,17 @@ description 'ESX Vehicle Shop' server_scripts { '@mysql-async/lib/MySQL.lua', + '@es_extended/locale.lua' , + 'locales/en.lua' , + 'locales/fr.lua' , 'config.lua', 'server/main.lua' } client_scripts { + '@es_extended/locale.lua' , + 'locales/en.lua' , + 'locales/fr.lua' , 'config.lua', 'client/main.lua' } diff --git a/client/main.lua b/client/main.lua index adf3f888..d2f18d04 100644 --- a/client/main.lua +++ b/client/main.lua @@ -1,10 +1,10 @@ local Keys = { - ["ESC"] = 322, ["F1"] = 288, ["F2"] = 289, ["F3"] = 170, ["F5"] = 166, ["F6"] = 167, ["F7"] = 168, ["F8"] = 169, ["F9"] = 56, ["F10"] = 57, - ["~"] = 243, ["1"] = 157, ["2"] = 158, ["3"] = 160, ["4"] = 164, ["5"] = 165, ["6"] = 159, ["7"] = 161, ["8"] = 162, ["9"] = 163, ["-"] = 84, ["="] = 83, ["BACKSPACE"] = 177, + ["ESC"] = 322, ["F1"] = 288, ["F2"] = 289, ["F3"] = 170, ["F5"] = 166, ["F6"] = 167, ["F7"] = 168, ["F8"] = 169, ["F9"] = 56, ["F10"] = 57, + ["~"] = 243, ["1"] = 157, ["2"] = 158, ["3"] = 160, ["4"] = 164, ["5"] = 165, ["6"] = 159, ["7"] = 161, ["8"] = 162, ["9"] = 163, ["-"] = 84, ["="] = 83, ["BACKSPACE"] = 177, ["TAB"] = 37, ["Q"] = 44, ["W"] = 32, ["E"] = 38, ["R"] = 45, ["T"] = 245, ["Y"] = 246, ["U"] = 303, ["P"] = 199, ["["] = 39, ["]"] = 40, ["ENTER"] = 18, ["CAPS"] = 137, ["A"] = 34, ["S"] = 8, ["D"] = 9, ["F"] = 23, ["G"] = 47, ["H"] = 74, ["K"] = 311, ["L"] = 182, ["LEFTSHIFT"] = 21, ["Z"] = 20, ["X"] = 73, ["C"] = 26, ["V"] = 0, ["B"] = 29, ["N"] = 249, ["M"] = 244, [","] = 82, ["."] = 81, - ["LEFTCTRL"] = 36, ["LEFTALT"] = 19, ["SPACE"] = 22, ["RIGHTCTRL"] = 70, + ["LEFTCTRL"] = 36, ["LEFTALT"] = 19, ["SPACE"] = 22, ["RIGHTCTRL"] = 70, ["HOME"] = 213, ["PAGEUP"] = 10, ["PAGEDOWN"] = 11, ["DELETE"] = 178, ["LEFT"] = 174, ["RIGHT"] = 175, ["TOP"] = 27, ["DOWN"] = 173, ["NENTER"] = 201, ["N4"] = 108, ["N5"] = 60, ["N6"] = 107, ["N+"] = 96, ["N-"] = 97, ["N7"] = 117, ["N8"] = 61, ["N9"] = 118 @@ -83,7 +83,7 @@ function OpenShopMenu() local options = {} for j=1, #categoryVehicles, 1 do - + local vehicle = categoryVehicles[j] if i == 1 and j == 1 then @@ -107,7 +107,7 @@ function OpenShopMenu() ESX.UI.Menu.Open( 'default', GetCurrentResourceName(), 'vehicle_shop', { - title = 'Concessionnaire', + title = _U('car_dealer'), align = 'top-left', elements = elements }, @@ -118,11 +118,11 @@ function OpenShopMenu() ESX.UI.Menu.Open( 'default', GetCurrentResourceName(), 'shop_confirm', { - title = 'Acheter ' .. vehicleData.name .. ' pour $' .. vehicleData.price .. ' ?', + title = _U('buy').. vehicleData.name .. _U('for').. vehicleData.price .. ' ?', align = 'top-left', elements = { - {label = 'Oui', value = 'yes'}, - {label = 'Non', value = 'no'}, + {label = _U('yes'), value = 'yes'}, + {label = _U('no'), value = 'no'}, } }, function(data2, menu2) @@ -140,9 +140,9 @@ function OpenShopMenu() DeleteShopInsideVehicles() local playerPed = GetPlayerPed(-1) - + CurrentAction = 'shop_menu' - CurrentActionMsg = 'Appuez sur ~INPUT_CONTEXT~ pour accéder au menu' + CurrentActionMsg = _U('shop_menu') CurrentActionData = {} FreezeEntityPosition(playerPed, false) @@ -152,9 +152,9 @@ function OpenShopMenu() menu2.close() menu.close() - ESX.ShowNotification('Vous avez acheté un véhicule') + ESX.ShowNotification(_U('vehicle_purchased')) else - ESX.ShowNotification('Vous n\'avez pas assez d\'argent sur votre compte société') + ESX.ShowNotification(_U('broke_company')) end end, vehicleData.model) @@ -177,7 +177,7 @@ function OpenShopMenu() y = Config.Zones.ShopOutside.Pos.y, z = Config.Zones.ShopOutside.Pos.z }, -20.0, function(vehicle) - + TaskWarpPedIntoVehicle(playerPed, vehicle, -1) local vehicleProps = ESX.Game.GetVehicleProperties(vehicle) @@ -190,7 +190,7 @@ function OpenShopMenu() SetEntityVisible(playerPed, true) else - ESX.ShowNotification('Vous n\'avez pas assez d\'argent') + ESX.ShowNotification(_U('not_enough_money')) end end, vehicleData.model) @@ -211,7 +211,7 @@ function OpenShopMenu() end, function(data, menu) - + menu.close() DeleteShopInsideVehicles() @@ -219,7 +219,7 @@ function OpenShopMenu() local playerPed = GetPlayerPed(-1) CurrentAction = 'shop_menu' - CurrentActionMsg = 'Appuez sur ~INPUT_CONTEXT~ pour accéder au menu' + CurrentActionMsg = _U('shop_menu') CurrentActionData = {} FreezeEntityPosition(playerPed, false) @@ -275,15 +275,15 @@ function OpenResellerMenu() ESX.UI.Menu.Open( 'default', GetCurrentResourceName(), 'reseller', { - title = 'Concessionnaire', + title = _U('car_dealer'), align = 'top-left', elements = { - {label = 'Sortir véhicule', value = 'pop_vehicle'}, - {label = 'Rentrer véhicule', value = 'depop_vehicle'}, - {label = 'Créer facture', value = 'create_bill'}, - {label = 'Véhicules en location', value = 'get_rented_vehicles'}, - {label = 'Attribuer véhicule [Vente]', value = 'set_vehicle_owner_sell'}, - {label = 'Attribuer véhicule [Location]', value = 'set_vehicle_owner_rent'}, + {label = _U('pop_vehicle'), value = 'pop_vehicle'}, + {label = _U('depop_vehicle'), value = 'depop_vehicle'}, + {label = _U('create_bill'), value = 'create_bill'}, + {label = _U('get_rented_vehicles'), value = 'get_rented_vehicles'}, + {label = _U('set_vehicle_owner_sell'), value = 'set_vehicle_owner_sell'}, + {label = _U('set_vehicle_owner_rent'), value = 'set_vehicle_owner_rent'}, } }, function(data, menu) @@ -301,24 +301,24 @@ function OpenResellerMenu() ESX.UI.Menu.Open( 'dialog', GetCurrentResourceName(), 'set_vehicle_owner_sell_amount', { - title = 'Montant de la facture' + title = _U('invoice_amount') }, function(data2, menu) local amount = tonumber(data2.value) if amount == nil then - ESX.ShowNotification('Montant invalide') + ESX.ShowNotification(_U('invoice_amount')) else - + menu.close() local closestPlayer, closestDistance = ESX.Game.GetClosestPlayer() if closestPlayer == -1 or closestDistance > 3.0 then - ESX.ShowNotification('Aucun joueur à proximité') + ESX.ShowNotification(_U('invoice_amount')) else - TriggerServerEvent('esx_billing:sendBill', GetPlayerServerId(closestPlayer), 'society_cardealer', 'Concessionnaire', tonumber(data2.value)) + TriggerServerEvent('esx_billing:sendBill', GetPlayerServerId(closestPlayer), 'society_cardealer', _U('car_dealership'), tonumber(data2.value)) end end @@ -340,7 +340,7 @@ function OpenResellerMenu() local closestPlayer, closestDistance = ESX.Game.GetClosestPlayer() if closestPlayer == -1 or closestDistance > 3.0 then - ESX.ShowNotification('Aucun joueur à proximité') + ESX.ShowNotification(_U('no_players')) else local vehicleProps = ESX.Game.GetVehicleProperties(LastVehicles[#LastVehicles]) @@ -357,22 +357,22 @@ function OpenResellerMenu() ESX.UI.Menu.Open( 'dialog', GetCurrentResourceName(), 'set_vehicle_owner_rent_amount', { - title = 'Montant de la location' + title = _U('rental_amount') }, function(data2, menu) local amount = tonumber(data2.value) if amount == nil then - ESX.ShowNotification('Montant invalide') + ESX.ShowNotification(_U('invalid_amount')) else - + menu.close() local closestPlayer, closestDistance = ESX.Game.GetClosestPlayer() if closestPlayer == -1 or closestDistance > 5.0 then - ESX.ShowNotification('Aucun joueur à proximité') + ESX.ShowNotification(_U('no_players')) else SetVehicleNumberPlateText(LastVehicles[#LastVehicles], 'LOC ' .. ESX.GetRandomString(5)) @@ -397,11 +397,11 @@ function OpenResellerMenu() end, function(data, menu) - + menu.close() CurrentAction = 'reseller_menu' - CurrentActionMsg = 'Appuez sur ~INPUT_CONTEXT~ pour accéder au menu' + CurrentActionMsg = _U('shop_menu') CurrentActionData = {} end @@ -432,12 +432,12 @@ function OpenPersonnalVehicleMenu() ESX.UI.Menu.Open( 'default', GetCurrentResourceName(), 'personnal_vehicle', { - title = 'Véhicule personnel', + title = _U('personal_vehicle'), align = 'top-left', elements = elements }, function(data, menu) - + local playerPed = GetPlayerPed(-1) local coords = GetEntityCoords(playerPed) local heading = GetEntityHeading(playerPed) @@ -476,7 +476,7 @@ function OpenPopVehicleMenu() ESX.UI.Menu.Open( 'default', GetCurrentResourceName(), 'commercial_vehicles', { - title = 'Concessionnaire - Véhicules', + title = _U('vehicle_dealer'), align = 'top-left', elements = elements }, @@ -491,7 +491,7 @@ function OpenPopVehicleMenu() y = Config.Zones.ShopInside.Pos.y, z = Config.Zones.ShopInside.Pos.z }, 90.0, function(vehicle) - + table.insert(LastVehicles, vehicle) for i=1, #Vehicles, 1 do @@ -525,7 +525,7 @@ function OpenRentedVehiclesMenu() ESX.UI.Menu.Open( 'default', GetCurrentResourceName(), 'rented_vehicles', { - title = 'Concessionnaire - Véhicules en location', + title = _U('rent_vehicle'), align = 'top-left', elements = elements }, @@ -546,13 +546,13 @@ function OpenBossActionsMenu() ESX.UI.Menu.Open( 'default', GetCurrentResourceName(), 'reseller', { - title = 'Concessionnaire - Patron', + title = _U('dealer_boss'), align = 'top-left', elements = { - {label = 'Acheter véhicule', value = 'buy_vehicle'}, - {label = 'Retirer argent société', value = 'withdraw_society_money'}, - {label = 'Déposer argent ', value = 'deposit_money'}, - {label = 'Blanchir argent', value = 'wash_money'} + {label = _U('buy_vehicle'), value = 'buy_vehicle'}, + {label = _U('withdraw_money'), value = 'withdraw_society_money'}, + {label = _U('deposit_money'), value = 'deposit_money'}, + {label = _U('wash_money'), value = 'wash_money'} } }, function(data, menu) @@ -566,14 +566,14 @@ function OpenBossActionsMenu() ESX.UI.Menu.Open( 'dialog', GetCurrentResourceName(), 'withdraw_society_money_amount', { - title = 'Montant du retrait' + title = _U('withdraw_amount'), }, function(data, menu) local amount = tonumber(data.value) if amount == nil then - ESX.ShowNotification('Montant invalide') + ESX.ShowNotification(_U('invalid_amount')) else menu.close() TriggerServerEvent('esx_society:withdrawMoney', 'cardealer', amount) @@ -592,14 +592,14 @@ function OpenBossActionsMenu() ESX.UI.Menu.Open( 'dialog', GetCurrentResourceName(), 'deposit_money_amount', { - title = 'Montant du dépôt' + title = _U('deposit_money'), }, function(data, menu) local amount = tonumber(data.value) if amount == nil then - ESX.ShowNotification('Montant invalide') + ESX.ShowNotification(_U('invalid_amount')) else menu.close() TriggerServerEvent('esx_society:depositMoney', 'cardealer', amount) @@ -618,14 +618,14 @@ function OpenBossActionsMenu() ESX.UI.Menu.Open( 'dialog', GetCurrentResourceName(), 'wash_money_amount', { - title = 'Montant à blanchir' + title = _U('bleach_amount'), }, function(data, menu) local amount = tonumber(data.value) if amount == nil then - ESX.ShowNotification('Montant invalide') + ESX.ShowNotification(_U('invalid_amount')) else menu.close() TriggerServerEvent('esx_society:washMoney', 'cardealer', amount) @@ -641,11 +641,11 @@ function OpenBossActionsMenu() end, function(data, menu) - + menu.close() CurrentAction = 'boss_actions_menu' - CurrentActionMsg = 'Appuez sur ~INPUT_CONTEXT~ pour accéder au menu' + CurrentActionMsg = _U('shop_menu') CurrentActionData = {} end @@ -655,7 +655,7 @@ end RegisterNetEvent('esx:playerLoaded') AddEventHandler('esx:playerLoaded', function(xPlayer) - + PlayerData = xPlayer if Config.EnablePlayerManagement then @@ -679,7 +679,7 @@ end) RegisterNetEvent('esx:setJob') AddEventHandler('esx:setJob', function(job) - + PlayerData.job = job if Config.EnablePlayerManagement then @@ -714,14 +714,14 @@ AddEventHandler('esx_vehicleshop:hasEnteredMarker', function(zone) if PlayerData.job ~= nil and PlayerData.job.name == 'cardealer' then CurrentAction = 'reseller_menu' - CurrentActionMsg = 'Appuez sur ~INPUT_CONTEXT~ pour accéder au menu' + CurrentActionMsg = _U('shop_menu') CurrentActionData = {} end else CurrentAction = 'shop_menu' - CurrentActionMsg = 'Appuez sur ~INPUT_CONTEXT~ pour accéder au menu' + CurrentActionMsg = _U('shop_menu') CurrentActionData = {} end @@ -733,12 +733,12 @@ AddEventHandler('esx_vehicleshop:hasEnteredMarker', function(zone) local playerPed = GetPlayerPed(-1) if IsPedInAnyVehicle(playerPed, false) then - + local vehicle = GetVehiclePedIsIn(playerPed, false) CurrentAction = 'give_back_vehicle' - CurrentActionMsg = 'Appuez sur ~INPUT_CONTEXT~ pour rendre votre véhicule' - + CurrentActionMsg = _U('vehicle_menu') + CurrentActionData = { vehicle = vehicle } @@ -766,8 +766,8 @@ AddEventHandler('esx_vehicleshop:hasEnteredMarker', function(zone) local resellPrice = math.floor(vehicleData.price / 100 * Config.ResellPercentage) CurrentAction = 'resell_vehicle' - CurrentActionMsg = 'Appuez sur ~INPUT_CONTEXT~ pour vendre ' .. vehicleData.name .. ' au prix de $' .. resellPrice - + CurrentActionMsg = _U('sell_menu').. vehicleData.name .. _U('price') .. resellPrice + CurrentActionData = { vehicle = vehicle, price = resellPrice @@ -780,7 +780,7 @@ AddEventHandler('esx_vehicleshop:hasEnteredMarker', function(zone) if zone == 'BossActions' and Config.EnablePlayerManagement and PlayerData.job ~= nil and PlayerData.job.name == 'cardealer' and PlayerData.job.grade_name == 'boss' then CurrentAction = 'boss_actions_menu' - CurrentActionMsg = 'Appuez sur ~INPUT_CONTEXT~ pour accéder au menu' + CurrentActionMsg = _U('shop_menu') CurrentActionData = {} end @@ -815,7 +815,7 @@ end -- Create Blips Citizen.CreateThread(function() - + local blip = AddBlipForCoord(Config.Zones.ShopEntering.Pos.x, Config.Zones.ShopEntering.Pos.y, Config.Zones.ShopEntering.Pos.z) SetBlipSprite (blip, 326) @@ -824,7 +824,7 @@ Citizen.CreateThread(function() SetBlipAsShortRange(blip, true) BeginTextCommandSetBlipName("STRING") - AddTextComponentString("Concessionnaire") + AddTextComponentString(_U('car_dealer')) EndTextCommandSetBlipName(blip) end) @@ -832,11 +832,11 @@ end) -- Display markers Citizen.CreateThread(function() while true do - + Wait(0) - + local coords = GetEntityCoords(GetPlayerPed(-1)) - + for k,v in pairs(Config.Zones) do if(v.Type ~= -1 and GetDistanceBetweenCoords(coords, v.Pos.x, v.Pos.y, v.Pos.z, true) < Config.DrawDistance) then DrawMarker(v.Type, v.Pos.x, v.Pos.y, v.Pos.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, v.Size.x, v.Size.y, v.Size.z, Config.MarkerColor.r, Config.MarkerColor.g, Config.MarkerColor.b, 100, false, true, 2, false, false, false, false) @@ -849,9 +849,9 @@ end) -- Enter / Exit marker events Citizen.CreateThread(function() while true do - + Wait(0) - + local coords = GetEntityCoords(GetPlayerPed(-1)) local isInMarker = false local currentZone = nil @@ -890,7 +890,7 @@ Citizen.CreateThread(function() DisplayHelpTextFromStringLabel(0, 0, 1, -1) if IsControlPressed(0, Keys['E']) and (GetGameTimer() - GUI.Time) > 300 then - + if CurrentAction == 'shop_menu' then OpenShopMenu() end @@ -905,9 +905,9 @@ Citizen.CreateThread(function() if isRentedVehicle then DeleteVehicle(CurrentActionData.vehicle) - ESX.ShowNotification('Véhicule ~g~rendu~s~ au concessionnaire') + ESX.ShowNotification(_U('delivered')) else - ESX.ShowNotification('Ce n\'est pas un ~r~véhicule de location~s~') + ESX.ShowNotification(_U('not_rental')) end end, GetVehicleNumberPlateText(CurrentActionData.vehicle)) @@ -920,9 +920,9 @@ Citizen.CreateThread(function() if isOwnedVehicle then DeleteVehicle(CurrentActionData.vehicle) - ESX.ShowNotification('Véhicule ~g~vendu~s~') + ESX.ShowNotification(_U('vehicle_sold')) else - ESX.ShowNotification('Ce véhicule ne vous appartient pas') + ESX.ShowNotification(_U('not_yours')) end end, GetVehicleNumberPlateText(CurrentActionData.vehicle), CurrentActionData.price) @@ -935,7 +935,7 @@ Citizen.CreateThread(function() CurrentAction = nil GUI.Time = GetGameTimer() - + end end @@ -953,4 +953,4 @@ Citizen.CreateThread(function() RequestIpl('v_carshowroom') RequestIpl('shr_int') RequestIpl('shutter_closed') -end) \ No newline at end of file +end) diff --git a/config.lua b/config.lua index 238ef765..81ea2e7a 100644 --- a/config.lua +++ b/config.lua @@ -4,6 +4,7 @@ Config.MarkerColor = {r = 120, g = 120, b = 240} Config.EnablePlayerManagement = false -- If set to true, you need esx_addonaccount, esx_billing and esx_society Config.EnablePvCommand = true Config.ResellPercentage = 50 +Config.Locale = 'fr' Config.Zones = { diff --git a/locales/en.lua b/locales/en.lua new file mode 100644 index 00000000..4cdf1dba --- /dev/null +++ b/locales/en.lua @@ -0,0 +1,47 @@ +Locales['en'] = { + --Global menus + ['car_dealer'] = 'car Dealership', + ['buy'] = 'buy', + ['for'] = 'for $', + ['yes'] = 'yes', + ['no'] = 'no', + ['shop_menu'] = 'press ~INPUT_CONTEXT~ to access the menu', + ['vehicle_purchase'] = 'you bought a vehicle', + ['broke_company'] = 'you do not have enough money in the company account', + ['not_enough_money'] = 'you do not have enough money', + ['pop_vehicle'] = 'exit vehicle', + ['depop_vehicle'] = 'return vehicle', + ['create_bill'] = 'create invoice', + ['get_rented_vehicles'] = 'vehicles for rent', + ['set_vehicle_owner_sell'] = 'vehicles for [sale]', + ['set_vehicle_owner_rent'] = 'assign vehicle [Location]', + ['invoice_amount'] = 'invoice amount', + ['invalid_amount'] = 'invalid amount', + ['no_players'] = 'no players nearby', + ['rental_amount'] = 'rental amount', + ['personal_vehicle'] = 'personal vehicle', + ['vehicle_dealer'] = 'vehicle - Car Dealer', + ['rent_vehicle'] = 'car Dealer - Vehicles for rent', + ['dealer_boss'] = 'car Dealer - Boss', + ['buy_vehicle'] = 'buy vehicle', + ['withdraw_money'] = 'remove company money', + ['deposit_money'] = 'deposit money', + ['wash_money'] = 'money laundering', + ['withdraw_amount'] = 'amount of withdrawal', + ['deposit_amount'] = 'deposit amount', + ['bleach amount'] = 'amount to bleach', + ['vehicle_menu'] = 'press ~INPUT_CONTEXT~ to make your vehicle', + ['sell_menu'] = 'press ~INPUT_CONTEXT~ to sell ', + ['price'] = ' for the amount of $', + ['delivered'] = 'vehicle ~g~delivered~s~ to the dealer', + ['not_rental'] = 'this is not a ~r~rental vehicle~s~', + ['vehicle_sold'] = 'vehicle ~g~sold~s~', + ['not_yours'] = 'this vehicle does not belong to you', + ['vehicle'] = 'vehicle ', + ['belongs'] = ' now belongs to you', + ['leaving'] = 'leaving a personal vehicle', + ['paid_rental'] = 'you have ~g~payed~s~ for your vehicle rental : ~g~$', + ['recruit'] = 'recruit', + ['experianced'] = 'experianced', + ['the_boss'] = 'boss', +} diff --git a/locales/fr.lua b/locales/fr.lua new file mode 100644 index 00000000..c17c077f --- /dev/null +++ b/locales/fr.lua @@ -0,0 +1,47 @@ +Locales['fr'] = { + --Global menus + ['car_dealer'] = 'Concessionnaire', + ['buy'] = 'Acheter', + ['for'] = 'pour $', + ['yes'] = 'Oui', + ['no'] = 'Non', + ['shop_menu'] = 'Appuez sur ~INPUT_CONTEXT~ pour accéder au menu', + ['vehicle_purchase'] = 'Vous avez acheté un véhicule', + ['broke_company'] = 'Vous n\'avez pas assez d\'argent sur votre compte société', + ['not_enough_money'] = 'Vous n\'avez pas assez d\'argent', + ['pop_vehicle'] = 'Sortir véhicule', + ['depop_vehicle'] = 'Rentrer véhicule', + ['create_bill'] = 'Créer facture', + ['get_rented_vehicles'] = 'Véhicules en location', + ['set_vehicle_owner_sell'] = 'Attribuer véhicule [Vente]', + ['set_vehicle_owner_rent'] = 'Attribuer véhicule [Location]', + ['invoice_amount'] = 'Montant de la facture', + ['invalid_amount'] = 'Montant invalide', + ['no_players'] = 'Aucun joueur à proximité', + ['rental_amount'] = 'Montant de la location', + ['personal_vehicle'] = 'Véhicule personnel', + ['vehicle_dealer'] = 'Concessionnaire - Véhicules', + ['rent_vehicle'] = 'Concessionnaire - Véhicules en location', + ['dealer_boss'] = 'Concessionnaire - Patron', + ['buy_vehicle'] = 'Acheter véhicule', + ['withdraw_money'] = 'Retirer argent société', + ['deposit_money'] = 'Déposer argent', + ['wash_money'] = 'Blanchir argent', + ['withdraw_amount'] = 'Montant du retrait', + ['deposit_amount'] = 'Montant du dépôt', + ['bleach amount'] = 'Montant à blanchir', + ['vehicle_menu'] = 'Appuez sur ~INPUT_CONTEXT~ pour rendre votre véhicule', + ['sell_menu'] = 'Appuez sur ~INPUT_CONTEXT~ pour vendre', + ['price'] = 'au prix de $', + ['delivered'] = 'Véhicule ~g~rendu~s~ au concessionnaire', + ['not_rental'] = 'Ce n\'est pas un ~r~véhicule de location~s~', + ['vehicle_sold'] = 'Véhicule ~g~vendu~s~', + ['not_yours'] = 'Ce véhicule ne vous appartient pas', + ['vehicle'] = 'Le véhicule', + ['belongs'] = 'vous appartient désormais', + ['leaving'] = 'Sortir un véhicule personnel', + ['paid_rental'] = 'Vous avez ~g~payé~s~ votre location de véhicule : ~g~$', + ['recruit'] = 'Recrue', + ['experianced'] = 'Experimente', + ['the_boss'] = 'Patron', +} diff --git a/server/main.lua b/server/main.lua index 7c70127f..c564c4e2 100644 --- a/server/main.lua +++ b/server/main.lua @@ -67,7 +67,7 @@ AddEventHandler('esx_vehicleshop:setVehicleOwned', function(vehicleProps) ['@owner'] = xPlayer.identifier }, function(rowsChanged) - TriggerClientEvent('esx:showNotification', _source, 'Le véhicule ' .. vehicleProps.plate .. ' vous appartient désormais') + TriggerClientEvent('esx:showNotification', _source, _U('vehicle').. vehicleProps.plate .. _('belongs')) end ) @@ -85,7 +85,7 @@ AddEventHandler('esx_vehicleshop:setVehicleOwnedPlayerId', function(playerId, ve ['@owner'] = xPlayer.identifier }, function(rowsChanged) - TriggerClientEvent('esx:showNotification', playerId, 'Le véhicule ' .. vehicleProps.plate .. ' vous appartient désormais') + TriggerClientEvent('esx:showNotification', playerId, _U('vehicle').. vehicleProps.plate .. _('belongs')) end ) @@ -93,7 +93,7 @@ end) RegisterServerEvent('esx_vehicleshop:sellVehicle') AddEventHandler('esx_vehicleshop:sellVehicle', function(vehicle) - + MySQL.Async.fetchAll( 'SELECT * FROM cardealer_vehicles WHERE vehicle = @vehicle LIMIT 1', { @@ -138,7 +138,7 @@ AddEventHandler('esx_vehicleshop:rentVehicle', function(vehicle, plate, playerNa ['@id'] = id } ) - + MySQL.Async.execute( 'INSERT INTO rented_vehicles (vehicle, plate, player_name, base_price, rent_price, owner) VALUES (@vehicle, @plate, @player_name, @base_price, @rent_price, @owner)', { @@ -170,7 +170,7 @@ ESX.RegisterServerCallback('esx_vehicleshop:getVehicles', function(source, cb) end) ESX.RegisterServerCallback('esx_vehicleshop:buyVehicle', function(source, cb, vehicleModel) - + local xPlayer = ESX.GetPlayerFromId(source) local vehicleData = nil @@ -191,7 +191,7 @@ ESX.RegisterServerCallback('esx_vehicleshop:buyVehicle', function(source, cb, ve end) ESX.RegisterServerCallback('esx_vehicleshop:buyVehicleSociety', function(source, cb, vehicleModel) - + local vehicleData = nil for i=1, #Vehicles, 1 do @@ -379,7 +379,7 @@ ESX.RegisterServerCallback('esx_vehicleshop:resellVehicle', function(source, cb, xPlayer.addMoney(price) RemoveOwnedVehicle(plate) - + cb(true) else @@ -408,14 +408,14 @@ TriggerEvent('esx_phone:registerCallback', function(source, phoneNumber, message end end end - + end) if Config.EnablePvCommand then TriggerEvent('es:addCommand', 'pv', function(source, args, user) TriggerClientEvent('esx_vehicleshop:openPersonnalVehicleMenu', source) - end, {help = 'Sortir un véhicule personnel'}) + end, {help = _U('leaving')}) end @@ -457,8 +457,8 @@ function PayRent(d, h, m) if foundPlayer then xPlayer.removeMoney(result[i].rent_price) - TriggerClientEvent('esx:showNotification', xPlayer.source, 'Vous avez ~g~payé~s~ votre location de véhicule : ~g~$' .. result[i].rent_price) - + TriggerClientEvent('esx:showNotification', xPlayer.source, _U('paid_rental') .. result[i].rent_price) + else newMoney[result[i].owner] = newMoney[result[i].owner] - result[i].rent_price end