API locale
To wszystko pochodzi z bs_core/shared/sh_locale.lua. Jak przygotować resource do tłumaczenia, opisują Języki. Ta strona jest referencją.
Języki: en, pt, de, pl, tr, es, fr, it, ru. Brakujące klucze wracają do en, a potem do samego klucza.
Dołączanie
Dział zatytułowany „Dołączanie”shared_scripts { '@bs_core/shared/sh_locale.lua' }files { 'locales/*.lua' }Każdy locales/<lang>.lua zwraca płaską tabelę:
return { ['shop.title'] = 'Trader', ['shop.bought'] = 'You bought {item} for ${price}',}Placeholdery to {name}. Nieznany placeholder zostaje bez zmian, żeby literówki było widać zamiast znikać.
Funkcje Lua
Dział zatytułowany „Funkcje Lua”| Funkcja | Strona | Co robi |
|---|---|---|
L(key, vars) | client | Tekst w języku lokalnego gracza |
L(key, vars) | server | Tekst w domyślnym języku serwera |
L(src, key, vars) | server | Tekst w języku tego gracza |
Lp(src, key, vars) | server | To samo co wyżej, zawsze bierze source |
BSLocale.T(lang, key, vars) | obie | Tekst w języku, który podasz |
BSLocale.Lang() | obie | Język lokalnego gracza (client) lub domyślny (server) |
BSLocale.LangOf(src) | obie | Język gracza, wraca do domyślnego |
BSLocale.Default() | obie | Domyślny serwera (GlobalState.bs_defaultLang, inaczej en) |
BSLocale.IsValid(lang) | obie | Czy to jeden z dziewięciu kodów |
BSLocale.Dict(lang) | obie | Cała tabela z en pod spodem, dla NUI |
BSLocale.OnChange(fn) | client | fn(lang) odpala się, gdy język się zmienia |
BSLocale.Set(lang) | client | Prosi bs_core o zmianę języka gracza |
BSLocale.Languages, BSLocale.Native | obie | Lista kodów i nazwy własne |
Export serwera: exports.bs_core:GetLanguage(src).
Na serwerze zawsze podawaj source gracza, gdy tekst idzie do jednego gracza. L('key') bez source używa domyślnego języka serwera, co przy powiadomieniu jest błędem.
TriggerClientEvent('bs:ui:notify', src, { type = 'success', message = L(src, 'shop.bought', { item = label, price = 50 }) })- Wybór gracza: state bag
bs_langna graczu. - Domyślny serwera:
GlobalState.bs_defaultLang(F1Global.defaultLanguagelub convarbs_defaultLanguage). - Zapisywany per konto w
bs_users.language. - Zmiana odpala event serwera
bs_core:setLanguage.
Jeśli resource ma ui_page, skrypt locale odpowiada na callback NUI bs_i18n obiektem { lang, dict } i wysyła nową tabelę, gdy język się zmienia. Załaduj helper i oznacz swój HTML:
<script src="nui://bs_ui/html/js/i18n.js"></script><span data-i18n="ui.level">LEVEL</span>W JS: t('key', vars) i BSI18n.onChange(fn). Szczegóły w Językach.
bs19.org · Privacy · Terms · Cookie settings
Cookies and outside content
The site only needs two essential cookies to keep you logged in and protect forms. Videos and streams from YouTube and Twitch load from their servers, which can set their own cookies, so they stay off until you say yes. Nothing is pre-ticked and you can change your mind any time with "Cookie settings" at the bottom of every page. Details.
Questions about the server, the framework or the site? A real person reads this, usually within a day.