diff --git a/__resource.lua b/__resource.lua index 8672b937..6064ccb7 100644 --- a/__resource.lua +++ b/__resource.lua @@ -2,7 +2,7 @@ resource_manifest_version '44febabe-d386-4d18-afbe-5e627f4af937' description 'ESX DMV School' -version '1.0.4' +version '1.0.5' server_scripts { '@es_extended/locale.lua', @@ -11,6 +11,7 @@ server_scripts { 'locales/fr.lua', 'locales/en.lua', 'locales/pl.lua', + 'locales/sv.lua', 'config.lua', 'server/main.lua' } @@ -22,6 +23,7 @@ client_scripts { 'locales/fr.lua', 'locales/en.lua', 'locales/pl.lua', + 'locales/sv.lua', 'config.lua', 'client/main.lua' } diff --git a/client/main.lua b/client/main.lua index 3acc8be9..ca443cc4 100644 --- a/client/main.lua +++ b/client/main.lua @@ -72,7 +72,7 @@ function StopTheoryTest(success) end function StartDriveTest(type) - ESX.Game.SpawnVehicle(Config.VehicleModels[type], Config.Zones.VehicleSpawnPoint.Pos, 317.0, function(vehicle) + ESX.Game.SpawnVehicle(Config.VehicleModels[type], Config.Zones.VehicleSpawnPoint.Pos, Config.Zones.VehicleSpawnPoint.Pos.h, function(vehicle) CurrentTest = 'drive' CurrentTestType = type CurrentCheckPoint = 0 @@ -83,7 +83,7 @@ function StartDriveTest(type) CurrentVehicle = vehicle LastVehicleHealth = GetEntityHealth(vehicle) - local playerPed = GetPlayerPed(-1) + local playerPed = PlayerPedId() TaskWarpPedIntoVehicle(playerPed, vehicle, -1) end) @@ -219,7 +219,7 @@ Citizen.CreateThread(function() Citizen.Wait(10) - local coords = GetEntityCoords(GetPlayerPed(-1)) + local coords = GetEntityCoords(PlayerPedId()) 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 @@ -236,7 +236,7 @@ Citizen.CreateThread(function() Citizen.Wait(10) - local coords = GetEntityCoords(GetPlayerPed(-1)) + local coords = GetEntityCoords(PlayerPedId()) local isInMarker = false local currentZone = nil @@ -266,7 +266,7 @@ Citizen.CreateThread(function() Citizen.Wait(1) if CurrentTest == 'theory' then - local playerPed = GetPlayerPed(-1) + local playerPed = PlayerPedId() DisableControlAction(0, 1, true) -- LookLeftRight DisableControlAction(0, 2, true) -- LookUpDown @@ -274,7 +274,7 @@ Citizen.CreateThread(function() DisableControlAction(0, 142, true) -- MeleeAttackAlternate DisableControlAction(0, 106, true) -- VehicleMouseControlOverride else - Citizen.Wait(2000) + Citizen.Wait(500) end end end) @@ -285,9 +285,8 @@ Citizen.CreateThread(function() Citizen.Wait(10) if CurrentAction ~= nil then - SetTextComponentFormat('STRING') - AddTextComponentString(CurrentActionMsg) - DisplayHelpTextFromStringLabel(0, 0, 1, -1) + + ESX.ShowHelpNotification(CurrentActionMsg) if IsControlJustReleased(0, Keys['E']) then if CurrentAction == 'dmvschool_menu' then @@ -296,6 +295,8 @@ Citizen.CreateThread(function() CurrentAction = nil end + else + Citizen.Wait(500) end end end) @@ -307,7 +308,7 @@ Citizen.CreateThread(function() Citizen.Wait(10) if CurrentTest == 'drive' then - local playerPed = GetPlayerPed(-1) + local playerPed = PlayerPedId() local coords = GetEntityCoords(playerPed) local nextCheckPoint = CurrentCheckPoint + 1 @@ -350,6 +351,9 @@ Citizen.CreateThread(function() CurrentCheckPoint = CurrentCheckPoint + 1 end end + else + -- not currently taking driver test + Citizen.Wait(500) end end end) @@ -361,11 +365,11 @@ Citizen.CreateThread(function() if CurrentTest == 'drive' then - local playerPed = GetPlayerPed(-1) + local playerPed = PlayerPedId() - if IsPedInAnyVehicle(playerPed, false) then + if IsPedInAnyVehicle(playerPed, false) then - local vehicle = GetVehiclePedIsIn(playerPed, false) + local vehicle = GetVehiclePedIsIn(playerPed, false) local speed = GetEntitySpeed(vehicle) * Config.SpeedMultiplier local tooMuchSpeed = false @@ -388,7 +392,6 @@ Citizen.CreateThread(function() end local health = GetEntityHealth(vehicle) - if health < LastVehicleHealth then DriveErrors = DriveErrors + 1 @@ -397,10 +400,13 @@ Citizen.CreateThread(function() ESX.ShowNotification(_U('errors', DriveErrors, Config.MaxErrors)) -- avoid stacking faults - Citizen.Wait(1000) LastVehicleHealth = health + Citizen.Wait(1500) end end + else + -- not currently taking driver test + Citizen.Wait(500) end end end) \ No newline at end of file diff --git a/config.lua b/config.lua index aa8eed1a..d08b91db 100644 --- a/config.lua +++ b/config.lua @@ -5,184 +5,181 @@ Config.SpeedMultiplier = 3.6 Config.Locale = 'fr' Config.Prices = { - dmv = 200, - drive = 500, - drive_bike = 500, - drive_truck = 500 + dmv = 500, + drive = 2500, + drive_bike = 3000, + drive_truck = 5000 } Config.VehicleModels = { - drive = 'blista', - drive_bike = 'sanchez', - drive_truck = 'mule3' + drive = 'blista', + drive_bike = 'sanchez', + drive_truck = 'mule3' } Config.SpeedLimits = { - residence = 50, - town = 80, - freeway = 120 + residence = 50, + town = 80, + freeway = 120 } Config.Zones = { - DMVSchool = { - Pos = {x = 239.471, y = -1380.960, z = 32.741}, - Size = {x = 1.5, y = 1.5, z = 1.0}, - Color = {r = 204, g = 204, b = 0}, - Type = 1 - }, + DMVSchool = { + Pos = {x = 239.471, y = -1380.960, z = 32.741}, + Size = {x = 1.5, y = 1.5, z = 1.0}, + Color = {r = 204, g = 204, b = 0}, + Type = 1 + }, - VehicleSpawnPoint = { - Pos = {x = 249.409, y = -1407.230, z = 30.4094}, - Size = {x = 1.5, y = 1.5, z = 1.0}, - Color = {r = 204, g = 204, b = 0}, - Type = -1 - }, + VehicleSpawnPoint = { + Pos = {x = 249.409, y = -1407.230, z = 30.4094, h = 317.0}, + Size = {x = 1.5, y = 1.5, z = 1.0}, + Color = {r = 204, g = 204, b = 0}, + Type = -1 + } } Config.CheckPoints = { - { - Pos = {x = 255.139, y = -1400.731, z = 29.537}, - Action = function(playerPed, vehicle, setCurrentZoneType) - DrawMissionText(_U('next_point_speed') .. Config.SpeedLimits['residence'] .. 'km/h', 5000) - end - }, + { + Pos = {x = 255.139, y = -1400.731, z = 29.537}, + Action = function(playerPed, vehicle, setCurrentZoneType) + DrawMissionText(_U('next_point_speed', Config.SpeedLimits['residence']), 5000) + end + }, - { - Pos = {x = 271.874, y = -1370.574, z = 30.932}, - Action = function(playerPed, vehicle, setCurrentZoneType) - DrawMissionText(_U('go_next_point'), 5000) - end - }, + { + Pos = {x = 271.874, y = -1370.574, z = 30.932}, + Action = function(playerPed, vehicle, setCurrentZoneType) + DrawMissionText(_U('go_next_point'), 5000) + end + }, - { - Pos = {x = 234.907, y = -1345.385, z = 29.542}, - Action = function(playerPed, vehicle, setCurrentZoneType) - Citizen.CreateThread(function() - DrawMissionText(_U('stop_for_ped'), 5000) - PlaySound(-1, 'RACE_PLACED', 'HUD_AWARDS', 0, 0, 1) - FreezeEntityPosition(vehicle, true) - Citizen.Wait(4000) - FreezeEntityPosition(vehicle, false) - DrawMissionText(_U('good_lets_cont'), 5000) + { + Pos = {x = 234.907, y = -1345.385, z = 29.542}, + Action = function(playerPed, vehicle, setCurrentZoneType) + Citizen.CreateThread(function() + DrawMissionText(_U('stop_for_ped'), 5000) + PlaySound(-1, 'RACE_PLACED', 'HUD_AWARDS', 0, 0, 1) + FreezeEntityPosition(vehicle, true) + Citizen.Wait(4000) - end) - end - }, + FreezeEntityPosition(vehicle, false) + DrawMissionText(_U('good_lets_cont'), 5000) + end) + end + }, - { - Pos = {x = 217.821, y = -1410.520, z = 28.292}, - Action = function(playerPed, vehicle, setCurrentZoneType) + { + Pos = {x = 217.821, y = -1410.520, z = 28.292}, + Action = function(playerPed, vehicle, setCurrentZoneType) + setCurrentZoneType('town') - setCurrentZoneType('town') + Citizen.CreateThread(function() + DrawMissionText(_U('stop_look_left', Config.SpeedLimits['town']), 5000) + PlaySound(-1, 'RACE_PLACED', 'HUD_AWARDS', 0, 0, 1) + FreezeEntityPosition(vehicle, true) + Citizen.Wait(6000) - Citizen.CreateThread(function() - DrawMissionText(_U('stop_look_left') .. Config.SpeedLimits['town'] .. 'km/h', 5000) - PlaySound(-1, 'RACE_PLACED', 'HUD_AWARDS', 0, 0, 1) - FreezeEntityPosition(vehicle, true) - Citizen.Wait(6000) - FreezeEntityPosition(vehicle, false) - DrawMissionText(_U('good_turn_right'), 5000) - end) - end - }, + FreezeEntityPosition(vehicle, false) + DrawMissionText(_U('good_turn_right'), 5000) + end) + end + }, - { - Pos = {x = 178.550, y = -1401.755, z = 27.725}, - Action = function(playerPed, vehicle, setCurrentZoneType) - DrawMissionText(_U('watch_traffic_lightson'), 5000) - end - }, + { + Pos = {x = 178.550, y = -1401.755, z = 27.725}, + Action = function(playerPed, vehicle, setCurrentZoneType) + DrawMissionText(_U('watch_traffic_lightson'), 5000) + end + }, - { - Pos = {x = 113.160, y = -1365.276, z = 27.725}, - Action = function(playerPed, vehicle, setCurrentZoneType) - DrawMissionText(_U('go_next_point'), 5000) - end - }, + { + Pos = {x = 113.160, y = -1365.276, z = 27.725}, + Action = function(playerPed, vehicle, setCurrentZoneType) + DrawMissionText(_U('go_next_point'), 5000) + end + }, - { - Pos = {x = -73.542, y = -1364.335, z = 27.789}, - Action = function(playerPed, vehicle, setCurrentZoneType) - DrawMissionText(_U('stop_for_passing'), 5000) - PlaySound(-1, 'RACE_PLACED', 'HUD_AWARDS', 0, 0, 1) - FreezeEntityPosition(vehicle, true) - Citizen.Wait(6000) - FreezeEntityPosition(vehicle, false) - end - }, + { + Pos = {x = -73.542, y = -1364.335, z = 27.789}, + Action = function(playerPed, vehicle, setCurrentZoneType) + DrawMissionText(_U('stop_for_passing'), 5000) + PlaySound(-1, 'RACE_PLACED', 'HUD_AWARDS', 0, 0, 1) + FreezeEntityPosition(vehicle, true) + Citizen.Wait(6000) + FreezeEntityPosition(vehicle, false) + end + }, - { - Pos = {x = -355.143, y = -1420.282, z = 27.868}, - Action = function(playerPed, vehicle, setCurrentZoneType) - DrawMissionText(_U('go_next_point'), 5000) - end - }, + { + Pos = {x = -355.143, y = -1420.282, z = 27.868}, + Action = function(playerPed, vehicle, setCurrentZoneType) + DrawMissionText(_U('go_next_point'), 5000) + end + }, - { - Pos = {x = -439.148, y = -1417.100, z = 27.704}, - Action = function(playerPed, vehicle, setCurrentZoneType) - DrawMissionText(_U('go_next_point'), 5000) - end - }, + { + Pos = {x = -439.148, y = -1417.100, z = 27.704}, + Action = function(playerPed, vehicle, setCurrentZoneType) + DrawMissionText(_U('go_next_point'), 5000) + end + }, - { - Pos = {x = -453.790, y = -1444.726, z = 27.665}, - Action = function(playerPed, vehicle, setCurrentZoneType) + { + Pos = {x = -453.790, y = -1444.726, z = 27.665}, + Action = function(playerPed, vehicle, setCurrentZoneType) + setCurrentZoneType('freeway') - setCurrentZoneType('freeway') + DrawMissionText(_U('hway_time', Config.SpeedLimits['freeway']), 5000) + PlaySound(-1, 'RACE_PLACED', 'HUD_AWARDS', 0, 0, 1) + end + }, - DrawMissionText(_U('hway_time') .. Config.SpeedLimits['freeway'] .. 'km/h', 5000) - PlaySound(-1, 'RACE_PLACED', 'HUD_AWARDS', 0, 0, 1) - end - }, + { + Pos = {x = -463.237, y = -1592.178, z = 37.519}, + Action = function(playerPed, vehicle, setCurrentZoneType) + DrawMissionText(_U('go_next_point'), 5000) + end + }, - { - Pos = {x = -463.237, y = -1592.178, z = 37.519}, - Action = function(playerPed, vehicle, setCurrentZoneType) - DrawMissionText(_U('go_next_point'), 5000) - end - }, + { + Pos = {x = -900.647, y = -1986.28, z = 26.109}, + Action = function(playerPed, vehicle, setCurrentZoneType) + DrawMissionText(_U('go_next_point'), 5000) + end + }, - { - Pos = {x = -900.647, y = -1986.28, z = 26.109}, - Action = function(playerPed, vehicle, setCurrentZoneType) - DrawMissionText(_U('go_next_point'), 5000) - end - }, + { + Pos = {x = 1225.759, y = -1948.792, z = 38.718}, + Action = function(playerPed, vehicle, setCurrentZoneType) + DrawMissionText(_U('go_next_point'), 5000) + end + }, - { - Pos = {x = 1225.759, y = -1948.792, z = 38.718}, - Action = function(playerPed, vehicle, setCurrentZoneType) - DrawMissionText(_U('go_next_point'), 5000) - end - }, + { + Pos = {x = 1225.759, y = -1948.792, z = 38.718}, + Action = function(playerPed, vehicle, setCurrentZoneType) + setCurrentZoneType('town') + DrawMissionText(_U('in_town_speed', Config.SpeedLimits['town']), 5000) + end + }, - { - Pos = {x = 1225.759, y = -1948.792, z = 38.718}, - Action = function(playerPed, vehicle, setCurrentZoneType) + { + Pos = {x = 1163.603, y = -1841.771, z = 35.679}, + Action = function(playerPed, vehicle, setCurrentZoneType) + DrawMissionText(_U('gratz_stay_alert'), 5000) + PlaySound(-1, 'RACE_PLACED', 'HUD_AWARDS', 0, 0, 1) + end + }, - setCurrentZoneType('town') - - DrawMissionText(_U('in_town_speed') .. Config.SpeedLimits['town'] .. 'km/h', 5000) - end - }, - - { - Pos = {x = 1163.603, y = -1841.771, z = 35.679}, - Action = function(playerPed, vehicle, setCurrentZoneType) - DrawMissionText(_U('gratz_stay_alert'), 5000) - PlaySound(-1, 'RACE_PLACED', 'HUD_AWARDS', 0, 0, 1) - end - }, - - { - Pos = {x = 235.283, y = -1398.329, z = 28.921}, - Action = function(playerPed, vehicle, setCurrentZoneType) - ESX.Game.DeleteVehicle(vehicle) - end - }, + { + Pos = {x = 235.283, y = -1398.329, z = 28.921}, + Action = function(playerPed, vehicle, setCurrentZoneType) + ESX.Game.DeleteVehicle(vehicle) + end + } } diff --git a/html/questions.js b/html/questions.js index 2c1ae9cb..2e1c9421 100644 --- a/html/questions.js +++ b/html/questions.js @@ -1,71 +1,91 @@ var tableauQuestion = [ - { question : "Si vous conduisez à 80km/h, que vous approchez d'un lieu de résidence, cela veut dire que :", - propositionA : "Vous devez accélérer", - propositionB : "Vous pouvez garder votre vitesse, si vous ne croisez pas d'autres véhicules", - propositionC : "Vous devez ralentir", - propositionD : "Vous pouvez garder votre vitesse", - reponse : "C"}, - - { question : "Vous vous apprétez à tourner à droite au feu vert, mais vous voyez un piéton qui traverse :", - propositionA : "Vous passez avant le piéton", - propositionB : "Vous vérifiez qu'il n'y a pas d'autre véhicule et vous passez", - propositionC : "Vous attendez que le piéton est terminé", - propositionD : "Vous shoutez le piéton pour passer", - reponse : "C"}, - - { question : "Sans aucune indication : La vitesse dans une zone résidentielle est de : __ km/h", - propositionA : "50", - propositionB : "55", - propositionC : "65", - propositionD : "70", - reponse : "A"}, - - { question : "Avant chaque changement de file vous devez :", - propositionA : "Vérifiez vos rétroviseurs", - propositionB : "Vérifiez vos angles morts", - propositionC : "Signalez vos intentions", - propositionD : "Tout cela", - reponse : "D"}, - - { question : "What blood alcohol level is classified as driving while intoxicated?", - propositionA : "0.05%", - propositionB : "0.18%", - propositionC : "0.08%", - propositionD : "0.06%", - reponse : "C"}, - - { question : "A quel moment vous pouvez passer aux feux ?", - propositionA : "Quand il est vert", - propositionB : "Quand il n'y a personne sur l'intersection", - propositionC : "Vous êtes dans une zone d'école", - propositionD : "Quand il est vert et/ou rouge et que je tourne à droite", - reponse : "D"}, - - { question : "Un piéton est au feu rouge pour les piétons", - propositionA : "Vous le laissez passer", - propositionB : "Vous observez avant de continuer", - propositionC : "Vous lui faite un signe de la main", - propositionD : "Vous continuez votre chemin car votre feu est vert", - reponse : "D"}, - - { question : "Qu'est ce qui est permit quand vous dépassez un autre véhicule", - propositionA : "Le suivre de près pour le doubler plus vite", - propositionB : "Le doubler en quittant la route", - propositionC : "Conduire sur la route opposé pour le dépasser", - propositionD : "Dépasser la vitesse limite", - reponse : "C"}, - - { question : "Vous conduisez sur une rocade qui indique une vitesse maximum de 110 km/h. La plupart du traffic roule à 120 km/h, alors vous ne devriez pas conduire plus vite que :", - propositionA : "80 kmh", - propositionB : "40 kmh", - propositionC : "50 kmh", - propositionD : "110 kmh", - reponse : "D"}, - - { question : "Quand vous êtes dépassé par un autre véhicule il est important de ne PAS :", - propositionA : "Ralentir", - propositionB : "Vérifiez vos rétroviseurs", - propositionC : "Regarder les autres conducteurs", - propositionD : "Augmenter votre vitesse", - reponse : "D"}, + { + question: "Si vous conduisez à 80km/h, que vous approchez d'un lieu de résidence, cela veut dire que :", + propositionA: "Vous devez accélérer", + propositionB: "Vous pouvez garder votre vitesse, si vous ne croisez pas d'autres véhicules", + propositionC: "Vous devez ralentir", + propositionD: "Vous pouvez garder votre vitesse", + reponse: "C" + }, + + { + question: "Vous vous apprétez à tourner à droite au feu vert, mais vous voyez un piéton qui traverse :", + propositionA: "Vous passez avant le piéton", + propositionB: "Vous vérifiez qu'il n'y a pas d'autre véhicule et vous passez", + propositionC: "Vous attendez que le piéton est terminé", + propositionD: "Vous shoutez le piéton pour passer", + reponse: "C" + }, + + { + question: "Sans aucune indication : La vitesse dans une zone résidentielle est de : __ km/h", + propositionA: "50", + propositionB: "55", + propositionC: "65", + propositionD: "70", + reponse: "A" + }, + + { + question: "Avant chaque changement de file vous devez :", + propositionA: "Vérifiez vos rétroviseurs", + propositionB: "Vérifiez vos angles morts", + propositionC: "Signalez vos intentions", + propositionD: "Tout cela", + reponse: "D" + }, + + { + question: "What blood alcohol level is classified as driving while intoxicated?", + propositionA: "0.05%", + propositionB: "0.18%", + propositionC: "0.08%", + propositionD: "0.06%", + reponse: "C" + }, + + { + question: "A quel moment vous pouvez passer aux feux ?", + propositionA: "Quand il est vert", + propositionB: "Quand il n'y a personne sur l'intersection", + propositionC: "Vous êtes dans une zone d'école", + propositionD: "Quand il est vert et/ou rouge et que je tourne à droite", + reponse: "D" + }, + + { + question: "Un piéton est au feu rouge pour les piétons", + propositionA: "Vous le laissez passer", + propositionB: "Vous observez avant de continuer", + propositionC: "Vous lui faite un signe de la main", + propositionD: "Vous continuez votre chemin car votre feu est vert", + reponse: "D" + }, + + { + question: "Qu'est ce qui est permit quand vous dépassez un autre véhicule", + propositionA: "Le suivre de près pour le doubler plus vite", + propositionB: "Le doubler en quittant la route", + propositionC: "Conduire sur la route opposé pour le dépasser", + propositionD: "Dépasser la vitesse limite", + reponse: "C" + }, + + { + question: "Vous conduisez sur une rocade qui indique une vitesse maximum de 110 km/h. La plupart du traffic roule à 120 km/h, alors vous ne devriez pas conduire plus vite que :", + propositionA: "80 kmh", + propositionB: "40 kmh", + propositionC: "50 kmh", + propositionD: "110 kmh", + reponse: "D" + }, + + { + question: "Quand vous êtes dépassé par un autre véhicule il est important de ne PAS :", + propositionA: "Ralentir", + propositionB: "Vérifiez vos rétroviseurs", + propositionC: "Regarder les autres conducteurs", + propositionD: "Augmenter votre vitesse", + reponse: "D" + }, ] diff --git a/html/questions_en.js b/html/questions_en.js index 01e95a07..0cc0d572 100644 --- a/html/questions_en.js +++ b/html/questions_en.js @@ -1,71 +1,91 @@ var tableauQuestion = [ - { question : "If you're going 65 mph, and you're approaching a residential area you must:", - propositionA : "You accelerate", - propositionB : "You keep your speed, if you do not pass other vehicles", - propositionC : "You slow down", - propositionD : "You keep your speed", - reponse : "C"}, + { + question: "If you're going 80 km/h, and you're approaching a residential area you must:", + propositionA: "You accelerate", + propositionB: "You keep your speed, if you do not pass other vehicles", + propositionC: "You slow down", + propositionD: "You keep your speed", + reponse: "C" + }, - { question : "If you're turning right at a traffic light, but see a pedestrian crossing what do you do:", - propositionA : "You pass the pedestrian", - propositionB : "You check that there is no other vehicles around", - propositionC : "You wait until the pedestrian has crossed", - propositionD : "You shoot the pedestrian and continue to drive", - reponse : "C"}, + { + question: "If you're turning right at a traffic light, but see a pedestrian crossing what do you do:", + propositionA: "You pass the pedestrian", + propositionB: "You check that there is no other vehicles around", + propositionC: "You wait until the pedestrian has crossed", + propositionD: "You shoot the pedestrian and continue to drive", + reponse: "C" + }, - { question : "Without any prior indication, the speed in a residential area is: __ mph", - propositionA : "30", - propositionB : "35", - propositionC : "40", - propositionD : "45", - reponse : "A"}, + { + question: "Without any prior indication, the speed in a residential area is: __ km/h", + propositionA: "30 km/h", + propositionB: "50 km/h", + propositionC: "40 km/h", + propositionD: "60 km/h", + reponse: "B" + }, - { question : "Before every lane change you must:", - propositionA : "Check your mirrors", - propositionB : "Check your blind spots", - propositionC : "Signal your intentions", - propositionD : "All of the above", - reponse : "D"}, + { + question: "Before every lane change you must:", + propositionA: "Check your mirrors", + propositionB: "Check your blind spots", + propositionC: "Signal your intentions", + propositionD: "All of the above", + reponse: "D" + }, - { question : "What blood alcohol level is classified as driving while intoxicated?", - propositionA : "0.05%", - propositionB : "0.18%", - propositionC : "0.08%", - propositionD : "0.06%", - reponse : "C"}, + { + question: "What blood alcohol level is classified as driving while intoxicated?", + propositionA: "0.05%", + propositionB: "0.18%", + propositionC: "0.08%", + propositionD: "0.06%", + reponse: "C" + }, - { question : "When can you continue to drive at a traffic light?", - propositionA : "When it is green", - propositionB : "When there is nobody in the intersection", - propositionC : "You are in a school zone", - propositionD : "When it is green and / or red and you're turning right", - reponse : "D"}, + { + question: "When can you continue to drive at a traffic light?", + propositionA: "When it is green", + propositionB: "When there is nobody in the intersection", + propositionC: "You are in a school zone", + propositionD: "When it is green and / or red and you're turning right", + reponse: "D" + }, - { question : "A pedestrian has a do not cross signal, what do you do?", - propositionA : "You let them pass", - propositionB : "You observe before continuing", - propositionC : "You wave to tell them to cross", - propositionD : "You continue because your traffic light is green", - reponse : "D"}, + { + question: "A pedestrian has a do not cross signal, what do you do?", + propositionA: "You let them pass", + propositionB: "You observe before continuing", + propositionC: "You wave to tell them to cross", + propositionD: "You continue because your traffic light is green", + reponse: "D" + }, - { question : "What is allowed when passing another vehicle", - propositionA : "You follow it closely to pass it faster", - propositionB : "You pass it without leaving the roadway", - propositionC : "You drive on the opposite side of the road to pass", - propositionD : "You exceed the speed limit to pass them", - reponse : "C"}, + { + question: "What is allowed when passing another vehicle", + propositionA: "You follow it closely to pass it faster", + propositionB: "You pass it without leaving the roadway", + propositionC: "You drive on the opposite side of the road to pass", + propositionD: "You exceed the speed limit to pass them", + reponse: "C" + }, - { question : "You are driving on a highway which indicates a maximum speed of 70 mph. Most traffic drives at 75 mph, so you should not drive faster than:", - propositionA : "50 mph", - propositionB : "25 mph", - propositionC : "30 mph", - propositionD : "70 mph", - reponse : "D"}, + { + question: "You are driving on a highway which indicates a maximum speed of 120 km/h. But most trafficers drive at 125 km/h, so you should not drive faster than:", + propositionA: "120 km/h", + propositionB: "125 km/h", + propositionC: "130 km/h", + propositionD: "110 km/h", + reponse: "A" + }, - { question : "When you are overtaken by another vehicle it is important NOT to:", - propositionA : "Slow Down", - propositionB : "Check your mirrors", - propositionC : "Watch other drivers", - propositionD : "Increase your speed", - reponse : "D"}, + { + question: "When you are overtaken by another vehicle it is important NOT to:", + propositionA: "Slow Down", + propositionB: "Check your mirrors", + propositionC: "Watch other drivers", + propositionD: "Increase your speed", + reponse: "D" + }, ] diff --git a/html/questions_fi.js b/html/questions_fi.js index eda062cd..58aa65f6 100644 --- a/html/questions_fi.js +++ b/html/questions_fi.js @@ -1,71 +1,91 @@ var tableauQuestion = [ - { question : "Jos ajat 80km/h ja vastaan on tulossa asutus alue mitä teet ?", - propositionA : "Painat kaasua että pääset mahollisimman nopeaa pois", - propositionB : "Voit ajaa samaa vauhtia jos alueella ei ole muita autoja", - propositionC : "Sinun pitää hidastaa", - propositionD : "Voit jatkaa samaan malliin", - reponse : "C"}, - - { question : "Kun olet kääntymässä vasemmalle vihreistä valoista, näet jalankulkian jalkakäytävällä. Kummalla on lupa mennä ensin.", - propositionA : "Jalankulkijalla koska he voivat mennä tien yli millä valoilla tahansa", - propositionB : "Sinulla koska valo oli vihreä", - propositionC : "Jalankulkijalla, koska hänellä palaa vihreä valo", - propositionD : "Sinulla koska ajoneuvolla on aina oikeus ensin", - reponse : "C"}, - - { question : "Muualla ilmoittamatta, sallittu nopeus asutusalueella on ____ kmh.", - propositionA : "50", - propositionB : "55", - propositionC : "65", - propositionD : "70", - reponse : "A"}, - - { question : "Ennen jokaista kaistan vaihtoa, sinun pitäisi?", - propositionA : "Katsoa peilit", - propositionB : "Katsoa kuolleet kulmat", - propositionC : "Näyttää vilkuilla mitä aijot tehdä", - propositionD : "Kaikki yllä mainitut", - reponse : "D"}, - - { question : "Minkä veren alkoholipitoisuus luokitellaan päihtyneeksi?", - propositionA : "0.2 promillea", - propositionB : "0.8 promillea", - propositionC : "0.5 promillea", - propositionD : "0.4 promillea", - reponse : "C"}, - - { question : "Sinun on vedettävä sivuun ja pysähtyä, kunnes hälyytysajoneuvo on ajanut ohi sireenit päällä, ellei:", - propositionA : "Sinulla ole kiirre", - propositionB : "Jos hälyytysajoneuvolla on toisella kaistalla tilaa", - propositionC : "Olet koulunalueella", - propositionD : "Olet risteyksessä", - reponse : "D"}, - - { question : "Täytyykö poliisin vilkkuviin valoihin pysähtyä jos ne seuraavat sinua?", - propositionA : "Ei, jos poliisilla ei ole sireenejä päällä", - propositionB : "Kyllä", - propositionC : "Riippuu tilanteesta", - propositionD : "Ei", - reponse : "B"}, - - { question : "Mikä seuraavista on sallittua kun aloitat ohittaan ajoneuvoa?", - propositionA : "Ajaminen lähellä ennen ohitusta", - propositionB : "Koitat ajaa katukivetyksen kautta", - propositionC : "Ajaminen vastakkaisella kaistalla", - propositionD : "Nopeusrajoituksen ylittäminen", - reponse : "A"}, - - { question : "Ajat moottoritiellä, jonka nopeus on 120 km/h. Suurinosa liikenteestä ajaa 130km/h, joten sinun ei pitäisi ajaa nopeampaa kuin", - propositionA : "80 kmh", - propositionB : "40 kmh", - propositionC : "50 kmh", - propositionD : "120 kmh", - reponse : "D"}, - - { question : "Kun sinut ohittaa toinen ajoneuvo, mitä sinun EI pitäisi tehdä?", - propositionA : "Hiljentää", - propositionB : "Tarkistaa peilit", - propositionC : "Katsot toista kuskia", - propositionD : "Kiihdyttää", - reponse : "D"}, + { + question: "Jos ajat 80km/h ja vastaan on tulossa asutus alue mitä teet ?", + propositionA: "Painat kaasua että pääset mahollisimman nopeaa pois", + propositionB: "Voit ajaa samaa vauhtia jos alueella ei ole muita autoja", + propositionC: "Sinun pitää hidastaa", + propositionD: "Voit jatkaa samaan malliin", + reponse: "C" + }, + + { + question: "Kun olet kääntymässä vasemmalle vihreistä valoista, näet jalankulkian jalkakäytävällä. Kummalla on lupa mennä ensin.", + propositionA: "Jalankulkijalla koska he voivat mennä tien yli millä valoilla tahansa", + propositionB: "Sinulla koska valo oli vihreä", + propositionC: "Jalankulkijalla, koska hänellä palaa vihreä valo", + propositionD: "Sinulla koska ajoneuvolla on aina oikeus ensin", + reponse: "C" + }, + + { + question: "Muualla ilmoittamatta, sallittu nopeus asutusalueella on ____ km/h.", + propositionA: "50", + propositionB: "55", + propositionC: "65", + propositionD: "70", + reponse: "A" + }, + + { + question: "Ennen jokaista kaistan vaihtoa, sinun pitäisi?", + propositionA: "Katsoa peilit", + propositionB: "Katsoa kuolleet kulmat", + propositionC: "Näyttää vilkuilla mitä aijot tehdä", + propositionD: "Kaikki yllä mainitut", + reponse: "D" + }, + + { + question: "Minkä veren alkoholipitoisuus luokitellaan päihtyneeksi?", + propositionA: "0.2 promillea", + propositionB: "0.8 promillea", + propositionC: "0.5 promillea", + propositionD: "0.4 promillea", + reponse: "C" + }, + + { + question: "Sinun on vedettävä sivuun ja pysähtyä, kunnes hälyytysajoneuvo on ajanut ohi sireenit päällä, ellei:", + propositionA: "Sinulla ole kiirre", + propositionB: "Jos hälyytysajoneuvolla on toisella kaistalla tilaa", + propositionC: "Olet koulunalueella", + propositionD: "Olet risteyksessä", + reponse: "D" + }, + + { + question: "Täytyykö poliisin vilkkuviin valoihin pysähtyä jos ne seuraavat sinua?", + propositionA: "Ei, jos poliisilla ei ole sireenejä päällä", + propositionB: "Kyllä", + propositionC: "Riippuu tilanteesta", + propositionD: "Ei", + reponse: "B" + }, + + { + question: "Mikä seuraavista on sallittua kun aloitat ohittaan ajoneuvoa?", + propositionA: "Ajaminen lähellä ennen ohitusta", + propositionB: "Koitat ajaa katukivetyksen kautta", + propositionC: "Ajaminen vastakkaisella kaistalla", + propositionD: "Nopeusrajoituksen ylittäminen", + reponse: "A" + }, + + { + question: "Ajat moottoritiellä, jonka nopeus on 120 km/h. Suurinosa liikenteestä ajaa 130km/h, joten sinun ei pitäisi ajaa nopeampaa kuin", + propositionA: "80 kmh", + propositionB: "40 kmh", + propositionC: "50 kmh", + propositionD: "120 kmh", + reponse: "D" + }, + + { + question: "Kun sinut ohittaa toinen ajoneuvo, mitä sinun EI pitäisi tehdä?", + propositionA: "Hiljentää", + propositionB: "Tarkistaa peilit", + propositionC: "Katsot toista kuskia", + propositionD: "Kiihdyttää", + reponse: "D" + }, ] diff --git a/html/questions_pl.js b/html/questions_pl.js index 9fba7dcc..cfbf8e03 100644 --- a/html/questions_pl.js +++ b/html/questions_pl.js @@ -1,71 +1,91 @@ var tableauQuestion = [ - { question : "Jeśli masz 80 km/h, a zbliżasz się do terenu zabudowanego, musisz:", - propositionA : "Przyspieszyć", - propositionB : "Zahamować po czym jechać 50 km/h", - propositionC : "Zwolnić", - propositionD : "Zachować prędkość", - reponse : "C"}, + { + question: "Jeśli masz 80 km/h, a zbliżasz się do terenu zabudowanego, musisz:", + propositionA: "Przyspieszyć", + propositionB: "Zahamować po czym jechać 50 km/h", + propositionC: "Zwolnić", + propositionD: "Zachować prędkość", + reponse: "C" + }, - { question : "Jeśli skręcasz w prawo na światłach bezkolizyjnych, ale widzisz przejście dla pieszych, co robisz:", - propositionA : "Przepuszczam pieszego", - propositionB : "Sprawdzam, czy w pobliżu nie ma innych pojazdów", - propositionC : "Zachowuje szczególną ostrożność i przejeżdżam", - propositionD : "Strzelam do pieszego i jadę dalej", - reponse : "C"}, + { + question: "Jeśli skręcasz w prawo na światłach bezkolizyjnych, ale widzisz przejście dla pieszych, co robisz:", + propositionA: "Przepuszczam pieszego", + propositionB: "Sprawdzam, czy w pobliżu nie ma innych pojazdów", + propositionC: "Zachowuje szczególną ostrożność i przejeżdżam", + propositionD: "Strzelam do pieszego i jadę dalej", + reponse: "C" + }, - { question : "Bez wcześniejszego wskazania prędkość w obszarze zabudowanym wynosi: __ km/h", - propositionA : "40", - propositionB : "50", - propositionC : "60", - propositionD : "70", - reponse : "B"}, + { + question: "Bez wcześniejszego wskazania prędkość w obszarze zabudowanym wynosi: __ km/h", + propositionA: "40", + propositionB: "50", + propositionC: "60", + propositionD: "70", + reponse: "B" + }, - { question : "Przed każdą zmianą pasa ruchu należy:", - propositionA : "Spojżeć w lusterka", - propositionB : "Sprawdź swoje martwe pole", - propositionC : "Zasygnalizuj swoje zamiary", - propositionD : "Wszystkie powyższe", - reponse : "D"}, + { + question: "Przed każdą zmianą pasa ruchu należy:", + propositionA: "Spojżeć w lusterka", + propositionB: "Sprawdź swoje martwe pole", + propositionC: "Zasygnalizuj swoje zamiary", + propositionD: "Wszystkie powyższe", + reponse: "D" + }, - { question : "Jaki poziom alkoholu we krwi NIE jest klasyfikowany jako jazda po pijanemu?", - propositionA : "0.02%", - propositionB : "0.19%", - propositionC : "0.05%", - propositionD : "0.04%", - reponse : "A"}, + { + question: "Jaki poziom alkoholu we krwi NIE jest klasyfikowany jako jazda po pijanemu?", + propositionA: "0.02%", + propositionB: "0.19%", + propositionC: "0.05%", + propositionD: "0.04%", + reponse: "A" + }, - { question : "Kiedy możesz kontynuować jazdę na światłach?", - propositionA : "Kiedy zaświeci się zielone", - propositionB : "Kiedy nie ma nikogo na skrzyżowaniu", - propositionC : "Kiedy zaświeci się żółte", - propositionD : "Kiedy jest zielony lub czerwony ale skręcasz w prawo", - reponse : "A"}, + { + question: "Kiedy możesz kontynuować jazdę na światłach?", + propositionA: "Kiedy zaświeci się zielone", + propositionB: "Kiedy nie ma nikogo na skrzyżowaniu", + propositionC: "Kiedy zaświeci się żółte", + propositionD: "Kiedy jest zielony lub czerwony ale skręcasz w prawo", + reponse: "A" + }, - { question : "Przewożąc ładunek gabarytowy możesz poruszać się tylko:", - propositionA : "Drogami do tego przeznaczonymi", - propositionB : "Nocami", - propositionC : "Drogami ekspresowymi", - propositionD : "Skrzyżowaniami o ruchu okrężnym", - reponse : "B"}, + { + question: "Przewożąc ładunek gabarytowy możesz poruszać się tylko:", + propositionA: "Drogami do tego przeznaczonymi", + propositionB: "Nocami", + propositionC: "Drogami ekspresowymi", + propositionD: "Skrzyżowaniami o ruchu okrężnym", + reponse: "B" + }, - { question : "Posiadając prawo jazdy kategorii B możesz prowadzić :", - propositionA : "Pojazd samochodowy o dopuszczalnej masie całkowitej nieprzekraczającej 3.5 t, z wyjątkiem autobusu i motocykla", - propositionB : "Zespołem pojazdów złożonym z pojazdu, o którym mowa wyżej, oraz z przyczepy lekkiej", - propositionC : "Zespołem pojazdów złożonym z pojazdu, o którym mowa wyżej, oraz z przyczepy innej niż lekka, o ile łączna dopuszczalna masa całkowita zespołu tych pojazdów nie przekracza 4250 kg", - propositionD : "Wszystkie powyższe", - reponse : "D"}, + { + question: "Posiadając prawo jazdy kategorii B możesz prowadzić :", + propositionA: "Pojazd samochodowy o dopuszczalnej masie całkowitej nieprzekraczającej 3.5 t, z wyjątkiem autobusu i motocykla", + propositionB: "Zespołem pojazdów złożonym z pojazdu, o którym mowa wyżej, oraz z przyczepy lekkiej", + propositionC: "Zespołem pojazdów złożonym z pojazdu, o którym mowa wyżej, oraz z przyczepy innej niż lekka, o ile łączna dopuszczalna masa całkowita zespołu tych pojazdów nie przekracza 4250 kg", + propositionD: "Wszystkie powyższe", + reponse: "D" + }, - { question : "Jedziesz autostradą, która wskazuje maksymalną prędkość 120 km/h. Większość aut jedzie z prędkością 140km/h, więc nie powinieneś jechać szybciej niż:", - propositionA : "120 km/h", - propositionB : "130 km/h", - propositionC : "140 km/h", - propositionD : "150 km/h", - reponse : "A"}, + { + question: "Jedziesz autostradą, która wskazuje maksymalną prędkość 120 km/h. Większość aut jedzie z prędkością 140km/h, więc nie powinieneś jechać szybciej niż:", + propositionA: "120 km/h", + propositionB: "130 km/h", + propositionC: "140 km/h", + propositionD: "150 km/h", + reponse: "A" + }, - { question : "Wyprzedzając inne pojazdy należy:", - propositionA : "Zwolnić", - propositionB : "Trąbić na wyprzedzany pojazd", - propositionC : "Oglądać wyprzedzany pojazd", - propositionD : "Zwiększ prędkość", - reponse : "D"}, + { + question: "Wyprzedzając inne pojazdy należy:", + propositionA: "Zwolnić", + propositionB: "Trąbić na wyprzedzany pojazd", + propositionC: "Oglądać wyprzedzany pojazd", + propositionD: "Zwiększ prędkość", + reponse: "D" + }, ] diff --git a/html/scripts.js b/html/scripts.js index e68ea08f..5f78d4e2 100644 --- a/html/scripts.js +++ b/html/scripts.js @@ -9,119 +9,124 @@ var nbPossibleQuestions = 10; // number of questions in database questions.js var lastClick = 0; function getRandomQuestion() { - var random = Math.floor(Math.random() * nbPossibleQuestions) + var random = Math.floor(Math.random() * nbPossibleQuestions) - while (true) { - if (questionUsed.indexOf(random) === -1) { - break - } + while (true) { + if (questionUsed.indexOf(random) === -1) { + break + } - random = Math.floor(Math.random() * nbPossibleQuestions) - } + random = Math.floor(Math.random() * nbPossibleQuestions) + } - questionUsed.push(random) + questionUsed.push(random) - return random + return random } // Partial Functions function closeMain() { - $(".home").css("display", "none"); + $(".home").css("display", "none"); } function openMain() { - $(".home").css("display", "block"); + $(".home").css("display", "block"); } function closeAll() { - $(".body").css("display", "none"); + $(".body").css("display", "none"); } function openQuestionnaire() { - $(".questionnaire-container").css("display", "block"); - var randomQuestion = getRandomQuestion(); - $("#questionNumero").html("Question: " + questionNumber); - $("#question").html(tableauQuestion[randomQuestion].question); - $(".answerA").html(tableauQuestion[randomQuestion].propositionA); - $(".answerB").html(tableauQuestion[randomQuestion].propositionB); - $(".answerC").html(tableauQuestion[randomQuestion].propositionC); - $(".answerD").html(tableauQuestion[randomQuestion].propositionD); - $('input[name=question]').attr('checked',false); - goodAnswer.push(tableauQuestion[randomQuestion].reponse); - $(".questionnaire-container .progression").val(questionNumber-1); + $(".questionnaire-container").css("display", "block"); + var randomQuestion = getRandomQuestion(); + + $("#questionNumero").html("Question: " + questionNumber); + $("#question").html(tableauQuestion[randomQuestion].question); + $(".answerA").html(tableauQuestion[randomQuestion].propositionA); + $(".answerB").html(tableauQuestion[randomQuestion].propositionB); + $(".answerC").html(tableauQuestion[randomQuestion].propositionC); + $(".answerD").html(tableauQuestion[randomQuestion].propositionD); + $('input[name=question]').attr('checked', false); + + goodAnswer.push(tableauQuestion[randomQuestion].reponse); + $(".questionnaire-container .progression").val(questionNumber - 1); } function openResultGood() { - $(".resultGood").css("display", "block"); + $(".resultGood").css("display", "block"); } function openResultBad() { - $(".resultBad").css("display", "block"); + $(".resultBad").css("display", "block"); } function openContainer() { - $(".question-container").css("display", "block"); + $(".question-container").css("display", "block"); } function closeContainer() { - $(".question-container").css("display", "none"); + $(".question-container").css("display", "none"); } // Listen for NUI Events -window.addEventListener('message', function(event){ +window.addEventListener('message', function (event) { - var item = event.data; - // Open & Close main gang window - if(item.openQuestion == true) { - openContainer(); - openMain(); - } - if(item.openQuestion == false) { - closeContainer(); - closeMain(); - } - // Open sub-windows / partials - if(item.openSection == "question") { - closeAll(); - openQuestionnaire(); - } + var item = event.data; + + // Open & Close main window + if (item.openQuestion == true) { + openContainer(); + openMain(); + } + + if (item.openQuestion == false) { + closeContainer(); + closeMain(); + } + + // Open sub-windows / partials + if (item.openSection == "question") { + closeAll(); + openQuestionnaire(); + } }); // Handle Button Presses -$(".btnQuestion").click(function(){ - $.post('http://esx_dmvschool/question', JSON.stringify({})); -}); -$(".btnClose").click(function(){ - $.post('http://esx_dmvschool/close', JSON.stringify({})); -}); -$(".btnKick").click(function(){ - $.post('http://esx_dmvschool/kick', JSON.stringify({})); +$(".btnQuestion").click(function () { + $.post('http://esx_dmvschool/question', JSON.stringify({})); }); +$(".btnClose").click(function () { + $.post('http://esx_dmvschool/close', JSON.stringify({})); +}); + +$(".btnKick").click(function () { + $.post('http://esx_dmvschool/kick', JSON.stringify({})); +}); // Handle Form Submits -$("#question-form").submit(function(e) { +$("#question-form").submit(function (e) { - e.preventDefault(); + e.preventDefault(); - if(questionNumber!=nbQuestionToAnswer){ - //question 1 to 9 : pushing answer in array - closeAll(); - userAnswer.push($('input[name="question"]:checked').val()); - questionNumber++; - openQuestionnaire(); - } - else { - // question 10 : comparing arrays and sending number of good answers - userAnswer.push($('input[name="question"]:checked').val()); - var nbGoodAnswer = 0; - for (i = 0; i < nbQuestionToAnswer; i++) { - if (userAnswer[i] == goodAnswer[i]) { - nbGoodAnswer++; - } - } - closeAll(); - if(nbGoodAnswer >= nbAnswerNeeded) { - openResultGood(); - } - else{ - openResultBad(); - } - } + if (questionNumber != nbQuestionToAnswer) { + //question 1 to 9 : pushing answer in array + closeAll(); + userAnswer.push($('input[name="question"]:checked').val()); + questionNumber++; + openQuestionnaire(); + } else { + // question 10 : comparing arrays and sending number of good answers + userAnswer.push($('input[name="question"]:checked').val()); + var nbGoodAnswer = 0; + for (i = 0; i < nbQuestionToAnswer; i++) { + if (userAnswer[i] == goodAnswer[i]) { + nbGoodAnswer++; + } + } - return false; + closeAll(); + if (nbGoodAnswer >= nbAnswerNeeded) { + openResultGood(); + } else { + openResultBad(); + } + } + + return false; }); diff --git a/html/ui.html b/html/ui.html index e0f8dcd0..59ffe301 100644 --- a/html/ui.html +++ b/html/ui.html @@ -13,23 +13,34 @@
- -

Bienvenu à votre Auto-école

-
Tous les citoyens de Los Santos doivent réussir leur examen de code avant de pouvoir conduire.
Prenez votre temps, répondez avec du bon sens, ne répondez pas au hasard.

- Examen de Code
- - L'examen de code coute 200$, cela n'est pas remboursé si vous échouez.
- - N'ayez pas peur, l'auto-école accepte les crédits, mais faite attention à ne pas vous endetter
- - Si vous loupez votre test une première fois, vous ne pouvez pas le repasser de suite, vous devrez le retenter un autre jour.

- Examen de Conduite
- - L'examen de Conduite coute 500$, comme pour l'examen de code, ce paiement ne vous sera pas remboursé si vous échoué.
- - La chose principale pour votre permis c'est de faire attention à ce qui vous entoure et surtout éviter les accidents !

+ +
+ +
+

Bienvenu à votre Auto-école

+
+
Tous les citoyens de Los Santos doivent réussir leur examen de code avant de pouvoir conduire. +
Prenez votre temps, répondez avec du bon sens, ne répondez pas au hasard. +
+
+
+ Examen de Code +
- L'examen de code coute 200$, cela n'est pas remboursé si vous échouez. +
- N'ayez pas peur, l'auto-école accepte les crédits, mais faite attention à ne pas vous endetter +
- Si vous loupez votre test une première fois, vous ne pouvez pas le repasser de suite, vous devrez le retenter un + autre jour. +
+
Examen de Conduite +
- L'examen de Conduite coute 500$, comme pour l'examen de code, ce paiement ne vous sera pas remboursé si vous échoué. +
- La chose principale pour votre permis c'est de faire attention à ce qui vous entoure et surtout éviter les accidents + !

- Démarrer + Démarrer
-
+

Progrès

- +
@@ -49,42 +60,53 @@
-
+
- - + + -
+

Progrès

- +
- +
-

Bon travail !



Vous avez bien travaillé durant l'examen!

Vous pouvez maintenant fermer cette fenètre et passer à l'examen.
+
+

Bon travail !

+
+
Vous avez bien travaillé durant l'examen! +
+
Vous pouvez maintenant fermer cette fenètre et passer à l'examen.
- Fermer + Fermer
-
+

Progrès

- +
-

Vous avez échoué



Vous n'êtes pas prêt pour ce test, essayez une nouvelle fois, plus tard...

+
+

Vous avez échoué

+
+
Vous n'êtes pas prêt pour ce test, essayez une nouvelle fois, plus tard... +
+
+
-
+

Progrès

- +
@@ -94,5 +116,5 @@ - + \ No newline at end of file diff --git a/html/ui_en.html b/html/ui_en.html index 4b4adfa6..322a6b60 100644 --- a/html/ui_en.html +++ b/html/ui_en.html @@ -1,98 +1,117 @@ - - + + -
-
- -
-

Driving School

-
- -
-
- -

Welcome to Driving School

-
All citizens of Los Santos must pass their exam before they can drive.
Take your time, answer with common sense, and do not answer randomly.

- Theory Test
- - The Theory Test costs $200, this is not refunded if you fail the test.
- - Don't be afraid, the driving school accepts credit, but be careful not to get into debt.
- - If you fail your test the first time, you can't retake it immediately, you'll have to take it at a later date.

- Driving Test
- - The Driving Test costs $500, just like the theory test, this payment will not be refunded if you fail.
- - Make sure you stay alert whilst driving, and avoid accidents!

-
-
- Start -
-
-

Progress

- -
-
- -
-
-

-

-
-
- - -
-
- - -
-
- - -
-
- - -
- -
-
-
-

Progress

- -
-
- -
-
-

Good work!



You did well during the examination.

You can close this window, and go take your road test(s).
-
-
- Close -
-
-

Progress

- -
-
-
-
-

You failed



You weren't ready for this test, try again later...

-
-
- Close -
-
-

Progress

- -
-
-
-
+
+
+ +
+

Driving School

+
+ +
+
+ +
+ +
+

Welcome to Driving School

+
+
All citizens of Los Santos must pass their exam before they can drive. +
Take your time, answer with common sense, and do not answer randomly. +
+
Theory Test +
- The Theory Test costs $200, this is not refunded if you fail the test. +
- Don't be afraid, the driving school accepts credit, but be careful not to get into debt. +
- If you fail your test the first time, you can't retake it immediately, you'll have to take it at a later date. +
+
Driving Test +
- The Driving Test costs $500, just like the theory test, this payment will not be refunded if you fail. +
- Make sure you stay alert whilst driving, and avoid accidents!

+
+
+
+ Start +
+
+

Progress

+ +
+
+ +
+
+

+

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+

Progress

+ +
+
+ +
+
+
+

Good work!

+
+
You did well during the examination. +
+
You can close this window, and go take your road test(s).
+
+
+ Close +
+
+

Progress

+ +
+
+
+
+
+

You failed

+
+
You weren't ready for this test, try again later... +
+
+
+
+
+ Close +
+
+

Progress

+ +
+
+
+
- - - - + + + + \ No newline at end of file diff --git a/html/ui_fi.html b/html/ui_fi.html index a47d4b74..117f33ca 100644 --- a/html/ui_fi.html +++ b/html/ui_fi.html @@ -1,98 +1,118 @@ - - + + -
-
- -
-

Autokoulu

-
- -
-
- -

Tervetuloa autokouluun

-
Vaadimme kaikilta kansalaisilta että pääset läpi teoriaoppitestin ennen kuin voit saada voimassa olevan ajokortin.
Varaa aikaa ja vastaa maalaisjärjellä, älä yritä vastata tuurilla.

- Teoriakoe
- - Teoriakoe maksaa 200 € ja siitä ei voi saada rahoja takaisin jos epäonnistut
- - Älä huoli, Autokoulu antaa maksaa luotolla, mutta älä ota liian paljon luottoa
- - Jos epäonnistut testissä, et voi ottaa sitä heti uudelleen, palaa takaisin toisella kertaa yrittään uudelleen.

- Inssi
- - Ajokortti vaihtoehtoja on useita ja hinnat vaihtelee niitten mukaan.
- - Inssin päätavote on kiinittää huomiota yksityiskohtiin, ympäristöön ja liikenteeseen. Älä myöskään kolaroi!

-
-
- Aloitus -
-
-

Edistyminen

- -
-
- -
-
-

-

-
-
- - -
-
- - -
-
- - -
-
- - -
- -
-
-
-

Edistyminen

- -
-
- -
-
-

Hienoa !



Sinulla meni testi aika hyvin!

Voit sulkea tämän ikkunan nyt ja jatkaa inssikokeeseen.
-
-
- Sulje -
-
-

Edistyminen

- -
-
-
-
-

Epäonnistuit



Et ole vielä valmis aloittaa suorittaa mitään ajokorttia, kokeile toisella kertaa.

-
-
- Sulje -
-
-

Edistyminen

- -
-
-
-
+
+
+ +
+

Autokoulu

+
+ +
+
+ +
+ +
+

Tervetuloa autokouluun

+
+
Vaadimme kaikilta kansalaisilta että pääset läpi teoriaoppitestin ennen kuin voit saada voimassa olevan ajokortin. +
Varaa aikaa ja vastaa maalaisjärjellä, älä yritä vastata tuurilla. +
+
+
+ Teoriakoe +
- Teoriakoe maksaa 200 € ja siitä ei voi saada rahoja takaisin jos epäonnistut +
- Älä huoli, Autokoulu antaa maksaa luotolla, mutta älä ota liian paljon luottoa +
- Jos epäonnistut testissä, et voi ottaa sitä heti uudelleen, palaa takaisin toisella kertaa yrittään uudelleen. +
+
Inssi +
- Ajokortti vaihtoehtoja on useita ja hinnat vaihtelee niitten mukaan. +
- Inssin päätavote on kiinittää huomiota yksityiskohtiin, ympäristöön ja liikenteeseen. Älä myöskään kolaroi!

+
+
+ Aloitus +
+
+

Edistyminen

+ +
+
+ +
+
+

+

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+

Edistyminen

+ +
+
+ +
+
+
+

Hienoa !

+
+
Sinulla meni testi aika hyvin! +
+
Voit sulkea tämän ikkunan nyt ja jatkaa inssikokeeseen.
+
+
+ Sulje +
+
+

Edistyminen

+ +
+
+
+
+
+

Epäonnistuit

+
+
Et ole vielä valmis aloittaa suorittaa mitään ajokorttia, kokeile toisella kertaa. +
+
+
+
+
+ Sulje +
+
+

Edistyminen

+ +
+
+
+
- - - - + + + + - + \ No newline at end of file diff --git a/html/ui_pl.html b/html/ui_pl.html index ad41217f..c7964f51 100644 --- a/html/ui_pl.html +++ b/html/ui_pl.html @@ -1,99 +1,118 @@ - - + + -
-
- -
-

Szkoła Jazdy

-
- -
-
- -

Witaj w szkole jazdy.

-
Wszyscy mieszkańcy naszej wyspy muszą zdać egzamin zanim zaczną jeździć po ulicach.
Nie spiesz się, odpowiadaj zgodnie z polskimi przepisami i nie odpowiadaj losowo.

- Egzamin teoretyczny
- - Test teoretyczny kosztuje 200 $, kwota uiszczana za każde podejście.
- - Jeśli nie zdasz za pierwszym razem możesz przystąpić ponownie
- - Nie obawiaj się, szkoła jazdy akceptuje kredyt, ale uważaj, aby nie zadłużać się za bardzo.
- - Jeśli nie zaliczysz egzaminu teoretycznego, nie możesz przystąpić do egzaminu praktycznego.

- Egzamin praktycznyt
- - Egzamin praktyczny kosztuje 500 $, tak jak w przypadku praktyki kwota uiszczana jest za każde podejście.
- - Zachowaj czujność podczas jazdy i unikaj wypadków!

-
-
- Start -
-
-

Postęp

- -
-
- -
-
-

-

-
-
- - -
-
- - -
-
- - -
-
- - -
- -
-
-
-

Postęp

- -
-
- -
-
-

Gratulacje!



Dobrze się spisałeś podczas egzaminu.

Możesz zamknąć to okno i przejść do egzaminu praktycznego.
-
-
- Zamknij -
-
-

Postęp

- -
-
-
-
-

Egzamin niezaliczony



Nie jesteś gotowy na ten test, spróbuj ponownie później ...

-
-
- Zamknij -
-
-

Postęp

- -
-
-
-
+
+
+ +
+

Szkoła Jazdy

+
+ +
+
+ +
+ +
+

Witaj w szkole jazdy.

+
+
Wszyscy mieszkańcy naszej wyspy muszą zdać egzamin zanim zaczną jeździć po ulicach. +
Nie spiesz się, odpowiadaj zgodnie z polskimi przepisami i nie odpowiadaj losowo. +
+
Egzamin teoretyczny +
- Test teoretyczny kosztuje 200 $, kwota uiszczana za każde podejście. +
- Jeśli nie zdasz za pierwszym razem możesz przystąpić ponownie +
- Nie obawiaj się, szkoła jazdy akceptuje kredyt, ale uważaj, aby nie zadłużać się za bardzo. +
- Jeśli nie zaliczysz egzaminu teoretycznego, nie możesz przystąpić do egzaminu praktycznego. +
+
Egzamin praktycznyt +
- Egzamin praktyczny kosztuje 500 $, tak jak w przypadku praktyki kwota uiszczana jest za każde podejście. +
- Zachowaj czujność podczas jazdy i unikaj wypadków!

+
+
+
+ Start +
+
+

Postęp

+ +
+
+ +
+
+

+

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+

Postęp

+ +
+
+ +
+
+
+

Gratulacje!

+
+
Dobrze się spisałeś podczas egzaminu. +
+
Możesz zamknąć to okno i przejść do egzaminu praktycznego.
+
+
+ Zamknij +
+
+

Postęp

+ +
+
+
+
+
+

Egzamin niezaliczony

+
+
Nie jesteś gotowy na ten test, spróbuj ponownie później ... +
+
+
+
+
+ Zamknij +
+
+

Postęp

+ +
+
+
+
- - - - + + + + \ No newline at end of file diff --git a/locales/br.lua b/locales/br.lua index 4358a08b..47f2fff4 100644 --- a/locales/br.lua +++ b/locales/br.lua @@ -1,16 +1,15 @@ Locales['br'] = { - ['you_paid'] = 'você pagou ~g~$%s~s~ para a auto escola', ['go_next_point'] = 'vá para o próximo ponto!', - ['in_town_speed'] = 'entrou na cidade, preste atenção à sua velocidade! Limite de velocidade: ~y~', - ['next_point_speed'] = 'vá para o próximo ponto! Limite de velocidade: ~y~', + ['in_town_speed'] = 'entrou na cidade, preste atenção à sua velocidade! Limite de velocidade: ~y~%s~s~ km/h', + ['next_point_speed'] = 'vá para o próximo ponto! Limite de velocidade: ~y~%s~s~ km/h', ['stop_for_ped'] = '~r~Pare~s~ para o pedestre atravessar o ~y~cruzando', ['good_lets_cont'] = '~g~Boa~s~, vamos continuar.', - ['stop_look_left'] = '~r~Pare~s~ and look ~y~left~s~. Speed Limit:~y~ ', + ['stop_look_left'] = '~r~Pare~s~ and look ~y~left~s~. Limite de velocidade: ~y~%s~s~ km/h', ['good_turn_right'] = '~g~Boa~s~, vire à direita e siga a em frente', ['watch_traffic_lightson'] = 'observe o trânsito e ~y~acenda suas luzes~s~!', ['stop_for_passing'] = '~r~Pare~s~ olher para um lado e para o outro e veja ser não tem veículos passando!', - ['hway_time'] = 'é hora de dirigir na auto-estrada! Limite de velocidade:~y~ ', + ['hway_time'] = 'é hora de dirigir na auto-estrada! Limite de velocidade: ~y~%s~s~ km/h', ['gratz_stay_alert'] = 'Estou impressionado, mas não se esqueça de ficar ~r~alerta~s~ enquanto dirigindo!', ['passed_test'] = 'você ~g~passou~s~ no teste, parabéns!', ['failed_test'] = 'você ~r~falhou~s~ no teste, melhor sorte da próxima vez!', @@ -25,5 +24,4 @@ Locales['br'] = { ['driving_too_fast'] = '~r~Você está dirigindo rápido demais~s~ o limite de velocidade atual é: ~y~%s~s~ km/h!', ['errors'] = 'erros: ~r~%s~s~/%s', ['you_damaged_veh'] = 'você danificou o veículo', - } diff --git a/locales/en.lua b/locales/en.lua index 7a22e717..6df3f17f 100644 --- a/locales/en.lua +++ b/locales/en.lua @@ -1,16 +1,15 @@ Locales['en'] = { - ['you_paid'] = 'you paid ~g~$%s~s~ to the DMV school', ['go_next_point'] = 'go to the next point!', - ['in_town_speed'] = 'entered town, pay attention to your speed! Speed Limit: ~y~', - ['next_point_speed'] = 'go to the next point! Speed Limit: ~y~', + ['in_town_speed'] = 'entered town, pay attention to your speed! Speed Limit: ~y~%s~s~ km/h', + ['next_point_speed'] = 'go to the next point! Speed Limit: ~y~%s~s~ km/h', ['stop_for_ped'] = '~r~Stop~s~ for the pedestrian ~y~crossing', ['good_lets_cont'] = '~g~Good~s~, continue.', - ['stop_look_left'] = '~r~Stop~s~ and look ~y~left~s~. Speed Limit:~y~ ', + ['stop_look_left'] = '~r~Stop~s~ and look ~y~left~s~. Speed Limit: ~y~%s~s~ km/h', ['good_turn_right'] = '~g~Good~s~, turn right and follow the line', ['watch_traffic_lightson'] = 'watch the traffic and ~y~turn on your lights~s~!', ['stop_for_passing'] = '~r~Stop~s~ for passing vehicles!', - ['hway_time'] = 'it\'s time to drive on the highway! Speed Limit:~y~ ', + ['hway_time'] = 'it\'s time to drive on the highway! Speed Limit: ~y~%s~s~ km/h', ['gratz_stay_alert'] = 'i\'m impressed, but don\'t forget to stay ~r~alert~s~ whilst driving!', ['passed_test'] = 'you ~g~passed~s~ the test, congratulations!', ['failed_test'] = 'you ~r~failed~s~ the test, better luck next time!', @@ -25,5 +24,4 @@ Locales['en'] = { ['driving_too_fast'] = '~r~You\'re driving too fast,~s~ the current speed limit is: ~y~%s~s~ km/h!', ['errors'] = 'mistakes: ~r~%s~s~/%s', ['you_damaged_veh'] = 'you damaged the vehicle', - } diff --git a/locales/fi.lua b/locales/fi.lua index 4d58dd5f..33745498 100644 --- a/locales/fi.lua +++ b/locales/fi.lua @@ -1,29 +1,27 @@ Locales['fi'] = { - - ['you_paid'] = 'sinä maksoit ~g~$', + ['you_paid'] = 'you paid ~g~$%s~s~ to the DMV school', ['go_next_point'] = 'mene seuraavaan pisteeseen.', - ['in_town_speed'] = 'saavuit kaupunkiin! Seuraa nopeuttasi Nopeusrajoitus: ~y~', - ['next_point_speed'] = 'mene seuraavaan pisteeseen Nopeusrajoitus: ~y~', + ['in_town_speed'] = 'saavuit kaupunkiin! Seuraa nopeuttasi Nopeusrajoitus: ~y~%s~s~ km/h', + ['next_point_speed'] = 'mene seuraavaan pisteeseen Nopeusrajoitus: ~y~%s~s~ km/h', ['stop_for_ped'] = '~r~Pysähdy~s~ katso tietä ~y~ylittäviä ~w~ jalankulikijoita', ['good_lets_cont'] = '~g~Hyvä~s~, jatkakaa.', - ['stop_look_left'] = '~r~Pysähdy~s~ ja katso ~y~vasemmalle~s~. Nopeusrajoitus:~y~ ', + ['stop_look_left'] = '~r~Pysähdy~s~ ja katso ~y~vasemmalle~s~. Nopeusrajoitus: ~y~%s~s~ km/h', ['good_turn_right'] = '~g~Hyvä~s~, käänny oikealle ja seuraa kaistaa', ['watch_traffic_lightson'] = 'seuraa liikennettä, ja ~y~käänny kun valot ovat vihreät~s~!', ['stop_for_passing'] = '~r~Pysähdy~s~ ohi menevien autojen vuoksi', - ['hway_time'] = 'on aika mennä moottoritielle. Nopeusrajoitus:~y~ ', + ['hway_time'] = 'on aika mennä moottoritielle. Nopeusrajoitus: ~y~%s~s~ km/h', ['gratz_stay_alert'] = 'onnitelut, ole ~r~tarkkana~s~ kun ajat!', ['passed_test'] = 'sinä ~g~läpäisit~s~ kokeen', ['failed_test'] = 'sinä ~r~epäonnistuit~s~ kokeessa', - ['theory_test'] = 'Teoriakoe $', - ['road_test_car'] = 'Ajokoe $', - ['road_test_bike'] = 'moottoripyörä ajokoe $', - ['road_test_truck'] = 'rekka ajokoe $', + ['theory_test'] = 'teoriakoe', + ['road_test_car'] = 'ajokoe', + ['road_test_bike'] = 'moottoripyörä ajokoe', + ['road_test_truck'] = 'rekka ajokoe', ['driving_school'] = 'Autokoulu', ['press_open_menu'] = 'paina ~INPUT_CONTEXT~ hankkiaksesi ajokortin', ['driving_school_blip'] = 'Autokoulu', ['driving_test_complete'] = 'ajokoe suoritettu', - ['driving_too_fast'] = '~r~Ajat liian nopeeta! Hidasta!~s~ Nopeusrajoitus:~y~ ', - ['errors'] = 'virheet: ~r~', + ['driving_too_fast'] = '~r~Ajat liian nopeeta! Hidasta!~s~ Nopeusrajoitus: ~y~%s~s~ km/h!', + ['errors'] = 'mistakes: ~r~%s~s~/%s', ['you_damaged_veh'] = 'sinä vahingoitit ajoneuvoa. Aja varovaisemmin...', - } diff --git a/locales/fr.lua b/locales/fr.lua index 6c34d87e..8668d3bb 100644 --- a/locales/fr.lua +++ b/locales/fr.lua @@ -1,16 +1,15 @@ Locales['fr'] = { - ['you_paid'] = 'vous avez payé ~g~$%s~s~', - ['go_next_point'] = 'allez vers le prochain passage !', - ['in_town_speed'] = 'entrée en ville, attention à votre vitesse ! Vitesse limite : ~y~', - ['next_point_speed'] = 'allez vers le prochain passage ! Vitesse limite : ~y~', + ['go_next_point'] = 'allez vers le prochain passage!', + ['in_town_speed'] = 'entrée en ville, attention à votre vitesse! Vitesse limite: ~y~%s~s~ km/h', + ['next_point_speed'] = 'allez vers le prochain passage! Vitesse limite: ~y~%s~s~ km/h', ['stop_for_ped'] = 'faite rapidement un ~r~stop~s~ pour le piéton qui ~y~traverse', ['good_lets_cont'] = '~g~Bien!~s~ continuons!', - ['stop_look_left'] = 'marquer rapidement un ~r~stop~s~ et regardez à votre ~y~gauche~s~. Vitesse limite : ~y~', + ['stop_look_left'] = 'marquer rapidement un ~r~stop~s~ et regardez à votre ~y~gauche~s~. Vitesse limite: ~y~%s~s~ km/h', ['good_turn_right'] = '~g~Bien!~s~ prenez à ~y~droite~s~ et suivez votre file', - ['watch_traffic_lightson'] = 'observez le traffic ~y~allumez vos feux~s~ !', - ['stop_for_passing'] = 'marquez le stop pour laisser passer les véhicules !', - ['hway_time'] = 'il est temps d\'aller sur la rocade ! Vitesse limite : ~y~', + ['watch_traffic_lightson'] = 'observez le traffic ~y~allumez vos feux~s~!', + ['stop_for_passing'] = 'marquez le stop pour laisser passer les véhicules!', + ['hway_time'] = 'il est temps d\'aller sur la rocade! Vitesse limite: ~y~%s~s~ km/h', ['gratz_stay_alert'] = 'bravo, restez vigiliant!', ['passed_test'] = 'vous avez ~g~réussi~s~ le test', ['failed_test'] = 'vous avez ~r~raté~s~ le test', @@ -23,7 +22,6 @@ Locales['fr'] = { ['driving_school_blip'] = 'auto-école', ['driving_test_complete'] = 'test de conduite terminé', ['driving_too_fast'] = 'vous roulez trop vite, vitesse limite: ~y~%s~s~ km/h!', - ['errors'] = 'erreurs : ~r~%s~s~/%s', + ['errors'] = 'erreurs: ~r~%s~s~/%s', ['you_damaged_veh'] = 'vous avez endommagé votre véhicule', - } diff --git a/locales/pl.lua b/locales/pl.lua index 8195f986..703fe405 100644 --- a/locales/pl.lua +++ b/locales/pl.lua @@ -1,15 +1,15 @@ Locales['pl'] = { ['you_paid'] = 'zapłaciłes ~g~$%s~s~ dla szkoły jazdy.', ['go_next_point'] = 'udaj się do nastepnego punktu!', - ['in_town_speed'] = 'wjeżdżasz do miasta, zachowaj ostrożność! Ograniczenie prędkości: ~y~', - ['next_point_speed'] = 'udaj się do nastepnego punktu! Ograniczenie prędkości: ~y~', + ['in_town_speed'] = 'wjeżdżasz do miasta, zachowaj ostrożność! Ograniczenie prędkości: ~y~%s~s~ km/h', + ['next_point_speed'] = 'udaj się do nastepnego punktu! Ograniczenie prędkości: ~y~%s~s~ km/h', ['stop_for_ped'] = '~r~Stop~s~ przejście ~y~dla pieszych', ['good_lets_cont'] = '~g~Świetnie~s~, kontynuuj.', - ['stop_look_left'] = '~r~Stop~s~ spójrz w ~y~lewo~s~. Ograniczenie prędkości:~y~ ', + ['stop_look_left'] = '~r~Stop~s~ spójrz w ~y~lewo~s~. Ograniczenie prędkości: ~y~%s~s~ km/h', ['good_turn_right'] = '~g~Świetnie~s~, skręć w prawo i podążaj za linią', ['watch_traffic_lightson'] = 'obserwuj ruch uliczny i ~y~włącz światła~s~!', ['stop_for_passing'] = '~r~Stop~s~ przepuść przejeżdźające pojazdy!', - ['hway_time'] = 'czas na autostradę! Ograniczenie prędkości:~y~ ', + ['hway_time'] = 'czas na autostradę! Ograniczenie prędkości: ~y~%s~s~ km/h', ['gratz_stay_alert'] = 'jestem pod wrażeniem, ale nie zapomnij się zatrzymać ~r~alert~s~ podczas jazdy!', ['passed_test'] = '~g~Zdałeś~s~ egzamin, gratulacje!', ['failed_test'] = '~r~Oblałeś~s~ egzamin, powodzenia następnym razem!', diff --git a/locales/sv.lua b/locales/sv.lua new file mode 100644 index 00000000..9171bafe --- /dev/null +++ b/locales/sv.lua @@ -0,0 +1,27 @@ +Locales['sv'] = { + ['you_paid'] = 'du betalade ~r~%s SEK~s~ till körskolan', + ['go_next_point'] = 'åk till nästa punkt!', + ['in_town_speed'] = 'du åker ni i stan, var uppmärksam på din hastighet! hastighetsgräns: ~y~', + ['next_point_speed'] = 'åk till nästa punkt! hastighetsgräns: ~y~%s~s~ km/h', + ['stop_for_ped'] = '~r~Stanna~s~ för fotgängare som korsar vägen!', + ['good_lets_cont'] = '~g~Bra~s~, fortsätt.', + ['stop_look_left'] = '~r~Stanna~s~ och kolla åt ~y~vänster~s~. Hastighetsgräns: ~y~%s~s~ km/h', + ['good_turn_right'] = '~g~Bra~s~, sväng höger och följ linjen', + ['watch_traffic_lightson'] = 'var vaken i trafiken och ~y~sätt på dina lampor~s~!', + ['stop_for_passing'] = '~r~Stanna~s~ för passerande fordon!', + ['hway_time'] = 'det är dags att köra på motorväg! Hastighetsgräns: ~y~%s~s~ km/h', + ['gratz_stay_alert'] = 'jag är imponerad, glöm inte vara ~r~pigg~s~ när du kör!', + ['passed_test'] = 'du ~g~passerade~s~ provet, gratulerar!', + ['failed_test'] = 'du ~r~kuggade~s~ provet, bättre lycka nästa gång', + ['theory_test'] = 'teoretiskt körningsprov', + ['road_test_car'] = 'B-körkort (personbil)', + ['road_test_bike'] = 'A-körkort (motorcykel)', + ['road_test_truck'] = 'C-körkort (lastbil)', + ['driving_school'] = 'körskola', + ['press_open_menu'] = 'tryck ~INPUT_CONTEXT~ för att öppna menyn', + ['driving_school_blip'] = 'körskola', + ['driving_test_complete'] = 'körprovet har avslutats', + ['driving_too_fast'] = '~r~Du kör för snabbt,~s~ den nuvarande hastighetsgräns är: ~y~%s~s~ km/h!', + ['errors'] = 'misstag: ~r~%s~s~/%s', + ['you_damaged_veh'] = 'du skadade fordonet!', +}