Skip to content

Localize Bodygroup Names if possible #2290

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion garrysmod/lua/autorun/menubar.lua
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ hook.Add( "PopulateMenuBar", "DisplayOptions_MenuBar", function( menubar )
m:AddSpacer()

m:AddCVar( "#menubar.drawing.hints", "cl_showhints", "1", "0" )

m:AddCVar( "#menubar.drawing.translate_bodygroup", "gmod_translate_bodygroups", "1", "0" )
end )

-- AI Options
Expand Down
14 changes: 10 additions & 4 deletions garrysmod/lua/autorun/properties/bodygroups.lua
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@

AddCSLuaFile()

local TranslateBodygroup = CreateClientConVar( "gmod_translate_bodygroups", "1", true, false, "If enabled, supported bodygroup's name will be translated into supported language." )

properties.Add( "bodygroups", {
MenuLabel = "#bodygroups",
Order = 600,
Expand Down Expand Up @@ -60,7 +62,9 @@ properties.Add( "bodygroups", {
local opposite = 1
if ( current == opposite ) then opposite = 0 end

local opt = submenu:AddOption( string.NiceName( v.name ) )
local bodygroup_name
if !TranslateBodygroup:GetBool() or language.GetPhrase( "bodygroup."..string.lower(v.name) ) == "bodygroup."..string.lower(v.name) then bodygroup_name = string.NiceName(v.name) else bodygroup_name = language.GetPhrase( "bodygroup."..string.lower(v.name) ) end
local opt = submenu:AddOption( bodygroup_name )
opt:SetChecked( current == 1 )
opt:SetIsCheckable( true )
opt.OnChecked = function( s, checked ) self:SetBodyGroup( ent, v.id, checked and 1 or 0 ) end
Expand All @@ -69,8 +73,9 @@ properties.Add( "bodygroups", {
-- More than 2 options we add our own submenu
--
else

local groups = submenu:AddSubMenu( string.NiceName( v.name ) )

local groups
if !TranslateBodygroup:GetBool() or language.GetPhrase( "bodygroup."..string.lower(v.name) ) == "bodygroup."..string.lower(v.name) then groups = submenu:AddSubMenu( string.NiceName( v.name ) ) else groups = submenu:AddSubMenu( language.GetPhrase( "bodygroup."..string.lower(v.name) ) ) end

for i = 1, v.num do
local modelname = "Model #" .. i
Expand All @@ -81,7 +86,8 @@ properties.Add( "bodygroups", {
modelname = string.StripExtension( modelname )
modelname = string.GetFileFromFilename( modelname )

local opt = groups:AddOption( string.NiceName( modelname ) )
local opt
if !TranslateBodygroup:GetBool() or language.GetPhrase( "bodygroup."..string.lower(modelname) ) == "bodygroup."..string.lower(modelname) then opt = groups:AddOption( string.NiceName( modelname ) ) else opt = groups:AddOption( language.GetPhrase( "bodygroup."..string.lower(modelname) ) ) end
opt:SetRadio( true )
opt:SetChecked( target:GetBodygroup( v.id ) == i - 1 )
opt:SetIsCheckable( true )
Expand Down
2 changes: 1 addition & 1 deletion garrysmod/lua/autorun/properties/skin.lua
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ properties.Add( "skin", {

for i = 0, num - 1 do

local opt = submenu:AddOption( "Skin " .. i )
local opt = submenu:AddOption( language.GetPhrase("context.properties.skin"):format(i) )
opt:SetRadio( true )
opt:SetChecked( target:GetSkin() == i )
opt:SetIsCheckable( true )
Expand Down
5 changes: 5 additions & 0 deletions garrysmod/resource/localization/en/context.properties
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ menubar.drawing.wireframe=Wireframe
menubar.cheatstip=Requires sv_cheats to function!

menubar.drawing.hints=Hints
menubar.drawing.translate_bodygroup=Localize Bodygroups

menubar.npcs=NPCs

Expand All @@ -67,3 +68,7 @@ menubar.npcs.defaultweapon=Default Weapon
menubar.server=Server
menubar.host_only=Requires being server host!
physcannon_mega_enabled=Enable supercharged Gravity Gun

bodygroup.empty=Empty

context.properties.skin=Skin %i