|
0 / 0 / 0
Регистрация: 17.10.2021
Сообщений: 57
|
||||||
Локализация текста в строке29.10.2021, 15:47. Показов 7085. Ответов 40
Привет всем!
Решил вывод от консольных утилит, перед показом в окне программы, перевести на русский и другие языки. Строчка для обработки не очень большая и нужно перевести лишь некоторые слова, которые будут в "словаре" программы. Не придумал ничего другого, кроме:
Может есть у кого то предложения, как улучшить обработку и что использовать.
0
|
||||||
| 29.10.2021, 15:47 | |
|
Ответы с готовыми решениями:
40
Локализация текста с игровым счетом Замена текста в html коде (локализация странички) В строке записаны слова исходного текста, в отдельной строке - одно из слов, которое может быть в строке |
|
2436 / 1115 / 312
Регистрация: 23.06.2011
Сообщений: 3,532
|
|||
| 03.11.2021, 07:55 | |||
|
0
|
|||
|
0 / 0 / 0
Регистрация: 17.10.2021
Сообщений: 57
|
||
| 03.11.2021, 12:51 [ТС] | ||
|
Текстовой файл, это просто строки. Реализацию, нужно выдирать из моего проекта и создать хоть какой то пример. Сделаю чуть позже и выложу.
0
|
||
|
2436 / 1115 / 312
Регистрация: 23.06.2011
Сообщений: 3,532
|
||
| 05.11.2021, 07:18 | ||
|
ключ-значение, нужное получаем по ключу в некоторых случаях и секции могут быть полезны, только польза и ни каках помех для своего нужен свой велик, уже вопрос зачем, если есть готовое и непонятно как получать нужные строки, если это просто строки без ключа городить огород с какими то привязками, зачем
0
|
||
|
0 / 0 / 0
Регистрация: 17.10.2021
Сообщений: 57
|
|||||||
| 01.04.2023, 21:38 [ТС] | |||||||
0
|
|||||||
|
0 / 0 / 0
Регистрация: 17.10.2021
Сообщений: 57
|
|
| 03.04.2023, 11:38 [ТС] | |
|
AZJIO, Да и так норм работает.... Есть в чём то сакральный смысл делать по другому?
Процедура вырезана из моей программы. И сама мультиязычность проста в реализации Создаём таблицу, можно большей вместимостью, чем количество строк Вписываем в неё строки языка по умолчанию. Я подключаю этот файл инклюдом. Считываем поле нужно строчки с помощью индекса, например: Lng(1) Я стараюсь в коде делать комментарии, какой текст по умолчанию вписан по этому индексу, что бы не смотреть в таблице Если загружаем внешний файл локализации, таблица переписывается. Далее меняем текст в гаджетах, вызывая отдельную процедуру. Что то если надо, перерисовываем. Самый главный плюс, то что файл локализации очень просто перевести на любой язык, загнав его текст в онлайн переводчик, ручная правка нужна, но лишь для доведения текста до идеала. Да и минимум кода
0
|
|
| 03.04.2023, 13:15 | ||||||||
|
Я сейчас подумал, если строка пустая то она игнорируется, и счётчик строк не увеличивается. Можно попробовать сделать если строка пуста, то оставить старое значение, как бы не делать перевод для этой строки. Например не нравится одна из строк, добавил только её, а остальные остались оригинальные, не переназначая все строки.
Ну и в идеале идентификатор файла переделать на #PB_Any Добавлено через 15 минут Вот я его выкладывал на форуме PureBasic. И AutoIt3 версия
0
|
||||||||
|
0 / 0 / 0
Регистрация: 17.10.2021
Сообщений: 57
|
||||||
| 03.04.2023, 13:44 [ТС] | ||||||
|
Я и в твоих исходниках что то подсматриваю и в nikzzzz Мне вот не нравится то, что нужно заполнять, таблицу, инклюд с указанием индекса... Куда красивее использовать тоже текстовый файл для языка по умолчанию и считывать с него текст, если не найден не один внешний файл локализации. А сам текстовик разместить в ресурсах, по типу делфи, так появится возможность править локализацию по умолчанию, изменяя этот ресурс. Добавлено через 11 минут AZJIO, Посмотрел в коде... У тебя же файл ini и секция Lang Тут перевод на свой язык занимает больше времени, приходится каждую строку закидывать в переводчик и вставлять результат. В моём варианте, просто текстовый файл, выделяем весь текст, вставляем в окно гугл переводчика и забираем переведённые строки, вставляем в свой файл, проверяем количество строк. Вроде в 7zip такие файлы локализации, но там вверху комменты и есть пустые строки... А мне то визуально нужно видеть номер строки, например в Notepad++ Хотя тем кто локализует, особо не важен номер строки, это больше для моего анализа.
0
|
||||||
|
0 / 0 / 0
Регистрация: 17.10.2021
Сообщений: 57
|
|
| 03.04.2023, 15:03 [ТС] | |
|
У видел... Как бы уже реализовано, проверено и отменно работает.
Вот на этапе ручной локализации ранее созданного проекта, была трудность с заполнением таблицы (прописыванием индексов), типо неудобно. Вот бы файл локализации, по умолчанию, был бы в отдельном текстовом файле и находился в ресурсах основного, после компиляции. Извлекался в память, считывался и заполнял таблицу. Но я в этом не силён...
0
|
|
| 03.04.2023, 16:26 | ||||||||||||
|
А вообще-то я использую, только не Windows-стратегию. Первым делом добавляем ini-файл в код целиком.
0
|
||||||||||||
|
0 / 0 / 0
Регистрация: 17.10.2021
Сообщений: 57
|
|||||||||||
| 03.04.2023, 16:40 [ТС] | |||||||||||
|
AZJIO, Всё бы тоже самое, но с текстовым файлом и без его извлечения на диск...
Я тут просвещаюсь на разных ресурсах... У нас уже имеется
Если да, то можно извлечь строки не извлекая файл на диск:
Добавлено через 5 минут AZJIO, меня чуть не так понимаешь... я хочу отказаться от инклюда-массива с локализацией по умолчанию. Так как неудобен формат его, для заполнения вручную. А вместо его использовать обычный текстовой файл, как и для остальных файлов локализации. Так же просто его править в Notepad++, но при компиляции программы, загонять его в data, при запуске файла, считывать из него строки в массив языка по умолчанию
0
|
|||||||||||
| 03.04.2023, 16:48 | |
|
CryptoNickSoft, должно работать. Если только брать файл UTF, а читать как Ascii, хотя в этом случае прочитает только один символ. Буквально недавно в инструменте FindAllReferences в функции GetScintillaText() используя PeekS читает весь документ Scintilla, даже если там 6 тыс. строк и нигде не обрывался. Надо код смотреть.
Используешь Split для разделения на массив строк? Используешь файл без BOM? Метка там не нужна.
0
|
|
|
0 / 0 / 0
Регистрация: 17.10.2021
Сообщений: 57
|
||||||||
| 03.04.2023, 17:04 [ТС] | ||||||||
|
Добавлено через 4 минуты Вот, при условии что считали весь текст в переменную: Text, нужно же ещё индексированные строки в массив записать, ну и подчистить за собой мусор... Можно же так сделать:
0
|
||||||||
| 03.04.2023, 17:30 | ||
|
Добавлено через 16 минут Нашёл всё-таки ссылку, где я сетовал, что трёх-кратное использование строк языкового перевода, как от этого избавиться и чел предложил использовать ресурсы. Может тебе будет интересно.
0
|
||
|
0 / 0 / 0
Регистрация: 17.10.2021
Сообщений: 57
|
||
| 03.04.2023, 18:26 [ТС] | ||
|
Но всё таки не очень удобно вручную в эти ресурсы вписывать строки. Ибо у ресурса свой задокументированный формат. Но может получится адаптировать и внести свой текстовой файл в какую либо секцию. Не все же они имеют определённый PE формат. Есть же и для свободного использования. Пихают же в ресурсы что угодно, в том же делфи. Но нужно что бы Restorator смог открыть этот файл для правки... В общем, забил на проекты, занимаюсь наработкой знаний
0
|
||
| 03.04.2023, 18:49 | |
|
"Resource Hacker" и ResourcesViewerAndCompiler имеют возможность создать пустой dll для ресурсов, сам лично просил автора "Resource Hacker" добавить эту возможность. Так что не нужен никакой левый dll, чтобы напихать туда ресурсов. ресурсы туда на самом деле легко вставлять, не нужно это делать построчно. Сделай экспорт в rc-файл, он по факту текстовый вставь строки, импортируй обратно. Можно прямо в проге вставить сразу страницей. Можно через ком-строку. Формат для свободного использования он там будет бинарный и скорее всего с теми же проблемами трёхкратного использования памяти. Я не разбирался, но мне кажется надо использовать WinAPI функции ресурсов работая с разделом String, кончено, там строки пронумерованы.
0
|
|
|
0 / 0 / 0
Регистрация: 17.10.2021
Сообщений: 57
|
|||||||
| 04.04.2023, 00:42 [ТС] | |||||||
|
Вот написал пример (на скриншоте) Вроде как работает, но в конце какой то мусор от
0
|
|||||||
|
0 / 0 / 0
Регистрация: 17.10.2021
Сообщений: 57
|
|
| 04.04.2023, 00:50 [ТС] | |
|
так выглядит текстовой файл
0
|
|
|
0 / 0 / 0
Регистрация: 17.10.2021
Сообщений: 57
|
|||||||
| 04.04.2023, 01:00 [ТС] | |||||||
|
Так уже без мусора:
Добавлено через 5 минут Не понял как адаптировать это под такой вариант работы.
0
|
|||||||
| 04.04.2023, 01:00 | |
|
В строке S записаны слова исходного текста, в отдельной строке S 1 записано одно из слов, которое может быть в строке S (количество букв в S1 не п
По нажатию кнопок мыши на строке изменяется цвет и фон текста в строке
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|