"Занялся переводом SA Wiki" называется

ReoGenT

Участник
Автор темы
90
6
Версия MoonLoader
.026-beta
Проблема заключается в том, что название загружаемого файла - русское и отображается вопросиками. Я уже приписывал u8:decode(Строка 25) и просто u8, но это бесполезно

Код который отвечает за загрузку файлов:
Lua:
function _load_text(file)
    if doesFileExist(file) then
        local out = {}
        local i = 1
        for line in io.lines(file) do
            out[i] = line:gsub(u8'\\n', '\n')
            i = i + 1
        end
        return out
    else
        error(('File "%s" does not exist'):format(file))
    end
end

function load_text(file)
    file = 'moonloader/sa wiki/text/' .. file
    return _load_text(file)
end

function load_text_dir(dir)
    local out = {}
    local dir = 'moonloader/sa wiki/text/' .. dir
    local search, file = findFirstFile(dir .. '/*.txt')
    while file do
        out[file:gsub(u8:decode('.txt'), '')] = _load_text(dir .. '/' .. file)
        file = findNextFile(search)
    end
    findClose(search)
    return out
end

Скрин проблемы:
sa-mp-161.png
 

RedHolms

Известный
Проверенный
622
369
Проблема заключается в том, что название загружаемого файла - русское и отображается вопросиками. Я уже приписывал u8:decode(Строка 25) и просто u8, но это бесполезно

Код который отвечает за загрузку файлов:
Lua:
function _load_text(file)
    if doesFileExist(file) then
        local out = {}
        local i = 1
        for line in io.lines(file) do
            out[i] = line:gsub(u8'\\n', '\n')
            i = i + 1
        end
        return out
    else
        error(('File "%s" does not exist'):format(file))
    end
end

function load_text(file)
    file = 'moonloader/sa wiki/text/' .. file
    return _load_text(file)
end

function load_text_dir(dir)
    local out = {}
    local dir = 'moonloader/sa wiki/text/' .. dir
    local search, file = findFirstFile(dir .. '/*.txt')
    while file do
        out[file:gsub(u8:decode('.txt'), '')] = _load_text(dir .. '/' .. file)
        file = findNextFile(search)
    end
    findClose(search)
    return out
end
Попробуй использовать cp866
 

ReoGenT

Участник
Автор темы
90
6

ReoGenT

Участник
Автор темы
90
6
Винда для путей использует CP866(по крайне мере в батниках), а не ANSI(проверенно на жизненном опыте)
Не помогает твоя кодировка

Скрипт не трогай. Файлы в /sa wiki/ сохраняй в кодировке ANSI(CP1251, Win1251)
Это тоже не работает, все равно вопросики
 

RTD

Потужно
Модератор
405
476
Это тоже не работает, все равно вопросики
Не заметил что у тебя на скрине проблема только с Tree Node. Отредактируй в скрипте 171 строку на
Lua:
if imgui.TreeNode(u8(k)) then
Скрипт в кодировке Win1251
 
  • Нравится
Реакции: ReoGenT

ReoGenT

Участник
Автор темы
90
6
Не заметил что у тебя на скрине проблема только с Tree Node. Отредактируй в скрипте 171 строку на
Lua:
if imgui.TreeNode(u8(k)) then
СПАСИБО, уже месяц с этой проблемой хожу!
 
  • Нравится
Реакции: YarmaK