mirror of
https://github.com/qbcore-fivem/qb-core.git
synced 2026-08-28 17:01:16 +00:00
Add locale convar and locale fallback
This commit is contained in:
+2
-1
@@ -7,7 +7,8 @@ version '1.1.0'
|
||||
shared_scripts {
|
||||
'config.lua',
|
||||
'shared/locale.lua',
|
||||
'locale/en.lua', -- replace with desired language
|
||||
'locale/en.lua',
|
||||
'locale/*.lua',
|
||||
'shared/main.lua',
|
||||
'shared/items.lua',
|
||||
'shared/jobs.lua',
|
||||
|
||||
+4
-1
@@ -25,7 +25,10 @@ local Translations = {
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'ar' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -25,7 +25,10 @@ local Translations = {
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'bg' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -25,7 +25,10 @@ local Translations = {
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'cn' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -25,7 +25,10 @@ local Translations = {
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'cs' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -25,7 +25,10 @@ local Translations = {
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'da' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -118,7 +118,10 @@ local Translations = {
|
||||
},
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'de' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -25,7 +25,10 @@ local Translations = {
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'ee' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+1
-1
@@ -118,7 +118,7 @@ local Translations = {
|
||||
},
|
||||
}
|
||||
|
||||
Lang = Locale:new({
|
||||
Lang = Lang or Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
})
|
||||
|
||||
+4
-1
@@ -30,7 +30,10 @@ local Translations = {
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'es' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -25,7 +25,10 @@ local Translations = {
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'et' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -19,7 +19,10 @@ local Translations = {
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'fa' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -19,7 +19,10 @@ local Translations = {
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'fi' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -120,7 +120,10 @@ local Translations = {
|
||||
},
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'fr' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -19,7 +19,10 @@ local Translations = {
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'ge' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+5
-1
@@ -118,7 +118,11 @@ local Translations = {
|
||||
},
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'he' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
|
||||
+4
-1
@@ -19,7 +19,10 @@ local Translations = {
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'hu' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -19,7 +19,10 @@ local Translations = {
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'in' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -118,7 +118,10 @@ local Translations = {
|
||||
},
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'is' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -123,7 +123,10 @@ error = {
|
||||
},
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'it' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -19,7 +19,10 @@ local Translations = {
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'lv' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -25,7 +25,10 @@ local Translations = {
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'nl' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -25,7 +25,10 @@ local Translations = {
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'pl' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -25,7 +25,10 @@ local Translations = {
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'pt-br' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -19,7 +19,10 @@ local Translations = {
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'pt' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -115,7 +115,10 @@ local Translations = {
|
||||
},
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'ro' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -19,7 +19,10 @@ local Translations = {
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'rs' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -118,7 +118,10 @@ local Translations = {
|
||||
},
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'ru' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -19,7 +19,10 @@ local Translations = {
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'sl' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -25,7 +25,10 @@ local Translations = {
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'sv' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -19,7 +19,10 @@ local Translations = {
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'th' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -25,7 +25,10 @@ local Translations = {
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'tr' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+4
-1
@@ -19,7 +19,10 @@ local Translations = {
|
||||
}
|
||||
}
|
||||
|
||||
if GetConvar('qb_locale', 'en') == 'vn' then
|
||||
Lang = Locale:new({
|
||||
phrases = Translations,
|
||||
warnOnMissing = true
|
||||
warnOnMissing = true,
|
||||
fallbackLang = Lang,
|
||||
})
|
||||
end
|
||||
|
||||
+10
-1
@@ -32,7 +32,13 @@ end
|
||||
--- @return Locale
|
||||
function Locale:new(opts)
|
||||
setmetatable(self, Locale)
|
||||
self.warnOnMissing = opts.warnOnMissing or true
|
||||
|
||||
self.fallback = opts.fallbackLang and Locale.new({}, {
|
||||
warnOnMissing = false,
|
||||
phrases = opts.fallbackLang.phrases,
|
||||
}) or false
|
||||
|
||||
self.warnOnMissing = type(opts.warnOnMissing) ~= 'boolean' and true or opts.warnOnMissing
|
||||
|
||||
self.phrases = {}
|
||||
self:extend(opts.phrases or {})
|
||||
@@ -98,6 +104,9 @@ function Locale:t(key, subs)
|
||||
if self.warnOnMissing then
|
||||
print(('^3Warning: Missing phrase for key: "%s"'):format(key))
|
||||
end
|
||||
if self.fallback then
|
||||
return self.fallback:t(key, subs)
|
||||
end
|
||||
result = key
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user