Compare commits
17 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
17c3daddd7 | ||
|
|
45ea3bd1ce | ||
|
|
bc95fff5d3 | ||
|
|
0d57fb3186 | ||
|
|
9c8593e833 | ||
|
|
bf353c10aa | ||
|
|
5572e0bd93 | ||
|
|
87be1f3b42 | ||
|
|
2f133a456b | ||
|
|
55758854fb | ||
|
|
b2a30f225d | ||
|
|
21eaa4e97d | ||
|
|
ae6a08c457 | ||
|
|
db4967b5d0 | ||
|
|
674006abfd | ||
|
|
c933c32ac3 | ||
|
|
197256da4f |
558
locale/finnish.json
Normal file
558
locale/finnish.json
Normal file
@@ -0,0 +1,558 @@
|
||||
{
|
||||
"TranslationProvidedBy": "SIMBA_MEOW",
|
||||
"LocaleEnglishName": "Finnish",
|
||||
|
||||
"LocaleNativeName": "Finnish",
|
||||
"LocaleOffer": "Tämä Serveri on nyt käytettävissä suomen kielellä Käytä {1} jotta voit käyttää sitä",
|
||||
"LocaleChanged1": "Sinun kieli on nyt vaihdettu suomeen. {1}",
|
||||
"LocaleChanged2": "Tämä serveri nyt näyttää tekstit suomen kielellä. {1}",
|
||||
"LocaleChangedNote": "Tämä ei vaihda tekstejä muilta pelaajilta.",
|
||||
"AccentsListHeader": "Aksentit",
|
||||
"HelpMainListHeader": "Ohje luokat",
|
||||
"AccentNotFound": "Aksenttia ei löydetty",
|
||||
"AccentSet": "Sinä vaihdoit sinun aksentin{1}",
|
||||
"InvalidAnimation": "Tuo animaatio on väärä.",
|
||||
"AnimationCommandTip": "Käytä {1} että näet listan toimivia animaatioita.",
|
||||
"InvalidAnimationDistance": "etäisyyden pitää olla väliin 0 ja 3",
|
||||
"AnimationStopCommandTip": "Käytä {1} lopettaaksesi animaation",
|
||||
"CantBanClient": "Sinä et voi bannätä tätä pelaajaa",
|
||||
"PlayerAccountBanned": "{1} Käyttäjä on nyt bannätty",
|
||||
"ClanNotFound": "Claania ei löydetty",
|
||||
"ClanNameTaken": "Claani tuolla nimellä on jo otettu",
|
||||
"PlayerNotFound": "Pelaajaa ei löytynyt ",
|
||||
"ClanCantRemoveRanks": "Sinä et voi poistaa tämän claanin rankkejä",
|
||||
"ClanCantAddRanks": "sinä et voi lisätä claani ranksejä",
|
||||
"ClanRankNotFound": "Claanin nimeä ei loytynyt",
|
||||
"ClanCantChangeMemberTag": " Sinä et voi vaihtaa claanin jäsenen tagejä",
|
||||
"ClanPlayerNotInSameClan": "Tuo pelaaja ei ole sinun claanissa.",
|
||||
"ClanCantChangeRankLevel": "Sinä et voi vaihtaa claanin rankin leveleitä",
|
||||
"ClanCantChangeRankTag": "Sinä et voi vaihtaa claanin rankin tägeja",
|
||||
"NameNotRegistered": "Sinun käyttäjä ei ole Rekisteröitu! Käytä {1} että voit tehdä käyttäjän",
|
||||
"AutomaticLoginIPToggle": "Automaatinen Kirjautuminen IP ltä on nyt päällä {1}",
|
||||
"CouldNotRegisterAccount": "tässä oli ongelma luodettasi käyttäjää. Ole hyvä ja kysy adminilta.",
|
||||
"RandomTipsToggle": "Randomi vinkit ovat nyt {1}",
|
||||
"ActionTipsToggle": "toiminta vinkit ovat nyt {1}",
|
||||
"AutoSpawnLastCharToggle": "Automaattinen spawni viimeksi käytettynä hahmo on {1}",
|
||||
"AccountGUISettingToggle": "🖥️ GUI on nyt päällä {1}",
|
||||
"On": "On",
|
||||
"Off": "Off",
|
||||
"Yes": "Kyllä",
|
||||
"No": "Ei",
|
||||
"True": "oikea",
|
||||
"False": "väärin",
|
||||
"Locked": "Lukittu",
|
||||
"Unlocked": "Lukitsematon",
|
||||
"PasswordNotGoodEnough": "Uusi salasana ei täytä vaatimuksia!",
|
||||
"PasswordNeedsBase": "Salasanallasi pitää olla ainakin yksi {1}",
|
||||
"PasswordNeedsCapitals": "{1} ISON alku kirjaimen",
|
||||
"PasswordNeedsNumbers": "{1} Numerot",
|
||||
"PasswordNeedsSymbols": "{1} Symboolit",
|
||||
"PasswordsDontMatch": "Uusi salasana ja salasanan vahvistus eivät ole samat!",
|
||||
"PasswordChanged": "Sinun salasanasi on vaihdettu!",
|
||||
"AutoLoggedInIP": "Olet kirjautunut automaattisesti sisään IP osoitteella!",
|
||||
"WelcomeBack": "Tervetuloa takaisin {1}, {2}! ole hyvä {3} jatkaaksesi.",
|
||||
"WelcomeNewPlayer": "Tervetuloa {1}, {2}! ole hyvä {3} pelataaksesi.",
|
||||
"InvalidPlayer": "Pelaajaa ei löytynyt!",
|
||||
"InvalidBusiness": "Bisnestä ei löytynyt!",
|
||||
"InvalidHouse": "Taloa ei löytynyt!",
|
||||
"InvalidVehicle": "Ajoneuvoa ei löytynyt!",
|
||||
"InvalidClan": "Claania ei löytynyt!",
|
||||
"InvalidClanRank": "Claanin rankkiä ei löytynyt!",
|
||||
"InvalidJob": "Työtä ei löytynyt!",
|
||||
"InvalidItem": "kohdetta ei löytynyt!",
|
||||
"InvalidItemType": "kohteen tyyppiä ei löytynyt!",
|
||||
"InvalidRadioStation": "Radio kanavaa ei löytynyt!",
|
||||
"InvalidGate": "porttia ei löytynyt!",
|
||||
"EntersProperty": "avaa oven ja astuu sisään {1}",
|
||||
"ExitsProperty": "avaa oven ja astuu pois {1}",
|
||||
"EnterExitPropertyDoorLocked": "yrittää avata oven {1} ovi mutta epäonnistuu koska se on lukittu",
|
||||
"PropertyNoInterior": "Tämä {1} ei sisällä sisätilaa, mutta voit silti käyttää komentoja ovikuvakkeessa.",
|
||||
"NoBusinessWithItemType": "täällä ei ole kauppaa kyseisen tuotteen kanssa",
|
||||
"HeaderKeyBinds": "avain sitoo",
|
||||
"HeaderAccountHelp": "Käyttäjä apu",
|
||||
"HeaderVehicleHelp": "ajoneuvo apu",
|
||||
"HeaderVehicleDealershipHelp": "Ajoneuvo liikkeen apu",
|
||||
"HeaderJobHelp": "työ apu",
|
||||
"HeaderChatHelp": "Chatti apu",
|
||||
"HeaderServerRules": "Serverin säännöt",
|
||||
"HeaderWebsiteInfo": "Verkkosivusto",
|
||||
"HeaderDiscordInfo": "Discord",
|
||||
"HeaderAnimationsList": "Animaatioluettelo",
|
||||
"HeaderPayAndSprayHelp": "maksa ja suihkuta apu",
|
||||
"HeaderAmmunationHelp": "Ase kauppa apu",
|
||||
"HeaderVehicleTuneupHelp": "ajoneuvon sävelmä apu",
|
||||
"HeaderBindableKeysHelp": "sidottavat avaimet",
|
||||
"HeaderSkinHelp": "Vaatteet/iho apu",
|
||||
"HeaderBusinessHelp": "Kauppa/bisnes apu",
|
||||
"HeaderClanHelp": "Claanin apu",
|
||||
"HeaderPlayerVehiclesList": "pelaajan ajoneuvot ({1})",
|
||||
"HeaderPlayerBusinessesList": "pelaajan bisnekset ({1})",
|
||||
"HeaderClansList": "Claani Lista",
|
||||
"HeaderAdminsList": "Admini Lista",
|
||||
"HeaderBadgeInfo": "merkki Informaatio",
|
||||
"HeaderAccentsList": "Aksentti Lista",
|
||||
"HeaderPlayerInfo": "Pelaajan Informaatio ({1})",
|
||||
"HeaderWealthandTaxHelp": "varallisuus and verot Informaatio",
|
||||
"HeaderCommandInfo": "komennon Informaatio ({1})",
|
||||
"HeaderRadioHelp": "Radio apu",
|
||||
"HeaderRadioStationsList": "Radio asemat/kanavat",
|
||||
"HeaderKeyBindsList": "avain sitomis Lista",
|
||||
"RadioVolumeChanged": "{1} Sinä vaihdoit sinun radion ääniä to {2}%",
|
||||
"VolumeLevelNotNumber": "Äänenvoimakkuuden on oltava numero",
|
||||
"RadioStationLocationInvalid": "Sinun on oltava ajoneuvossa, talossa tai yrityksessä tai sinulla on oltava henkilökohtainen laite vaihtaaksesi radio asemaa!",
|
||||
"ActionBusinessRadioStationChange": "vaihtaa bisnes radioasemaksi {1} ({2})",
|
||||
"ActionHouseRadioStationChange": "muuttaa talon radioasemaksi {1} ({2})",
|
||||
"ActionVehicleRadioStationChange": "vaihtaa ajoneuvon radioasemaksi {1} ({2})",
|
||||
"ActionItemRadioStationChange": "vaihtaa {1}'s aseman {2} ({3})",
|
||||
"RandomVehicleCommandsDisabled": "Tämä on satunnainen liikenneajoneuvo, eikä siihen voi käyttää komentoja.",
|
||||
"HouseDoorLock": "Talo {1} {2}!",
|
||||
"BusinessDoorLock": "Bisnes {1} {2}!",
|
||||
"ServerGameModeRestarting": "Palvelinpelitila käynnistyy uudelleen!",
|
||||
"HeaderSelfItemList": "Sinun inventoori",
|
||||
"HeaderPlayerItemList": "Pelaajan inventoori ({1})",
|
||||
"HeaderHouseItemList": "Talon inventoori",
|
||||
"HeaderBusinessFloorItemList": "Bisnes Inventoori (myyntiin)",
|
||||
"HeaderBusinessStorageItemList": "Bisnes Inventoori (tila)",
|
||||
"HeaderItemItemList": "{1}'s Inventoori",
|
||||
"ItemSlotNotNumber": "Tuotepaikan on oltava numero",
|
||||
"ItemSlotMustBeBetween": "Tuotepaikan tulee olla välillä {1} ja {2}!",
|
||||
"UseItemBugged": "Kohde, jota yrität käyttää, on viallinen. Virheraportti on lähetetty palvelimen kehittäjille.",
|
||||
"PickupItemBugged": "Tuote, jota yrität ottaa, on viallinen. Virheraportti on lähetetty palvelimen kehittäjille.",
|
||||
"DropItemBugged": "Kohde, jonka yrität pudottaa, on viallinen. Virheraportti on lähetetty palvelimen kehittäjille.",
|
||||
"HandsBusy": "kätesi ovat vararru",
|
||||
"CantUseItemInSkinChange": "Et voi käyttää kohdetta muokkaaessasi ulkonäköäsi",
|
||||
"CantDropItemInSkinChange": "Et voi pudottaa esinettä, kun muokkaat ulkonäköäsi",
|
||||
"CantPickupItemInSkinChange": "Et voi ottaa tuotetta, kun muokkaat ulkonäköäsi",
|
||||
"CantSwitchItemInSkinChange": "Et voi vaihtaa kohdetta muokkaaessasi ulkonäköäsi",
|
||||
"CantGiveItemInSkinChange": "Et voi antaa esinettä, kun muokkaat ulkonäköäsi",
|
||||
"CantTakeItemInSkinChange": "Et voi ottaa esinettä mukauttaessasi ulkonäköäsi",
|
||||
"ItemUnequippableNoAmmo": " {1} paikassa {2} ei ole ammuksia, eikä sitä voi varustaa!",
|
||||
"NoSpaceSelfInventory": "Sinulla ei ole enää tilaa varastossasi",
|
||||
"Business": "bisnes",
|
||||
"House": "talo",
|
||||
"Clan": "claani",
|
||||
"Vehicle": "ajoneuvo",
|
||||
"Item": "kohde",
|
||||
"ItemType": "kohteen tyyppi",
|
||||
"Gate": "portti",
|
||||
"Door": "ovi",
|
||||
"ClanRank": "claan ränkki",
|
||||
"JobRank": "työ ränkki",
|
||||
"RadioStation": "radio kanava",
|
||||
"Months": [
|
||||
"Tammikuu",
|
||||
"Helmikuu",
|
||||
"Maaliskuu",
|
||||
"Huhtikuu",
|
||||
"Toukokuu",
|
||||
"Kesäkuu",
|
||||
"Heinäkuu",
|
||||
"Elokuu",
|
||||
"Syyskuu",
|
||||
"Lokakuu",
|
||||
"Marraskuu",
|
||||
"Joulukuu"
|
||||
],
|
||||
"WeekDays": [
|
||||
"Sunnuntai",
|
||||
"Maanantai",
|
||||
"Tiistai",
|
||||
"Keskiviikko",
|
||||
"Torstai",
|
||||
"Perjantai",
|
||||
"Lauantai"
|
||||
],
|
||||
"CardinalDirections": [
|
||||
"Pohjoinen",
|
||||
"Koilinen",
|
||||
"Itä",
|
||||
"Kaakko",
|
||||
"Etelä",
|
||||
"Lounas",
|
||||
"Länsi",
|
||||
"Luonteinen"
|
||||
],
|
||||
"NewPlayerReadyToPlay": [
|
||||
"Sinulle on annettu rahaa. Käyttää {1} löytää ostopaikkoja.",
|
||||
"Jos tarvitset rahaa, työpaikat ovat keltaisia pisteitä tutkassa.",
|
||||
"Autoa varten käy autoliikkeessä. Voit myös käyttää vuokra-ajoneuvoa spawnin lähellä tai matkustaa junalla",
|
||||
"Muista lukea tämä{1} Ja käyttää {2} tiedoksi"
|
||||
],
|
||||
"YourCurrentVehicleDeleted": "ajoneuvo, jossa olit, poistettiin.",
|
||||
"Distance": "Etäisyys",
|
||||
"Meters": "Metrejä",
|
||||
"Feet": "jalkaa",
|
||||
"Kilometers": "Kilometrejä",
|
||||
"Miles": "Maileja",
|
||||
"MustBeVehicleDriver": "Sinun on oltava ajoneuvon kuljettaja!",
|
||||
"PlayerJoined": "{1} on liittynyt peliin {2}!",
|
||||
"PlayerLeftServer": "{1} poistui pelistä! ({2})",
|
||||
"TakeItemFromHouse": "ottaa {1} talosta",
|
||||
"TakeItemFromBusinessStorage": "ottaa {1} varastosta",
|
||||
"TakeItemFromBusiness": "ottaaa {1} bisneksestä",
|
||||
"TakeItemFromItem": "ottaa {1} {2}",
|
||||
"TakeItemFromVehicleTrunk": "ottaa {1} tavaratilasta",
|
||||
"TakeItemFromVehicleDash": "ottaa {1} hansikaslokerosta",
|
||||
"JobEquipmentInventoryKeyBindTip": "Työvälineet ovat varastossasi. Paina {1} että näet sen",
|
||||
"JobEquipmentInventoryCommandTip": "Työvälineet ovat varastossasi. Käytä {1} että näet sen.",
|
||||
"AccountHelp": [
|
||||
"ÄLÄ jaa salasanaasi kenenkään muun kanssa. {1} henkilökunta ei koskaan kysy sinulta salasanaasi",
|
||||
"Käytä {1} vaihtaaksesi salasanasi ja {2} jos unohdit sen",
|
||||
"Some settings you can use: {1}"
|
||||
],
|
||||
"VehicleHelp": [
|
||||
"Henkilökohtaiset ajoneuvosi säästävät minne sinä tai joku muu jättää ne!",
|
||||
"Vieraile jälleenmyyjissä ostamassa uusia ajoneuvoja (Käytä {1} saadaksesi lisää tietoa)",
|
||||
"Some commands: {1}",
|
||||
"Vieraile mekaanikkokorjaamolla korjaamassa, värjäämässä ja virittämässä autosi! {1} saadaaksesi tietoa"
|
||||
],
|
||||
"VehicleDealershipHelp": [
|
||||
"Vieraile ajoneuvoliikkeessä ostamassa uusia ajoneuvoja. Käytä {1} löytääksesi yhden.",
|
||||
"Jälleenmyyjällä mene auton sisään auto, jonka haluat ostaa, ja hinta näytetään sinulle",
|
||||
"Jos haluat ostaa ajoneuvon, käytä {1}ja sinulle annetaan avaimet koeajeluun parkkipaikalla.",
|
||||
"Aja pois jälleenmyyjältä uudella ajoneuvolla vahvistaaksesi oston."
|
||||
],
|
||||
"JobHelp": [
|
||||
"Vieraile työpaikoilla saadaksesi työtä ja ansaitaksesi rahaa. Etsi kartalta keltaisia pisteitä",
|
||||
"työpaikalla Käytä {1} saadaaksesi työpaikan. Käytä {2} lopettamaan työsi",
|
||||
"Käytä {1} Aloittaaksesi työn. Sinä voit myös saada työn {2} ja {3}",
|
||||
"useimmat työajoneuvot ovat lukittuja. Käytä {1} lähdellä yhtä astuaaksesi autoon.",
|
||||
"Kun astut työajoneuvoon, sinulle näytetään tietoja työn suorittamisesta."
|
||||
],
|
||||
"ChatHelp": [
|
||||
"There are two main types of chat: luonteen vastaisesti (OOC) ja luonteeltaan (IC)",
|
||||
"Näiden kahden tyypin sekoittaminen ei ole oikea roolileikki. Katso {1} saadaaksesi lisää tietoa.",
|
||||
"Some chat commands: {1}",
|
||||
"Joillakin on saatavilla lyhyempiä nimiä ({1} puhua, {2} huutaa jne)"
|
||||
],
|
||||
"ServerRulesHelp": [
|
||||
"Epärealistiset toimet (voimapelaaminen) eivät ole sallittuja. Et ole supermies.",
|
||||
"Terroristin tai terrorismin roolileikkejä ei sallita.",
|
||||
"Noudata aina moderaattorien ja järjestelmänvalvojien antamia ohjeita.",
|
||||
"Älä sekoita keskusteluja (metapelaaminen). Et voi käyttää IC:ssä olevia tietoja, jotka vastaanotettiin OOC",
|
||||
"Pidä englantia pääkeskusteluissa. Jos sinulla ei ole hyvää englantia, käytä {1}"
|
||||
],
|
||||
"AnimationHelp": [
|
||||
"Animaatioiden avulla voit tehostaa roolipeliä visuaalisilla toimilla",
|
||||
"Käytä nimeä {1} tai {2}, jos haluat käyttää animaatiota.",
|
||||
"Näet luettelon animaatioista käyttämällä {1}"
|
||||
],
|
||||
"WeaponHelp": [
|
||||
"Käy aseliikkeessä ostamaan aseita. Käytä {1} löytääksesi sellaisen.",
|
||||
"Aseen ostaminen vaatii aseluvan.",
|
||||
"Poliisilaitos hallinnoi aselupia. Hae siellä saadaksesi sellaisen.",
|
||||
"Aseita voidaan ostaa myös laittomasti joiltakin yrityksiltä, asekauppiailta ja claaneista."
|
||||
],
|
||||
"SkinHelp": [
|
||||
"Käytä vaatekaupassa {1} vaatteiden ostamiseen",
|
||||
"Kun sinulla on vaate, varusta ja käytä sitä kuten mitä tahansa muuta esinettä näyttääksesi ihovalikoiman (katso {1} saadaksesi lisätietoja vaatteiden käytöstä)",
|
||||
"Jotkin skinit on rajoitettu töihin, claaneihin tai muista syistä."
|
||||
],
|
||||
"KeyBindHelp": [
|
||||
"Voit asettaa omat näppäinsidokset. Käytä {1} nähdäksesi sidotut avaimet.",
|
||||
"Käytä {1} lisätäksesi uuden näppäimistön ja {2} poistaaksesi yhden.",
|
||||
"Default keys are:{1} {1} ajoneuvon moottorille, {2} valoille ja {3} lukitsemiselle/lukituksen avaamiselle",
|
||||
"Paina {1} nähdäksesi kohteesi ja {2} varustaaksesi kohteita tai {3} poistaaksesi kaikki.",
|
||||
"Paina {1} käyttääksesi kohdetta, jota pidät, paina {2} pudottaaksesi sen tai paina {3} noutaaksesi esineen maasta."
|
||||
],
|
||||
"BusinessHelp": [
|
||||
"Käytä {1} tuotteiden ostamiseen tai {2} nähdäksesi luettelon myytävistä missä tahansa yrityksessä",
|
||||
"Yritykset näkyvät sinisillä nimillä sisäänkäynnin kuvakkeen yläpuolella.",
|
||||
"Yrityksen omistajan komennot: {1}",
|
||||
"Uusi myytävä auto ilmestyy, kun ajat pois myyjän luota."
|
||||
],
|
||||
"ClanHelp": [
|
||||
"Pyydä järjestelmänvalvojaa luomaan Claani (Samanlainen kuin ryhmät/ryhmät/perheet)",
|
||||
"Claanin omistajilla on täysi määräysvalta klaaniin, kun se on luotu",
|
||||
"Clanin komennot: {1}",
|
||||
"Lisää klaanikomentoja: {1}"
|
||||
],
|
||||
"RadioStationHelp": [
|
||||
"Aseta asema ajoneuvollesi, talollesi tai yrityksellesi käyttämällä {1}-merkkiä",
|
||||
"Käytä {2} nähdäksesi luettelon asemista",
|
||||
"Voit muuttaa radion suoratoiston äänenvoimakkuutta käyttämällä {1}-arvoa 0-100 prosentteina"
|
||||
],
|
||||
"WealthAndTaxHelp": [
|
||||
"Palkkapäivän verot ovat {1} prosenttia lasketusta omaisuudestasi.",
|
||||
"Laskettu varallisuus on kokonaissumma, joka perustuu siihen, kuinka monta ajoneuvoa, taloa ja yritystä sinulla on.",
|
||||
"Jokainen ajoneuvo on {1}, jokainen talo on {2} ja jokainen yritys on {3}",
|
||||
"Käytä {1} nähdäksesi nykyisen varallisuutesi ja {2} nähdäksesi kuinka paljon maksat veroja jokaisena palkkapäivänä"
|
||||
],
|
||||
"MustBeInAVehicle": "Sinun täytyy olla ajoneuvossa!",
|
||||
"MustBeInOrNearVehicle": "Sinun on oltava ajoneuvossa tai sen lähellä!",
|
||||
"MustBeInVehicleFrontSeat": "Sinun tulee istua auton etupenkillä!",
|
||||
"MustBeInVehicleDriverSeat": "Sinun täytyy olla kuljettaja!",
|
||||
"DontHaveVehicleKey": "Sinulla ei ole avainta tähän ajoneuvoon!",
|
||||
"NoGateAccess": "Sinulla ei ole pääsyä tälle portille!",
|
||||
"GateBroken": "tämä portti on rikki!",
|
||||
"GateHacked": "Portti ei vastaa!",
|
||||
"RadioJammed": "Radiosta kuuluu vain staattista ääntä.",
|
||||
"VehicleNotForSale": "Tämä ajoneuvo ei ole myynnissä!",
|
||||
"VehicleNotForRent": "This vehicle is not for rent!",
|
||||
"BusinessNotForSale": "Tämä yritys ei ole myytävänä!",
|
||||
"BusinessNotForRent": "Tämä yritys ei ole vuokrattavissa!",
|
||||
"HouseNotForSale": "Tämä talo ei ole myynnissä!",
|
||||
"HouseNotForRent": "Tämä talo ei ole vuokrattavissa!",
|
||||
"DealershipPurchaseTestDrive": "Aja ajoneuvo pois jälleenmyyjältä ostaaksesi se tai mene ulos peruuttaaksesi.",
|
||||
"DealershipPurchaseExitedVehicle": "Peruutit ajoneuvon oston poistumalla ajoneuvosta!",
|
||||
"VehiclePurchaseComplete": "Tämä ajoneuvo on nyt sinun! Se säästyy minne jätätkin sen.",
|
||||
"VehiclePurchaseNotEnoughMoney": "Sinulla ei ole tarpeeksi rahaa ostaa tätä ajoneuvoa!",
|
||||
"HousePurchaseNotEnoughMoney": "Sinulla ei ole tarpeeksi rahaa ostaa tätä taloa!",
|
||||
"BusinessPurchaseNotEnoughMoney": "Sinulla ei ole tarpeeksi rahaa ostaa tätä yritystä",
|
||||
|
||||
"ADDED-21JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
|
||||
"HeaderPlayerHousesList": "Player Houses ({1})",
|
||||
"HeaderPlayerStaffFlagsList": "Player Staff Flags ({1})",
|
||||
"HeaderStaffFlagsList": "Staff Flags",
|
||||
"NonRPName": "Non-RP name! Choose a new one:",
|
||||
"InvalidStaffFlag": "Staff flag not found!",
|
||||
"InvalidClanFlag": "Clan flag not found!",
|
||||
"InvalidLocale": "Language not found!",
|
||||
"HeaderJobUniformList": "Job Uniforms ({1})",
|
||||
"HeaderJobEquipmentList": "Job Equipment ({1})",
|
||||
"InvalidJobUniform": "Job uniform not found!",
|
||||
"InvalidJobEquipment": "Job equipment not found!",
|
||||
"HeaderVehiclesInRangeList": "Vehicles within {1}",
|
||||
"NoVehiclesWithInRange": "There are no vehicles within {1}",
|
||||
"AmountNotNumber": "The amount must be a number!",
|
||||
"NeedToBeWorking": "You need to be working! Use {1} at a job location or near a job vehicle.",
|
||||
"NeedToBeOnJobRoute": "You need to be doing a job route! Use {1} in a job vehicle",
|
||||
"CurrentJobRouteDeleted": "The job route you were on has been deleted by an admin",
|
||||
"CurrentJobRouteVehicleColoursChanged": "Your job route's vehicle colours were changed by an admin",
|
||||
"NotYourJob": "This is not your job!",
|
||||
"JobPoints": "You can get a job by going the yellow points on the map.",
|
||||
"QuitJobToTakeAnother": "If you want this job, use {1} to quit your current job.",
|
||||
"NotAJobVehicle": "This is not a job vehicle!",
|
||||
"NotYourJobVehicle": "This is not your job's vehicle!",
|
||||
"JobRouteDisabled": "The job route you were on has been disabled by an admin",
|
||||
"HeaderPickupTypes": "Pickup Types",
|
||||
"HeaderBlipTypes": "Map Icon Types",
|
||||
"InvalidGPSLocation": "There are no locations with that name or type",
|
||||
"HeaderBusinessList": "Businesses",
|
||||
"VehicleForSale": "This {1} is buyable for {2}! Use {3} if you want to buy it",
|
||||
"VehicleForRent": "This {1} is rentable for {2}! Use {3} if you want to rent it",
|
||||
|
||||
"ADDED-31JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
|
||||
"LoginFailedInvalidPassword": "Invalid password! {1} attempts remaining",
|
||||
"LoginFailedNoPassword": "You must enter a password! ! {1} attempts remaining",
|
||||
"RegistrationFailedNoPassword": "You must enter a password!",
|
||||
"RegistrationFailedNoPasswordConfirm": "You must confirm the password!",
|
||||
"RegistrationFailedNoEmail": "You must enter an email!",
|
||||
"AccountNameAlreadyRegistered": "Your name is already registered!",
|
||||
"AlreadyLoggedIn": "You are already logged in!",
|
||||
"RegistrationFailedInvalidEmail": "That email is invalid!",
|
||||
"RegistrationFailedPasswordMismatch": "The passwords don't match!",
|
||||
"RegistrationFailedCreateError": "Your account couldn't be created!",
|
||||
"RegistrationSuccess": "Your account has been created!",
|
||||
"RegistrationEmailVerifyReminder": "Don't forget to verify your email! A verification code has been sent to you.",
|
||||
"RegistrationCreateCharReminder": "To play on the server, you will need to make a character.",
|
||||
"NoCharactersGUIMessage": "You have no characters. Would you like to make one?",
|
||||
"NoCharactersGUIWindowTitle": "No characters",
|
||||
"NoCharactersChatMessage": "You have no characters. Use {1} to make one.",
|
||||
"NeedEmailFor2FA": "You need to add your email to your account to use two-factor authentication.",
|
||||
"NeedEmailVerifiedFor2FA": "You need to verify your email to use two-factor authentication.",
|
||||
"SetEmailHelpTip": "Use {1} to set your email.",
|
||||
"VerifyEmailHelpTip": "Use {1} to verify your email.",
|
||||
|
||||
"ADDED-13FEB2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
|
||||
"NearbyRadio": "Nearby radio",
|
||||
"FromRadio": "From radio",
|
||||
"ToRadio": "To radio",
|
||||
"NeedToEnterPropertyCommand": "You need to enter the {1} first! Use {2} to enter and exit",
|
||||
"NeedToEnterPropertyKeyPress": "You need to enter the {1} first! Press {2} to enter and exit",
|
||||
"InventoryFullCantCarry": "You don't have any space to carry this (full inventory)!",
|
||||
"NotEnoughCashNeedAmountMore": "You don't have enough money! You need {1} more!",
|
||||
"AmountMustBeMoreThan": "The amount must be more than {1}!",
|
||||
"WeaponBanned": "You are not allowed to buy or use weapons!",
|
||||
"TimeNotNumber": "The time must be a number",
|
||||
"HeaderDefaultBusinessItemTypes": "Business Item Templates",
|
||||
"FixingStuck": "Fixing your position and virtual world ...",
|
||||
"CantUseCommandYet": "You must wait before you can use this command again!",
|
||||
"NotATester": "You are not a tester!",
|
||||
"AccessDenied": "AccessDenied",
|
||||
"InvalidSkin": "That skin is invalid!",
|
||||
"HeaderInteriorTypes": "Interiors List",
|
||||
"ViewInventoryKeyPressTip": "Press {1} to see your items",
|
||||
"ViewInventoryCommandTip": "Use {1} to see your items",
|
||||
"GUIAccountSettingToggle": "You have turned {1} GUI",
|
||||
|
||||
"ADDED-23MAR2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations",
|
||||
"CarCommandHelp": "You can buy a car by visiting a vehicle dealership. Use {1} for more information.",
|
||||
"SkinCommandHelp": "You can change your skin by visiting a clothes store. Use {1} for more info.",
|
||||
"BusinessVehiclesRespawned": "🚗 All business vehicles have been respawned by an admin!",
|
||||
"JobVehiclesRespawned": "🚗 All job vehicles have been respawned by an admin!",
|
||||
"PlayerVehiclesRespawned": "🚗 All player vehicles have been respawned by an admin!",
|
||||
"ClanVehiclesRespawned": "🚗 All clan vehicles have been respawned by an admin!",
|
||||
"PublicVehiclesRespawned": "🚗 All public have been respawned by an admin!",
|
||||
"EmptyVehiclesRespawned": "🚗 All empty vehicles have been respawned by an admin!",
|
||||
"AllVehiclesRespawned": "🚗 All vehicles have been respawned by an admin!",
|
||||
"AllVehiclesReloaded": "🚗 All vehicles have been reloaded by an admin!",
|
||||
"YourVehicleRespawned": "🚗 Your vehicle has been respawned!",
|
||||
"PlayerIPBanned": "💀 {1} has been IP banned!",
|
||||
"PlayerCharacterBanned": "💀 {1} has been character banned!",
|
||||
"PlayerSubNetBanned": "💀 {1} has been subnet banned!",
|
||||
"CantModifyBusiness": "You can't manage or modify this business!",
|
||||
"CantModifyHouse": "You can't manage or modify this house!",
|
||||
"ServerTimeSet": "⏰ {1} set the time to {2}",
|
||||
"ServerWeatherSet": "☁️ {1} set the weather to {2}",
|
||||
"ServerSnowSet": "❄️ {1} turned falling snow {2} and ground snow {3}",
|
||||
"AllJobsReloaded": "💼 All server jobs have been reloaded by an admin",
|
||||
"ServerLogoSet": "{1} turned the server logo image {2}",
|
||||
"ServerGUISet": "🖥️ {1} turned GUI for this server {2}",
|
||||
"ServerBusinessBlipsSet": "🏢 {1} turned all business blips {2}",
|
||||
"ServerHouseBlipsSet": "🏘️ {1} turned all house blips {2}",
|
||||
"ServerJobBlipsSet": "💼 {1} turned all job blips {2}",
|
||||
"ServerBusinessPickupsSet": "🏢 {1} turned all business pickups {2}",
|
||||
"ServerHousePickupsSet": "🏘️ {1} turned all house pickups {2}",
|
||||
"ServerJobPickupsSet": "💼 {1} turned on all job pickups {2}",
|
||||
"BusinessBuyItemsLabel": "Use {1} to purchase items",
|
||||
"PropertyEnterCommandLabel": "Use {1} to enter",
|
||||
"PropertyEnterKeyPressLabel": "Press {1} to enter",
|
||||
"PropertyForSaleLabel": "For sale: ${1}",
|
||||
"PropertyForRentLabel": "For rent: ${1} every payday",
|
||||
"RemainingTaxPaidInMoney": "You covered the remaining taxes with ${1} in cash.",
|
||||
"LostMoneyFromTaxes": "You lost money since your taxes are more than your paycheck!",
|
||||
"NextPaycheckRepossessionWarning": "If you don't have enough cash to cover taxes on next paycheck, you will lose stuff!",
|
||||
"NotEnoughMoneyForTax": "You don't have enough money to cover your taxes!",
|
||||
"AssetsRepossessedForTax": "You lost {1} vehicles, {2} houses, and {3} businesses because you couldn't pay taxes!",
|
||||
"Closed": "Closed",
|
||||
"Open": "Open",
|
||||
"VehicleDealershipLabel": "Enter a vehicle as driver to buy it",
|
||||
"TakeJobLabel": "Use {1} to work here",
|
||||
"StartWorkLabel": "Use {1} to start working",
|
||||
"JobEquipAndUniformLabel": "Use {1} and {2} for job stuff, or {3} to stop working",
|
||||
"NotYourJobLabel": "You already have a different job. Use {1} if you want this one",
|
||||
"JobLabel": "{1} Job",
|
||||
"PaydayBonusSet": "🤑 {1} set the payday bonus to ${2}",
|
||||
"AllHousesReloaded": "🏘️ All houses have been reloaded by an admin",
|
||||
"AllRadioStationsReloaded": "📻 All radio stations have been reloaded by an admin!",
|
||||
"PlayerKicked": "🦶 {1} has been kicked from the server",
|
||||
"AllBusinessesReloaded": "🏢 All businesses have been reloaded by an admin!",
|
||||
"UnableToDoThat": "You aren't able to do that",
|
||||
"SetVehicleClanConfirmMessage": "Are you sure you want to give this vehicle to your clan?",
|
||||
"SetVehicleClanConfirmTitle": "Warning!",
|
||||
"SetItemPriceBelowOrderPriceMessage": "Are you sure you want to set the item price below it's order price? You will lose ${1} every purchase!",
|
||||
"SetItemPriceBelowOrderPriceTitle": "Warning!",
|
||||
"MustOwnVehicle": "You don't own this vehicle!",
|
||||
"RandomTips": [
|
||||
"Look for yellow dots on your map for job locations",
|
||||
"You can set custom key binds. Use {1} for details",
|
||||
"Use {1} if you don't want to see tips and extra information",
|
||||
"You can edit your keybinds using {1} and {2}",
|
||||
"Press ℹ️ to see your inventory, and use number keys to select an item",
|
||||
"Use {1} at a business to purchase items",
|
||||
"Found a bug? Report it with {1}",
|
||||
"Have an idea or suggestion for the server? Let the devs know using {1}",
|
||||
"Want to buy a business? Use {1} at one for sale",
|
||||
"Want to buy a house? Use {1} at one for sale",
|
||||
"Want to buy a vehicle? Visit a dealership and enter one for info on how to buy it!",
|
||||
"Switch to any of your characters with {1}",
|
||||
"Use {1} to automatically login when connecting with the same IP",
|
||||
"Use {1} to turn on/off the lights in your house or business",
|
||||
"Use {1} to play an internet radio station in your car, house, or business",
|
||||
"Want to make a clan? Use {1} for details",
|
||||
"Legal weapons can be purchased at any ammunation"
|
||||
],
|
||||
"PromptResponseTip": "Use {1} to accept or {2} to decline",
|
||||
"PlayerConnecting": "👋 {1} is connecting to the server ...",
|
||||
"GetStartedJobVehicle": "Get in a {1} to get started.",
|
||||
"VehicleTypes": {
|
||||
"Car": "Car",
|
||||
"Truck": "Truck",
|
||||
"Van": "Van",
|
||||
"Taxi": "Taxi",
|
||||
"Bus": "Bus",
|
||||
"PoliceCar": "Police Car",
|
||||
"Ambulance": "Ambulance",
|
||||
"FireTruck": "Fire Truck",
|
||||
"Bike": "Bike",
|
||||
"Motorbike": "Motorbike",
|
||||
"Boat": "Boat",
|
||||
"Helicopter": "Helicopter",
|
||||
"Plane": "Plane",
|
||||
"Train": "Train"
|
||||
},
|
||||
"AlreadyOnJobRoute": "You are already doing a job route!",
|
||||
"GaveVehicleToClan": "You gave this {1} to your clan!",
|
||||
"JobDisabled": "This job is disabled!",
|
||||
"SetHouseClanConfirmMessage": "Are you sure you want to give this house to your clan?",
|
||||
"SetHouseClanConfirmTitle": "Warning!",
|
||||
"SetBusinessClanConfirmMessage": "Are you sure you want to give this business to your clan?",
|
||||
"SetBusinessClanConfirmTitle": "Warning!",
|
||||
"MustOwnHouse": "You don't own this house!",
|
||||
"MustOwnBusiness": "You don't own this business!",
|
||||
"GaveHouseToClan": "You gave this house to your clan!",
|
||||
"GaveBusinessToClan": "You gave this business to your clan!",
|
||||
"BuyBusinessConfirmMessage": "Are you sure you want to buy this business?",
|
||||
"BuyBusinessConfirmTitle": "Attention!",
|
||||
"BuyHouseConfirmMessage": "Are you sure you want to buy this house?",
|
||||
"BuyHouseConfirmTitle": "Attention!",
|
||||
"BuyBusinessLabel": "Use {1} to buy this business",
|
||||
"BuyHouseLabel": "Use {1} to buy this house",
|
||||
"RentHouseLabel": "Use {1} to rent this house",
|
||||
"DisconnectReasons": [
|
||||
"Lost Connection",
|
||||
"Disconnected",
|
||||
"Unsupported Client",
|
||||
"Wrong Game",
|
||||
"Incorrect Password",
|
||||
"Unsupported Executable",
|
||||
"Disconnected",
|
||||
"Banned",
|
||||
"Failed",
|
||||
"Invalid Name",
|
||||
"Crashed",
|
||||
"Modified Game"
|
||||
],
|
||||
"AccountEmailAlreadyVerified": "You already set and verified your email!",
|
||||
"EmailVerificationCodeSent": "A verification code and instructions have been sent to your email.",
|
||||
"GUIPlayAsCharacterButton": "Play",
|
||||
"GUINewCharacterButton": "New character",
|
||||
"GUIPreviousCharacterButton": "Previous",
|
||||
"GUINextCharacterButton": "Next",
|
||||
"GUICharacterSelectWindowTitle": "Select a character",
|
||||
"GUICharacterSelectMoneyLabel": "Money: ${1}",
|
||||
"GUICharacterSelectClanLabel": "Clan: {1}",
|
||||
"GUICharacterSelectLastPlayedLabel": "Last Played: {1} days, {2} hours, {3} minutes ago",
|
||||
"GUILoginWindowLabelEnterPassword": "Please enter your password",
|
||||
"GUILoginWindowSubmitButton": "Login",
|
||||
"GUILoginWindowResetPasswordButton": "Reset password",
|
||||
"GUILoginWindowPasswordPlaceholder": "Password",
|
||||
"GUILoginWindowForgotPasswordLabel": "Forgot your password?",
|
||||
"GUIRegisterWindowLabelCreateAccount": "Create an account",
|
||||
"GUIRegisterWindowPasswordPlaceholder": "Password",
|
||||
"GUIRegisterWindowConfirmPasswordPlaceholder": "Confirm password",
|
||||
"GUIRegisterWindowEmailPlaceholder": "Email",
|
||||
"GUIRegisterWindowSubmitButton": "Create account",
|
||||
"GUINewCharacterMessageLabel": "Name your character",
|
||||
"GUINewCharacterFirstNamePlaceholder": "First Name",
|
||||
"GUINewCharacterLastNamePlaceholder": "Last Name",
|
||||
"GUIChangePasswordWindowTitle": "Change Password",
|
||||
"GUIChangePasswordPasswordLabel": "Enter a new password",
|
||||
"GUIChangePasswordPasswordPlaceholder": "Password",
|
||||
"GUIChangePasswordConfirmPasswordPlaceholder": "Confirm password",
|
||||
"GUIChangePasswordSubmitButton": "Change Password",
|
||||
"GUIResetPasswordWindowMessage": "Reset Password",
|
||||
"GUIResetPasswordConfirmEmailLabel": "Please confirm your email",
|
||||
"GUIResetPasswordEmailPlaceholder": "Email",
|
||||
"GUIResetPasswordSubmitButton": "Reset Password",
|
||||
"GUIResetPasswordLoginButton": "Login",
|
||||
"GUIResetPasswordRememberMessage": "Remember your password?",
|
||||
"HeaderJobList": "Jobs",
|
||||
"HeaderBusinessInfo": "Business Info",
|
||||
"HeaderHouseInfo": "House Info",
|
||||
"HeaderClanInfo": "Clan Info",
|
||||
"Locales": {
|
||||
"English": "Englanti",
|
||||
"Russian": "Venäjä",
|
||||
"Spanish": "Espanja",
|
||||
"German": "Saksa",
|
||||
"Dutch": "Hollanti",
|
||||
"Polish": "Puola",
|
||||
"Chinese": "Chinese",
|
||||
"French": "French",
|
||||
"Japanese": "Japanese",
|
||||
"Slovak": "Slovak",
|
||||
"Arabic": "Arabic"
|
||||
}
|
||||
}
|
||||
559
locale/french.json
Normal file
559
locale/french.json
Normal file
@@ -0,0 +1,559 @@
|
||||
{
|
||||
"TranslationProvidedBy": "Cocam",
|
||||
"LocaleEnglishName": "French",
|
||||
|
||||
"LocaleNativeName": "Français",
|
||||
"LocaleOffer": "Ce serveur est disponible en Français. Appuie sur {1} pour changer la langue.",
|
||||
"LocaleChanged1": "La langue est maintenant paramétrée sur {1}",
|
||||
"LocaleChanged2": "Le serveur va maintenant afficher les messages en {1}",
|
||||
"LocaleChangedNote": "Cela ne change pas les messages des autres joueurs",
|
||||
"AccentsListHeader": "Accents",
|
||||
"HelpMainListHeader": "Aide Catégorie",
|
||||
"AccentNotFound": "Accent non trouvé",
|
||||
"AccentSet": "Vous avez paramétré votre accent sur {1}",
|
||||
"InvalidAnimation": "L'animation n'existe pas",
|
||||
"AnimationCommandTip": "Utilise la commande {1} pour voir la liste des animations valides",
|
||||
"InvalidAnimationDistance": "La distance doit être entre 0 et 3",
|
||||
"AnimationStopCommandTip": "Utilise la commande {1} pour arrêter l'animation",
|
||||
"CantBanClient": "Vous ne pouvez pas bannir cette personne",
|
||||
"PlayerAccountBanned": "le compte {1} a été banni",
|
||||
"ClanNotFound": "Clan non trouvé",
|
||||
"ClanNameTaken": "Un clan avec ce nom existe déjà",
|
||||
"PlayerNotFound": "Joueur non trouvé",
|
||||
"ClanCantRemoveRanks": "Vous ne pouvez pas retirer le rang du clan",
|
||||
"ClanCantAddRanks": "Vous ne pouvez pas ajouter de rang au clan",
|
||||
"ClanRankNotFound": "Le rang du clan est introuvable",
|
||||
"ClanCantChangeMemberTag": "Vous ne pouvez pas modifier les tags des membres du clan",
|
||||
"ClanPlayerNotInSameClan": "Ce joueur n'est pas dans votre clan",
|
||||
"ClanCantChangeRankLevel": "Vous ne pouvez pas modifier le niveau du rang du clan",
|
||||
"ClanCantChangeRankTag": "Vous ne pouvez pas modifier les tags du rang du clan",
|
||||
"NameNotRegistered": "Votre nom n'est pas enregistré ! Utilise {1} pour créer un compte.",
|
||||
"AutomaticLoginIPToggle": "La connexion automatique par IP est maintenant {1}",
|
||||
"CouldNotRegisterAccount": "Un problème est survenue lors de la création de votre compte. Merci de bien vouloir contacter le staff.",
|
||||
"RandomTipsToggle": "Les conseils aléatoires sont maintenant {1}",
|
||||
"ActionTipsToggle": "Les conseils d'action sont maintenant {1}",
|
||||
"AutoSpawnLastCharToggle": "Réapparition automatique du dernier personnage utilisé est {1}",
|
||||
"AccountGUISettingToggle": "🖥️ la GUI est {1}",
|
||||
"On": "On",
|
||||
"Off": "Off",
|
||||
"Yes": "Oui",
|
||||
"No": "Non",
|
||||
"True": "Vrai",
|
||||
"False": "Faux",
|
||||
"Locked": "Verrouillé",
|
||||
"Unlocked": "Déverrouillé",
|
||||
"PasswordNotGoodEnough": "Le nouveau mot de passe doit répondre aux exigences !",
|
||||
"PasswordNeedsBase": "Le mot de passe doit au moins avoir : {1}",
|
||||
"PasswordNeedsCapitals": "{1} Une majuscule",
|
||||
"PasswordNeedsNumbers": "{1} Un nombre",
|
||||
"PasswordNeedsSymbols": "{1} Un caractère spécial",
|
||||
"PasswordsDontMatch": "Le mot de passe et la confirmation ne sont pas identiques !",
|
||||
"PasswordChanged": "Your password has been changed!",
|
||||
"AutoLoggedInIP": "You have been automatically logged in by IP!",
|
||||
"WelcomeBack": "Welcome back to {1}, {2}! Please {3} to continue.",
|
||||
"WelcomeNewPlayer": "Welcome to {1}, {2}! Please {3} to play.",
|
||||
"InvalidPlayer": "Player not found!",
|
||||
"InvalidBusiness": "Business not found!",
|
||||
"InvalidHouse": "House not found!",
|
||||
"InvalidVehicle": "Vehicle not found!",
|
||||
"InvalidClan": "Clan not found!",
|
||||
"InvalidClanRank": "Clan rank not found!",
|
||||
"InvalidJob": "Job not found!",
|
||||
"InvalidItem": "Item not found!",
|
||||
"InvalidItemType": "Item type not found!",
|
||||
"InvalidRadioStation": "Radio station not found!",
|
||||
"InvalidGate": "Gate not found!",
|
||||
"EntersProperty": "opens the door and enters the {1}",
|
||||
"ExitsProperty": "opens the door and exits the {1}",
|
||||
"EnterExitPropertyDoorLocked": "tries to open the {1} door but fails because it's locked",
|
||||
"PropertyNoInterior": "This {1} does not have an interior, but you can still use commands at the door icon.",
|
||||
"NoBusinessWithItemType": "There is no business with that item available",
|
||||
"HeaderKeyBinds": "Key Binds",
|
||||
"HeaderAccountHelp": "Account Help",
|
||||
"HeaderVehicleHelp": "Vehicle Help",
|
||||
"HeaderVehicleDealershipHelp": "Vehicle Dealership Help",
|
||||
"HeaderJobHelp": "Job Help",
|
||||
"HeaderChatHelp": "Chat Help",
|
||||
"HeaderServerRules": "Server Rules",
|
||||
"HeaderWebsiteInfo": "Website",
|
||||
"HeaderDiscordInfo": "Discord",
|
||||
"HeaderAnimationsList": "Animation List",
|
||||
"HeaderPayAndSprayHelp": "Pay and Spray Help",
|
||||
"HeaderAmmunationHelp": "Ammunation Help",
|
||||
"HeaderVehicleTuneupHelp": "Vehicle Tune Help",
|
||||
"HeaderBindableKeysHelp": "Bindable Keys",
|
||||
"HeaderSkinHelp": "Clothes/Skin Help",
|
||||
"HeaderBusinessHelp": "Business Help",
|
||||
"HeaderClanHelp": "Clan Help",
|
||||
"HeaderPlayerVehiclesList": "Player Vehicles ({1})",
|
||||
"HeaderPlayerBusinessesList": "Player Businesses ({1})",
|
||||
"HeaderClansList": "Clan List",
|
||||
"HeaderAdminsList": "Admin List",
|
||||
"HeaderBadgeInfo": "Badge Information",
|
||||
"HeaderAccentsList": "Accent List",
|
||||
"HeaderPlayerInfo": "Player Information ({1})",
|
||||
"HeaderWealthandTaxHelp": "Wealth and Tax Information",
|
||||
"HeaderCommandInfo": "Command Information ({1})",
|
||||
"HeaderRadioHelp": "Radio Help",
|
||||
"HeaderRadioStationsList": "Radio Stations",
|
||||
"HeaderKeyBindsList": "Key Binds List",
|
||||
"RadioVolumeChanged": "{1} You changed your streaming radio volume to {2}%",
|
||||
"VolumeLevelNotNumber": "The volume level must be a number",
|
||||
"RadioStationLocationInvalid": "You must be in a vehicle, house, or business or have a personal device to change the station!",
|
||||
"ActionBusinessRadioStationChange": "changes the business radio station to {1} ({2})",
|
||||
"ActionHouseRadioStationChange": "changes the house radio station to {1} ({2})",
|
||||
"ActionVehicleRadioStationChange": "changes the vehicle radio station to {1} ({2})",
|
||||
"ActionItemRadioStationChange": "changes the {1}'s station to {2} ({3})",
|
||||
"RandomVehicleCommandsDisabled": "This is a random traffic vehicle and commands can't be used for it.",
|
||||
"HouseDoorLock": "House {1} {2}!",
|
||||
"BusinessDoorLock": "Business {1} {2}!",
|
||||
"ServerGameModeRestarting": "The server game mode is restarting!",
|
||||
"HeaderSelfItemList": "Your Inventory",
|
||||
"HeaderPlayerItemList": "Player Inventory ({1})",
|
||||
"HeaderHouseItemList": "House Inventory",
|
||||
"HeaderBusinessFloorItemList": "Business Inventory (For Sale)",
|
||||
"HeaderBusinessStorageItemList": "Business Inventory (Storage)",
|
||||
"HeaderItemItemList": "{1}'s Inventory",
|
||||
"ItemSlotNotNumber": "The item slot must be a number",
|
||||
"ItemSlotMustBeBetween": "The item slot must be between {1} and {2}!",
|
||||
"UseItemBugged": "The item you're trying to use is bugged. A bug report has been sent to the server developers.",
|
||||
"PickupItemBugged": "The item you're trying to pickup is bugged. A bug report has been sent to the server developers.",
|
||||
"DropItemBugged": "The item you're trying to drop is bugged. A bug report has been sent to the server developers.",
|
||||
"HandsBusy": "Your hands are busy",
|
||||
"CantUseItemInSkinChange": "You can't use an item while customizing your appearance",
|
||||
"CantDropItemInSkinChange": "You can't drop an item while customizing your appearance",
|
||||
"CantPickupItemInSkinChange": "You can't pickup an item while customizing your appearance",
|
||||
"CantSwitchItemInSkinChange": "You can't switch an item while customizing your appearance",
|
||||
"CantGiveItemInSkinChange": "You can't give an item while customizing your appearance",
|
||||
"CantTakeItemInSkinChange": "You can't take an item while customizing your appearance",
|
||||
"ItemUnequippableNoAmmo": "The {1} in slot {2} has no ammo, and can't be equipped!",
|
||||
"NoSpaceSelfInventory": "You don't have any more space in your inventory",
|
||||
"Business": "business",
|
||||
"House": "house",
|
||||
"Clan": "clan",
|
||||
"Vehicle": "vehicle",
|
||||
"Item": "item",
|
||||
"ItemType": "item type",
|
||||
"Gate": "gate",
|
||||
"Door": "door",
|
||||
"ClanRank": "clan rank",
|
||||
"JobRank": "job rank",
|
||||
"RadioStation": "radio station",
|
||||
"Months": [
|
||||
"January",
|
||||
"February",
|
||||
"March",
|
||||
"April",
|
||||
"May",
|
||||
"June",
|
||||
"July",
|
||||
"August",
|
||||
"September",
|
||||
"October",
|
||||
"November",
|
||||
"December"
|
||||
],
|
||||
"WeekDays": [
|
||||
"Sunday",
|
||||
"Monday",
|
||||
"Tuesday",
|
||||
"Wednesday",
|
||||
"Thursday",
|
||||
"Friday",
|
||||
"Saturday"
|
||||
],
|
||||
"CardinalDirections": [
|
||||
"North",
|
||||
"Northeast",
|
||||
"East",
|
||||
"Southeast",
|
||||
"South",
|
||||
"Southwest",
|
||||
"West",
|
||||
"Northwest"
|
||||
],
|
||||
"NewPlayerReadyToPlay": [
|
||||
"You have been given some cash. Use {1} to find places to buy items.",
|
||||
"If you need money, jobs are the yellow dots on the radar.",
|
||||
"For a car, visit the car dealership. You can also use a rental vehicle near spawn or take the train",
|
||||
"Be sure to read the {1} and use {2} for info."
|
||||
],
|
||||
"YourCurrentVehicleDeleted": "The vehicle you were in was deleted.",
|
||||
"Distance": "Distance",
|
||||
"Meters": "Meters",
|
||||
"Feet": "Feet",
|
||||
"Kilometers": "Kilometers",
|
||||
"Miles": "Miles",
|
||||
"MustBeVehicleDriver": "You must be the driver of the vehicle!",
|
||||
"PlayerJoined": "{1} has joined the game from {2}!",
|
||||
"PlayerLeftServer": "{1} has left the game! ({2})",
|
||||
"TakeItemFromHouse": "takes a {1} from the house",
|
||||
"TakeItemFromBusinessStorage": "takes a {1} from the business storage",
|
||||
"TakeItemFromBusiness": "takes a {1} from the business",
|
||||
"TakeItemFromItem": "takes a {1} from the {2}",
|
||||
"TakeItemFromVehicleTrunk": "takes a {1} from the trunk",
|
||||
"TakeItemFromVehicleDash": "takes a {1} from the glove compartment",
|
||||
"JobEquipmentInventoryKeyBindTip": "The job equipment is in your inventory. Press {1} to see them.",
|
||||
"JobEquipmentInventoryCommandTip": "The job equipment is in your inventory. Use {1} to see them.",
|
||||
"AccountHelp": [
|
||||
"Do NOT share your password with anybody else. {1} staff will never ask you for your password",
|
||||
"Use {1} to change your password, and {2} if you forgot it",
|
||||
"Some settings you can use: {1}"
|
||||
],
|
||||
"VehicleHelp": [
|
||||
"Your personal vehicles will save wherever you or somebody else leaves them!",
|
||||
"Visit dealerships to buy new vehicles (Use {1} for more information)",
|
||||
"Some commands: {1}",
|
||||
"Visit a mechanic garage to repair, colour, and tune up your car! {1} for info"
|
||||
],
|
||||
"VehicleDealershipHelp": [
|
||||
"Visit a vehicle dealer to buy new vehicles. Use {1} to find one.",
|
||||
"At the dealer, enter a car you want to buy, and the price will be shown to you",
|
||||
"If you want to buy the vehicle, use {1} and you will be given keys to test drive it around the parking lot.",
|
||||
"Drive away from the dealership with the new vehicle to confirm the purchase."
|
||||
],
|
||||
"JobHelp": [
|
||||
"Visit job locations to get a job and earn money. Look for yellow spots on the map",
|
||||
"At a job location, use {1} to get the job. Use {2} to quit your job",
|
||||
"Use {1} to begin working. You can also get a job {2} and {3}",
|
||||
"Most job vehicles are locked. Use {1} near one to enter it.",
|
||||
"When entering a job vehicle, information on how to do the job will be shown to you."
|
||||
],
|
||||
"ChatHelp": [
|
||||
"There are two main types of chat: out-of-character (OOC) and in-character (IC)",
|
||||
"Mixing these two types is not proper roleplay. See {1} for info.",
|
||||
"Some chat commands: {1}",
|
||||
"Some have shorter names available ({1} to talk, {2} to shout, etc)"
|
||||
],
|
||||
"ServerRulesHelp": [
|
||||
"Unrealistic actions (powergaming) are not allowed. You aren't superman.",
|
||||
"No terrorist or terrorism roleplay is allowed.",
|
||||
"Always follow instructions given by moderators and admins.",
|
||||
"Do not mix the chats (metagaming). You can't use info in IC that was received OOC",
|
||||
"Keep English in main chats. If you aren't good at English, use {1}"
|
||||
],
|
||||
"AnimationHelp": [
|
||||
"Animations allow you to enhance roleplay with visual actions",
|
||||
"Use {1} or {2} with a name to use an animation.",
|
||||
"To see a list of animations, use {1}"
|
||||
],
|
||||
"WeaponHelp": [
|
||||
"Visit an gun store to buy weapons. Use {1} to find one.",
|
||||
"Buying a weapon requires a weapon license.",
|
||||
"Weapon licenses are managed by the police department. Apply there to get one.",
|
||||
"Weapons can also be purchased illegally from some businesses, weapon dealers, and clans."
|
||||
],
|
||||
"SkinHelp": [
|
||||
"At a clothing store, use {1} to purchase clothes",
|
||||
"When you have a clothing item, equip and use it like any other item to show the skin selection (check {1} to learn how to use items)",
|
||||
"Some skins are restricted to jobs, clans, or for other reasons."
|
||||
],
|
||||
"KeyBindHelp": [
|
||||
"You can set your own key binds. Use {1} to see your binded keys.",
|
||||
"Use {1} to add a new keybind and {2} to remove one.",
|
||||
"Default keys are: {1} for vehicle engine, {2} for lights, and {3} for lock/unlock",
|
||||
"Press {1} to see your items and {2} to equip an item or {3} to unequip all.",
|
||||
"Press {1} to use the item you're holding, press {2} to drop it, or press {3} to pickup an item from the ground."
|
||||
],
|
||||
"BusinessHelp": [
|
||||
"Use {1} to purchase items or {2} to see a list of what's for sale at any business",
|
||||
"Businesses are shown with blue names above the icon at their entrance.",
|
||||
"Business owner commands: {1}",
|
||||
"A new car for sale will appear when you drive away from the dealer."
|
||||
],
|
||||
"ClanHelp": [
|
||||
"Ask an administrator to create a clan (Similar to factions/groups/families)",
|
||||
"Clan owners have full control over their clan once it's created",
|
||||
"Clan commands: {1}",
|
||||
"More clan commands: {1}"
|
||||
],
|
||||
"RadioStationHelp": [
|
||||
"Use {1} to set the station for your vehicle, house, or business",
|
||||
"Use {2} to see a list of stations",
|
||||
"You can change your radio streaming volume using {1} with 0-100 as the percent"
|
||||
],
|
||||
"WealthAndTaxHelp": [
|
||||
"Your taxes on payday are {1} percent of your calculated wealth.",
|
||||
"Your calculated wealth is a total sum based on how many vehicles, houses, and businesses you have.",
|
||||
"Each vehicle is {1}, each house is {2}, and each business is {3}",
|
||||
"Use {1} to see your current wealth, and {2} to see how much you'll pay in tax each payday"
|
||||
],
|
||||
"MustBeInAVehicle": "You need to be in a vehicle!",
|
||||
"MustBeInOrNearVehicle": "You need to be in or near a vehicle!",
|
||||
"MustBeInVehicleFrontSeat": "You need to be in the vehicle front seats!",
|
||||
"MustBeInVehicleDriverSeat": "You need to be the driver!",
|
||||
"DontHaveVehicleKey": "You don't have a key for this vehicle!",
|
||||
"NoGateAccess": "You don't have access to this gate!",
|
||||
"GateBroken": "This gate is broken!",
|
||||
"GateHacked": "The gate does not respond!",
|
||||
"RadioJammed": "You hear only static from the radio.",
|
||||
"VehicleNotForSale": "This vehicle is not for sale!",
|
||||
"VehicleNotForRent": "This vehicle is not for rent!",
|
||||
"BusinessNotForSale": "This business is not for sale!",
|
||||
"BusinessNotForRent": "This business is not for rent!",
|
||||
"HouseNotForSale": "This house is not for sale!",
|
||||
"HouseNotForRent": "This house is not for rent!",
|
||||
"DealershipPurchaseTestDrive": "Drive the vehicle away from the dealership to buy it, or get out to cancel.",
|
||||
"DealershipPurchaseExitedVehicle": "You canceled the vehicle purchase by exiting the vehicle!",
|
||||
"VehiclePurchaseComplete": "This vehicle is now yours! It will save wherever you leave it.",
|
||||
"VehiclePurchaseNotEnoughMoney": "You don't have enough money to buy this vehicle!",
|
||||
"HousePurchaseNotEnoughMoney": "You don't have enough money to buy this house!",
|
||||
"BusinessPurchaseNotEnoughMoney": "You don't have enough money to buy this business!",
|
||||
|
||||
"ADDED-21JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
|
||||
"HeaderPlayerHousesList": "Player Houses ({1})",
|
||||
"HeaderPlayerStaffFlagsList": "Player Staff Flags ({1})",
|
||||
"HeaderStaffFlagsList": "Staff Flags",
|
||||
"NonRPName": "Non-RP name! Choose a new one:",
|
||||
"InvalidStaffFlag": "Staff flag not found!",
|
||||
"InvalidClanFlag": "Clan flag not found!",
|
||||
"InvalidLocale": "Language not found!",
|
||||
"HeaderJobUniformList": "Job Uniforms ({1})",
|
||||
"HeaderJobEquipmentList": "Job Equipment ({1})",
|
||||
"InvalidJobUniform": "Job uniform not found!",
|
||||
"InvalidJobEquipment": "Job equipment not found!",
|
||||
"HeaderVehiclesInRangeList": "Vehicles within {1}",
|
||||
"NoVehiclesWithInRange": "There are no vehicles within {1}",
|
||||
"AmountNotNumber": "The amount must be a number!",
|
||||
"NeedToBeWorking": "You need to be working! Use {1} at a job location or near a job vehicle.",
|
||||
"NeedToBeOnJobRoute": "You need to be doing a job route! Use {1} in a job vehicle",
|
||||
"CurrentJobRouteDeleted": "The job route you were on has been deleted by an admin",
|
||||
"CurrentJobRouteVehicleColoursChanged": "Your job route's vehicle colours were changed by an admin",
|
||||
"NotYourJob": "This is not your job!",
|
||||
"JobPoints": "You can get a job by going the yellow points on the map.",
|
||||
"QuitJobToTakeAnother": "If you want this job, use {1} to quit your current job.",
|
||||
"NotAJobVehicle": "This is not a job vehicle!",
|
||||
"NotYourJobVehicle": "This is not your job's vehicle!",
|
||||
"JobRouteDisabled": "The job route you were on has been disabled by an admin",
|
||||
"HeaderPickupTypes": "Pickup Types",
|
||||
"HeaderBlipTypes": "Map Icon Types",
|
||||
"InvalidGPSLocation": "There are no locations with that name or type",
|
||||
"HeaderBusinessList": "Businesses",
|
||||
"VehicleForSale": "This {1} is buyable for {2}! Use {3} if you want to buy it",
|
||||
"VehicleForRent": "This {1} is rentable for {2}! Use {3} if you want to rent it",
|
||||
|
||||
"ADDED-31JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
|
||||
"LoginFailedInvalidPassword": "Invalid password! {1} attempts remaining",
|
||||
"LoginFailedNoPassword": "You must enter a password! ! {1} attempts remaining",
|
||||
"RegistrationFailedNoPassword": "You must enter a password!",
|
||||
"RegistrationFailedNoPasswordConfirm": "You must confirm the password!",
|
||||
"RegistrationFailedNoEmail": "You must enter an email!",
|
||||
"AccountNameAlreadyRegistered": "Your name is already registered!",
|
||||
"AlreadyLoggedIn": "You are already logged in!",
|
||||
"RegistrationFailedInvalidEmail": "That email is invalid!",
|
||||
"RegistrationFailedPasswordMismatch": "The passwords don't match!",
|
||||
"RegistrationFailedCreateError": "Your account couldn't be created!",
|
||||
"RegistrationSuccess": "Your account has been created!",
|
||||
"RegistrationEmailVerifyReminder": "Don't forget to verify your email! A verification code has been sent to you.",
|
||||
"RegistrationCreateCharReminder": "To play on the server, you will need to make a character.",
|
||||
"NoCharactersGUIMessage": "You have no characters. Would you like to make one?",
|
||||
"NoCharactersGUIWindowTitle": "No characters",
|
||||
"NoCharactersChatMessage": "You have no characters. Use {1} to make one.",
|
||||
"NeedEmailFor2FA": "You need to add your email to your account to use two-factor authentication.",
|
||||
"NeedEmailVerifiedFor2FA": "You need to verify your email to use two-factor authentication.",
|
||||
"SetEmailHelpTip": "Use {1} to set your email.",
|
||||
"VerifyEmailHelpTip": "Use {1} to verify your email.",
|
||||
|
||||
"ADDED-13FEB2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
|
||||
"NearbyRadio": "Nearby radio",
|
||||
"FromRadio": "From radio",
|
||||
"ToRadio": "To radio",
|
||||
"NeedToEnterPropertyCommand": "You need to enter the {1} first! Use {2} to enter and exit",
|
||||
"NeedToEnterPropertyKeyPress": "You need to enter the {1} first! Press {2} to enter and exit",
|
||||
"InventoryFullCantCarry": "You don't have any space to carry this (full inventory)!",
|
||||
"NotEnoughCashNeedAmountMore": "You don't have enough money! You need {1} more!",
|
||||
"AmountMustBeMoreThan": "The amount must be more than {1}!",
|
||||
"WeaponBanned": "You are not allowed to buy or use weapons!",
|
||||
"TimeNotNumber": "The time must be a number",
|
||||
"HeaderDefaultBusinessItemTypes": "Business Item Templates",
|
||||
"FixingStuck": "Fixing your position and virtual world ...",
|
||||
"CantUseCommandYet": "You must wait before you can use this command again!",
|
||||
"NotATester": "You are not a tester!",
|
||||
"AccessDenied": "AccessDenied",
|
||||
"InvalidSkin": "That skin is invalid!",
|
||||
"HeaderInteriorTypes": "Interiors List",
|
||||
"ViewInventoryKeyPressTip": "Press {1} to see your items",
|
||||
"ViewInventoryCommandTip": "Use {1} to see your items",
|
||||
"GUIAccountSettingToggle": "You have turned {1} GUI",
|
||||
|
||||
"ADDED-23MAR2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations",
|
||||
"CarCommandHelp": "You can buy a car by visiting a vehicle dealership. Use {1} for more information.",
|
||||
"SkinCommandHelp": "You can change your skin by visiting a clothes store. Use {1} for more info.",
|
||||
"BusinessVehiclesRespawned": "🚗 All business vehicles have been respawned by an admin!",
|
||||
"JobVehiclesRespawned": "🚗 All job vehicles have been respawned by an admin!",
|
||||
"PlayerVehiclesRespawned": "🚗 All player vehicles have been respawned by an admin!",
|
||||
"ClanVehiclesRespawned": "🚗 All clan vehicles have been respawned by an admin!",
|
||||
"PublicVehiclesRespawned": "🚗 All public have been respawned by an admin!",
|
||||
"EmptyVehiclesRespawned": "🚗 All empty vehicles have been respawned by an admin!",
|
||||
"AllVehiclesRespawned": "🚗 All vehicles have been respawned by an admin!",
|
||||
"AllVehiclesReloaded": "🚗 All vehicles have been reloaded by an admin!",
|
||||
"YourVehicleRespawned": "🚗 Your vehicle has been respawned!",
|
||||
"PlayerIPBanned": "💀 {1} has been IP banned!",
|
||||
"PlayerCharacterBanned": "💀 {1} has been character banned!",
|
||||
"PlayerSubNetBanned": "💀 {1} has been subnet banned!",
|
||||
"CantModifyBusiness": "You can't manage or modify this business!",
|
||||
"CantModifyHouse": "You can't manage or modify this house!",
|
||||
"ServerTimeSet": "⏰ {1} set the time to {2}",
|
||||
"ServerWeatherSet": "☁️ {1} set the weather to {2}",
|
||||
"ServerSnowSet": "❄️ {1} turned falling snow {2} and ground snow {3}",
|
||||
"AllJobsReloaded": "💼 All server jobs have been reloaded by an admin",
|
||||
"ServerLogoSet": "{1} turned the server logo image {2}",
|
||||
"ServerGUISet": "🖥️ {1} turned GUI for this server {2}",
|
||||
"ServerBusinessBlipsSet": "🏢 {1} turned all business blips {2}",
|
||||
"ServerHouseBlipsSet": "🏘️ {1} turned all house blips {2}",
|
||||
"ServerJobBlipsSet": "💼 {1} turned all job blips {2}",
|
||||
"ServerBusinessPickupsSet": "🏢 {1} turned all business pickups {2}",
|
||||
"ServerHousePickupsSet": "🏘️ {1} turned all house pickups {2}",
|
||||
"ServerJobPickupsSet": "💼 {1} turned on all job pickups {2}",
|
||||
"BusinessBuyItemsLabel": "Use {1} to purchase items",
|
||||
"PropertyEnterCommandLabel": "Use {1} to enter",
|
||||
"PropertyEnterKeyPressLabel": "Press {1} to enter",
|
||||
"PropertyForSaleLabel": "For sale: ${1}",
|
||||
"PropertyForRentLabel": "For rent: ${1} every payday",
|
||||
"RemainingTaxPaidInMoney": "You covered the remaining taxes with ${1} in cash.",
|
||||
"LostMoneyFromTaxes": "You lost money since your taxes are more than your paycheck!",
|
||||
"NextPaycheckRepossessionWarning": "If you don't have enough cash to cover taxes on next paycheck, you will lose stuff!",
|
||||
"NotEnoughMoneyForTax": "You don't have enough money to cover your taxes!",
|
||||
"AssetsRepossessedForTax": "You lost {1} vehicles, {2} houses, and {3} businesses because you couldn't pay taxes!",
|
||||
"Closed": "Closed",
|
||||
"Open": "Open",
|
||||
"VehicleDealershipLabel": "Enter a vehicle as driver to buy it",
|
||||
"TakeJobLabel": "Use {1} to work here",
|
||||
"StartWorkLabel": "Use {1} to start working",
|
||||
"JobEquipAndUniformLabel": "Use {1} and {2} for job stuff, or {3} to stop working",
|
||||
"NotYourJobLabel": "You already have a different job. Use {1} if you want this one",
|
||||
"JobLabel": "{1} Job",
|
||||
"PaydayBonusSet": "🤑 {1} set the payday bonus to ${2}",
|
||||
"AllHousesReloaded": "🏘️ All houses have been reloaded by an admin",
|
||||
"AllRadioStationsReloaded": "📻 All radio stations have been reloaded by an admin!",
|
||||
"PlayerKicked": "🦶 {1} has been kicked from the server",
|
||||
"AllBusinessesReloaded": "🏢 All businesses have been reloaded by an admin!",
|
||||
"UnableToDoThat": "You aren't able to do that",
|
||||
"SetVehicleClanConfirmMessage": "Are you sure you want to give this vehicle to your clan?",
|
||||
"SetVehicleClanConfirmTitle": "Warning!",
|
||||
"SetItemPriceBelowOrderPriceMessage": "Are you sure you want to set the item price below it's order price? You will lose ${1} every purchase!",
|
||||
"SetItemPriceBelowOrderPriceTitle": "Warning!",
|
||||
"MustOwnVehicle": "You don't own this vehicle!",
|
||||
"RandomTips": [
|
||||
"Look for yellow dots on your map for job locations",
|
||||
"You can set custom key binds. Use {1} for details",
|
||||
"Use {1} if you don't want to see tips and extra information",
|
||||
"You can edit your keybinds using {1} and {2}",
|
||||
"Press ℹ️ to see your inventory, and use number keys to select an item",
|
||||
"Use {1} at a business to purchase items",
|
||||
"Found a bug? Report it with {1}",
|
||||
"Have an idea or suggestion for the server? Let the devs know using {1}",
|
||||
"Want to buy a business? Use {1} at one for sale",
|
||||
"Want to buy a house? Use {1} at one for sale",
|
||||
"Want to buy a vehicle? Visit a dealership and enter one for info on how to buy it!",
|
||||
"Switch to any of your characters with {1}",
|
||||
"Use {1} to automatically login when connecting with the same IP",
|
||||
"Use {1} to turn on/off the lights in your house or business",
|
||||
"Use {1} to play an internet radio station in your car, house, or business",
|
||||
"Want to make a clan? Use {1} for details",
|
||||
"Legal weapons can be purchased at any ammunation"
|
||||
],
|
||||
"PromptResponseTip": "Use {1} to accept or {2} to decline",
|
||||
"PlayerConnecting": "👋 {1} is connecting to the server ...",
|
||||
"GetStartedJobVehicle": "Get in a {1} to get started.",
|
||||
"VehicleTypes": {
|
||||
"Car": "Car",
|
||||
"Truck": "Truck",
|
||||
"Van": "Van",
|
||||
"Taxi": "Taxi",
|
||||
"Bus": "Bus",
|
||||
"PoliceCar": "Police Car",
|
||||
"Ambulance": "Ambulance",
|
||||
"FireTruck": "Fire Truck",
|
||||
"Bike": "Bike",
|
||||
"Motorbike": "Motorbike",
|
||||
"Boat": "Boat",
|
||||
"Helicopter": "Helicopter",
|
||||
"Plane": "Plane",
|
||||
"Train": "Train"
|
||||
},
|
||||
"AlreadyOnJobRoute": "You are already doing a job route!",
|
||||
"GaveVehicleToClan": "You gave this {1} to your clan!",
|
||||
"JobDisabled": "This job is disabled!",
|
||||
"SetHouseClanConfirmMessage": "Are you sure you want to give this house to your clan?",
|
||||
"SetHouseClanConfirmTitle": "Warning!",
|
||||
"SetBusinessClanConfirmMessage": "Are you sure you want to give this business to your clan?",
|
||||
"SetBusinessClanConfirmTitle": "Warning!",
|
||||
"MustOwnHouse": "You don't own this house!",
|
||||
"MustOwnBusiness": "You don't own this business!",
|
||||
"GaveHouseToClan": "You gave this house to your clan!",
|
||||
"GaveBusinessToClan": "You gave this business to your clan!",
|
||||
"BuyBusinessConfirmMessage": "Are you sure you want to buy this business?",
|
||||
"BuyBusinessConfirmTitle": "Attention!",
|
||||
"BuyHouseConfirmMessage": "Are you sure you want to buy this house?",
|
||||
"BuyHouseConfirmTitle": "Attention!",
|
||||
"BuyBusinessLabel": "Use {1} to buy this business",
|
||||
"BuyHouseLabel": "Use {1} to buy this house",
|
||||
"RentHouseLabel": "Use {1} to rent this house",
|
||||
"DisconnectReasons": [
|
||||
"Lost Connection",
|
||||
"Disconnected",
|
||||
"Unsupported Client",
|
||||
"Wrong Game",
|
||||
"Incorrect Password",
|
||||
"Unsupported Executable",
|
||||
"Disconnected",
|
||||
"Banned",
|
||||
"Failed",
|
||||
"Invalid Name",
|
||||
"Crashed",
|
||||
"Modified Game"
|
||||
],
|
||||
"AccountEmailAlreadyVerified": "You already set and verified your email!",
|
||||
"EmailVerificationCodeSent": "A verification code and instructions have been sent to your email.",
|
||||
"GUIPlayAsCharacterButton": "Play",
|
||||
"GUINewCharacterButton": "New character",
|
||||
"GUIPreviousCharacterButton": "Previous",
|
||||
"GUINextCharacterButton": "Next",
|
||||
"GUICharacterSelectWindowTitle": "Select a character",
|
||||
"GUICharacterSelectMoneyLabel": "Money: ${1}",
|
||||
"GUICharacterSelectClanLabel": "Clan: {1}",
|
||||
"GUICharacterSelectLastPlayedLabel": "Last Played: {1} days, {2} hours, {3} minutes ago",
|
||||
"GUILoginWindowLabelEnterPassword": "Please enter your password",
|
||||
"GUILoginWindowSubmitButton": "Login",
|
||||
"GUILoginWindowResetPasswordButton": "Reset password",
|
||||
"GUILoginWindowPasswordPlaceholder": "Password",
|
||||
"GUILoginWindowForgotPasswordLabel": "Forgot your password?",
|
||||
"GUIRegisterWindowLabelCreateAccount": "Create an account",
|
||||
"GUIRegisterWindowPasswordPlaceholder": "Password",
|
||||
"GUIRegisterWindowConfirmPasswordPlaceholder": "Confirm password",
|
||||
"GUIRegisterWindowEmailPlaceholder": "Email",
|
||||
"GUIRegisterWindowSubmitButton": "Create account",
|
||||
"GUINewCharacterMessageLabel": "Name your character",
|
||||
"GUINewCharacterFirstNamePlaceholder": "First Name",
|
||||
"GUINewCharacterLastNamePlaceholder": "Last Name",
|
||||
"GUINewCharacterSubmitButton": "Create Character",
|
||||
"GUIChangePasswordWindowTitle": "Change Password",
|
||||
"GUIChangePasswordPasswordLabel": "Enter a new password",
|
||||
"GUIChangePasswordPasswordPlaceholder": "Password",
|
||||
"GUIChangePasswordConfirmPasswordPlaceholder": "Confirm password",
|
||||
"GUIChangePasswordSubmitButton": "Change Password",
|
||||
"GUIResetPasswordWindowMessage": "Reset Password",
|
||||
"GUIResetPasswordConfirmEmailLabel": "Please confirm your email",
|
||||
"GUIResetPasswordEmailPlaceholder": "Email",
|
||||
"GUIResetPasswordSubmitButton": "Reset Password",
|
||||
"GUIResetPasswordLoginButton": "Login",
|
||||
"GUIResetPasswordRememberMessage": "Remember your password?",
|
||||
"HeaderJobList": "Jobs",
|
||||
"HeaderBusinessInfo": "Business Info",
|
||||
"HeaderHouseInfo": "House Info",
|
||||
"HeaderClanInfo": "Clan Info",
|
||||
"Locales": {
|
||||
"English": "English",
|
||||
"Russian": "Russian",
|
||||
"Spanish": "Spanish",
|
||||
"German": "German",
|
||||
"Dutch": "Dutch",
|
||||
"Polish": "Polish",
|
||||
"Chinese": "Chinese",
|
||||
"French": "French",
|
||||
"Japanese": "Japanese",
|
||||
"Slovak": "Slovak",
|
||||
"Arabic": "Arabic"
|
||||
}
|
||||
}
|
||||
558
locale/german.json
Normal file
558
locale/german.json
Normal file
@@ -0,0 +1,558 @@
|
||||
{
|
||||
"TranslationProvidedBy": "Sladernimo",
|
||||
"LocaleEnglishName": "German",
|
||||
|
||||
"LocaleNativeName": "German",
|
||||
"LocaleOffer": "This server is available in German. Use {1} to use it.",
|
||||
"LocaleChanged1": "Your language is now set to {1}",
|
||||
"LocaleChanged2": "The server will now display messages in {1}",
|
||||
"LocaleChangedNote": "This does not change messages from other players",
|
||||
"AccentsListHeader": "Accents",
|
||||
"HelpMainListHeader": "Help Categories",
|
||||
"AccentNotFound": "Accent not found",
|
||||
"AccentSet": "You set your accent to {1}",
|
||||
"InvalidAnimation": "That animation doesn't exist",
|
||||
"AnimationCommandTip": "Use {1} to see a list of valid animations",
|
||||
"InvalidAnimationDistance": "The distance must be between 0 and 3",
|
||||
"AnimationStopCommandTip": "Use {1} to stop your animation",
|
||||
"CantBanClient": "You cannot ban this person",
|
||||
"PlayerAccountBanned": "{1} has been account banned",
|
||||
"ClanNotFound": "Clan not found",
|
||||
"ClanNameTaken": "A clan with that name already exists",
|
||||
"PlayerNotFound": "Player not found",
|
||||
"ClanCantRemoveRanks": "You can't remove clan ranks",
|
||||
"ClanCantAddRanks": "You can't add clan ranks",
|
||||
"ClanRankNotFound": "Clan rank not found",
|
||||
"ClanCantChangeMemberTag": "You can not change clan member's tags",
|
||||
"ClanPlayerNotInSameClan": "That player is not in your clan",
|
||||
"ClanCantChangeRankLevel": "You can not change clan rank's level",
|
||||
"ClanCantChangeRankTag": "You can not change clan rank's tags",
|
||||
"NameNotRegistered": "Your name is not registered! Use {1} to make an account.",
|
||||
"AutomaticLoginIPToggle": "Automatic login by IP is now {1}",
|
||||
"CouldNotRegisterAccount": "There was a problem creating your account. Please contact an admin.",
|
||||
"RandomTipsToggle": "Random tips are now {1}",
|
||||
"ActionTipsToggle": "Action tips are now {1}",
|
||||
"AutoSpawnLastCharToggle": "Automatic spawn as last used character is {1}",
|
||||
"AccountGUISettingToggle": "🖥️ GUI is now {1}",
|
||||
"On": "On",
|
||||
"Off": "Off",
|
||||
"Yes": "Yes",
|
||||
"No": "No",
|
||||
"True": "True",
|
||||
"False": "False",
|
||||
"Locked": "Locked",
|
||||
"Unlocked": "Unlocked",
|
||||
"PasswordNotGoodEnough": "The new password must meet the requirements!",
|
||||
"PasswordNeedsBase": "Passwords must have at least {1}",
|
||||
"PasswordNeedsCapitals": "{1} capital letters",
|
||||
"PasswordNeedsNumbers": "{1} numbers",
|
||||
"PasswordNeedsSymbols": "{1} symbols",
|
||||
"PasswordsDontMatch": "The new password and confirm new password aren't the same!",
|
||||
"PasswordChanged": "Your password has been changed!",
|
||||
"AutoLoggedInIP": "You have been automatically logged in by IP!",
|
||||
"WelcomeBack": "Welcome back to {1}, {2}! Please {3} to continue.",
|
||||
"WelcomeNewPlayer": "Welcome to {1}, {2}! Please {3} to play.",
|
||||
"InvalidPlayer": "Player not found!",
|
||||
"InvalidBusiness": "Business not found!",
|
||||
"InvalidHouse": "House not found!",
|
||||
"InvalidVehicle": "Vehicle not found!",
|
||||
"InvalidClan": "Clan not found!",
|
||||
"InvalidClanRank": "Clan rank not found!",
|
||||
"InvalidJob": "Job not found!",
|
||||
"InvalidItem": "Item not found!",
|
||||
"InvalidItemType": "Item type not found!",
|
||||
"InvalidRadioStation": "Radio station not found!",
|
||||
"InvalidGate": "Gate not found!",
|
||||
"EntersProperty": "opens the door and enters the {1}",
|
||||
"ExitsProperty": "opens the door and exits the {1}",
|
||||
"EnterExitPropertyDoorLocked": "tries to open the {1} door but fails because it's locked",
|
||||
"PropertyNoInterior": "This {1} does not have an interior, but you can still use commands at the door icon.",
|
||||
"NoBusinessWithItemType": "There is no business with that item available",
|
||||
"HeaderKeyBinds": "Key Binds",
|
||||
"HeaderAccountHelp": "Account Help",
|
||||
"HeaderVehicleHelp": "Vehicle Help",
|
||||
"HeaderVehicleDealershipHelp": "Vehicle Dealership Help",
|
||||
"HeaderJobHelp": "Job Help",
|
||||
"HeaderChatHelp": "Chat Help",
|
||||
"HeaderServerRules": "Server Rules",
|
||||
"HeaderWebsiteInfo": "Website",
|
||||
"HeaderDiscordInfo": "Discord",
|
||||
"HeaderAnimationsList": "Animation List",
|
||||
"HeaderPayAndSprayHelp": "Pay and Spray Help",
|
||||
"HeaderAmmunationHelp": "Ammunation Help",
|
||||
"HeaderVehicleTuneupHelp": "Vehicle Tune Help",
|
||||
"HeaderBindableKeysHelp": "Bindable Keys",
|
||||
"HeaderSkinHelp": "Clothes/Skin Help",
|
||||
"HeaderBusinessHelp": "Business Help",
|
||||
"HeaderClanHelp": "Clan Help",
|
||||
"HeaderPlayerVehiclesList": "Player Vehicles ({1})",
|
||||
"HeaderPlayerBusinessesList": "Player Businesses ({1})",
|
||||
"HeaderClansList": "Clan List",
|
||||
"HeaderAdminsList": "Admin List",
|
||||
"HeaderBadgeInfo": "Badge Information",
|
||||
"HeaderAccentsList": "Accent List",
|
||||
"HeaderPlayerInfo": "Player Information ({1})",
|
||||
"HeaderWealthandTaxHelp": "Wealth and Tax Information",
|
||||
"HeaderCommandInfo": "Command Information ({1})",
|
||||
"HeaderRadioHelp": "Radio Help",
|
||||
"HeaderRadioStationsList": "Radio Stations",
|
||||
"HeaderKeyBindsList": "Key Binds List",
|
||||
"RadioVolumeChanged": "{1} You changed your streaming radio volume to {2}%",
|
||||
"VolumeLevelNotNumber": "The volume level must be a number",
|
||||
"RadioStationLocationInvalid": "You must be in a vehicle, house, or business or have a personal device to change the station!",
|
||||
"ActionBusinessRadioStationChange": "changes the business radio station to {1} ({2})",
|
||||
"ActionHouseRadioStationChange": "changes the house radio station to {1} ({2})",
|
||||
"ActionVehicleRadioStationChange": "changes the vehicle radio station to {1} ({2})",
|
||||
"ActionItemRadioStationChange": "changes the {1}'s station to {2} ({3})",
|
||||
"RandomVehicleCommandsDisabled": "This is a random traffic vehicle and commands can't be used for it.",
|
||||
"HouseDoorLock": "House {1} {2}!",
|
||||
"BusinessDoorLock": "Business {1} {2}!",
|
||||
"ServerGameModeRestarting": "The server game mode is restarting!",
|
||||
"HeaderSelfItemList": "Your Inventory",
|
||||
"HeaderPlayerItemList": "Player Inventory ({1})",
|
||||
"HeaderHouseItemList": "House Inventory",
|
||||
"HeaderBusinessFloorItemList": "Business Inventory (For Sale)",
|
||||
"HeaderBusinessStorageItemList": "Business Inventory (Storage)",
|
||||
"HeaderItemItemList": "{1}'s Inventory",
|
||||
"ItemSlotNotNumber": "The item slot must be a number",
|
||||
"ItemSlotMustBeBetween": "The item slot must be between {1} and {2}!",
|
||||
"UseItemBugged": "The item you're trying to use is bugged. A bug report has been sent to the server developers.",
|
||||
"PickupItemBugged": "The item you're trying to pickup is bugged. A bug report has been sent to the server developers.",
|
||||
"DropItemBugged": "The item you're trying to drop is bugged. A bug report has been sent to the server developers.",
|
||||
"HandsBusy": "Your hands are busy",
|
||||
"CantUseItemInSkinChange": "You can't use an item while customizing your appearance",
|
||||
"CantDropItemInSkinChange": "You can't drop an item while customizing your appearance",
|
||||
"CantPickupItemInSkinChange": "You can't pickup an item while customizing your appearance",
|
||||
"CantSwitchItemInSkinChange": "You can't switch an item while customizing your appearance",
|
||||
"CantGiveItemInSkinChange": "You can't give an item while customizing your appearance",
|
||||
"CantTakeItemInSkinChange": "You can't take an item while customizing your appearance",
|
||||
"ItemUnequippableNoAmmo": "The {1} in slot {2} has no ammo, and can't be equipped!",
|
||||
"NoSpaceSelfInventory": "You don't have any more space in your inventory",
|
||||
"Business": "business",
|
||||
"House": "house",
|
||||
"Clan": "clan",
|
||||
"Vehicle": "vehicle",
|
||||
"Item": "item",
|
||||
"ItemType": "item type",
|
||||
"Gate": "gate",
|
||||
"Door": "door",
|
||||
"ClanRank": "clan rank",
|
||||
"JobRank": "job rank",
|
||||
"RadioStation": "radio station",
|
||||
"Months": [
|
||||
"January",
|
||||
"February",
|
||||
"March",
|
||||
"April",
|
||||
"May",
|
||||
"June",
|
||||
"July",
|
||||
"August",
|
||||
"September",
|
||||
"October",
|
||||
"November",
|
||||
"December"
|
||||
],
|
||||
"WeekDays": [
|
||||
"Sunday",
|
||||
"Monday",
|
||||
"Tuesday",
|
||||
"Wednesday",
|
||||
"Thursday",
|
||||
"Friday",
|
||||
"Saturday"
|
||||
],
|
||||
"CardinalDirections": [
|
||||
"North",
|
||||
"Northeast",
|
||||
"East",
|
||||
"Southeast",
|
||||
"South",
|
||||
"Southwest",
|
||||
"West",
|
||||
"Northwest"
|
||||
],
|
||||
"NewPlayerReadyToPlay": [
|
||||
"You have been given some cash. Use {1} to find places to buy items.",
|
||||
"If you need money, jobs are the yellow dots on the radar.",
|
||||
"For a car, visit the car dealership. You can also use a rental vehicle near spawn or take the train",
|
||||
"Be sure to read the {1} and use {2} for info."
|
||||
],
|
||||
"YourCurrentVehicleDeleted": "The vehicle you were in was deleted.",
|
||||
"Distance": "Distance",
|
||||
"Meters": "Meters",
|
||||
"Feet": "Feet",
|
||||
"Kilometers": "Kilometers",
|
||||
"Miles": "Miles",
|
||||
"MustBeVehicleDriver": "You must be the driver of the vehicle!",
|
||||
"PlayerJoined": "{1} has joined the game from {2}!",
|
||||
"PlayerLeftServer": "{1} has left the game! ({2})",
|
||||
"TakeItemFromHouse": "takes a {1} from the house",
|
||||
"TakeItemFromBusinessStorage": "takes a {1} from the business storage",
|
||||
"TakeItemFromBusiness": "takes a {1} from the business",
|
||||
"TakeItemFromItem": "takes a {1} from the {2}",
|
||||
"TakeItemFromVehicleTrunk": "takes a {1} from the trunk",
|
||||
"TakeItemFromVehicleDash": "takes a {1} from the glove compartment",
|
||||
"JobEquipmentInventoryKeyBindTip": "The job equipment is in your inventory. Press {1} to see them.",
|
||||
"JobEquipmentInventoryCommandTip": "The job equipment is in your inventory. Use {1} to see them.",
|
||||
"AccountHelp": [
|
||||
"Do NOT share your password with anybody else. {1} staff will never ask you for your password",
|
||||
"Use {1} to change your password, and {2} if you forgot it",
|
||||
"Some settings you can use: {1}"
|
||||
],
|
||||
"VehicleHelp": [
|
||||
"Your personal vehicles will save wherever you or somebody else leaves them!",
|
||||
"Visit dealerships to buy new vehicles (Use {1} for more information)",
|
||||
"Some commands: {1}",
|
||||
"Visit a mechanic garage to repair, colour, and tune up your car! {1} for info"
|
||||
],
|
||||
"VehicleDealershipHelp": [
|
||||
"Visit a vehicle dealer to buy new vehicles. Use {1} to find one.",
|
||||
"At the dealer, enter a car you want to buy, and the price will be shown to you",
|
||||
"If you want to buy the vehicle, use {1} and you will be given keys to test drive it around the parking lot.",
|
||||
"Drive away from the dealership with the new vehicle to confirm the purchase."
|
||||
],
|
||||
"JobHelp": [
|
||||
"Visit job locations to get a job and earn money. Look for yellow spots on the map",
|
||||
"At a job location, use {1} to get the job. Use {2} to quit your job",
|
||||
"Use {1} to begin working. You can also get a job {2} and {3}",
|
||||
"Most job vehicles are locked. Use {1} near one to enter it.",
|
||||
"When entering a job vehicle, information on how to do the job will be shown to you."
|
||||
],
|
||||
"ChatHelp": [
|
||||
"There are two main types of chat: out-of-character (OOC) and in-character (IC)",
|
||||
"Mixing these two types is not proper roleplay. See {1} for info.",
|
||||
"Some chat commands: {1}",
|
||||
"Some have shorter names available ({1} to talk, {2} to shout, etc)"
|
||||
],
|
||||
"ServerRulesHelp": [
|
||||
"Unrealistic actions (powergaming) are not allowed. You aren't superman.",
|
||||
"No terrorist or terrorism roleplay is allowed.",
|
||||
"Always follow instructions given by moderators and admins.",
|
||||
"Do not mix the chats (metagaming). You can't use info in IC that was received OOC",
|
||||
"Keep English in main chats. If you aren't good at English, use {1}"
|
||||
],
|
||||
"AnimationHelp": [
|
||||
"Animations allow you to enhance roleplay with visual actions",
|
||||
"Use {1} or {2} with a name to use an animation.",
|
||||
"To see a list of animations, use {1}"
|
||||
],
|
||||
"WeaponHelp": [
|
||||
"Visit an gun store to buy weapons. Use {1} to find one.",
|
||||
"Buying a weapon requires a weapon license.",
|
||||
"Weapon licenses are managed by the police department. Apply there to get one.",
|
||||
"Weapons can also be purchased illegally from some businesses, weapon dealers, and clans."
|
||||
],
|
||||
"SkinHelp": [
|
||||
"At a clothing store, use {1} to purchase clothes",
|
||||
"When you have a clothing item, equip and use it like any other item to show the skin selection (check {1} to learn how to use items)",
|
||||
"Some skins are restricted to jobs, clans, or for other reasons."
|
||||
],
|
||||
"KeyBindHelp": [
|
||||
"You can set your own key binds. Use {1} to see your binded keys.",
|
||||
"Use {1} to add a new keybind and {2} to remove one.",
|
||||
"Default keys are: {1} for vehicle engine, {2} for lights, and {3} for lock/unlock",
|
||||
"Press {1} to see your items and {2} to equip an item or {3} to unequip all.",
|
||||
"Press {1} to use the item you're holding, press {2} to drop it, or press {3} to pickup an item from the ground."
|
||||
],
|
||||
"BusinessHelp": [
|
||||
"Use {1} to purchase items or {2} to see a list of what's for sale at any business",
|
||||
"Businesses are shown with blue names above the icon at their entrance.",
|
||||
"Business owner commands: {1}",
|
||||
"A new car for sale will appear when you drive away from the dealer."
|
||||
],
|
||||
"ClanHelp": [
|
||||
"Ask an administrator to create a clan (Similar to factions/groups/families)",
|
||||
"Clan owners have full control over their clan once it's created",
|
||||
"Clan commands: {1}",
|
||||
"More clan commands: {1}"
|
||||
],
|
||||
"RadioStationHelp": [
|
||||
"Use {1} to set the station for your vehicle, house, or business",
|
||||
"Use {2} to see a list of stations",
|
||||
"You can change your radio streaming volume using {1} with 0-100 as the percent"
|
||||
],
|
||||
"WealthAndTaxHelp": [
|
||||
"Your taxes on payday are {1} percent of your calculated wealth.",
|
||||
"Your calculated wealth is a total sum based on how many vehicles, houses, and businesses you have.",
|
||||
"Each vehicle is {1}, each house is {2}, and each business is {3}",
|
||||
"Use {1} to see your current wealth, and {2} to see how much you'll pay in tax each payday"
|
||||
],
|
||||
"MustBeInAVehicle": "You need to be in a vehicle!",
|
||||
"MustBeInOrNearVehicle": "You need to be in or near a vehicle!",
|
||||
"MustBeInVehicleFrontSeat": "You need to be in the vehicle front seats!",
|
||||
"MustBeInVehicleDriverSeat": "You need to be the driver!",
|
||||
"DontHaveVehicleKey": "You don't have a key for this vehicle!",
|
||||
"NoGateAccess": "You don't have access to this gate!",
|
||||
"GateBroken": "This gate is broken!",
|
||||
"GateHacked": "The gate does not respond!",
|
||||
"RadioJammed": "You hear only static from the radio.",
|
||||
"VehicleNotForSale": "This vehicle is not for sale!",
|
||||
"VehicleNotForRent": "This vehicle is not for rent!",
|
||||
"BusinessNotForSale": "This business is not for sale!",
|
||||
"BusinessNotForRent": "This business is not for rent!",
|
||||
"HouseNotForSale": "This house is not for sale!",
|
||||
"HouseNotForRent": "This house is not for rent!",
|
||||
"DealershipPurchaseTestDrive": "Drive the vehicle away from the dealership to buy it, or get out to cancel.",
|
||||
"DealershipPurchaseExitedVehicle": "You canceled the vehicle purchase by exiting the vehicle!",
|
||||
"VehiclePurchaseComplete": "This vehicle is now yours! It will save wherever you leave it.",
|
||||
"VehiclePurchaseNotEnoughMoney": "You don't have enough money to buy this vehicle!",
|
||||
"HousePurchaseNotEnoughMoney": "You don't have enough money to buy this house!",
|
||||
"BusinessPurchaseNotEnoughMoney": "You don't have enough money to buy this business!",
|
||||
|
||||
"ADDED-21JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
|
||||
"HeaderPlayerHousesList": "Player Houses ({1})",
|
||||
"HeaderPlayerStaffFlagsList": "Player Staff Flags ({1})",
|
||||
"HeaderStaffFlagsList": "Staff Flags",
|
||||
"NonRPName": "Non-RP name! Choose a new one:",
|
||||
"InvalidStaffFlag": "Staff flag not found!",
|
||||
"InvalidClanFlag": "Clan flag not found!",
|
||||
"InvalidLocale": "Language not found!",
|
||||
"HeaderJobUniformList": "Job Uniforms ({1})",
|
||||
"HeaderJobEquipmentList": "Job Equipment ({1})",
|
||||
"InvalidJobUniform": "Job uniform not found!",
|
||||
"InvalidJobEquipment": "Job equipment not found!",
|
||||
"HeaderVehiclesInRangeList": "Vehicles within {1}",
|
||||
"NoVehiclesWithInRange": "There are no vehicles within {1}",
|
||||
"AmountNotNumber": "The amount must be a number!",
|
||||
"NeedToBeWorking": "You need to be working! Use {1} at a job location or near a job vehicle.",
|
||||
"NeedToBeOnJobRoute": "You need to be doing a job route! Use {1} in a job vehicle",
|
||||
"CurrentJobRouteDeleted": "The job route you were on has been deleted by an admin",
|
||||
"CurrentJobRouteVehicleColoursChanged": "Your job route's vehicle colours were changed by an admin",
|
||||
"NotYourJob": "This is not your job!",
|
||||
"JobPoints": "You can get a job by going the yellow points on the map.",
|
||||
"QuitJobToTakeAnother": "If you want this job, use {1} to quit your current job.",
|
||||
"NotAJobVehicle": "This is not a job vehicle!",
|
||||
"NotYourJobVehicle": "This is not your job's vehicle!",
|
||||
"JobRouteDisabled": "The job route you were on has been disabled by an admin",
|
||||
"HeaderPickupTypes": "Pickup Types",
|
||||
"HeaderBlipTypes": "Map Icon Types",
|
||||
"InvalidGPSLocation": "There are no locations with that name or type",
|
||||
"HeaderBusinessList": "Businesses",
|
||||
"VehicleForSale": "This {1} is buyable for {2}! Use {3} if you want to buy it",
|
||||
"VehicleForRent": "This {1} is rentable for {2}! Use {3} if you want to rent it",
|
||||
|
||||
"ADDED-31JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
|
||||
"LoginFailedInvalidPassword": "Invalid password! {1} attempts remaining",
|
||||
"LoginFailedNoPassword": "You must enter a password! ! {1} attempts remaining",
|
||||
"RegistrationFailedNoPassword": "You must enter a password!",
|
||||
"RegistrationFailedNoPasswordConfirm": "You must confirm the password!",
|
||||
"RegistrationFailedNoEmail": "You must enter an email!",
|
||||
"AccountNameAlreadyRegistered": "Your name is already registered!",
|
||||
"AlreadyLoggedIn": "You are already logged in!",
|
||||
"RegistrationFailedInvalidEmail": "That email is invalid!",
|
||||
"RegistrationFailedPasswordMismatch": "The passwords don't match!",
|
||||
"RegistrationFailedCreateError": "Your account couldn't be created!",
|
||||
"RegistrationSuccess": "Your account has been created!",
|
||||
"RegistrationEmailVerifyReminder": "Don't forget to verify your email! A verification code has been sent to you.",
|
||||
"RegistrationCreateCharReminder": "To play on the server, you will need to make a character.",
|
||||
"NoCharactersGUIMessage": "You have no characters. Would you like to make one?",
|
||||
"NoCharactersGUIWindowTitle": "No characters",
|
||||
"NoCharactersChatMessage": "You have no characters. Use {1} to make one.",
|
||||
"NeedEmailFor2FA": "You need to add your email to your account to use two-factor authentication.",
|
||||
"NeedEmailVerifiedFor2FA": "You need to verify your email to use two-factor authentication.",
|
||||
"SetEmailHelpTip": "Use {1} to set your email.",
|
||||
"VerifyEmailHelpTip": "Use {1} to verify your email.",
|
||||
|
||||
"ADDED-13FEB2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
|
||||
"NearbyRadio": "Nearby radio",
|
||||
"FromRadio": "From radio",
|
||||
"ToRadio": "To radio",
|
||||
"NeedToEnterPropertyCommand": "You need to enter the {1} first! Use {2} to enter and exit",
|
||||
"NeedToEnterPropertyKeyPress": "You need to enter the {1} first! Press {2} to enter and exit",
|
||||
"InventoryFullCantCarry": "You don't have any space to carry this (full inventory)!",
|
||||
"NotEnoughCashNeedAmountMore": "You don't have enough money! You need {1} more!",
|
||||
"AmountMustBeMoreThan": "The amount must be more than {1}!",
|
||||
"WeaponBanned": "You are not allowed to buy or use weapons!",
|
||||
"TimeNotNumber": "The time must be a number",
|
||||
"HeaderDefaultBusinessItemTypes": "Business Item Templates",
|
||||
"FixingStuck": "Fixing your position and virtual world ...",
|
||||
"CantUseCommandYet": "You must wait before you can use this command again!",
|
||||
"NotATester": "You are not a tester!",
|
||||
"AccessDenied": "AccessDenied",
|
||||
"InvalidSkin": "That skin is invalid!",
|
||||
"HeaderInteriorTypes": "Interiors List",
|
||||
"ViewInventoryKeyPressTip": "Press {1} to see your items",
|
||||
"ViewInventoryCommandTip": "Use {1} to see your items",
|
||||
"GUIAccountSettingToggle": "You have turned {1} GUI",
|
||||
|
||||
"ADDED-23MAR2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations",
|
||||
"CarCommandHelp": "You can buy a car by visiting a vehicle dealership. Use {1} for more information.",
|
||||
"SkinCommandHelp": "You can change your skin by visiting a clothes store. Use {1} for more info.",
|
||||
"BusinessVehiclesRespawned": "🚗 All business vehicles have been respawned by an admin!",
|
||||
"JobVehiclesRespawned": "🚗 All job vehicles have been respawned by an admin!",
|
||||
"PlayerVehiclesRespawned": "🚗 All player vehicles have been respawned by an admin!",
|
||||
"ClanVehiclesRespawned": "🚗 All clan vehicles have been respawned by an admin!",
|
||||
"PublicVehiclesRespawned": "🚗 All public have been respawned by an admin!",
|
||||
"EmptyVehiclesRespawned": "🚗 All empty vehicles have been respawned by an admin!",
|
||||
"AllVehiclesRespawned": "🚗 All vehicles have been respawned by an admin!",
|
||||
"AllVehiclesReloaded": "🚗 All vehicles have been reloaded by an admin!",
|
||||
"YourVehicleRespawned": "🚗 Your vehicle has been respawned!",
|
||||
"PlayerIPBanned": "💀 {1} has been IP banned!",
|
||||
"PlayerCharacterBanned": "💀 {1} has been character banned!",
|
||||
"PlayerSubNetBanned": "💀 {1} has been subnet banned!",
|
||||
"CantModifyBusiness": "You can't manage or modify this business!",
|
||||
"CantModifyHouse": "You can't manage or modify this house!",
|
||||
"ServerTimeSet": "⏰ {1} set the time to {2}",
|
||||
"ServerWeatherSet": "☁️ {1} set the weather to {2}",
|
||||
"ServerSnowSet": "❄️ {1} turned falling snow {2} and ground snow {3}",
|
||||
"AllJobsReloaded": "💼 All server jobs have been reloaded by an admin",
|
||||
"ServerLogoSet": "{1} turned the server logo image {2}",
|
||||
"ServerGUISet": "🖥️ {1} turned GUI for this server {2}",
|
||||
"ServerBusinessBlipsSet": "🏢 {1} turned all business blips {2}",
|
||||
"ServerHouseBlipsSet": "🏘️ {1} turned all house blips {2}",
|
||||
"ServerJobBlipsSet": "💼 {1} turned all job blips {2}",
|
||||
"ServerBusinessPickupsSet": "🏢 {1} turned all business pickups {2}",
|
||||
"ServerHousePickupsSet": "🏘️ {1} turned all house pickups {2}",
|
||||
"ServerJobPickupsSet": "💼 {1} turned on all job pickups {2}",
|
||||
"BusinessBuyItemsLabel": "Use {1} to purchase items",
|
||||
"PropertyEnterCommandLabel": "Use {1} to enter",
|
||||
"PropertyEnterKeyPressLabel": "Press {1} to enter",
|
||||
"PropertyForSaleLabel": "For sale: ${1}",
|
||||
"PropertyForRentLabel": "For rent: ${1} every payday",
|
||||
"RemainingTaxPaidInMoney": "You covered the remaining taxes with ${1} in cash.",
|
||||
"LostMoneyFromTaxes": "You lost money since your taxes are more than your paycheck!",
|
||||
"NextPaycheckRepossessionWarning": "If you don't have enough cash to cover taxes on next paycheck, you will lose stuff!",
|
||||
"NotEnoughMoneyForTax": "You don't have enough money to cover your taxes!",
|
||||
"AssetsRepossessedForTax": "You lost {1} vehicles, {2} houses, and {3} businesses because you couldn't pay taxes!",
|
||||
"Closed": "Closed",
|
||||
"Open": "Open",
|
||||
"VehicleDealershipLabel": "Enter a vehicle as driver to buy it",
|
||||
"TakeJobLabel": "Use {1} to work here",
|
||||
"StartWorkLabel": "Use {1} to start working",
|
||||
"JobEquipAndUniformLabel": "Use {1} and {2} for job stuff, or {3} to stop working",
|
||||
"NotYourJobLabel": "You already have a different job. Use {1} if you want this one",
|
||||
"JobLabel": "{1} Job",
|
||||
"PaydayBonusSet": "🤑 {1} set the payday bonus to ${2}",
|
||||
"AllHousesReloaded": "🏘️ All houses have been reloaded by an admin",
|
||||
"AllRadioStationsReloaded": "📻 All radio stations have been reloaded by an admin!",
|
||||
"PlayerKicked": "🦶 {1} has been kicked from the server",
|
||||
"AllBusinessesReloaded": "🏢 All businesses have been reloaded by an admin!",
|
||||
"UnableToDoThat": "You aren't able to do that",
|
||||
"SetVehicleClanConfirmMessage": "Are you sure you want to give this vehicle to your clan?",
|
||||
"SetVehicleClanConfirmTitle": "Warning!",
|
||||
"SetItemPriceBelowOrderPriceMessage": "Are you sure you want to set the item price below it's order price? You will lose ${1} every purchase!",
|
||||
"SetItemPriceBelowOrderPriceTitle": "Warning!",
|
||||
"MustOwnVehicle": "You don't own this vehicle!",
|
||||
"RandomTips": [
|
||||
"Look for yellow dots on your map for job locations",
|
||||
"You can set custom key binds. Use {1} for details",
|
||||
"Use {1} if you don't want to see tips and extra information",
|
||||
"You can edit your keybinds using {1} and {2}",
|
||||
"Press ℹ️ to see your inventory, and use number keys to select an item",
|
||||
"Use {1} at a business to purchase items",
|
||||
"Found a bug? Report it with {1}",
|
||||
"Have an idea or suggestion for the server? Let the devs know using {1}",
|
||||
"Want to buy a business? Use {1} at one for sale",
|
||||
"Want to buy a house? Use {1} at one for sale",
|
||||
"Want to buy a vehicle? Visit a dealership and enter one for info on how to buy it!",
|
||||
"Switch to any of your characters with {1}",
|
||||
"Use {1} to automatically login when connecting with the same IP",
|
||||
"Use {1} to turn on/off the lights in your house or business",
|
||||
"Use {1} to play an internet radio station in your car, house, or business",
|
||||
"Want to make a clan? Use {1} for details",
|
||||
"Legal weapons can be purchased at any ammunation"
|
||||
],
|
||||
"PromptResponseTip": "Use {1} to accept or {2} to decline",
|
||||
"PlayerConnecting": "👋 {1} is connecting to the server ...",
|
||||
"GetStartedJobVehicle": "Get in a {1} to get started.",
|
||||
"VehicleTypes": {
|
||||
"Car": "Car",
|
||||
"Truck": "Truck",
|
||||
"Van": "Van",
|
||||
"Taxi": "Taxi",
|
||||
"Bus": "Bus",
|
||||
"PoliceCar": "Police Car",
|
||||
"Ambulance": "Ambulance",
|
||||
"FireTruck": "Fire Truck",
|
||||
"Bike": "Bike",
|
||||
"Motorbike": "Motorbike",
|
||||
"Boat": "Boat",
|
||||
"Helicopter": "Helicopter",
|
||||
"Plane": "Plane",
|
||||
"Train": "Train"
|
||||
},
|
||||
"AlreadyOnJobRoute": "You are already doing a job route!",
|
||||
"GaveVehicleToClan": "You gave this {1} to your clan!",
|
||||
"JobDisabled": "This job is disabled!",
|
||||
"SetHouseClanConfirmMessage": "Are you sure you want to give this house to your clan?",
|
||||
"SetHouseClanConfirmTitle": "Warning!",
|
||||
"SetBusinessClanConfirmMessage": "Are you sure you want to give this business to your clan?",
|
||||
"SetBusinessClanConfirmTitle": "Warning!",
|
||||
"MustOwnHouse": "You don't own this house!",
|
||||
"MustOwnBusiness": "You don't own this business!",
|
||||
"GaveHouseToClan": "You gave this house to your clan!",
|
||||
"GaveBusinessToClan": "You gave this business to your clan!",
|
||||
"BuyBusinessConfirmMessage": "Are you sure you want to buy this business?",
|
||||
"BuyBusinessConfirmTitle": "Attention!",
|
||||
"BuyHouseConfirmMessage": "Are you sure you want to buy this house?",
|
||||
"BuyHouseConfirmTitle": "Attention!",
|
||||
"BuyBusinessLabel": "Use {1} to buy this business",
|
||||
"BuyHouseLabel": "Use {1} to buy this house",
|
||||
"RentHouseLabel": "Use {1} to rent this house",
|
||||
"DisconnectReasons": [
|
||||
"Lost Connection",
|
||||
"Disconnected",
|
||||
"Unsupported Client",
|
||||
"Wrong Game",
|
||||
"Incorrect Password",
|
||||
"Unsupported Executable",
|
||||
"Disconnected",
|
||||
"Banned",
|
||||
"Failed",
|
||||
"Invalid Name",
|
||||
"Crashed",
|
||||
"Modified Game"
|
||||
],
|
||||
"AccountEmailAlreadyVerified": "You already set and verified your email!",
|
||||
"EmailVerificationCodeSent": "A verification code and instructions have been sent to your email.",
|
||||
"GUIPlayAsCharacterButton": "Spielen",
|
||||
"GUINewCharacterButton": "Neuer Charakter",
|
||||
"GUIPreviousCharacterButton": "Zurück",
|
||||
"GUINextCharacterButton": "Weiter",
|
||||
"GUICharacterSelectWindowTitle": "Wähle einen Charakter",
|
||||
"GUICharacterSelectMoneyLabel": "Geld: ${1}",
|
||||
"GUICharacterSelectClanLabel": "Clan: {1}",
|
||||
"GUICharacterSelectLastPlayedLabel": "Zuletzt gespielt vor: {1} Tagen, {2} Stunden, {3} Minuten",
|
||||
"GUILoginWindowLabelEnterPassword": "Bitte Passwort eingeben",
|
||||
"GUILoginWindowSubmitButton": "Login",
|
||||
"GUILoginWindowResetPasswordButton": "Passwort zurücksetzen",
|
||||
"GUILoginWindowPasswordPlaceholder": "Passwort",
|
||||
"GUILoginWindowForgotPasswordLabel": "Passwort vergessen?",
|
||||
"GUIRegisterWindowLabelCreateAccount": "Profil erstellen",
|
||||
"GUIRegisterWindowPasswordPlaceholder": "Passwort",
|
||||
"GUIRegisterWindowConfirmPasswordPlaceholder": "Passwort bestätigen",
|
||||
"GUIRegisterWindowEmailPlaceholder": "Email",
|
||||
"GUIRegisterWindowSubmitButton": "Profil erstellen",
|
||||
"GUINewCharacterMessageLabel": "Charakter Name",
|
||||
"GUINewCharacterFirstNamePlaceholder": "Vorname",
|
||||
"GUINewCharacterLastNamePlaceholder": "Nachname",
|
||||
"GUIChangePasswordWindowTitle": "Passwort ändern",
|
||||
"GUIChangePasswordPasswordLabel": "Neues Passwort eingeben",
|
||||
"GUIChangePasswordPasswordPlaceholder": "Passwort",
|
||||
"GUIChangePasswordConfirmPasswordPlaceholder": "Passwort bestätigen",
|
||||
"GUIChangePasswordSubmitButton": "Passwort ändern",
|
||||
"GUIResetPasswordWindowMessage": "Passwort zurücksetzen",
|
||||
"GUIResetPasswordConfirmEmailLabel": "Bitte bestätige deine Email",
|
||||
"GUIResetPasswordEmailPlaceholder": "Email",
|
||||
"GUIResetPasswordSubmitButton": "Passwort zurücksetzen",
|
||||
"GUIResetPasswordLoginButton": "Login",
|
||||
"GUIResetPasswordRememberMessage": "Passwort bekannt?",
|
||||
"HeaderJobList": "Jobs",
|
||||
"HeaderBusinessInfo": "Business Info",
|
||||
"HeaderHouseInfo": "House Info",
|
||||
"HeaderClanInfo": "Clan Info",
|
||||
"Locales": {
|
||||
"English": "English",
|
||||
"Russian": "Russian",
|
||||
"Spanish": "Spanish",
|
||||
"German": "German",
|
||||
"Dutch": "Dutch",
|
||||
"Polish": "Polish",
|
||||
"Chinese": "Chinese",
|
||||
"French": "French",
|
||||
"Japanese": "Japanese",
|
||||
"Slovak": "Slovak",
|
||||
"Arabic": "Arabic"
|
||||
}
|
||||
}
|
||||
559
locale/japanese.json
Normal file
559
locale/japanese.json
Normal file
@@ -0,0 +1,559 @@
|
||||
{
|
||||
"TranslationProvidedBy": "Cocam",
|
||||
"LocaleEnglishName": "Japanese",
|
||||
|
||||
"LocaleNativeName": "Japanese (Translate this to your native language)",
|
||||
"LocaleOffer": "This server is available in Japanese. Use {1} to use it.",
|
||||
"LocaleChanged1": "Your language is now set to {1}",
|
||||
"LocaleChanged2": "The server will now display messages in {1}",
|
||||
"LocaleChangedNote": "This does not change messages from other players",
|
||||
"AccentsListHeader": "Accents",
|
||||
"HelpMainListHeader": "Help Categories",
|
||||
"AccentNotFound": "Accent not found",
|
||||
"AccentSet": "You set your accent to {1}",
|
||||
"InvalidAnimation": "That animation doesn't exist",
|
||||
"AnimationCommandTip": "Use {1} to see a list of valid animations",
|
||||
"InvalidAnimationDistance": "The distance must be between 0 and 3",
|
||||
"AnimationStopCommandTip": "Use {1} to stop your animation",
|
||||
"CantBanClient": "You cannot ban this person",
|
||||
"PlayerAccountBanned": "{1} has been account banned",
|
||||
"ClanNotFound": "Clan not found",
|
||||
"ClanNameTaken": "A clan with that name already exists",
|
||||
"PlayerNotFound": "Player not found",
|
||||
"ClanCantRemoveRanks": "You can't remove clan ranks",
|
||||
"ClanCantAddRanks": "You can't add clan ranks",
|
||||
"ClanRankNotFound": "Clan rank not found",
|
||||
"ClanCantChangeMemberTag": "You can not change clan member's tags",
|
||||
"ClanPlayerNotInSameClan": "That player is not in your clan",
|
||||
"ClanCantChangeRankLevel": "You can not change clan rank's level",
|
||||
"ClanCantChangeRankTag": "You can not change clan rank's tags",
|
||||
"NameNotRegistered": "Your name is not registered! Use {1} to make an account.",
|
||||
"AutomaticLoginIPToggle": "Automatic login by IP is now {1}",
|
||||
"CouldNotRegisterAccount": "There was a problem creating your account. Please contact an admin.",
|
||||
"RandomTipsToggle": "Random tips are now {1}",
|
||||
"ActionTipsToggle": "Action tips are now {1}",
|
||||
"AutoSpawnLastCharToggle": "Automatic spawn as last used character is {1}",
|
||||
"AccountGUISettingToggle": "🖥️ GUI is now {1}",
|
||||
"On": "On",
|
||||
"Off": "Off",
|
||||
"Yes": "Yes",
|
||||
"No": "No",
|
||||
"True": "True",
|
||||
"False": "False",
|
||||
"Locked": "Locked",
|
||||
"Unlocked": "Unlocked",
|
||||
"PasswordNotGoodEnough": "The new password must meet the requirements!",
|
||||
"PasswordNeedsBase": "Passwords must have at least {1}",
|
||||
"PasswordNeedsCapitals": "{1} capital letters",
|
||||
"PasswordNeedsNumbers": "{1} numbers",
|
||||
"PasswordNeedsSymbols": "{1} symbols",
|
||||
"PasswordsDontMatch": "The new password and confirm new password aren't the same!",
|
||||
"PasswordChanged": "Your password has been changed!",
|
||||
"AutoLoggedInIP": "You have been automatically logged in by IP!",
|
||||
"WelcomeBack": "Welcome back to {1}, {2}! Please {3} to continue.",
|
||||
"WelcomeNewPlayer": "Welcome to {1}, {2}! Please {3} to play.",
|
||||
"InvalidPlayer": "Player not found!",
|
||||
"InvalidBusiness": "Business not found!",
|
||||
"InvalidHouse": "House not found!",
|
||||
"InvalidVehicle": "Vehicle not found!",
|
||||
"InvalidClan": "Clan not found!",
|
||||
"InvalidClanRank": "Clan rank not found!",
|
||||
"InvalidJob": "Job not found!",
|
||||
"InvalidItem": "Item not found!",
|
||||
"InvalidItemType": "Item type not found!",
|
||||
"InvalidRadioStation": "Radio station not found!",
|
||||
"InvalidGate": "Gate not found!",
|
||||
"EntersProperty": "opens the door and enters the {1}",
|
||||
"ExitsProperty": "opens the door and exits the {1}",
|
||||
"EnterExitPropertyDoorLocked": "tries to open the {1} door but fails because it's locked",
|
||||
"PropertyNoInterior": "This {1} does not have an interior, but you can still use commands at the door icon.",
|
||||
"NoBusinessWithItemType": "There is no business with that item available",
|
||||
"HeaderKeyBinds": "Key Binds",
|
||||
"HeaderAccountHelp": "Account Help",
|
||||
"HeaderVehicleHelp": "Vehicle Help",
|
||||
"HeaderVehicleDealershipHelp": "Vehicle Dealership Help",
|
||||
"HeaderJobHelp": "Job Help",
|
||||
"HeaderChatHelp": "Chat Help",
|
||||
"HeaderServerRules": "Server Rules",
|
||||
"HeaderWebsiteInfo": "Website",
|
||||
"HeaderDiscordInfo": "Discord",
|
||||
"HeaderAnimationsList": "Animation List",
|
||||
"HeaderPayAndSprayHelp": "Pay and Spray Help",
|
||||
"HeaderAmmunationHelp": "Ammunation Help",
|
||||
"HeaderVehicleTuneupHelp": "Vehicle Tune Help",
|
||||
"HeaderBindableKeysHelp": "Bindable Keys",
|
||||
"HeaderSkinHelp": "Clothes/Skin Help",
|
||||
"HeaderBusinessHelp": "Business Help",
|
||||
"HeaderClanHelp": "Clan Help",
|
||||
"HeaderPlayerVehiclesList": "Player Vehicles ({1})",
|
||||
"HeaderPlayerBusinessesList": "Player Businesses ({1})",
|
||||
"HeaderClansList": "Clan List",
|
||||
"HeaderAdminsList": "Admin List",
|
||||
"HeaderBadgeInfo": "Badge Information",
|
||||
"HeaderAccentsList": "Accent List",
|
||||
"HeaderPlayerInfo": "Player Information ({1})",
|
||||
"HeaderWealthandTaxHelp": "Wealth and Tax Information",
|
||||
"HeaderCommandInfo": "Command Information ({1})",
|
||||
"HeaderRadioHelp": "Radio Help",
|
||||
"HeaderRadioStationsList": "Radio Stations",
|
||||
"HeaderKeyBindsList": "Key Binds List",
|
||||
"RadioVolumeChanged": "{1} You changed your streaming radio volume to {2}%",
|
||||
"VolumeLevelNotNumber": "The volume level must be a number",
|
||||
"RadioStationLocationInvalid": "You must be in a vehicle, house, or business or have a personal device to change the station!",
|
||||
"ActionBusinessRadioStationChange": "changes the business radio station to {1} ({2})",
|
||||
"ActionHouseRadioStationChange": "changes the house radio station to {1} ({2})",
|
||||
"ActionVehicleRadioStationChange": "changes the vehicle radio station to {1} ({2})",
|
||||
"ActionItemRadioStationChange": "changes the {1}'s station to {2} ({3})",
|
||||
"RandomVehicleCommandsDisabled": "This is a random traffic vehicle and commands can't be used for it.",
|
||||
"HouseDoorLock": "House {1} {2}!",
|
||||
"BusinessDoorLock": "Business {1} {2}!",
|
||||
"ServerGameModeRestarting": "The server game mode is restarting!",
|
||||
"HeaderSelfItemList": "Your Inventory",
|
||||
"HeaderPlayerItemList": "Player Inventory ({1})",
|
||||
"HeaderHouseItemList": "House Inventory",
|
||||
"HeaderBusinessFloorItemList": "Business Inventory (For Sale)",
|
||||
"HeaderBusinessStorageItemList": "Business Inventory (Storage)",
|
||||
"HeaderItemItemList": "{1}'s Inventory",
|
||||
"ItemSlotNotNumber": "The item slot must be a number",
|
||||
"ItemSlotMustBeBetween": "The item slot must be between {1} and {2}!",
|
||||
"UseItemBugged": "The item you're trying to use is bugged. A bug report has been sent to the server developers.",
|
||||
"PickupItemBugged": "The item you're trying to pickup is bugged. A bug report has been sent to the server developers.",
|
||||
"DropItemBugged": "The item you're trying to drop is bugged. A bug report has been sent to the server developers.",
|
||||
"HandsBusy": "Your hands are busy",
|
||||
"CantUseItemInSkinChange": "You can't use an item while customizing your appearance",
|
||||
"CantDropItemInSkinChange": "You can't drop an item while customizing your appearance",
|
||||
"CantPickupItemInSkinChange": "You can't pickup an item while customizing your appearance",
|
||||
"CantSwitchItemInSkinChange": "You can't switch an item while customizing your appearance",
|
||||
"CantGiveItemInSkinChange": "You can't give an item while customizing your appearance",
|
||||
"CantTakeItemInSkinChange": "You can't take an item while customizing your appearance",
|
||||
"ItemUnequippableNoAmmo": "The {1} in slot {2} has no ammo, and can't be equipped!",
|
||||
"NoSpaceSelfInventory": "You don't have any more space in your inventory",
|
||||
"Business": "business",
|
||||
"House": "house",
|
||||
"Clan": "clan",
|
||||
"Vehicle": "vehicle",
|
||||
"Item": "item",
|
||||
"ItemType": "item type",
|
||||
"Gate": "gate",
|
||||
"Door": "door",
|
||||
"ClanRank": "clan rank",
|
||||
"JobRank": "job rank",
|
||||
"RadioStation": "radio station",
|
||||
"Months": [
|
||||
"January",
|
||||
"February",
|
||||
"March",
|
||||
"April",
|
||||
"May",
|
||||
"June",
|
||||
"July",
|
||||
"August",
|
||||
"September",
|
||||
"October",
|
||||
"November",
|
||||
"December"
|
||||
],
|
||||
"WeekDays": [
|
||||
"Sunday",
|
||||
"Monday",
|
||||
"Tuesday",
|
||||
"Wednesday",
|
||||
"Thursday",
|
||||
"Friday",
|
||||
"Saturday"
|
||||
],
|
||||
"CardinalDirections": [
|
||||
"North",
|
||||
"Northeast",
|
||||
"East",
|
||||
"Southeast",
|
||||
"South",
|
||||
"Southwest",
|
||||
"West",
|
||||
"Northwest"
|
||||
],
|
||||
"NewPlayerReadyToPlay": [
|
||||
"You have been given some cash. Use {1} to find places to buy items.",
|
||||
"If you need money, jobs are the yellow dots on the radar.",
|
||||
"For a car, visit the car dealership. You can also use a rental vehicle near spawn or take the train",
|
||||
"Be sure to read the {1} and use {2} for info."
|
||||
],
|
||||
"YourCurrentVehicleDeleted": "The vehicle you were in was deleted.",
|
||||
"Distance": "Distance",
|
||||
"Meters": "Meters",
|
||||
"Feet": "Feet",
|
||||
"Kilometers": "Kilometers",
|
||||
"Miles": "Miles",
|
||||
"MustBeVehicleDriver": "You must be the driver of the vehicle!",
|
||||
"PlayerJoined": "{1} has joined the game from {2}!",
|
||||
"PlayerLeftServer": "{1} has left the game! ({2})",
|
||||
"TakeItemFromHouse": "takes a {1} from the house",
|
||||
"TakeItemFromBusinessStorage": "takes a {1} from the business storage",
|
||||
"TakeItemFromBusiness": "takes a {1} from the business",
|
||||
"TakeItemFromItem": "takes a {1} from the {2}",
|
||||
"TakeItemFromVehicleTrunk": "takes a {1} from the trunk",
|
||||
"TakeItemFromVehicleDash": "takes a {1} from the glove compartment",
|
||||
"JobEquipmentInventoryKeyBindTip": "The job equipment is in your inventory. Press {1} to see them.",
|
||||
"JobEquipmentInventoryCommandTip": "The job equipment is in your inventory. Use {1} to see them.",
|
||||
"AccountHelp": [
|
||||
"Do NOT share your password with anybody else. {1} staff will never ask you for your password",
|
||||
"Use {1} to change your password, and {2} if you forgot it",
|
||||
"Some settings you can use: {1}"
|
||||
],
|
||||
"VehicleHelp": [
|
||||
"Your personal vehicles will save wherever you or somebody else leaves them!",
|
||||
"Visit dealerships to buy new vehicles (Use {1} for more information)",
|
||||
"Some commands: {1}",
|
||||
"Visit a mechanic garage to repair, colour, and tune up your car! {1} for info"
|
||||
],
|
||||
"VehicleDealershipHelp": [
|
||||
"Visit a vehicle dealer to buy new vehicles. Use {1} to find one.",
|
||||
"At the dealer, enter a car you want to buy, and the price will be shown to you",
|
||||
"If you want to buy the vehicle, use {1} and you will be given keys to test drive it around the parking lot.",
|
||||
"Drive away from the dealership with the new vehicle to confirm the purchase."
|
||||
],
|
||||
"JobHelp": [
|
||||
"Visit job locations to get a job and earn money. Look for yellow spots on the map",
|
||||
"At a job location, use {1} to get the job. Use {2} to quit your job",
|
||||
"Use {1} to begin working. You can also get a job {2} and {3}",
|
||||
"Most job vehicles are locked. Use {1} near one to enter it.",
|
||||
"When entering a job vehicle, information on how to do the job will be shown to you."
|
||||
],
|
||||
"ChatHelp": [
|
||||
"There are two main types of chat: out-of-character (OOC) and in-character (IC)",
|
||||
"Mixing these two types is not proper roleplay. See {1} for info.",
|
||||
"Some chat commands: {1}",
|
||||
"Some have shorter names available ({1} to talk, {2} to shout, etc)"
|
||||
],
|
||||
"ServerRulesHelp": [
|
||||
"Unrealistic actions (powergaming) are not allowed. You aren't superman.",
|
||||
"No terrorist or terrorism roleplay is allowed.",
|
||||
"Always follow instructions given by moderators and admins.",
|
||||
"Do not mix the chats (metagaming). You can't use info in IC that was received OOC",
|
||||
"Keep English in main chats. If you aren't good at English, use {1}"
|
||||
],
|
||||
"AnimationHelp": [
|
||||
"Animations allow you to enhance roleplay with visual actions",
|
||||
"Use {1} or {2} with a name to use an animation.",
|
||||
"To see a list of animations, use {1}"
|
||||
],
|
||||
"WeaponHelp": [
|
||||
"Visit an gun store to buy weapons. Use {1} to find one.",
|
||||
"Buying a weapon requires a weapon license.",
|
||||
"Weapon licenses are managed by the police department. Apply there to get one.",
|
||||
"Weapons can also be purchased illegally from some businesses, weapon dealers, and clans."
|
||||
],
|
||||
"SkinHelp": [
|
||||
"At a clothing store, use {1} to purchase clothes",
|
||||
"When you have a clothing item, equip and use it like any other item to show the skin selection (check {1} to learn how to use items)",
|
||||
"Some skins are restricted to jobs, clans, or for other reasons."
|
||||
],
|
||||
"KeyBindHelp": [
|
||||
"You can set your own key binds. Use {1} to see your binded keys.",
|
||||
"Use {1} to add a new keybind and {2} to remove one.",
|
||||
"Default keys are: {1} for vehicle engine, {2} for lights, and {3} for lock/unlock",
|
||||
"Press {1} to see your items and {2} to equip an item or {3} to unequip all.",
|
||||
"Press {1} to use the item you're holding, press {2} to drop it, or press {3} to pickup an item from the ground."
|
||||
],
|
||||
"BusinessHelp": [
|
||||
"Use {1} to purchase items or {2} to see a list of what's for sale at any business",
|
||||
"Businesses are shown with blue names above the icon at their entrance.",
|
||||
"Business owner commands: {1}",
|
||||
"A new car for sale will appear when you drive away from the dealer."
|
||||
],
|
||||
"ClanHelp": [
|
||||
"Ask an administrator to create a clan (Similar to factions/groups/families)",
|
||||
"Clan owners have full control over their clan once it's created",
|
||||
"Clan commands: {1}",
|
||||
"More clan commands: {1}"
|
||||
],
|
||||
"RadioStationHelp": [
|
||||
"Use {1} to set the station for your vehicle, house, or business",
|
||||
"Use {2} to see a list of stations",
|
||||
"You can change your radio streaming volume using {1} with 0-100 as the percent"
|
||||
],
|
||||
"WealthAndTaxHelp": [
|
||||
"Your taxes on payday are {1} percent of your calculated wealth.",
|
||||
"Your calculated wealth is a total sum based on how many vehicles, houses, and businesses you have.",
|
||||
"Each vehicle is {1}, each house is {2}, and each business is {3}",
|
||||
"Use {1} to see your current wealth, and {2} to see how much you'll pay in tax each payday"
|
||||
],
|
||||
"MustBeInAVehicle": "You need to be in a vehicle!",
|
||||
"MustBeInOrNearVehicle": "You need to be in or near a vehicle!",
|
||||
"MustBeInVehicleFrontSeat": "You need to be in the vehicle front seats!",
|
||||
"MustBeInVehicleDriverSeat": "You need to be the driver!",
|
||||
"DontHaveVehicleKey": "You don't have a key for this vehicle!",
|
||||
"NoGateAccess": "You don't have access to this gate!",
|
||||
"GateBroken": "This gate is broken!",
|
||||
"GateHacked": "The gate does not respond!",
|
||||
"RadioJammed": "You hear only static from the radio.",
|
||||
"VehicleNotForSale": "This vehicle is not for sale!",
|
||||
"VehicleNotForRent": "This vehicle is not for rent!",
|
||||
"BusinessNotForSale": "This business is not for sale!",
|
||||
"BusinessNotForRent": "This business is not for rent!",
|
||||
"HouseNotForSale": "This house is not for sale!",
|
||||
"HouseNotForRent": "This house is not for rent!",
|
||||
"DealershipPurchaseTestDrive": "Drive the vehicle away from the dealership to buy it, or get out to cancel.",
|
||||
"DealershipPurchaseExitedVehicle": "You canceled the vehicle purchase by exiting the vehicle!",
|
||||
"VehiclePurchaseComplete": "This vehicle is now yours! It will save wherever you leave it.",
|
||||
"VehiclePurchaseNotEnoughMoney": "You don't have enough money to buy this vehicle!",
|
||||
"HousePurchaseNotEnoughMoney": "You don't have enough money to buy this house!",
|
||||
"BusinessPurchaseNotEnoughMoney": "You don't have enough money to buy this business!",
|
||||
|
||||
"ADDED-21JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
|
||||
"HeaderPlayerHousesList": "Player Houses ({1})",
|
||||
"HeaderPlayerStaffFlagsList": "Player Staff Flags ({1})",
|
||||
"HeaderStaffFlagsList": "Staff Flags",
|
||||
"NonRPName": "Non-RP name! Choose a new one:",
|
||||
"InvalidStaffFlag": "Staff flag not found!",
|
||||
"InvalidClanFlag": "Clan flag not found!",
|
||||
"InvalidLocale": "Language not found!",
|
||||
"HeaderJobUniformList": "Job Uniforms ({1})",
|
||||
"HeaderJobEquipmentList": "Job Equipment ({1})",
|
||||
"InvalidJobUniform": "Job uniform not found!",
|
||||
"InvalidJobEquipment": "Job equipment not found!",
|
||||
"HeaderVehiclesInRangeList": "Vehicles within {1}",
|
||||
"NoVehiclesWithInRange": "There are no vehicles within {1}",
|
||||
"AmountNotNumber": "The amount must be a number!",
|
||||
"NeedToBeWorking": "You need to be working! Use {1} at a job location or near a job vehicle.",
|
||||
"NeedToBeOnJobRoute": "You need to be doing a job route! Use {1} in a job vehicle",
|
||||
"CurrentJobRouteDeleted": "The job route you were on has been deleted by an admin",
|
||||
"CurrentJobRouteVehicleColoursChanged": "Your job route's vehicle colours were changed by an admin",
|
||||
"NotYourJob": "This is not your job!",
|
||||
"JobPoints": "You can get a job by going the yellow points on the map.",
|
||||
"QuitJobToTakeAnother": "If you want this job, use {1} to quit your current job.",
|
||||
"NotAJobVehicle": "This is not a job vehicle!",
|
||||
"NotYourJobVehicle": "This is not your job's vehicle!",
|
||||
"JobRouteDisabled": "The job route you were on has been disabled by an admin",
|
||||
"HeaderPickupTypes": "Pickup Types",
|
||||
"HeaderBlipTypes": "Map Icon Types",
|
||||
"InvalidGPSLocation": "There are no locations with that name or type",
|
||||
"HeaderBusinessList": "Businesses",
|
||||
"VehicleForSale": "This {1} is buyable for {2}! Use {3} if you want to buy it",
|
||||
"VehicleForRent": "This {1} is rentable for {2}! Use {3} if you want to rent it",
|
||||
|
||||
"ADDED-31JAN2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
|
||||
"LoginFailedInvalidPassword": "Invalid password! {1} attempts remaining",
|
||||
"LoginFailedNoPassword": "You must enter a password! ! {1} attempts remaining",
|
||||
"RegistrationFailedNoPassword": "You must enter a password!",
|
||||
"RegistrationFailedNoPasswordConfirm": "You must confirm the password!",
|
||||
"RegistrationFailedNoEmail": "You must enter an email!",
|
||||
"AccountNameAlreadyRegistered": "Your name is already registered!",
|
||||
"AlreadyLoggedIn": "You are already logged in!",
|
||||
"RegistrationFailedInvalidEmail": "That email is invalid!",
|
||||
"RegistrationFailedPasswordMismatch": "The passwords don't match!",
|
||||
"RegistrationFailedCreateError": "Your account couldn't be created!",
|
||||
"RegistrationSuccess": "Your account has been created!",
|
||||
"RegistrationEmailVerifyReminder": "Don't forget to verify your email! A verification code has been sent to you.",
|
||||
"RegistrationCreateCharReminder": "To play on the server, you will need to make a character.",
|
||||
"NoCharactersGUIMessage": "You have no characters. Would you like to make one?",
|
||||
"NoCharactersGUIWindowTitle": "No characters",
|
||||
"NoCharactersChatMessage": "You have no characters. Use {1} to make one.",
|
||||
"NeedEmailFor2FA": "You need to add your email to your account to use two-factor authentication.",
|
||||
"NeedEmailVerifiedFor2FA": "You need to verify your email to use two-factor authentication.",
|
||||
"SetEmailHelpTip": "Use {1} to set your email.",
|
||||
"VerifyEmailHelpTip": "Use {1} to verify your email.",
|
||||
|
||||
"ADDED-13FEB2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations.",
|
||||
"NearbyRadio": "Nearby radio",
|
||||
"FromRadio": "From radio",
|
||||
"ToRadio": "To radio",
|
||||
"NeedToEnterPropertyCommand": "You need to enter the {1} first! Use {2} to enter and exit",
|
||||
"NeedToEnterPropertyKeyPress": "You need to enter the {1} first! Press {2} to enter and exit",
|
||||
"InventoryFullCantCarry": "You don't have any space to carry this (full inventory)!",
|
||||
"NotEnoughCashNeedAmountMore": "You don't have enough money! You need {1} more!",
|
||||
"AmountMustBeMoreThan": "The amount must be more than {1}!",
|
||||
"WeaponBanned": "You are not allowed to buy or use weapons!",
|
||||
"TimeNotNumber": "The time must be a number",
|
||||
"HeaderDefaultBusinessItemTypes": "Business Item Templates",
|
||||
"FixingStuck": "Fixing your position and virtual world ...",
|
||||
"CantUseCommandYet": "You must wait before you can use this command again!",
|
||||
"NotATester": "You are not a tester!",
|
||||
"AccessDenied": "AccessDenied",
|
||||
"InvalidSkin": "That skin is invalid!",
|
||||
"HeaderInteriorTypes": "Interiors List",
|
||||
"ViewInventoryKeyPressTip": "Press {1} to see your items",
|
||||
"ViewInventoryCommandTip": "Use {1} to see your items",
|
||||
"GUIAccountSettingToggle": "You have turned {1} GUI",
|
||||
|
||||
"ADDED-23MAR2022": "DO NOT TRANSLATE. This string is just a comment to separate newly added translations",
|
||||
"CarCommandHelp": "You can buy a car by visiting a vehicle dealership. Use {1} for more information.",
|
||||
"SkinCommandHelp": "You can change your skin by visiting a clothes store. Use {1} for more info.",
|
||||
"BusinessVehiclesRespawned": "🚗 All business vehicles have been respawned by an admin!",
|
||||
"JobVehiclesRespawned": "🚗 All job vehicles have been respawned by an admin!",
|
||||
"PlayerVehiclesRespawned": "🚗 All player vehicles have been respawned by an admin!",
|
||||
"ClanVehiclesRespawned": "🚗 All clan vehicles have been respawned by an admin!",
|
||||
"PublicVehiclesRespawned": "🚗 All public have been respawned by an admin!",
|
||||
"EmptyVehiclesRespawned": "🚗 All empty vehicles have been respawned by an admin!",
|
||||
"AllVehiclesRespawned": "🚗 All vehicles have been respawned by an admin!",
|
||||
"AllVehiclesReloaded": "🚗 All vehicles have been reloaded by an admin!",
|
||||
"YourVehicleRespawned": "🚗 Your vehicle has been respawned!",
|
||||
"PlayerIPBanned": "💀 {1} has been IP banned!",
|
||||
"PlayerCharacterBanned": "💀 {1} has been character banned!",
|
||||
"PlayerSubNetBanned": "💀 {1} has been subnet banned!",
|
||||
"CantModifyBusiness": "You can't manage or modify this business!",
|
||||
"CantModifyHouse": "You can't manage or modify this house!",
|
||||
"ServerTimeSet": "⏰ {1} set the time to {2}",
|
||||
"ServerWeatherSet": "☁️ {1} set the weather to {2}",
|
||||
"ServerSnowSet": "❄️ {1} turned falling snow {2} and ground snow {3}",
|
||||
"AllJobsReloaded": "💼 All server jobs have been reloaded by an admin",
|
||||
"ServerLogoSet": "{1} turned the server logo image {2}",
|
||||
"ServerGUISet": "🖥️ {1} turned GUI for this server {2}",
|
||||
"ServerBusinessBlipsSet": "🏢 {1} turned all business blips {2}",
|
||||
"ServerHouseBlipsSet": "🏘️ {1} turned all house blips {2}",
|
||||
"ServerJobBlipsSet": "💼 {1} turned all job blips {2}",
|
||||
"ServerBusinessPickupsSet": "🏢 {1} turned all business pickups {2}",
|
||||
"ServerHousePickupsSet": "🏘️ {1} turned all house pickups {2}",
|
||||
"ServerJobPickupsSet": "💼 {1} turned on all job pickups {2}",
|
||||
"BusinessBuyItemsLabel": "Use {1} to purchase items",
|
||||
"PropertyEnterCommandLabel": "Use {1} to enter",
|
||||
"PropertyEnterKeyPressLabel": "Press {1} to enter",
|
||||
"PropertyForSaleLabel": "For sale: ${1}",
|
||||
"PropertyForRentLabel": "For rent: ${1} every payday",
|
||||
"RemainingTaxPaidInMoney": "You covered the remaining taxes with ${1} in cash.",
|
||||
"LostMoneyFromTaxes": "You lost money since your taxes are more than your paycheck!",
|
||||
"NextPaycheckRepossessionWarning": "If you don't have enough cash to cover taxes on next paycheck, you will lose stuff!",
|
||||
"NotEnoughMoneyForTax": "You don't have enough money to cover your taxes!",
|
||||
"AssetsRepossessedForTax": "You lost {1} vehicles, {2} houses, and {3} businesses because you couldn't pay taxes!",
|
||||
"Closed": "Closed",
|
||||
"Open": "Open",
|
||||
"VehicleDealershipLabel": "Enter a vehicle as driver to buy it",
|
||||
"TakeJobLabel": "Use {1} to work here",
|
||||
"StartWorkLabel": "Use {1} to start working",
|
||||
"JobEquipAndUniformLabel": "Use {1} and {2} for job stuff, or {3} to stop working",
|
||||
"NotYourJobLabel": "You already have a different job. Use {1} if you want this one",
|
||||
"JobLabel": "{1} Job",
|
||||
"PaydayBonusSet": "🤑 {1} set the payday bonus to ${2}",
|
||||
"AllHousesReloaded": "🏘️ All houses have been reloaded by an admin",
|
||||
"AllRadioStationsReloaded": "📻 All radio stations have been reloaded by an admin!",
|
||||
"PlayerKicked": "🦶 {1} has been kicked from the server",
|
||||
"AllBusinessesReloaded": "🏢 All businesses have been reloaded by an admin!",
|
||||
"UnableToDoThat": "You aren't able to do that",
|
||||
"SetVehicleClanConfirmMessage": "Are you sure you want to give this vehicle to your clan?",
|
||||
"SetVehicleClanConfirmTitle": "Warning!",
|
||||
"SetItemPriceBelowOrderPriceMessage": "Are you sure you want to set the item price below it's order price? You will lose ${1} every purchase!",
|
||||
"SetItemPriceBelowOrderPriceTitle": "Warning!",
|
||||
"MustOwnVehicle": "You don't own this vehicle!",
|
||||
"RandomTips": [
|
||||
"Look for yellow dots on your map for job locations",
|
||||
"You can set custom key binds. Use {1} for details",
|
||||
"Use {1} if you don't want to see tips and extra information",
|
||||
"You can edit your keybinds using {1} and {2}",
|
||||
"Press ℹ️ to see your inventory, and use number keys to select an item",
|
||||
"Use {1} at a business to purchase items",
|
||||
"Found a bug? Report it with {1}",
|
||||
"Have an idea or suggestion for the server? Let the devs know using {1}",
|
||||
"Want to buy a business? Use {1} at one for sale",
|
||||
"Want to buy a house? Use {1} at one for sale",
|
||||
"Want to buy a vehicle? Visit a dealership and enter one for info on how to buy it!",
|
||||
"Switch to any of your characters with {1}",
|
||||
"Use {1} to automatically login when connecting with the same IP",
|
||||
"Use {1} to turn on/off the lights in your house or business",
|
||||
"Use {1} to play an internet radio station in your car, house, or business",
|
||||
"Want to make a clan? Use {1} for details",
|
||||
"Legal weapons can be purchased at any ammunation"
|
||||
],
|
||||
"PromptResponseTip": "Use {1} to accept or {2} to decline",
|
||||
"PlayerConnecting": "👋 {1} is connecting to the server ...",
|
||||
"GetStartedJobVehicle": "Get in a {1} to get started.",
|
||||
"VehicleTypes": {
|
||||
"Car": "Car",
|
||||
"Truck": "Truck",
|
||||
"Van": "Van",
|
||||
"Taxi": "Taxi",
|
||||
"Bus": "Bus",
|
||||
"PoliceCar": "Police Car",
|
||||
"Ambulance": "Ambulance",
|
||||
"FireTruck": "Fire Truck",
|
||||
"Bike": "Bike",
|
||||
"Motorbike": "Motorbike",
|
||||
"Boat": "Boat",
|
||||
"Helicopter": "Helicopter",
|
||||
"Plane": "Plane",
|
||||
"Train": "Train"
|
||||
},
|
||||
"AlreadyOnJobRoute": "You are already doing a job route!",
|
||||
"GaveVehicleToClan": "You gave this {1} to your clan!",
|
||||
"JobDisabled": "This job is disabled!",
|
||||
"SetHouseClanConfirmMessage": "Are you sure you want to give this house to your clan?",
|
||||
"SetHouseClanConfirmTitle": "Warning!",
|
||||
"SetBusinessClanConfirmMessage": "Are you sure you want to give this business to your clan?",
|
||||
"SetBusinessClanConfirmTitle": "Warning!",
|
||||
"MustOwnHouse": "You don't own this house!",
|
||||
"MustOwnBusiness": "You don't own this business!",
|
||||
"GaveHouseToClan": "You gave this house to your clan!",
|
||||
"GaveBusinessToClan": "You gave this business to your clan!",
|
||||
"BuyBusinessConfirmMessage": "Are you sure you want to buy this business?",
|
||||
"BuyBusinessConfirmTitle": "Attention!",
|
||||
"BuyHouseConfirmMessage": "Are you sure you want to buy this house?",
|
||||
"BuyHouseConfirmTitle": "Attention!",
|
||||
"BuyBusinessLabel": "Use {1} to buy this business",
|
||||
"BuyHouseLabel": "Use {1} to buy this house",
|
||||
"RentHouseLabel": "Use {1} to rent this house",
|
||||
"DisconnectReasons": [
|
||||
"Lost Connection",
|
||||
"Disconnected",
|
||||
"Unsupported Client",
|
||||
"Wrong Game",
|
||||
"Incorrect Password",
|
||||
"Unsupported Executable",
|
||||
"Disconnected",
|
||||
"Banned",
|
||||
"Failed",
|
||||
"Invalid Name",
|
||||
"Crashed",
|
||||
"Modified Game"
|
||||
],
|
||||
"AccountEmailAlreadyVerified": "You already set and verified your email!",
|
||||
"EmailVerificationCodeSent": "A verification code and instructions have been sent to your email.",
|
||||
"GUIPlayAsCharacterButton": "Play",
|
||||
"GUINewCharacterButton": "New character",
|
||||
"GUIPreviousCharacterButton": "Previous",
|
||||
"GUINextCharacterButton": "Next",
|
||||
"GUICharacterSelectWindowTitle": "Select a character",
|
||||
"GUICharacterSelectMoneyLabel": "Money: ${1}",
|
||||
"GUICharacterSelectClanLabel": "Clan: {1}",
|
||||
"GUICharacterSelectLastPlayedLabel": "Last Played: {1} days, {2} hours, {3} minutes ago",
|
||||
"GUILoginWindowLabelEnterPassword": "Please enter your password",
|
||||
"GUILoginWindowSubmitButton": "Login",
|
||||
"GUILoginWindowResetPasswordButton": "Reset password",
|
||||
"GUILoginWindowPasswordPlaceholder": "Password",
|
||||
"GUILoginWindowForgotPasswordLabel": "Forgot your password?",
|
||||
"GUIRegisterWindowLabelCreateAccount": "Create an account",
|
||||
"GUIRegisterWindowPasswordPlaceholder": "Password",
|
||||
"GUIRegisterWindowConfirmPasswordPlaceholder": "Confirm password",
|
||||
"GUIRegisterWindowEmailPlaceholder": "Email",
|
||||
"GUIRegisterWindowSubmitButton": "Create account",
|
||||
"GUINewCharacterMessageLabel": "Name your character",
|
||||
"GUINewCharacterFirstNamePlaceholder": "First Name",
|
||||
"GUINewCharacterLastNamePlaceholder": "Last Name",
|
||||
"GUINewCharacterSubmitButton": "Create Character",
|
||||
"GUIChangePasswordWindowTitle": "Change Password",
|
||||
"GUIChangePasswordPasswordLabel": "Enter a new password",
|
||||
"GUIChangePasswordPasswordPlaceholder": "Password",
|
||||
"GUIChangePasswordConfirmPasswordPlaceholder": "Confirm password",
|
||||
"GUIChangePasswordSubmitButton": "Change Password",
|
||||
"GUIResetPasswordWindowMessage": "Reset Password",
|
||||
"GUIResetPasswordConfirmEmailLabel": "Please confirm your email",
|
||||
"GUIResetPasswordEmailPlaceholder": "Email",
|
||||
"GUIResetPasswordSubmitButton": "Reset Password",
|
||||
"GUIResetPasswordLoginButton": "Login",
|
||||
"GUIResetPasswordRememberMessage": "Remember your password?",
|
||||
"HeaderJobList": "Jobs",
|
||||
"HeaderBusinessInfo": "Business Info",
|
||||
"HeaderHouseInfo": "House Info",
|
||||
"HeaderClanInfo": "Clan Info",
|
||||
"Locales": {
|
||||
"English": "English",
|
||||
"Russian": "Russian",
|
||||
"Spanish": "Spanish",
|
||||
"German": "German",
|
||||
"Dutch": "Dutch",
|
||||
"Polish": "Polish",
|
||||
"Chinese": "Chinese",
|
||||
"French": "French",
|
||||
"Japanese": "Japanese",
|
||||
"Slovak": "Slovak",
|
||||
"Arabic": "Arabic"
|
||||
}
|
||||
}
|
||||
34
scripts/client/index.js
Normal file
34
scripts/client/index.js
Normal file
@@ -0,0 +1,34 @@
|
||||
// For RAGEMP only
|
||||
|
||||
// Shared Scripts
|
||||
require("shared/const.js");
|
||||
require("shared/utilities.js");
|
||||
require("shared/gamedata.js");
|
||||
|
||||
// Multiplayer Mod (Wrapped Natives)
|
||||
require("native/ragemp.js");
|
||||
|
||||
// Client Scripts
|
||||
require("gui.js");
|
||||
require("main.js");
|
||||
require("nametag.js");
|
||||
require("sync.js");
|
||||
require("scoreboard.js");
|
||||
require("keybind.js");
|
||||
require("chatbox.js");
|
||||
require("label.js");
|
||||
require("skin-select.js");
|
||||
require("server.js");
|
||||
require("job.js");
|
||||
require("event.js");
|
||||
require("item.js");
|
||||
require("utilities.js");
|
||||
require("messaging.js");
|
||||
require("logo.js");
|
||||
require("afk.js");
|
||||
require("mousecam.js");
|
||||
require("radio.js");
|
||||
require("animation.js");
|
||||
|
||||
// Startup
|
||||
require("startup.js");
|
||||
@@ -35,7 +35,7 @@ function getAvailableLocaleOptions() {
|
||||
// ===========================================================================
|
||||
|
||||
function loadLocaleConfig() {
|
||||
let configFile = loadTextFile("config/client/locale.json");
|
||||
let configFile = getContentsOfTextFile("config/client/locale.json");
|
||||
getServerData().localeOptions = JSON.parse(configFile);
|
||||
|
||||
//resetLocaleChooserOptions();
|
||||
@@ -48,7 +48,7 @@ function loadAllLocaleStrings() {
|
||||
let localeOptions = getServerData().localeOptions;
|
||||
for (let i in localeOptions) {
|
||||
logToConsole(LOG_INFO, `[AGRP.Locale] Loading locale strings for ${localeOptions[i].englishName} (${i})`);
|
||||
let localeStringFile = loadTextFile(`locale/${localeOptions[i].stringsFile}`);
|
||||
let localeStringFile = getContentsOfTextFile(`locale/${localeOptions[i].stringsFile}`);
|
||||
let localeStringData = JSON.parse(localeStringFile);
|
||||
|
||||
let localeId = localeOptions[i].id;
|
||||
|
||||
@@ -204,7 +204,7 @@ function loadBusinessFromId(businessId) {
|
||||
if (dbQuery) {
|
||||
let dbAssoc = fetchQueryAssoc(dbQuery);
|
||||
freeDatabaseQuery(dbQuery);
|
||||
return new BusinessData(dbAssoc);
|
||||
return new BusinessData(dbAssoc[0]);
|
||||
}
|
||||
disconnectFromDatabase(dbConnection);
|
||||
}
|
||||
@@ -214,27 +214,21 @@ function loadBusinessFromId(businessId) {
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function loadBusinessesFromDatabase() {
|
||||
async function loadBusinessesFromDatabase() {
|
||||
logToConsole(LOG_INFO, "[AGRP.Business]: Loading businesses from database ...");
|
||||
|
||||
let tempBusinesses = [];
|
||||
let dbConnection = connectToDatabase();
|
||||
let dbQuery = null;
|
||||
let dbAssoc;
|
||||
let dbAssoc = [];
|
||||
|
||||
if (dbConnection) {
|
||||
dbQuery = queryDatabase(dbConnection, `SELECT * FROM biz_main WHERE biz_deleted = 0 AND biz_server = ${getServerId()}`);
|
||||
if (dbQuery) {
|
||||
if (dbQuery.numRows > 0) {
|
||||
while (dbAssoc = fetchQueryAssoc(dbQuery)) {
|
||||
let tempBusinessData = new BusinessData(dbAssoc);
|
||||
tempBusinessData.locations = loadBusinessLocationsFromDatabase(tempBusinessData.databaseId);
|
||||
//tempBusinessData.gameScripts = loadBusinessGameScriptsFromDatabase(tempBusinessData.databaseId);
|
||||
tempBusinesses.push(tempBusinessData);
|
||||
logToConsole(LOG_VERBOSE, `[AGRP.Business]: Business '${tempBusinessData.name}' (ID ${tempBusinessData.databaseId}) loaded from database successfully!`);
|
||||
}
|
||||
}
|
||||
freeDatabaseQuery(dbQuery);
|
||||
dbAssoc = await fetchQueryAssoc(dbConnection, `SELECT * FROM biz_main WHERE biz_server = ${getServerId()}`);
|
||||
for (let i in dbAssoc) {
|
||||
let tempBusinessData = new BusinessData(dbAssoc[i]);
|
||||
tempBusinessData.locations = loadBusinessLocationsFromDatabase(tempBusinessData.databaseId);
|
||||
//tempBusinessData.gameScripts = loadBusinessGameScriptsFromDatabase(tempBusinessData.databaseId);
|
||||
tempBusinesses.push(tempBusinessData);
|
||||
logToConsole(LOG_VERBOSE, `[VRR.Business]: Business '${tempBusinessData.name}' (ID ${tempBusinessData.databaseId}) loaded from database successfully!`);
|
||||
}
|
||||
disconnectFromDatabase(dbConnection);
|
||||
}
|
||||
@@ -245,7 +239,7 @@ function loadBusinessesFromDatabase() {
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function loadBusinessLocationsFromDatabase(businessId) {
|
||||
async function loadBusinessLocationsFromDatabase(businessId) {
|
||||
logToConsole(LOG_VERBOSE, `[AGRP.Business]: Loading business locations for business ${businessId} from database ...`);
|
||||
|
||||
let tempBusinessLocations = [];
|
||||
@@ -256,16 +250,11 @@ function loadBusinessLocationsFromDatabase(businessId) {
|
||||
|
||||
if (dbConnection) {
|
||||
dbQueryString = `SELECT * FROM biz_loc WHERE biz_loc_biz = ${businessId}`;
|
||||
dbQuery = queryDatabase(dbConnection, dbQueryString);
|
||||
if (dbQuery) {
|
||||
if (dbQuery.numRows > 0) {
|
||||
while (dbAssoc = fetchQueryAssoc(dbQuery)) {
|
||||
let tempBusinessLocationData = new BusinessLocationData(dbAssoc);
|
||||
tempBusinessLocations.push(tempBusinessLocationData);
|
||||
logToConsole(LOG_VERBOSE, `[AGRP.Business]: Location '${tempBusinessLocationData.name}' loaded from database successfully!`);
|
||||
}
|
||||
}
|
||||
freeDatabaseQuery(dbQuery);
|
||||
dbAssoc = await fetchQueryAssoc(dbConnection, dbQueryString);
|
||||
for (let i in dbAssoc) {
|
||||
let tempBusinessLocationData = new BusinessLocationData(dbAssoc[i]);
|
||||
tempBusinessLocations.push(tempBusinessLocationData);
|
||||
logToConsole(LOG_VERBOSE, `[AGRP.Business]: Location '${tempBusinessLocationData.name}' loaded from database successfully!`);
|
||||
}
|
||||
disconnectFromDatabase(dbConnection);
|
||||
}
|
||||
|
||||
@@ -972,7 +972,7 @@ function getServerIntroMusicURL() {
|
||||
|
||||
function loadLocaleConfig() {
|
||||
logToConsole(LOG_DEBUG, "[AGRP.Config] Loading locale configuration");
|
||||
let localeConfig = JSON.parse(loadTextFile(`config/locale.json`));
|
||||
let localeConfig = JSON.parse(getContentsOfTextFile(`config/locale.json`));
|
||||
if (localeConfig != null) {
|
||||
return localeConfig;
|
||||
}
|
||||
@@ -982,7 +982,7 @@ function loadLocaleConfig() {
|
||||
|
||||
function loadEconomyConfig() {
|
||||
logToConsole(LOG_DEBUG, "[AGRP.Config] Loading economy configuration");
|
||||
let economyConfig = JSON.parse(loadTextFile(`config/economy.json`));
|
||||
let economyConfig = JSON.parse(getContentsOfTextFile(`config/economy.json`));
|
||||
if (economyConfig != null) {
|
||||
return economyConfig;
|
||||
}
|
||||
@@ -992,7 +992,7 @@ function loadEconomyConfig() {
|
||||
|
||||
function loadAccentConfig() {
|
||||
logToConsole(LOG_DEBUG, "[AGRP.Config] Loading accents configuration");
|
||||
let accentConfig = JSON.parse(loadTextFile(`config/accents.json`));
|
||||
let accentConfig = JSON.parse(getContentsOfTextFile(`config/accents.json`));
|
||||
if (accentConfig != null) {
|
||||
return accentConfig;
|
||||
}
|
||||
@@ -1002,7 +1002,7 @@ function loadAccentConfig() {
|
||||
|
||||
function loadDiscordConfig() {
|
||||
logToConsole(LOG_DEBUG, "[AGRP.Config] Loading discord configuration");
|
||||
let discordConfig = JSON.parse(loadTextFile(`config/discord.json`));
|
||||
let discordConfig = JSON.parse(getContentsOfTextFile(`config/discord.json`));
|
||||
if (discordConfig != null) {
|
||||
return discordConfig;
|
||||
}
|
||||
@@ -1013,7 +1013,7 @@ function loadDiscordConfig() {
|
||||
|
||||
function loadDatabaseConfig() {
|
||||
logToConsole(LOG_DEBUG, "[AGRP.Config] Loading database configuration");
|
||||
let databaseConfig = JSON.parse(loadTextFile("config/database.json"));
|
||||
let databaseConfig = JSON.parse(getContentsOfTextFile("config/database.json"));
|
||||
if (databaseConfig != null) {
|
||||
return databaseConfig;
|
||||
}
|
||||
@@ -1024,7 +1024,7 @@ function loadDatabaseConfig() {
|
||||
|
||||
function loadKeyBindConfig() {
|
||||
logToConsole(LOG_DEBUG, "[AGRP.Config] Loading keybind configuration");
|
||||
let keyBindConfig = JSON.parse(loadTextFile("config/keybind.json"));
|
||||
let keyBindConfig = JSON.parse(getContentsOfTextFile("config/keybind.json"));
|
||||
if (keyBindConfig != null) {
|
||||
return keyBindConfig;
|
||||
}
|
||||
@@ -1035,7 +1035,7 @@ function loadKeyBindConfig() {
|
||||
|
||||
function loadEmailConfig() {
|
||||
logToConsole(LOG_DEBUG, "[AGRP.Config] Loading email configuration");
|
||||
let emailConfig = JSON.parse(loadTextFile("config/email.json"));
|
||||
let emailConfig = JSON.parse(getContentsOfTextFile("config/email.json"));
|
||||
if (emailConfig != null) {
|
||||
return emailConfig;
|
||||
}
|
||||
|
||||
@@ -661,6 +661,8 @@ async function onPlayerSpawn(client) {
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
// Only used for MP mods without an "add command handler" ability
|
||||
// Not bound on GTA Connected or RageMP
|
||||
function onPlayerCommand(event, client, command, params) {
|
||||
logToConsole(LOG_WARN | LOG_DEBUG, `[AGRP.Event] Player used command ${command}!`);
|
||||
|
||||
|
||||
86
scripts/server/index.js
Normal file
86
scripts/server/index.js
Normal file
@@ -0,0 +1,86 @@
|
||||
// Shared Scripts
|
||||
require("shared/const.js");
|
||||
require("shared/utilities.js");
|
||||
require("shared/gamedata.js");
|
||||
|
||||
// Multiplayer Mod (Wrapped Natives)
|
||||
require("native/ragemp.js");
|
||||
|
||||
// Server Scripts
|
||||
require("class.js");
|
||||
require("accent.js");
|
||||
require("account.js");
|
||||
require("animation.js");
|
||||
require("anticheat.js");
|
||||
require("ban.js");
|
||||
require("bitflag.js");
|
||||
require("business.js");
|
||||
require("chat.js");
|
||||
require("clan.js");
|
||||
require("client.js");
|
||||
require("colour.js");
|
||||
require("const.js");
|
||||
require("database.js");
|
||||
require("developer.js");
|
||||
require("discord.js");
|
||||
require("economy.js");
|
||||
require("email.js");
|
||||
require("event.js");
|
||||
require("fishing.js");
|
||||
require("gui.js");
|
||||
require("help.js");
|
||||
require("house.js");
|
||||
require("item.js");
|
||||
require("job.js");
|
||||
require("keybind.js");
|
||||
require("locale.js");
|
||||
require("messaging.js");
|
||||
require("misc.js");
|
||||
require("npc.js");
|
||||
require("staff.js");
|
||||
require("race.js");
|
||||
require("radio.js");
|
||||
require("security.js");
|
||||
require("subaccount.js");
|
||||
require("timers.js");
|
||||
require("trigger.js");
|
||||
require("utilities.js");
|
||||
require("vehicle.js");
|
||||
require("config.js");
|
||||
require("core.js");
|
||||
require("command.js");
|
||||
|
||||
// Server Business Scripts
|
||||
require("business/bakery.js");
|
||||
require("business/bar.js");
|
||||
require("business/burger.js");
|
||||
require("business/clothing.js");
|
||||
require("business/club.js");
|
||||
require("business/fuel.js");
|
||||
require("business/mechanic.js");
|
||||
require("business/pizza.js");
|
||||
require("business/restaurant.js");
|
||||
require("business/vehicle.js");
|
||||
require("business/weapon.js");
|
||||
|
||||
// Server Job Scripts
|
||||
require("job/bus.js");
|
||||
require("job/drug.js");
|
||||
require("job/fire.js");
|
||||
require("job/garbage.js");
|
||||
require("job/medic.js");
|
||||
require("job/police.js");
|
||||
require("job/taxi.js");
|
||||
require("job/weapon.js");
|
||||
|
||||
// Server Item Scripts
|
||||
require("item/food.js");
|
||||
require("item/drink.js");
|
||||
require("item/walkie-talkie.js");
|
||||
require("item/phone.js");
|
||||
require("item/handcuff.js");
|
||||
require("item/rope.js");
|
||||
require("item/tazer.js");
|
||||
|
||||
// Startup
|
||||
require("startup.js");
|
||||
@@ -288,22 +288,18 @@ function initItemScript() {
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function loadItemsFromDatabase() {
|
||||
async function loadItemsFromDatabase() {
|
||||
logToConsole(LOG_DEBUG, `[AGRP.Item]: Loading items from database ...`);
|
||||
let tempItems = [];
|
||||
let dbConnection = connectToDatabase();
|
||||
let dbFetchAssoc;
|
||||
|
||||
let dbAssoc;
|
||||
if (dbConnection) {
|
||||
let dbQuery = queryDatabase(dbConnection, `SELECT * FROM item_main WHERE item_deleted = 0 AND item_server = ${getServerId()}`);
|
||||
if (dbQuery) {
|
||||
if (dbQuery.numRows > 0) {
|
||||
while (dbFetchAssoc = fetchQueryAssoc(dbQuery)) {
|
||||
let tempItemData = new ItemData(dbFetchAssoc);
|
||||
tempItems.push(tempItemData);
|
||||
logToConsole(LOG_VERBOSE, `[AGRP.Item]: Loaded item ${tempItemData.databaseId} (type ${tempItemData.itemType})} from database`);
|
||||
}
|
||||
}
|
||||
freeDatabaseQuery(dbQuery);
|
||||
let dbQueryString = `SELECT * FROM item_main WHERE item_server = ${getServerId()}`;
|
||||
dbAssoc = await fetchQueryAssoc(dbConnection, dbQueryString);
|
||||
for (let i in dbAssoc) {
|
||||
let tempItemData = new ItemData(dbAssoc[i]);
|
||||
tempItems.push(tempItemData);
|
||||
}
|
||||
disconnectFromDatabase(dbConnection);
|
||||
}
|
||||
@@ -313,22 +309,18 @@ function loadItemsFromDatabase() {
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function loadItemTypesFromDatabase() {
|
||||
async function loadItemTypesFromDatabase() {
|
||||
logToConsole(LOG_DEBUG, `[AGRP.Item]: Loading item types from database ...`);
|
||||
let tempItemTypes = [];
|
||||
let dbConnection = connectToDatabase();
|
||||
let dbFetchAssoc;
|
||||
let dbAssoc;
|
||||
|
||||
if (dbConnection) {
|
||||
let dbQuery = queryDatabase(dbConnection, `SELECT * FROM item_type WHERE item_type_deleted = 0 AND item_type_enabled = 1 AND item_type_server = ${getServerId()}`);
|
||||
if (dbQuery) {
|
||||
if (getQueryNumRows(dbQuery) > 0) {
|
||||
while (dbFetchAssoc = fetchQueryAssoc(dbQuery)) {
|
||||
let tempItemTypeData = new ItemTypeData(dbFetchAssoc);
|
||||
tempItemTypes.push(tempItemTypeData);
|
||||
logToConsole(LOG_VERBOSE, `[AGRP.Item]: Loaded item type ${tempItemTypeData.name} (id ${tempItemTypeData.databaseId}} from database`);
|
||||
}
|
||||
}
|
||||
freeDatabaseQuery(dbQuery);
|
||||
let dbQueryString = `SELECT * FROM item_type WHERE item_type_enabled = 1 AND item_type_server = ${getServerId()}`;
|
||||
dbAssoc = await fetchQueryAssoc(dbConnection, dbQueryString);
|
||||
for (let i in dbAssoc) {
|
||||
let tempItemTypeData = new ItemTypeData(dbAssoc[i]);
|
||||
tempItemTypes.push(tempItemTypeData);
|
||||
}
|
||||
disconnectFromDatabase(dbConnection);
|
||||
}
|
||||
|
||||
@@ -164,7 +164,7 @@ function loadAllLocaleStrings() {
|
||||
let locales = getGlobalConfig().locale.locales;
|
||||
for (let i in locales) {
|
||||
let localeData = locales[i];
|
||||
let localeFile = JSON.parse(loadTextFile(`locale/${localeData.stringsFile}`));
|
||||
let localeFile = JSON.parse(getContentsOfTextFile(`locale/${localeData.stringsFile}`));
|
||||
tempLocaleStrings[i] = localeFile;
|
||||
}
|
||||
|
||||
|
||||
@@ -1520,6 +1520,12 @@ function shutdownServer() {
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function getContentsOfTextFile(filePath) {
|
||||
return loadTextFile(filePath);
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function setServerRule(ruleName, ruleValue) {
|
||||
server.setRule(ruleName, ruleValue);
|
||||
}
|
||||
|
||||
@@ -3,22 +3,14 @@
|
||||
// https://github.com/VortrexFTW/agrp_main
|
||||
// (c) 2022 Asshat Gaming
|
||||
// ===========================================================================
|
||||
// FILE: connected.js
|
||||
// DESC: Provides wrapped natives for GTA Connected and Mafia Connected mods
|
||||
// FILE: ragemp.js
|
||||
// DESC: Provides wrapped natives for RAGEMP
|
||||
// TYPE: Server (JavaScript)
|
||||
// ===========================================================================
|
||||
|
||||
var fs = require('fs');
|
||||
|
||||
let builtInCommands = [
|
||||
"refresh",
|
||||
"restart",
|
||||
"stop",
|
||||
"start",
|
||||
"reconnect",
|
||||
"setname",
|
||||
"connect",
|
||||
"disconnect",
|
||||
"say",
|
||||
"dumpdoc",
|
||||
];
|
||||
|
||||
// ===========================================================================
|
||||
@@ -1206,7 +1198,6 @@ function bindServerEventHandler(eventName, bindTo, handlerFunction) {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function setElementName(element, name) {
|
||||
@@ -1242,6 +1233,11 @@ function createAttachedGameBlip(element, type, size, colour = toColour(255, 255,
|
||||
// ===========================================================================
|
||||
|
||||
function deletePlayerPed(client) {
|
||||
if (areServerElementsSupported()) {
|
||||
destroyElement(client.player);
|
||||
} else {
|
||||
sendNetworkEventToPlayer("agrp.deleteLocalPlayerPed", client);
|
||||
}
|
||||
//if (areServerElementsSupported()) {
|
||||
// destroyElement(client.player);
|
||||
//} else {
|
||||
@@ -1274,3 +1270,15 @@ function setServerRule(ruleName, ruleValue) {
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
async function getContentsOfTextFile(filePath) {
|
||||
let fileContents = fs.readFile(filePath, 'utf8', function (err, data) {
|
||||
if (err) {
|
||||
console.error("Could not open file: %s", err);
|
||||
} else {
|
||||
return data;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
@@ -246,21 +246,19 @@ function createNPCCommand(command, params, client) {
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function loadNPCsFromDatabase() {
|
||||
async function loadNPCsFromDatabase() {
|
||||
logToConsole(LOG_DEBUG, `[AGRP.NPC]: Loading NPCs from database ...`);
|
||||
let dbConnection = connectToDatabase();
|
||||
let tempNPCs = [];
|
||||
let dbAssoc;
|
||||
|
||||
if (dbConnection) {
|
||||
let dbQueryString = `SELECT * FROM npc_main WHERE npc_server = ${getServerId()} AND npc_enabled = 1`;
|
||||
let dbQuery = queryDatabase(dbConnection, dbQueryString);
|
||||
if (dbQuery) {
|
||||
while (dbAssoc = fetchQueryAssoc(dbQuery)) {
|
||||
let tempNPCData = new NPCData(dbAssoc);
|
||||
tempNPCData.triggers = loadNPCTriggersFromDatabase(tempNPCData.databaseId);
|
||||
tempNPCs.push(tempNPCData);
|
||||
}
|
||||
freeDatabaseQuery(dbQuery);
|
||||
dbAssoc = await fetchQueryAssoc(dbConnection, dbQueryString);
|
||||
for (let i in dbAssoc) {
|
||||
let tempNPCData = new NPCData(dbAssoc[i]);
|
||||
tempNPCData.triggers = loadNPCTriggersFromDatabase();
|
||||
tempNPCs.push(tempNPCData);
|
||||
}
|
||||
disconnectFromDatabase(dbConnection);
|
||||
}
|
||||
@@ -271,22 +269,20 @@ function loadNPCsFromDatabase() {
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function loadNPCTriggersFromDatabase(npcDatabaseId) {
|
||||
async function loadNPCTriggersFromDatabase(npcDatabaseId) {
|
||||
logToConsole(LOG_DEBUG, `[AGRP.NPC]: Loading NPC triggers for NPC ${npcDatabaseId} from database ...`);
|
||||
let dbConnection = connectToDatabase();
|
||||
let tempNPCTriggers = [];
|
||||
let dbAssoc;
|
||||
|
||||
if (dbConnection) {
|
||||
let dbQueryString = `SELECT * FROM npc_trig WHERE npc_trig_npc = ${npcDatabaseId} AND npc_trig_enabled = 1`;
|
||||
let dbQuery = queryDatabase(dbConnection, dbQueryString);
|
||||
if (dbQuery) {
|
||||
while (dbAssoc = fetchQueryAssoc(dbQuery)) {
|
||||
let tempNPCTriggerData = new NPCTriggerData(dbAssoc);
|
||||
tempNPCTriggerData.conditions = loadNPCTriggerConditionsFromDatabase(tempNPCTriggerData.databaseId);
|
||||
tempNPCTriggerData.responses = loadNPCTriggerResponsesFromDatabase(tempNPCTriggerData.databaseId);
|
||||
tempNPCTriggers.push(tempNPCTriggerData);
|
||||
}
|
||||
freeDatabaseQuery(dbQuery);
|
||||
dbAssoc = await fetchQueryAssoc(dbConnection, dbQueryString);
|
||||
for (let i in dbAssoc) {
|
||||
let tempNPCTriggerData = new NPCTriggerData(dbAssoc[i]);
|
||||
tempNPCTriggerData.conditions = loadNPCTriggerConditionsFromDatabase(tempNPCTriggerData.databaseId);
|
||||
tempNPCTriggerData.responses = loadNPCTriggerResponsesFromDatabase(tempNPCTriggerData.databaseId);
|
||||
tempNPCTriggers.push(tempNPCTriggerData);
|
||||
}
|
||||
disconnectFromDatabase(dbConnection);
|
||||
}
|
||||
@@ -297,20 +293,18 @@ function loadNPCTriggersFromDatabase(npcDatabaseId) {
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function loadNPCTriggerConditionsFromDatabase(npcTriggerDatabaseId) {
|
||||
async function loadNPCTriggerConditionsFromDatabase(npcTriggerDatabaseId) {
|
||||
logToConsole(LOG_DEBUG, `[AGRP.NPC]: Loading NPC trigger conditions for trigger ${npcTriggerDatabaseId} from database ...`);
|
||||
let dbConnection = connectToDatabase();
|
||||
let tempNPCTriggerConditions = [];
|
||||
let dbAssoc;
|
||||
|
||||
if (dbConnection) {
|
||||
let dbQueryString = `SELECT * FROM npc_cond WHERE npc_cond_trig = ${npcTriggerDatabaseId} AND npc_cond_enabled = 1`;
|
||||
let dbQuery = queryDatabase(dbConnection, dbQueryString);
|
||||
if (dbQuery) {
|
||||
while (dbAssoc = fetchQueryAssoc(dbQuery)) {
|
||||
let tempNPCTriggerConditionData = new NPCTriggerConditionData(dbAssoc);
|
||||
tempNPCTriggerConditions.push(tempNPCTriggerConditionData);
|
||||
}
|
||||
freeDatabaseQuery(dbQuery);
|
||||
dbAssoc = await fetchQueryAssoc(dbConnection, dbQueryString);
|
||||
for (let i in dbAssoc) {
|
||||
let tempNPCTriggerConditionData = new NPCTriggerConditionData(dbAssoc[i]);
|
||||
tempNPCTriggerConditions.push(tempNPCTriggerConditionData);
|
||||
}
|
||||
disconnectFromDatabase(dbConnection);
|
||||
}
|
||||
@@ -321,20 +315,18 @@ function loadNPCTriggerConditionsFromDatabase(npcTriggerDatabaseId) {
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function loadNPCTriggerResponsesFromDatabase(npcTriggerDatabaseId) {
|
||||
async function loadNPCTriggerResponsesFromDatabase(npcTriggerDatabaseId) {
|
||||
logToConsole(LOG_DEBUG, `[AGRP.NPC]: Loading NPC trigger responses for trigger ${npcTriggerDatabaseId} from database ...`);
|
||||
let dbConnection = connectToDatabase();
|
||||
let tempNPCTriggerResponses = [];
|
||||
let dbAssoc;
|
||||
|
||||
if (dbConnection) {
|
||||
let dbQueryString = `SELECT * FROM npc_resp WHERE npc_resp_trig = ${npcTriggerDatabaseId} AND npc_resp_enabled = 1`;
|
||||
let dbQuery = queryDatabase(dbConnection, dbQueryString);
|
||||
if (dbQuery) {
|
||||
while (dbAssoc = fetchQueryAssoc(dbQuery)) {
|
||||
let tempNPCTriggerResponseData = new NPCTriggerResponseData(dbAssoc);
|
||||
tempNPCTriggerResponses.push(tempNPCTriggerResponseData);
|
||||
}
|
||||
freeDatabaseQuery(dbQuery);
|
||||
dbAssoc = await fetchQueryAssoc(dbConnection, dbQueryString);
|
||||
for (let i in dbAssoc) {
|
||||
let tempNPCTriggerResponseData = new NPCTriggerResponseData(dbAssoc[i]);
|
||||
tempNPCTriggerResponses.push(tempNPCTriggerResponseData);
|
||||
}
|
||||
disconnectFromDatabase(dbConnection);
|
||||
}
|
||||
|
||||
@@ -37,20 +37,18 @@ function initRadioScript() {
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function loadRadioStationsFromDatabase() {
|
||||
async function loadRadioStationsFromDatabase() {
|
||||
logToConsole(LOG_INFO, "[AGRP.Radio]: Loading radio stations from database ...");
|
||||
let dbConnection = connectToDatabase();
|
||||
let tempRadioStations = [];
|
||||
let dbAssoc;
|
||||
|
||||
if (dbConnection) {
|
||||
let dbQueryString = `SELECT * FROM radio_main`;
|
||||
let dbQuery = queryDatabase(dbConnection, dbQueryString);
|
||||
if (dbQuery) {
|
||||
while (dbAssoc = fetchQueryAssoc(dbQuery)) {
|
||||
let tempRadioStationData = new RadioStationData(dbAssoc);
|
||||
tempRadioStations.push(tempRadioStationData);
|
||||
}
|
||||
freeDatabaseQuery(dbQuery);
|
||||
dbAssoc = await fetchQueryAssoc(dbConnection, dbQueryString);
|
||||
for (let i in dbAssoc) {
|
||||
let tempRadioStationData = new RadioStationData(dbAssoc[i]);
|
||||
tempRadioStations.push(tempRadioStationData);
|
||||
}
|
||||
disconnectFromDatabase(dbConnection);
|
||||
}
|
||||
|
||||
@@ -129,19 +129,21 @@ function initSubAccountScript() {
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function loadSubAccountFromName(firstName, lastName) {
|
||||
async function loadSubAccountFromName(firstName, lastName) {
|
||||
let dbConnection = connectToDatabase();
|
||||
if (dbConnection) {
|
||||
firstName = escapeDatabaseString(dbConnection, firstName);
|
||||
lastName = escapeDatabaseString(dbConnection, lastName);
|
||||
|
||||
let dbQueryString = `SELECT * FROM sacct_main INNER JOIN sacct_svr ON sacct_svr.sacct_svr_sacct=sacct_main.sacct_id AND sacct_svr.sacct_svr_server=${getServerId()} WHERE sacct_name_first = '${firstName}' AND sacct_name_last = '${lastName}' LIMIT 1;`;
|
||||
let dbQuery = queryDatabase(dbConnection, dbQueryString);
|
||||
let dbAssoc = await fetchQueryAssoc(dbConnection, dbQueryString);
|
||||
if (dbQuery) {
|
||||
let dbAssoc = fetchQueryAssoc(dbQuery);
|
||||
freeDatabaseQuery(dbQuery);
|
||||
return new SubAccountData(dbAssoc);
|
||||
}
|
||||
disconnectFromDatabase(dbConnection);
|
||||
return new SubAccountData(dbAssoc[0]);
|
||||
}
|
||||
|
||||
return false;
|
||||
@@ -149,17 +151,18 @@ function loadSubAccountFromName(firstName, lastName) {
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function loadSubAccountFromId(subAccountId) {
|
||||
async function loadSubAccountFromId(subAccountId) {
|
||||
let dbConnection = connectToDatabase();
|
||||
if (dbConnection) {
|
||||
let dbQueryString = `SELECT * FROM sacct_main INNER JOIN sacct_svr ON sacct_svr.sacct_svr_sacct=sacct_main.sacct_id AND sacct_svr.sacct_svr_server=${getServerId()} WHERE sacct_id = ${subAccountId} LIMIT 1;`;
|
||||
let dbQuery = queryDatabase(dbConnection, dbQueryString);
|
||||
let dbAssoc = await fetchQueryAssoc(dbConnection, dbQueryString);
|
||||
if (dbQuery) {
|
||||
let dbAssoc = fetchQueryAssoc(dbQuery);
|
||||
freeDatabaseQuery(dbQuery);
|
||||
return new SubAccountData(dbAssoc);
|
||||
}
|
||||
disconnectFromDatabase(dbConnection);
|
||||
return new SubAccountData(dbAssoc[0]);
|
||||
}
|
||||
|
||||
return false;
|
||||
@@ -167,77 +170,74 @@ function loadSubAccountFromId(subAccountId) {
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function loadSubAccountsFromAccount(accountId) {
|
||||
async function loadSubAccountsFromAccount(accountId) {
|
||||
let tempSubAccounts = [];
|
||||
let dbAssoc = false;
|
||||
if (accountId > 0) {
|
||||
let dbConnection = connectToDatabase();
|
||||
if (dbConnection) {
|
||||
let dbQueryString = `SELECT * FROM sacct_main INNER JOIN sacct_svr ON sacct_svr.sacct_svr_sacct=sacct_main.sacct_id AND sacct_svr.sacct_svr_server=${getServerId()} WHERE sacct_acct = ${accountId} AND sacct_server = ${getServerId()}`;
|
||||
let dbQuery = queryDatabase(dbConnection, dbQueryString);
|
||||
if (dbQuery) {
|
||||
while (dbAssoc = fetchQueryAssoc(dbQuery)) {
|
||||
let tempSubAccount = new SubAccountData(dbAssoc);
|
||||
dbAssoc = await fetchQueryAssoc(dbConnection, dbQueryString);
|
||||
for (let i in dbAssoc) {
|
||||
let tempSubAccount = new SubAccountData(dbAssoc[i]);
|
||||
|
||||
// Make sure skin is valid
|
||||
if (tempSubAccount.skin == -1) {
|
||||
tempSubAccount.skin = getServerConfig().newCharacter.skin;
|
||||
}
|
||||
|
||||
// Check if clan and rank are still valid
|
||||
if (tempSubAccount.clan != 0) {
|
||||
let clanIndex = getClanIndexFromDatabaseId(tempSubAccount.clan);
|
||||
if (!getClanData(clanIndex)) {
|
||||
tempSubAccount.clan = 0;
|
||||
tempSubAccount.clanRank = 0;
|
||||
tempSubAccount.clanIndex = -1;
|
||||
tempSubAccount.clanRankIndex = -1;
|
||||
tempSubAccount.clanTitle = "";
|
||||
tempSubAccount.clanFlags = 0;
|
||||
} else {
|
||||
let clanRankIndex = getClanRankIndexFromDatabaseId(clanIndex, tempSubAccount.clanRank);
|
||||
if (!getClanRankData(clanIndex, clanRankIndex)) {
|
||||
let newClanRankIndex = getLowestClanRank(clanIndex);
|
||||
tempSubAccount.clanRank = getClanRankData(clanIndex, newClanRankIndex).databaseId
|
||||
tempSubAccount.clanRankIndex = newClanRankIndex;
|
||||
} else {
|
||||
tempSubAccount.clanRankIndex = clanRankIndex;
|
||||
}
|
||||
|
||||
tempSubAccount.clanIndex = clanIndex;
|
||||
}
|
||||
}
|
||||
|
||||
// Check if job and rank are still valid
|
||||
if (tempSubAccount.job != 0) {
|
||||
let jobIndex = getJobIndexFromDatabaseId(tempSubAccount.job);
|
||||
if (!getJobData(jobIndex)) {
|
||||
tempSubAccount.job = 0;
|
||||
tempSubAccount.jobRank = 0;
|
||||
tempSubAccount.jobIndex = -1;
|
||||
tempSubAccount.jobRankIndex = -1;
|
||||
} else {
|
||||
if (getJobData(jobIndex).ranks.length > 0) {
|
||||
let jobRankIndex = getJobRankIndexFromDatabaseId(jobIndex, tempSubAccount.jobRank);
|
||||
if (!getJobRankData(jobIndex, jobRankIndex)) {
|
||||
let newJobRankIndex = getLowestJobRank(jobIndex);
|
||||
console.log(`[AGRP.SubAccount]: Job ${jobIndex} has no rank ${tempSubAccount.jobRank}! Using lowest rank ${newJobRankIndex} instead.`);
|
||||
tempSubAccount.jobRank = getJobRankData(jobIndex, newJobRankIndex).databaseId;
|
||||
tempSubAccount.jobRankIndex = newJobRankIndex;
|
||||
} else {
|
||||
tempSubAccount.jobRankIndex = jobRankIndex;
|
||||
}
|
||||
} else {
|
||||
tempSubAccount.jobRankIndex = -1;
|
||||
}
|
||||
|
||||
tempSubAccount.jobIndex = jobIndex;
|
||||
}
|
||||
}
|
||||
|
||||
tempSubAccounts.push(tempSubAccount);
|
||||
// Make sure skin is valid
|
||||
if (tempSubAccount.skin == -1) {
|
||||
tempSubAccount.skin = getServerConfig().newCharacter.skin;
|
||||
}
|
||||
freeDatabaseQuery(dbQuery);
|
||||
|
||||
// Check if clan and rank are still valid
|
||||
if (tempSubAccount.clan != 0) {
|
||||
let clanIndex = getClanIndexFromDatabaseId(tempSubAccount.clan);
|
||||
if (!getClanData(clanIndex)) {
|
||||
tempSubAccount.clan = 0;
|
||||
tempSubAccount.clanRank = 0;
|
||||
tempSubAccount.clanIndex = -1;
|
||||
tempSubAccount.clanRankIndex = -1;
|
||||
tempSubAccount.clanTitle = "";
|
||||
tempSubAccount.clanFlags = 0;
|
||||
} else {
|
||||
let clanRankIndex = getClanRankIndexFromDatabaseId(clanIndex, tempSubAccount.clanRank);
|
||||
if (!getClanRankData(clanIndex, clanRankIndex)) {
|
||||
let newClanRankIndex = getLowestClanRank(clanIndex);
|
||||
tempSubAccount.clanRank = getClanRankData(clanIndex, newClanRankIndex).databaseId
|
||||
tempSubAccount.clanRankIndex = newClanRankIndex;
|
||||
} else {
|
||||
tempSubAccount.clanRankIndex = clanRankIndex;
|
||||
}
|
||||
|
||||
tempSubAccount.clanIndex = clanIndex;
|
||||
}
|
||||
}
|
||||
|
||||
// Check if job and rank are still valid
|
||||
if (tempSubAccount.job != 0) {
|
||||
let jobIndex = getJobIndexFromDatabaseId(tempSubAccount.job);
|
||||
if (!getJobData(jobIndex)) {
|
||||
tempSubAccount.job = 0;
|
||||
tempSubAccount.jobRank = 0;
|
||||
tempSubAccount.jobIndex = -1;
|
||||
tempSubAccount.jobRankIndex = -1;
|
||||
} else {
|
||||
if (getJobData(jobIndex).ranks.length > 0) {
|
||||
let jobRankIndex = getJobRankIndexFromDatabaseId(jobIndex, tempSubAccount.jobRank);
|
||||
if (!getJobRankData(jobIndex, jobRankIndex)) {
|
||||
let newJobRankIndex = getLowestJobRank(jobIndex);
|
||||
console.log(`[AGRP.SubAccount]: Job ${jobIndex} has no rank ${tempSubAccount.jobRank}! Using lowest rank ${newJobRankIndex} instead.`);
|
||||
tempSubAccount.jobRank = getJobRankData(jobIndex, newJobRankIndex).databaseId;
|
||||
tempSubAccount.jobRankIndex = newJobRankIndex;
|
||||
} else {
|
||||
tempSubAccount.jobRankIndex = jobRankIndex;
|
||||
}
|
||||
} else {
|
||||
tempSubAccount.jobRankIndex = -1;
|
||||
}
|
||||
|
||||
tempSubAccount.jobIndex = jobIndex;
|
||||
}
|
||||
}
|
||||
|
||||
tempSubAccounts.push(tempSubAccount);
|
||||
}
|
||||
disconnectFromDatabase(dbConnection);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user