Skip to main content

Locale System

Locale system for all user-facing strings

This section

Locale System

All user-facing strings are centralized in shared/locale.lua. The locale table is sent to the React UI via the LanguageProvider on shop open.

How It Works

Lua Side

All strings are defined in the Language table in shared/locale.lua:

lua
Language = {
search = "Search",
confirm = "Confirm",
shoppingBasket = "Shopping Basket",
totalPrice = "Total Price",
-- ...200+ keys
}

React/NUI Side

The language table is sent to the UI via NUI message and consumed by the LanguageProvider context. Components access translations through the provider.

String Categories

The locale file contains approximately 200+ keys organized by feature:

  • General UI: search, add, confirm, cancel, save, create, update, delete, position
  • Shopping: bankMoney, cashMoney, shoppingBasket, totalPrice, payWithBank, payWithCash
  • Shop Management: createShop, shopName, shopDesc, editShop, deleteDialog
  • Products: addProduct, productName, productCode, price, category, stock, bulkImport
  • Categories: addNewCategory, updateCategoryInfo, createNewCategory, viewItems
  • Locations: addNewLocation, editLocation, locationName, locationCoordinates, mapView, listView
  • Blip/Ped Settings: createBlip, blipId, blipColor, shopPed, pedModel, pedScenerio
  • Ped Placer: coordinates, rotation, adjustCoordinates, placePed, rotatePed, heightAdjust
  • Import: importFromInventory, selectItemsToImport, importShop, importShops
  • Theme: editTheme, themePresets, customColor, livePreview, saveTheme
  • Webhooks: webhookSettings, webhookUrl, webhookEnable, webhookEvents
  • Job Permissions: insufficientItemPermission, requiredJob, itemJobRequirement
  • Server Messages: PurchaseSuccess, InsufficientFunds, OutOfStock, PaymentFailed, NoPermission
  • Interaction: openShop, interactWith, pressToInteract