Текстовые сообщения интерфейса - в виде массива строк?
Добрый день, коллеги!
Хочу поднять тему для обсуждения вопроса наиболее грамотной реализации текстового интерфейса, т.е. набора текстовых сообщений, выдываемых пользователю. Если тупо загружать всё в переменные внутри проги, то сообщения интерфейса неудобно переводить на другие языки - нужно перекомпилировать весь проект. Я сейчас сделал так - всё вынес в текстовый ресурсный файл, кодировка win1251. Данный файл я считываю построчно, конвертирую в UTF8, а затем записываю в массив. Но, к сожалению, данный подход работает весьма медленно. На среднестатистическом телефоне SE K-700 загрузка 200 строк занимает около 8-10 секунд. Но я видел реальные мидлеты, которые делают это мгновенно на этом же телефоне при таком же подходе к хранению интерфейсных сообщений. Вопрос - как быть? Что посоветуют знатоки, чтобы соблюсти следующие условия: - быстрая загрузка - минимизация занимаемой памяти (heap) - возможность перевода на другой язык без пересборки (но это не столь критично, если что, то уж могу и пересобрать.) |
Ответ: Текстовые сообщения интерфейса - в виде массива строк?
Подход правильный. По-моему легче создать пару файлов с разными языками. Тут просто нужна либа для ускорения чтения/перекодировки строки WIN/UTF.
|
Ответ: Текстовые сообщения интерфейса - в виде массива строк?
Объясните мне, как в char могут храниться символы в utf-8? Ведь в utf-8 каждый символ занимает от 1 до 4 байт, а тип char имеет размер 1 байт. Я чего-то непонимаю и мне это покоя не даёт. В MySQL также, если ставить кодировку utf-8, то все поля всё равно имеют прежний размер, как и при однобайтовых кодировках текста. Не понимаю...
|
Re: Текстовые сообщения интерфейса - в виде массива строк?
чтото не так делаешь, у меня все в мгновение грузится
|
Ответ: Текстовые сообщения интерфейса - в виде массива строк?
Цитата:
Вопрос о том, сколько реально байт занимает символ, принимает сама система. Если это символ с номером до 255 (латиница и пр.), то один байт. Если от 256 до 65535 - то 2 байта. Но вообще это дело мутное. :) |
Ответ: Re: Текстовые сообщения интерфейса - в виде массива строк?
Цитата:
|
Ответ: Текстовые сообщения интерфейса - в виде массива строк?
Один символ в UTF-8 может занимать от одного до 6 байт. В настоящее время используются символы от 1 до 4 байт. 6-и байтовые не используют. [источник]
- - - Я просто не понимаю, если char - это тип данных, размером в один байт (0-255), то как он вообще принципиально может хранить в себе больше дозволенного? О_о - - - Вот что нашёл: Цитата:
- - - Любопытно... Значит char = 1 байт - это только условность... P.S: А Java рулит ;) |
Часовой пояс GMT +4, время: 13:18. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot