Добавление других языков в imgui.

saradaken

Участник
Автор темы
41
6
Версия MoonLoader
Другое
Здравствуйте, у меня проблема с добавлением других языков в imgui. Я могу добавлять шрифты, но не могу добавить Text для поддержки языка.

Lua:
    local io = imgui.GetIO()
    io.Fonts:Clear()
    local fontFile = getWorkingDirectory() .. '\\Fonts\\NotoSans-SemiBold.ttf'
    assert(doesFileExist(fontFile), '[mimgui] ฟอนต์ "' .. fontFile .. '" ไม่มีอยู่!')
    
    local builder = imgui.ImFontGlyphRangesBuilder()
    builder:AddRanges(imgui.GetIO().Fonts:GetGlyphRangesCyrillic())
    builder:AddText([[ๆไำพะัีรนยบลฟหกดเ้่าสวงผปแอิืทมใฝๅ/-ภถุึคตจขช+๑๒๓๔ู฿๕๖๗๘๙๐"ฎฑธํ๊ณฯญฐ,ฅฤฆฏโฌ็๋ษศซ.()ฉฮฺ์?ฒฬฦ]])

    local defaultGlyphRanges = imgui.ImVector_ImWchar()
    builder:BuildRanges(defaultGlyphRanges)
    imgui.GetIO().Fonts:AddFontFromFileTTF(fontFile, 14, nil, defaultGlyphRanges[0].Data)

Добавьте это, скрипт не будет работать.

Lua:
local builder = imgui.ImFontGlyphRangesBuilder()
    builder:AddRanges(imgui.GetIO().Fonts:GetGlyphRangesCyrillic())
    builder:AddText([[ๆไำพะัีรนยบลฟหกดเ้่าสวงผปแอิืทมใฝๅ/-ภถุึคตจขช+๑๒๓๔ู฿๕๖๗๘๙๐"ฎฑธํ๊ณฯญฐ,ฅฤฆฏโฌ็๋ษศซ.()ฉฮฺ์?ฒฬฦ]])

    local defaultGlyphRanges = imgui.ImVector_ImWchar()
    builder:BuildRanges(defaultGlyphRanges)
    imgui.GetIO().Fonts:AddFontFromFileTTF(fontFile, 14, nil, defaultGlyphRanges[0].Data)
 

wojciech?

Известный
Проверенный
351
232
Lua:
builder:AddRanges(imgui.GetIO().Fonts:GetGlyphRangesThai())

если нужны другие языки будут:
Lua:
imgui.GetIO().Fonts:GetGlyphRangesChineseFull()
imgui.GetIO().Fonts:GetGlyphRangesChineseSimplifiedCommon()
imgui.GetIO().Fonts:GetGlyphRangesCyrillic()
imgui.GetIO().Fonts:GetGlyphRangesDefault()
imgui.GetIO().Fonts:GetGlyphRangesJapanese()
imgui.GetIO().Fonts:GetGlyphRangesKorean()
imgui.GetIO().Fonts:GetGlyphRangesVietnamese()
 
Последнее редактирование:
  • Нравится
Реакции: saradaken

saradaken

Участник
Автор темы
41
6
Lua:
builder:AddRanges(imgui.GetIO().Fonts:GetGlyphRangesThai())

если нужны другие языки будут:
Lua:
imgui.GetIO().Fonts:GetGlyphRangesChineseFull()
imgui.GetIO().Fonts:GetGlyphRangesChineseSimplifiedCommon()
imgui.GetIO().Fonts:GetGlyphRangesCyrillic()
imgui.GetIO().Fonts:GetGlyphRangesDefault()
imgui.GetIO().Fonts:GetGlyphRangesJapanese()
imgui.GetIO().Fonts:GetGlyphRangesKorean()
imgui.GetIO().Fonts:GetGlyphRangesVietnamese()

hmm. Моя проблема в том, что если я добавлю это, скрипт не будет работать, если я удалю это, скрипт сможет работать.

Lua:
local builder = imgui.ImFontGlyphRangesBuilder()
builder:AddRanges(io.Fonts:GetGlyphRangesThai())
builder:AddText([[ๆไำพะัีรนยบลฟหกดเ้่าสวงผปแอิืทมใฝๅ/-ภถุึคตจขช+๑๒๓๔ู฿๕๖๗๘๙๐"ฎฑธํ๊ณฯญฐ,ฅฤฆฏโฌ็๋ษศซ.()ฉฮฺ์?ฒฬฦИнформация]])
local defaultGlyphRanges = imgui.ImVector_ImWchar()
builder:BuildRanges(defaultGlyphRanges)

может работать
Lua:
local io = imgui.GetIO()
io.Fonts:Clear()

local fontFile = getWorkingDirectory() .. '\\Med Helper\\Fonts\\NotoSans-SemiBold.ttf'
assert(doesFileExist(fontFile), '[mimgui] ฟอนต์ "' .. fontFile .. '" ไม่มีอยู่!')

local fontSize = 20
io.Fonts:AddFontFromFileTTF(fontFile, fontSize, defaultGlyphRanges)
 

wojciech?

Известный
Проверенный
351
232
hmm. Моя проблема в том, что если я добавлю это, скрипт не будет работать, если я удалю это, скрипт сможет работать.

Lua:
local builder = imgui.ImFontGlyphRangesBuilder()
builder:AddRanges(io.Fonts:GetGlyphRangesThai())
builder:AddText([[ๆไำพะัีรนยบลฟหกดเ้่าสวงผปแอิืทมใฝๅ/-ภถุึคตจขช+๑๒๓๔ู฿๕๖๗๘๙๐"ฎฑธํ๊ณฯญฐ,ฅฤฆฏโฌ็๋ษศซ.()ฉฮฺ์?ฒฬฦИнформация]])
local defaultGlyphRanges = imgui.ImVector_ImWchar()
builder:BuildRanges(defaultGlyphRanges)

может работать
Lua:
local io = imgui.GetIO()
io.Fonts:Clear()

local fontFile = getWorkingDirectory() .. '\\Med Helper\\Fonts\\NotoSans-SemiBold.ttf'
assert(doesFileExist(fontFile), '[mimgui] ฟอนต์ "' .. fontFile .. '" ไม่มีอยู่!')

local fontSize = 20
io.Fonts:AddFontFromFileTTF(fontFile, fontSize, defaultGlyphRanges)
Lua:
imgui.OnInitialize(function()
    local fontPath = getFolderPath(0x14) .. "\\tahomabd.ttf"
    imgui.GetIO().Fonts:Clear()

    local builder = imgui.ImFontGlyphRangesBuilder()
    local range = imgui.ImVector_ImWchar()

    local config = imgui.ImFontConfig()
    config.MergeMode = true
    config.PixelSnapH = true

    builder:AddRanges(imgui.GetIO().Fonts:GetGlyphRangesThai())
    builder:AddText([[ๆไำพะัีรนยบลฟหกดเ้่าสวงผปแอิืทมใฝๅ/-ภถุึคตจขช+๑๒๓๔ู฿๕๖๗๘๙๐"ฎฑธํ๊ณฯญฐ,ฅฤฆฏโฌ็๋ษศซ.()ฉฮฺ์?ฒฬฦИнформация]])
    builder:BuildRanges(range)
    imgui.GetIO().Fonts:AddFontFromFileTTF(fontPath, 15, nil, range[0].Data)
end)

1727862686915.png
 
  • Влюблен
Реакции: saradaken

saradaken

Участник
Автор темы
41
6
Lua:
imgui.OnInitialize(function()
    fontPath ในเครื่อง = getFolderPath(0x14) .. "\\tahomabd.ttf"
    imgui.GetIO().แบบอักษร:ล้าง()

    ตัวสร้างท้องถิ่น = imgui.ImFontGlyphRangesBuilder()
    ช่วงท้องถิ่น = imgui.ImVector_ImWchar()

    การกำหนดค่าท้องถิ่น = imgui.ImFontConfig()
    config.MergeMode = จริง
    config.PixelSnapH = จริง

    เครื่องมือสร้าง:AddRanges(imgui.GetIO().Fonts:GetGlyphRangesThai())
    builder:AddText ([[ ุึคตจขช+๑๒๓๔ู฿๕๖๗๗๘๙๐"ฎฑธัมณฯญฐ,ฅฤฆฏโฌฌ๋ษศ.()ฉฮ์?ฒฬฦInformation]])
    ผู้สร้าง:BuildRanges (ช่วง)
    imgui.GetIO().Fonts:AddFontFromFileTTF(fontPath, 15, nil, range[0].Data)
สิ้นสุด)[/รหัส]

[ATTACH type="full" alt="1727862686915.png"]253268[/ATTACH]
[/QUOTE]
ขอบคุณ
 

saradaken

Участник
Автор темы
41
6
Lua:
imgui.OnInitialize(function()
    local fontPath = getFolderPath(0x14) .. "\\tahomabd.ttf"
    imgui.GetIO().Fonts:Clear()

    local builder = imgui.ImFontGlyphRangesBuilder()
    local range = imgui.ImVector_ImWchar()

    local config = imgui.ImFontConfig()
    config.MergeMode = true
    config.PixelSnapH = true

    builder:AddRanges(imgui.GetIO().Fonts:GetGlyphRangesThai())
    builder:AddText([[ๆไำพะัีรนยบลฟหกดเ้่าสวงผปแอิืทมใฝๅ/-ภถุึคตจขช+๑๒๓๔ู฿๕๖๗๘๙๐"ฎฑธํ๊ณฯญฐ,ฅฤฆฏโฌ็๋ษศซ.()ฉฮฺ์?ฒฬฦИнформация]])
    builder:BuildRanges(range)
    imgui.GetIO().Fonts:AddFontFromFileTTF(fontPath, 15, nil, range[0].Data)
end)

Посмотреть вложение 253268

У меня есть еще один вопрос к [imgui.] Как мне это сделать? Я не могу сделать это так же, как [mimgui.]

Lua:
function imgui.BeforeDrawFrame()

    if fa_font == nil then
        local font_config = imgui.ImFontConfig()
        font_config.MergeMode = true

        fa_font = imgui.GetIO().Fonts:AddFontFromFileTTF('moonloader/resource/fonts/fa-solid-900.ttf', 13.0, font_config, fa_glyph_ranges)

    end
   
 
    if itim_font == nil then
        glyph_ranges = imgui.GetIO().Fonts:GetGlyphRangesThai()
        local path = getWorkingDirectory() .. '\\Fonts\\Itim-Regular.ttf'
       
        itim_font = imgui.GetIO().Fonts:AddFontFromFileTTF(path, 15, glyph_ranges)  -- เพิ่มฟอนต์ Itim
    end

    imgui.RebuildFonts()
end

И второй вопрос: как использовать fa_font, не перезаписывая его itim_font или itim_font не перезаписывая itim_font (я хочу использовать fa_font для отображения иконок, а itim_font — для работы в интерфейсе для поддержки других языков).